wip: checkpoint FIFA 17 SBC research for Windows migration
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""DIMENSION 4 q6: are the GOTO_* tile destinations consumed by native gate code or
|
||||
only handed to the front-end script layer? And what do the draft/tournament mode-node
|
||||
factories register?
|
||||
|
||||
Hypothesis: GOTO_DRAFT_ONLINE/OFFLINE/DISABLED and GOTO_*TOURNAMENT appear ONLY as
|
||||
string VALUES passed to the UI property setter in FUN_1800b2680 (no native consumer),
|
||||
i.e. the destination is dispatched by the packed front-end -> script layer.
|
||||
|
||||
Control: GOTO_DRAFT_DISABLED must appear in FUN_1800b2680 (we just read it there).
|
||||
"""
|
||||
import traceback
|
||||
try:
|
||||
def whereis(lit):
|
||||
hits = find_all(lit.encode() + b"\x00", (".rdata",))
|
||||
print("\n--- %r : %d literal hit(s) ---" % (lit, len(hits)))
|
||||
for h in hits:
|
||||
xs = xrefs_to(h)
|
||||
if not xs:
|
||||
print(" @%#x NO xref (string only referenced by offset math / not a lea target)" % h)
|
||||
for frm, typ, fn, ent in xs:
|
||||
print(" @%#x xref from %#x %s in %s (%#x)" % (h, frm, typ, fn, ent))
|
||||
|
||||
for s in ("GOTO_DRAFT_ONLINE", "GOTO_DRAFT_OFFLINE", "GOTO_DRAFT_DISABLED",
|
||||
"GOTO_OFFLINE_TOURNAMENT", "GOTO_ONLINE_CHAMPIONS", "GOTO_OFFLINE_SEASON",
|
||||
"GOTO_ONLINE_SEASON"):
|
||||
whereis(s)
|
||||
|
||||
# the draft mode-node factories (reference fefifa::FUTOnlineDraftMode / OfflineMode)
|
||||
for a, lbl in [(0x18006b820, "FUN_18006b820 (FUTOnlineDraftMode node)"),
|
||||
(0x18006b960, "FUN_18006b960 (FUTDraftOfflineMode node)"),
|
||||
(0x18006baa0, "FUN_18006baa0 (FUTOfflineTournament node)"),
|
||||
(0x18006bd20, "FUN_18006bd20 (FUTOnlineTournament node)")]:
|
||||
d = dec(a)
|
||||
print("\n=== %s len=%d ===" % (lbl, len(d)))
|
||||
print(d)
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
print("QUERY_DONE")
|
||||
Reference in New Issue
Block a user