GameBoy (Color) port of the GTA San Andreas arcade game Duality
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Thomas B 082923aca8 more multiplayer preparations, packet tx rx 2ヶ月前
.github/workflows dont add debug build to actual releases 3ヶ月前
.vscode add emulicious and debugging support for kate 3ヶ月前
artwork add some sprites to cart artwork 2ヶ月前
data add a simple 8x8 font (for gbc mode only) 2ヶ月前
docs add some sprites to cart artwork 2ヶ月前
src more multiplayer preparations, packet tx rx 2ヶ月前
util add wav file conversion and playback 3ヶ月前
.gitignore start adding gb printer support 2ヶ月前
COPYING add licensing stuff 3ヶ月前
Makefile more multiplayer preparations, packet tx rx 2ヶ月前
README.md add a simple 8x8 font (for gbc mode only) 2ヶ月前

README.md

Duality

ROM Web

My first homebrew GameBoy game. A port of the GTA San Andreas Arcade Game Duality.

Try it out online!

Cartridge

Getting Started

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.

IDE Integration

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.

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