{
  "_notes": [
    "Generated by searching for opcode sequences in ROM images."
  ],
  "_fileformat": 0.8,
  "_metadata": {
    "version": 4,
    "copyright": [
      "Copyright (C) 2026 by Tom Collins <tom@scorbit.io>"
    ],
    "license": "GNU Lesser General Public License v3.0",
    "platform": "whitestar",
    "roms": [
      "monoi251",
      "monop251"
    ]
  },
  "game_state": {
    "scores": [
      {
        "label": "Player 1",
        "encoding": "bcd",
        "length": 5,
        "start": "0x1554"
      },
      {
        "label": "Player 2",
        "encoding": "bcd",
        "length": 5,
        "start": "0x1559"
      },
      {
        "label": "Player 3",
        "encoding": "bcd",
        "length": 5,
        "start": "0x155E"
      },
      {
        "label": "Player 4",
        "encoding": "bcd",
        "length": 5,
        "start": "0x1563"
      }
    ],
    "credits": {
      "label": "Credits",
      "start": "0x154E",
      "encoding": "bcd"
    },
    "free_play": {
      "label": "Free Play",
      "start": "0x1E03",
      "encoding": "bool"
    },
    "max_credits": {
      "label": "Max Credits",
      "start": "0x1E12",
      "encoding": "bcd"
    },
    "player_count": {
      "label": "Player Count",
      "start": "0x02A8",
      "encoding": "int"
    },
    "ball_count": {
      "label": "Ball Count",
      "start": "0x1E10",
      "encoding": "bcd"
    },
    "current_player": {
      "label": "Player",
      "start": "0x02A6",
      "encoding": "int"
    },
    "current_ball": {
      "label": "Ball",
      "start": "0x02A7",
      "encoding": "int"
    },
    "game_over": {
      "_notes": "game is over if current player/ball is 0",
      "label": "Game Over",
      "start": "0x02A6",
      "encoding": "bool",
      "invert": true
    }
  },
  "high_scores": [
    {
      "label": "First",
      "short_label": "#1",
      "initials": {
        "_notes": "3-letter initials have an extra byte for the player token",
        "start": "0x14EA",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x1490"
      }
    },
    {
      "label": "Second",
      "short_label": "#2",
      "initials": {
        "start": "0x14F4",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x1495"
      }
    },
    {
      "label": "Third",
      "short_label": "#3",
      "initials": {
        "start": "0x14FE",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x149A"
      }
    },
    {
      "label": "Fourth",
      "short_label": "#4",
      "initials": {
        "start": "0x1508",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x149F"
      }
    },
    {
      "label": "Fifth",
      "short_label": "#5",
      "initials": {
        "start": "0x1512",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14A4"
      }
    },
    {
      "label": "Sixth",
      "short_label": "#6",
      "initials": {
        "start": "0x151C",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14A9"
      }
    },
    {
      "label": "Seventh",
      "short_label": "#7",
      "initials": {
        "start": "0x1526",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14AE"
      }
    },
    {
      "label": "Eighth",
      "short_label": "#8",
      "initials": {
        "start": "0x1530",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14B3"
      }
    },
    {
      "label": "Ninth",
      "short_label": "#9",
      "initials": {
        "start": "0x153A",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14B8"
      }
    },
    {
      "label": "Tenth",
      "short_label": "#10",
      "initials": {
        "start": "0x1544",
        "encoding": "ch",
        "length": 10
      },
      "score": {
        "encoding": "bcd",
        "length": 5,
        "start": "0x14BD"
      }
    }
  ]
}
