BubbleNES icon indicating copy to clipboard operation
BubbleNES copied to clipboard

NES emulator written in Go

BubbleNes

A Nes emulator written in Go.

https://github.com/badbubble/BubbleNES/assets/25291611/7565fafd-8183-43ce-91cd-ff655f10b374

Install

Requirements

# MAC
brew install sdl2{,_image,_mixer,_ttf,_gfx} pkg-config
# Ubuntu
apt install libsdl2{,-image,-mixer,-ttf,-gfx}-dev

for other operating systems you can see this

Build

git clone [email protected]:badbubble/BubbleNes.git
cd BubbleNes/
go mod tidy
go build -o BubbleNes

Play

./BubbleNes NES_GAME_PATH

Game buttons

Keyboard joypads
W Up
S Down
A Left
D Right
P Start
O Select
K A
L B

Features & TODOs

  • CPU emulation:
    • official instructions
    • unofficial instructions
    • tracing
  • PPU emulation
  • Cartridge emulation
  • Mappers
    • MAPPER_000

Still working on:

  • [ ] Mapper_001
  • [ ] Mapper_002
  • [ ] Mapper_003
  • [ ] Mapper_004
  • [ ] Mapper_005
  • [ ] APU
  • [ ] Game Saving
  • [ ] Online multiplayer
  • [ ] Cheat mode
  • [ ] Change sdl2 to a better 2d game engine

Tests

nestest

Official Unofficial

Acknowledgments