- 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.
1.8 KiB
Contributing
Thanks for your interest. This is a small hobby project; issues and pull requests are welcome, but please read the ground rules first — they are what keep the port faithful to the original game.
Ground rules
-
The decompilation is not modified for the port. Everything under
src/andinclude/is compiled unmodified.Makefile,tools/,rsp/,ld/belong to the N64 build and are never touched for PC work. If PC code seems to need a behavioural change in the game, the fix belongs inport/. -
Narrow ABI exception. The 32->64-bit transition forces a small class of mechanical, semantics-preserving edits to ROM-serialized structs (storing an embedded 32-bit pointer as
u32and casting at the use site). These are allowed, must be guarded with#ifdef PORT, must change no behaviour, and must be documented. Seedocs/porting-notes.mdfor the catalogue of patterns. -
Region macros mirror the Makefile.
CMakeLists.txtREGION_DEFSmust match the N64Makefile's per-region macro set exactly. -
Verify before you push. A build-affecting change needs, at minimum, a clean configure + build for
ntsc-finaland a crash-free run of one level (./build-pc/ge007.x86_64 -level_09).
Style
- C/C++ formatting follows
.clang-formatand.editorconfigin the repo root. Match the surrounding code. - Port-layer code is plain C11 / C++17, SDL2 + OpenGL, no extra dependencies.
- Keep commits focused and describe why, not just what.
Where to look
docs/internals.md— how the port is structured.docs/porting-notes.md— the recurring bug classes; check here before debugging a crash, you are likely looking at a known pattern.docs/dev/— the full finding log and per-level status.