SwiftNES
[WIP] Cross-platform NES Emulator written in Swift
Requirements
- Swift 5.0.1 later
- SDL2
- GD Graphics Library
- libsoundio
Roadmap
CPU
- [x] Registers
- [x] Memory map
- [x] Addressing modes
- [x] Official operations
- [x] Unofficial operations
- [x] Interrupt handlers
- [x] Disassembler + nestest logging
PPU
- [x] Registers
- [x] Memory map
- [x] Background rendering
- [x] hardware accurate emulation
- [x] Sprite rendering
- [ ] hardware accurate emulation
- [x] Sprite zero hit
- [x] DMA
- [x] Other flags
- SDL
- [x] Rendering by line buffer
APU
- [x] Pulse wave channels
- [x] Triangle wave channel
- [x] Noise channel
- [x] Sampling by DMC
The implementation has been completed but sounds are strange...
Controllers
Cartridge, Mappers
- [x] Parse iNES file
- [x] Support mapper 0
Tools
Goals
Run and play games in cartridges I bought in childhood.
Author
thara