wip: checkpoint FIFA 17 SBC research for Windows migration
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""Adversarial verify Dimension 4/5 decompile claims.
|
||||
Hypothesis under attack:
|
||||
(A) FUN_1800b2680 case 0xc reads slot+0x2c8 -> GOTO_DRAFT_ONLINE/DISABLED;
|
||||
case 0xd reads slot+0x2d0 AND +0x2c8 -> GOTO_DRAFT_OFFLINE/DISABLED;
|
||||
cases 5/0xe (tournament) set GOTO_* UNCONDITIONALLY;
|
||||
objectives block reads slot 0x320 -> GOTO_MANAGER_QUEST(_DISABLED).
|
||||
(B) settings deser FUN_18013c6d0: 0xf9->[0x17]; 0xfa&0xff->[0x18]; 0xfd&0xfe->[0x1c].
|
||||
(C) applier FUN_18011dc50: +0x1fd3d=[0x17]==1; +0x1fd3e=[0x18]==1; +0x1fd44=[0x1c]==1.
|
||||
(D) feature FUN_18013ec10 arm 0x11c recognizes ONLY atom 0x330.
|
||||
Control: settings 0x336 tradingEnabled -> [10]; applier +0x1fd2e=[10]==1 (known good).
|
||||
Method: print full decompile length + context around each token so absence claims
|
||||
are from FULL text, not truncation.
|
||||
"""
|
||||
import traceback
|
||||
def ctx(txt, needles, before=2, after=6):
|
||||
lines=txt.splitlines()
|
||||
hits=set()
|
||||
for i,l in enumerate(lines):
|
||||
for n in needles:
|
||||
if n in l:
|
||||
for j in range(max(0,i-before), min(len(lines),i+after+1)):
|
||||
hits.add(j)
|
||||
for j in sorted(hits):
|
||||
print(" %4d: %s"%(j,lines[j]))
|
||||
try:
|
||||
for ea,name,needles in [
|
||||
(0x1800b2680,"FUN_1800b2680 (hub tile builder)",
|
||||
["GOTO_DRAFT","GOTO_MANAGER_QUEST","GOTO_OFFLINE_TOURNAMENT","GOTO_ONLINE_CHAMPIONS",
|
||||
"GOTO_OFFLINE_SEASON","GOTO_ONLINE_SEASON","0x2c8","0x2d0","0x320","0x2b8",
|
||||
"SBS","GameHub_SBS","0xd0)","GOTO_SBC","GOTO_SQUAD"]),
|
||||
(0x18013c6d0,"FUN_18013c6d0 (settings deser)",
|
||||
["0xf9","0xfa","0xff","0xfd","0xfe","0x336","0x17]","0x18]","0x1c]","[10]","param_2[10]"]),
|
||||
(0x18011dc50,"FUN_18011dc50 (applier)",None),
|
||||
(0x18013ec10,"FUN_18013ec10 (feature/massinfo)",
|
||||
["0x11c","0x330","0x336"]),
|
||||
]:
|
||||
c=dec(ea)
|
||||
print("="*70)
|
||||
print("%s len=%d"%(name,len(c)))
|
||||
if needles is None:
|
||||
print(c)
|
||||
else:
|
||||
ctx(c,needles)
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
Reference in New Issue
Block a user