/nese

NES Emulator

Primary LanguageCMIT LicenseMIT

NESE - An NES emulator

How to use

nese [path-to-ines-file]

Pre-built binaries

  • Go to Action > Build and Upload Artifacts > Artifacts

Things that worked

  • CPU (No invalid op codes)
  • PPU (Sprite and Background rendering)
  • Control
  • CHR Ram (even on mapper 0)
  • Saves

Things that not worked

  • iNes 2.0
  • Super mario brothers (IDK why) (CMP set flags fault)
  • Tetris (BG not render while playing) (forgot to implement single screen mirroring)
  • Audio (I got no idea how audio work)

Default Control

Debug feature

Button Feature
F2 Play & Pause the emulator
F3 Step frame
F4 Print PPU debug info to console
F5 Enable logging (slow the emulator down dramatically)
F6 Draw 2 pattern table on screen
F7 Fast forward

Player 1

Key Button
A Space
B LShift
Select LCtrl
Start E
Up W
Down S
Left A
Right D

Player 2

Key Button
A J
B K
Select L
Start /
Up
Down
Left
Right

Currently supported mappers

  • Mapper 0
  • Mapper 1
  • Mapper 2
  • Mapper 3
  • Mapper 4 (Very buggy, idk why)

How to build

This project used zig 0.12.0

References