Home

Awesome

sodium64

A SNES emulator for the N64, written in assembly.

Overview

The goal of sodium64 is to be fast and accurate enough to at least make some SNES games playable on the N64. It handles rendering entirely on the RSP in order to reduce load on the main CPU. I thought it would be fun to write something specifically for older hardware in assembly, so sodium64 was born!

Downloads

The latest build of sodium64 is automatically provided via GitHub Actions, and can be downloaded from the releases page.

Usage

Place SNES ROMs with extension .sfc/.smc in the same folder as sodium64.z64 and rom-converter.py. Run rom-converter.py using Python to convert the SNES ROMs to N64 ROMs. The output ROMs will be in a new folder called out.

Alternatively, some flashcarts support loading ROMs directly with a supplied emulator. If you have an EverDrive, copy sodium64.z64 to the ED64/emu folder on your SD card and rename it to smc.v64. SNES ROMs must be in headerless .smc format to work this way; rom-converter.py can optionally convert input ROMs for this.

Controls

N64SNES
C-ButtonsABXY
D-PadD-Pad
L/RL/R
A/BStart/Select
StartToggle FPS Counter
ZToggle Layer Priority

Contributing

This is a personal project, and I've decided to not review or accept pull requests for it. If you want to help, you can test things and report issues or provide feedback. If you can afford it, you can also donate to motivate me and allow me to spend more time on things like this. Nothing is mandatory, and I appreciate any interest in my projects, even if you're just a user!

Building

Although sodium64 is written in assembly, it relies on libdragon for its build system. With that set up, run make in the project root directory to start building.

Hardware References

Other Links