{
  "_notes": [
    "Compiled by Francis De Brabandere.",
    "Laser Cue (Williams 1984)",
    "Using space for game audits 1-6 to store high scores 2-4.",
    "Derived from system7-generic.map.json."
  ],
  "_fileformat": 0.8,
  "_metadata": {
    "version": 4,
    "copyright": [
      "Copyright (C) 2024 by Francis De Brabandere <francisdb@gmail.com>",
      "Copyright (C) 2025 by Tom Collins <tom@scorbit.io>"
    ],
    "license": "GNU Lesser General Public License v3.0",
    "platform": "williams-system7-10K",
    "roms": [
      "lsrcu_l2"
    ]
  },
  "game_state": {
    "credits": {
      "label": "Credits",
      "start": "0x016E",
      "length": 2,
      "encoding": "bcd"
    },
    "scores": [
      {
        "label": "Player 1",
        "start": "0x38",
        "length": 4,
        "encoding": "bcd"
      },
      {
        "label": "Player 2",
        "start": "0x3C",
        "length": 4,
        "encoding": "bcd"
      },
      {
        "label": "Player 3",
        "start": "0x40",
        "length": 4,
        "encoding": "bcd"
      },
      {
        "label": "Player 4",
        "start": "0x44",
        "length": 4,
        "encoding": "bcd"
      }
    ],
    "tilted": {
      "_notes": "2 when tilted",
      "label": "Tilted",
      "start": "0xC8",
      "encoding": "bool"
    },
    "tilt_warnings": {
      "label": "Tilt Warnings",
      "start": "0xD3",
      "encoding": "int"
    },
    "game_over": {
      "label": "Game Over",
      "start": "0xC9",
      "encoding": "bool"
    },
    "playfield_valid": {
      "_notes": "0 with ball in shooter lane, 4 when valid?",
      "label": "Playfield Valid",
      "start": "0xD6",
      "encoding": "int"
    },
    "self_test": {
      "label": "Self Test",
      "start": "0xCB",
      "encoding": "int"
    },
    "player_count": {
      "label": "Players",
      "start": "0xCC",
      "encoding": "int",
      "offset": 1
    },
    "current_player": {
      "label": "Current Player",
      "start": "0xCD",
      "encoding": "int",
      "offset": 1
    },
    "current_ball": {
      "label": "Ball",
      "start": "0x58",
      "encoding": "bcd",
      "mask": "0x0F"
    },
    "ball_count": {
      "label": "Ball Count",
      "start": "0x0193",
      "length": 2,
      "encoding": "bcd"
    },
    "extra_balls": {
      "label": "Extra Balls",
      "start": "0xD0",
      "encoding": "int"
    },
    "bonus_time": {
      "_notes": "0xFF if in Bonus Ball Time at end of game; countdown is bcd at 0x0C",
      "label": "Bonus Time",
      "start": "0xCA",
      "encoding": "int"
    },
    "max_credits": {
      "label": "Maximum Credits",
      "start": "0x01AB",
      "length": 2,
      "encoding": "bcd"
    },
    "free_play": {
      "_notes": "free play enabled when max_credits==0",
      "label": "Free Play",
      "start": "0x01AB",
      "length": 2,
      "encoding": "bool",
      "invert": true
    }
  },
  "high_scores": [
    {
      "label": "First Place",
      "short_label": "1st",
      "score": {
        "start": "0x0166",
        "encoding": "bcd",
        "length": 8
      }
    },
    {
      "label": "Second Place",
      "short_label": "2nd",
      "score": {
        "start": "0x012E",
        "encoding": "bcd",
        "length": 8
      }
    },
    {
      "label": "Third Place",
      "short_label": "3rd",
      "score": {
        "start": "0x0136",
        "encoding": "bcd",
        "length": 8
      }
    },
    {
      "label": "Fourth Place",
      "short_label": "4th",
      "score": {
        "start": "0x013E",
        "encoding": "bcd",
        "length": 8
      }
    }
  ],
  "audits": {
    "Standard Audits": {
      "01": {
        "label": "Coins, left chute",
        "start": "0x0102",
        "length": 4,
        "encoding": "bcd"
      },
      "02": {
        "label": "Coins, center chute",
        "start": "0x0106",
        "length": 4,
        "encoding": "bcd"
      },
      "03": {
        "label": "Coins, right chute",
        "start": "0x010A",
        "length": 4,
        "encoding": "bcd"
      },
      "04": {
        "label": "Total Paid Credits",
        "start": "0x010E",
        "length": 4,
        "encoding": "bcd"
      },
      "05": {
        "label": "Special Credits",
        "start": "0x0112",
        "length": 4,
        "encoding": "bcd"
      },
      "06": {
        "label": "Replay Score Credits",
        "start": "0x0116",
        "length": 4,
        "encoding": "bcd"
      },
      "07": {
        "label": "Match Credits",
        "start": "0x011A",
        "length": 4,
        "encoding": "bcd"
      },
      "08": {
        "label": "Total Credits",
        "start": "0x011E",
        "length": 4,
        "encoding": "bcd"
      },
      "09": {
        "label": "Total Extra Balls",
        "start": "0x0122",
        "length": 4,
        "encoding": "bcd"
      },
      "10": {
        "label": "Ball Time",
        "start": "0x0126",
        "length": 4,
        "encoding": "bcd",
        "units": "minutes"
      },
      "11": {
        "label": "Total Balls Played",
        "start": "0x012A",
        "length": 4,
        "encoding": "bcd"
      },
      "12": {
        "label": "Current HSTD",
        "start": "0x0166",
        "encoding": "bcd",
        "length": 8
      },
      "13": {
        "label": "HSTD Credits",
        "start": "0x014E",
        "length": 4,
        "encoding": "bcd"
      },
      "14": {
        "label": "Replay 1 Awarded",
        "start": "0x0152",
        "length": 4,
        "encoding": "bcd"
      },
      "15": {
        "label": "Replay 2 Awarded",
        "start": "0x0156",
        "length": 4,
        "encoding": "bcd"
      },
      "16": {
        "label": "Replay 3 Awarded",
        "start": "0x015A",
        "length": 4,
        "encoding": "bcd"
      },
      "17": {
        "label": "Replay 4 Awarded",
        "start": "0x015E",
        "length": 4,
        "encoding": "bcd"
      }
    },
    "Game Audits": {
      "48": {
        "label": "Unused",
        "start": "0x0146",
        "length": 4,
        "encoding": "bcd"
      },
      "49": {
        "label": "Burn-In Cycles?",
        "start": "0x014A",
        "length": 4,
        "encoding": "bcd"
      },
      "99": {
        "label": "CMOS Checksum",
        "start": "0x017D",
        "length": 4,
        "encoding": "int",
        "special_values": {
          "45733": "valid"
        }
      }
    }
  },
  "adjustments": {
    "Standard Adjustments": {
      "13": {
        "label": "Backup HSTD",
        "start": "0x0181",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "14": {
        "label": "Replay 1 Score",
        "start": "0x0183",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "15": {
        "label": "Replay 2 Score",
        "start": "0x0185",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "16": {
        "label": "Replay 3 Score",
        "start": "0x0187",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "17": {
        "label": "Replay 4 Score",
        "start": "0x0189",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "18": {
        "label": "Maximum Credits",
        "start": "0x01AB",
        "length": 2,
        "encoding": "bcd",
        "special_values": {
          "0": "Free Play"
        }
      },
      "19": {
        "label": "Pricing Control",
        "start": "0x01AD",
        "length": 2,
        "encoding": "bcd",
        "min": 0,
        "max": 8,
        "special_values": {
          "0": "Manual",
          "1": "1/$0.25, 4/$1",
          "2": "1/1DM, 3/2DM, 10/5DM",
          "3": "1/$0.50, 3/$1, 6/$2",
          "4": "1/2F, 3/5F only, 8/10F only",
          "5": "1/$0.50, 2/$0.75, 3/$1",
          "6": "1/25 Cent, 4/Guilder",
          "7": "1/5F, 2/10F or 1/10F, 2/20F",
          "8": "1/10F"
        }
      },
      "20": {
        "label": "Left Coin Slot Multiplier",
        "start": "0x01AF",
        "length": 2,
        "encoding": "bcd"
      },
      "21": {
        "label": "Center Coin Slot Multiplier",
        "start": "0x01B1",
        "length": 2,
        "encoding": "bcd"
      },
      "22": {
        "label": "Right Coin Slot Multiplier",
        "start": "0x01B3",
        "length": 2,
        "encoding": "bcd"
      },
      "23": {
        "label": "Coin Units Required for Credit",
        "start": "0x01B5",
        "length": 2,
        "encoding": "bcd"
      },
      "24": {
        "label": "Coin Units Bonus Point",
        "start": "0x01B7",
        "length": 2,
        "encoding": "bcd"
      },
      "25": {
        "label": "Minimum Coin Units",
        "start": "0x01B9",
        "length": 2,
        "encoding": "bcd"
      },
      "26": {
        "label": "Match",
        "start": "0x018B",
        "length": 2,
        "encoding": "enum",
        "values": [
          "On",
          "Off"
        ]
      },
      "27": {
        "label": "Special Awards",
        "start": "0x018D",
        "length": 2,
        "encoding": "enum",
        "values": [
          "Credit",
          "Extra/Bonus Ball",
          "Points"
        ]
      },
      "28": {
        "label": "Replay Award",
        "start": "0x018F",
        "length": 2,
        "encoding": "enum",
        "values": [
          "Credit",
          "Extra/Bonus Ball"
        ]
      },
      "29": {
        "label": "Tilt Warnings",
        "start": "0x0191",
        "length": 2,
        "encoding": "bcd"
      },
      "30": {
        "label": "Number of Balls",
        "start": "0x0193",
        "length": 2,
        "encoding": "bcd"
      },
      "40": {
        "label": "HSTD Credits",
        "start": "0x01A7",
        "length": 2,
        "encoding": "bcd"
      },
      "41": {
        "label": "Maximum Extra Balls",
        "start": "0x01A9",
        "length": 2,
        "encoding": "bcd"
      }
    },
    "Game Adjustments": {
      "31": {
        "label": "Reset Multiplier on Next Ball",
        "start": "0x0195",
        "length": 2,
        "encoding": "enum",
        "values": [
          "N/A",
          "X2",
          "X3",
          "X4",
          "X5",
          "X7",
          "X10",
          "X15",
          "X20"
        ],
        "min": 1,
        "max": 8
      },
      "32a": {
        "label": "Double Ball",
        "start": "0x0197",
        "length": 1,
        "encoding": "enum",
        "values": [
          "disabled",
          "enabled"
        ]
      },
      "32b": {
        "label": "Special",
        "start": "0x0198",
        "length": 1,
        "encoding": "enum",
        "values": [
          "disabled",
          "award on X10 only",
          "award on X15 only",
          "award on X20 only"
        ]
      },
      "33": {
        "label": "Extra Ball Time",
        "start": "0x0199",
        "length": 2,
        "encoding": "bcd",
        "offset": 15,
        "min": 0,
        "max": 25,
        "units": "seconds"
      },
      "34": {
        "label": "Reset Back Drop-Targets",
        "start": "0x019B",
        "length": 2,
        "encoding": "enum",
        "values": [
          "up to #1, #9 ball-target",
          "up to #2, #10 ball-target",
          "up to #3, #11 ball-target"
        ]
      },
      "35": {
        "label": "Special/Extra Ball lamp memory",
        "start": "0x019D",
        "length": 2,
        "encoding": "enum",
        "values": [
          "none",
          "extra ball",
          "special",
          "both"
        ]
      },
      "36": {
        "label": "Background Sound",
        "start": "0x019F",
        "length": 2,
        "encoding": "enum",
        "values": [
          "no",
          "yes"
        ]
      },
      "37": {
        "label": "2nd Backup HSTD",
        "start": "0x01A1",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "38": {
        "label": "3rd Backup HSTD",
        "start": "0x01A3",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      },
      "39": {
        "label": "4th Backup HSTD",
        "start": "0x01A5",
        "length": 2,
        "encoding": "bcd",
        "scale": 100000
      }
    }
  }
}
