emu_nes/README.md

30 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2024-08-21 13:31:29 -04:00
# emu_nes
2024-05-20 09:21:56 -04:00
A Nintendo Entertainment System (NES) emulator written for the purpose of
understanding how the NES and similar 8-bit computers of that era worked.
The NES used a variant of the MOS 6502 8-bit microcontroller called a
Ricoh 2A03 that contained the 6502 without the BCD mode for arithmetic,
an audio signal generator (APU), controlling the gamepads, and for DMA.
([Source: NESdev](https://www.nesdev.org/wiki/DMA))
A major goal for the emulator is finishing the software implementation
in C and later implement this in hardware with either an FPGA or another
CPU like a RISC-V. Later, I want to generalize the 2A03 simulator into
a full 6502 for use with a Commodore 64 and Apple II.
Makes heavy use of the [NESdev wiki](https://www.nesdev.org/wiki).
2024-08-21 13:31:29 -04:00
## Current State
- [x] CPU (Ricoh 2A03, variant of MOS 6502)
2024-08-21 13:31:29 -04:00
- [ ] PPU (Graphics)
- [ ] APU (Audio)
Currently, running the emulator with nestest.nes results in incorrect
results in the memory space of the APU registers. This is due to the
APU not being implemented yet.
Also, the only ROM mapper that is implemented is Mapper 0 to
run the test ROM, but it also supports many other ROMs listed
[here](https://nesdir.github.io/mapper0.html) such as Donkey Kong and
Super Mario Bros.