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:
- Add it to
../../docs/REVERSE_ENGINEERING.mdwith its retail address. - Cite the address in the OpenRA3 source comment that depends on it.
- 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.