{
  "_notes": [
    "Bally MPU AS-2518-35 (with U6 System ROM: strekc.u6/strekd.u6)",
    "6-digit score display, Free Play (/10 scoring on 'd' ROMs)",
    "Oliver's ROMs: https://www.pinball4you.ch/okaegi/pro_soft.html",
    "Identical to system-rom-30.map.json other than platform/roms.",
    "KISS moved to a separate map due to changed 'final scores' locations.",
    "Game                          Mfg    Date   IPDB   OPDB",
    "----------------------------  -----  ----   ----   ----",
    "Paragon                       Bally  1979   1755    296",
    "Playboy                       Bally  1978   1823    175",
    "Supersonic                    Bally  1979   2455   1881",
    "Star Trek                     Bally  1979   2355    473",
    "Voltan Escapes Cosmic Doom    Bally  1979   2744    134",
    "Originally compiled by Francis De Brabandere."
  ],
  "_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": "bally-35-8K",
    "roms": [
      "paragonc",
      "paragond",
      "playboyc",
      "playboyd",
      "sstc",
      "sstd",
      "startrec",
      "startred",
      "voltanc",
      "voltand"
    ]
  },
  "game_state": {
    "credits": {
      "label": "Credits",
      "start": "0x02D5",
      "length": 2,
      "encoding": "bcd"
    },
    "scores": [
      {
        "label": "Player 1",
        "start": "0x021E",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Player 2",
        "start": "0x0224",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Player 3",
        "start": "0x022A",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Player 4",
        "start": "0x0230",
        "encoding": "bcd",
        "length": 6
      }
    ],
    "final_scores": [
      {
        "label": "Final P1",
        "start": "0x023D",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Final P2",
        "start": "0x0243",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Final P3",
        "start": "0x0249",
        "encoding": "bcd",
        "length": 6
      },
      {
        "label": "Final P4",
        "start": "0x024F",
        "encoding": "bcd",
        "length": 6
      }
    ],
    "current_ball": {
      "label": "Current Ball",
      "start": "0x12",
      "encoding": "bcd"
    },
    "player_count": {
      "label": "Players",
      "start": "0x13",
      "encoding": "bcd"
    },
    "current_player": {
      "label": "Current Player",
      "start": "0x14",
      "encoding": "bcd"
    },
    "ball_count": {
      "label": "Ball Count",
      "encoding": "dipsw",
      "offsets": [
        16
      ],
      "values": [
        3,
        5
      ]
    },
    "max_credits": {
      "label": "Max Credits",
      "encoding": "dipsw",
      "offsets": [
        19,
        18,
        17
      ],
      "values": [
        5,
        10,
        15,
        20,
        25,
        30,
        35,
        40
      ]
    },
    "free_play": {
      "label": "Free Play",
      "encoding": "dipsw",
      "offsets": [
        19,
        18,
        17
      ],
      "values": [
        false,
        false,
        false,
        false,
        false,
        false,
        false,
        true
      ]
    },
    "game_over": {
      "_notes": "reading 'game over' lamp",
      "label": "Game Over",
      "start": "0x20C",
      "encoding": "bool",
      "mask": "0x4",
      "invert": true
    },
    "tilted": {
      "_notes": "reading 'tilt' lamp",
      "label": "Tilted",
      "start": "0x20C",
      "encoding": "bool",
      "mask": "0x8",
      "invert": true
    }
  },
  "high_scores": [
    {
      "label": "High Score",
      "short_label": "HS",
      "score": {
        "start": "0x02CF",
        "encoding": "bcd",
        "length": 6
      }
    }
  ],
  "audits": {
    "Bookkeeping functions": {
      "05": {
        "label": "Current Credits",
        "start": "0x02D5",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 40
      },
      "06": {
        "label": "Total Plays (Paid and Free Games)",
        "start": "0x02DB",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      },
      "07": {
        "label": "Total Replays (Free Games)",
        "start": "0x02E1",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      },
      "08": {
        "label": "HSTD Achieved",
        "start": "0x02E7",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      },
      "09": {
        "label": "Coin Chute #1",
        "start": "0x02ED",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      },
      "10": {
        "label": "Coin Chute #2",
        "start": "0x02F3",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      },
      "11": {
        "label": "Coin Chute #3",
        "start": "0x02F9",
        "length": 6,
        "encoding": "bcd",
        "min": 0,
        "max": 999999
      }
    }
  },
  "adjustments": {
    "High score functions": {
      "01": {
        "_notes": "On 'd' ROMs (/10 scoring), multiple_of is 1000",
        "label": "Replay Level 1",
        "start": "0x02BD",
        "encoding": "bcd",
        "length": 6,
        "min": 0,
        "max": 999000,
        "default": 0,
        "special_values": {
          "0": "OFF"
        },
        "multiple_of": 10000
      },
      "02": {
        "label": "Replay Level 2",
        "start": "0x02C3",
        "encoding": "bcd",
        "length": 6,
        "min": 0,
        "max": 999000,
        "default": 0,
        "special_values": {
          "0": "OFF"
        },
        "multiple_of": 10000
      },
      "03": {
        "label": "Replay Level 3",
        "start": "0x02C9",
        "encoding": "bcd",
        "length": 6,
        "min": 0,
        "max": 999000,
        "default": 0,
        "special_values": {
          "0": "OFF"
        },
        "multiple_of": 10000
      },
      "04": {
        "label": "High score to date",
        "start": "0x02CF",
        "encoding": "bcd",
        "length": 6,
        "min": 0,
        "max": 999990
      }
    }
  }
}
