Prepare for public release

- README, LICENSE (MIT for the port layer), NOTICE, CONTRIBUTING.
- Restructure docs: internals.md, porting-notes.md, dev-process.md +
  dev/agentic-development.md (the research write-up), dev/ (raw record).
- Replace decomp status-badge CI with a PC-port validate workflow.
- Remove session/agent scaffolding and stale planning docs from the tree.
- Add .gitattributes (normalize line endings to LF); add screenshots.

The pre-2026-08 history is the GoldenEye 007 decompilation by Larry Ficken
(KholdFuzion) and contributors, preserved unchanged. The PC-port work from
2026-08-17 on is mine.
This commit is contained in:
James Dansereau committed 2026-09-01 19:28:59 -04:00
1 parent 294e24cc26
commit 52539d10de
118 files changed
+3995 -8319

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
to PC layout and write a concatenated sidecar image + manifest.csv (same
shape/pattern as tools_pc/d43_emit.py / port/src/pcmodels.c).
Format spec: docs/PCPortResearch.md D78-D82. Summary:
Format spec: docs/internals.md D78-D82. Summary:
bg/*.seg (raw, uncompressed on ROM; stays uncompressed on PC):
header (0x40B, only words 0-4 consulted): word0 must be 0 (bswap32,
+3 -3
View File
@@ -4,7 +4,7 @@ to PC layout, appending them to the same pccg.bin/manifest.csv sidecar image
produced by d69_emit.py (port/src/pccg.c already serves any filename listed
in the manifest, so this script just needs to add rows).
Format spec: docs/PCPortResearch.md D88.x. Summary:
Format spec: docs/internals.md D88.x. Summary:
`struct stagesetup` (bondtypes.h) is a 10-pointer-field header (40B on N64,
80B on PC -- pointers grow 4->8B) whose fields store plain (non-segment)
@@ -20,7 +20,7 @@ room-offset array, generalized to many interleaved regions).
Verified against BUNKER1 (UsetupsevbunkerZ) by full byte-level ROM
reconstruction (offsets/counts cross-checked against every pointer field in
the file -- see tools_pc/d88_emit.py history / PCPortResearch.md D88.2):
the file -- see tools_pc/d88_emit.py history / internals.md D88.2):
the file's leftover byte-stream regions (propDefs polymorphic prop-def
table, AI opcode streams, pad/boundpad `plink` name strings, pad/boundpad
name (`pname`) strings) all sit BETWEEN and interleaved with the 8 growing
@@ -51,7 +51,7 @@ the cumulative shift from growth ahead of them in the file):
KNOWN BUG (D125, unfixed as of M-13): the converted blob does not land
correctly in the emitted file for some levels (Aztec/Bunker2/Surface2) --
suspect the pass-1 delta / region-`end` handling here (~L308-340), NOT
convert_stream itself. See PCPortResearch.md D125 + docs/LEVEL-STATUS.md.
convert_stream itself. See internals.md D125 + docs/LEVEL-STATUS.md.
- waypoint.neighbours / waygroup.neighbours / waygroup.waypoints /
PathRecord.waypoints target arrays: plain `s32` ID lists (NOT file
offsets -- graph node indices), NULL/-1 terminated, walked with real
+1 -1
View File
@@ -6,7 +6,7 @@ Compares a directory of candidate frames against a golden baseline
WHY STRUCTURAL / TOLERANT BY DEFAULT
-----------------------------------
The PC port is NOT frame-deterministic (see docs/PCPortResearch.md
The PC port is NOT frame-deterministic (see docs/internals.md
Section F "D117"): logic advances a wall-clock-variable number of 60Hz
ticks per rendered frame (src/game/frametiming.c waitForNextFrame /
boss.c mainTickElapsed gate driven by osGetCount(), which the port maps