wip: checkpoint FIFA 17 SBC research for Windows migration
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""DIMENSION 4 q3: do the draft/tournament MODE-STATE literals have native gating
|
||||
callers, or are they inert descriptor names driven from the script layer?
|
||||
|
||||
Hypothesis: like the Seasons CompetitionManager setters (FUN_180101680/1801016c0,
|
||||
zero callers), the draft/tournament mode nodes are named descriptors with no native
|
||||
entry-gate; entry is decided in the packed front-end. Test by reading the xref
|
||||
callers of each mode-state literal and decompiling the first native caller of each.
|
||||
|
||||
Control: 'NOSEASONS' xref is known (FUN_180057330). Re-confirm the Seasons setters
|
||||
have zero callers as the reference negative.
|
||||
"""
|
||||
import traceback
|
||||
try:
|
||||
def xr(a, label):
|
||||
print("\n--- %s @ %#x ---" % (label, a))
|
||||
xs = xrefs_to(a)
|
||||
for frm, typ, fn, ent in xs:
|
||||
print(" from %#x %s in %s (%#x)" % (frm, typ, fn, ent))
|
||||
return xs
|
||||
|
||||
xr(0x1801fbb50, "fefifa::FUTDraftOfflineMode")
|
||||
xr(0x1801fbbc8, "fefifa::FUTOnlineDraftMode")
|
||||
xr(0x180209a70, "CentralDraftModeOffline")
|
||||
xr(0x180209ae0, "CentralDraftModeOnline")
|
||||
xr(0x1801ebca0, "draftentry")
|
||||
xr(0x1801fbbe8, "fefifa::FUTOfflineTournament")
|
||||
xr(0x1801fbc08, "fefifa::FUTOnlineTournament")
|
||||
xr(0x180218f18, "FUT::TournamentInfo")
|
||||
xr(0x18021f870, "DraftMode(0x18021f870)")
|
||||
xr(0x1801fbbd9, "DraftMode(0x1801fbbd9)")
|
||||
|
||||
# Seasons CompetitionManager control: setters + singleton
|
||||
print("\n=== CONTROL: Seasons CompetitionManager setters callers ===")
|
||||
for a in (0x180101680, 0x1801016c0):
|
||||
print("callers(%#x) = %s" % (a, callers(a)))
|
||||
print("xrefs_to DAT_1802e6328 (CompetitionManager singleton):")
|
||||
for frm, typ, fn, ent in xrefs_to(0x1802e6328):
|
||||
print(" from %#x %s in %s (%#x)" % (frm, typ, fn, ent))
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
print("QUERY_DONE")
|
||||
Reference in New Issue
Block a user