21 Commits
Author SHA1 Message Date
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) <[email protected]>
2026-09-08 15:32:14 -06:00
Henrik Rydgård 8565573b51 Buildfixes for Mac/Windows 2026-08-06 12:47:28 +02:00
Henrik Rydgård 25cf52176f Misc headless work 2026-08-05 00:15:56 +02:00
Henrik Rydgård e3d36e2741 Move the VulkanGraphicsContext to its correct location in Common/GPU/Vulkan 2026-07-26 14:15:15 +02:00
Henrik Rydgård 6b9596cf4e Make D3D11 work for framedump testing 2026-07-18 20:06:03 +02:00
Henrik Rydgård 6cfea96e58 Remove D3D9 support, to make future changes easier 2025-06-10 15:07:16 +02:00
Unknown W. Brackets 42f64e34e8 headless: Rename StubHost to HeadlessHost.
It's had that weird name forever, get rid of it.
2023-03-25 17:49:05 -07:00
shenweip 5c4a1e00fc BuildFix 2020-01-14 08:19:44 +08:00
Unknown W. Brackets 7db9dfb50b Headless: Reduce some duplication.
We can share the screenshot code for SDL.
2017-09-20 09:25:28 -07:00
Unknown W. Brackets 19a3e166ec Headless: Fix DirectX11 support on Windows. 2017-04-22 18:17:03 -07:00
Florent Castelli 6852c602b9 glew: Move to ext 2016-12-18 21:13:45 +01:00
Unknown W. Brackets a1fbcc3d93 Avoid directly calling osm from Core/GPU code.
This allows UI to handle the message however it wants to, and reduces
cross linkage issues.
2016-05-27 22:05:30 -07:00
Unknown W. Brackets c770349475 Switch headless to using graphics contexts.
Vulkan doesn't work yet, needs some thin3d for the command buffer?
2016-03-20 19:31:02 +01:00
Henrik Rydgard 3232e46c36 Make debug build nearly warning free in MSVC 2015 2015-09-17 22:02:15 +02:00
Unknown W. Brackets 2c204e8028 Update project to MSVC 2013 tools.
Retaining XP support, using SDK 7.1a (v120_xp.)  Disables SSE2 flag on x64
since it's implied and causes compile warnings.
2014-02-08 13:41:28 -08:00
Unknown W. Brackets 4bc86afd5e Adjust some project filters. 2013-12-14 22:36:41 -08:00
Ced2911 5c4ed26442 Make the dx9 renderer working in headless mode 2013-09-16 09:42:30 +02:00
Henrik Rydgard 059aed36ee Add on-screen feedback for some keyboard shortcuts (so you know which setting was changed) 2013-05-22 18:00:06 +02:00
Unknown W. Brackets 6a72b0d325 Separate out the actual screenshot comparison.
Fixes #109.
2013-02-08 00:25:29 -08:00
Unknown W. Brackets 03d9157d26 Draw offscreen in headless (Windows only.) 2012-12-29 23:21:55 -08:00
Henrik Rydgard 4f7ad15758 Add snapshot of the whole source code. 2012-11-01 16:19:01 +01:00