1:1 source port of the engine and game code; Windows build and system layer; docs. No game files or SDK headers.
This commit is contained in:
parent
c3b032a45a
commit
0ecb47e9cb
3871 changed files with 91080 additions and 1640063 deletions
32
docs/port/AGENT-BRIEF.md
Normal file
32
docs/port/AGENT-BRIEF.md
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Brief for porting agents (Windows host, 2026-10-22)
|
||||
|
||||
Read `docs/port/HANDOFF.md` and `docs/port/PORTING.md` first; this file only lists the Windows differences and the rules
|
||||
for parallel agents.
|
||||
|
||||
## Tools on this Windows PC
|
||||
- Whole-tree check: `bash tools/port/check_all.sh [--mac]`.
|
||||
- Decompile lookup: `export PATH=~/bin:$PATH; python tools/port/fn.py 'Class::Method'` (use `python`, not `python3`;
|
||||
`~/bin/c++filt.exe` is installed). Data: `python tools/port/readdata.py SYMBOL N FMT`. `parity-out/` is already here.
|
||||
- Compile check (step 5) runs on the MacBook because the headers need Apple frameworks:
|
||||
`tools/port/check_mac.sh port/game/X.cpp [more files]` -> prints `CHECK-OK` or the first errors per file. It syncs
|
||||
`port/` to `~/choc3-check` on `ssh mac` (one ssh connection per call, ~3 s). Never run anything else on the Mac.
|
||||
- Generated headers (`defaultfont.h` etc.) are already in the tree and gitignored. Do not commit them.
|
||||
- Reference headers: `choc3/cpp_src/<Class>.h` (shipped originals, copied to `port/game/`); ported engine headers in
|
||||
`port/include/pf`; DWARF layouts in `docs/port/types/pflib_types.txt`.
|
||||
|
||||
## Rules (the owner's, strict)
|
||||
- 1:1 port: every function from the GAME decompile (the shipped binary wins over the SDK debug build), cited
|
||||
`// game @0x... sdk @0x...` (game-only classes: `game @` only). No guessed constants, no hand-placed coordinates,
|
||||
no behaviour added, no cleanup that changes results. Read both decompiles branch by branch before and after writing.
|
||||
- Do not mark anything "playable"/"ready". No emulator/Wine runs, no sound, no apps launched, no simulator.
|
||||
- Own only the files of your package. Other agents run in parallel in the same checkout: never edit, reformat, stash,
|
||||
reset, checkout or delete files that are not yours, never touch `docs/port/MANIFEST.tsv` (the lead recomputes it).
|
||||
Shared headers (`port/include/pf/*`): a minimal fix needed by your class is allowed, but re-run
|
||||
`tools/port/check_mac.sh` on the whole tree before committing it and mention it in your report.
|
||||
- Commit locally only (never push), as you finish each class: `git add <your files>` then
|
||||
`git commit -m "1:1 port: <classes>"` (identity is already `CRT <hi@crt.fyi>`; NO Co-Authored-By, no AI
|
||||
attribution; if `.git/index.lock` exists wait 5 s and retry). Commit messages never mention game names beyond the
|
||||
class names.
|
||||
- Every check must pass `tools/port/check_mac.sh <your files>` = `CHECK-OK` before the commit.
|
||||
- Report: classes finished, function counts, any decision or header fix, anything you could not port and why.
|
||||
Keep the report under 300 words.
|
||||
Loading…
Add table
Add a link
Reference in a new issue