Files
goldeneye-pc-port/.gitignore
T
Dan Turner 498be832c2 macos: packaging, sweep tooling, and two runtime fixes (D299, D300)
- tools_pc/bundle-mac.sh: a signed, double-clickable GoldenEye.app. Homebrew's
  libstdc++/libgcc_s and SDL2 are not system libraries, so they are bundled
  and rewritten to @executable_path/@loader_path. Note sdl2-compat (Homebrew's
  `sdl2`) finds its SDL3 backend through a RELATIVE rpath baked into the dylib,
  so SDL3 ships too and that rpath is repointed — copy it without that and
  sdl2-compat raises a modal error dialog from its initialiser and the app
  hangs before main(). prepare-assets/ goes in Contents/Resources/: codesign
  treats a directory under Contents/MacOS/ as nested code and fails the bundle.
- tools_pc/level_sweep_mac.sh: per-level crash-log sweep, symbolicated with
  atos, with a rendered-pixel check so "runs but renders nothing" is caught.
- D299: sndPlaySfx() rejected EVERY sound on arm64 — all in-level SFX were
  silent, while music played (separate player). Its guard predated the shifted
  window: `sp >= 0x400000000ULL` (16 GiB) is correct on x86_64 (DRAM at
  0x70000000) and rejects everything on arm64 (DRAM at ~0x1000_707b_5740).
  Fixed with a portAddrIsInWindow() helper rather than absolute bounds.
- D300: cleanupObjects() did `u32 *obj = (u32)g_CurrentSetup.propDefs`,
  truncating a host pointer to 32 bits. Crashed at stage unload — only
  reachable once a level actually ends.

Verified: 21/21 on both the no-input and full-control sweeps; SFX voices
allocate on every level.
2026-10-04 10:50:01 +01:00

210 lines
5.2 KiB
Plaintext

#Git and VS files
.*~
__pycache__/
.vscode/
.[vV][sS]/
*.rz
*.tmp
*.o
branchdiff.sh
branchdiff_report.txt
*.dump
*.cdata*
/StructLayoutSettings.json
# rom files
*.[zZnN]64
021990.bin
0219D0.bin
# Assets
assets/animationtable_data.bin
assets/animationtable_entries.bin
assets/font/*.bin
assets/ge007.e.118660.jfont_chardata.bin
assets/ge007.j.118660.jfont_chardata.bin
assets/jfont_dl.bin
assets/font_chardataj.bin
assets/font_chardatae.bin
assets/ge007.u.29D160.Globalimagetable.bin
assets/rarewarelogo.bin
assets/ge007.u.2A4D50.usedby7F008DE4.bin
assets/ge007.u.117880.jfont_dl.bin
assets/ge007.u.117940.jfont_chardata.bin
assets/ge007.u.123040.efont_chardata.bin
assets/ge007.u.29E560.Globalimagetable_commandblock.bin
#images
assets/images/split/*.bin*
assets/images/combined/*.bin*
assets/images/out/*
assets/images/split/png/*
#music
assets/music/*.bin
assets/music/*.ctl
assets/music/*.tbl
assets/music/*.sbk
assets/music/*.seq
assets/music/*.aifc
assets/music/*.aiff
#obseg
assets/obseg/bg/*.bin
assets/obseg/bg/e/*.bin
assets/obseg/chr/*/Model.c
assets/obseg/gun/*/Model.c
assets/obseg/ob__ob_end.seg
assets/obseg/prop/*/Model.c
assets/obseg/setup/*.bin
assets/obseg/setup/[eju]/*.bin
assets/obseg/stan/*.bin
assets/obseg/text/*.bin
assets/obseg/text/[eju]/*.bin
assets/obseg/text/[eju]/*.c
assets/ramrom/*.bin
assets/ramrom/[eju]/*.bin
# bin is required, but lets prevent accidental deletion
bin/*
build/*
build-*/*
notes/*
# Local working / planning notes — rolling drafts, not published, not tracked.
# docs/HANDOFF.md and docs/BACKLOG.md are the long-standing pair (also in
# .git/info/exclude); docs/dev/notes/ is the drop for everything else
# (roadmaps, session plans, scratch triage).
docs/HANDOFF.md
docs/BACKLOG.md
docs/dev/notes/
# PC port (see CMakeLists.txt / port/)
build-pc/
tools_pc/*.exe
data/
# release bundles built by tools_pc/bundle-win.sh (repo root only; the
# packaging template lives in tools_pc/dist/ and IS tracked)
/dist/
ge007.ini
!build/test.c
!notes/StyleGuide.md
#tools
# Original SGI IRIX 5.3 IDO toolchain (proprietary SGI binaries) and the SGI
# image viewer are NOT distributed with this repo. They are only needed to
# build the N64 ROM or to regenerate tools/ido5.3_recomp; the PC port does not
# use them. See docs/SetupGuide.md "Recompile IDO" for how to obtain them.
tools/irix/
tools/SGIImageViewer.exe
tools/extractor/*.o
tools/extractor/extractor
tools/aaa_rip/main.o
tools/aaa_rip/aaa_rip
tools/n64cksum
tools/armips
tools/gzipsrc/gzip
tools/gzipsrc/*.o
tools/report/report
tools/report/index.html
tools/report/JPN.htm
tools/gaudio/*
bondtypes_AI.h
acpp_c.c
as1_c.c
cc_c.c
cfe_c.c
copt_c.c
ugen_c.c
ujoin_c.c
uld_c.c
umerge_c.c
uopt_c.c
usplit_c.c
#exclude local user scripts in root folder
/my_*.sh
assets/obseg/em/data/alien8.seg
assets/obseg/em/data/atic.seg
assets/obseg/em/data/cookie.seg
assets/obseg/em/data/gunfright.seg
assets/obseg/em/data/jetman.seg
assets/obseg/em/data/jetpac.seg
assets/obseg/em/data/knightlore.seg
assets/obseg/em/data/pssst.seg
assets/obseg/em/data/sabre.seg
assets/obseg/em/data/spec_rom.seg
assets/obseg/em/data/under.seg
scripts/local/
scripts/make/local/
# PC port debug/session artifacts
_run.log
ge007.crash.log
.pi/
run_out.log
ppm/
screenshots/
# tools_pc/perf.ps1 output (raw ETW traces + CSV analysis, regenerable)
perf_captures/
# local Mupen64 Plus checkout (N64 reference footage); binaries, do not commit
tools_pc/mupen64/
# local N64 emulator checkout (D205 A/B reference)
mupen64/
# PC port run/scratch logs
run_*.log
d6*.log
ge007.crash.log
# agent scratch space + audio probe artifacts (regenerable dumps/traces)
scratchpad/
# session logs / investigation scratch — local only, never in the public repo
# (untracked 2026-09-19 during the v0.3.0 release review)
/scratch/
# re-vendored GPL reference source (see reference/mouse-injector/README.md)
/reference/mouse-injector/*
!reference/mouse-injector/README.md
# local research/backlog working docs (TCRF cut-content cross-reference etc.)
backlog/
# montage work artifact: the tiled contact sheet behind docs/img/shots/ and
# the preview video (regenerable from the same session recordings)
docs/img/shots/CONTACT-SHEET.jpg
/audiodump.raw
/audiotrace.log
/mixertrace.log
# texture-dump probe artifacts (regenerable via GE_TEXDUMP)
/texdump/
/texdump_p23_old/
# Claude Code local state / agent worktrees
.claude/
# saved reference webpage assets (keep the .htm, not the sidecar cruft)
docs/reference/*_files/
nohup.out
gdb.txt
gdb-hang.txt
# frozen asset converter (built by CI via PyInstaller; local freezes land here)
tools_pc/dist/prepare-assets/ge007-convert*
build-pyinst/
# Local working junk (frame captures, timerun state, PPM dumps) - moved here
# from repo root / scratch on 2026-09-18; never commit.
/local/
build-pc-cmd.bat
# v0.4.0 modern-options wave: per-landing sweep capture dirs (capture.sh output)
tools_pc/sweep-captures/capture-*/
# Stray full CPython install that landed in repo root (2026-09-28);
# referenced by no project tooling. Never commit.
/Python/
docs/media/*.mp4
# Debug traces and capture artifacts written by the engine at runtime
# (GE_AUDIOTRACE, GE_MIXERTRACE, GE_AUDIODUMP, GE_PCDUMP, crash handler).
# These are run output, never source -- see dev-process.md "keep PR noise low".
*.log
audiodump.raw
.DS_Store