diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 53dc36edec..159c36b664 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "cf2f8b444", + "head": "1ed7b1062", "stamp": "15956e4a96c4", "generated": "2026-09-11 02:22", "aliases": [ @@ -21,206 +21,206 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.751000000000006, - "mean_s": 0.079 + "seconds": 6.515, + "mean_s": 0.077 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.507000000000001, - "mean_s": 0.141 + "seconds": 4.474000000000001, + "mean_s": 0.14 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.351999999999999, - "mean_s": 0.136 + "seconds": 4.239999999999999, + "mean_s": 0.132 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.8139999999999996, - "mean_s": 0.136 + "seconds": 3.78, + "mean_s": 0.135 } }, "per_object_seconds": { - "build/src/800.o": 0.708, - "build/src/800_b.o": 0.099, - "build/src/800_b_2.o": 0.291, - "build/src/800_b_o0a.o": 0.072, - "build/src/800_c.o": 0.193, - "build/src/800b2.o": 0.086, - "build/src/apicard1.o": 0.067, - "build/src/apicard2.o": 0.075, - "build/src/apicard3.o": 0.082, - "build/src/apicard4.o": 0.069, - "build/src/apicard5.o": 0.103, - "build/src/apicard6.o": 0.072, - "build/src/apicard7.o": 0.082, - "build/src/boot.o": 0.092, - "build/src/gap.o": 0.07, - "build/src/libapi1.o": 0.105, - "build/src/libapi2.o": 0.057, - "build/src/libc2_1.o": 0.068, - "build/src/libc2_2.o": 0.066, - "build/src/libcd1.o": 0.071, - "build/src/libcd2.o": 0.059, - "build/src/libetc.o": 0.063, + "build/src/800.o": 0.727, + "build/src/800_b.o": 0.086, + "build/src/800_b_2.o": 0.309, + "build/src/800_b_o0a.o": 0.07, + "build/src/800_c.o": 0.195, + "build/src/800b2.o": 0.072, + "build/src/apicard1.o": 0.062, + "build/src/apicard2.o": 0.057, + "build/src/apicard3.o": 0.083, + "build/src/apicard4.o": 0.066, + "build/src/apicard5.o": 0.069, + "build/src/apicard6.o": 0.059, + "build/src/apicard7.o": 0.079, + "build/src/boot.o": 0.1, + "build/src/gap.o": 0.065, + "build/src/libapi1.o": 0.082, + "build/src/libapi2.o": 0.056, + "build/src/libc2_1.o": 0.063, + "build/src/libc2_2.o": 0.057, + "build/src/libcd1.o": 0.072, + "build/src/libcd2.o": 0.063, + "build/src/libetc.o": 0.056, "build/src/libgpu.o": 0.063, - "build/src/libgpu2.o": 0.07, - "build/src/libgs1.o": 0.061, + "build/src/libgpu2.o": 0.065, + "build/src/libgs1.o": 0.059, "build/src/libgs2.o": 0.061, - "build/src/libgs3.o": 0.053, - "build/src/libgs4.o": 0.066, - "build/src/libgs5.o": 0.059, - "build/src/libgs6.o": 0.083, + "build/src/libgs3.o": 0.064, + "build/src/libgs4.o": 0.051, + "build/src/libgs5.o": 0.062, + "build/src/libgs6.o": 0.079, "build/src/libgs7.o": 0.065, - "build/src/libgs8.o": 0.065, - "build/src/libgte1.o": 0.061, - "build/src/libgte10.o": 0.061, - "build/src/libgte11.o": 0.056, - "build/src/libgte12.o": 0.067, - "build/src/libgte13.o": 0.067, - "build/src/libgte14.o": 0.075, - "build/src/libgte15.o": 0.07, - "build/src/libgte16.o": 0.065, - "build/src/libgte17.o": 0.071, - "build/src/libgte18.o": 0.065, - "build/src/libgte19.o": 0.067, - "build/src/libgte2.o": 0.058, - "build/src/libgte20.o": 0.063, - "build/src/libgte21.o": 0.069, - "build/src/libgte22.o": 0.069, - "build/src/libgte23.o": 0.066, - "build/src/libgte24.o": 0.053, - "build/src/libgte25.o": 0.067, - "build/src/libgte26.o": 0.065, - "build/src/libgte27.o": 0.069, - "build/src/libgte28.o": 0.065, - "build/src/libgte29.o": 0.066, + "build/src/libgs8.o": 0.058, + "build/src/libgte1.o": 0.064, + "build/src/libgte10.o": 0.06, + "build/src/libgte11.o": 0.057, + "build/src/libgte12.o": 0.064, + "build/src/libgte13.o": 0.053, + "build/src/libgte14.o": 0.062, + "build/src/libgte15.o": 0.058, + "build/src/libgte16.o": 0.06, + "build/src/libgte17.o": 0.054, + "build/src/libgte18.o": 0.068, + "build/src/libgte19.o": 0.062, + "build/src/libgte2.o": 0.061, + "build/src/libgte20.o": 0.055, + "build/src/libgte21.o": 0.066, + "build/src/libgte22.o": 0.058, + "build/src/libgte23.o": 0.061, + "build/src/libgte24.o": 0.06, + "build/src/libgte25.o": 0.074, + "build/src/libgte26.o": 0.072, + "build/src/libgte27.o": 0.062, + "build/src/libgte28.o": 0.052, + "build/src/libgte29.o": 0.083, "build/src/libgte3.o": 0.067, - "build/src/libgte30.o": 0.067, - "build/src/libgte4.o": 0.065, - "build/src/libgte5.o": 0.065, - "build/src/libgte6.o": 0.064, - "build/src/libgte7.o": 0.059, - "build/src/libgte8.o": 0.065, - "build/src/libgte9.o": 0.066, - "build/src/libmcrd1.o": 0.069, - "build/src/libmcrd2.o": 0.065, - "build/src/libpad1.o": 0.067, - "build/src/libpad2.o": 0.067, - "build/src/sgap.o": 0.065, - "build/src/sgap_2.o": 0.059, + "build/src/libgte30.o": 0.064, + "build/src/libgte4.o": 0.059, + "build/src/libgte5.o": 0.061, + "build/src/libgte6.o": 0.059, + "build/src/libgte7.o": 0.063, + "build/src/libgte8.o": 0.062, + "build/src/libgte9.o": 0.064, + "build/src/libmcrd1.o": 0.068, + "build/src/libmcrd2.o": 0.067, + "build/src/libpad1.o": 0.064, + "build/src/libpad2.o": 0.066, + "build/src/sgap.o": 0.067, + "build/src/sgap_2.o": 0.055, "build/src/sgap_3.o": 0.062, "build/src/sgap_4.o": 0.07, - "build/src/sgap_5.o": 0.061, - "build/src/sgap_6.o": 0.066, - "build/src/sgap_8.o": 0.067, - "build/src/snd1.o": 0.067, - "build/src/snd10.o": 0.073, + "build/src/sgap_5.o": 0.054, + "build/src/sgap_6.o": 0.064, + "build/src/sgap_8.o": 0.064, + "build/src/snd1.o": 0.068, + "build/src/snd10.o": 0.06, "build/src/snd11.o": 0.057, - "build/src/snd12.o": 0.069, - "build/src/snd2.o": 0.065, - "build/src/snd3.o": 0.058, - "build/src/snd4.o": 0.067, - "build/src/snd5.o": 0.057, - "build/src/snd6.o": 0.084, - "build/src/snd7.o": 0.062, - "build/src/snd8.o": 0.062, + "build/src/snd12.o": 0.067, + "build/src/snd2.o": 0.074, + "build/src/snd3.o": 0.061, + "build/src/snd4.o": 0.061, + "build/src/snd5.o": 0.059, + "build/src/snd6.o": 0.069, + "build/src/snd7.o": 0.072, + "build/src/snd8.o": 0.063, "build/src/snd9.o": 0.063, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.119, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.499, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.394, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.06, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.086, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.111, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.165, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.112, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.1, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.071, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.167, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.068, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.15, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.084, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.067, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.087, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.444, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.226, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.095, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.2, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.059, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.101, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.162, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.186, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.052, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.265, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.063, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.059, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.055, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.07, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.116, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.492, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.37, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.121, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.493, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.39, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.058, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.057, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.119, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.159, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.121, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.08, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.07, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.161, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.078, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.171, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.091, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.062, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.096, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.449, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.251, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.083, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.201, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.055, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.091, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.064, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.153, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.187, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.045, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.278, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.057, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.058, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.049, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.063, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.124, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.483, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.357, "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.051, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.044, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.111, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.145, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.109, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.068, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.063, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.16, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.052, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.087, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.135, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.102, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.072, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.053, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.17, "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.065, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.166, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.09, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.057, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.158, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.085, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.069, "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.085, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.44, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.245, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.087, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.188, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.058, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.094, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.416, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.25, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.088, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.187, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.053, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.101, "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.164, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.189, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.051, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.277, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.055, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.054, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.126, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.409, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.342, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.051, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.045, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.104, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.145, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.106, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.058, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.177, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.067, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.164, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.093, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.059, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.07, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.09, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.334, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.222, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.093, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.167, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.056, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.1, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.062, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.085, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.414, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.154, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.169, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.048, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.259, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.051, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.069, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.111, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.413, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.339, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.056, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.048, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.109, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.15, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.104, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.073, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.06, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.179, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.066, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.161, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.069, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.065, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.084, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.344, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.228, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.094, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.163, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.055, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.083, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.06, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.09, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.415, "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.049, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.054 + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.05 }, "ok": true, "seconds": 2.2 diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index aecf0ece16..086cf895a5 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29424,3 +29424,4 @@ {"ts": "2026-09-11 02:15:26", "label": "s104_e11", "rung": "E", "calib": {"head": "c16813709", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC04_011/ov_SC04_011_jr_8017D494.c", "fn": "func_80186020", "addr": 2149081120, "aliases": null, "header": false, "includers": 0, "nhash_before": "f5149a8b2501cac26293307bf99fa9427341289f", "nhash_after": "babf22e204f7c1e0eac00cc9de2d8f0fe99f6696", "source": ".run/P36/agents/ov_SC04_011__func_80186020/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.39, "objects": ["build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o"], "before_text": "void func_80186020(void *a0) {\n s32 p;\n u16 x;\n /* $v0 pin (cookbook \"register pin\" lever): without it sched1's birthing boost\n hands $v0 to the wrong temp and the two lhu's swap registers (residual 12). */\n register u16 y __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n\n if ((D_801EFD40 & 2) != 0) {\n if ((s16)D_801EFD48 >= 0x120) {\n *(s16 *)&D_801EFD4C = -0x60;\n } else if ((s16)D_801EFD48 < -0x5F) {\n *(s16 *)&D_801EFD4C = 0x60;\n }\n x = D_801EFD48;\n y = D_801EFD4C;\n p = *(s32 *)((s32)a0 + 0x20);\n x = x + y;\n y = D_801EFD44;\n D_801EFD48 = x;\n y = y + x;\n *(u16 *)(p + 0x10) = y;\n } else {\n if ((D_801EFD40 & 1) != 0) {\n if ((s16)D_801EFD48 >= 0x120) {\n return;\n }\n y = (s16)D_801EFD48 + 0x60;\n } else {\n if ((s16)D_801EFD48 < -0x5F) {\n return;\n }\n y = (s16)D_801EFD48 - 0x60;\n }\n x = D_801EFD44;\n p = *(s32 *)((s32)a0 + 0x20);\n D_801EFD48 = y;\n x = x + y;\n *(u16 *)(p + 0x10) = x;\n }\n}\n", "after_text": "void func_80186020(void *a0) {\n s32 p;\n\n if ((D_801EFD40 & 2) != 0) {\n s32 a;\n s32 b;\n\n a = (s16)D_801EFD48;\n if (a >= 0x120) {\n *(s16 *)&D_801EFD4C = -0x60;\n } else if (a < -0x5F) {\n *(s16 *)&D_801EFD4C = 0x60;\n }\n a = D_801EFD48;\n b = D_801EFD4C;\n p = *(s32 *)((s32)a0 + 0x20);\n a = a + b;\n b = D_801EFD44;\n D_801EFD48 = a;\n b = b + a;\n *(u16 *)(p + 0x10) = b;\n } else {\n u16 x;\n u16 y;\n\n if ((D_801EFD40 & 1) != 0) {\n x = D_801EFD48;\n if ((s16)x >= 0x120) {\n return;\n }\n y = x + 0x60;\n } else {\n x = D_801EFD48;\n if ((s16)x < -0x5F) {\n return;\n }\n y = x - 0x60;\n }\n x = D_801EFD44;\n p = *(s32 *)((s32)a0 + 0x20);\n D_801EFD48 = y;\n x = x + y;\n *(u16 *)(p + 0x10) = x;\n }\n}\n"} {"ts": "2026-09-11 02:22:25", "label": "s104_e12", "rung": "E", "calib": {"head": "9a075c815", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c", "fn": "func_80182560", "addr": 2149066080, "aliases": null, "header": false, "includers": 0, "nhash_before": "a51e1771c803292f3d6aaaec35049832764d172b", "nhash_after": "e5bbd049e4c03172cade0e9604b6ca62962c5499", "source": ".run/P36/agents/ov_SC06_000__func_80182560/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.272, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.o"], "before_text": "void func_80182560(void *arg0)\n{\n extern s32 D_801B20E0;\n extern s32 D_8019FD8C;\n extern s32 D_801AEBCC;\n extern s32 D_801AEC60;\n extern s16 D_801AEAFE;\n extern void func_8017EF68(s32 a0, s32 a1, s32 a2);\n\n s32 *p;\n __asm__(\"la %0, D_801AEBCC\" : \"=r\"(p)); // !FAKE: instruction la \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n p[-7] = 0;\n p[0] = D_801AEAFE;\n func_8017EF68((s32)&D_801B20E0, (s32)&D_8019FD8C, (s32)(p - 7));\n if (D_801AEC60 != 0) {\n ((struct { u8 pad[2]; u16 f; } *)arg0)->f += 1;\n }\n}\n", "after_text": "void func_80182560(void *arg0)\n{\n extern s32 D_801B20E0;\n extern s32 D_8019FD8C;\n extern s32 D_801AEBCC;\n extern s32 D_801AEC60;\n extern s16 D_801AEAFE;\n extern void func_8017EF68(s32 a0, s32 a1, s32 a2);\n\n s32 *p;\n s32 *q;\n p = &D_801AEBCC;\n q = p - 7;\n\n *q = 0;\n *p = D_801AEAFE;\n func_8017EF68((s32)&D_801B20E0, (s32)&D_8019FD8C, (s32)q);\n if (D_801AEC60 != 0) {\n ((struct { u8 pad[2]; u16 f; } *)arg0)->f += 1;\n }\n}\n"} {"ts": "2026-09-11 02:22:42", "label": "s104_e12", "rung": "E", "calib": {"head": "cf2f8b444", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c", "fn": "func_8018270C", "addr": 2149066508, "aliases": null, "header": false, "includers": 0, "nhash_before": "9d5b68c94c2732c5501306419cbf7aa44a73b5e4", "nhash_after": "155b9bc8e091bbb3c894ea8d3ba4304a7a8ddf35", "source": ".run/P36/agents/ov_SC06_000__func_8018270C/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.267, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.o"], "before_text": "void func_8018270C(void) {\n extern s32 D_801B20E0;\n extern s32 D_8019FD8C;\n extern s32 D_80197B60;\n extern s32 D_801AEC08;\n extern s32 D_801AEBCC;\n extern s32 D_801AEC60;\n extern s16 D_801AEAFE;\n extern void func_8013373C(s16 a0);\n extern void func_8017EF68(s32 a0, s32 a1, s32 a2);\n\n s32 *p;\n __asm__(\"la %0, D_801AEBCC\" : \"=r\"(p)); // !FAKE: instruction la \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n p[-7] = 0;\n p[0] = D_801AEAFE;\n func_8017EF68((s32)&D_801B20E0, (s32)&D_8019FD8C, (s32)(p - 7));\n func_8017EF68((s32)&D_801B20E0, (s32)&D_80197B60, (s32)&D_801AEC08);\n D_801AEC60 = 2;\n func_8013373C(0);\n}\n", "after_text": "void func_8018270C(void) {\n extern s32 D_801B20E0;\n extern s32 D_8019FD8C;\n extern s32 D_80197B60;\n extern s32 D_801AEC08;\n extern s32 D_801AEBCC;\n extern s32 D_801AEC60;\n extern s16 D_801AEAFE;\n extern void func_8013373C(s16 a0);\n extern void func_8017EF68(s32 a0, s32 a1, s32 a2);\n\n s32 *p;\n s32 *q;\n p = &D_801AEBCC;\n q = p - 7;\n\n *q = 0;\n *p = D_801AEAFE;\n func_8017EF68((s32)&D_801B20E0, (s32)&D_8019FD8C, (s32)q);\n func_8017EF68((s32)&D_801B20E0, (s32)&D_80197B60, (s32)&D_801AEC08);\n D_801AEC60 = 2;\n func_8013373C(0);\n}\n"} +{"ts": "2026-09-11 02:23:00", "label": "s104_e12", "rung": "E", "calib": {"head": "1ed7b1062", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c", "fn": "func_8017E35C", "addr": 2149049180, "aliases": null, "header": false, "includers": 0, "nhash_before": "5653df7f1b58b6c30ff0d9ebb5dc3e6162f189bc", "nhash_after": "1c3d2f3ab12686114b633bca5763174b284ca739", "source": ".run/P36/agents/ov_SC06_000__func_8017E35C/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.264, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.o"], "before_text": "void func_8017E35C(s32 arg0)\n{\n /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every\n LATER function in this TU, which blocks a byte-true decl of a different type.\n Declaration-only move (cookbook \u00a7103); the whole-binary byte-gate is the arbiter. */\n extern u8 D_800A6610[];\n /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every\n LATER function in this TU, which blocks a byte-true decl of a different type.\n Declaration-only move (cookbook \u00a7103); the whole-binary byte-gate is the arbiter. */\n extern u8 *D_800A5E60;\n typedef struct { u32 w0, w1, w2; } Prim;\n typedef struct { u8 b[8]; } V8;\n\n DVec35C tmpxy[4];\n SVec35C box[8];\n SVec35C sxy[8];\n V8 vbuf[3];\n V8 vdbuf;\n Mtx35C mtx;\n struct { long otz, flag, opz, sz0, sz1, sz2, sz3; } g;\n\n s32 lim;\n s32 j;\n u32 i;\n u8 *pkt;\n Prim *prim;\n u32 nprim;\n u8 *vtx;\n s32 nparts;\n Part35C *part;\n u32 ot;\n u32 w;\n s32 code;\n u8 *va, *vb, *vc, *vd;\n u32 wx, wy, wz, zh;\n s16 my, mny, mx, mn;\n s32 xa32, xb32, t32;\n s32 xmn1, xmx1, xmn2, xmx2;\n s32 mnc, mxc;\n s32 za, zb, d, oz;\n u32 *tp;\n u32 uvw;\n\n if (*(s32 *)arg0 != 0) {\n return;\n }\n\n lim = func_800491EC() + *(s32 *)(arg0 + 0x64);\n func_800547D8(arg0 + 0x10, &mtx);\n func_80052E38(&mtx);\n\n pkt = D_800A5E60;\n part = *(Part35C **)(arg0 + 0xC);\n nparts = *(s32 *)(*(s32 *)(arg0 + 8) + 8);\n vtx = *(u8 **)(*(s32 *)(arg0 + 8) + 0x10);\n ot = (u32)&D_800A6610[(u16)D_800B9A02 << 14];\n\n for (j = 0; j < nparts; j++, part++) {\n wx = part->xx;\n wy = part->yy;\n wz = part->zz;\n mn = wx;\n mx = wx >> 16;\n mny = wy;\n my = wy >> 16;\n zh = wz >> 16;\n box[0].vx = mn; box[0].vy = mny; box[0].vz = wz;\n box[1].vx = mx; box[1].vy = mny; box[1].vz = wz;\n box[2].vx = mn; box[2].vy = mny; box[2].vz = zh;\n box[3].vx = mx; box[3].vy = mny; box[3].vz = zh;\n\n gte_ldv3c(&box[0]);\n gte_rtpt();\n gte_stsxy3(&sxy[0], &sxy[1], &sxy[2]);\n gte_ldv0(&box[3]);\n gte_rtps();\n\n box[4].vx = mn; box[4].vy = my; box[4].vz = wz;\n box[5].vx = mx; box[5].vy = my; box[5].vz = wz;\n box[6].vx = mn; box[6].vy = my; box[6].vz = zh;\n box[7].vx = mx; box[7].vy = my; box[7].vz = zh;\n\n gte_stsxy(&sxy[3]);\n gte_ldv3c(&box[4]);\n gte_rtpt();\n gte_stsxy3(&sxy[4], &sxy[5], &sxy[6]);\n gte_ldv0(&box[7]);\n gte_rtps();\n gte_stsxy(&sxy[7]);\n gte_stszotz(&g.otz);\n\n if (lim >= g.otz) {\n xa32 = sxy[0].vx;\n xb32 = sxy[1].vx;\n if (xb32 < xa32) { xmx1 = xa32; xmn1 = xb32; } else { xmn1 = xa32; xmx1 = xb32; }\n t32 = sxy[2].vx;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n t32 = sxy[3].vx;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n xa32 = sxy[4].vx;\n xb32 = sxy[5].vx;\n if (xb32 < xa32) { xmx2 = xa32; xmn2 = xb32; } else { xmn2 = xa32; xmx2 = xb32; }\n t32 = sxy[6].vx;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n t32 = sxy[7].vx;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n mnc = xmn1;\n if (xmn2 < xmn1) mnc = xmn2;\n mxc = xmx1;\n if (mxc < xmx2) mxc = xmx2;\n if ((s16)mxc >= -0xA0 && (s16)mnc < 0xA1) {\n xa32 = sxy[0].vy;\n xb32 = sxy[1].vy;\n if (xb32 < xa32) { xmx1 = xa32; xmn1 = xb32; } else { xmn1 = xa32; xmx1 = xb32; }\n t32 = sxy[2].vy;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n t32 = sxy[3].vy;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n xa32 = sxy[4].vy;\n xb32 = sxy[5].vy;\n if (xb32 < xa32) { xmx2 = xa32; xmn2 = xb32; } else { xmn2 = xa32; xmx2 = xb32; }\n t32 = sxy[6].vy;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n t32 = sxy[7].vy;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n mnc = xmn1;\n if (xmn2 < xmn1) mnc = xmn2;\n mxc = xmx1;\n if (mxc < xmx2) mxc = xmx2;\n if ((s16)mxc >= -0x6E && (s16)mnc < 0x6F) {\n __asm__ __volatile__ (\"\" :: \"r\" (nparts)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus7)\n prim = (Prim *)part->prim;\n nprim = part->nprim;\n for (i = 0; i < nprim; i++, prim++) {\n w = prim->w1;\n va = vtx + (w & 0xFFFF);\n vb = vtx + (w >> 16);\n w = prim->w2;\n vc = vtx + (w & 0xFFFF);\n w = w >> 16;\n vbuf[0] = *(V8 *)va;\n vbuf[1] = *(V8 *)vb;\n vbuf[2] = *(V8 *)vc;\n gte_ldv3c(vbuf);\n gte_rtpt();\n gte_stflg(&g.flag);\n if (!(g.flag & 0x7F85E000)) {\n gte_nclip();\n code = w & 7;\n vd = vtx + (w & 0xFFF8);\n gte_stopz(&g.opz);\n if (g.opz > 0) {\n switch (code) {\n case 6:\n case 7:\n /* ---------------- TRI (FT3) ---------------- */\n gte_stsxy3_ft3(pkt);\n gte_stsz3(&g.sz0, &g.sz1, &g.sz2);\n if (((Ft3_35C *)pkt)->x0 > ((Ft3_35C *)pkt)->x1) {\n mx = ((Ft3_35C *)pkt)->x0; mn = ((Ft3_35C *)pkt)->x1;\n } else {\n mn = ((Ft3_35C *)pkt)->x0; mx = ((Ft3_35C *)pkt)->x1;\n }\n if (((Ft3_35C *)pkt)->x2 > mx) mx = ((Ft3_35C *)pkt)->x2;\n else if (((Ft3_35C *)pkt)->x2 < mn) mn = ((Ft3_35C *)pkt)->x2;\n if (mx >= -0xA0 && mn < 0xA1) {\n if (((Ft3_35C *)pkt)->y0 > ((Ft3_35C *)pkt)->y1) {\n my = ((Ft3_35C *)pkt)->y0; mny = ((Ft3_35C *)pkt)->y1;\n } else {\n mny = ((Ft3_35C *)pkt)->y0; my = ((Ft3_35C *)pkt)->y1;\n }\n if (((Ft3_35C *)pkt)->y2 > my) my = ((Ft3_35C *)pkt)->y2;\n else if (((Ft3_35C *)pkt)->y2 < mny) mny = ((Ft3_35C *)pkt)->y2;\n if (my >= -0x6E && mny < 0x6F) {\n u32 *otp;\n if (g.sz0 > g.sz1) { za = g.sz0; if (za < g.sz2) za = g.sz2; }\n else { za = g.sz1; if (za < g.sz2) za = g.sz2; }\n g.opz = za;\n if (code == 7) g.opz = za + 0x50;\n oz = g.opz;\n d = oz - 400;\n if (d < 0) d = 0;\n d = (d >> 8) << 22;\n tp = (u32 *)prim->w0;\n ((Ft3_35C *)pkt)->rgbc = tp[0];\n ((Ft3_35C *)pkt)->uvc0 = tp[1] + d;\n ((Ft3_35C *)pkt)->uvp1 = tp[2];\n ((Ft3_35C *)pkt)->uv2 = tp[3];\n otp = (u32 *)(((oz >> 2) << 2) + ot);\n *(u32 *)pkt = (*otp & 0xFFFFFF) | 0x7000000;\n *otp = (*otp & 0xFF000000) | ((u32)pkt & 0xFFFFFF);\n pkt += 0x28;\n }\n }\n break;\n case 2:\n case 3:\n /* ---------------- QUAD (FT4) ---------------- */\n gte_stsxy3c(&tmpxy[0]);\n vdbuf = *(V8 *)vd;\n gte_ldv0(&vdbuf);\n gte_rtps();\n if (tmpxy[0].vx > tmpxy[1].vx) { mx = tmpxy[0].vx; mn = tmpxy[1].vx; }\n else { mn = tmpxy[0].vx; mx = tmpxy[1].vx; }\n if (tmpxy[2].vx > mx) mx = tmpxy[2].vx;\n else if (tmpxy[2].vx < mn) mn = tmpxy[2].vx;\n if (tmpxy[0].vy > tmpxy[1].vy) { my = tmpxy[0].vy; mny = tmpxy[1].vy; }\n else { mny = tmpxy[0].vy; my = tmpxy[1].vy; }\n if (tmpxy[2].vy > my) my = tmpxy[2].vy;\n else if (tmpxy[2].vy < mny) mny = tmpxy[2].vy;\n gte_stflg(&g.flag);\n if (!(g.flag & 0x7F85E000)) {\n gte_stsz4(&g.sz0, &g.sz1, &g.sz2, &g.sz3);\n gte_stsxy((long *)&((Ft4_35C *)pkt)->x3);\n if (((Ft4_35C *)pkt)->x3 < mn) mn = ((Ft4_35C *)pkt)->x3;\n else if (mx < ((Ft4_35C *)pkt)->x3) mx = ((Ft4_35C *)pkt)->x3;\n if (mx >= -0xA0 && mn < 0xA1) {\n if (((Ft4_35C *)pkt)->y3 < mny) mny = ((Ft4_35C *)pkt)->y3;\n else if (my < ((Ft4_35C *)pkt)->y3) my = ((Ft4_35C *)pkt)->y3;\n if (my >= -0x6E && mny < 0x6F) {\n u32 *otp;\n zb = g.sz2;\n if (zb < g.sz3) zb = g.sz3;\n za = g.sz0;\n if (za < g.sz1) za = g.sz1;\n if (za < zb) za = zb;\n g.opz = za;\n if (code == 3) g.opz = za + 0x50;\n oz = g.opz;\n d = oz - 400;\n if (d < 0) d = 0;\n d = (d >> 8) << 22;\n *(u32 *)&((Ft4_35C *)pkt)->x0 = *(u32 *)&tmpxy[0];\n *(u32 *)&((Ft4_35C *)pkt)->x1 = *(u32 *)&tmpxy[1];\n *(u32 *)&((Ft4_35C *)pkt)->x2 = *(u32 *)&tmpxy[2];\n tp = (u32 *)prim->w0;\n ((Ft4_35C *)pkt)->rgbc = tp[0];\n ((Ft4_35C *)pkt)->uvc0 = tp[1] + d;\n ((Ft4_35C *)pkt)->uvp1 = tp[2];\n uvw = tp[3];\n ((Ft4_35C *)pkt)->uv2 = uvw;\n ((Ft4_35C *)pkt)->uv3 = uvw >> 16;\n otp = (u32 *)(((oz >> 2) << 2) + ot);\n *(u32 *)pkt = (*otp & 0xFFFFFF) | 0x9000000;\n *otp = (*otp & 0xFF000000) | ((u32)pkt & 0xFFFFFF);\n pkt += 0x28;\n }\n }\n }\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n D_800A5E60 = pkt;\n}\n", "after_text": "void func_8017E35C(s32 arg0)\n{\n /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every\n LATER function in this TU, which blocks a byte-true decl of a different type.\n Declaration-only move (cookbook \u00a7103); the whole-binary byte-gate is the arbiter. */\n extern u8 D_800A6610[];\n /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every\n LATER function in this TU, which blocks a byte-true decl of a different type.\n Declaration-only move (cookbook \u00a7103); the whole-binary byte-gate is the arbiter. */\n extern u8 *D_800A5E60;\n typedef struct { u32 w0, w1, w2; } Prim;\n typedef struct { u8 b[8]; } V8;\n\n DVec35C tmpxy[4];\n SVec35C box[8];\n SVec35C sxy[8];\n V8 vbuf[3];\n V8 vdbuf;\n Mtx35C mtx;\n struct { long otz, flag, opz, sz0, sz1, sz2, sz3; } g;\n\n s32 lim;\n s32 j;\n u32 i;\n u8 *pkt;\n Prim *prim;\n u32 nprim;\n u8 *vtx;\n s32 nparts;\n Part35C *part;\n u32 ot;\n u32 w;\n s32 code;\n u8 *va, *vb, *vc, *vd;\n u32 wx, wy, wz, zh;\n s16 my, mny, mx, mn;\n s32 xa32, xb32, t32;\n s32 xmn1, xmx1, xmn2, xmx2;\n s32 mnc, mxc;\n s32 za, zb, d, oz;\n u32 *tp;\n u32 uvw;\n\n if (*(s32 *)arg0 != 0) {\n return;\n }\n\n lim = func_800491EC() + *(s32 *)(arg0 + 0x64);\n func_800547D8(arg0 + 0x10, &mtx);\n func_80052E38(&mtx);\n\n pkt = D_800A5E60;\n part = *(Part35C **)(arg0 + 0xC);\n nparts = *(s32 *)(*(s32 *)(arg0 + 8) + 8);\n vtx = *(u8 **)(*(s32 *)(arg0 + 8) + 0x10);\n ot = (u32)&D_800A6610[(u16)D_800B9A02 << 14];\n\n for (j = 0; j < nparts; j++, part++) {\n wx = part->xx;\n wy = part->yy;\n wz = part->zz;\n mn = wx;\n mx = wx >> 16;\n mny = wy;\n my = wy >> 16;\n zh = wz >> 16;\n box[0].vx = mn; box[0].vy = mny; box[0].vz = wz;\n box[1].vx = mx; box[1].vy = mny; box[1].vz = wz;\n box[2].vx = mn; box[2].vy = mny; box[2].vz = zh;\n box[3].vx = mx; box[3].vy = mny; box[3].vz = zh;\n\n gte_ldv3c(&box[0]);\n gte_rtpt();\n gte_stsxy3(&sxy[0], &sxy[1], &sxy[2]);\n gte_ldv0(&box[3]);\n gte_rtps();\n\n box[4].vx = mn; box[4].vy = my; box[4].vz = wz;\n box[5].vx = mx; box[5].vy = my; box[5].vz = wz;\n box[6].vx = mn; box[6].vy = my; box[6].vz = zh;\n box[7].vx = mx; box[7].vy = my; box[7].vz = zh;\n\n gte_stsxy(&sxy[3]);\n gte_ldv3c(&box[4]);\n gte_rtpt();\n gte_stsxy3(&sxy[4], &sxy[5], &sxy[6]);\n gte_ldv0(&box[7]);\n gte_rtps();\n gte_stsxy(&sxy[7]);\n gte_stszotz(&g.otz);\n\n if (lim >= g.otz) {\n xa32 = sxy[0].vx;\n xb32 = sxy[1].vx;\n if (xb32 < xa32) { xmx1 = xa32; xmn1 = xb32; } else { xmn1 = xa32; xmx1 = xb32; }\n t32 = sxy[2].vx;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n t32 = sxy[3].vx;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n xa32 = sxy[4].vx;\n xb32 = sxy[5].vx;\n if (xb32 < xa32) { xmx2 = xa32; xmn2 = xb32; } else { xmn2 = xa32; xmx2 = xb32; }\n t32 = sxy[6].vx;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n t32 = sxy[7].vx;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n mnc = xmn1;\n if (xmn2 < xmn1) mnc = xmn2;\n mxc = xmx1;\n if (mxc < xmx2) mxc = xmx2;\n if ((s16)mxc >= -0xA0 && (s16)mnc < 0xA1) {\n xa32 = sxy[0].vy;\n xb32 = sxy[1].vy;\n if (xb32 < xa32) { xmx1 = xa32; xmn1 = xb32; } else { xmn1 = xa32; xmx1 = xb32; }\n t32 = sxy[2].vy;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n t32 = sxy[3].vy;\n if (xmx1 < t32) xmx1 = t32; else if (t32 < xmn1) xmn1 = t32;\n xa32 = sxy[4].vy;\n xb32 = sxy[5].vy;\n if (xb32 < xa32) { xmx2 = xa32; xmn2 = xb32; } else { xmn2 = xa32; xmx2 = xb32; }\n t32 = sxy[6].vy;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n t32 = sxy[7].vy;\n if (xmx2 < t32) xmx2 = t32; else if (t32 < xmn2) xmn2 = t32;\n mnc = xmn1;\n if (xmn2 < xmn1) mnc = xmn2;\n mxc = xmx1;\n if (mxc < xmx2) mxc = xmx2;\n if ((s16)mxc >= -0x6E && (s16)mnc < 0x6F) {\n prim = (Prim *)part->prim;\n nprim = part->nprim;\n for (i = 0; i < nprim; i++, prim++) {\n w = prim->w1;\n va = vtx + (w & 0xFFFF);\n vb = vtx + (w >> 16);\n w = prim->w2;\n vc = vtx + (w & 0xFFFF);\n w = w >> 16;\n vbuf[0] = *(V8 *)va;\n vbuf[1] = *(V8 *)vb;\n vbuf[2] = *(V8 *)vc;\n gte_ldv3c(vbuf);\n gte_rtpt();\n gte_stflg(&g.flag);\n if (!(g.flag & 0x7F85E000)) {\n gte_nclip();\n code = w & 7;\n vd = vtx + (w & 0xFFF8);\n gte_stopz(&g.opz);\n if (g.opz > 0) {\n switch (code) {\n case 6:\n case 7:\n /* ---------------- TRI (FT3) ---------------- */\n gte_stsxy3_ft3(pkt);\n gte_stsz3(&g.sz0, &g.sz1, &g.sz2);\n if (((Ft3_35C *)pkt)->x0 > ((Ft3_35C *)pkt)->x1) {\n mx = ((Ft3_35C *)pkt)->x0; mn = ((Ft3_35C *)pkt)->x1;\n } else {\n mn = ((Ft3_35C *)pkt)->x0; mx = ((Ft3_35C *)pkt)->x1;\n }\n if (((Ft3_35C *)pkt)->x2 > mx) mx = ((Ft3_35C *)pkt)->x2;\n else if (((Ft3_35C *)pkt)->x2 < mn) mn = ((Ft3_35C *)pkt)->x2;\n if (mx >= -0xA0 && mn < 0xA1) {\n if (((Ft3_35C *)pkt)->y0 > ((Ft3_35C *)pkt)->y1) {\n my = ((Ft3_35C *)pkt)->y0; mny = ((Ft3_35C *)pkt)->y1;\n } else {\n mny = ((Ft3_35C *)pkt)->y0; my = ((Ft3_35C *)pkt)->y1;\n }\n if (((Ft3_35C *)pkt)->y2 > my) my = ((Ft3_35C *)pkt)->y2;\n else if (((Ft3_35C *)pkt)->y2 < mny) mny = ((Ft3_35C *)pkt)->y2;\n if (my >= -0x6E && mny < 0x6F) {\n u32 *otp;\n if (g.sz0 > g.sz1) { za = g.sz0; if (za < g.sz2) za = g.sz2; g.opz = za; }\n else { za = g.sz1; if (za < g.sz2) za = g.sz2; g.opz = za; }\n if (code == 7) g.opz = za + 0x50;\n oz = g.opz;\n d = oz - 400;\n if (d < 0) d = 0;\n d = (d >> 8) << 22;\n tp = (u32 *)prim->w0;\n ((Ft3_35C *)pkt)->rgbc = tp[0];\n ((Ft3_35C *)pkt)->uvc0 = tp[1] + d;\n ((Ft3_35C *)pkt)->uvp1 = tp[2];\n ((Ft3_35C *)pkt)->uv2 = tp[3];\n otp = (u32 *)(((oz >> 2) << 2) + ot);\n *(u32 *)pkt = (*otp & 0xFFFFFF) | 0x7000000;\n *otp = (*otp & 0xFF000000) | ((u32)pkt & 0xFFFFFF);\n pkt += 0x28;\n }\n }\n break;\n case 2:\n case 3:\n /* ---------------- QUAD (FT4) ---------------- */\n gte_stsxy3c(&tmpxy[0]);\n vdbuf = *(V8 *)vd;\n gte_ldv0(&vdbuf);\n gte_rtps();\n if (tmpxy[0].vx > tmpxy[1].vx) { mx = tmpxy[0].vx; mn = tmpxy[1].vx; }\n else { mn = tmpxy[0].vx; mx = tmpxy[1].vx; }\n if (tmpxy[2].vx > mx) mx = tmpxy[2].vx;\n else if (tmpxy[2].vx < mn) mn = tmpxy[2].vx;\n if (tmpxy[0].vy > tmpxy[1].vy) { my = tmpxy[0].vy; mny = tmpxy[1].vy; }\n else { mny = tmpxy[0].vy; my = tmpxy[1].vy; }\n if (tmpxy[2].vy > my) my = tmpxy[2].vy;\n else if (tmpxy[2].vy < mny) mny = tmpxy[2].vy;\n gte_stflg(&g.flag);\n if (!(g.flag & 0x7F85E000)) {\n gte_stsz4(&g.sz0, &g.sz1, &g.sz2, &g.sz3);\n gte_stsxy((long *)&((Ft4_35C *)pkt)->x3);\n if (((Ft4_35C *)pkt)->x3 < mn) mn = ((Ft4_35C *)pkt)->x3;\n else if (mx < ((Ft4_35C *)pkt)->x3) mx = ((Ft4_35C *)pkt)->x3;\n if (mx >= -0xA0 && mn < 0xA1) {\n if (((Ft4_35C *)pkt)->y3 < mny) mny = ((Ft4_35C *)pkt)->y3;\n else if (my < ((Ft4_35C *)pkt)->y3) my = ((Ft4_35C *)pkt)->y3;\n if (my >= -0x6E && mny < 0x6F) {\n u32 *otp;\n zb = g.sz2;\n if (zb < g.sz3) zb = g.sz3;\n za = g.sz0;\n if (za < g.sz1) za = g.sz1;\n if (za < zb) za = zb;\n g.opz = za;\n if (code == 3) g.opz = za + 0x50;\n oz = g.opz;\n d = oz - 400;\n if (d < 0) d = 0;\n d = (d >> 8) << 22;\n *(u32 *)&((Ft4_35C *)pkt)->x0 = *(u32 *)&tmpxy[0];\n *(u32 *)&((Ft4_35C *)pkt)->x1 = *(u32 *)&tmpxy[1];\n *(u32 *)&((Ft4_35C *)pkt)->x2 = *(u32 *)&tmpxy[2];\n tp = (u32 *)prim->w0;\n ((Ft4_35C *)pkt)->rgbc = tp[0];\n ((Ft4_35C *)pkt)->uvc0 = tp[1] + d;\n ((Ft4_35C *)pkt)->uvp1 = tp[2];\n uvw = tp[3];\n ((Ft4_35C *)pkt)->uv2 = uvw;\n ((Ft4_35C *)pkt)->uv3 = uvw >> 16;\n otp = (u32 *)(((oz >> 2) << 2) + ot);\n *(u32 *)pkt = (*otp & 0xFFFFFF) | 0x9000000;\n *otp = (*otp & 0xFF000000) | ((u32)pkt & 0xFFFFFF);\n pkt += 0x28;\n }\n }\n }\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n D_800A5E60 = pkt;\n}\n"} diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c index 39749738c2..a852a4b1be 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c @@ -4896,7 +4896,6 @@ void func_8017E35C(s32 arg0) mxc = xmx1; if (mxc < xmx2) mxc = xmx2; if ((s16)mxc >= -0x6E && (s16)mnc < 0x6F) { - __asm__ __volatile__ ("" :: "r" (nparts)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus7) prim = (Prim *)part->prim; nprim = part->nprim; for (i = 0; i < nprim; i++, prim++) { @@ -4941,9 +4940,8 @@ void func_8017E35C(s32 arg0) else if (((Ft3_35C *)pkt)->y2 < mny) mny = ((Ft3_35C *)pkt)->y2; if (my >= -0x6E && mny < 0x6F) { u32 *otp; - if (g.sz0 > g.sz1) { za = g.sz0; if (za < g.sz2) za = g.sz2; } - else { za = g.sz1; if (za < g.sz2) za = g.sz2; } - g.opz = za; + if (g.sz0 > g.sz1) { za = g.sz0; if (za < g.sz2) za = g.sz2; g.opz = za; } + else { za = g.sz1; if (za < g.sz2) za = g.sz2; g.opz = za; } if (code == 7) g.opz = za + 0x50; oz = g.opz; d = oz - 400;