Skip to content

GBA and NDS emulator written in Go.

License

Notifications You must be signed in to change notification settings

akatsuki105/dawngba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DawnGBA

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)

🏞 Screenshots

GBA



NDS

👾 Usage

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.nds

⚙️ Config

The 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"

🎮 Controls

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.

🪛 Build from source

Require "Go" and "make"

gh repo clone akatsuki105/dawngba # or  git clone https://github.com/akatsuki105/dawngba.git
cd dawngba
make -j4 build # use golang
./build/dawngba path/to/rom.gba # or path/to/rom.nds