#!/bin/sh # Native proof for the FIFA 17 kit milestone: does the client now hold resident # cardtype-7 records, and are the served kit ids among them? # # Auto-detects the live FIFA17.exe pid and walks the resident item map at # owner+0x160c8 (root +0x160d8, key = wire instance id at node+0x20, record at # node+0x28, count at owner+0x160e8). Read-only; never writes to the process. # # BEFORE this fix the map held 22 records with cardtype histogram {1:18, 2:1, # 4:2, 10:1} and both kit ids ABSENT. set -u PID=$(for p in /proc/[0-9]*; do [ "$(cat "$p/comm" 2>/dev/null)" = "FIFA17.exe" ] && echo "${p#/proc/}" done | head -1) if [ -z "$PID" ]; then echo " FIFA17.exe is not running - launch the game and enter FUT first" exit 1 fi echo " live FIFA17 pid = $PID" echo cd "$(dirname "$0")" || exit 1 python3 probe_map2.py "$PID" 100004873 100004874 100004870 echo echo " ================ squad survival + slot indices ================" # The kit milestone is only real if the REST of the squad survives with it. # A populated `squad.actives` was once seen to leave the map holding just the # 2 kits with a fully null 23-slot player vector and an empty starting 11, so # the player-vector fill below is a PASS/FAIL gate, not decoration. # # The club-item slot indices are the other half: the parser writes element i to # slot r15d+i, and r15d is scratch other atom handlers clobber. Kits landing # somewhere other than slots 0 and 1 means the index did not start at zero. python3 probe_resident_fields.py "$PID"