DawnGBA is a GBA/NDS emulator written in Go.
Note
This emulator is work-in-process.
Currently, the NDS core is optimized poorly, requiring CPU power. (AppleM4 can run most games at 60 FPS)
Download from release.
After unzipping, the contents will be as follows.
├── dawngba # Windows: dawngba.exe
└── system/For both GBA and NDS, BIOS files are required. Put BIOS files into the system/.
├── dawngba
├── system/
│ ├── gba_bios.bin # GBA, md5: "a860e8c0b6d573d191e4ec7db1b1e4f6",
│ ├── bios7.bin # NDS, md5: "df692a80a5b1bc90728bc3dfc76cd948"
│ ├── bios9.bin # NDS, md5: "a392174eb3e572fed6447e956bde4b25"
│ └── firmware.bin # NDS, md5: not fixed (firmware contains modifiable data such as user-settings)
└── settings.toml # Optional (see below)dawngba path/to/rom.gba # or path/to/rom.ndsThe DawnGBA's config file is ./settings.toml.
Currently, content cannot be changed via GUI, so you have to edit this file manually. If the file does not exist or config value is not defined, the default value will be applied.
Example
# settings.toml
# Is the BIOS screen displayed when the game starts. Even if set to "false", BIOS files are required.
intro=true # default: false
# Screen scale, min: 1.0, max: 4.0
scale=1.0 # default: 1.0
# Directory containing the BIOS
system="/Users/bob/Documents/RetroArch/system" # default: "./system"
# Run while window is unfocused (true: run, false: pause)
run_unfocus=false # default: false
[audio]
# Audio volume, min: 0.0, max: 1.0
volume=0.5 # default: 0.5
[save]
# Dump savedata on exiting app.
# If savefile exists, overwrite it. If not, create savefile (".sav") in ROM directory.
# Currently, this option is disabled by default, but I plan to enable it in the future.
autosave=false # default: false
# When loading a ROM file, the savefile in the same directory will also be loaded. The savefile extension can be defined below.
autoload=true # default: true
# Save file extensions
# Save states (e.g. ".duc", ".ml1") cannot be used as savefile.
extensions=[".sav", ".srm", ".dsv"] # default: [".sav", ".srm"]
[logger]
enable=true # default: false
level="info" # default: "info"Console mapping is as follows:
| Type | A | B | Start | Select | D-pad | L | R | X | Y |
|---|---|---|---|---|---|---|---|---|---|
| Keyboard | X | Z | Enter | Backspace | ↑ ↓ ← → | LShift | RShift | S | A |
- Pause/Resume: Ctrl + P
Gamepad are also supported. Currently, you cannot change key mapping.
Require "Go" and "make"
gh repo clone akatsuki105/dawngba # or git clone https://github.com/akatsuki105/dawngba.git
cd dawngbamake -j4 build # use golang
./build/dawngba path/to/rom.gba # or path/to/rom.nds








