Skip to content

Atari 800: v2 core-option categories + fix boot-tape reload on reset#137

Merged
LibretroAdmin merged 2 commits into
libretro:masterfrom
WizzardSK:core-options-v2-categories
Jul 12, 2026
Merged

Atari 800: v2 core-option categories + fix boot-tape reload on reset#137
LibretroAdmin merged 2 commits into
libretro:masterfrom
WizzardSK:core-options-v2-categories

Conversation

@WizzardSK

@WizzardSK WizzardSK commented Jul 12, 2026

Copy link
Copy Markdown

Two small Atari 800 improvements.

1. Group the flat option list into v2 categories

The core-options list had grown long and mostly uncategorized — 24 options sat in the flat root, plus a pot_analog_center referencing a "5200" category that doesn't exist. This distributes every option across the v2 categorized menu:

  • System — Atari model, OS/BASIC ROMs, RAM expansions (Mosaic/Axlon/MapRAM), XEP80, R-Time 8, stereo POKEY, legacy config file
  • Video / Input — unchanged, plus Joystick Autofire and the 5200 analog center moved into Input (the latter also fixes its dangling "5200" category key)
  • Media (new) — SIO acceleration, cassette boot, slow binary loading, cartridge autodetect, host P:/R: device redirection
  • On-Screen Display (new) — speed %, disk/tape activity, sector/block counter, 1200XL LEDs

Data-only change; no behaviour change. The intl file needs no edits (options_intl[] only wires English).

2. Reboot boot tapes on reset instead of dropping to self-test

A machine-language boot tape loaded fine the first time but would not reload on Reset — the machine came up on the AltirraOS/self-test screen instead.

Cause: the cassette boot handshake in gtia.c consumes CASSETTE_hold_start once the tape boots (CASSETTE_hold_start = CASSETTE_hold_start_on_reboot), and hold_start_on_reboot defaulted to 0. So after the first boot hold_start was 0, and retro_reset's cold-start no longer held START — the rewound tape never booted. Now CASSETTE_hold_start_on_reboot is set alongside CASSETTE_hold_start from the "Cassette boot" option (enabled → 1, disabled → 0), so every reset re-boots the tape; BASIC/CLOAD tapes (disabled) still come up at the prompt.

Verified end-to-end with a real .cas boot tape (Ace of Aces): with the fix, Reset reloads to the game's title screen; without it, Reset lands on the AltirraOS boot screen.

The option list had grown long and mostly uncategorized (24 options in
the flat root plus a stray reference to a non-existent "5200"
category). Distribute every option across the v2 categorized menu so the
list reads at a glance:

- System: Atari model, OS/BASIC ROMs, RAM expansions (Mosaic/Axlon/
  MapRAM), XEP80, R-Time 8, stereo POKEY, legacy config file
- Video / Input: unchanged, plus Joystick Autofire and the 5200 analog
  center moved into Input (the latter also fixes its dangling "5200"
  category_key)
- Media (new): SIO acceleration, cassette boot, slow binary loading,
  cartridge autodetect, host P:/R: device redirection
- On-Screen Display (new): speed %, disk/tape activity, sector/block
  counter, 1200XL LEDs

Data-only change to option_defs_us category keys + option_cats_us; no
behaviour change. Builds clean; RetroArch registers it via
SET_CORE_OPTIONS_V2_INTL with no errors.
A machine-language boot tape loaded fine the first time but would not
reload on Reset -- the machine came up on the green self-test screen
instead.

Cause: the cassette boot handshake in gtia.c consumes CASSETTE_hold_start
once the tape boots (`CASSETTE_hold_start = CASSETTE_hold_start_on_reboot`),
and hold_start_on_reboot defaulted to 0. So after the first boot
hold_start was 0, and retro_reset's cold-start no longer held START, so
the (rewound) tape never booted and the machine fell through to
self-test.

Set CASSETTE_hold_start_on_reboot alongside CASSETTE_hold_start from the
"Cassette boot" core option: enabled -> 1 (hold_start survives the boot
and every subsequent reset re-boots the tape), disabled -> 0 (unchanged;
BASIC/CLOAD tapes still come up at the prompt for manual loading, so the
recent reset fix for those is preserved).
@WizzardSK WizzardSK changed the title Core options: group the flat option list into v2 categories Atari 800: v2 core-option categories + fix boot-tape reload on reset Jul 12, 2026
@LibretroAdmin LibretroAdmin merged commit 1983379 into libretro:master Jul 12, 2026
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.

2 participants