bios_hle: default ON (HLE boot-skip is the shipping default)

Flip the framework default bios_hle false->true so every game boots via the HLE
shell-skip by default (instant boot for players) instead of the real BIOS intro.

This changes NOTHING institutional: LLE (the recompiled BIOS) is still what we
BUILD against, the reference implementation, and the oracle — fully linked,
load-bearing, and the target of every accuracy check. HLE is a QoL layer on top;
the faithful core is proven, so defaulting the convenience on is an
enhancement-phase load-time win, not an architecture change. Opt OUT per-game
with [runtime] bios_hle = false or env PSX_BIOS_HLE=0. Codegen-neutral
(config_loader is not a codegen-hash source); games inherit it on next build.
New bring-up + all verification stay on LLE.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthew Stanley
2026-07-06 17:57:03 -07:00
parent f0e7197b63
commit 864ac4039d
2 changed files with 25 additions and 14 deletions
+13 -5
View File
@@ -114,11 +114,19 @@ first-class High-Level Emulation tier alongside LLE, modeled on
`F:/Projects/gbarecomp/gbarecomp` (`src/runtime/bios_hle.{h,cpp}`, commits
23a57ce + 168e313):
1. **Two selectable backends, LLE default.** A null-by-default hook intercepts
BIOS service dispatch before the recompiled BIOS runs; selection is
per-game config (`[runtime] bios_hle = true`) + env override (PSX_BIOS_HLE), with a startup
banner naming the active backend. With HLE off the build is byte-identical
to a build without the tier.
1. **Two selectable backends. AMENDMENT 2026-07-06 — HLE is now the DEFAULT, but
this changes NOTHING institutional.** We still BUILD LLE: the recompiled BIOS
is the foundation we architect against, the reference implementation, and the
oracle — fully linked, load-bearing, selectable, and the thing every accuracy
check runs against. HLE is a QoL layer we lay ON TOP (instant boot-skip for
players); the faithful LLE core is proven, so defaulting the convenience on is
an enhancement-phase load-time win, not an architecture change. Mechanically
this only flips the framework runtime default `bios_hle` false→true
(`config_loader.h`); opt OUT per-game with `[runtime] bios_hle = false` or env
`PSX_BIOS_HLE=0`. A null-by-default hook intercepts BIOS service dispatch
before the recompiled BIOS runs; a startup banner names the active backend.
With HLE off the build is byte-identical to a build without the tier. Keep new
bring-up and all verification on LLE; HLE-default is the shipping convenience.
2. **LLE remains the reference implementation and the oracle.** It stays fully
linked, load-bearing, and selectable; every BIOS call the HLE layer does
not implement transparently falls through to the recompiled BIOS, so HLE is
+12 -9
View File
@@ -92,15 +92,18 @@ struct RuntimeConfig {
// at host speed. Kept so existing game.toml/settings.toml keep working.
bool fast_boot = false;
// bios_hle: opt-in High-Level Emulation tier for BIOS kernel services
// (CLAUDE.md §0 amendment 2026-07-02, the gbarecomp model). Default off =
// LLE (the recompiled BIOS), which remains the reference implementation
// and the oracle. When on, implemented kernel services are computed
// in-runtime against the real guest kernel structures and every other
// call falls through to LLE. Implies the HLE boot shell-skip unless
// bios_hle_keep_intro. PSX_BIOS_HLE / PSX_BIOS_HLE_KEEP_INTRO env
// override at launch. Runtime: runtime/src/bios_hle.c.
bool bios_hle = false;
// bios_hle: High-Level Emulation tier for BIOS kernel services
// (CLAUDE.md §0 amendment 2026-07-02, the gbarecomp model). DEFAULT ON as of
// 2026-07-06 (user-directed player default: instant boot-skip for every
// game). Opt OUT with [runtime] bios_hle = false or env PSX_BIOS_HLE=0 to run
// pure LLE (the recompiled BIOS), which REMAINS the reference implementation
// and the oracle — this only flips the default, LLE is still fully linked and
// selectable. When on, implemented kernel services are computed in-runtime
// against the real guest kernel structures and every other call falls through
// to LLE. Implies the HLE boot shell-skip unless bios_hle_keep_intro.
// PSX_BIOS_HLE / PSX_BIOS_HLE_KEEP_INTRO env override at launch.
// Runtime: runtime/src/bios_hle.c.
bool bios_hle = true;
bool bios_hle_keep_intro = false;
// hle_scheduler: the HLE tier's standing SUBSYSTEM REPLACEMENT for guest