|
3 hours ago | |
---|---|---|
.github/workflows | 1 month ago | |
.vscode | 1 month ago | |
artwork | 1 month ago | |
data | 2 weeks ago | |
docs | 2 weeks ago | |
src | 3 hours ago | |
util | 2 weeks ago | |
.gitignore | 3 weeks ago | |
COPYING | 2 months ago | |
Makefile | 2 weeks ago | |
README.md | 2 weeks ago |
My first homebrew GameBoy game. A port of the GTA San Andreas Arcade Game Duality.
You need the GBDK-2020 to build the ROM and Gearboy, SameBoy, Emulicious or BGB 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_run
Use 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 run
You can also directly write to a flashcart using flashgbx
with make flash
.
I’m using Kate 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. 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 may come in handy.
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 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 <http://www.gnu.org/licenses/>.
The util/cvtsample.py
script is based on a GBDK example.
The 8x8 font is public domain.
The included cartridge label graphic in artwork/cart_label.xcf
is based on the ‘Cartridge-Label-Templates’ by Dinierto licensed as CC0.
The included cartridge graphic in artwork/cartridge.xcf
is based on the ‘Front-End-Assets’ by Duimon.