/magia

magia is a toy GBA emulator written in golang.

Primary LanguageGoMIT LicenseMIT

Magia

Go Report Card GitHub stars GitHub license

Magia is GBA emulator written in golang.

Warning: This emulator is WIP, so many ROMs don't work correctly now.

exe6g firered

mother12 dqm

Run

Please download latest binary from Release.

$ magia XXXX.gba

Build

# go1.16.x
$ make build
$ ./build/darwin-amd64/magia XXXX.gba

Key

keyboard game pad
← button
↑ button
↓ button
→ button
X A button
Z B button
S R button
A L button
Enter Start button
Backspace Select button

ToDo

  • Window
  • GUI
  • Serial communication
  • GameBoy Compatibility
  • Debug feature
  • Fix some bugs

Game Compatibility List

Game Title Compatibility
バトルネットワーク ロックマンエグゼ2
バトルネットワーク ロックマンエグゼ3 BLACK
ロックマンエグゼ4 トーナメント ブルームーン
ロックマンエグゼ6 電脳獣グレイガ・電脳獣ファルザー
ドラゴンクエストモンスターズ キャラバンハート
MOTHER1+2
ポケットモンスター ファイアレッド

Accuracy

Test Result
Memory tests 1102/1552
I/O read tests 21/123
Timing tests --/1660
Timer count-up tests 326/936
Timer IRQ tests 0/90
Shifter tests 140/140
Carry tests 93/93
Multiply long tests 52/72
BIOS math tests 625/625
DMA tests 964/1256
Misc. edge case tests 5/10

References