Skip to content

Nintendo - NES / Famicom (RustyNES)

Background

RustyNES is a cycle-accurate Nintendo Entertainment System (NES) and Famicom emulator written entirely in pure Rust. It targets the highest accuracy bar (comparable to Mesen and higan) by running from one master clock, splitting every CPU cycle into two halves and bringing the PPU up to date at each, rather than relying on per-game hacks. The emulation core uses no threads and no standard-library timing (it builds as no_std), so its output depends only on the ROM and the input.

It is extremely portable and deterministic, making it a reliable choice for netplay, TAS, and accurate emulation enthusiasts.

Author/License

The RustyNES core has been authored by

  • DoubleGate

The RustyNES core is licensed under

  • GPL-3.0-or-later

A summary of the licenses behind RetroArch and its cores can be found here.

Extensions

Content that can be loaded by the RustyNES core have the following file extensions:

  • .nes
  • .fds
  • .unf
  • .unif

Databases

RetroArch database(s) that are associated with the RustyNES core:

Features

Frontend-level settings or features that the RustyNES core respects.

Feature Supported
Restart ✔
Screenshots ✔
Saves ✔
States ✔
Rewind ✔
Netplay ✔
Core Options ✔
Memory Monitoring (achievements) ✔
RetroArch Cheats ✔
Native Cheats ✔
Controls ✔
Remapping ✔
Multi-Mouse ✕
Rumble ✕
Sensors ✕
Camera ✕
Location ✕
Subsystem ✕
Softpatching ✔
Disk Control ✔
Username ✕
Language ✕
Crop Overscan ✕
Active Touchpad ✕

Directories

The RustyNES core's directory name is 'RustyNES'.

BIOS

No BIOS file is required for cartridge (.nes) content. Famicom Disk System (.fds) content requires the following firmware file in the frontend's system directory to boot (the core itself will still load without it, since it's marked optional at the frontend level, but no FDS game will run):

Filename Description md5sum
disksys.rom Family Computer Disk System BIOS - required to boot .fds content ca30b50f880eb660a320674ed365ef7a

Joypad

User 1 - 4 input descriptors RetroPad Inputs
B
A
Select
Start
D-Pad Up
D-Pad Down
D-Pad Left
D-Pad Right