Skip to content

Releases: UsaRandom/lithium64

lithium64 v1.0 — full speed on the M64

Choose a tag to compare

@UsaRandom UsaRandom released this 14 Aug 01:09

The first full lithium64 release, and the milestone the fork exists for: full-speed emulation on the ModRetro M64, verified on the console itself.

The RDP wait is gone

m64-fix papered over background corruption by pacing the RDP with a bounded wait before every command list, which cost real frame rate. The corruption's root cause is now understood — the RDP holds one running command list plus one pending start, and re-dispatching templates the RSP rewrites in DMEM can outrun that on any platform — and the fix is structural: the RDP fetches its commands from a ring in RDRAM that the RSP appends to, with a small queue-depth cap as backpressure. No tuned delays anywhere.

On the M64: typical games hold a responsive 60fps with no throttle. The heaviest renderers on the SNES run about 40fps in-game and reach 60 in lighter scenes; enable frame skip in the settings menu if it feels laggy. The full record of the investigation lives in docs/AUDIT.md sections 4t–4y.

Memory sizes itself at boot

No Expansion Pak requirement: 8MB consoles (the M64, or an N64 with an Expansion Pak) put nearly all of it into the ROM cache, and a stock 4MB console runs the same build with a smaller cache (large games will lean on cartridge DMA and run slower there).

Faster, palette-independent rendering

16-colour background tiles and sprites now draw as palette-free CI4 textures with the palette applied by the RDP, so a character's texture no longer depends on its palette — texture memory traffic is halved and palette animation stops invalidating the tile cache. Sprite rows outside the visible band are skipped entirely.

Install

  • MainMenu (SC64 custom menu) : copy lithium64.z64 to /menu/emulators on the SD card, and .sfc/.smc ROMs anywhere in the library launch with it directly.
  • Any flashcart: run rom-converter.py next to your SNES ROMs to produce standalone N64 ROMs.
  • EverDrive: copy smc.v64 to the ED64/emu folder on your SD card (SNES ROMs must be headerless .smc; rom-converter.py can convert them).
  • Summercart64/N64FlashcartMenusodium64.z64 is the same ROM under the name N64FlashcartMenu falls back to, for setups that already use it.

Sodium64 - M64 fix(ish)

Choose a tag to compare

@UsaRandom UsaRandom released this 08 Aug 22:10

Temporary fix for M64

Enable frame skips in start menu if laggy.