mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
cd32149a08
- debug_server.c: dump_ram = alias of read_ram (one request, one response, up to full 2 MB); screenshot = screenshot_file (24-bit BMP, optional "path", default psx_screenshot.bmp); vram_peek cap 64->128; read_ram hex encode via nibble table (was 2M snprintf calls stalling the main thread); send_all_blocking bounded (1 MB chunks, SO_SNDTIMEO 2s, heartbeats the starvation watchdog per chunk) and drops the client on send failure instead of letting the watchdog kill the runtime; handle_quit tags exit origin. - beetle_debug_server.c: read_ram cap 64 KB->2 MB via heap+send_raw; dump_ram/screenshot aliases; screenshot w/h->width/height parity; set_input now holds until clear_input (frames param optional) matching psx-runtime semantics — the old default expired after 1 frame and the off-by-one in the getter cleared the override before it was ever read, so scripted beetle navigation silently did nothing; wtrace_dump response heap-built + send_raw (per-entry send_fmt dropped chunks on multi-MB responses, producing broken JSON). - crash_trace: new psx_crash_trace_set_exit_origin(); report gains exit_origin (tcp_quit / sdl_window_close / unknown). - debug_client.py: O(n) string-aware brace parser (old per-byte loop was O(n^2) — minutes on a 2 MB response, which starved the server's send and got the runtime killed); generic key=value passthrough for any server command without a bespoke CLI mapping. - TCP_COMMANDS.md updated for all of the above. Verified: 2 MB read_ram round-trip 0.75 s; scripted beetle navigation reaches the memcard file-select; wtrace_dump returns valid JSON at 21 MB. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>