Commit Graph
2 Commits
Author SHA1 Message Date
Joseph MattielloandClaude Opus 5.5 4f74b83960 fix(app): BIOS selector rows get unique labels and ImGui IDs (#932)
The BIOS combo labelled each row with the file name, title and CRC, so one
dump in two folders (or a library folder that holds the system folder) gave
rows with identical text. Identical text is an identical ImGui ID, so a click
on the second copy selected the first one's path. Rows are now built by
bios::picksFor (testable without a GPU): one row per file on disk, a repeated
label gets its folder appended, and every row is drawn inside a PushID of its
path. A stored choice is matched by file identity, not by string. The cheat
set picker had the same shape (a set can be both a match and a similar name)
and gets a PushID per list.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 02:16:44 -04:00
Joseph MattielloandClaude Sonnet 5.5 d4242dc295 feat(app): BIOS choice, boot and import
The desktop app can now choose the exact boot ROM / CD BIOS file the core runs,
boot a BIOS on its own and import a BIOS file.

Root causes (maintainer report: BIOS import/scanning and booting the BIOS for CD
is broken; Auto does not allow booting a local file):
- biosUse() compared names and folders case-sensitively while classifyBios() does
  not, so JAGCD.BIN / ATARI - JAGUAR CD/ were labelled 'rename it' on volumes
  where the core finds them.
- A BIOS dropped on the window was run as a cartridge; the only BIOS action was a
  copy under a fixed name, which a cart boot ROM ignores unless Cart BIOS Type =
  Custom and BIOS (Cartridges) = Real.
- CD Boot Mode / BIOS options were reachable only through the generic Core options
  tab, which is empty before a load and hides the CD options while a cartridge
  runs (update_option_visibility); no-content boot could only enter the CD BIOS.

Adds bios.h/.cpp and bios_ui.cpp (Settings > BIOS, the top of the BIOS & system
tab, tile menu: Use / Boot / Copy), CoreHost support for the new private calls,
config keys bios.cart / bios.cd, drop and dialog import into system/bios/, File >
Boot BIOS, and --boot-bios / --cart-bios / --cd-bios / --expect-bios (headless
BIOS-only boots).  Tests: bios_unit, bios_e2e, smoke_boot_cd_bios,
smoke_boot_cart_rom.

Refs #838 Refs #833

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 19:26:41 -04:00