ReapNES

NES Music Reverse Engineering Studio — Extract, validate, and reproduce NES game music at frame-level fidelity

View on GitHub

ReapNES

NES Music Reverse Engineering Studio

Extract complete musical scores from NES games — notes, volume envelopes, duty cycles, drum patterns — as playable MIDI files and REAPER DAW projects with the ReapNES NES APU synthesizer plugin.

Not WAV recordings. Not tracker modules. Editable MIDI scores with per-frame synthesizer automation, ready to open in REAPER and play, edit, remix, or transcribe.


Game Library

Every game below has been extracted to 4-channel MIDI (Pulse 1, Pulse 2, Triangle, Noise) with CC11 volume envelope automation and CC12 duty cycle control.

Konami

Game Year Tracks Method
Castlevania 1986 15 ROM parser + NSF
Castlevania II: Simon’s Quest 1987 9 NSF emulation
Castlevania III: Dracula’s Curse 1989 28 NSF emulation
Contra 1988 11 ROM parser
Super C 1990 15 NSF emulation
Gradius 1986 12 NSF emulation

Capcom

Game Year Tracks Method
Mega Man 1987 16 NSF emulation
Mega Man 2 1988 24 NSF emulation
Mega Man 3 1990 30+ NSF emulation
Mega Man 4 1991 30+ NSF emulation
Bionic Commando 1988 20 NSF emulation
Ghosts ‘n Goblins 1986 NSF emulation
Section Z 1987 NSF emulation
Strider 1989 NSF emulation
Legendary Wings 1988 NSF emulation
Trojan 1987 NSF emulation

Sunsoft

Game Year Tracks Method
Batman 1989 11 NSF emulation
Blaster Master 1988 16 NSF emulation
Journey to Silius 1990 NSF emulation

Nintendo

Game Year Tracks Method
Super Mario Bros. 1985 NSF emulation
Super Mario Bros. 2 1988 NSF emulation
Super Mario Bros. 3 1988 NSF emulation
The Legend of Zelda 1986 NSF emulation
Zelda II: Adventure of Link 1987 NSF emulation
Metroid 1986 NSF emulation
Kid Icarus 1986 NSF emulation
Kirby’s Adventure 1993 NSF emulation
Punch-Out!! 1987 NSF emulation

Tecmo

Game Year Tracks Method
Ninja Gaiden 1988 NSF emulation
Ninja Gaiden II 1990 NSF emulation
Ninja Gaiden III 1991 NSF emulation
Rygar 1987 NSF emulation

Other

Game Year Publisher Method
Marble Madness 1989 Rare/Tengen NSF emulation
Faxanadu 1987 Hudson/Falcom NSF emulation
Goonies II 1987 Konami NSF emulation
Gargoyle’s Quest II 1992 Capcom NSF emulation
Silver Surfer 1990 Arcadia/LJN NSF emulation

What You Get

For each game:


How It Works

Two Extraction Methods

ROM Parser (Castlevania 1, Contra): Reads music data directly from the game ROM using reverse-engineered driver format specifications. Validated frame-by-frame against Mesen 2 APU traces.

NSF Emulation (everything else): Runs the game’s actual sound driver code on a 6502 CPU emulator, captures every APU register write per frame, and converts to MIDI with synthesizer automation. Works on any NES game regardless of publisher or sound engine.

The Pipeline

NSF file (game sound driver + music data)
  → 6502 CPU emulator (py65)
  → APU register captures ($4000-$4017, 60fps)
  → Note extraction (period → MIDI pitch)
  → Envelope extraction (volume → CC11, duty → CC12)
  → MIDI file (4 tracks + metadata)
  → REAPER project (ReapNES synth per channel)

What Makes This Different

NSF players render audio. FamiTracker importers produce messy per-frame effect dumps. ReapNES produces clean MIDI scores with synthesizer automation in a professional DAW. Every note event, volume envelope shape, and duty cycle change from the original game is captured as editable MIDI data driving an accurate NES APU synthesizer plugin.


Downloads


Technical Documentation