https://github.com/lucypero/lucynes
NES emulator written in Odin
https://github.com/lucypero/lucynes
Last synced: 3 months ago
JSON representation
NES emulator written in Odin
- Host: GitHub
- URL: https://github.com/lucypero/lucynes
- Owner: lucypero
- License: mit
- Created: 2024-04-29T04:35:11.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-22T12:21:51.000Z (4 months ago)
- Last Synced: 2025-01-22T13:27:52.921Z (4 months ago)
- Language: Odin
- Homepage:
- Size: 494 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-odin - lucynes
README
# 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





