diff --git a/config/match_worklist.tsv b/config/match_worklist.tsv index 910ef6c..8ceb722 100644 --- a/config/match_worklist.tsv +++ b/config/match_worklist.tsv @@ -959,7 +959,7 @@ 952 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1 # # listed=952 -# excluded_already_registered=741 +# excluded_already_registered=742 # excluded_bad_extent_start=8 # excluded_degenerate_body=252 # excluded_delay_slot_start=5 @@ -968,6 +968,6 @@ # excluded_low_confidence_grade=90 # excluded_named_exclusion=9 # excluded_no_extent=0 -# excluded_recorded_negative=87 +# excluded_recorded_negative=86 # excluded_restores_unsaved=11 # excluded_trapping_arith=48 diff --git a/config/regions.tsv b/config/regions.tsv index 62c1431..91fabfc 100644 --- a/config/regions.tsv +++ b/config/regions.tsv @@ -609,6 +609,7 @@ 0x800F6330 0x800F6364 src/func_800F6330.c 0x800F6570 0x800F6594 src/func_800F6570.c 0x800F66B8 0x800F6710 src/func_800F66B8.c +0x800F6948 0x800F69BC src/func_800F6948.c maspsx=epilogue 0x800F6D60 0x800F6DD0 src/func_800F6D60.c 0x800F6DD0 0x800F6E50 src/func_800F6DD0.c maspsx=epilogue 0x800F6E50 0x800F6ED0 src/func_800F6E50.c maspsx=epilogue diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index ad0751b..ef53d68 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -6,11 +6,11 @@ ## STATE — SOLO CONTINUATION, 2026-09-24 (current) -**734 bodies / 743 regions**, from 685 / 694 at the last session stop — **+49 bodies / +49 regions**. -The Phase 12 milestone remains 750 bodies, so **+16 remains**. The promoted whole-binary gate is green: -`c_regions=743`, `differing_bytes=0`, SHA-1 +**735 bodies / 744 regions**, from 685 / 694 at the last session stop — **+50 bodies / +50 regions**. +The Phase 12 milestone remains 750 bodies, so **+15 remains**. The promoted whole-binary gate is green: +`c_regions=744`, `differing_bytes=0`, SHA-1 `e173426c157384ebf1b6caf8c6fea18a85a14af9`; 348 synthetic tests pass and extents report -`regions=743 disagreements=0 result=AGREE`. +`regions=744 disagreements=0 result=AGREE`. The requested second batch of 20 is complete. Twenty additional bodies are now matched: `0x800BC9C4`, `0x800BC8C4`, `0x8006BB0C`, `0x8002D17C`, `0x801029A0`, `0x80055958`, @@ -24,7 +24,7 @@ Final clean verification (2026-09-25): `make clean && make all`, `make worklist` `make extents-verify`, and `make check` all exited 0. Both clean assembly and code rebuilds matched the USA executable byte-for-byte; each is 1,886,208 bytes with SHA-1 `e173426c157384ebf1b6caf8c6fea18a85a14af9`. The final worklist is 952 rows and the extents -check reports `regions=743 disagreements=0 result=AGREE`. +check reports `regions=744 disagreements=0 result=AGREE`. ## STATE — SESSION STOP, 2026-09-24 23:35 (historical; superseded by the state above, kept for provenance) **685 bodies / 694 regions**, from 602 / 611 at the Phase 11 close — **+83 bodies**. **Milestone 750 was NOT diff --git a/phase-ends/logs/Phase12.md b/phase-ends/logs/Phase12.md index a338da2..51c1c8f 100644 --- a/phase-ends/logs/Phase12.md +++ b/phase-ends/logs/Phase12.md @@ -2543,6 +2543,17 @@ passed with 348 tests and extents `regions=742 disagreements=0`; worklist regene **Count after task 37: 734 bodies / 743 regions (+132 bodies from the Phase 12 open baseline; +16 remain to milestone 750).** +### Worker B task 38 — `0x800F6948` MATCH + +* Exact extent `0x800F6948..0x800F69BC`, 116 bytes, with `maspsx=epilogue`. +* All five parameters are unsigned shorts; the fifth is passed through the caller's stack slot and + the frame release is in the jump delay slot. +* Fresh range and candidate whole-binary gate passed with zero differences; `make check` passed with + 348 tests and extents `regions=744 disagreements=0`; worklist remains 952 rows. + +**Count after task 38: 735 bodies / 744 regions (+133 bodies from the Phase 12 open baseline; ++15 remain to milestone 750).** + ### Duplicate-claim guard incident A later autonomous draft attempted `0x8006FAEC`, but the merge check showed that exact region was diff --git a/src/func_800F6948.c b/src/func_800F6948.c new file mode 100644 index 0000000..32241a8 --- /dev/null +++ b/src/func_800F6948.c @@ -0,0 +1,25 @@ +/* + * func_800F6948 — 116 bytes at 0x800F6948..0x800F69BC + * + * Call the adjacent helper with five unsigned-short parameters, clear a fixed + * halfword, then dispatch the retained first two values through three helpers. + * + * REGION TOKEN: `maspsx=epilogue`. + */ + +void func_800F69BC(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short); +void func_801032D4(void); +void func_800F6B40(unsigned short, unsigned short); +void func_80103144(void); +void func_801031C4(void); + +void func_800F6948(unsigned short a0, unsigned short a1, unsigned short a2, + unsigned short a3, unsigned short a4) +{ + func_800F69BC(a0, a1, a2, a3, a4); + func_801032D4(); + *(unsigned short *)0x80142E38 = 0; + func_800F6B40(a0, a1); + func_80103144(); + func_801031C4(); +}