Runtime for traditional ports or recompilations of N64 games.
Find a file
Reonu eb666c9e01 Automatic save backup system
From Zelda64Recomp/Zelda64Recomp#260 commit 4ebe71bfccbef17268c8941bed8d428d445268ca

Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
2024-06-01 09:06:33 -04:00
.github/workflows Add CI workflows (#21) 2024-05-25 10:06:17 +02:00
librecomp Automatic save backup system 2024-06-01 09:06:33 -04:00
rt64@64b9e166f7 Support for high precision framebuffers and dither noise (RT64) 2024-06-01 08:59:35 -04:00
thirdparty Game Registration API (#1) 2024-05-22 04:03:39 +02:00
ultramodern Support for high precision framebuffers and dither noise (RT64) 2024-06-01 08:59:35 -04:00
.gitignore Fix building ultramodern (#2) 2024-05-20 12:38:13 -04:00
.gitmodules Added ultramodern and librecomp from Zelda64Recomp, added rt64 submodule, added README 2024-05-19 15:04:28 -04:00
CMakeLists.txt CMake fixes to allow building this repo as a submodule (#25) 2024-05-30 09:16:07 +02:00
COPYING Initial commit 2024-05-19 14:14:54 -04:00
README.md Fix building ultramodern (#2) 2024-05-20 12:38:13 -04:00

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)