# Copyrighted game data (the XBLA package + everything unpacked out of it) — not
# distributable. `assets/package/` holds the STFS container as delivered;
# `assets/game/` is what tools/extract_stfs.py produced from it.
/assets/
/private/
*.xex
*.xexp

# Regeneratable recompiler output (run XenonRecomp on config/CaseZero.toml)
/ppc/

# Build artifacts (any build/ dir, and every runtime/build-<arm>/ — part 116 committed two
# 150 MB static libraries with a `git add -A runtime/` before this line existed, and
# rewrote eight commits to get them back out)
build/
build-asan/
build-*/
*.configure.log

# Locally built analysis binary (rebuild with tools/build_xex_image_dump.sh)
/tools/xex_image_dump
# Locally built analysis binary (rebuild with tools/build_big_decompress.sh)
/tools/big_decompress
tools/__pycache__/

# Xenia ground-truth captures (huge, game-derived, local reference only) — but DO
# track the run index, which is documentation and contains no game data.
# Note the `/*` form: a trailing-slash ignore stops git descending, so the negation
# below would never be evaluated.
/Xenia logs/*
!/Xenia logs/Xenia_Run_Content.md

# Claude Code session scratch
.claude/

# Generated SPIR-V shader cache (8.9 MB, game-derived). Rebuild it:
#   python3 tools/xenia_ucode_to_cache.py "Xenia logs/A1_.../shaders" \
#       "Xenia logs/A2_.../shaders" /tmp/ucode
#   (cd runtime/build && CZ_NO_WINDOW=1 CZ_SHADER_DUMP=/tmp/ucode ./cz_runtime)
#   tools/build_shader_spv.sh /tmp/ucode assets/shader_spv
# (already covered by /assets/ above; named here so it is not a mystery)

# Release artifacts and their inputs (docs/release-plan.md A.4 / E.2). None of this is
# source: `dist/` is the packaged tree, and `thirdparty/{sdl2,ffmpeg-lgpl}` are
# regenerated by their own scripts, which are the things worth tracking:
#   tools/build_sdl2.sh          real SDL2, not Fedora's sdl2-compat shim
#   tools/build_ffmpeg_lgpl.sh   LGPL ffmpeg with the two XMA decoders and nothing else
/dist/
# ANY packaged tree, not just `dist/`. `/dist/` alone let `dist-steamdeck/` and
# `dist-steamdeck-1.0.2-old/` sit untracked-but-not-ignored, and one `git add -A`
# on 2026-09-28 committed 233 MB of build output to a PUBLIC repo because of it.
# A pattern that only covers the name you happened to use is not a policy.
/dist-*/
/thirdparty/sdl2/
/thirdparty/ffmpeg-lgpl/
# The old-base (container) build of the release (tools/release_build_oldbase.sh, part 104)
# and the AppImage runtime it fetches; both regenerable.
/thirdparty/oldbase/
/thirdparty/appimage/
build-release/
build-relmatch/
build-release-oldbase/
build-relmatch-oldbase/
# the container build's configure logs (tools/release_build_oldbase.sh)
runtime/build-*-oldbase.configure.log

# part 105: the runtime tees stderr into a log file beside the data root, which for
# the dev tree is the repo root. CZ_NO_LOG_FILE=1 / CZ_LOG_FILE=path (docs/instruments.md)
/cz_runtime.log
/cz_runtime.log.1
/cz_speedrun_block.txt
/cz_diag.txt
/cz_diag.txt.1
