guac-rf (Guac Rodrigo’s Fork): NDS, GBA, GBC, DMG, Pokémon Mini Emulator
Guac is an Emulator written in golang for Gameboy, Pokémon Mini, Gameboy Color, Gameboy
Advance, and Nintendo DS handheld consoles.
Original Breakdown
NDS Update



Building
Building from source is possible with golang > 1.26.0, by following these simple steps:
- Clone this repository through git:
git clone https://github.com/SplaatSites/guac.git
(Optional) Update the cloned repo
git pull
- Build the project
go build .
Getting Started
In both command line and console mode, save files are placed in the same directory
as the rom file (ex. "toki_tori.gbc", "toki_tori.gbc.save")
Command line
Run the executable with a rom path (gb, gbc, gba, nds, min are required extensions) to
immediately enter the game.
.\guac -r="../rom/pokemon_emerald.gba"
Console Mode
Run the executable without flags to use console mode, which initalizes a Game
Selection Screen.
.\guac
Setting up Console Mode
At root, create a "roms.json" file. This file will hold the game metadata in the
following format. At this time Art must be 1:1 pngs or jpgs.
Watch trailing commas in json, it got me many a times.
[
{
"RomPath": "./rom/gba/the_minish_cap.gba",
"ArtPath": "./art/the_minish_cap.png"
}
...]
Configuration
Emulator settings can be configured using the config.toml file at root.
If you would like to return to the default config.toml file, delete any
present config.toml file and run the emulator.
Configurable Options
General
- Keyboard / Controller Input
- Backdrop Color
- Menu Game Density
- FPS Control
GB / GBC
- DMG Gameboy Palette
GBA
- Optimizations (Idle looping, sound clock updated)
NDS
- Jit Parameters
- Bios and Firmware Options
- Screen Layout, Sizing and Rotation
- Real Time Clock offset
- 3D Scene Export options
Pokémon Mini
- WIP
Testing
Check the ./emu folder for individual consoles. These consoles will have
"testing.md" files showing currently passing tests and tested games.