Files
BFM-decomp/.gitignore
T

360 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# ROM-content policy — PROJECT_CONTEXT.md rule H1, IN FORCE (Phase 33, the public flip).
#
# The repository ships NO ROM-derived bytes and NO proprietary SDK: the game disc, the
# extracted payloads (`extracted/`, regenerated from YOUR dump by `make disc-extract` and
# verified against the committed manifest), the splat disassembly (`asm/`, `assets/`), the
# RAM-dump corpus (`dumps/*.bin`), the Ghidra project (`ghidra/`, whose database embeds the
# program bytes — regenerable from text via tools/ghidra_rebuild.sh), Sony's PsyQ SDK
# (`tools/psyq/`, optional and user-supplied), the session-transcript archive, and
# redistributed third-party binaries. Symbol names, addresses, hashes, configs and the
# decompiled C are what a decomp publishes (sotn precedent). The private history that
# carried these while the repo was private (rule R1, 2026-06-10 .. 2026-09-06) lives in the
# archive repo only.
# ============================================================
# Raw disc dump — never committed (size + reproducible; your own dump goes here)
/Brave Fencer Musashi (USA)/
/disks/
# RAM-dump corpus — 28 × 2 MB images of the running game (local-only; dumps/INDEX.md +
# dumps/CHECKSUMS.sha1 stay tracked and describe them)
/dumps/*.bin
# The Claude Code session-transcript archive (private; the archive repo holds it)
/session archive/
# Redistributed third-party binaries: download per docs/SETUP.md (sha256 recorded there)
/tools/ghidra-ext/*.zip
/tools/brave-CUE/brave.exe
# Project-local runtime scratch (MCP server log + stop sentinel) — replaces /tmp use.
# Contents-exclude form (the /tools/bin/*.sha256 precedent) so the IRREPLACEABLE recon
# commits while the regenerable bulk stays ignored (R20 backup vs R12 scratch; Phase-27 T3).
# Rule of thumb: commit what a rerun CANNOT reproduce (hand/Fable5 analysis, harnesses,
# ledgers); leave anything a script regenerates (RTL dumps, build logs, drafts) ignored.
/.run/*
# --- Preserved recon (R20) ---
# Giant crack recon: the Phase-25 *.opus.{c,md} seeds, the byte-verified pf*.c
# regression ladder, the dump/monitor harnesses, and — cited BY cookbook §45 as its
# worked example — func_80133CD4.fable.{c,md} + the fable_cd4/ gdb oracle.
# The d_pf*.i.* / *.s / dumps_*/ gcc RTL scratch beside them is regenerable via
# dump.sh and stays ignored, as do the permuter/ILS .log files.
!/.run/giants/
/.run/giants/*
!/.run/giants/*.c
!/.run/giants/*.md
!/.run/giants/*.sh
!/.run/giants/*.py
# P30 S42 serial crack drafts — ~680k subagent tokens of work, both NEAR and both the best
# base any future attempt has. They were gitignored, i.e. one `git clean` from gone (R20).
!/.run/s42/
/.run/s42/*
!/.run/s42/*/
!/.run/s42/*/*.c
# P30 S43 — the permuter-ILS improvement on the same function (63 -> 42 mismatched), the best
# base that exists for it. Same R20 reasoning as s42 above.
!/.run/s43/
/.run/s43/*
!/.run/s43/*.c
!/.run/s43/*.log
!/.run/s43/*.py
!/.run/s43/*.json
!/.run/probe_jtbl/
/.run/probe_jtbl/*
!/.run/probe_jtbl/verdict.md
!/.run/probe_jtbl/rodata_verbatim.objdump
!/.run/probe_jtbl/rodata_filtered.objdump
!/.run/giants/fable_cd4/
/.run/giants/fable_cd4/*
!/.run/giants/fable_cd4/*.c
!/.run/giants/fable_cd4/*.md
!/.run/giants/fable_cd4/*.sh
!/.run/giants/fable_cd4/*.gdb
!/.run/giants/fable_cd4/*.txt
# Phase-26 gdb-on-cc1 oracle harness + proof + draft ladder for func_80178004 (the
# distilled output of a 477k-token Fable5 pass; the method §52 lever 6 depends on).
# dumps_*/ are regenerable via runorc.sh + the .gdb scripts -> stay ignored.
!/.run/fable_80178004/
/.run/fable_80178004/*
!/.run/fable_80178004/*.c
!/.run/fable_80178004/*.md
!/.run/fable_80178004/*.gdb
!/.run/fable_80178004/*.sh
!/.run/fable_80178004/*.py
!/.run/fable_80178004/*.lst
# The frontier ledgers every survey, worklist and plan consumes.
!/.run/backlog.jsonl
# S79/S80 task #9 — one-agent-per-function drafting: the arm drafts (the NEAR seeds), the briefs' laws, the
# target list and the verdict ledger (the PhaseEnd's wall-proof source). Scratch under opus/w_* etc. stays ignored.
!/.run/S79w/
/.run/S79w/*
!/.run/S79w/SYS.md
!/.run/S79w/targets.json
!/.run/S79w/verdicts/
/.run/S79w/verdicts/*
!/.run/S79w/verdicts/*.jsonl
!/.run/S79w/haiku/
/.run/S79w/haiku/*
!/.run/S79w/haiku/func_*.c
!/.run/S79w/sonnet/
/.run/S79w/sonnet/*
!/.run/S79w/sonnet/func_*.c
!/.run/S79w/opus/
/.run/S79w/opus/*
!/.run/S79w/opus/func_*.c
!/.run/S79w/permuter/
/.run/S79w/permuter/*
!/.run/S79w/permuter/func_*.c
!/.run/fuel_manifest.json
# Phase-27 pin-crash characterization: the minimal repro + gdb harness (the irreplaceable ~KB
# core; pin_crash_sigabrt.md above is already covered by giants/*.md). The 260M of RTL dumps +
# bisection .s/.c beside them are regenerable via abort.gdb -> stay ignored (R33).
!/.run/giants/pincrash/
/.run/giants/pincrash/*
!/.run/giants/pincrash/minimal_repro.c
!/.run/giants/pincrash/*.gdb
!/.run/giants/pincrash/*.md
# Regenerated build output (deterministic churn)
/build/
/expected/
# Regenerated splat outputs — recreated by `make extract` from the committed
# config/splat.*.yaml + config/symbols*.txt + the extracted payloads. The durable RE record
# is the symbol file, not these (build scaffolding, not committed work). The four splat preset
# headers (include/include_asm.h, macro.inc, labels.inc, gte_macros.inc) are TRACKED since P33 B1:
# generic presets, identical for every binary, ROM-free — the compile-only CI needs them.
/asm/
/assets/
/undefined_syms_auto.txt
/undefined_funcs_auto.txt
# Ghidra project — its database embeds the program bytes (ROM-derived), so it is not tracked
# (P33 B1; it was committed while private under rule R20). The RE work it holds is exported to
# text (config/ghidra/*.jsonl) and the project is rebuilt from that + the disc by
# tools/ghidra_rebuild.sh. NEVER `git clean -x` here — that deletes the working database.
/ghidra/
# Toolchain downloads & caches (not source)
/.venv/
__pycache__/
# Compiler binaries are ignored (regenerable downloads); the committed *.sha256
# checksum record is re-included so a fresh clone can verify its download (sotn
# pattern). Contents-exclude form (not /tools/bin/) so the !re-include can apply.
/tools/bin/*
!/tools/bin/*.sha256
# PsyQ SDK — Sony-copyrighted; OPTIONAL and user-supplied (tools/fetch_psyq.sh), never distributed.
# The whole directory is ignored (P33 B1; the small working artifacts were committed while private
# under rule R20 and live in the archive repo). The build is byte-identical without it (the
# INCLUDE_ASM fallback tiles); with it, main links Sony's real objects (`make sdk-dual` proves both).
# The checksums of the archives a user must supply are tracked at tools/psyq_CHECKSUMS.sha256.
/tools/psyq/
/tools/pcsx-redux/
*.tar.gz
# ...EXCEPT the old-gcc cc1 compiler tarballs — back them up (gathered compilers; small; verified by
# tools/bin/CHECKSUMS.sha256). Extracted cc1 binaries stay ignored (regenerated by `tar xzf`, SETUP §4.7). R20.
!/tools/bin/*.tar.gz
# Cross-validation scratch: compiled brave oracle + its ROM-derived .dir output
/tools/brave-CUE/_build/
# Phase-18 compiler-quirk research reference repos (gitignored; re-clonable from GitHub, exact SHA
# recorded in docs/SETUP.md). pmret/gcc-papermario = the gcc-2.7.2 source (read the reload/CSE/
# scheduling/regalloc passes) + ladysilverberg/xenogears-decomp = our exact compiler's decomp (mine
# transferable idioms). Research reference, not a build dependency — not committed (avoids repo bloat).
/tools/reference/
# Editor / OS noise
.vscode/
Thumbs.db
# Asset/EXE extraction: commit the tooling + manifest + the retail EXE, NOT the
# bulk payloads (deterministically regenerable from the dump; ~hundreds of MB
# incl. FMV) and NOT the prototype EXEs. Per-ROM subfolders under extracted/:
# extracted/retail/ — retail SLUS-00726 disc extraction (3 files committed)
# extracted/proto/ — prototype main EXEs (ROM-derived; fully ignored)
# Nested allowlist: ignore everything under extracted/, re-include only the 2 manifest
# files (hashes, never bytes — the oracle `make disc-extract` verifies YOUR extraction
# against). The EXE itself left the tree at P33 B1 (H1): it is regenerated from your disc.
/extracted/*
!/extracted/retail/
/extracted/retail/*
!/extracted/retail/manifest.jsonl
!/extracted/retail/manifest.sha1
# NOTE: asm/ + assets/ + undefined_*_auto.txt are IGNORED above: `make extract` regenerates
# them deterministically from the extracted payloads
# from the committed yaml + symbols, so they are build scaffolding, not durable RE work.
# (Phase 5 refined the earlier "commit asm/" stance once the regeneration flow existed;
# the durable record is config/symbols.us.txt.)
# Gen2 matching-model corpus + weights (R20: large artifacts out of git)
datasets/
models/
*.gguf
*.safetensors
.venv-train/
unsloth_compiled_cache/
.venv-serve/
.env
# Phase 29 SESSION-22 — the wave22 UNBANKED drafts. 13 of the 18 (6 NEAR with precise residual
# diagnoses + 7 that reached match_one MATCH but did not bank whole-binary) are the next session's
# named fuel and cost ~2.59M subagent tokens. They lived only on disk, i.e. one `git clean -fdx`
# from gone — the same exposure the .run/giants Fable5 cracks had before Phase 27 curated them.
!/.run/wave22/
/.run/wave22/*
!/.run/wave22/*.c
!/.run/wave22_targets.json
# Phase 29 SESSION-23 — the NEAR-6 measurement corpus + the improved ILS seeds. The two
# permuter waypoints (func_80177B5C 11->7, func_80140958 10->6) are CPU-bought and second-oracle
# verified; the f132F40_v*.c ladder is the byte-evidence for a NEGATIVE result (the §2 remat
# recipe does not dissolve this hoist), which is exactly the kind of finding that gets re-derived
# expensively if it is lost. near6_measure.{py,json} is the reproducer.
!/.run/near6/
/.run/near6/*
!/.run/near6/*.c
!/.run/near6_measure.py
!/.run/near6_measure.json
!/.run/near6_ils_*.log
# P30 S45 — the L3 tour's irreplaceable evidence (R20): the state-change tour log + hit records,
# the watcher/derivation scripts, and the module rosters. The 104 ram_*.bin dumps (~208 MB) stay
# LOCAL-ONLY: regenerable via another debug-menu tour; the byte-proofs live in the jsonl + docs.
!/.run/s45/
/.run/s45/*
!/.run/s45/*.py
!/.run/s45/*.sh
!/.run/s45/*.jsonl
!/.run/s45/*.tsv
!/.run/s45/onboard*.log
# P32 T3 (2026-09-05): the one-agent-per-function wave's ledger + drafts (R20 — the drafts are the only copy of
# byte-verified MATCH/NEAR bodies outside the harness transcripts; scratch dirs stay ignored)
!/.run/P32/
/.run/P32/*
!/.run/P32/*.json
!/.run/P32/t3/
/.run/P32/t3/*
!/.run/P32/t3/SYS.md
!/.run/P32/t3/BRIEF.md
!/.run/P32/t3/LAUNCHED.md
!/.run/P32/t3/targets.json
!/.run/P32/t3/verdicts.jsonl
!/.run/P32/t3/pending_launch.txt
!/.run/P32/t3/harvest_notes.md
!/.run/P32/t3/PROMPT_TEMPLATE.md
!/.run/P32/t3/reports/
/.run/P32/t3/reports/*
!/.run/P32/t3/reports/*.md
!/.run/P32/t3/haiku/
/.run/P32/t3/haiku/*
!/.run/P32/t3/haiku/func_*.c
!/.run/P32/t3/sonnet/
/.run/P32/t3/sonnet/*
!/.run/P32/t3/sonnet/func_*.c
!/.run/P32/t3/opus/
/.run/P32/t3/opus/*
!/.run/P32/t3/opus/func_*.c
!/.run/P32/t3/restored/
/.run/P32/t3/restored/*
!/.run/P32/t3/restored/sweep_*.py
# P32 T3 session 491895ad (S83): the resume session's helpers, prompts, gate slates and logs (not the verify/ compile dirs)
!/.run/P32/t3s3/
/.run/P32/t3s3/*
!/.run/P32/t3s3/*.sh
!/.run/P32/t3s3/*.py
!/.run/P32/t3s3/*.log
!/.run/P32/t3s3/*.txt
!/.run/P32/t3s3/prompts/
!/.run/P32/t3s3/gate/
/.run/P32/t3s3/gate/*
!/.run/P32/t3s3/gate/*.json
!/.run/P32/t3s3/gate/*.log
# P32 T4 (S83): the walls' re-probe artefacts — synced/variant drafts only (the sandbox TU copies and rtu compile dirs are regenerable)
!/.run/P32/t4/
/.run/P32/t4/*
!/.run/P32/t4/drafts/
!/.run/P32/t4/v32A74/
/.run/P32/t4/v32A74/*
!/.run/P32/t4/v32A74/*.c
!/.run/P32/t4/v391D4/
/.run/P32/t4/v391D4/*
!/.run/P32/t4/v391D4/*.c
# P32 T4b/T5x (S83): the hand-pass notes + measured variant drafts, and the Fable pass's brief/targets/drafts/reports
!/.run/P32/t4b/
/.run/P32/t4b/*
!/.run/P32/t4b/func_*/
/.run/P32/t4b/func_*/*
!/.run/P32/t4b/func_*/*.md
!/.run/P32/t4b/func_*/*.c
!/.run/P32/t4b/*.log
!/.run/P32/t5x/
/.run/P32/t5x/*
!/.run/P32/t5x/BRIEF.md
!/.run/P32/t5x/targets.json
!/.run/P32/t5x/fable/
/.run/P32/t5x/fable/*
!/.run/P32/t5x/fable/func_*.c
!/.run/P32/t5x/reports/
/.run/P32/t5x/reports/*
!/.run/P32/t5x/reports/*.md
!/.run/P32/t5x/verdicts.jsonl
!/.run/P32/t5x/resume_queue.txt
# P32 T4b hand pass (S84, 2026-09-06): notes, mechanism probes, verdict drafts and the private dump script (not the dumps_*/ or rtu/ dirs)
!/.run/P32/t4c/
/.run/P32/t4c/*
!/.run/P32/t4c/*.sh
!/.run/P32/t4c/*.py
!/.run/P32/t4c/*.md
!/.run/P32/t4c/*.log
!/.run/P32/t4c/*.json
!/.run/P32/t4c/func_*/
/.run/P32/t4c/func_*/*
!/.run/P32/t4c/func_*/*.c
!/.run/P32/t4c/func_*/*.md
# P32 T4b hand pass row (d) (S85, 2026-09-06): the sibling-port variants, their rtu verdict logs, the notes and the banked body (not the rtu/ compile dirs)
!/.run/P32/t4d/
/.run/P32/t4d/*
!/.run/P32/t4d/*.c
!/.run/P32/t4d/*.md
!/.run/P32/t4d/*.log
!/.run/P32/t4d/bank/
/.run/P32/t4d/bank/*
!/.run/P32/t4d/bank/*.c
# P32 T4c hand pass (S85, 2026-09-06): the two main rows' variants, rtu logs, notes, reproducers, bank bodies, slates, gate/R22 logs (not dumps_*/ or rtu/)
# P33 A5 (S87, 2026-09-06): THE recorded contract run — tools/verify_contract.sh's per-step logs, the two link
# maps of the with/without-SDK dual and SUMMARY.md (quoted by docs/verification.md). Evidence, tracked.
!/.run/P33/
/.run/P33/*
!/.run/P33/verify/
/.run/P33/verify/*
!/.run/P33/verify/*.log
# P33 E1 (S89, 2026-09-07): the decomp.me toolchain-replica verdict log (tools/decompme_replica.sh) — the log only; the
# regenerated target .s (game disassembly, H1), the probe objects and the old-gcc tarball under .run/P33/e1/ stay ignored
!/.run/P33/e1/
/.run/P33/e1/*
!/.run/P33/e1/decompme_replica.log
!/.run/P33/verify/*.map
!/.run/P33/verify/*.md
!/.run/P33/verify/*.txt
!/.run/P32/t4e/
/.run/P32/t4e/*
!/.run/P32/t4e/*.c
!/.run/P32/t4e/*.md
!/.run/P32/t4e/*.log
!/.run/P32/t4e/*.json
!/.run/P32/t4e/*.sh
!/.run/P32/t4e/*.py
!/.run/P32/t4e/bank/
/.run/P32/t4e/bank/*
!/.run/P32/t4e/bank/*.c
!/.run/P32/t4e/ghost/
/.run/P32/t4e/ghost/*
!/.run/P32/t4e/ghost/*.c