Files

938 B

Ghidra helpers

OpenRA3's retail facts are recovered through the Ghidra MCP bridge. The retail module is loaded as ra3_1.12.game (image base 0x400000, x86 32-bit).

Quick queries

decompile_function(address=0x00623e40)   # GameLogic::startNewGame
decompile_function(address=0x0060c4a0)   # MessageStream::appendMessage
get_function_by_address(address=0x00cd8ce4)  # TheGameLogic global
get_xrefs_to(address=0x00ce3a78)         # who touches the skirmish setup
search_strings(search_term="SkirmishGameInfo")

Recording a finding

When a layout or constant is recovered:

  1. Add it to ../../docs/REVERSE_ENGINEERING.md with its retail address.
  2. Cite the address in the OpenRA3 source comment that depends on it.
  3. Add a test that pins the behaviour.

The goal is that every assertion in the code can be re-derived from the binary by someone who has never seen this repo.