lucypero/lucynes

Accurate NES emulator written in Odin

Odin

70

182 commits

updated May 14, 2026

See the code

README

lucyNES

NES emulator written in Odin.

Blog post

Features

  • Debugger view with some debugging features
  • Menu view to interact with the emulator
  • Save states
  • Controller support
  • CRT Shader toggle
  • (Partial) Sound
  • Enough emulation accuracy to run Battletoads and hundreds of other games perfectly.
  • Supported Mappers: NROM, MMC1, UXROM, CNROM, MMC3, GxROM, AxROM

Controls (Keyboard)

M - Toggle menu view

F1 - Save to selected slot

F4 - Load from selected slot

P - Pause

WASD - (NES Controller) Arrows

H - (NES Controller) A button

J - (NES Controller) B button

Y - (NES Controller) Select button

U - (NES Controller) Start button

Controls (assuming an XBOX controller)

D-pad - Arrows

A - A Button

X - B Button

View Button - Select

Menu Button - Start

What to work on next

  • Improve sound
  • Implement DMC
  • Finish implementing PPUMASK features
  • Fix Dragon Warrior
  • Fix Batman
  • Implement more popular mappers
  • In-app ROM selection

How to build

Last tested on Odin version: dev-2026-05:ea5175d86

odin run src -out:lucynes.exe

It will not run if the default ROM isn't in the roms directory. If you want to play a specific ROM, you can...:

odin build src -o:speed -out:lucynes.exe
lucynes [path-to-rom]

Example, after building:

lucynes roms/Castlevania.nes (assuming Castlevania.nes is in the roms directory, in the same directory as the lucynes executable.

Showcase

Debugger view

https://github.com/user-attachments/assets/240fbda8-4e75-4b93-b485-15ab7fd3c7bb

https://github.com/user-attachments/assets/a09d3cc3-a58b-44ea-8771-bcb8bb00a3d6

Screenshots

Megaman VI on lucynes Solomon's Key 2 on lucynes Super Mario Brothers 3 on lucynes Castlevania on lucynes Final Fantasy 3 on lucynes The Legend of Zelda on lucynes

Contributors

lucypero

182 commits

lucypero/lucynes

Accurate NES emulator written in Odin

Odin

70

182 commits

updated May 14, 2026

See the code

README

lucyNES

NES emulator written in Odin.

Blog post

Features

  • Debugger view with some debugging features
  • Menu view to interact with the emulator
  • Save states
  • Controller support
  • CRT Shader toggle
  • (Partial) Sound
  • Enough emulation accuracy to run Battletoads and hundreds of other games perfectly.
  • Supported Mappers: NROM, MMC1, UXROM, CNROM, MMC3, GxROM, AxROM

Controls (Keyboard)

M - Toggle menu view

F1 - Save to selected slot

F4 - Load from selected slot

P - Pause

WASD - (NES Controller) Arrows

H - (NES Controller) A button

J - (NES Controller) B button

Y - (NES Controller) Select button

U - (NES Controller) Start button

Controls (assuming an XBOX controller)

D-pad - Arrows

A - A Button

X - B Button

View Button - Select

Menu Button - Start

What to work on next

  • Improve sound
  • Implement DMC
  • Finish implementing PPUMASK features
  • Fix Dragon Warrior
  • Fix Batman
  • Implement more popular mappers
  • In-app ROM selection

How to build

Last tested on Odin version: dev-2026-05:ea5175d86

odin run src -out:lucynes.exe

It will not run if the default ROM isn't in the roms directory. If you want to play a specific ROM, you can...:

odin build src -o:speed -out:lucynes.exe
lucynes [path-to-rom]

Example, after building:

lucynes roms/Castlevania.nes (assuming Castlevania.nes is in the roms directory, in the same directory as the lucynes executable.

Showcase

Debugger view

https://github.com/user-attachments/assets/240fbda8-4e75-4b93-b485-15ab7fd3c7bb

https://github.com/user-attachments/assets/a09d3cc3-a58b-44ea-8771-bcb8bb00a3d6

Screenshots

Megaman VI on lucynes Solomon's Key 2 on lucynes Super Mario Brothers 3 on lucynes Castlevania on lucynes Final Fantasy 3 on lucynes The Legend of Zelda on lucynes

Contributors

lucypero

182 commits

Languages

Odin

95.8%

GLSL

4.1%