Atari 800: v2 core-option categories + fix boot-tape reload on reset#137
Merged
LibretroAdmin merged 2 commits intoJul 12, 2026
Merged
Conversation
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).
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.
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_centerreferencing a"5200"category that doesn't exist. This distributes every option across the v2 categorized menu:"5200"category key)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.cconsumesCASSETTE_hold_startonce the tape boots (CASSETTE_hold_start = CASSETTE_hold_start_on_reboot), andhold_start_on_rebootdefaulted to 0. So after the first boothold_startwas 0, andretro_reset's cold-start no longer held START — the rewound tape never booted. NowCASSETTE_hold_start_on_rebootis set alongsideCASSETTE_hold_startfrom 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.