{
  "_notes": [
    "Transporter the Rescue (Bally 1989)",
    "https://www.ipdb.org/machine.cgi?id=2630",
    "Williams System 11B",
    "TODO: verify last_game offsets, list values for adj-11, verify adj-50",
    "2025-09 v0.4: Tom Collins added to game_state"
  ],
  "_fileformat": 0.8,
  "_metadata": {
    "version": 4,
    "copyright": [
      "Copyright (C) 2018 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-48K",
    "roms": [
      "tsptr_l3"
    ]
  },
  "game_state": {
    "credits": {
      "label": "Credits",
      "start": 1806,
      "length": 1,
      "encoding": "bcd"
    },
    "current_player": {
      "label": "Current Player",
      "short_label": "Players",
      "start": 169,
      "encoding": "int",
      "offset": 1
    },
    "player_count": {
      "label": "Player Count",
      "short_label": "P#",
      "start": 168,
      "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"
      }
    },
    "playfield_mult": {
      "label": "Playfield Multiplier",
      "start": 187,
      "encoding": "int",
      "suffix": "X"
    },
    "bonus": {
      "label": "Bonus",
      "_notes": "called Orion Bonus in game",
      "start": 231,
      "length": 2,
      "encoding": "bcd",
      "scale": 100
    },
    "bonusX": {
      "label": "Bonus Multiplier",
      "_notes": [
        "extracting value from lamp matrix col 2",
        "use offset to set bit 8 for base 1X"
      ],
      "start": 17,
      "encoding": "bits",
      "suffix": "X",
      "offset": 256,
      "values": [
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1
      ]
    },
    "xcel_value": {
      "label": "X-Cellerator Value",
      "_notes": "extracting value from lamp matrix col 6-7",
      "start": 21,
      "length": 2,
      "encoding": "bits",
      "values": [
        10000,
        10000,
        100000,
        100000,
        100000,
        100000,
        500000,
        0,
        10000,
        10000,
        10000,
        10000,
        10000,
        10000,
        10000,
        10000
      ]
    },
    "jackpot": {
      "label": "Jackpot Bonus",
      "start": 1488,
      "length": 3,
      "encoding": "bcd",
      "scale": 100
    },
    "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": 164,
      "encoding": "bool"
    },
    "game_over": {
      "label": "Game Over",
      "start": 165,
      "encoding": "bool"
    },
    "extra_balls": {
      "label": "Extra Balls",
      "start": 172,
      "encoding": "int"
    },
    "tilt_warnings": {
      "label": "Tilt Warnings",
      "start": 175,
      "encoding": "int"
    },
    "free_play": {
      "label": "Free Play",
      "start": 1942,
      "encoding": "bool"
    }
  },
  "high_scores": [
    {
      "label": "First Place",
      "short_label": "1st",
      "initials": {
        "start": 1823,
        "encoding": "ch",
        "length": 3,
        "_notes": "slash (/) used for space ( ) in all initials"
      },
      "score": {
        "start": 1807,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Second Place",
      "short_label": "2nd",
      "initials": {
        "start": 1826,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1811,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Third Place",
      "short_label": "3rd",
      "initials": {
        "start": 1829,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1815,
        "encoding": "bcd",
        "length": 4
      }
    },
    {
      "label": "Fourth Place",
      "short_label": "4th",
      "initials": {
        "start": 1832,
        "encoding": "ch",
        "length": 3
      },
      "score": {
        "start": 1819,
        "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": "bcd",
        "min": 0,
        "max": 50,
        "default": 10,
        "suffix": "%",
        "special_values": {
          "0": "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": 12,
        "scale": 250,
        "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": "Spinner On Value",
        "min": 1,
        "max": 9,
        "start": 1950,
        "encoding": "bcd",
        "suffix": "K"
      },
      "32": {
        "label": "Left Kickback",
        "start": 1951,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "33": {
        "label": "Xporter Memory",
        "start": 1952,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "34": {
        "label": "Special Memory",
        "start": 1953,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "35": {
        "label": "Rescue Memory",
        "start": 1954,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "36": {
        "label": "Xporter Bonus Time",
        "start": 1955,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "37": {
        "label": "Top Lane Memory",
        "start": 1956,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "38": {
        "label": "Extra Ball Memory",
        "start": 1957,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "39": {
        "label": "Jackpot Adv. Value",
        "min": 1,
        "max": 99,
        "start": 1958,
        "encoding": "bcd",
        "suffix": "K"
      },
      "40": {
        "label": "Easy Lock (via Ret Lns)",
        "start": 1959,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "41": {
        "label": "Top Lane Change",
        "start": 1960,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "42": {
        "label": "Consol Extra Ball",
        "start": 1961,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "43": {
        "label": "Extra Ball Percent",
        "start": 1962,
        "encoding": "bcd",
        "suffix": "%",
        "min": 0,
        "max": 99,
        "special_values": {
          "0": "Off"
        }
      },
      "44": {
        "label": "Extra Ball On",
        "start": 1963,
        "encoding": "enum",
        "default": 1,
        "values": [
          "4X",
          "5X",
          "1 after",
          "2 after"
        ]
      },
      "45": {
        "label": "Xcel Memory",
        "start": 1964,
        "encoding": "enum",
        "values": [
          "Yes",
          "No"
        ]
      },
      "46": {
        "label": "Not Used",
        "start": 1965,
        "encoding": "int"
      },
      "47": {
        "label": "Consolation Time",
        "start": 1966,
        "encoding": "bcd",
        "suffix": " seconds"
      },
      "48": {
        "label": "Attract Sounds",
        "start": 1967,
        "encoding": "enum",
        "values": [
          "None",
          "Less",
          "A Lot"
        ]
      },
      "49": {
        "label": "Custom Message",
        "start": 1968,
        "encoding": "enum",
        "values": [
          "On",
          "Off"
        ]
      },
      "49a": {
        "label": "Custom Msg Line 1",
        "encoding": "ch",
        "_notes": "set high bit for period after letter",
        "start": 1972,
        "length": 16,
        "default": " G E T    M  E  "
      },
      "49b": {
        "label": "Custom Msg Line 2",
        "encoding": "ch",
        "start": 1988,
        "length": 16,
        "default": "  OUTTA   HERE  "
      },
      "49c": {
        "label": "Custom Msg Line 3",
        "encoding": "ch",
        "start": 2004,
        "length": 16,
        "default": "BEAM ME UP BALLY"
      },
      "50": {
        "label": "Display AU 01 - 04",
        "_notes": "TODO: check enum values",
        "start": 1969,
        "encoding": "enum",
        "values": [
          "Yes",
          "Value",
          "No"
        ]
      },
      "51": {
        "label": "Unused Adjustment",
        "start": 1970,
        "encoding": "int"
      },
      "52": {
        "label": "Unused Adjustment",
        "start": 1971,
        "encoding": "int"
      }
    }
  },
  "audits": {
    "Audits": {
      "01": {
        "start": 1631,
        "encoding": "bcd",
        "length": 3,
        "label": "Left Coins"
      },
      "02": {
        "start": 1635,
        "encoding": "bcd",
        "length": 3,
        "label": "Center Coins"
      },
      "03": {
        "start": 1639,
        "encoding": "bcd",
        "length": 3,
        "label": "Right Coins"
      },
      "04": {
        "start": 1643,
        "encoding": "bcd",
        "length": 3,
        "label": "Paid Credits"
      },
      "05": {
        "start": 1647,
        "encoding": "bcd",
        "length": 3,
        "label": "Total Plays"
      },
      "06": {
        "start": 1651,
        "encoding": "bcd",
        "length": 3,
        "label": "Total Free"
      },
      "08": {
        "start": 1655,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay Awards"
      },
      "10": {
        "start": 1659,
        "encoding": "bcd",
        "length": 3,
        "label": "Special Awards"
      },
      "12": {
        "start": 1663,
        "encoding": "bcd",
        "length": 3,
        "label": "Match Awards"
      },
      "13": {
        "start": 1667,
        "encoding": "bcd",
        "length": 3,
        "label": "HSTD Credits"
      },
      "15": {
        "start": 1671,
        "encoding": "bcd",
        "length": 3,
        "label": "Extra Balls"
      },
      "18": {
        "start": 1675,
        "encoding": "bcd",
        "length": 3,
        "label": "Minutes of Play"
      },
      "19": {
        "start": 1679,
        "encoding": "bcd",
        "length": 3,
        "label": "Balls Played"
      },
      "20": {
        "start": 1683,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 1 Awards"
      },
      "21": {
        "start": 1687,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 2 Awards"
      },
      "22": {
        "start": 1691,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 3 Awards"
      },
      "23": {
        "start": 1695,
        "encoding": "bcd",
        "length": 3,
        "label": "Replay 4 Awards"
      },
      "24": {
        "start": 1699,
        "encoding": "bcd",
        "length": 3,
        "label": "1 Player Games"
      },
      "25": {
        "start": 1703,
        "encoding": "bcd",
        "length": 3,
        "label": "2 Player Games"
      },
      "26": {
        "start": 1707,
        "encoding": "bcd",
        "length": 3,
        "label": "3 Player Games"
      },
      "27": {
        "start": 1711,
        "encoding": "bcd",
        "length": 3,
        "label": "4 Player Games"
      },
      "28": {
        "start": 1715,
        "encoding": "bcd",
        "length": 3,
        "label": "Burn in Cycles"
      },
      "29": {
        "start": 1719,
        "encoding": "bcd",
        "length": 3,
        "label": "Made Multiball"
      },
      "30": {
        "start": 1723,
        "encoding": "bcd",
        "length": 3,
        "label": "Made Jackpot"
      },
      "31": {
        "start": 1727,
        "encoding": "bcd",
        "length": 3,
        "label": "Made Kickback"
      },
      "32": {
        "start": 1731,
        "encoding": "bcd",
        "length": 3,
        "label": "Made Bonus 5X"
      },
      "33": {
        "start": 1735,
        "encoding": "bcd",
        "length": 3,
        "label": "Xporter 1 Mil. Lit"
      },
      "34": {
        "start": 1739,
        "encoding": "bcd",
        "length": 3,
        "label": "Made Xporter 1 Mil."
      },
      "35": {
        "start": 1743,
        "encoding": "bcd",
        "length": 3,
        "label": "Excellerator"
      },
      "36": {
        "start": 1747,
        "encoding": "bcd",
        "length": 3,
        "label": "Excellerator 250K Made"
      },
      "37": {
        "start": 1751,
        "encoding": "bcd",
        "length": 3,
        "label": "Extra Ball Lit"
      },
      "38": {
        "start": 1755,
        "encoding": "bcd",
        "length": 3,
        "label": "Rescue Bonus Made"
      },
      "39": {
        "start": 1835,
        "encoding": "bcd",
        "length": 3,
        "label": "HSTD Reset Counter"
      },
      "40": {
        "start": 1759,
        "encoding": "bcd",
        "length": 3,
        "label": "0.0-0.4 Mil. Score"
      },
      "41": {
        "start": 1763,
        "encoding": "bcd",
        "length": 3,
        "label": "0.5-0.9 Mil. Score"
      },
      "42": {
        "start": 1767,
        "encoding": "bcd",
        "length": 3,
        "label": "1.0-1.4 Mil. Score"
      },
      "43": {
        "start": 1771,
        "encoding": "bcd",
        "length": 3,
        "label": "1.5-1.9 Mil. Score"
      },
      "44": {
        "start": 1775,
        "encoding": "bcd",
        "length": 3,
        "label": "2.0-2.9 Mil. Score"
      },
      "45": {
        "start": 1779,
        "encoding": "bcd",
        "length": 3,
        "label": "3.0-3.9 Mil. Score"
      },
      "46": {
        "start": 1783,
        "encoding": "bcd",
        "length": 3,
        "label": "4.0-4.9 Mil. Score"
      },
      "47": {
        "start": 1787,
        "encoding": "bcd",
        "length": 3,
        "label": "5.0-5.9 Mil. Score"
      },
      "48": {
        "start": 1791,
        "encoding": "bcd",
        "length": 3,
        "label": "6.0-7.9 Mil. Score"
      },
      "49": {
        "start": 1795,
        "encoding": "bcd",
        "length": 3,
        "label": "8.0-9.9 Mil. Score"
      },
      "50": {
        "start": 1799,
        "encoding": "bcd",
        "length": 3,
        "label": "10-99 Mil. Score"
      },
      "52": {
        "start": 1493,
        "encoding": "bcd",
        "length": 3,
        "label": "Left Drains"
      },
      "53": {
        "start": 1497,
        "encoding": "bcd",
        "length": 3,
        "label": "Right Drains"
      },
      "54": {
        "start": 1501,
        "encoding": "bcd",
        "length": 3,
        "label": "3 Plays/1$"
      }
    }
  },
  "checksum8": [
    {
      "start": 1627,
      "end": 1802,
      "groupings": 4,
      "label": "Audits"
    },
    {
      "start": 1493,
      "end": 1504,
      "groupings": 4,
      "label": "Audits Continued"
    },
    {
      "start": 1806,
      "checksum": 1915,
      "label": "Credits"
    }
  ]
}
