From 1c005abaf41d3cb5f00f139034bb6eb082a2e2ab Mon Sep 17 00:00:00 2001 From: Matthew Stanley <1379tech@gmail.com> Date: Thu, 23 Jul 2026 00:29:55 -0700 Subject: [PATCH] Use game-root ImGui launcher --- CMakeLists.txt | 15 +-------------- RELEASE_NOTES.md | 4 ++-- docs/framework_pin_history.md | 3 +-- psxrecomp | 2 +- recomp-ui | 2 +- tools/build-linux.sh | 2 +- tools/package_release.ps1 | 4 ++-- 7 files changed, 9 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ebfc664..c6ca701 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,22 +42,9 @@ psxrecomp_add_runtime_target(psx-runtime WINDOW_TITLE "Tomba! Recompiled" DEFAULT_BIOS_PATH "${PSXRECOMP_ROOT}/bios/SCPH1001.BIN" DEFAULT_GAME_CONFIG_PATH "game.toml" + LAUNCHER_BOXART "${CMAKE_SOURCE_DIR}/recomp/launcher/boxart.tga" ) -# Shared recomp-ui Dear ImGui launcher. Wires in the PSX-themed launcher UI -# (see main.cpp RECOMP_LAUNCHER gate) instead of the framework's default RmlUi -# launcher. recomp-ui is a real git submodule (github.com/mstan/recomp-ui, -# pinned via the recomp-ui gitlink); locally it is a directory junction to the -# working checkout so builds stay offline and reproducible like everything else. -if(PSX_LAUNCHER) - include("${CMAKE_SOURCE_DIR}/recomp-ui/recomp_ui.cmake") - recomp_target_launcher_ui(psx-runtime - BOXART "${CMAKE_SOURCE_DIR}/recomp/launcher/boxart.tga" - PAD "${CMAKE_SOURCE_DIR}/recomp/launcher/pad.tga" - BRAND "${CMAKE_SOURCE_DIR}/recomp/launcher/brand.tga" - ) -endif() - # First-divergence co-sim oracle build (COSIM_ORACLE.md): clean, deterministic, # PSX_NO_DEBUG_TOOLS + PSX_COSIM. Two of these (one normal, one PSX_FORCE_INTERP=1) # are cycle-lockstepped by tools/cosim.py to prove Tomba's compiled backend matches diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 6fd683d..b0f1e35 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ # Tomba! Recompiled — v0.9.0-alpha -This release replaces the old RmlUi launcher with the shared Dear ImGui +This release replaces the old in-tree launcher with the shared Dear ImGui launcher. Its DPI-independent layout keeps the Start Game button and settings accessible at Windows display scaling levels such as 125%. This addresses the launcher scaling failure reported in issue #11. @@ -45,7 +45,7 @@ overhauled OpenGL path as the default renderer. - OpenGL presentation no longer performs synchronous per-frame GPU readbacks. - Painter-ordered primitive batching substantially reduces submission overhead while preserving PlayStation draw order and transparency behavior. -- The RmlUi launcher exposes the current renderer and high-refresh presentation +- The launcher exposes the current renderer and high-refresh presentation controls. Gameplay and audio simulation remain at the original guest rate. - The software renderer remains available as a reference and fallback. diff --git a/docs/framework_pin_history.md b/docs/framework_pin_history.md index 748f527..dc0410b 100644 --- a/docs/framework_pin_history.md +++ b/docs/framework_pin_history.md @@ -288,7 +288,7 @@ build each Tomba release was cut against. # Bumped 2026-06-12 for v0.1.8-alpha (GL default + launcher): re-pointed to # psxrecomp master (4ea9ecd, pushed to origin). master already contains the GL # renderer v2 merge (7ef6415), the SPU/CRT verified-enhancement shadow -# (8a4ac4e, default OFF), and the full RmlUi launcher (Phases 1-5). Tomba now +# (8a4ac4e, default OFF), and the former in-tree launcher (Phases 1-5). Tomba now # defaults to the GPU renderer (game.toml renderer = "opengl") to fix the # fill-bound software-rasterizer lag in heavy scenes (mushroom forest). # Runtime-only; no emitter/regen impact, overlay ABI stays v2 (the v1->v2 cache @@ -302,4 +302,3 @@ build each Tomba release was cut against. # freeze fix. feat/overlay-jit-cache was fully merged into master and deleted. # 2026-06-06 (d22c9ce / 7249123): mmx6 framework + diagnostic tooling. # 2026-06-07: re-pointed branch -> feat/overlay-jit-cache (same commit then). - diff --git a/psxrecomp b/psxrecomp index 647b817..f86087a 160000 --- a/psxrecomp +++ b/psxrecomp @@ -1 +1 @@ -Subproject commit 647b81752ffd83a88e541ace90cf692bb461f17a +Subproject commit f86087ad94e53fba5ec0bb146ae94f789c60803a diff --git a/recomp-ui b/recomp-ui index aead5ee..44f549c 160000 --- a/recomp-ui +++ b/recomp-ui @@ -1 +1 @@ -Subproject commit aead5eefc03282971cebb999cf6bc3bdeb5fc1c9 +Subproject commit 44f549c0f159df343cba9d8c3842dbc7e592eb08 diff --git a/tools/build-linux.sh b/tools/build-linux.sh index 9afd298..4fdf516 100644 --- a/tools/build-linux.sh +++ b/tools/build-linux.sh @@ -40,7 +40,7 @@ PREBUILD_CMD="" POSTBUILD_CMD="" # prod/debug -> framework cmake flags. PSX_DEBUG_TOOLS OFF (the default) strips the # TCP debug server + heartbeat + per-block recording (PSX_NO_DEBUG_TOOLS). The Beetle -# oracle (PSX_ORACLE_BUILD) stays OFF; the RmlUi launcher (PSX_LAUNCHER) stays ON. +# Oracle mode stays off; the game target wires in the shared Dear ImGui launcher. PROD_CMAKE_FLAGS=( -DPSX_DEBUG_TOOLS=OFF ) DEBUG_CMAKE_FLAGS=( -DPSX_DEBUG_TOOLS=ON ) # ============================================================================ diff --git a/tools/package_release.ps1 b/tools/package_release.ps1 index 4ee9424..a73a617 100644 --- a/tools/package_release.ps1 +++ b/tools/package_release.ps1 @@ -38,7 +38,7 @@ Invoke-Native { cmake --build $RecompDir --target psxrecomp-game -j $env:NUMBER_ & (Join-Path $RecompDir "psxrecomp-game.exe") --config (Join-Path $Root "game.toml") if ($LASTEXITCODE -ne 0) { throw "game regen failed" } -Invoke-Native { cmake -S $Root -B $BuildPath -G Ninja -DCMAKE_BUILD_TYPE=Release -DPSX_DEBUG_TOOLS=OFF -DPSX_LAUNCHER=ON } "cmake configure" +Invoke-Native { cmake -S $Root -B $BuildPath -G Ninja -DCMAKE_BUILD_TYPE=Release -DPSX_DEBUG_TOOLS=OFF } "cmake configure" Invoke-Native { cmake --build $BuildPath -j $env:NUMBER_OF_PROCESSORS } "cmake build" if (Test-Path $StageRoot) { @@ -64,7 +64,7 @@ if (Test-Path (Join-Path $Root "RELEASE_NOTES.md")) { # Launcher assets: this build ships the shared recomp-ui Dear ImGui launcher # (RECOMP_LAUNCHER; see main.cpp + recomp-ui/recomp_ui.cmake), which loads from # /assets/ (fonts + img TGAs, including this repo's boxart baked in by -# recomp_target_launcher_ui's POST_BUILD) -- NOT the legacy RmlUi launcher.rml. +# recomp_target_launcher_ui's POST_BUILD). $AssetsSrc = Join-Path $BuildPath "assets" if (-not (Test-Path (Join-Path $AssetsSrc "img"))) { throw "recomp-ui launcher assets missing at $AssetsSrc -- was the recomp-ui launcher built (recomp-ui junction present)?"