Files
BFM-decomp/.gitignore
T
Drew T 144839f24b feat(phase-13): T1a/T1b — SC01/077 onboarded + all-asm byte-match (d19c9580)
- ov_SC01_077 scaffolded: config/overlays.mk (OVERLAY_BINARIES + var block),
  config/splat.ov_SC01_077.yaml (from template), check.sha, empty symbols, +
  ov_SC01_077 entry & sentinel anchor in the 4 Python BINARIES dicts
- GATE T1b: make check BINARY=ov_SC01_077 -> d19c9580 BYTE-IDENTICAL @ 100%
  INCLUDE_ASM; clean rebuild leaves main 143dbb89 + resident 8e17e02f unregressed
- reusable non-word-aligned-overlay handling (~75% of fleet) added to the
  template + Makefile: (1) [word_floor, bin, trailing] carve for the final 1-3
  bytes spimdisasm drops; (2) build/assets/%.o incbin rule (+ .data align=1) for
  splat bin assets (asset_path scoped per-alias); (3) objcopy end-align TRIM
  (shrink-only, <=3 B) removing the .ld's segment-end ALIGN(.,4) pad
- .gitignore /assets/ (regenerable splat output); clean removes assets/
2026-06-16 15:39:52 -06:00

101 lines
4.5 KiB
Plaintext

# ============================================================
# ROM-content policy — see PROJECT_CONTEXT.md rule H1
#
# While the repo is PRIVATE, ROM-derived content MAY be committed
# (asm/, assets/, extracted/, decompressed .CD output). Compliance is
# handled by a pre-public history scrub + a rom->decoder regeneration
# tool. Two things stay ignored regardless:
# 1. the raw multi-GB disc dump (GitHub rejects >100 MB files; it is
# trivially reproducible from the disc), and
# 2. pure regenerated build churn / large binary caches.
# Re-add asm/ assets/ extracted/ to this list before going public.
# ============================================================
# Raw disc dump — never committed (size + reproducible)
/Brave Fencer Musashi (USA)/
/disks/
# RAM-dump corpus (dumps/*.bin) is COMMITTED while private (H1 relaxed; static, not regenerable;
# off-machine backup). Joins the pre-public ROM-content scrub. INDEX.md documents each.
# Project-local runtime scratch (MCP server log + stop sentinel) — replaces /tmp use
/.run/
# Regenerated build output (deterministic churn)
/build/
/expected/
# Regenerated splat outputs — recreated by `make extract` from the committed
# config/splat.us.exe.yaml + config/symbols.us.txt + the EXE. The durable RE record
# is the symbol file, not these (build scaffolding, not committed work).
/asm/
/assets/
/include/include_asm.h
/include/macro.inc
/include/labels.inc
/include/gte_macros.inc
/undefined_syms_auto.txt
/undefined_funcs_auto.txt
# Ghidra project — COMMITTED as the irreplaceable RE-work backup (private repo; rule R20,
# Drew 2026-06-15). NOT regenerable by hand (annotations/types/structs beyond symbols.us.txt).
# Track the project; exclude ONLY live-session transients so a running/restarted MCP server
# doesn't dirty the tree. Re-commit after significant RE + a Ghidra save. (Ghidra pinned at
# 12.1 -> the committed .rep restores directly.) Joins the pre-public ROM-content scrub list.
/ghidra/*.lock
/ghidra/**/*.lock
/ghidra/*.lock~
/ghidra/**/*.lock~
/ghidra/**/tmp*.ps
# 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 (stays PRIVATE; excluded from the public mirror, like ROM content).
# Back up the SMALL gathered working artifacts (lib40/ *.LIB, lib40_elf/ *.a, the PsyQ *.EXE tools,
# psyq-obj-parser, conv47/) — hard to re-source if the upstream archives go down (rule R20). Ignore
# ONLY the >100MB raw source archives (GitHub rejects them; the working libs are already extracted
# from them — the disc-dump-equivalent, re-sourceable from redump if ever truly needed).
/tools/psyq/psyq40usa.zip
/tools/psyq/*.bin
/tools/psyq/*.cue
/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/
# 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 3
# retail committed files (EXE + manifest + manifest hash — always safe; sotn
# precedent). This keeps the "zero ROM-derived bulk staged" guarantee.
/extracted/*
!/extracted/retail/
/extracted/retail/*
!/extracted/retail/SLUS_007.26
!/extracted/retail/manifest.jsonl
!/extracted/retail/manifest.sha1
# NOTE (H1 relaxed, private phase): assets/ and other ROM-derived content stay
# committable while the repo is private. asm/ + the splat-generated include macros +
# undefined_*_auto.txt are IGNORED above: `make extract` regenerates them deterministically
# 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.)