Files
ppsspp/Core/HLE
Henrik RydgårdandClaude Opus 5 386ff2fc3d headless: add --re-module, a static reverse-engineering dump for one PRX
Loads a single module standalone - no game, no boot - and writes a report:
module header and segments, the export and import tables with NIDs resolved to
names through the HLE tables, one annotated disassembly file per function, and
a call graph as JSON.

Reuses the emulator's own loader rather than parsing PRXes a second time, so
decryption, decompression, relocation and import resolution can't drift from
what actually runs. Only enough of the system is brought up to load a module:
memory map, timing, HLE tables and the kernel allocators. Nothing executes.

Two things beyond a plain disassembly, both aimed at the questions that come up
when reading unfamiliar MIPS:

- lui/addiu (and lui/load) pairs are folded and reported as the address they
  form, which is how every global and constant table gets reached.
- Per function, a register evidence block instead of a guessed signature. A
  MIPS function that takes two arguments and passes the second one down often
  never reads it, so 'never read but live across a call' is reported as
  forwarded rather than quietly dropped from the signature.

SetForceRealModuleLoads() is needed because modules like sceAudiocodec_Driver
have no DisableHLEFlags bit and so can't be turned off the normal way - they'd
fake-load and there would be nothing to look at.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 15:32:14 -06:00
..
2025-07-22 17:48:20 +02:00
2025-07-22 17:48:20 +02:00
2025-07-22 17:48:20 +02:00
2026-08-11 10:28:36 +02:00
2025-08-06 17:44:54 +02:00
2026-01-18 23:40:13 +02:00
2026-08-11 09:08:52 +02:00
2025-07-20 19:30:35 +02:00
2026-08-11 20:12:10 +02:00
2025-07-20 19:32:05 +02:00
2025-02-14 09:50:55 -06:00
2026-08-11 20:14:01 +02:00
2026-08-11 10:28:36 +02:00
2026-08-11 10:28:47 +02:00
2025-01-05 19:14:15 +01:00
2026-08-11 10:28:47 +02:00
2026-08-24 09:30:44 +02:00
2025-04-03 14:13:50 +02:00
2026-08-11 20:14:01 +02:00
2026-08-12 14:02:19 +02:00
2025-02-04 11:53:22 -06:00
2026-08-08 18:18:28 +02:00