OptimeGBA Save

Optime GBA - Nintendo Game Boy Advance (and WIP Nintendo DS) emulator, written in C# with .NET Core.

Project README

Welcome to Optime GBA!

Optime GBA is a work-in-progress Game Boy Advance and Nintendo DS emulator.

Current Progress

GBA

  • Timers and DMA are implemented
  • Audio is fully implemented and sounds great on all games
  • Near complete emulation of the Pixel Processing Unit (PPU)
  • Save files work for games using flash memory

Nintendo DS

  • Cold boot through firmware works
  • Booting many popular games, including New Super Mario Bros. and Pokémon Platinum

Future Plans

  • Further optimization
  • Seek out any unimplemented ARM7TDMI quirks that may remain

GBA

  • Implement remaining PPU features, fix PPU bugs
    • Sprite mosaic

Nintendo DS

  • Flash and EEPROM save memory
  • Nintendo DS extended 2D graphical features
  • 3D graphics
  • Dynamic recompiler, possibly in the far future

Controls

  • A - X
  • B - Z
  • X - S
  • Y - A
  • Start - Enter
  • Select - Backspace
  • Left - Left
  • Right - Right
  • Up - Up
  • Down - Down

Accessory Controls

  • Turbo - Tab, Space
  • Toggle Color Correction - F1
  • Toggle Sound FIFO A - F3
  • Toggle Sound FIFO B - F4
  • Toggle Sound PSG 1 - F5
  • Toggle Sound PSG 2 - F6
  • Toggle Sound PSG 3 - F7
  • Toggle Sound PSG 4 - F8
  • Fullscreen - ALT + Enter, F11

Screenshots

Pokémon Emerald Pokémon Mystery Dungeon: Red Rescue Team Kirby: Nightmare in Dreamland Kirby: Nightmare in Dreamland Pokémon Platinum

Running

For building and using Optime GBA, .NET 5 is recommended. You also need a CPU with AVX2 support because I completely overdid the renderer.

A compatible Game Boy Advance BIOS image is required to run the emulator. Place the BIOS in the emulator working directory (the root of the repository when using dotnet run) named as gba_bios.bin.

For running Nintendo DS games, official Nintendo DS firmware, ARM9 BIOS, and ARM7 BIOS dumps are required. Place the dumps named as firmware.bin, bios9.bin, bios7.bin, respectively, in the emulator working directory.

# OpenTK Debugger
dotnet run -c Release -p OptimeGBA-OpenTK.csproj
# Simple SDL Frontend 
dotnet run -c Release -p OptimeGBA-SDL.csproj
Open Source Agenda is not affiliated with "OptimeGBA" Project. README Source: Powerlated/OptimeGBA
Stars
82
Open Issues
7
Last Commit
1 year ago

Open Source Agenda Badge

Open Source Agenda Rating