|  e3e7024342 * Start setting up user callbacks system * Implement RSP callbacks * move RSP callbacks (and related RSP stuff) to its own file * Move destroy_ui to gfx_callbacks_t and change recomp::start to require rsp_callbacks_t * error_handling.hpp * Remove UserCallbacks in favor of threads_callbacks_t * Add `ultramodern::set_callbacks` and some other cleanups * Move most RSP stuff to librecomp * Rename rsp_stuff.hpp to rsp.hpp * Add rsp.cpp to librecomp cmake file * review * Remove `recomp::message_box` * Fix missing rename | ||
|---|---|---|
| .github/workflows | ||
| librecomp | ||
| rt64@ca26fb8096 | ||
| thirdparty | ||
| ultramodern | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| COPYING | ||
| README.md | ||
N64 Modern Runtime
Note This repo is a WIP as files are moved out of Zelda64Recomp and genericized. It cannot be used directly in its current state.
This repo contains two libraries: Ultramodern and Librecomp.
Ultramodern
Ultramodern is a reimplementation of much of the core functionality of libultra. It can be used with either statically recompiled projects that use N64Recomp or direct source ports. It implements the following libultra functionality:
- Threads
- Controllers
- Audio
- Message Queues
- Timers
- RSP Task Handling
- VI timing
Platform-specific I/O is handled via callbacks that are provided by the project using ultramodern. This includes reading from controllers and playing back audio samples.
Currently, ultramodern depends directly on RT64 for rendering. It may be decoupled in the future to allow using other renderers for targeting different platforms.
Librecomp
Librecomp is a library meant to be used to bridge the gap between code generated by N64Recomp and ultramodern. It provides wrappers to allow recompiled code to call ultramodern. Librecomp also provides some of the remaining libultra functionality that ultramodern doesn't provide, which includes:
- Overlay handling
- PI DMA (ROM reads)
- EEPROM, SRAM and Flashram saving (these may be partially moved to ultramodern in the future)