Repository navigation
Amalgam: --game-select-dual-boot adds a retro-go entry after the firmware switch - #122
Merged
Merged
Conversation
The amalgam forced --game-select-dual-boot on for its firmware switch, so the flag did nothing and the dual-boot target was only reachable with LEFT+GAME. The switch entry is now always there on its own, and --game-select-dual-boot adds the DUAL BOOT entry after it, as in single-model builds (its -icon/-label options style that entry). Both models' menus take a table of custom entries (game_select_custom_t), and Device.build_game_select_icons builds their icons. The 5 golden configs with a game-select menu change; the other 9 are byte-identical. zelda_menu_test.py checks both entries with --amalgam --dual-boot, and --sd-bootloader puts its spin image at 0x08032000. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The amalgam forced
--game-select-dual-booton for its firmware switch, so passing the flag did nothing and the dual-boot target (retro-go, or Sylverb's SD bootloader with--sd-bootloader) was only reachable with LEFT+GAME.Now each firmware's GAME menu always has the switch entry (labeled ZELDA/MARIO), and
--game-select-dual-bootadds the DUAL BOOT entry after it, as in single-model builds. It only shows when a target is flashed, and in the amalgam--game-select-dual-boot-icon/-labelstyle that entry.Changes
game_select_custom_t: icon pointer, RAM buffer, launch function), with shared helpers ingame_select.c.game_select_launch/game_select_target_validare replaced bygame_select_switch(amalgam only) plus the existinglaunch_dual_boot/dual_boot_target_valid.Device.build_game_select_iconsbuilds every custom entry's icon (the switch label comes frompatches/amalgam.py). Mario and Zelda place a list of icons (internal flash if they fit, else external).zelda_menu_test.py:--amalgam --dual-boot spin|erasedchecks both menus' entries, and--sd-bootloaderputs the spin image at 0x08032000.tools/emu/README.mdupdated. README's suggested amalgam command now includes--game-select-dual-boot.Testing
pytest tests/: 464 passed. 5 golden configs re-recorded (the ones with a game-select menu: the refactor changes single-model--game-select-dual-bootcode layout too); the other 9 are byte-identical.--device=amalgam --sd-bootloader --game-select-dual-boot: Mario's menu wraps through SMB1, SMB2, BALL, ZELDA, RETRO-GO; switching to Zelda works; Zelda shows 7 rows; A on RETRO-GO runs the target at 0x08032000.--sd-bootloader) still switches back to Mario; single-model Mariomario_menu_test.pypasses with bank 2spinanderased.🤖 Generated with Claude Code