# 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 ```text 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`](../../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.