mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 18:25:35 -04:00
e88e9a0233
Before: only sector 0 read succeeded; sector ≥1 reads aborted at 2 bytes
because mc_flag was loaded from mc_slots[].flag on every 0x81 select but
never saved back. The clear in MC_CMD lived only in the working static, so
every reselect re-loaded the stale 0x08 ("new card / changed battery") init
value, and the BIOS bailed every multi-sector op as "card was just inserted,
re-init."
After: BIOS shell memcard menu reads the full 15-sector directory area for
both slots. Real save filenames decode (e.g. "BISLPS-01234SAVE00") and per
card icons render in the bottom panes — the Phase 4 success criterion.
Also bundled this session:
- debug_server: B9D0..B9F0 added to always-on wtrace ranges; fn_dump_parse
default window scoped to 1M most-recent entries (filter scans against the
full 128M ring used to freeze the debug server thread for many seconds).
- ISSUES.md + diagnostic tools/*.py written during the audit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 lines
426 B
Python
12 lines
426 B
Python
import re
|
|
with open('generated/SCPH1001_dispatch.c', 'r') as f:
|
|
d = f.read()
|
|
in_table = set()
|
|
for m in re.finditer(r'\{ 0x([0-9A-Fa-f]{8})u', d):
|
|
in_table.add(int(m.group(1), 16))
|
|
print('total entries:', len(in_table))
|
|
for t in ['0xBFC42990', '0xBFC429A0', '0xBFC42960', '0xBFC42BB0', '0xBFC42B00']:
|
|
addr = int(t, 16)
|
|
phys = addr & 0x1FFFFFFF
|
|
print(f'{t} -> phys=0x{phys:08X} in_table={phys in in_table}')
|