Files
goldeneye-pc-port/CONTRIBUTING.md
T
James Dansereau 52539d10de 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.
2026-09-01 19:28:59 -04:00

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

  1. The decompilation is not modified for the port. Everything under src/ and include/ 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 in port/.

  2. 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 u32 and casting at the use site). These are allowed, must be guarded with #ifdef PORT, must change no behaviour, and must be documented. See docs/porting-notes.md for the catalogue of patterns.

  3. Region macros mirror the Makefile. CMakeLists.txt REGION_DEFS must match the N64 Makefile's per-region macro set exactly.

  4. Verify before you push. A build-affecting change needs, at minimum, a clean configure + build for ntsc-final and a crash-free run of one level (./build-pc/ge007.x86_64 -level_09).

Style

  • C/C++ formatting follows .clang-format and .editorconfig in 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.