Files
BFM-decomp/config/verbatim_manifest.json
T
Drew T 2e61220bde phase-36: T7 wave c — seven agent closes (c4 c6 c1 c7 c3 c5 c8) + func_8017EEC0's parameter, ~1,000 bodies; generator R23; CI's verbatim_check fixed and wired into tools-health (23,988 → 20,206 sites, R22 218/218)
- closes, each --try 0 then apply-body IDENTICAL + propagate N/N 0 refused: func_80133AB0 (u16 width moves), func_80130D48
  (one call per goto-tail site), func_80135168 (reused temps split + H16 member store), func_80134A74 (widths + join
  statement in both arms), func_80148AFC (implicit handler argument + later operand), func_8015D738 (jump threading:
  re-read + a do-while on precedent, the class raised with Drew), func_80135004 (temp split + argument from its global)
- func_8017EEC0: the uninitialised a0v T4 tus10 left is the parameter (8/8, IDENTICAL)
- CI red since cb2fb5e6d: verbatim_check --strict saw the DECOMPILE-NOW row func_8017EEC0 converted; row removed (one
  row), --update keeps order + UTF-8 (proven equal to the hand fix), verbatim_check --strict now in make tools-health
- delever.split_reused_locals = family R23 (selftest + two refusals; known-true: joint split = the agents' measured 12/26)
- check-all 218 passed 0 failed (twice); lever_census 20,206 marked 0 UNMARKED; Drew: at most five concurrent agents
2026-09-10 14:56:17 -06:00

820 lines
33 KiB
JSON

{
"_README": [
"THE AUTHORITATIVE CENSUS of every §265 verbatim-__asm__ body — assembly posing as C.",
"Derived once (P31 S75) from the ROM image, the PsyQ archive symbol tables, and the",
"<OBJ>_OBJ_<hex> naming key (= placed_object.text_start + hex). NOT re-derived by regex:",
"five successive regex censuses gave 116/112/108/178/199 and mis-called 154 rows game code",
"when the archive-derived answer is 24 (cookbook §448/§452).",
"tools/verbatim_check.py diffs the tree against this file and fails on drift.",
"Dispositions: PERMANENT-VERBATIM (hand asm; never decompilable) · DECOMPILE-NOW ·",
"DECOMPILE-AS-PARENT (a fragment; decompile its unit_entry, never the fragment) ·",
"DECOMPILE-LOW-VALUE · UNCERTAIN · NOT-CODE · NOT-VERBATIM (detector false positive).",
"RATIFIED 2026-09-05 (P31 S80, task #10): the five PERMANENT-VERBATIM rows are hand assembly that no C can reproduce and stay verbatim for the life of the project — main:start (crt0: trapping `addi`, `break 1`, the $gp load), main:__main + main:__do_global_dtors (libgcc2.c compiled -O2 inside the -O0 boot TU; gcc-2.7.2 has no per-function opt level), md_MAIN_003:func_800D3204 + func_800D3234 (trapping `add`/`addi`, `$at`, no frame — MDEC-side). The one GAME-C row (ov_SC03_107:func_8017D878) is decompiled in task #10.",
"EXTENDED 2026-09-09 (P36 T1b, Drew: 'confirmed per your recommendations'): the IN-FUNCTION form of the lane — a C shell whose whole body is ONE __asm__ statement — was invisible to the file-scope detector and to the P31 S75 derivation. tools/lever_census.py found 23 such routines (2,683 sites: one private copy per overlay + a shared header each, three shared-only). 22 are the original's scratchpad stack-switch trampolines (PERMANENT-VERBATIM, form in-function, binary ov_* = every overlay and the shared headers); func_80184440 is -O0 compiler output and is DECOMPILE-NOW (a Phase-36 residue, counted as a lever). verbatim_check detects the in-function form structurally (the asm is the function's only statement) through lever_census.",
"2026-09-09 (P36 T1b, second pass): the structural detector found 21 more in-function bodies the §265 lane had banked as raw asm inside C shells and no census had listed: 8 Sony libgs GsTMDfast* renderers in main (SDK-VERBATIM — Sony's code carried as assembly where no SDK object matched), and 13 game bodies (main 8, modules 2, overlays 3) that are DECOMPILE-NOW when compiler-shaped and UNCERTAIN when they carry a hand-asm marker; both stay LEVERS in tools/lever_census.py until resolved."
],
"generated": "P31 S75 from .run/S75/triage/taxonomy.json; in-function rows P36 T1b (2026-09-09) from tools/lever_census.py --sites",
"rows": [
{
"binary": "main",
"fn": "__do_global_dtors",
"addr": "0x80010110",
"nins": 26,
"cls": "CRT-LIBGCC",
"disposition": "PERMANENT-VERBATIM",
"unit_entry": "__do_global_dtors",
"unit_nins": 26,
"path": "src/boot.c",
"why": "libgcc2.c C compiled -O2 inside the -O0 boot TU (per src comment); gcc-2.7.2 has no per-function opt level"
},
{
"binary": "main",
"fn": "__main",
"addr": "0x800100a0",
"nins": 28,
"cls": "CRT-LIBGCC",
"disposition": "PERMANENT-VERBATIM",
"unit_entry": "__main",
"unit_nins": 28,
"path": "src/boot.c",
"why": "libgcc2.c C compiled -O2 inside the -O0 boot TU (per src comment); gcc-2.7.2 has no per-function opt level"
},
{
"binary": "main",
"fn": "start",
"addr": "0x80010000",
"nins": 40,
"cls": "CRT-ASM",
"disposition": "PERMANENT-VERBATIM",
"unit_entry": "start",
"unit_nins": 40,
"path": "src/boot.c",
"why": "crt0: `addi` (trapping add), break 1, $gp load; splat Handwritten"
},
{
"binary": "md_MAIN_003",
"fn": "func_800D3204",
"addr": "0x800d3204",
"nins": 12,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"unit_entry": "func_800D3204",
"unit_nins": 12,
"path": "src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c",
"why": "`addi $at,$a0,-1` — hand-written"
},
{
"binary": "md_MAIN_003",
"fn": "func_800D3234",
"addr": "0x800d3234",
"nins": 208,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"unit_entry": "func_800D3234",
"unit_nins": 208,
"path": "src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c",
"why": "`add`/`addi` (trapping) arithmetic throughout, no frame, $at use — hand-written (MDEC-side)"
},
{
"binary": "ov_*",
"fn": "func_801285E4",
"addr": "0x801285e4",
"nins": 37,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_801285E4",
"unit_nins": 37,
"path": "src/shared/ov/func_801285E4__22637e5f.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_801285E4__22637e5f.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80128678",
"addr": "0x80128678",
"nins": 39,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_80128678",
"unit_nins": 39,
"path": "src/shared/ov/func_80128678.h",
"copies": {
"private_tus": 0,
"shared_header": "src/shared/ov/func_80128678.h",
"binaries": 141,
"distinct_h_exact": 1
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; byte-identical fleet-wide",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80128714",
"addr": "0x80128714",
"nins": 41,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_80128714",
"unit_nins": 41,
"path": "src/shared/ov/func_80128714__34914b60.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_80128714__34914b60.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014607C",
"addr": "0x8014607c",
"nins": 43,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014607C",
"unit_nins": 43,
"path": "src/shared/ov/func_8014607C__b3c81197.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014607C__b3c81197.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014CCB4",
"addr": "0x8014ccb4",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014CCB4",
"unit_nins": 22,
"path": "src/shared/ov/func_8014CCB4__8d2dda22.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014CCB4__8d2dda22.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014D04C",
"addr": "0x8014d04c",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014D04C",
"unit_nins": 22,
"path": "src/shared/ov/func_8014D04C__f6add6d7.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014D04C__f6add6d7.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014D3E0",
"addr": "0x8014d3e0",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014D3E0",
"unit_nins": 22,
"path": "src/shared/ov/func_8014D3E0__fb5af043.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014D3E0__fb5af043.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014D738",
"addr": "0x8014d738",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014D738",
"unit_nins": 22,
"path": "src/shared/ov/func_8014D738__023a6d30.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014D738__023a6d30.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014DF3C",
"addr": "0x8014df3c",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014DF3C",
"unit_nins": 22,
"path": "src/shared/ov/func_8014DF3C__fbb47098.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014DF3C__fbb47098.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014E434",
"addr": "0x8014e434",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014E434",
"unit_nins": 22,
"path": "src/shared/ov/func_8014E434__1a41a9cf.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014E434__1a41a9cf.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014E6A0",
"addr": "0x8014e6a0",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014E6A0",
"unit_nins": 22,
"path": "src/shared/ov/func_8014E6A0__9b3e0b9c.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014E6A0__9b3e0b9c.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014E934",
"addr": "0x8014e934",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014E934",
"unit_nins": 22,
"path": "src/shared/ov/func_8014E934__4b5aecb9.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014E934__4b5aecb9.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014ED28",
"addr": "0x8014ed28",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014ED28",
"unit_nins": 22,
"path": "src/shared/ov/func_8014ED28__d124f56e.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014ED28__d124f56e.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014F1F4",
"addr": "0x8014f1f4",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014F1F4",
"unit_nins": 22,
"path": "src/shared/ov/func_8014F1F4__7ce404cb.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014F1F4__7ce404cb.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014F468",
"addr": "0x8014f468",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014F468",
"unit_nins": 22,
"path": "src/shared/ov/func_8014F468__fc2209a3.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014F468__fc2209a3.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014F6F4",
"addr": "0x8014f6f4",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014F6F4",
"unit_nins": 22,
"path": "src/shared/ov/func_8014F6F4__923dc24d.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014F6F4__923dc24d.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014FA04",
"addr": "0x8014fa04",
"nins": 27,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014FA04",
"unit_nins": 27,
"path": "src/shared/ov/func_8014FA04__6f7b9fcb.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014FA04__6f7b9fcb.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014FBC0",
"addr": "0x8014fbc0",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014FBC0",
"unit_nins": 22,
"path": "src/shared/ov/func_8014FBC0__37bdabb3.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014FBC0__37bdabb3.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_8014FCFC",
"addr": "0x8014fcfc",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_8014FCFC",
"unit_nins": 22,
"path": "src/shared/ov/func_8014FCFC__853c5baf.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_8014FCFC__853c5baf.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80150480",
"addr": "0x80150480",
"nins": 22,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_80150480",
"unit_nins": 22,
"path": "src/shared/ov/func_80150480__de1033f9.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_80150480__de1033f9.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80150A70",
"addr": "0x80150a70",
"nins": 46,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_80150A70",
"unit_nins": 46,
"path": "src/shared/ov/func_80150A70__5bf92896.h",
"copies": {
"private_tus": 133,
"shared_header": "src/shared/ov/func_80150A70__5bf92896.h",
"binaries": 141,
"distinct_h_exact": 134
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; bytes vary per overlay (each copy wraps its own callee)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80155FF8",
"addr": "0x80155ff8",
"nins": 19,
"cls": "GAME-ASM",
"disposition": "PERMANENT-VERBATIM",
"form": "in-function",
"unit_entry": "func_80155FF8",
"unit_nins": 19,
"path": "src/shared/ov/func_80155FF8.h",
"copies": {
"private_tus": 0,
"shared_header": "src/shared/ov/func_80155FF8.h",
"binaries": 141,
"distinct_h_exact": 1
},
"why": "scratchpad stack-switch trampoline: saves $sp at 0x1F8003FC and runs its callee on the scratchpad stack (`sw $sp,0($t0)` / `addu $sp,$t0,$zero`) — no compiler emits it; hand-written; byte-identical fleet-wide",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "ov_*",
"fn": "func_80184440",
"addr": "0x80184440",
"nins": 13,
"cls": "GAME-ASM",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_80184440",
"unit_nins": 13,
"path": "src/shared/ov/func_80184440.h",
"copies": {
"private_tus": 0,
"shared_header": "src/shared/ov/func_80184440.h",
"binaries": 2,
"distinct_h_exact": 1
},
"why": "-O0 compiler shape (frame-pointer prologue around two global stores), not hand asm: carve the function into an -O0 unit and write the C (Phase 36 residue)",
"ratified": "2026-09-09 (P36 T1b; Drew: confirmed per the recommendation)"
},
{
"binary": "main",
"fn": "GsTMDfastF3GL",
"addr": "0x80057c7c",
"nins": 129,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastF3GL",
"unit_nins": 129,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastF3GNL",
"addr": "0x80057e80",
"nins": 95,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastF3GNL",
"unit_nins": 95,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastF4GL",
"addr": "0x80057ffc",
"nins": 162,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastF4GL",
"unit_nins": 162,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastF4GNL",
"addr": "0x80058284",
"nins": 118,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastF4GNL",
"unit_nins": 118,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastG3GL",
"addr": "0x80057928",
"nins": 123,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastG3GL",
"unit_nins": 123,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastG3GNL",
"addr": "0x80057b14",
"nins": 90,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastG3GNL",
"unit_nins": 90,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastG4GL",
"addr": "0x8005845c",
"nins": 156,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastG4GL",
"unit_nins": 156,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "GsTMDfastG4GNL",
"addr": "0x800586cc",
"nins": 113,
"cls": "SDK-ASM",
"disposition": "SDK-VERBATIM",
"form": "in-function",
"unit_entry": "GsTMDfastG4GNL",
"unit_nins": 113,
"path": "src/800b2.c",
"why": "Sony libgs fast-path renderer carried as assembly (P31: banked verbatim, cookbook §176/§205 area) — no SDK object of this libgs version matched; Sony code, not ours",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_8001E378",
"addr": "0x8001e378",
"nins": 188,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_8001E378",
"unit_nins": 188,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_80020F34",
"addr": "0x80020f34",
"nins": 53,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_80020F34",
"unit_nins": 53,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_800249F0",
"addr": "0x800249f0",
"nins": 116,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_800249F0",
"unit_nins": 116,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_80025CBC",
"addr": "0x80025cbc",
"nins": 127,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_80025CBC",
"unit_nins": 127,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_80026514",
"addr": "0x80026514",
"nins": 239,
"cls": "GAME-ASM?",
"disposition": "UNCERTAIN",
"form": "in-function",
"unit_entry": "func_80026514",
"unit_nins": 239,
"path": "src/800.c",
"why": "in-function §265 body; hand-asm markers present: $at — adjudicate (hand-written → PERMANENT-VERBATIM, else DECOMPILE-NOW)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_800268D0",
"addr": "0x800268d0",
"nins": 293,
"cls": "GAME-ASM?",
"disposition": "UNCERTAIN",
"form": "in-function",
"unit_entry": "func_800268D0",
"unit_nins": 293,
"path": "src/800.c",
"why": "in-function §265 body; hand-asm markers present: $at — adjudicate (hand-written → PERMANENT-VERBATIM, else DECOMPILE-NOW)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_80027058",
"addr": "0x80027058",
"nins": 106,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_80027058",
"unit_nins": 106,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "main",
"fn": "func_80027200",
"addr": "0x80027200",
"nins": 125,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_80027200",
"unit_nins": 125,
"path": "src/800.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "md_MAIN_027",
"fn": "func_800CBA44",
"addr": "0x800cba44",
"nins": 109,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_800CBA44",
"unit_nins": 109,
"path": "src/md_MAIN_027/md_MAIN_027.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "md_SC07_003",
"fn": "func_801A3BCC",
"addr": "0x801a3bcc",
"nins": 372,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_801A3BCC",
"unit_nins": 372,
"path": "src/md_SC07_003/md_SC07_003.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "ov_SC04_016",
"fn": "func_8017E26C",
"addr": "0x8017e26c",
"nins": 269,
"cls": "GAME-ASM?",
"disposition": "UNCERTAIN",
"form": "in-function",
"unit_entry": "func_8017E26C",
"unit_nins": 269,
"path": "src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c",
"why": "in-function §265 body; hand-asm markers present: $at — adjudicate (hand-written → PERMANENT-VERBATIM, else DECOMPILE-NOW)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
},
{
"binary": "ov_SC06_032",
"fn": "func_8017D810",
"addr": "0x8017d810",
"nins": 33,
"cls": "GAME-C",
"disposition": "DECOMPILE-NOW",
"form": "in-function",
"unit_entry": "func_8017D810",
"unit_nins": 33,
"path": "src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c",
"why": "in-function §265 body with a compiler-shaped prologue and no hand-asm marker — a function never decompiled; a Phase-36 residue (Drew: everything short of Sony objects and the original hand asm must be C)",
"ratified": "2026-09-09 (P36 T1b: listed by the structural detector; SDK rows and the DECOMPILE/UNCERTAIN split are the proposal for Drew)"
}
]
}