{"id":30206728,"url":"https://github.com/xythobuz/duality","last_synced_at":"2025-08-13T15:51:24.039Z","repository":{"id":296308187,"uuid":"992937246","full_name":"xythobuz/Duality","owner":"xythobuz","description":"GameBoy (Color) port of the GTA San Andreas arcade game Duality","archived":false,"fork":false,"pushed_at":"2025-07-28T20:18:09.000Z","size":2266,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-28T22:20:39.845Z","etag":null,"topics":["arcade","gameboy","gameboy-color","gameboy-color-game","gbdk","gtasa"],"latest_commit_sha":null,"homepage":"https://xythobuz.github.io/Duality/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xythobuz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-30T00:22:56.000Z","updated_at":"2025-07-28T20:18:13.000Z","dependencies_parsed_at":"2025-05-30T01:27:03.837Z","dependency_job_id":"1207ba65-3897-4642-9b55-af4d9d34d65f","html_url":"https://github.com/xythobuz/Duality","commit_stats":null,"previous_names":["xythobuz/duality"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xythobuz/Duality","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xythobuz%2FDuality","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xythobuz%2FDuality/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xythobuz%2FDuality/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xythobuz%2FDuality/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xythobuz","download_url":"https://codeload.github.com/xythobuz/Duality/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xythobuz%2FDuality/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270268792,"owners_count":24555648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcade","gameboy","gameboy-color","gameboy-color-game","gbdk","gtasa"],"created_at":"2025-08-13T15:51:20.222Z","updated_at":"2025-08-13T15:51:24.012Z","avatar_url":"https://github.com/xythobuz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Duality\n\n![ROM](https://github.com/xythobuz/Duality/actions/workflows/build.yml/badge.svg)\n![Web](https://github.com/xythobuz/Duality/actions/workflows/docs.yml/badge.svg)\n\nMy first homebrew GameBoy game.\nA port of the GTA San Andreas Arcade Game Duality.\n\n[Try it out online!](https://xythobuz.github.io/Duality)\n\n[![Cartridge](https://xythobuz.github.io/Duality/cartridge.png)](https://xythobuz.github.io/Duality)\n\n## Getting Started\n\nYou 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.\nThen just build a debug version and run it in the emulator, with debug symbols already loaded.\n\n    make run\n    make sgb_run\n    make bgb_run\n\nUse SameBoy to test out the SGB border feature.\nAlso see below for symbolic debugging with Emulicious.\n\nFor the release build, simply add `GBDK_RELEASE=1` to your make invocation after running `make clean`.\n\n    make clean\n    make GBDK_RELEASE=1 run\n\nYou can also directly write to a flashcart using `flashgbx` with `make flash`.\n\n## IDE Integration\n\nI'm using [Kate](https://kate-editor.org/) which supports VSCode-style LSP and debugging with integrated plugins.\n\nTo generate a `compile_commands.json` for LSPs using `bear` run:\n\n    make compile_commands.json\n\nYou can also debug using [Emulicious](https://emulicious.net/).\nAdd something like the following to your Kate Debugger user configuration:\n\n    {\n        \"dap\": {\n            \"emulicious\": {\n                \"url\": \"https://emulicious.net/\",\n                \"run\": {\n                    \"command\": [\"emulicious\", \"-remotedebug\", \"${#run.port}\"],\n                    \"port\": 0,\n                    \"redirectStderr\": true,\n                    \"redirectStdout\": true,\n                    \"supportsSourceRequest\": true\n                },\n                \"configurations\": {\n                    \"launch (debug)\": {\n                        \"request\": {\n                            \"command\": \"launch\",\n                            \"mode\": \"debug\",\n                            \"program\": \"${file}\",\n                            \"cwd\": \"${workdir}\",\n                            \"stopOnEntry\": true\n                        }\n                    }\n                }\n            }\n        }\n    }\n\nUnfortunately 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.\n\nFor hard debugging cases the reverse stepping feature of the debugger in [GameRoy](https://github.com/Rodrigodd/gameroy) may come in handy.\n\n## License\n\nThe source code of this Duality GameBoy clone is licensed as GPLv3.\nA copy of the license can be found in `COPYING`.\n\nIt uses the [GBDK-2020](https://gbdk.org) libraries and is based on their example code.\nThe files `sgb_border.c` and `sgb_border.h` are copied directly from their `sgb_border` example.\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    See \u003chttp://www.gnu.org/licenses/\u003e.\n\nThe `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).\n\nThe [8x8 font](https://github.com/DavidDiPaola/font_vincent) is public domain.\n\nThe 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.\n\nThe included cartridge graphic in `artwork/cartridge.xcf` is based on the ['Front-End-Assets' by Duimon](https://github.com/Duimon/Front-End-Assets).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxythobuz%2Fduality","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxythobuz%2Fduality","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxythobuz%2Fduality/lists"}