Lucynes
Accurate NES emulator written in Odin
Install / Use
/learn @lucypero/LucynesREADME
lucyNES
NES emulator written in Odin.
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
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
Menu view
https://github.com/user-attachments/assets/a09d3cc3-a58b-44ea-8771-bcb8bb00a3d6
Screenshots
