# Build output
build/
build-cmake/
build-coretest/
build-msvc/
build-*/
out/
*.obj
*.o
*.d

# Recompiler output (regenerated from the ROM)
RecompiledFuncs/*.c
RecompiledFuncs/*.cpp
RecompiledFuncs/*.h
RecompiledFuncs/*.inl
RecompiledPatches/*.c
RecompiledPatches/*.cpp
RecompiledPatches/*.h
RecompiledPatches/*.inl

# Patch build artifacts
patches/*.elf
patches/*.bin
patches/*.map
patches/*.o
patches/*.d

# RSP recompiler output
rsp/*.cpp

# Recompiler binaries copied into the repo + their MinGW runtime DLLs
N64Recomp
N64Recomp.exe
RSPRecomp
RSPRecomp.exe
file_to_c
file_to_c.exe
*.dll

# ROMs and assets — NEVER commit these
*.z64
*.n64
*.v64
wcw.z64

# Generated symbol dumps live under syms/ but are produced by tooling; keep the dir,
# decide per-file whether to track once they stabilize.

# Runtime libraries are proper submodules now (jessetbh forks, [wcw fix] on wcw branches).

# Standalone run/ experiment — build artifacts (keep the source + README)
run/obj/
run/*.exe
run/*.o
run/last_run.txt

# Disassembly project (Phase 1) — generated/large; keep configs + symbol files only
disasm/.venv/
disasm/asm/
disasm/assets/
disasm/build/
disasm/wcw.z64
disasm/*.cache
disasm/.splat_cache*
disasm/undefined_funcs_auto.txt
disasm/undefined_syms_auto.txt

# OS / editor
.vs/
.vscode/
*.user
Thumbs.db
.DS_Store

# Agent instructions + planning docs — local-only, never publish
CLAUDE.md
docs/*-plan.md

# Claude Code local (per-machine) settings
.claude/settings.local.json

# Machine-local toolchain overrides
local-config.cmake

# Revenge bootstrap: recompiler binaries + MinGW DLLs copied from the WT build
N64Recomp.exe
RSPRecomp.exe
*.dll
recomp-out.txt

# bring-up boot logs + screenshots (local diagnostics)
boot*.log
first-boot.log
boot*.err.log
probe*.log
probe*.err.log
boot-screenshot.png
shot-*.png
