feat: add passive GAMELOG event logger for Spike 2 King Kong LE 0.97

Snapshot of the stern-event-agent work (as of 2026-10-12):

- gamelog.c: passive PAD mode logging bus events (game/ball/bonus/tilt),
  all named shots and all-players' scores to /dump/mode.log
- pad_mode_runtime.c: the SDK runtime + a GAMELOG section (passive
  stock-mode and award watching, gl_award_seq()/gl_last_award_id()),
  a per-edge switch logger to /dump/switch.log (switch_names.inc), and
  a passive Insider Connected gate; docs/runtime-patch.diff shows the
  exact changes vs the upstream runtime
- event_probe.c / event_read.py: event-bus measurement tooling for
  identifying bus event ids on another game
- ports/king_kong_le-0.97.port: 121 verified sites, 55 named shots, 6
  bus events (emulator-proven by the SDK repo authors)

Deployed and verified on the machine: events, shots, stock modes and
awards. The /dump/switch.log feature is implemented but NOT yet
deployed or verified, and the extra-ball award id (default 13) is
unconfirmed. See README.md for build/install/log usage and unfinished
work.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
2026-10-12 13:57:12 -04:00
co-authored by Claude Code
parent 9b41e58e19
commit abc881f913
12 changed files with 12455 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
{1, "QR SCANNER STATUS READY"},
{2, "QR SCANNER STATUS STRING"},
{3, "QR SCANNER STATUS ENCODED DATA"},
{4, "QR SCANNER STATUS MISSED STRING"},
{5, "QR SCANNER STATUS OVERRUN"},
{6, "QR SCANNER STATUS UNSUPPORTED_AP"},
{7, "QR SCANNER STATUS FIFO OVERRUN"},
{8, "QR SCANNER STATUS CONFIG"},
{9, "QR SCANNER STATUS ERROR"},
{10, "QR SCANNER STATUS ERR1"},
{11, "QR SCANNER STATUS ERR2"},
{12, "QR SCANNER STATUS ERR3"},
{13, "QR SCANNER STATUS ERR4"},
{14, "QR SCANNER STATUS ERR5"},
{15, "QR SCANNER STATUS ERR6"},
{16, "QR SCANNER STATUS NO READER"},
{17, "DIP 1"},
{18, "DIP 2"},
{19, "DIP 3"},
{20, "DIP 4"},
{21, "DIP 5"},
{22, "DIP 6"},
{23, "DIP 7"},
{24, "DIP 8"},
{25, "SERVICE SELECT"},
{26, "SERVICE PLUS"},
{27, "SERVICE MINUS"},
{28, "SERVICE BACK"},
{29, "HEADPHONE DETECT"},
{30, "HEADPHONE KIT CABLE DETECT"},
{31, "VOLUME ENCODER 1"},
{32, "VOLUME ENCODER 2"},
{33, "COIN DOOR INTERLOCK"},
{34, "LOCKDOWN BUTTON"},
{35, "TICKET NOTCH"},
{36, "START BUTTON"},
{37, "TOURNAMENT START BUTTON"},
{38, "TILT PENDULUM"},
{39, "LEFT COIN"},
{40, "CENTER COIN"},
{41, "RIGHT COIN"},
{42, "FOURTH COIN"},
{43, "FIFTH COIN"},
{44, "SIXTH COIN"},
{45, "SLAM TILT"},
{46, "X1"},
{47, "X2"},
{48, "X3"},
{49, "KONG CAVE VUK"},
{50, "X4"},
{51, "SHOOTER EXIT"},
{52, "UP LEFT FLIPPER EOS"},
{53, "UP RIGHT FLIPPER EOS"},
{54, "LEFT FLIPPER EOS"},
{55, "LEFT OUTLANE-LOWER"},
{56, "LEFT INLANE-INNER"},
{57, "RIGHT INLANE"},
{58, "RIGHT OUTLANE"},
{59, "LEFT OUTLANE-UPPER"},
{60, "LEFT INLANE-OUTER"},
{61, "RIVER EXIT"},
{62, "RIGHT FLIPPER BUTTON"},
{63, "LEFT FLIPPER BUTTON"},
{64, "UP RIGHT FLIPPER BUTTON"},
{65, "UP LEFT FLIPPER BUTTON"},
{66, "SHOOTER LANE"},
{67, "RIGHT SLINGSHOT"},
{68, "LEFT SLINGSHOT"},
{69, "RIGHT FLIPPER EOS"},
{70, "TROUGH 6"},
{71, "TROUGH 5"},
{72, "TROUGH 4"},
{73, "TROUGH 3"},
{74, "TROUGH 2"},
{75, "TROUGH 1"},
{76, "TROUGH JAM"},
{77, "RIVER ENTER"},
{78, "ISLAND TREASURE"},
{79, "U-TURN ROLLOVER"},
{80, "LEFT ORBIT SPINNER OPTO"},
{81, "POWERUP TARGET"},
{82, "KICK TARGET"},
{83, "TRAIN ENTER OPTO"},
{84, "TRAIN LOCK OPTO"},
{85, "KONG CAVE MADE"},
{86, "GONG HIT OPTO"},
{87, "KONG GONG VUK OPTO"},
{88, "RIGHT SPINNER OPTO"},
{89, "RIGHT ORBIT"},
{90, "CENTER RAMP MADE OPTO"},
{91, "LEFT ORBIT ENTRANCE OPTO"},
{92, "LEFT RAMP MADE OPTO"},
{93, "BIPLANE RAMP MADE OPTO"},
{94, "CENTER SHOT ENTER OPTO"},
{95, "2.42 MILLION BANANAS"},
{96, "4 BANK DROP 1-TOP"},
{97, "4 BANK DROP 2"},
{98, "4 BANK DROP 3"},
{99, "4 BANK DROP 4-BOT"},
{100, "PIT TARGET-TOP"},
{101, "PIT TARGET-MID"},
{102, "PIT TARGET-BOT"},
{103, "SPIDER MAGNET FIRED VIRTUAL"},
{104, "PUNCHBACK FIRED VIRTUAL"},