Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nes-emu logo

nes-emu

A simple Nintendo Entertainment System emulator written in pure C.

License Language Platform Code Size Repo Size Stars Forks Issues Pull Requests Contributors Last Commit Commit Activity Top Language Open Source Pure C No Bloat Web Build PPU APU Mappers Emulator Status PRs Maintenance Retro Fast Accuracy Minimal


IF YOU ARE LAZY JUST PLAY IT HERE

Screenshots

The Legend of Zelda

description

Super Mario Bros.

description

1942

description

nes-emu is a lightweight NES emulator focused on simplicity, accuracy, and portability.

The project is written entirely in pure C with no unnecessary abstractions or bloated dependencies.

Main goals:

  • Accurate emulation
  • Clean codebase
  • Fast execution
  • Portable architecture
  • Web support

Features

  • Pure C implementation
  • Lightweight and minimal
  • Web version support
  • Cycle-accurate PPU
  • Cycle-accurate APU
  • Correct NES color palette
  • Support for important mappers
  • Portable codebase
  • No external engine dependency
  • Focused on accuracy and readability

Development

devs

Current Status

Component Status
CPU Complete
PPU In Progress
APU In Progress
Controller Input Complete
Mapper Support In Progress
Web Build Working
Audio Sync In Progress
Save States Planned
Debugger Planned

Supported Mappers

Mapper Status
NROM Supported
MMC1 In Progress
UxROM In Progress
CNROM In Progress
MMC3 In Progress
AxROM Planned

Run:

nes-emu rom.nes

Design Philosophy

The emulator aims to stay:

  • Simple
  • Readable
  • Fast
  • Accurate
  • Minimal

No unnecessary frameworks. No bloated architecture. Just a clean emulator written in C.


TODO

  • Add more mappers
  • Improve APU accuracy
  • Improve PPU accuracy
  • Add save states
  • Improve timing accuracy
  • Improve web frontend

Contributing

Pull requests, issues, and suggestions are welcome.

Workflow:

fork -> code -> commit -> pull request

References

  • NESDev Wiki
  • NES hardware documentation

License

License

NES-EMU

Accurate. Minimal. Pure C.

Releases

Packages

Contributors

Languages