Skip to content

thara/SwiftNES

Repository files navigation

SwiftNES

CI Status for macOS on GitHub Action

[WIP] Cross-platform NES Emulator written in Swift

Requirements

  • Swift 5.0.1 later
  • SDL2
  • GD Graphics Library
  • libsoundio

Roadmap

CPU

  • Registers
  • Memory map
  • Addressing modes
  • Official operations
  • Unofficial operations
  • Interrupt handlers
  • Disassembler + nestest logging

PPU

  • Registers
  • Memory map
  • Background rendering
    • hardware accurate emulation
  • Sprite rendering
    • hardware accurate emulation
  • Sprite zero hit
  • DMA
  • Other flags
  • SDL
    • Rendering by line buffer

APU

  • Pulse wave channels
  • Triangle wave channel
  • Noise channel
  • Sampling by DMC

The implementation has been completed but sounds are strange...

Controllers

  • Standard Controller
    • Keyboard
    • Joypad

Cartridge, Mappers

  • Parse iNES file
  • Support mapper 0

Tools

  • Debugger

Goals

Run and play games in cartridges I bought in childhood.

Author

thara

Releases

No releases published

Packages

No packages published

Languages