OpenRA3 v0.0.1: C++26 modules, BIG4/RefPack reader, minimal skirmish
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user