Skip to content

feat(gameboy): implement native Game Boy DMG/GBC sound driver, target, and CI workflow - #13

Merged
ClausValcaTD merged 4 commits into
mainfrom
feat/gameboy-target-driver-13837352003754365017
Oct 21, 2026
Merged

ClausValcaTD merged 4 commits into
mainfrom
feat/gameboy-target-driver-13837352003754365017

Conversation

@ClausValcaTD

Copy link
Copy Markdown
Collaborator

Implemented native Game Boy (DMG/GBC) target support for RetroDJ:

  1. Created Game Boy sound driver drivers/gb_sound/gb_rdj.c controlling Pulse 1, Pulse 2, Wavetable, and Noise channels.
  2. Created Game Boy real hardware backend backends/backend_gb_hw.c handling memory-mapped APU register writes ($FF10-$FF26) and wait_vbl_done().
  3. Added Game Boy target directory targets/gameboy/ with Makefile (GBDK-2020 lcc), main.c, and a 20x18 text-mode tracker UI (ui_gb.c).
  4. Created GitHub Actions workflow .github/workflows/build-gameboy.yml with workflow_dispatch manual trigger support.
  5. Integrated Game Boy driver & backend into PC host integration tests (test_runner).

PR created automatically by Jules for task 13837352003754365017 started by @ClausValcaTD

…, and CI workflow

- Implemented hardware APU driver in drivers/gb_sound/gb_rdj.c controlling Pulse 1, Pulse 2, Wavetable, and Noise channels.
- Implemented real hardware backend in backends/backend_gb_hw.c with direct APU memory-mapped register access and wait_vbl_done().
- Added native 20x18 Game Boy tracker UI and build pipeline under targets/gameboy/ producing out/rom.gb via GBDK-2020 lcc.
- Created dedicated CI workflow .github/workflows/build-gameboy.yml with manual workflow_dispatch support.
- Integrated Game Boy driver/backend into PC host test runner with zero regressions.

Co-authored-by: ClausValcaTD <193546948+ClausValcaTD@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

google-labs-jules Bot and others added 3 commits October 21, 2026 18:05
…nd workflow

- Updated targets/gameboy/Makefile to automatically append trailing slash to GBDKDIR when required by lcc.
- Updated .github/workflows/build-gameboy.yml to export GBDKDIR with trailing slash in GITHUB_ENV.

Co-authored-by: ClausValcaTD <193546948+ClausValcaTD@users.noreply.github.com>
…olor palettes

- Added -Wm-yc CGB Dual Mode header flag to targets/gameboy/Makefile and output rom.gbc alongside rom.gb.
- Implemented runtime CGB hardware check (_cpu == CGB_TYPE) in ui_gb.c to apply vibrant LSDj-inspired background palettes with DMG fallback.
- Updated .github/workflows/build-gameboy.yml CI workflow to build, verify, and upload rom.gbc artifacts.

Co-authored-by: ClausValcaTD <193546948+ClausValcaTD@users.noreply.github.com>
…olor palettes

- Added -Wm-yc CGB Dual Mode header flag to targets/gameboy/Makefile and output rom.gbc alongside rom.gb.
- Implemented runtime CGB hardware check (_cpu == CGB_TYPE) in ui_gb.c to apply vibrant LSDj-inspired background palettes with DMG fallback.
- Updated .github/workflows/build-gameboy.yml CI workflow to build, verify, and upload rom.gbc artifacts.

Co-authored-by: ClausValcaTD <193546948+ClausValcaTD@users.noreply.github.com>
@ClausValcaTD
ClausValcaTD merged commit f7b1477 into main Oct 21, 2026
4 checks passed
@ClausValcaTD
ClausValcaTD deleted the feat/gameboy-target-driver-13837352003754365017 branch October 21, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant