|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
libultraship (LUS) is a library meant to provide reimplementations of libultra (n64 sdk) functions that run on modern hardware.
LUS uses an asset loading system where data is stored separately from the executable in an archive file ending in .otr or .o2r. .otr files are .mpq compatible files. .o2r files are .zip compatible files. This separation of data from executable follows modern design practices which are more mod friendly. All one needs to do is supply a patch .otr or .o2r and the system will automatically replace the data.
Full Documentation | API Reference
LUS accepts any and all contributions. You can interact with the project via PRs, issues, email (kenix.nosp@m.whis.nosp@m.perwi.nosp@m.nd@g.nosp@m.mail..nosp@m.com), or Discord. Please see CONTRIBUTING.md file for more information.
We use semantic versioning. We have defined the API as: every C linkage function, variable, struct, class, public class method, or enum included from libultraship.h.
Install system dependencies before building.
Linux (Debian/Ubuntu):
macOS:
Then install the required Python packages (needed to generate asset keys):
On Windows, LUS uses vcpkg to manage C++ dependencies. Pass -DUSE_AUTO_VCPKG=ON to have CMake download and bootstrap vcpkg automatically. Alternatively, install the required ports manually with an existing vcpkg installation and pass -DCMAKE_TOOLCHAIN_FILE=VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake instead.
Requires Xcode on macOS. Set CMAKE_OSX_DEPLOYMENT_TARGET to the minimum iOS version you wish to support.
Requires the Android NDK. Set ANDROID_NDK_HOME to the path of the extracted NDK directory.
LUS is licensed under the MIT license.
LUS makes use of the following third party libraries and resources:
.mpq compatible archive files.
.zip compatible archives.