Skip to content

thara/SwiftNES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

49905f3 · Jan 13, 2024
Jul 13, 2021
Jan 13, 2024
Aug 14, 2021
Oct 14, 2019
Aug 14, 2021
Oct 14, 2019
Aug 14, 2021
Aug 14, 2021
Aug 14, 2021
Jan 21, 2020
Aug 14, 2021
Jul 15, 2021
Jul 15, 2021
Jul 17, 2021

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