mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
6e2a36c4c8
Landed while root-causing the Tomba 2 warm-cache boot death; each of these was a hole that blocked attribution on the production binary: - psx_fatal_halt: halt-and-serve is now keyed on the TCP listener being live (debug_server_get_status) instead of the build flavor. A production run with PSX_DEBUG_SERVER=1 + PSX_EXIT_HALT=1 now stays inspectable at the fatal instead of exit(1)ing the evidence away. - debug_server_get_status: was declared in debug_server.h but never implemented; implemented (listener state, port, saved socket error). - event_ring: EVENT_RING_ENABLED=1 unconditionally. The ring records edges only; its production disable predated the production listener and contradicted its own ALWAYS-ON design note. - sp_ring (new): stack-domain (64 KB) transition ring at fntrace_record -- one entry per dispatch whose guest SP crossed a domain, i.e. the provenance record for 'who installed this stack pointer'. - disp_ring (new): 128-entry unconditional dispatch tail (target/ra/sp/ cycle) so the final control-flow sequence before a death is always reconstructable post-mortem. - overlay_loader: the native-call ring (overlay_native_ring recent[]) is now recorded in production too -- each entry names the requested PC and the claiming candidate CRC, which is what finally attributed the wrong-variant native run. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>