Files
psxrecomp/tools/check_ds_patch.py
Matthew Stanley 6a4f1d027b duckstation oracle: document post-rebuild boot-failure investigation
Follow-up to the restructure commit. Attempted to verify end-to-end
`-bios -nogui -fastboot` behaviour on the rebuilt binary; it does not start
BIOS emulation regardless of launch-flag permutations. Process runs stably at
~34 MB but `PSXRecompDebug::Initialize(4371)` is never reached because the
call sits inside `System::Initialize` which returns `false` silently.

Verified (by this session's investigation) as NOT the cause:
- patch present in binary (`tools/check_ds_patch.py` finds PSXRecompDebug,
  pc_break, read_ram, psxrecomp_debug_server literals)
- BIOS file md5 matches DuckStation's known SCPH-1001 hash
- prebuilt deps extracted + `_IMPORT_PREFIX` paths rewritten across 27 files
- settings.ini has all the obvious gates flipped (BIOS path, setup-wizard
  bypass, auto-update disabled, explicit region, resources + translations
  restored next to exe)
- portable.txt in place, submodule pinned to upstream ffb33c281

Still unknown: whether it's a GPU/Vulkan/D3D init path failing under -nogui
on this machine's environment, or a baked path in the prebuilt deps we didn't
rewrite. Documented in tools/duckstation/README.md for pickup next session.

Also adds tools/check_ds_patch.py — verifies the patch is compiled into the
binary via string-search of marker symbols.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 02:03:14 -07:00

9 lines
380 B
Python

"""Check that duckstation-qt.exe contains our TCP patch strings."""
import sys
p = sys.argv[1] if len(sys.argv) > 1 else 'duckstation/build/bin/duckstation-qt.exe'
with open(p, 'rb') as f:
data = f.read()
markers = [b'PSXRecompDebug', b'pc_break', b'read_ram', b'wtrace', b'psxrecomp_debug_server']
for m in markers:
print(f'{m.decode()}: {"YES" if m in data else "no"}')