https://github.com/xythobuz/duality
GameBoy (Color) port of the GTA San Andreas arcade game Duality
https://github.com/xythobuz/duality
arcade gameboy gameboy-color gameboy-color-game gbdk gtasa
Last synced: 2 months ago
JSON representation
GameBoy (Color) port of the GTA San Andreas arcade game Duality
- Host: GitHub
- URL: https://github.com/xythobuz/duality
- Owner: xythobuz
- License: gpl-3.0
- Created: 2025-05-30T00:22:56.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-07-28T20:18:09.000Z (3 months ago)
- Last Synced: 2025-07-28T22:20:39.845Z (3 months ago)
- Topics: arcade, gameboy, gameboy-color, gameboy-color-game, gbdk, gtasa
- Language: C
- Homepage: https://xythobuz.github.io/Duality/
- Size: 2.16 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# Duality

My first homebrew GameBoy game.
A port of the GTA San Andreas Arcade Game Duality.[Try it out online!](https://xythobuz.github.io/Duality)
[](https://xythobuz.github.io/Duality)
## Getting Started
You need the [GBDK-2020](https://gbdk.org/docs/api/docs_getting_started.html) to build the ROM and [Gearboy](https://github.com/drhelius/Gearboy), [SameBoy](https://sameboy.github.io/), [Emulicious](https://emulicious.net/) or [BGB](https://bgb.bircd.org/) to emulate it comfortably.
Then just build a debug version and run it in the emulator, with debug symbols already loaded.make run
make sgb_run
make bgb_runUse SameBoy to test out the SGB border feature.
Also see below for symbolic debugging with Emulicious.For the release build, simply add `GBDK_RELEASE=1` to your make invocation after running `make clean`.
make clean
make GBDK_RELEASE=1 runYou can also directly write to a flashcart using `flashgbx` with `make flash`.
## IDE Integration
I'm using [Kate](https://kate-editor.org/) which supports VSCode-style LSP and debugging with integrated plugins.
To generate a `compile_commands.json` for LSPs using `bear` run:
make compile_commands.json
You can also debug using [Emulicious](https://emulicious.net/).
Add something like the following to your Kate Debugger user configuration:{
"dap": {
"emulicious": {
"url": "https://emulicious.net/",
"run": {
"command": ["emulicious", "-remotedebug", "${#run.port}"],
"port": 0,
"redirectStderr": true,
"redirectStdout": true,
"supportsSourceRequest": true
},
"configurations": {
"launch (debug)": {
"request": {
"command": "launch",
"mode": "debug",
"program": "${file}",
"cwd": "${workdir}",
"stopOnEntry": true
}
}
}
}
}
}Unfortunately you will have to edit the hard-coded paths in `.vscode/launch.json`, I haven't been able to use variables there for some reason.
For hard debugging cases the reverse stepping feature of the debugger in [GameRoy](https://github.com/Rodrigodd/gameroy) may come in handy.
## License
The source code of this Duality GameBoy clone is licensed as GPLv3.
A copy of the license can be found in `COPYING`.It uses the [GBDK-2020](https://gbdk.org) libraries and is based on their example code.
The files `sgb_border.c` and `sgb_border.h` are copied directly from their `sgb_border` example.This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.See .
The `util/cvtsample.py` script is based on a [GBDK example](https://github.com/gbdk-2020/gbdk-2020/blob/develop/gbdk-lib/examples/gb/wav_sample/utils/cvtsample.py).
The [8x8 font](https://github.com/DavidDiPaola/font_vincent) is public domain.
The included cartridge label graphic in `artwork/cart_label.xcf` is based on the ['Cartridge-Label-Templates' by Dinierto](https://github.com/Dinierto/Cartridge-Label-Templates) licensed as CC0.
The included cartridge graphic in `artwork/cartridge.xcf` is based on the ['Front-End-Assets' by Duimon](https://github.com/Duimon/Front-End-Assets).