re: the lookup argument is decoded at 46 of 48 sites -- and it refutes my

own corroboration from last iteration

Last iteration I listed a candidate name vocabulary from "upper-case
strings the callers reference", marked it amber because those are not
proven arguments, and named the check: confirm per call site which string
actually lands in r5. Ran the check. It fired.

The first extractor FAILED ITS OWN CONTROL -- a backward scan for
addi r5 recovered 7 of 48 sites and missed both title sites I had already
read by eye, because there the name is built in r27 and reaches r5 via a
later mr. Rewritten as a forward register simulation it reproduces all
three known sites and recovers 46 of 48, giving 28 distinct names.

Two of my own claims die. DIFFICULTY and EXTRA_MENU are NOT arguments at
any site -- they are strings that merely live in the same functions, so
the "independently corroborated by measurement" line I wrote was an
artifact of the loose filter. Only TUTORIAL_MENU survives. And
sub_821CC860 is not a screen factory at all: its real arguments include
BG, BLACK, FADE, FILE, KEY, PAD, SOUND and GAMMA_RGB. It is a generic
name-keyed lookup, mostly config, which the title part happens to call
with its three state names.

The title finding itself is untouched -- sub_821C6458 really does
transition by calling this with TITLE_SCREEN, TITLE_MENU and LOADING.
What is gone is the inference that the 28 names are a screen vocabulary.

Two METHOD lines, both earned here: strings a function references are not
arguments it passes, and a backward scan for a destination register
misses arguments staged through a scratch register.
This commit is contained in:
Sylpheed RE agent
2026-08-28 19:52:02 +00:00
parent 8b4965f0a5
commit c8c7677f6d
5 changed files with 130 additions and 5 deletions

View File

@@ -0,0 +1,57 @@
The r5 (name) argument at every call site of sub_821CC860.
Recovered by forward register simulation over the 100 instructions before
each call, tracking lis/addi/subi/mr. Gated on three sites read by eye:
0x821c6524 TITLE_SCREEN, 0x821c67c8 TITLE_MENU, 0x821c73c8 LOADING -- all three
reproduce, so the remaining rows are trusted.
call site caller r5 name
0x82185f14 sub_82185E80 0x820a2160 EXTRA
0x821860b4 sub_82186050 0x820a214c LOADING
0x82186350 sub_82186270 0x820a2140 NEW_ITEM
0x821863f8 sub_82186270 0x820a2140 NEW_ITEM
0x8218c094 sub_8218BFE0 0x820a2384 MENU
0x8219403c sub_82193648 - (not recovered)
0x82196b44 sub_82196A50 0x820a2168 FILE
0x82198540 sub_82198440 0x820a2570 BASE
0x821988e4 sub_82198808 0x820a270c MESSAGE
0x82198a5c sub_82198808 0x820a28ec MENU_DISABLE_SKIP
0x8219c3b4 sub_8219C328 0x820a2acc INFO
0x821a0b4c sub_821A0AD0 0x820a255c FADE
0x821a0b98 sub_821A0AD0 0x820a2ae8 BG
0x821a0bdc sub_821A0AD0 0x820a2adc DEBRIEFING
0x821a1028 sub_821A0F80 0x820a2ab4 LOCAL_BOARD
0x821a113c sub_821A0F80 0x820a255c FADE
0x821a1188 sub_821A0F80 0x820a2ae8 BG
0x821a129c sub_821A0F80 0x820a2554 TITLE
0x821a12e8 sub_821A0F80 0x820a2ad4 BLACK
0x821a13b4 sub_821A0F80 0x820a2ab4 LOCAL_BOARD
0x821a1a6c sub_821A19B0 0x820a2ac0 LIVE_BOARD
0x821a1bd4 sub_821A19B0 0x820a255c FADE
0x821a1c20 sub_821A19B0 0x820a2ae8 BG
0x821a1d34 sub_821A19B0 0x820a2554 TITLE
0x821a1d80 sub_821A19B0 0x820a2ad4 BLACK
0x821a1e4c sub_821A19B0 0x820a2ac0 LIVE_BOARD
0x821a2b48 sub_821A2A80 0x820a2a74 DETAIL
0x821b368c sub_821B34E8 0x820a2570 BASE
0x821b3780 sub_821B34E8 0x820a32ac WINDOW
0x821b9210 sub_821B9118 0x820a2168 FILE
0x821bc60c sub_821BC568 - (not recovered)
0x821bca58 sub_821BC978 0x820a2384 MENU
0x821be188 sub_821BDF88 0x820a2570 BASE
0x821be1ec sub_821BDF88 0x820a38ac TUTORIAL_MENU
0x821c1d30 sub_821C1B58 0x820a2168 FILE
0x821c2f04 sub_821C2EA0 0x820a2168 FILE
0x821c5c88 sub_821C5818 0x820a3d3c TITLE_SCREEN
0x821c5d70 sub_821C5818 0x820a339c BUTTON
0x821c6524 sub_821C6458 0x820a3d3c TITLE_SCREEN
0x821c67c8 sub_821C6458 0x820a3d30 TITLE_MENU
0x821c73c8 sub_821C6458 0x820a214c LOADING
0x821c9488 sub_821C93C8 0x820a2168 FILE
0x822b2e04 sub_822B2D80 0x820ab24c KEY
0x822b581c sub_822B5790 0x820ab2a4 GAMMA_TITLE
0x822b5914 sub_822B5790 0x820ab298 GAMMA_RGB
0x822b71ac sub_822B7128 0x820a99dc GAME
0x822b8700 sub_822B8670 0x820a3124 PAD
0x822b9ebc sub_822B9E38 0x820a1784 SOUND
46/48 recovered.