|
1 month ago | |
---|---|---|
.github/workflows | 1 month ago | |
.vscode | 1 month ago | |
artwork | 1 month ago | |
data | 1 month ago | |
docs | 1 month ago | |
src | 1 month ago | |
util | 1 month ago | |
.gitignore | 1 month ago | |
COPYING | 2 months ago | |
Makefile | 1 month ago | |
README.md | 1 month 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 [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. 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.
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 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.