A NES emulator in ~5000 significant bytes of c.
Plays some mapper 0/1/2/3/4/7 games.
Probably only builds on Linux and macOS. Try gcc or clang.
$ make
$ ./smolnes <rom.nes>
Keys:
| Action | Key |
|---|---|
| DPAD-UP | ↑ |
| DPAD-DOWN | ↓ |
| DPAD-LEFT | ← |
| DPAD-RIGHT | → |
| B | Z |
| A | X |
| START | Enter |
| SELECT | Tab |
Look for line 20 in the source code. The following table shows which numbers map to which keyboard keys:
| character | number | default key | NES button |
|---|---|---|---|
| \33 | 27 | X | A Button |
| \35 | 29 | Z | B Button |
| + | 43 | Tab | Select Button |
| ( | 40 | Return | Start Button |
| R | 82 | Arrow Up | DPAD Up |
| Q | 81 | Arrow Down | DPAD Down |
| P | 80 | Arrow Left | DPAD Left |
| O | 79 | Arrow Right | DPAD Right |
- Look up the keys you want to replace from this list SDL scancode list
- Convert the number to its ascii character, or C character literal.
- Replace this character in the string.
- p2r3/smolnes-nut The smolnes emulator ported to Squirrel for Portal 2 - https://youtu.be/PUTRvF7slYs
- nevesnunes/ghidra-plays-mario Playing NES ROMs with Ghidra's PCode Emulator
- sysprog21/rv32emu Compact and Efficient RISC-V RV32I[MAFC] emulator (uses smolnes as a demo)
Let me know if you've used smolnes and I'll add it to the list.