From 804faacc85b11365f561b692013ec3d87463dc19 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 00:11:28 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20s104=5Fd34=20=E2=80=94=20fun?= =?UTF-8?q?c=5F8017ED60=20banked=20at=200=20through=20the=20whole-object?= =?UTF-8?q?=20gate=20+=20propagated=20=E2=80=94=20d34=20copy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 370 +++++++++++----------- .run/P36/delever/ledger.jsonl | 1 + src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c | 85 ++--- 3 files changed, 212 insertions(+), 244 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 0424570d87..0054ad9dc5 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "1dca90ccf", + "head": "f22b8b7d5", "stamp": "15956e4a96c4", "generated": "2026-09-11 00:10", "aliases": [ @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 10.781000000000004, - "mean_s": 0.127 + "seconds": 8.604000000000003, + "mean_s": 0.101 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 6.877000000000002, - "mean_s": 0.215 + "seconds": 5.711, + "mean_s": 0.178 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 6.686, - "mean_s": 0.209 + "seconds": 5.388000000000002, + "mean_s": 0.168 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 6.073000000000002, - "mean_s": 0.217 + "seconds": 5.179, + "mean_s": 0.185 } }, "per_object_seconds": { - "build/src/800.o": 1.088, - "build/src/800_b.o": 0.167, - "build/src/800_b_2.o": 0.391, - "build/src/800_b_o0a.o": 0.116, - "build/src/800_c.o": 0.274, - "build/src/800b2.o": 0.113, - "build/src/apicard1.o": 0.12, - "build/src/apicard2.o": 0.143, + "build/src/800.o": 0.633, + "build/src/800_b.o": 0.162, + "build/src/800_b_2.o": 0.344, + "build/src/800_b_o0a.o": 0.112, + "build/src/800_c.o": 0.258, + "build/src/800b2.o": 0.145, + "build/src/apicard1.o": 0.095, + "build/src/apicard2.o": 0.183, "build/src/apicard3.o": 0.076, - "build/src/apicard4.o": 0.102, - "build/src/apicard5.o": 0.103, - "build/src/apicard6.o": 0.077, - "build/src/apicard7.o": 0.082, - "build/src/boot.o": 0.122, - "build/src/gap.o": 0.098, - "build/src/libapi1.o": 0.096, - "build/src/libapi2.o": 0.12, - "build/src/libc2_1.o": 0.097, + "build/src/apicard4.o": 0.144, + "build/src/apicard5.o": 0.084, + "build/src/apicard6.o": 0.117, + "build/src/apicard7.o": 0.1, + "build/src/boot.o": 0.152, + "build/src/gap.o": 0.145, + "build/src/libapi1.o": 0.106, + "build/src/libapi2.o": 0.1, + "build/src/libc2_1.o": 0.093, "build/src/libc2_2.o": 0.069, - "build/src/libcd1.o": 0.126, - "build/src/libcd2.o": 0.085, - "build/src/libetc.o": 0.085, - "build/src/libgpu.o": 0.116, - "build/src/libgpu2.o": 0.085, - "build/src/libgs1.o": 0.086, - "build/src/libgs2.o": 0.094, - "build/src/libgs3.o": 0.108, - "build/src/libgs4.o": 0.092, - "build/src/libgs5.o": 0.12, - "build/src/libgs6.o": 0.135, - "build/src/libgs7.o": 0.113, - "build/src/libgs8.o": 0.106, - "build/src/libgte1.o": 0.139, - "build/src/libgte10.o": 0.097, - "build/src/libgte11.o": 0.134, - "build/src/libgte12.o": 0.092, - "build/src/libgte13.o": 0.113, - "build/src/libgte14.o": 0.155, - "build/src/libgte15.o": 0.12, - "build/src/libgte16.o": 0.101, - "build/src/libgte17.o": 0.09, - "build/src/libgte18.o": 0.103, - "build/src/libgte19.o": 0.115, - "build/src/libgte2.o": 0.114, - "build/src/libgte20.o": 0.129, - "build/src/libgte21.o": 0.075, - "build/src/libgte22.o": 0.16, - "build/src/libgte23.o": 0.151, - "build/src/libgte24.o": 0.078, - "build/src/libgte25.o": 0.086, - "build/src/libgte26.o": 0.111, - "build/src/libgte27.o": 0.084, - "build/src/libgte28.o": 0.096, - "build/src/libgte29.o": 0.115, - "build/src/libgte3.o": 0.08, - "build/src/libgte30.o": 0.072, - "build/src/libgte4.o": 0.137, - "build/src/libgte5.o": 0.097, - "build/src/libgte6.o": 0.086, - "build/src/libgte7.o": 0.08, - "build/src/libgte8.o": 0.093, - "build/src/libgte9.o": 0.1, - "build/src/libmcrd1.o": 0.147, - "build/src/libmcrd2.o": 0.086, - "build/src/libpad1.o": 0.092, - "build/src/libpad2.o": 0.174, - "build/src/sgap.o": 0.088, - "build/src/sgap_2.o": 0.135, - "build/src/sgap_3.o": 0.124, - "build/src/sgap_4.o": 0.154, - "build/src/sgap_5.o": 0.127, - "build/src/sgap_6.o": 0.124, - "build/src/sgap_8.o": 0.116, - "build/src/snd1.o": 0.094, - "build/src/snd10.o": 0.141, - "build/src/snd11.o": 0.101, - "build/src/snd12.o": 0.127, - "build/src/snd2.o": 0.152, - "build/src/snd3.o": 0.118, - "build/src/snd4.o": 0.095, - "build/src/snd5.o": 0.111, - "build/src/snd6.o": 0.132, - "build/src/snd7.o": 0.094, - "build/src/snd8.o": 0.107, - "build/src/snd9.o": 0.134, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.225, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.786, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.516, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.092, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.079, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.201, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.193, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.148, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.123, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.104, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.241, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.103, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.291, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.145, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.125, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.097, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.135, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.631, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.367, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.179, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.303, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.098, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.143, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.127, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.254, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.267, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.408, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.074, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.097, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.103, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.153, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.214, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.671, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.525, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.063, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.16, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.207, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.186, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.103, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.101, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.231, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.109, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.259, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.155, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.144, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.135, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.625, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.384, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.148, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.287, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.075, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.16, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.116, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.237, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.285, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.077, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.441, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.104, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.12, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.09, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.116, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.199, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.605, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.485, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.123, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.157, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.219, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.18, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.096, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.098, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.254, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.103, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.221, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.144, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.179, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.087, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.166, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.575, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.325, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.123, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.255, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.095, - "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.11, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.162, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.73, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.083, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.093 + "build/src/libcd1.o": 0.113, + "build/src/libcd2.o": 0.111, + "build/src/libetc.o": 0.11, + "build/src/libgpu.o": 0.072, + "build/src/libgpu2.o": 0.081, + "build/src/libgs1.o": 0.082, + "build/src/libgs2.o": 0.074, + "build/src/libgs3.o": 0.076, + "build/src/libgs4.o": 0.073, + "build/src/libgs5.o": 0.076, + "build/src/libgs6.o": 0.093, + "build/src/libgs7.o": 0.043, + "build/src/libgs8.o": 0.041, + "build/src/libgte1.o": 0.041, + "build/src/libgte10.o": 0.04, + "build/src/libgte11.o": 0.042, + "build/src/libgte12.o": 0.041, + "build/src/libgte13.o": 0.041, + "build/src/libgte14.o": 0.04, + "build/src/libgte15.o": 0.039, + "build/src/libgte16.o": 0.038, + "build/src/libgte17.o": 0.037, + "build/src/libgte18.o": 0.038, + "build/src/libgte19.o": 0.036, + "build/src/libgte2.o": 0.036, + "build/src/libgte20.o": 0.109, + "build/src/libgte21.o": 0.099, + "build/src/libgte22.o": 0.121, + "build/src/libgte23.o": 0.094, + "build/src/libgte24.o": 0.08, + "build/src/libgte25.o": 0.089, + "build/src/libgte26.o": 0.103, + "build/src/libgte27.o": 0.09, + "build/src/libgte28.o": 0.122, + "build/src/libgte29.o": 0.111, + "build/src/libgte3.o": 0.1, + "build/src/libgte30.o": 0.096, + "build/src/libgte4.o": 0.12, + "build/src/libgte5.o": 0.086, + "build/src/libgte6.o": 0.067, + "build/src/libgte7.o": 0.114, + "build/src/libgte8.o": 0.072, + "build/src/libgte9.o": 0.094, + "build/src/libmcrd1.o": 0.097, + "build/src/libmcrd2.o": 0.072, + "build/src/libpad1.o": 0.094, + "build/src/libpad2.o": 0.061, + "build/src/sgap.o": 0.068, + "build/src/sgap_2.o": 0.081, + "build/src/sgap_3.o": 0.065, + "build/src/sgap_4.o": 0.068, + "build/src/sgap_5.o": 0.09, + "build/src/sgap_6.o": 0.078, + "build/src/sgap_8.o": 0.082, + "build/src/snd1.o": 0.072, + "build/src/snd10.o": 0.068, + "build/src/snd11.o": 0.058, + "build/src/snd12.o": 0.117, + "build/src/snd2.o": 0.111, + "build/src/snd3.o": 0.123, + "build/src/snd4.o": 0.105, + "build/src/snd5.o": 0.15, + "build/src/snd6.o": 0.167, + "build/src/snd7.o": 0.086, + "build/src/snd8.o": 0.166, + "build/src/snd9.o": 0.126, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.177, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.594, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.442, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.085, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.117, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.18, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.248, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.162, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.113, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.092, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.207, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.098, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.219, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.109, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.082, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.099, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.119, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.494, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.311, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.123, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.228, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.085, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.117, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.085, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.187, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.224, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.09, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.3, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.082, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.081, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.078, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.083, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.105, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.504, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.373, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.05, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.058, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.102, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.132, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.098, + "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.103, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.234, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.144, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.24, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.127, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.111, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.112, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.203, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.453, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.305, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.162, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.24, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.126, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.134, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.105, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.192, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.203, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.074, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.255, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.076, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.086, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.072, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.086, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.133, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.323, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.237, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.036, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.033, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.073, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.092, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.07, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.047, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.04, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.108, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.043, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.727, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.146, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.117, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.134, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.116, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.515, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.322, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.193, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.232, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.118, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.155, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.111, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.128, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.7, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.079, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.151 }, "ok": true, - "seconds": 4.4 + "seconds": 26.1 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index c1ee75dde7..1cf6a5b75d 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29321,3 +29321,4 @@ {"ts": "2026-09-11 00:09:56", "label": "s104_d34", "rung": "E", "calib": {"head": "27fb22cad", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c", "fn": "func_8018E094", "addr": 2149114004, "aliases": null, "header": false, "includers": 0, "nhash_before": "f87f53c476a01645d62b999d51c23966d91377f0", "nhash_after": "8ecc46ffd3e86e37d1b63685599c4f4ecc20a26e", "source": "propagate:src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c:func_80181408", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.388, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o"], "before_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern void func_8018DEC0(void);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n s32 pad2[2]; /* sp+0x24 -- dead, sizes the frame */\n } L;\n\n s32 v1;\n s32 cool;\n s32 old;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n old = *(s16 *)(a0 + 0x84);\n v1 = old;\n if (old != 0) {\n goto L_dec;\n }\n\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n { register void *r4 __asm__(\"$4\"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n { void *r4; r4 = &D_800AF648; func_800491AC(r4); }\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag < 0) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[0] + 0xEF) & 0xFFFF) >= 0x1DF) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[1] + 0xB3) & 0xFFFF) >= 0x167) {\n goto L_snd_skip;\n }\n\n {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = sx;\n if (sx < 0) {\n av = -sx;\n }\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n\nL_snd_skip:\n cool = 0xA;\n goto L_join;\n\nL_dec:\n cool = v1 - 1;\n\nL_join:\n *(s16 *)(a0 + 0x84) = cool;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n {\n s32 p = a0;\n *(u16 *)(p + 0xFC) = *(u16 *)(p + 0xFC) + 0x280;\n *(u16 *)(p + 0xFE) = *(u16 *)(p + 0xFE) - 0x280;\n ((void (*)(void *))func_8018DEC0)((void *)p);\n }\n}\n", "after_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern u8 D_800AF648_b __asm__(\"D_800AF648\");\n extern void func_8018DEC0(void);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n } L;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n if (*(s16 *)(a0 + 0x84) == 0) {\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648_b);\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag >= 0 && (u16)(L.sxy[0] + 0xEF) < 0x1DF\n && (u16)(L.sxy[1] + 0xB3) < 0x167) {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = (sx < 0) ? -sx : sx;\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n *(s16 *)(a0 + 0x84) = 0xA;\n } else {\n (*(s16 *)(a0 + 0x84))--;\n }\n\n *(u16 *)(a0 + 0xFC) += 0x280;\n *(u16 *)(a0 + 0xFE) -= 0x280;\n ((void (*)(void *))func_8018DEC0)((void *)a0);\n}\n"} {"ts": "2026-09-11 00:09:56", "label": "s104_d34", "rung": "E", "calib": {"head": "27fb22cad", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_8018D98C.c", "fn": "func_8018F6EC", "addr": 2149119724, "aliases": null, "header": false, "includers": 0, "nhash_before": "f87f53c476a01645d62b999d51c23966d91377f0", "nhash_after": "8ecc46ffd3e86e37d1b63685599c4f4ecc20a26e", "source": "propagate:src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c:func_80181408", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.192, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_8018D98C.o"], "before_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern void func_8018F518(void);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n s32 pad2[2]; /* sp+0x24 -- dead, sizes the frame */\n } L;\n\n s32 v1;\n s32 cool;\n s32 old;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n old = *(s16 *)(a0 + 0x84);\n v1 = old;\n if (old != 0) {\n goto L_dec;\n }\n\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n { register void *r4 __asm__(\"$4\"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n { void *r4; r4 = &D_800AF648; func_800491AC(r4); }\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag < 0) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[0] + 0xEF) & 0xFFFF) >= 0x1DF) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[1] + 0xB3) & 0xFFFF) >= 0x167) {\n goto L_snd_skip;\n }\n\n {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = sx;\n if (sx < 0) {\n av = -sx;\n }\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n\nL_snd_skip:\n cool = 0xA;\n goto L_join;\n\nL_dec:\n cool = v1 - 1;\n\nL_join:\n *(s16 *)(a0 + 0x84) = cool;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n {\n s32 p = a0;\n *(u16 *)(p + 0xFC) = *(u16 *)(p + 0xFC) + 0x280;\n *(u16 *)(p + 0xFE) = *(u16 *)(p + 0xFE) - 0x280;\n ((void (*)(void *))func_8018F518)((void *)p);\n }\n}\n", "after_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern u8 D_800AF648_b __asm__(\"D_800AF648\");\n extern void func_8018F518(void);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n } L;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n if (*(s16 *)(a0 + 0x84) == 0) {\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648_b);\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag >= 0 && (u16)(L.sxy[0] + 0xEF) < 0x1DF\n && (u16)(L.sxy[1] + 0xB3) < 0x167) {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = (sx < 0) ? -sx : sx;\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n *(s16 *)(a0 + 0x84) = 0xA;\n } else {\n (*(s16 *)(a0 + 0x84))--;\n }\n\n *(u16 *)(a0 + 0xFC) += 0x280;\n *(u16 *)(a0 + 0xFE) -= 0x280;\n ((void (*)(void *))func_8018F518)((void *)a0);\n}\n"} {"ts": "2026-09-11 00:10:28", "label": "s104_d34", "rung": "E", "calib": {"head": "1dca90ccf", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_008/ov_SC06_008_jr_8017C294.c", "fn": "func_8017EF54", "addr": 2149052244, "aliases": null, "header": false, "includers": 0, "nhash_before": "d390deea477fca906e9276ecb9b0197c84b0d914", "nhash_after": "307c7b11800f09aa3b0e2122469ed1c047b265dd", "source": ".run/P36/agents/ov_SC06_010__func_80181408/scratch/copy_ov_SC06_008.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.26, "objects": ["build/src/ov_SC06_008/ov_SC06_008_jr_8017C294.o"], "before_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern void func_8017ED80(void *a0);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n s32 pad2[2]; /* sp+0x24 -- dead, sizes the frame */\n } L;\n\n s32 v1;\n s32 cool;\n s32 old;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n old = *(s16 *)(a0 + 0x84);\n v1 = old;\n if (old != 0) {\n goto L_dec;\n }\n\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n { register void *r4 __asm__(\"$4\"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n { void *r4; r4 = &D_800AF648; func_800491AC(r4); }\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag < 0) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[0] + 0xEF) & 0xFFFF) >= 0x1DF) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[1] + 0xB3) & 0xFFFF) >= 0x167) {\n goto L_snd_skip;\n }\n\n {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = sx;\n if (sx < 0) {\n av = -sx;\n }\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n\nL_snd_skip:\n cool = 0xA;\n goto L_join;\n\nL_dec:\n cool = v1 - 1;\n\nL_join:\n *(s16 *)(a0 + 0x84) = cool;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n {\n s32 p = a0;\n *(u16 *)(p + 0xFC) = *(u16 *)(p + 0xFC) + 0x280;\n *(u16 *)(p + 0xFE) = *(u16 *)(p + 0xFE) - 0x280;\n func_8017ED80((void *)p);\n }\n}\n", "after_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern u8 D_800AF648_b __asm__(\"D_800AF648\");\n extern void func_8017ED80(void *a0);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n } L;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n if (*(s16 *)(a0 + 0x84) == 0) {\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648_b);\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag >= 0 && (u16)(L.sxy[0] + 0xEF) < 0x1DF\n && (u16)(L.sxy[1] + 0xB3) < 0x167) {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = (sx < 0) ? -sx : sx;\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n *(s16 *)(a0 + 0x84) = 0xA;\n } else {\n (*(s16 *)(a0 + 0x84))--;\n }\n\n *(u16 *)(a0 + 0xFC) += 0x280;\n *(u16 *)(a0 + 0xFE) -= 0x280;\n func_8017ED80((void *)a0);\n}\n"} +{"ts": "2026-09-11 00:11:25", "label": "s104_d34", "rung": "E", "calib": {"head": "f22b8b7d5", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c", "fn": "func_8017ED60", "addr": 2149051744, "aliases": null, "header": false, "includers": 0, "nhash_before": "4f7dcc62da3837c30b00864f8dfbabfc944d063b", "nhash_after": "ca556c4aea08c707b6790839c221ecfd2ac2ee01", "source": ".run/P36/agents/ov_SC06_010__func_80181408/scratch/copy_ov_SC06_018.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.41, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.o"], "before_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern void func_8017EB8C(s32);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n s32 pad2[2]; /* sp+0x24 -- dead, sizes the frame */\n } L;\n\n s32 v1;\n s32 cool;\n s32 old;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n old = *(s16 *)(a0 + 0x84);\n v1 = old;\n if (old != 0) {\n goto L_dec;\n }\n\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n { register void *r4 __asm__(\"$4\"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n { void *r4; r4 = &D_800AF648; func_800491AC(r4); }\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag < 0) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[0] + 0xEF) & 0xFFFF) >= 0x1DF) {\n cool = 0xA;\n goto L_join;\n }\n if ((u32)((L.sxy[1] + 0xB3) & 0xFFFF) >= 0x167) {\n goto L_snd_skip;\n }\n\n {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = sx;\n if (sx < 0) {\n av = -sx;\n }\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n\nL_snd_skip:\n cool = 0xA;\n goto L_join;\n\nL_dec:\n cool = v1 - 1;\n\nL_join:\n *(s16 *)(a0 + 0x84) = cool;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n {\n s32 p = a0;\n *(u16 *)(p + 0xFC) = *(u16 *)(p + 0xFC) + 0x280;\n *(u16 *)(p + 0xFE) = *(u16 *)(p + 0xFE) - 0x280;\n ((void (*)(void *))func_8017EB8C)((void *)p);\n }\n}\n", "after_text": "void aF8017EF54(s32 a0)\n{\n extern void func_8004914C(void *a0);\n extern void func_800491AC(void *a0);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);\n extern u8 D_800AF648;\n extern u8 D_800AF648_b __asm__(\"D_800AF648\");\n extern void func_8017EB8C(s32);\n struct {\n s16 v[3]; /* sp+0x10 */\n s16 pad1; /* sp+0x16 */\n u16 sxy[2]; /* sp+0x18 */\n s32 z; /* sp+0x1C */\n s32 flag; /* sp+0x20 */\n } L;\n\n if (*(u16 *)(a0 + 0x0) == 0) {\n return;\n }\n\n if (*(s16 *)(a0 + 0x84) == 0) {\n L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648_b);\n RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag);\n\n if (L.flag >= 0 && (u16)(L.sxy[0] + 0xEF) < 0x1DF\n && (u16)(L.sxy[1] + 0xB3) < 0x167) {\n s32 sx = (s16)L.sxy[0];\n s32 av;\n\n av = (sx < 0) ? -sx : sx;\n av = ((0xF0 - av) * 0x7F) / 0xF0;\n sx = (sx + 0xF0) / 0x1E;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8;\n func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF);\n }\n *(s16 *)(a0 + 0x84) = 0xA;\n } else {\n (*(s16 *)(a0 + 0x84))--;\n }\n\n *(u16 *)(a0 + 0xFC) += 0x280;\n *(u16 *)(a0 + 0xFE) -= 0x280;\n ((void (*)(void *))func_8017EB8C)((void *)a0);\n}\n"} diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c b/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c index 89614b661d..ea7471388f 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c @@ -3984,6 +3984,7 @@ void aF8017EF54(s32 a0) extern void func_8002D4C8(s32 a0, s32 a1); extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern u8 D_800AF648; + extern u8 D_800AF648_b __asm__("D_800AF648"); extern void func_8017EB8C(s32); struct { s16 v[3]; /* sp+0x10 */ @@ -3991,76 +3992,42 @@ void aF8017EF54(s32 a0) u16 sxy[2]; /* sp+0x18 */ s32 z; /* sp+0x1C */ s32 flag; /* sp+0x20 */ - s32 pad2[2]; /* sp+0x24 -- dead, sizes the frame */ } L; - s32 v1; - s32 cool; - s32 old; - if (*(u16 *)(a0 + 0x0) == 0) { return; } - old = *(s16 *)(a0 + 0x84); - v1 = old; - if (old != 0) { - goto L_dec; - } + if (*(s16 *)(a0 + 0x84) == 0) { + L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48); + L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C); + L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50); + func_8004914C(&D_800AF648); + func_800491AC(&D_800AF648_b); + RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag); - L.v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48); - L.v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C); - L.v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50); - { register void *r4 __asm__("$4"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus9) - { void *r4; r4 = &D_800AF648; func_800491AC(r4); } - RotTransPers((s32)L.v, (s32)L.sxy, &L.z, &L.flag); + if (L.flag >= 0 && (u16)(L.sxy[0] + 0xEF) < 0x1DF + && (u16)(L.sxy[1] + 0xB3) < 0x167) { + s32 sx = (s16)L.sxy[0]; + s32 av; - if (L.flag < 0) { - cool = 0xA; - goto L_join; - } - if ((u32)((L.sxy[0] + 0xEF) & 0xFFFF) >= 0x1DF) { - cool = 0xA; - goto L_join; - } - if ((u32)((L.sxy[1] + 0xB3) & 0xFFFF) >= 0x167) { - goto L_snd_skip; - } - - { - s32 sx = (s16)L.sxy[0]; - s32 av; - - av = sx; - if (sx < 0) { - av = -sx; + av = (sx < 0) ? -sx : sx; + av = ((0xF0 - av) * 0x7F) / 0xF0; + sx = (sx + 0xF0) / 0x1E; + if (sx == 0x10) { + sx = 0xF; + } + sx = sx << 8; + func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF); } - av = ((0xF0 - av) * 0x7F) / 0xF0; - sx = (sx + 0xF0) / 0x1E; - if (sx == 0x10) { - sx = 0xF; - } - sx = sx << 8; - func_8002D4C8(0x849, (av | (0x3000 | sx)) & 0xFFFF); + *(s16 *)(a0 + 0x84) = 0xA; + } else { + (*(s16 *)(a0 + 0x84))--; } -L_snd_skip: - cool = 0xA; - goto L_join; - -L_dec: - cool = v1 - 1; - -L_join: - *(s16 *)(a0 + 0x84) = cool; - __asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus9) - - { - s32 p = a0; - *(u16 *)(p + 0xFC) = *(u16 *)(p + 0xFC) + 0x280; - *(u16 *)(p + 0xFE) = *(u16 *)(p + 0xFE) - 0x280; - ((void (*)(void *))func_8017EB8C)((void *)p); - } + *(u16 *)(a0 + 0xFC) += 0x280; + *(u16 *)(a0 + 0xFE) -= 0x280; + ((void (*)(void *))func_8017EB8C)((void *)a0); }