N64 TASing emulator with Lua scripting support
The latest release is available on the releases page
If any issues arise or you need help, join the discord server
Cutting-edge features with potential instability are available for download as a zipped binary under the latest commit's artifact.
Open the solution with your IDE of choice (VS20XX and Rider are recommended) and build the solution.
For Rider users:It's recommended to disable "Use external console" (Run > Modify Run Configuration...), as it breaks spdlog's text coloring and reduces both startup and runtime performance.
The project is divided into 3 layers: Shared, Core, and View.
The shared layer contains code with no dependencies other than the STL and project libraries (e.g.: libdeflate).
This layer contains shared code, such as helpers, contracts, core types, and the config. All other layers can reference the shared layer and utilize its code, hence the name.
The core layer contains the emulation core data and code, with access to the shared layer, STL, and project libraries.
This layer must be driven by the view layer, and is allowed to call into contract functions defined in the shared layer and implemented in the view layer.
The view layer contains references to the other layers, implements the required contracts, and drives the view layer.
Platform-specific references (e.g.: Windows.h) are only permitted in the view layer.