{
  "_notes": [
    "Compiled by Tom Collins for initial development/testing purposes.",
    "High Speed (Williams 1986)",
    "https://www.ipdb.org/machine.cgi?id=1176",
    "Williams System 11",
    "2025-09 v0.4: Tom Collins added to game_state"
  ],
  "_fileformat": 0.8,
  "_metadata": {
    "version": 4,
    "copyright": [
      "Copyright (C) 2017 by Tom Collins <tom@tomlogic.com>",
      "Copyright (C) 2025 by Tom Collins <tom@scorbit.io>"
    ],
    "license": "GNU Lesser General Public License v3.0",
    "platform": "williams-system11-40K",
    "roms": [
      "hs_l3",
      "hs_l4"
    ]
  },
  "game_state": {
    "credits": {
      "label": "Credits",
      "start": 1830,
      "encoding": "bcd"
    },
    "hideout_jackpot": {
      "label": "Hideout Jackpot",
      "start": 1904,
      "encoding": "bcd",
      "length": 4
    },
    "player_count": {
      "label": "Player Count",
      "short_label": "Players",
      "start": 172,
      "encoding": "int",
      "offset": 1,
      "special_values": {
        "256": "n/a"
      }
    },
    "current_player": {
      "label": "Current Player",
      "short_label": "P#",
      "start": 173,
      "encoding": "int",
      "offset": 1
    },
    "current_ball": {
      "label": "Ball",
      "start": 56,
      "encoding": "bcd",
      "mask": "0x0F",
      "special_values": {
        "0": "n/a"
      }
    },
    "match": {
      "label": "Match",
      "start": 56,
      "encoding": "bcd",
      "special_values": {
        "1": "n/a",
        "2": "n/a",
        "3": "n/a",
        "4": "n/a",
        "5": "n/a"
      }
    },
    "extra_balls": {
      "label": "Extra Balls",
      "start": 176,
      "encoding": "int"
    },
    "bonus": {
      "label": "Bonus",
      "_notes": "extracting value from lamp matrix col 6-8",
      "start": 21,
      "length": 3,
      "encoding": "bits",
      "values": [
        10000,
        10000,
        10000,
        0,
        0,
        0,
        0,
        0,
        1000,
        1000,
        1000,
        1000,
        1000,
        10000,
        10000,
        10000,
        0,
        0,
        0,
        0,
        1000,
        1000,
        1000,
        1000
      ]
    },
    "bonusX": {
      "label": "Bonus Multiplier",
      "_notes": [
        "extracting value from lamp matrix col 8",
        "use offset to set bit 8 for base 1X"
      ],
      "start": 23,
      "encoding": "bits",
      "suffix": "X",
      "offset": 256,
      "values": [
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1
      ]
    },
    "bonus_hold": {
      "label": "Bonus Hold",
      "_notes": "extracting value from lamp matrix col 8",
      "start": 23,
      "mask": "0x20",
      "encoding": "int",
      "special_values": {
        "0": "No",
        "32": "Yes"
      }
    },
    "tilt_warnings": {
      "label": "Tilt Warnings",
      "start": 179,
      "encoding": "int"
    },
    "scores": [
      {
        "label": "Player 1",
        "start": 512,
        "encoding": "bcd",
        "length": 4
      },
      {
        "label": "Player 2",
        "start": 516,
        "encoding": "bcd",
        "length": 4
      },
      {
        "label": "Player 3",
        "start": 520,
        "encoding": "bcd",
        "length": 4
      },
      {
        "label": "Player 4",
        "start": 524,
        "encoding": "bcd",
        "length": 4
      }
    ],
    "ball_count": {
      "label": "Ball Count",
      "start": 1928,
      "encoding": "bcd"
    },
    "max_credits": {
      "label": "Maximum Credits",
      "start": 1931,
      "encoding": "bcd"
    },
    "tilted": {
      "label": "Tilted",
      "start": 168,
      "encoding": "bool"
    },
    "game_over": {
      "label": "Game Over",
      "start": 169,
      "encoding": "bool"
    },
    "free_play": {
      "label": "Free Play",
      "start": 1942,
      "encoding": "bool"
    }
  },
  "high_scores": [
    {
      "label": "First Place",
      "short_label": "1st",
      "initials": {
        "start": 1847,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1831,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Second Place",
      "short_label": "2nd",
      "initials": {
        "start": 1850,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1835,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Third Place",
      "short_label": "3rd",
      "initials": {
        "start": 1853,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1839,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Fourth Place",
      "short_label": "4th",
      "initials": {
        "start": 1856,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1843,
        "encoding": "bcd",
        "length": 4
      }
    }
  ],
  "adjustments": {
    "Adjustments": {
      "01": {
        "label": "Auto Replay %",
        "start": 1920,
        "encoding": "bcd",
        "min": 4,
        "max": 50,
        "default": 10,
        "special_values": {
          "4": "Fixed Replay Scores"
        }
      },
      "02a": {
        "label": "Replay Start",
        "_notes": "if Adj01 > 4",
        "start": 1921,
        "encoding": "bcd",
        "min": 8,
        "max": 20,
        "default": 14,
        "scale": 100000
      },
      "03a": {
        "label": "Replay Levels",
        "_notes": "if Adj01 > 4",
        "start": 1922,
        "encoding": "bcd",
        "min": 0,
        "max": 3,
        "offset": 1
      },
      "02b": {
        "label": "Replay Level 1",
        "_notes": "if Adj01 == 4",
        "start": 1921,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 14,
        "scale": 100000,
        "special_values": {
          "0": "Off"
        }
      },
      "03b": {
        "label": "Replay Level 2",
        "_notes": "if Adj01 == 4",
        "start": 1922,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "scale": 100000,
        "special_values": {
          "0": "Off"
        }
      },
      "04b": {
        "label": "Replay Level 3",
        "_notes": "if Adj01 == 4",
        "start": 1923,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "scale": 100000,
        "special_values": {
          "0": "Off"
        }
      },
      "05b": {
        "label": "Replay Level 4",
        "_notes": "if Adj01 == 4",
        "start": 1924,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "scale": 100000,
        "special_values": {
          "0": "Off"
        }
      },
      "06": {
        "label": "Replay Award",
        "start": 1925,
        "encoding": "enum",
        "values": [
          "Credit",
          "Ball",
          "Audit",
          "Coil"
        ]
      },
      "07": {
        "label": "Special Award",
        "start": 1926,
        "encoding": "enum",
        "values": [
          "Credit",
          "Ball",
          "Score"
        ]
      },
      "08": {
        "label": "Match Feature",
        "start": 1927,
        "encoding": "enum",
        "values": [
          "On",
          "Off"
        ]
      },
      "09": {
        "label": "Balls Per Game",
        "start": 1928,
        "encoding": "bcd",
        "min": 1,
        "max": 9,
        "default": 3
      },
      "10": {
        "label": "Tilt Warnings",
        "start": 1929,
        "encoding": "bcd",
        "min": 1,
        "max": 5,
        "default": 3
      },
      "11": {
        "label": "Max Extra Balls",
        "start": 1930,
        "encoding": "bcd",
        "min": 0,
        "max": 9,
        "default": 4,
        "special_values": {
          "0": "None"
        }
      },
      "12": {
        "label": "Max Credits",
        "start": 1931,
        "encoding": "bcd",
        "min": 5,
        "max": 99,
        "default": 30
      },
      "13": {
        "label": "Highest Scores",
        "start": 1932,
        "encoding": "enum",
        "values": [
          "Off",
          "On"
        ],
        "default": 1
      },
      "14": {
        "label": "Backup High Score 1",
        "start": 1933,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 40,
        "scale": 100000
      },
      "15": {
        "label": "Backup High Score 2",
        "start": 1934,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 35,
        "scale": 100000
      },
      "16": {
        "label": "Backup High Score 3",
        "start": 1935,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 30,
        "scale": 100000
      },
      "17": {
        "label": "Backup High Score 4",
        "start": 1936,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 25,
        "scale": 100000
      },
      "18": {
        "label": "High Score 1 Credits",
        "start": 1937,
        "encoding": "bcd",
        "min": 0,
        "max": 10,
        "default": 3
      },
      "19": {
        "label": "High Score 2 Credits",
        "start": 1938,
        "encoding": "bcd",
        "min": 0,
        "max": 3,
        "default": 3
      },
      "20": {
        "label": "High Score 3 Credits",
        "start": 1939,
        "encoding": "bcd",
        "min": 0,
        "max": 3,
        "default": 3
      },
      "21": {
        "label": "High Score 4 Credits",
        "start": 1940,
        "encoding": "bcd",
        "min": 0,
        "max": 3,
        "default": 3
      },
      "22": {
        "label": "HSTD Reset Every",
        "start": 1941,
        "encoding": "bcd",
        "min": 0,
        "max": 99,
        "default": 6,
        "scale": 1000,
        "suffix": " plays",
        "special_values": {
          "0": "Off"
        }
      },
      "23": {
        "label": "Free Play",
        "start": 1942,
        "encoding": "enum",
        "values": [
          "No",
          "Yes"
        ]
      },
      "24": {
        "label": "Pricing",
        "start": 1943,
        "encoding": "bcd",
        "min": 0,
        "max": 16,
        "default": 1,
        "special_values": {
          "0": "Custom"
        }
      },
      "25": {
        "label": "Left Units",
        "start": 1944,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "26": {
        "label": "Center Units",
        "start": 1945,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "27": {
        "label": "Right Units",
        "start": 1946,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "28": {
        "label": "Units/Credit",
        "start": 1947,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "29": {
        "label": "Units/Bonus",
        "start": 1948,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "30": {
        "label": "Minimum Units",
        "start": 1949,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      },
      "31": {
        "label": "Freeway Start",
        "start": 1950,
        "encoding": "enum",
        "values": [
          "3-ball 50K, 5-ball 25K",
          "50K",
          "25K"
        ]
      },
      "32": {
        "label": "Freeway Memory",
        "start": 1951,
        "encoding": "enum",
        "values": [
          "Regular",
          "Easy",
          "Hard"
        ]
      },
      "33": {
        "label": "Eject Hole Spots",
        "start": 1952,
        "encoding": "enum",
        "values": [
          "3-Ball Yes, 5-ball No",
          "Yes",
          "No"
        ]
      },
      "34": {
        "label": "Ramp Spots",
        "start": 1953,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "35": {
        "label": "Light Special",
        "start": 1954,
        "encoding": "enum",
        "values": [
          "3-Ball Reg, 5-ball Hard",
          "Easy",
          "Regular",
          "Hard",
          "Harder",
          "No"
        ]
      },
      "36": {
        "label": "Special Memory",
        "start": 1955,
        "encoding": "enum",
        "values": [
          "No",
          "Yes"
        ]
      },
      "37": {
        "label": "Police Light",
        "start": 1956,
        "encoding": "enum",
        "values": [
          "On",
          "Off"
        ]
      },
      "38": {
        "label": "Kickback Memory",
        "start": 1957,
        "encoding": "enum",
        "values": [
          "Easy",
          "Harder",
          "Regular",
          "Hard",
          "Easier"
        ]
      },
      "39": {
        "label": "Light Freeway",
        "start": 1958,
        "encoding": "enum",
        "values": [
          "Regular",
          "Hard"
        ]
      },
      "40": {
        "label": "Ramp Bonus Memory",
        "start": 1959,
        "encoding": "enum",
        "default": 1,
        "values": [
          "Yes",
          "No"
        ]
      },
      "41": {
        "label": "Extra Ball Memory",
        "start": 1960,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "42": {
        "label": "Stoplight Targets",
        "start": 1961,
        "encoding": "enum",
        "values": [
          "Regular",
          "Easy"
        ]
      },
      "43": {
        "label": "Freeway Timer",
        "start": 1962,
        "encoding": "enum",
        "values": [
          "Regular",
          "Easy",
          "Hard"
        ]
      },
      "44": {
        "label": "Siren Style",
        "start": 1963,
        "encoding": "enum",
        "values": [
          "USA",
          "Euro"
        ]
      },
      "45": {
        "label": "Attract Police Light",
        "start": 1964,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "46": {
        "label": "Attract Starter",
        "start": 1965,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "47": {
        "label": "Attract Sound",
        "start": 1966,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "48": {
        "label": "Game Over Music",
        "start": 1967,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "49": {
        "label": "Custom Message",
        "start": 1968,
        "encoding": "enum",
        "values": [
          "On",
          "Off"
        ]
      },
      "49a": {
        "label": "Custom Msg Line 1",
        "encoding": "ch",
        "_notes": "default uses 'o' (0x6F) for hyphen",
        "start": 1972,
        "length": 14,
        "default": "RUN THE LIGHTo"
      },
      "49b": {
        "label": "Custom Msg Line 2",
        "encoding": "ch",
        "start": 1986,
        "length": 14,
        "default": "AND GET AWAYoo"
      },
      "49c": {
        "label": "Custom Msg Line 3",
        "encoding": "ch",
        "_notes": "default byte 0xC4 is D (0x44) with period (0x80)",
        "start": 2000,
        "length": 14,
        "default": "AT HIGH SPEE\u00c4 "
      },
      "50": {
        "label": "Switch Alarm Knocker",
        "start": 1969,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "51": {
        "label": "Unused Adjustment",
        "start": 1970,
        "encoding": "enum",
        "values": [
          "",
          ""
        ],
        "_notes": "select 0/1, both show blank"
      },
      "52": {
        "label": "Unused Adjustment",
        "start": 1971,
        "encoding": "bcd",
        "min": 0,
        "max": 99
      }
    }
  },
  "audits": {
    "Audits": {
      "01": {
        "start": 1700,
        "encoding": "bcd",
        "length": 3,
        "label": "Left Coins"
      },
      "02": {
        "start": 1704,
        "encoding": "bcd",
        "length": 3,
        "label": "Center Coins"
      },
      "03": {
        "start": 1708,
        "encoding": "bcd",
        "length": 3,
        "label": "Right Coins"
      },
      "04": {
        "start": 1712,
        "encoding": "bcd",
        "length": 3,
        "label": "Paid Credits"
      },
      "05": {
        "start": 1716,
        "encoding": "bcd",
        "length": 3,
        "label": "Total Plays"
      },
      "06": {
        "start": 1720,
        "encoding": "bcd",
        "length": 3,
        "label": "Total Free"
      },
      "08": {
        "start": 1724,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay Awards"
      },
      "10": {
        "start": 1728,
        "encoding": "bcd",
        "length": 3,
        "label": "Special Awards"
      },
      "12": {
        "start": 1732,
        "encoding": "bcd",
        "length": 3,
        "label": "Match Awards"
      },
      "13": {
        "start": 1736,
        "encoding": "bcd",
        "length": 3,
        "label": "HSTD Credits"
      },
      "15": {
        "start": 1740,
        "encoding": "bcd",
        "length": 3,
        "label": "Extra Balls"
      },
      "18": {
        "start": 1744,
        "encoding": "bcd",
        "length": 3,
        "label": "Minutes of Play"
      },
      "19": {
        "start": 1748,
        "encoding": "bcd",
        "length": 3,
        "label": "Balls Played"
      },
      "20": {
        "start": 1752,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 1 Awards"
      },
      "21": {
        "start": 1756,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 2 Awards"
      },
      "22": {
        "start": 1760,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 3 Awards"
      },
      "23": {
        "start": 1764,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 4 Awards"
      },
      "24": {
        "start": 1768,
        "encoding": "bcd",
        "length": 3,
        "label": "1 Player Games"
      },
      "25": {
        "start": 1772,
        "encoding": "bcd",
        "length": 3,
        "label": "2 Player Games"
      },
      "26": {
        "start": 1776,
        "encoding": "bcd",
        "length": 3,
        "label": "3 Player Games"
      },
      "27": {
        "start": 1780,
        "encoding": "bcd",
        "length": 3,
        "label": "4 Player Games"
      },
      "28": {
        "start": 1784,
        "encoding": "bcd",
        "length": 3,
        "label": "Burn in Cycles"
      },
      "29": {
        "start": 1788,
        "encoding": "bcd",
        "length": 3,
        "label": "Yellow Lit"
      },
      "30": {
        "start": 1792,
        "encoding": "bcd",
        "length": 3,
        "label": "Red Lit"
      },
      "31": {
        "start": 1796,
        "encoding": "bcd",
        "length": 3,
        "label": "Multiballs"
      },
      "32": {
        "start": 1800,
        "encoding": "bcd",
        "length": 3,
        "label": "Jackpot Won"
      },
      "33": {
        "start": 1804,
        "encoding": "bcd",
        "length": 3,
        "label": "Special Lit"
      },
      "34": {
        "start": 1808,
        "encoding": "bcd",
        "length": 3,
        "label": "Freeway E.B. Lit"
      },
      "35": {
        "start": 1812,
        "encoding": "bcd",
        "length": 3,
        "label": "Ramp Shot"
      },
      "36": {
        "start": 1816,
        "encoding": "bcd",
        "length": 3,
        "label": "Jackpot E.B. Lit"
      },
      "37": {
        "start": 1820,
        "encoding": "bcd",
        "length": 3,
        "label": "Kickback Fired"
      },
      "38": {
        "start": 1824,
        "encoding": "bcd",
        "length": 3,
        "label": "Attract Mode Cycles"
      },
      "39": {
        "start": 1859,
        "encoding": "bcd",
        "length": 3,
        "label": "HSTD Reset Counter"
      },
      "40": {
        "start": 1879,
        "encoding": "bcd",
        "length": 3,
        "label": "Auto Replay Data 1"
      },
      "41": {
        "start": 1876,
        "encoding": "bcd",
        "length": 3,
        "label": "Auto Replay Data 2"
      },
      "42": {
        "start": 1873,
        "encoding": "bcd",
        "length": 3,
        "label": "Auto Replay Data 3"
      },
      "43": {
        "start": 1870,
        "encoding": "bcd",
        "length": 3,
        "label": "Auto Replay Data 4"
      },
      "44": {
        "start": 1867,
        "encoding": "bcd",
        "length": 3,
        "label": "Auto Replay Data 5"
      }
    }
  },
  "checksum8": [
    {
      "start": 1696,
      "end": 1827,
      "groupings": 4,
      "label": "Audits"
    },
    {
      "start": 1830,
      "checksum": 1901,
      "label": "Credits"
    },
    {
      "start": 1864,
      "end": 1882,
      "label": "Auto Replay Data"
    }
  ]
}
