mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-04 16:28:11 -04:00
T3.c1: rung S exemplar ov_SC05_010_jr_80180F84: members + CAST_* respells, ledger t3_ex1
This commit is contained in:
+157
-157
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"head": "b5e18e5f83",
|
||||
"head": "3507628e40",
|
||||
"stamp": "588cbf38c6e4",
|
||||
"generated": "2026-10-01 10:57",
|
||||
"generated": "2026-10-01 12:16",
|
||||
"aliases": [
|
||||
"main",
|
||||
"md_SC07_004",
|
||||
@@ -21,176 +21,176 @@
|
||||
"main": {
|
||||
"objects": 85,
|
||||
"identical": 85,
|
||||
"seconds": 7.198999999999999,
|
||||
"mean_s": 0.085
|
||||
"seconds": 8.519999999999998,
|
||||
"mean_s": 0.1
|
||||
},
|
||||
"md_SC07_004": {
|
||||
"objects": 1,
|
||||
"identical": 1,
|
||||
"seconds": 0.516,
|
||||
"mean_s": 0.516
|
||||
"seconds": 0.602,
|
||||
"mean_s": 0.602
|
||||
},
|
||||
"ov_SC03_015": {
|
||||
"objects": 32,
|
||||
"identical": 32,
|
||||
"seconds": 5.2540000000000004,
|
||||
"mean_s": 0.164
|
||||
"seconds": 6.038,
|
||||
"mean_s": 0.189
|
||||
},
|
||||
"ov_SC04_011": {
|
||||
"objects": 28,
|
||||
"identical": 28,
|
||||
"seconds": 4.247,
|
||||
"mean_s": 0.152
|
||||
"seconds": 5.418000000000002,
|
||||
"mean_s": 0.194
|
||||
}
|
||||
},
|
||||
"per_object_seconds": {
|
||||
"build/src/800.o": 0.764,
|
||||
"build/src/800_b.o": 0.095,
|
||||
"build/src/800_b_2.o": 0.328,
|
||||
"build/src/800_b_o0a.o": 0.058,
|
||||
"build/src/800_c.o": 0.206,
|
||||
"build/src/800b2.o": 0.078,
|
||||
"build/src/apicard1.o": 0.094,
|
||||
"build/src/apicard2.o": 0.061,
|
||||
"build/src/apicard3.o": 0.084,
|
||||
"build/src/apicard4.o": 0.062,
|
||||
"build/src/apicard5.o": 0.079,
|
||||
"build/src/apicard6.o": 0.093,
|
||||
"build/src/apicard7.o": 0.071,
|
||||
"build/src/boot.o": 0.095,
|
||||
"build/src/gap.o": 0.07,
|
||||
"build/src/libapi1.o": 0.084,
|
||||
"build/src/libapi2.o": 0.067,
|
||||
"build/src/libc2_1.o": 0.068,
|
||||
"build/src/libc2_2.o": 0.063,
|
||||
"build/src/libcd1.o": 0.074,
|
||||
"build/src/libcd2.o": 0.066,
|
||||
"build/src/libetc.o": 0.067,
|
||||
"build/src/libgpu.o": 0.066,
|
||||
"build/src/libgpu2.o": 0.071,
|
||||
"build/src/libgs1.o": 0.066,
|
||||
"build/src/libgs2.o": 0.062,
|
||||
"build/src/libgs3.o": 0.06,
|
||||
"build/src/libgs4.o": 0.066,
|
||||
"build/src/libgs5.o": 0.072,
|
||||
"build/src/libgs6.o": 0.076,
|
||||
"build/src/libgs7.o": 0.06,
|
||||
"build/src/libgs8.o": 0.065,
|
||||
"build/src/libgte1.o": 0.069,
|
||||
"build/src/libgte10.o": 0.067,
|
||||
"build/src/libgte11.o": 0.062,
|
||||
"build/src/libgte12.o": 0.064,
|
||||
"build/src/libgte13.o": 0.076,
|
||||
"build/src/libgte14.o": 0.071,
|
||||
"build/src/libgte15.o": 0.073,
|
||||
"build/src/libgte16.o": 0.074,
|
||||
"build/src/libgte17.o": 0.072,
|
||||
"build/src/libgte18.o": 0.07,
|
||||
"build/src/libgte19.o": 0.068,
|
||||
"build/src/libgte2.o": 0.07,
|
||||
"build/src/libgte20.o": 0.073,
|
||||
"build/src/libgte21.o": 0.07,
|
||||
"build/src/libgte22.o": 0.07,
|
||||
"build/src/libgte23.o": 0.068,
|
||||
"build/src/libgte24.o": 0.07,
|
||||
"build/src/libgte25.o": 0.073,
|
||||
"build/src/libgte26.o": 0.068,
|
||||
"build/src/libgte27.o": 0.068,
|
||||
"build/src/libgte28.o": 0.064,
|
||||
"build/src/libgte29.o": 0.068,
|
||||
"build/src/libgte3.o": 0.072,
|
||||
"build/src/libgte30.o": 0.064,
|
||||
"build/src/libgte4.o": 0.06,
|
||||
"build/src/libgte5.o": 0.062,
|
||||
"build/src/libgte6.o": 0.071,
|
||||
"build/src/libgte7.o": 0.064,
|
||||
"build/src/libgte8.o": 0.071,
|
||||
"build/src/libgte9.o": 0.062,
|
||||
"build/src/libmcrd1.o": 0.077,
|
||||
"build/src/libmcrd2.o": 0.068,
|
||||
"build/src/libpad1.o": 0.078,
|
||||
"build/src/libpad2.o": 0.069,
|
||||
"build/src/sgap.o": 0.064,
|
||||
"build/src/sgap_2.o": 0.062,
|
||||
"build/src/sgap_3.o": 0.066,
|
||||
"build/src/sgap_4.o": 0.081,
|
||||
"build/src/sgap_5.o": 0.077,
|
||||
"build/src/sgap_6.o": 0.066,
|
||||
"build/src/sgap_8.o": 0.079,
|
||||
"build/src/snd1.o": 0.079,
|
||||
"build/src/snd10.o": 0.077,
|
||||
"build/src/snd11.o": 0.067,
|
||||
"build/src/snd12.o": 0.078,
|
||||
"build/src/snd2.o": 0.111,
|
||||
"build/src/snd3.o": 0.077,
|
||||
"build/src/snd4.o": 0.084,
|
||||
"build/src/snd5.o": 0.071,
|
||||
"build/src/snd6.o": 0.079,
|
||||
"build/src/snd7.o": 0.077,
|
||||
"build/src/snd8.o": 0.087,
|
||||
"build/src/snd9.o": 0.08,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.516,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.161,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.505,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.428,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.083,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.082,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.146,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.182,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.152,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.109,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.117,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.217,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.091,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.188,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.131,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.086,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.079,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.102,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.463,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.287,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.12,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.222,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.076,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.109,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.084,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.178,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.213,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.067,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.282,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.057,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.077,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.077,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.083,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.135,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.44,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.349,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.063,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.068,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.135,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.154,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.112,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.086,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.181,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.081,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.16,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.105,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.082,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.085,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.105,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.366,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.223,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.107,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.191,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.108,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.465,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.061,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.066
|
||||
"build/src/800.o": 0.9,
|
||||
"build/src/800_b.o": 0.111,
|
||||
"build/src/800_b_2.o": 0.368,
|
||||
"build/src/800_b_o0a.o": 0.081,
|
||||
"build/src/800_c.o": 0.239,
|
||||
"build/src/800b2.o": 0.093,
|
||||
"build/src/apicard1.o": 0.089,
|
||||
"build/src/apicard2.o": 0.084,
|
||||
"build/src/apicard3.o": 0.105,
|
||||
"build/src/apicard4.o": 0.073,
|
||||
"build/src/apicard5.o": 0.102,
|
||||
"build/src/apicard6.o": 0.098,
|
||||
"build/src/apicard7.o": 0.121,
|
||||
"build/src/boot.o": 0.128,
|
||||
"build/src/gap.o": 0.093,
|
||||
"build/src/libapi1.o": 0.081,
|
||||
"build/src/libapi2.o": 0.071,
|
||||
"build/src/libc2_1.o": 0.081,
|
||||
"build/src/libc2_2.o": 0.073,
|
||||
"build/src/libcd1.o": 0.1,
|
||||
"build/src/libcd2.o": 0.079,
|
||||
"build/src/libetc.o": 0.081,
|
||||
"build/src/libgpu.o": 0.09,
|
||||
"build/src/libgpu2.o": 0.086,
|
||||
"build/src/libgs1.o": 0.08,
|
||||
"build/src/libgs2.o": 0.081,
|
||||
"build/src/libgs3.o": 0.074,
|
||||
"build/src/libgs4.o": 0.079,
|
||||
"build/src/libgs5.o": 0.077,
|
||||
"build/src/libgs6.o": 0.1,
|
||||
"build/src/libgs7.o": 0.081,
|
||||
"build/src/libgs8.o": 0.071,
|
||||
"build/src/libgte1.o": 0.083,
|
||||
"build/src/libgte10.o": 0.075,
|
||||
"build/src/libgte11.o": 0.076,
|
||||
"build/src/libgte12.o": 0.088,
|
||||
"build/src/libgte13.o": 0.083,
|
||||
"build/src/libgte14.o": 0.09,
|
||||
"build/src/libgte15.o": 0.074,
|
||||
"build/src/libgte16.o": 0.085,
|
||||
"build/src/libgte17.o": 0.079,
|
||||
"build/src/libgte18.o": 0.08,
|
||||
"build/src/libgte19.o": 0.077,
|
||||
"build/src/libgte2.o": 0.078,
|
||||
"build/src/libgte20.o": 0.08,
|
||||
"build/src/libgte21.o": 0.075,
|
||||
"build/src/libgte22.o": 0.085,
|
||||
"build/src/libgte23.o": 0.09,
|
||||
"build/src/libgte24.o": 0.082,
|
||||
"build/src/libgte25.o": 0.077,
|
||||
"build/src/libgte26.o": 0.079,
|
||||
"build/src/libgte27.o": 0.087,
|
||||
"build/src/libgte28.o": 0.087,
|
||||
"build/src/libgte29.o": 0.086,
|
||||
"build/src/libgte3.o": 0.09,
|
||||
"build/src/libgte30.o": 0.091,
|
||||
"build/src/libgte4.o": 0.107,
|
||||
"build/src/libgte5.o": 0.094,
|
||||
"build/src/libgte6.o": 0.077,
|
||||
"build/src/libgte7.o": 0.074,
|
||||
"build/src/libgte8.o": 0.082,
|
||||
"build/src/libgte9.o": 0.084,
|
||||
"build/src/libmcrd1.o": 0.09,
|
||||
"build/src/libmcrd2.o": 0.083,
|
||||
"build/src/libpad1.o": 0.089,
|
||||
"build/src/libpad2.o": 0.093,
|
||||
"build/src/sgap.o": 0.1,
|
||||
"build/src/sgap_2.o": 0.077,
|
||||
"build/src/sgap_3.o": 0.082,
|
||||
"build/src/sgap_4.o": 0.093,
|
||||
"build/src/sgap_5.o": 0.079,
|
||||
"build/src/sgap_6.o": 0.08,
|
||||
"build/src/sgap_8.o": 0.085,
|
||||
"build/src/snd1.o": 0.099,
|
||||
"build/src/snd10.o": 0.084,
|
||||
"build/src/snd11.o": 0.08,
|
||||
"build/src/snd12.o": 0.074,
|
||||
"build/src/snd2.o": 0.091,
|
||||
"build/src/snd3.o": 0.079,
|
||||
"build/src/snd4.o": 0.082,
|
||||
"build/src/snd5.o": 0.083,
|
||||
"build/src/snd6.o": 0.088,
|
||||
"build/src/snd7.o": 0.089,
|
||||
"build/src/snd8.o": 0.074,
|
||||
"build/src/snd9.o": 0.081,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.602,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.174,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.626,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.475,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.088,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.087,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.164,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.199,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.154,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.123,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.091,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.232,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.105,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.225,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.122,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.081,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.093,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.125,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.574,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.322,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.133,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.251,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.097,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.141,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.099,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.219,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.251,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.084,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.344,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.076,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.095,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.084,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.177,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.549,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.435,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.081,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.078,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.163,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.209,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.154,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.111,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.099,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.233,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.218,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.135,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.098,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.107,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.137,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.463,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.287,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.148,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.23,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.097,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.134,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.099,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.145,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.58,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.078
|
||||
},
|
||||
"ok": true,
|
||||
"seconds": 2.1
|
||||
"seconds": 2.6
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# T3.c1 — rung S per-site classes, CAST_* respell, --only glob; exemplar apply
|
||||
|
||||
## Change
|
||||
- `tools/restruct.py`
|
||||
- `s_edits(..., why=None)` / `s_body_edits(..., why=None)`: record {id(site): skip reason} (index, negative-offset, no-field, aggregate-field, width, sign, pointee, overlap).
|
||||
- `site_row(..., cause=None)`: `cause` on every site.
|
||||
- new `S_KEPT_MACRO`, `S_RESPELL_VERDICTS`, `site_class()` (order: MISALIGNED > SIGN > WIDTH(width skip / overlap / drop_overlaps loser) > SCHED-ALIAS(kept S2/KEPT-ALL edit) > NON-STRUCT(base not typed in body_base_type.json; an indexed / negative untyped site → INDEX / NEGATIVE-OFFSET) > other skip uppercased), `respell_edit()` (P-form `*(T *)(p + k)` → `CAST_<X>(T, p, k)`; refuses no literal `+ k`, a lower-precedence op in p, comments inside, or p/k not reparsing to the site's base/off), `s_site_rows()` (every RAW_FORMS site of the body, source order; respells never overlap an accepted edit or each other), `typed_bases_of()` (bases bbt types but the plan does not draw → RESIDUAL(TYPE-NOT-CANONICAL|TYPE-NOT-VISIBLE)).
|
||||
- `work_file_S`: replaces the old site loop (body hint / KEPT(overlap-edit)); respells composed with accepted edits (`compose_text(base_text, accepted + resp + inserts)`, or `resp` alone for KEPT-ALL) → proved by the final whole-file judge. No-edit body with respellable kept sites → verdict `KEPT`. REFUSED body: edit sites stay REFUSED, nothing respelled. `--recipes` (try): no respell (recipes need raw kept sites). `row["hint"]` unchanged. `out/row["respelled"]` counts.
|
||||
- `matches_only`: glob items (`*?[`) fnmatch the path or the `src/<dir>` component.
|
||||
- `--try-file` prints full site verdicts, non-member sites, and the respelled `CAST_` lines (was `verdict.split("(")[0]`).
|
||||
- selftest +8: class order, fixture `FIXTURE_TU_S2`/`fx_c` (S2 body: MEMBER, KEPT(SIGN|SCHED-ALIAS|MISALIGNED|NON-STRUCT|WIDTH), RESIDUAL(NO-FIELD|NEGATIVE-OFFSET)), cause present, respell text + final IDENTICAL + respelled 5, census backs all 5 (unbacked 0), negative (NO-SITE row backs nothing), respell_edit refusals, `--only ov_*` glob. Existing all-DIFFERS stub now IDENTICAL for the final tag (`…F`) only (the respelled-only final text is judged).
|
||||
- `tools/type_census.py:1963` `BACKED_S_VERDICTS` += `MEMBERS`, `S+A` (old value kept in comment). S+A: a body whose levers came off after respell keeps verdict S+A; without it its macros would be unbacked.
|
||||
|
||||
## Commands
|
||||
- `restruct.py --selftest` → 85/85 OK; `type_census.py --selftest` → 50/50 OK.
|
||||
- `make kit-corpus` → ok; `make tools-health` → `tools-health: OK`.
|
||||
- commit 3ff15ee462 (tool), 3507628e40 (try-file print).
|
||||
- `delever_oracle --snapshot-baseline` + `--calibrate ov_SC04_011 ov_SC03_015 md_SC07_004 main -j 16` → 146/146 OK (rerun after the 2nd commit: R56 refused the apply at the stale calibration).
|
||||
- `restruct.py --selftest --real` → 90/90 OK.
|
||||
- `--try-file … func_801814AC` → S2, final IDENTICAL; `global:D_801C7E30+0x34 store KEPT(SCHED-ALIAS)` → `CAST_ALIAS(u16, D_801C7E30, 0x34) = 0;` (local type in try mode).
|
||||
- `--apply --rung S --batch 1 --only src/ov_SC05_010/ov_SC05_010_jr_80180F84.c --label t3_ex1 -j 12` → rc 0, final 1/1 IDENTICAL, 3 bodies, members 62 kept 16 skipped 36, compiles 21; WALL 25.5 s.
|
||||
- `make check BINARY=ov_SC05_010` → BYTE-IDENTICAL.
|
||||
- R22 `make clean && make extract-all JOBS=16 && make check-all JOBS=16` → 218 passed, 0 failed.
|
||||
|
||||
## Exemplar rows (label t3_ex1)
|
||||
- func_80180F84 MEMBERS respelled 9: MEMBER 38, KEPT(SIGN) 6, KEPT(WIDTH) 15, RESIDUAL(NO-FIELD) 5.
|
||||
- func_801814AC S2 respelled 6: MEMBER 4, KEPT(SIGN) 3, KEPT(SCHED-ALIAS) 3, RESIDUAL(TYPE-NOT-CANONICAL) 8.
|
||||
- func_80181B4C MEMBERS respelled 4: MEMBER 20, KEPT(SIGN) 2, KEPT(WIDTH) 5, RESIDUAL(TYPE-NOT-CANONICAL) 13.
|
||||
- file forms (file_view): before P 160 I 2 → after P 79 I 2 K 19 C 49.
|
||||
|
||||
## check-casts
|
||||
- before (derived: after + this file's P delta 81, macros only in this file): `raw P=408974 I=60666 X=13800 M=19542; macros none`.
|
||||
- after: `check-casts: raw P=408893 I=60666 X=13800 M=19542; macros CAST_ALIAS=3 CAST_SIGN=10 CAST_WIDTH=6 (unbacked 0); lying=229 (ledgered 0)` (rc 1: raw > 0, expected).
|
||||
|
||||
## Expert should know
|
||||
- In the real apply the +0x34 store (`D_801C7E30`) is RESIDUAL(TYPE-NOT-CANONICAL): its type is not canonical, only try mode's local type draws it. The try shows the KEPT(SCHED-ALIAS)/CAST_ALIAS outcome.
|
||||
- KEPT sites ≠ respelled: a kept inner site inside an ACCEPTED member edit's base (`((T *)*(s32 *)(arg0 + 0x20))->unk12`, KEPT(WIDTH) inner) stays raw (respell refused on overlap with an accepted edit); also X/I/M kept sites and an outer-over-inner respell pair (outer wins). 21 kept in func_80180F84, 9 respelled. Composing the inner respell into the member replacement text would cover the first case.
|
||||
- NON-STRUCT = base absent from body_base_type.json for the body (any bclass), per brief; those sites leave the P census once respelled.
|
||||
- `tools/commit_task.sh` also picked up the untracked `phase-ends/current/logs/T3.md` into 3ff15ee462 (the script stages logs/).
|
||||
@@ -2816,39 +2816,39 @@ void func_80180F84(s32 arg0)
|
||||
s16 scnt;
|
||||
s32 arr[3];
|
||||
|
||||
switch (*(u16 *)(arg0 + 0x34)) {
|
||||
switch (((Unkstruct_800B5CB8 *)arg0)->unk34) {
|
||||
case 0:
|
||||
*(u16 *)(arg0 + 0xFC) = *(u16 *)(arg0 + 0xFC) + 0x40;
|
||||
scnt = *(s16 *)(arg0 + 0xFE) - 1;
|
||||
*(s16 *)(arg0 + 0xFE) = scnt;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = CAST_SIGN(u16, arg0, 0xFC) + 0x40;
|
||||
scnt = ((Unkstruct_800B5CB8 *)arg0)->unkFE - 1;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFE = scnt;
|
||||
if (((s32)scnt << 16) > 0) {
|
||||
return;
|
||||
}
|
||||
*(u16 *)(arg0 + 0x34) = 1;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
*(u16 *)(arg0 + 0xFC) = *(u16 *)(arg0 + 0xFC) - 0x180;
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) + 0x400;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = CAST_SIGN(u16, arg0, 0xFC) - 0x180;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 + 0x400;
|
||||
t = func_8012B8E4(arg0, 0x10);
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) - 0x400;
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) + t;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 - 0x400;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 + t;
|
||||
if ((u32)(t + 8) >= 0x11) {
|
||||
return;
|
||||
}
|
||||
if (func_8012BCCC(arg0) < 0x4001) {
|
||||
*(u16 *)(arg0 + 0x34) = 3;
|
||||
*(u16 *)(arg0 + 0xFC) = 0;
|
||||
*(u16 *)(arg0 + 0xFE) = 0x1E;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 3;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = 0;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFE = 0x1E;
|
||||
} else {
|
||||
*(u16 *)(arg0 + 0x34) = 2;
|
||||
*(u16 *)(arg0 + 0xFE) = 0x20;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 2;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFE = 0x20;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
*(u16 *)(arg0 + 0xFC) = *(u16 *)(arg0 + 0xFC) - 0x80;
|
||||
t = func_80047948((s16)*(u16 *)(arg0 + 0xFC)) << 5;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = CAST_SIGN(u16, arg0, 0xFC) - 0x80;
|
||||
t = func_80047948((s16)CAST_SIGN(u16, arg0, 0xFC)) << 5;
|
||||
if (t > 0) {
|
||||
t = 0;
|
||||
}
|
||||
@@ -2863,27 +2863,27 @@ void func_80180F84(s32 arg0)
|
||||
if (func_8017ECE4(arg0) < 0) {
|
||||
goto die;
|
||||
}
|
||||
scnt = *(s16 *)(arg0 + 0xFE) - 1;
|
||||
*(s16 *)(arg0 + 0xFE) = scnt;
|
||||
scnt = ((Unkstruct_800B5CB8 *)arg0)->unkFE - 1;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFE = scnt;
|
||||
if (scnt != 0) {
|
||||
return;
|
||||
}
|
||||
*(u16 *)(arg0 + 0x34) = 1;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 1;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
scnt = *(s16 *)(arg0 + 0xFE) - 1;
|
||||
*(s16 *)(arg0 + 0xFE) = scnt;
|
||||
scnt = ((Unkstruct_800B5CB8 *)arg0)->unkFE - 1;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFE = scnt;
|
||||
if (scnt != 0) {
|
||||
return;
|
||||
}
|
||||
*(u16 *)(arg0 + 0xFC) = 0x800;
|
||||
*(s32 *)(arg0 + 0x14) = 0xFFF00000;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = 0x800;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk14 = 0xFFF00000;
|
||||
arr[0] = 0xFFF80000;
|
||||
arr[1] = 0;
|
||||
arr[2] = 0;
|
||||
func_8012B1B4(arg0, (s32)arr);
|
||||
*(u16 *)(arg0 + 0x34) = 4;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 4;
|
||||
func_8002D4C8(0x897, 0);
|
||||
break;
|
||||
|
||||
@@ -2892,9 +2892,9 @@ void func_80180F84(s32 arg0)
|
||||
func_8012C218((void *)arg0);
|
||||
}
|
||||
if (func_8012D5E4(arg0, (s32)D_80192844, (s32)&D_8019284C, 0xC) != 0) {
|
||||
*(u16 *)(arg0 + 0x34) = 5;
|
||||
*(s32 *)(arg0 + 0x10) = -*(s32 *)(arg0 + 0x10);
|
||||
*(s32 *)(arg0 + 0x18) = -*(s32 *)(arg0 + 0x18);
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 5;
|
||||
CAST_WIDTH(s32, arg0, 0x10) = -CAST_WIDTH(s32, arg0, 0x10);
|
||||
CAST_WIDTH(s32, arg0, 0x18) = -CAST_WIDTH(s32, arg0, 0x18);
|
||||
}
|
||||
goto join;
|
||||
|
||||
@@ -2907,7 +2907,7 @@ void func_80180F84(s32 arg0)
|
||||
break;
|
||||
}
|
||||
e28 = D_801C7E28;
|
||||
*(u16 *)(arg0 + 0x34) = 6;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 6;
|
||||
if (e28 != 0) {
|
||||
D_801C7E2C = D_801C7E2C + 1;
|
||||
if (D_801C7E2C >= 9) {
|
||||
@@ -2923,18 +2923,18 @@ void func_80180F84(s32 arg0)
|
||||
break;
|
||||
|
||||
case 6:
|
||||
*(u16 *)(arg0 + 0xFC) = *(u16 *)(arg0 + 0xFC) - 0x80;
|
||||
t = func_8012B608(*(s16 *)(*(s32 *)(arg0 + 0x20) + 0x12), 0x400, 0x10);
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) + t;
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) & 0xFFF;
|
||||
if ((u32)(*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) - 0x3F0) < 0x21) {
|
||||
*(u16 *)(arg0 + 0x34) = 7;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unkFC = CAST_SIGN(u16, arg0, 0xFC) - 0x80;
|
||||
t = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)arg0)->unk20 + 0x12), 0x400, 0x10);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 + t;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 & 0xFFF;
|
||||
if ((u32)(((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 - 0x3F0) < 0x21) {
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk34 = 7;
|
||||
*(s16 *)(arg0 + 0x16) = -0x10;
|
||||
*(s16 *)(arg0 + 0x1A) = 4;
|
||||
((Unkstruct_800B5CB8 *)arg0)->unk1A = 4;
|
||||
func_8002D4C8(0x897, 0);
|
||||
break;
|
||||
}
|
||||
t = func_80047948(*(s16 *)(arg0 + 0xFC)) << 5;
|
||||
t = func_80047948(((Unkstruct_800B5CB8 *)arg0)->unkFC) << 5;
|
||||
if (t > 0) {
|
||||
t = 0;
|
||||
}
|
||||
@@ -2995,14 +2995,14 @@ void func_801814AC(s32 param_1) {
|
||||
s32 var;
|
||||
u8 t;
|
||||
|
||||
func_8016AA50(param_1, *(s16 *)(param_1 + 0x60));
|
||||
if (*(u16 *)(param_1 + 0x82) & 1) {
|
||||
func_8016AA50(param_1, ((Unkstruct_800B5CB8 *)param_1)->unk60);
|
||||
if (CAST_SIGN(u16, param_1, 0x82) & 1) {
|
||||
func_8016B428(param_1);
|
||||
func_80019064(D_80192860);
|
||||
}
|
||||
*(s32 *)(param_1 + 0x1C) = 10;
|
||||
*(u16 *)(param_1 + 0x5C) = 0;
|
||||
*(u16 *)(param_1 + 0x76) = *(u16 *)(param_1 + 0x76) - *(u16 *)(param_1 + 0x60);
|
||||
CAST_ALIAS(s32, param_1, 0x1C) = 10;
|
||||
CAST_ALIAS(u16, param_1, 0x5C) = 0;
|
||||
CAST_ALIAS(u16, param_1, 0x76) = CAST_SIGN(u16, param_1, 0x76) - CAST_SIGN(u16, param_1, 0x60);
|
||||
*(u16 *)(D_801C7E30 + 0x34) = 0;
|
||||
*(u16 *)(D_801C7E30 + 2) = 9;
|
||||
*(u8 *)(D_801C7E30 + 0xC2) = 0xE;
|
||||
@@ -3019,11 +3019,11 @@ void func_801814AC(s32 param_1) {
|
||||
*(u16 *)(D_801C7E30 + 0x70) &= 0xFFFE;
|
||||
}
|
||||
func_8002D4C8(0x8A0, 0);
|
||||
if (*(u8 *)(param_1 + 0x5E) != 0x1D) {
|
||||
if (*(u8 *)(param_1 + 0xC8) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk5E != 0x1D) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkC8 != 0) {
|
||||
func_8002A520(param_1);
|
||||
}
|
||||
if (*(u8 *)(param_1 + 0xC9) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkC9 != 0) {
|
||||
func_8002A790(param_1);
|
||||
}
|
||||
}
|
||||
@@ -3185,37 +3185,37 @@ void func_80181B4C(void *a0)
|
||||
s32 ptr64;
|
||||
s32 rec;
|
||||
|
||||
if (*(u16 *)((s32)a0 + 0x2) == 0) {
|
||||
if (CAST_SIGN(u16, (s32)a0, 0x2) == 0) {
|
||||
v0 = func_8012C1B8();
|
||||
*(s32 *)((s32)a0 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(a0);
|
||||
return;
|
||||
}
|
||||
func_8001C2C4(v0);
|
||||
*(u16 *)((s32)a0 + 0x5C) = 0x8000;
|
||||
*(s32 *)((s32)a0 + 0x58) = (s32)D_801928B8 | 0x40000000 | 0x20000000;
|
||||
*(u16 *)((s32)a0 + 0x76) = 10000;
|
||||
*(u8 *)((s32)a0 + 0xC0) = 1;
|
||||
*(s16 *)((s32)a0 + 0xAE) = -1;
|
||||
*(s32 *)((s32)a0 + 0xBC) = (s32)D_801928C8;
|
||||
*(s32 *)((s32)a0 + 0x4) = 0x25B0000;
|
||||
*(s32 *)((s32)a0 + 0x8) = 0xFF900000;
|
||||
*(s32 *)((s32)a0 + 0xB4) = 0;
|
||||
*(u16 *)((s32)a0 + 0x2) += 1;
|
||||
*(s32 *)((s32)a0 + 0xC4) |= 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk58 = (s32)D_801928B8 | 0x40000000 | 0x20000000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk76 = 10000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC0 = 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkAE = -1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkBC = (s32)D_801928C8;
|
||||
CAST_WIDTH(s32, (s32)a0, 0x4) = 0x25B0000;
|
||||
CAST_WIDTH(s32, (s32)a0, 0x8) = 0xFF900000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkB4 = 0;
|
||||
CAST_SIGN(u16, (s32)a0, 0x2) += 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC4 |= 3;
|
||||
} else {
|
||||
ptr64 = *(s32 *)((s32)a0 + 0x64);
|
||||
ptr64 = ((Unkstruct_800B5CB8 *)a0)->unk64;
|
||||
if (*(u16 *)ptr64 != 0) {
|
||||
rec = *(s32 *)(*(s32 *)(ptr64 + 0x20) + 0x20);
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x10) = *(u16 *)(rec + 0x6);
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = *(u16 *)(rec + 0x8);
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x14) = *(u16 *)(rec + 0xA) - 0x100;
|
||||
*(s16 *)((s32)a0 + 0x6) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0x6) + *(u16 *)(rec + 0x0);
|
||||
*(s16 *)((s32)a0 + 0xA) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0xA) + *(u16 *)(rec + 0x2);
|
||||
*(s16 *)((s32)a0 + 0xE) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0xE) + *(u16 *)(rec + 0x4);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0x20))->unk10 = *(u16 *)(rec + 0x6);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0x20))->unk12 = *(u16 *)(rec + 0x8);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x14) = *(u16 *)(rec + 0xA) - 0x100;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0x6) + *(u16 *)(rec + 0x0);
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0xA) + *(u16 *)(rec + 0x2);
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0xE) + *(u16 *)(rec + 0x4);
|
||||
func_8012B2CC((s32)a0);
|
||||
if (*(s32 *)(*(s32 *)((s32)a0 + 0x64) + 0x90) == (s32)D_801A3E2C) {
|
||||
if (*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0x90) == (s32)D_801A3E2C) {
|
||||
func_80181670(a0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user