{
 "schema": 1,
 "platform": "c64",
 "game": "fist-ii-the-legend-continues",
 "build": "Mindscape disk, 20 files, SHA-256 d61d133d231b6453d4c409f0ff8d058771493b9030384a7d1c67758fee873b54",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    61440,
    62463,
    "screen RAM"
   ],
   [
    52224,
    53223,
    "status-band screen, drawn at run time (bank 3, $D018 = $3B)"
   ]
  ],
  "extra": [
   [
    53248,
    55295,
    "character set"
   ],
   [
    1024,
    52223,
    "the whole Adventure load: every byte is the game's until described or excluded"
   ],
   [
    57344,
    61439,
    "loaded under the KERNAL: characters and data"
   ],
   [
    62464,
    65529,
    "loaded under the KERNAL above the play screen"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 511,
   "type": "Undefined"
  },
  {
   "start": 512,
   "end": 1025,
   "type": "Byte"
  },
  {
   "start": 1026,
   "end": 1028,
   "type": "Code"
  },
  {
   "start": 1029,
   "end": 1260,
   "type": "Byte"
  },
  {
   "start": 1261,
   "end": 1308,
   "type": "Word"
  },
  {
   "start": 1309,
   "end": 1370,
   "type": "Byte"
  },
  {
   "start": 1371,
   "end": 2052,
   "type": "Code"
  },
  {
   "start": 2053,
   "end": 2056,
   "type": "Byte"
  },
  {
   "start": 2057,
   "end": 2604,
   "type": "Code"
  },
  {
   "start": 2605,
   "end": 2605,
   "type": "Byte"
  },
  {
   "start": 2606,
   "end": 2680,
   "type": "Code"
  },
  {
   "start": 2681,
   "end": 2686,
   "type": "Byte"
  },
  {
   "start": 2687,
   "end": 2748,
   "type": "Code"
  },
  {
   "start": 2749,
   "end": 2768,
   "type": "Byte"
  },
  {
   "start": 2769,
   "end": 2958,
   "type": "Code"
  },
  {
   "start": 2959,
   "end": 2959,
   "type": "Byte"
  },
  {
   "start": 2960,
   "end": 3417,
   "type": "Code"
  },
  {
   "start": 3418,
   "end": 3548,
   "type": "Byte"
  },
  {
   "start": 3549,
   "end": 3646,
   "type": "Code"
  },
  {
   "start": 3647,
   "end": 4075,
   "type": "Byte"
  },
  {
   "start": 4076,
   "end": 4678,
   "type": "Code"
  },
  {
   "start": 4679,
   "end": 4681,
   "type": "Byte"
  },
  {
   "start": 4682,
   "end": 5428,
   "type": "Code"
  },
  {
   "start": 5429,
   "end": 5440,
   "type": "Byte"
  },
  {
   "start": 5441,
   "end": 5812,
   "type": "Code"
  },
  {
   "start": 5813,
   "end": 5815,
   "type": "Byte"
  },
  {
   "start": 5816,
   "end": 5950,
   "type": "Code"
  },
  {
   "start": 5951,
   "end": 5970,
   "type": "Byte"
  },
  {
   "start": 5971,
   "end": 7066,
   "type": "Code"
  },
  {
   "start": 7067,
   "end": 7133,
   "type": "Byte"
  },
  {
   "start": 7134,
   "end": 7428,
   "type": "Code"
  },
  {
   "start": 7429,
   "end": 7484,
   "type": "Byte"
  },
  {
   "start": 7485,
   "end": 7573,
   "type": "Code"
  },
  {
   "start": 7574,
   "end": 7574,
   "type": "Byte"
  },
  {
   "start": 7575,
   "end": 8416,
   "type": "Code"
  },
  {
   "start": 8417,
   "end": 8448,
   "type": "Byte"
  },
  {
   "start": 8449,
   "end": 8978,
   "type": "Code"
  },
  {
   "start": 8979,
   "end": 8980,
   "type": "Byte"
  },
  {
   "start": 8981,
   "end": 9269,
   "type": "Code"
  },
  {
   "start": 9270,
   "end": 9271,
   "type": "Byte"
  },
  {
   "start": 9272,
   "end": 9907,
   "type": "Code"
  },
  {
   "start": 9908,
   "end": 9927,
   "type": "Byte"
  },
  {
   "start": 9928,
   "end": 10113,
   "type": "Code"
  },
  {
   "start": 10114,
   "end": 10115,
   "type": "Byte"
  },
  {
   "start": 10116,
   "end": 10592,
   "type": "Code"
  },
  {
   "start": 10593,
   "end": 10594,
   "type": "Byte"
  },
  {
   "start": 10595,
   "end": 10643,
   "type": "Code"
  },
  {
   "start": 10644,
   "end": 10647,
   "type": "Byte"
  },
  {
   "start": 10648,
   "end": 11066,
   "type": "Code"
  },
  {
   "start": 11067,
   "end": 11078,
   "type": "Byte"
  },
  {
   "start": 11079,
   "end": 11160,
   "type": "Code"
  },
  {
   "start": 11161,
   "end": 11162,
   "type": "Byte"
  },
  {
   "start": 11163,
   "end": 11568,
   "type": "Code"
  },
  {
   "start": 11569,
   "end": 11571,
   "type": "Byte"
  },
  {
   "start": 11572,
   "end": 11663,
   "type": "Code"
  },
  {
   "start": 11664,
   "end": 11670,
   "type": "Byte"
  },
  {
   "start": 11671,
   "end": 12447,
   "type": "Code"
  },
  {
   "start": 12448,
   "end": 12450,
   "type": "Byte"
  },
  {
   "start": 12451,
   "end": 12935,
   "type": "Code"
  },
  {
   "start": 12936,
   "end": 12955,
   "type": "Address"
  },
  {
   "start": 12956,
   "end": 13048,
   "type": "Byte"
  },
  {
   "start": 13049,
   "end": 13250,
   "type": "Code"
  },
  {
   "start": 13251,
   "end": 13301,
   "type": "Byte"
  },
  {
   "start": 13302,
   "end": 15393,
   "type": "Code"
  },
  {
   "start": 15394,
   "end": 15394,
   "type": "Byte"
  },
  {
   "start": 15395,
   "end": 15616,
   "type": "Code"
  },
  {
   "start": 15617,
   "end": 15648,
   "type": "Byte"
  },
  {
   "start": 15649,
   "end": 15753,
   "type": "Code"
  },
  {
   "start": 15754,
   "end": 15754,
   "type": "Byte"
  },
  {
   "start": 15755,
   "end": 15883,
   "type": "Code"
  },
  {
   "start": 15884,
   "end": 15897,
   "type": "Byte"
  },
  {
   "start": 15898,
   "end": 15960,
   "type": "Code"
  },
  {
   "start": 15961,
   "end": 15968,
   "type": "Address"
  },
  {
   "start": 15969,
   "end": 15988,
   "type": "Code"
  },
  {
   "start": 15989,
   "end": 15989,
   "type": "Byte"
  },
  {
   "start": 15990,
   "end": 16127,
   "type": "Code"
  },
  {
   "start": 16128,
   "end": 16136,
   "type": "Byte"
  },
  {
   "start": 16137,
   "end": 16226,
   "type": "Code"
  },
  {
   "start": 16227,
   "end": 16230,
   "type": "Byte"
  },
  {
   "start": 16231,
   "end": 18433,
   "type": "Code"
  },
  {
   "start": 18434,
   "end": 18441,
   "type": "Byte"
  },
  {
   "start": 18442,
   "end": 18722,
   "type": "Code"
  },
  {
   "start": 18723,
   "end": 18759,
   "type": "Byte"
  },
  {
   "start": 18760,
   "end": 18814,
   "type": "Code"
  },
  {
   "start": 18815,
   "end": 18851,
   "type": "Byte"
  },
  {
   "start": 18852,
   "end": 19041,
   "type": "Code"
  },
  {
   "start": 19042,
   "end": 19052,
   "type": "Byte"
  },
  {
   "start": 19053,
   "end": 19056,
   "type": "Word"
  },
  {
   "start": 19057,
   "end": 20506,
   "type": "Byte"
  },
  {
   "start": 20507,
   "end": 20508,
   "type": "Word"
  },
  {
   "start": 20509,
   "end": 20509,
   "type": "Byte"
  },
  {
   "start": 20510,
   "end": 20719,
   "type": "Word"
  },
  {
   "start": 20720,
   "end": 23462,
   "type": "Byte"
  },
  {
   "start": 23463,
   "end": 23510,
   "type": "Word"
  },
  {
   "start": 23511,
   "end": 26707,
   "type": "Byte"
  },
  {
   "start": 26708,
   "end": 26839,
   "type": "Word"
  },
  {
   "start": 26840,
   "end": 30837,
   "type": "Byte"
  },
  {
   "start": 30838,
   "end": 30945,
   "type": "Word"
  },
  {
   "start": 30946,
   "end": 44869,
   "type": "Byte"
  },
  {
   "start": 44870,
   "end": 44961,
   "type": "Word"
  },
  {
   "start": 44962,
   "end": 49151,
   "type": "Byte"
  },
  {
   "start": 49152,
   "end": 49171,
   "type": "Code"
  },
  {
   "start": 49172,
   "end": 49173,
   "type": "Byte"
  },
  {
   "start": 49174,
   "end": 49203,
   "type": "Code"
  },
  {
   "start": 49204,
   "end": 49208,
   "type": "PETSCII Text"
  },
  {
   "start": 49209,
   "end": 49245,
   "type": "Code"
  },
  {
   "start": 49246,
   "end": 49251,
   "type": "PETSCII Text"
  },
  {
   "start": 49252,
   "end": 49291,
   "type": "Code"
  },
  {
   "start": 49292,
   "end": 49296,
   "type": "PETSCII Text"
  },
  {
   "start": 49297,
   "end": 49412,
   "type": "Code"
  },
  {
   "start": 49413,
   "end": 49417,
   "type": "PETSCII Text"
  },
  {
   "start": 49418,
   "end": 49454,
   "type": "Code"
  },
  {
   "start": 49455,
   "end": 49458,
   "type": "PETSCII Text"
  },
  {
   "start": 49459,
   "end": 49574,
   "type": "Code"
  },
  {
   "start": 49575,
   "end": 49580,
   "type": "PETSCII Text"
  },
  {
   "start": 49581,
   "end": 49620,
   "type": "Code"
  },
  {
   "start": 49621,
   "end": 49625,
   "type": "PETSCII Text"
  },
  {
   "start": 49626,
   "end": 49741,
   "type": "Code"
  },
  {
   "start": 49742,
   "end": 49746,
   "type": "PETSCII Text"
  },
  {
   "start": 49747,
   "end": 49782,
   "type": "Code"
  },
  {
   "start": 49783,
   "end": 49791,
   "type": "Byte"
  },
  {
   "start": 49792,
   "end": 50106,
   "type": "Code"
  },
  {
   "start": 50107,
   "end": 50172,
   "type": "Byte"
  },
  {
   "start": 50173,
   "end": 50438,
   "type": "Code"
  },
  {
   "start": 50439,
   "end": 52223,
   "type": "Byte"
  },
  {
   "start": 52224,
   "end": 53223,
   "type": "Undefined"
  },
  {
   "start": 53224,
   "end": 61439,
   "type": "Byte"
  },
  {
   "start": 61440,
   "end": 62463,
   "type": "Undefined"
  },
  {
   "start": 62464,
   "end": 62466,
   "type": "Code"
  },
  {
   "start": 62467,
   "end": 62470,
   "type": "Byte"
  },
  {
   "start": 62471,
   "end": 62510,
   "type": "Word"
  },
  {
   "start": 62511,
   "end": 62692,
   "type": "Byte"
  },
  {
   "start": 62693,
   "end": 62700,
   "type": "Address"
  },
  {
   "start": 62701,
   "end": 62702,
   "type": "Byte"
  },
  {
   "start": 62703,
   "end": 63240,
   "type": "Code"
  },
  {
   "start": 63241,
   "end": 63243,
   "type": "Byte"
  },
  {
   "start": 63244,
   "end": 63556,
   "type": "Code"
  },
  {
   "start": 63557,
   "end": 63557,
   "type": "Byte"
  },
  {
   "start": 63558,
   "end": 63899,
   "type": "Code"
  },
  {
   "start": 63900,
   "end": 63906,
   "type": "Byte"
  },
  {
   "start": 63907,
   "end": 64180,
   "type": "Code"
  },
  {
   "start": 64181,
   "end": 64329,
   "type": "Byte"
  },
  {
   "start": 64330,
   "end": 64377,
   "type": "Word"
  },
  {
   "start": 64378,
   "end": 65447,
   "type": "Byte"
  },
  {
   "start": 65448,
   "end": 65481,
   "type": "Word"
  },
  {
   "start": 65482,
   "end": 65529,
   "type": "Byte"
  },
  {
   "start": 65530,
   "end": 65535,
   "type": "Address"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "cpu_ddr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1,
   "name": "cpu_port",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2,
   "name": "fighter_spr_part0",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 4,
   "name": "fighter_spr_part1",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 6,
   "name": "fighter_spr_part2",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 8,
   "name": "fighter_spr_part3",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 10,
   "name": "fighter_spr_part4",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 12,
   "name": "fighter_spr_part5",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 14,
   "name": "fighter_spr_part6",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 16,
   "name": "fighter_spr_part7",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 18,
   "name": "fighter_spr_part8",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 20,
   "name": "fighter_spr_y",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 22,
   "name": "fighter_shadow_ptr",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 24,
   "name": "zp_18",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 26,
   "name": "zp_1a",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 28,
   "name": "zp_1c",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 30,
   "name": "fighter_facing",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 31,
   "name": "fighter1_facing",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32,
   "name": "zp_20",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33,
   "name": "zp_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34,
   "name": "shadow_parts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36,
   "name": "zpf_24",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 38,
   "name": "zpf_26",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpf_28",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpf_2A",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpf_2C",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpf_2E",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 48,
   "name": "zpf_30",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 50,
   "name": "zpf_32",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 52,
   "name": "zpf_34",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 54,
   "name": "zpa_36",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56,
   "name": "zpf_38",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 58,
   "name": "zpf_3A",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 62,
   "name": "zpa_3E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64,
   "name": "zpa_40",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 65,
   "name": "zpa_41",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 66,
   "name": "zp_42",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 67,
   "name": "zp_43",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 68,
   "name": "zp_44",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 69,
   "name": "zp_45",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 70,
   "name": "zp_46",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 71,
   "name": "zp_47",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 72,
   "name": "zp_48",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 73,
   "name": "zp_49",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 74,
   "name": "spr_buf_toggle",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 75,
   "name": "zp_4b",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 76,
   "name": "spr_image_index",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 78,
   "name": "zp_4e",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 79,
   "name": "zp_4f",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 80,
   "name": "spr_image_base_lo",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 82,
   "name": "spr_image_base_hi",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 84,
   "name": "spr_image_dir",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 86,
   "name": "zp_56",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 88,
   "name": "spr_copy_src",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 89,
   "name": "zpa_59",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 90,
   "name": "spr_copy_dst",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 91,
   "name": "zpa_5B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 92,
   "name": "zp_5c",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 93,
   "name": "zp_5d",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 94,
   "name": "zp_5e",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 95,
   "name": "zp_5f",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 96,
   "name": "zp_60",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 97,
   "name": "zp_61",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 98,
   "name": "fighter_acc_ptr0",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 100,
   "name": "fighter_acc_ptr1",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 102,
   "name": "fighter_acc_ptr2",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 104,
   "name": "sample_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 105,
   "name": "zpa_69",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 106,
   "name": "sample_volume",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 108,
   "name": "zp_6c",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 109,
   "name": "zp_6d",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 114,
   "name": "scroll_column",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 115,
   "name": "screen_row3_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 116,
   "name": "screen_row3_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 117,
   "name": "draw_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 118,
   "name": "zpa_76",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 119,
   "name": "draw_rows_left",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 120,
   "name": "draw_col",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 121,
   "name": "draw_row",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 122,
   "name": "draw_right_edge",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 123,
   "name": "draw_obj_index",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 124,
   "name": "draw_end_col",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 125,
   "name": "fighter_move",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 126,
   "name": "fighter1_move",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 127,
   "name": "fighter_move_started",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 129,
   "name": "fighter_frame_timer",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 131,
   "name": "fighter_move_dir",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 133,
   "name": "fighter_script_pos",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 135,
   "name": "move_script_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 136,
   "name": "zpa_88",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 137,
   "name": "fighter_script_len",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 139,
   "name": "fighter_state_8b",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 141,
   "name": "zp_8d",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 143,
   "name": "zp_8f",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 144,
   "name": "hero_screen_x_half",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 146,
   "name": "fighter_height",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 147,
   "name": "zp_93",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 148,
   "name": "zp_94",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 149,
   "name": "zp_95",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 150,
   "name": "zp_96",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 152,
   "name": "spr_build_toggle",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 153,
   "name": "zp_99",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 154,
   "name": "spr_build_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 155,
   "name": "zpa_9B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 156,
   "name": "spr_build_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 157,
   "name": "zpa_9D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 158,
   "name": "zpa_9E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 159,
   "name": "zpa_9F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 160,
   "name": "zpa_A0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 161,
   "name": "zpa_A1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 162,
   "name": "zpa_A2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 163,
   "name": "zpa_A3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 164,
   "name": "zpa_A4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 165,
   "name": "saved_fighter",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 168,
   "name": "fighter_stepped",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 170,
   "name": "zp_aa",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 171,
   "name": "zp_ab",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 172,
   "name": "zp_ac",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 173,
   "name": "fighter_state_ad",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 174,
   "name": "zp_ae",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 175,
   "name": "zp_af",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 176,
   "name": "zp_b0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 179,
   "name": "zp_b3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 180,
   "name": "zp_b4",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 181,
   "name": "zp_b5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 182,
   "name": "tmp_ptr_b6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 183,
   "name": "zpa_B7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 184,
   "name": "room_colour_b8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 185,
   "name": "compound_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 186,
   "name": "zpa_BA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 191,
   "name": "sprite_ptr_page",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 192,
   "name": "room_colour_c0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 193,
   "name": "room_colour_c1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 194,
   "name": "room_colour_c2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 197,
   "name": "room_obj_shape",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 198,
   "name": "zpa_C6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 199,
   "name": "room_obj_x",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 200,
   "name": "zpa_C8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 201,
   "name": "room_obj_y",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 202,
   "name": "zpa_CA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 203,
   "name": "shape_width",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 204,
   "name": "zpa_CC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 205,
   "name": "shape_height",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 206,
   "name": "zpa_CE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 207,
   "name": "shape_gfx_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 208,
   "name": "zpa_D0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 209,
   "name": "shape_gfx_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 210,
   "name": "zpa_D2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 211,
   "name": "compound_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 212,
   "name": "zpa_D4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 213,
   "name": "compound_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 214,
   "name": "zpa_D6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 215,
   "name": "compound_width",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 216,
   "name": "zpa_D8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 217,
   "name": "room_colour_list",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 218,
   "name": "zpa_DA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 219,
   "name": "fighter_x_lo",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 220,
   "name": "fighter1_x_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 221,
   "name": "fighter_x_hi",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 222,
   "name": "fighter1_x_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 223,
   "name": "zp_df",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 224,
   "name": "zp_e0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 225,
   "name": "zp_e1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 226,
   "name": "zp_e2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 227,
   "name": "fighter_x_pos",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 228,
   "name": "fighter1_screen_x",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 229,
   "name": "fighter_column",
   "type": "ZeroPageField",
   "kind": "user"
  },
  {
   "address": 230,
   "name": "fighter1_column",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 231,
   "name": "exit_list_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 232,
   "name": "zpa_E8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 233,
   "name": "exit_field1",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 234,
   "name": "zpa_EA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 235,
   "name": "exit_field3",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 236,
   "name": "zpa_EC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 237,
   "name": "exit_field2",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 238,
   "name": "zpa_EE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 239,
   "name": "zp_ef",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 240,
   "name": "item_list_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 241,
   "name": "zpa_F1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 242,
   "name": "zp_f2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpa_FA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpa_FD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 254,
   "name": "zpa_FE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 255,
   "name": "zone_tune",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 307,
   "name": "bg_task_frame_p",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 308,
   "name": "bg_task_frame_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 309,
   "name": "bg_task_frame_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 512,
   "name": "sample_timer_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 768,
   "name": "sample_timer_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1024,
   "name": "init_bytes_0400",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1025,
   "name": "a_0401",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1026,
   "name": "main_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1029,
   "name": "scroll_flags",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1030,
   "name": "a_0406",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1031,
   "name": "a_0407",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1032,
   "name": "a_0408",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1033,
   "name": "a_0409",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1034,
   "name": "a_040A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1035,
   "name": "a_040B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1036,
   "name": "a_040C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1039,
   "name": "mirror_out_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1040,
   "name": "mirror_in_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1041,
   "name": "copy_parts_enable",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1042,
   "name": "a_0412",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1043,
   "name": "a_0413",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1044,
   "name": "f_0414",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1046,
   "name": "a_0416",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1047,
   "name": "a_0417",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1048,
   "name": "f_0418",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1051,
   "name": "a_041B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1052,
   "name": "a_041C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1053,
   "name": "a_041D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1054,
   "name": "a_041E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1055,
   "name": "a_041F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1058,
   "name": "f_0422",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1059,
   "name": "a_0423",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1060,
   "name": "draw_left_col",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1061,
   "name": "draw_row_counter",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1062,
   "name": "redraw_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1063,
   "name": "scroll_max",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1064,
   "name": "scroll_min",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1066,
   "name": "loop_count_042a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1068,
   "name": "a_042C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1069,
   "name": "a_042D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1070,
   "name": "a_042E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1071,
   "name": "a_042F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1072,
   "name": "a_0430",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1073,
   "name": "a_0431",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1074,
   "name": "a_0432",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1075,
   "name": "camera_x_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1076,
   "name": "camera_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1077,
   "name": "limit_x_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1078,
   "name": "limit_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1079,
   "name": "walk_limit_r_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1080,
   "name": "a_0438",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1081,
   "name": "walk_limit_r_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1082,
   "name": "a_043A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1083,
   "name": "walk_limit_l_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1084,
   "name": "a_043C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1085,
   "name": "walk_limit_l_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1086,
   "name": "a_043E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1087,
   "name": "f_043F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1088,
   "name": "a_0440",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1089,
   "name": "hero_pos_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1091,
   "name": "hero_pos_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1093,
   "name": "a_0445",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1094,
   "name": "a_0446",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1095,
   "name": "a_0447",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1096,
   "name": "a_0448",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1097,
   "name": "a_0449",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1099,
   "name": "a_044B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1102,
   "name": "a_044E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1103,
   "name": "saved_y_044f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1104,
   "name": "part_shape",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1105,
   "name": "a_0451",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1106,
   "name": "f_0452",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1108,
   "name": "f_0454",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1110,
   "name": "f_0456",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1112,
   "name": "a_0458",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1113,
   "name": "a_0459",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1114,
   "name": "a_045A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1115,
   "name": "f_045B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1116,
   "name": "a_045C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1117,
   "name": "f_045D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1119,
   "name": "f_045F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1121,
   "name": "scroll_walk_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1122,
   "name": "barrier_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1123,
   "name": "a_0463",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1124,
   "name": "a_0464",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1125,
   "name": "a_0465",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1126,
   "name": "a_0466",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1127,
   "name": "a_0467",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1128,
   "name": "calc_hi_0468",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1129,
   "name": "exit_target_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1130,
   "name": "current_room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1131,
   "name": "exit_target_room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1132,
   "name": "a_046C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1133,
   "name": "redraw_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1134,
   "name": "f_046E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1135,
   "name": "a_046F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1136,
   "name": "a_0470",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1137,
   "name": "exit_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1138,
   "name": "a_0472",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1139,
   "name": "exit_scan_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1140,
   "name": "fighter_flag_0474",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1141,
   "name": "a_0475",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1142,
   "name": "pose_mirror_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1143,
   "name": "fighter_pose",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1145,
   "name": "fighter_step_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1147,
   "name": "fighter_step_h",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1149,
   "name": "fighter_move_done",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1151,
   "name": "a_047F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1153,
   "name": "exit_target_pos2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1154,
   "name": "exit_scroll_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1155,
   "name": "a_0483",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1156,
   "name": "sprite_priority",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1157,
   "name": "a_0485",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1158,
   "name": "move_table_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1160,
   "name": "colour_scheme",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1161,
   "name": "barrier_recheck",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1162,
   "name": "a_048A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1164,
   "name": "a_048C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1165,
   "name": "a_048D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1167,
   "name": "a_048F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1168,
   "name": "a_0490",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1169,
   "name": "event_param",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1170,
   "name": "event_code",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1171,
   "name": "table_0493",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1213,
   "name": "table_04bd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1225,
   "name": "table_04c9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1237,
   "name": "table_04d5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1249,
   "name": "pose_hit_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1261,
   "name": "ptr_table_04ed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1262,
   "name": "f_04EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1285,
   "name": "ptr_table_0505",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1286,
   "name": "f_0506",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1309,
   "name": "table_051d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1327,
   "name": "table_052f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1339,
   "name": "bit_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1347,
   "name": "bit_masks_inv",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1355,
   "name": "table_054b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1363,
   "name": "table_0553",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1371,
   "name": "calc_fighter_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1397,
   "name": "r_0575",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1398,
   "name": "scan_room_exits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1405,
   "name": "j_057D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1486,
   "name": "column_near_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1501,
   "name": "b_05DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1504,
   "name": "b_05E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1511,
   "name": "b_05E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1514,
   "name": "b_05EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1517,
   "name": "b_05ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1520,
   "name": "b_05F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1523,
   "name": "b_05F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1526,
   "name": "b_05F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1529,
   "name": "b_05F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1532,
   "name": "b_05FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1535,
   "name": "b_05FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1538,
   "name": "b_0602",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1541,
   "name": "b_0605",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1544,
   "name": "b_0608",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1547,
   "name": "b_060B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1550,
   "name": "b_060E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1553,
   "name": "b_0611",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1556,
   "name": "b_0614",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1559,
   "name": "b_0617",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1562,
   "name": "b_061A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1565,
   "name": "b_061D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1568,
   "name": "j_0620",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1577,
   "name": "j_0629",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1593,
   "name": "j_0639",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1606,
   "name": "b_0646",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1609,
   "name": "b_0649",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1635,
   "name": "b_0663",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1642,
   "name": "b_066A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1659,
   "name": "j_067B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1675,
   "name": "j_068B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1687,
   "name": "j_0697",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1695,
   "name": "b_069F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1698,
   "name": "b_06A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1701,
   "name": "j_06A5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1710,
   "name": "j_06AE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1718,
   "name": "j_06B6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1727,
   "name": "j_06BF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1735,
   "name": "b_06C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1738,
   "name": "b_06CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1741,
   "name": "b_06CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1744,
   "name": "b_06D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1747,
   "name": "j_06D3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1755,
   "name": "j_06DB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1763,
   "name": "j_06E3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1771,
   "name": "j_06EB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1781,
   "name": "b_06F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1784,
   "name": "b_06F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1792,
   "name": "b_0700",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1829,
   "name": "b_0725",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1837,
   "name": "r_072D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1838,
   "name": "j_072E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1848,
   "name": "b_0738",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1851,
   "name": "b_073B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1859,
   "name": "b_0743",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1900,
   "name": "j_076C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1914,
   "name": "j_077A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1928,
   "name": "j_0788",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1942,
   "name": "take_exit_generic",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1979,
   "name": "b_07BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1994,
   "name": "r_07CA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1995,
   "name": "exit_x_to_hero_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2014,
   "name": "b_07DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2018,
   "name": "exit_x_adjust",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2041,
   "name": "j_07F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2053,
   "name": "exit_scan_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2054,
   "name": "a_0806",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2055,
   "name": "a_0807",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2056,
   "name": "a_0808",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2057,
   "name": "check_priority_zone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2059,
   "name": "b_080B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2087,
   "name": "b_0827",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2092,
   "name": "b_082C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2124,
   "name": "r_084C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2125,
   "name": "b_084D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2153,
   "name": "r_0869",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2154,
   "name": "b_086A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2170,
   "name": "find_room_barriers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2172,
   "name": "j_087C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2217,
   "name": "b_08A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2224,
   "name": "b_08B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2230,
   "name": "b_08B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2272,
   "name": "calc_walk_limits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2308,
   "name": "b_0904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2318,
   "name": "j_090E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2349,
   "name": "b_092D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2389,
   "name": "b_0955",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2399,
   "name": "j_095F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2417,
   "name": "check_barrier_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2444,
   "name": "b_098C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2462,
   "name": "r_099E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2463,
   "name": "b_099F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2502,
   "name": "b_09C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2524,
   "name": "b_09DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2566,
   "name": "b_0A06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2570,
   "name": "b_0A0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2572,
   "name": "b_0A0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2588,
   "name": "b_0A1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2605,
   "name": "hit_side",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2606,
   "name": "barrier_hit_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2649,
   "name": "b_0A59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2668,
   "name": "b_0A6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2675,
   "name": "b_0A73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2678,
   "name": "b_0A76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2681,
   "name": "barrier_offsets",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2682,
   "name": "a_0A7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2683,
   "name": "barrier_col_l",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2684,
   "name": "barrier_col_r",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2685,
   "name": "fighter_zone_flag",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2686,
   "name": "a_0A7E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2687,
   "name": "face_zone2_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2689,
   "name": "b_0A81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2718,
   "name": "b_0A9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2726,
   "name": "b_0AA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2734,
   "name": "b_0AAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2740,
   "name": "b_0AB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2742,
   "name": "b_0AB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2749,
   "name": "barrier_width_l",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2759,
   "name": "barrier_width_r",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2769,
   "name": "activate_room_items",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2815,
   "name": "b_0AFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2831,
   "name": "b_0B0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2833,
   "name": "b_0B11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2842,
   "name": "b_0B1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2855,
   "name": "read_room_table",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2856,
   "name": "room_table_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2857,
   "name": "room_table_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2859,
   "name": "restore_item_shapes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2876,
   "name": "b_0B3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2890,
   "name": "b_0B4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2916,
   "name": "b_0B64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2946,
   "name": "b_0B82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2951,
   "name": "b_0B87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2952,
   "name": "b_0B88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2953,
   "name": "j_0B89",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2959,
   "name": "restored_shape",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2960,
   "name": "set_fixed_shapes_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2987,
   "name": "point_zone1_shapes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3003,
   "name": "point_zone0_shapes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3019,
   "name": "clear_zone0_slots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3039,
   "name": "a_0BDF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3042,
   "name": "set_sprite_priority",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3044,
   "name": "b_0BE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3072,
   "name": "b_0C00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3077,
   "name": "b_0C05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3080,
   "name": "b_0C08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3084,
   "name": "b_0C0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3088,
   "name": "fill_33e3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3090,
   "name": "b_0C12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3097,
   "name": "reset_33e3_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3109,
   "name": "b_0C25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3123,
   "name": "reset_33e3_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3134,
   "name": "clear_33e3_some",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3155,
   "name": "animate_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3165,
   "name": "b_0C5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3168,
   "name": "b_0C60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3188,
   "name": "b_0C74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3201,
   "name": "b_0C81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3224,
   "name": "b_0C98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3229,
   "name": "b_0C9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3255,
   "name": "j_0CB7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3329,
   "name": "j_0D01",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3332,
   "name": "j_0D04",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3335,
   "name": "place_object_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3391,
   "name": "b_0D3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3408,
   "name": "b_0D50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3417,
   "name": "r_0D59",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3418,
   "name": "obj_x_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3419,
   "name": "f_0D5B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3420,
   "name": "a_0D5C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3422,
   "name": "obj_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3423,
   "name": "f_0D5F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3424,
   "name": "a_0D60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3426,
   "name": "obj_colour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3427,
   "name": "f_0D63",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3428,
   "name": "a_0D64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3430,
   "name": "obj_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3431,
   "name": "f_0D67",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3432,
   "name": "a_0D68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3434,
   "name": "obj_frame",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3435,
   "name": "f_0D6B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3436,
   "name": "a_0D6C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3437,
   "name": "a_0D6D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3438,
   "name": "obj_active",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3440,
   "name": "a_0D70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3442,
   "name": "obj_x_msb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3443,
   "name": "obj_step_tmp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3444,
   "name": "obj_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3446,
   "name": "a_0D76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3448,
   "name": "obj_script_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3450,
   "name": "a_0D7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3452,
   "name": "obj_reverse",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3453,
   "name": "a_0D7D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3454,
   "name": "a_0D7E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3455,
   "name": "obj_scripts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3456,
   "name": "f_0D80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3457,
   "name": "f_0D81",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3458,
   "name": "f_0D82",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3522,
   "name": "obj_scripts_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3523,
   "name": "obj_frame_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3536,
   "name": "obj_frame_ptrs2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3549,
   "name": "mirror_sprites_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3572,
   "name": "mirror_n_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3575,
   "name": "b_0DF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3589,
   "name": "b_0E05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3595,
   "name": "mirror_sprites_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3607,
   "name": "mirror_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3609,
   "name": "b_0E19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3647,
   "name": "zone_tables",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3648,
   "name": "f_0E40",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3652,
   "name": "zone1_first_room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3653,
   "name": "zone2_first_room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3654,
   "name": "zone_border",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3657,
   "name": "zone_colour_c1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3660,
   "name": "zone_colour_c2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3663,
   "name": "zone_colour_b8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3666,
   "name": "zone0_scheme_nibbles",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3696,
   "name": "scheme_list_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3706,
   "name": "scheme_b8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3716,
   "name": "scheme_c1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3726,
   "name": "scheme_c2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3736,
   "name": "zone0_colour_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3737,
   "name": "f_0E99",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3757,
   "name": "zone1_list_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3779,
   "name": "zone1_colour_b8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3801,
   "name": "zone1_colour_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3802,
   "name": "f_0EDA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3820,
   "name": "zone2_colour_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3821,
   "name": "f_0EED",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3885,
   "name": "zone2_colour_data_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3890,
   "name": "zone_shape_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3891,
   "name": "f_0F33",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3896,
   "name": "f_0F38",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3897,
   "name": "f_0F39",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3902,
   "name": "f_0F3E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3903,
   "name": "f_0F3F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3908,
   "name": "f_0F44",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3909,
   "name": "f_0F45",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3914,
   "name": "f_0F4A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3915,
   "name": "f_0F4B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3920,
   "name": "f_0F50",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3921,
   "name": "f_0F51",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3926,
   "name": "f_0F56",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3927,
   "name": "f_0F57",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3932,
   "name": "zone_gfx_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3933,
   "name": "f_0F5D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3938,
   "name": "zone_compound_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3939,
   "name": "f_0F63",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3944,
   "name": "room_obj_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3992,
   "name": "zone_sprite_priority",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3995,
   "name": "front_zone_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4032,
   "name": "behind_zone_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4069,
   "name": "compound_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4070,
   "name": "compound_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4071,
   "name": "room_obj_total",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4072,
   "name": "gfx_base_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4073,
   "name": "gfx_base_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4074,
   "name": "compound_base_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4075,
   "name": "compound_base_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4076,
   "name": "setup_room_data",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4089,
   "name": "room_list_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4090,
   "name": "room_list_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "s_1000",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4147,
   "name": "b_1033",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4150,
   "name": "j_1036",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4176,
   "name": "b_1050",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4177,
   "name": "item_table_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4178,
   "name": "a_1052",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4182,
   "name": "item_table_lo1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4183,
   "name": "a_1057",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4202,
   "name": "b_106A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4205,
   "name": "b_106D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4268,
   "name": "b_10AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4276,
   "name": "b_10B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4284,
   "name": "b_10BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4292,
   "name": "b_10C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4309,
   "name": "b_10D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4311,
   "name": "j_10D7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4332,
   "name": "b_10EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4354,
   "name": "j_1102",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4433,
   "name": "j_1151",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4505,
   "name": "j_1199",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4525,
   "name": "b_11AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4538,
   "name": "b_11BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4548,
   "name": "j_11C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4556,
   "name": "b_11CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4566,
   "name": "b_11D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4570,
   "name": "set_room_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4598,
   "name": "b_11F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4614,
   "name": "b_1206",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4635,
   "name": "b_121B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4662,
   "name": "b_1236",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4678,
   "name": "r_1246",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4679,
   "name": "zone_tune_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4682,
   "name": "load_zone_tables",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4777,
   "name": "init_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4810,
   "name": "background_task",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4829,
   "name": "b_12DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4838,
   "name": "draw_edge_column",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 4858,
   "name": "b_12FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4868,
   "name": "b_1304",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4884,
   "name": "b_1314",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4907,
   "name": "b_132B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4912,
   "name": "b_1330",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4922,
   "name": "b_133A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4959,
   "name": "b_135F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4974,
   "name": "b_136E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5014,
   "name": "b_1396",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5044,
   "name": "b_13B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5058,
   "name": "b_13C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5061,
   "name": "draw_obj_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5079,
   "name": "s_13D7",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 5136,
   "name": "b_1410",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5142,
   "name": "b_1416",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5144,
   "name": "b_1418",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5150,
   "name": "b_141E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5156,
   "name": "edge_gfx_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5157,
   "name": "edge_gfx_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5160,
   "name": "b_1428",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5176,
   "name": "b_1438",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5190,
   "name": "r_1446",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5191,
   "name": "shift_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5231,
   "name": "b_146F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5237,
   "name": "b_1475",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5252,
   "name": "b_1484",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5255,
   "name": "j_1487",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5261,
   "name": "copy_screen_shifted",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5263,
   "name": "b_148F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5265,
   "name": "b_1491",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5266,
   "name": "copy_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5267,
   "name": "copy_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5269,
   "name": "copy_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5270,
   "name": "copy_dst_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5289,
   "name": "b_14A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5302,
   "name": "b_14B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5306,
   "name": "clear_left_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5311,
   "name": "j_14BF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5320,
   "name": "b_14C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5321,
   "name": "clear_col_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5322,
   "name": "clear_col_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5337,
   "name": "b_14D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5341,
   "name": "clear_right_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5352,
   "name": "switch_to_background",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5379,
   "name": "switch_to_main",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5392,
   "name": "j_1510",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5406,
   "name": "restart_background",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5429,
   "name": "scroll_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5430,
   "name": "d018_toggle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5431,
   "name": "fine_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5432,
   "name": "bg_task_sp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5433,
   "name": "main_sp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5434,
   "name": "bg_task_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5435,
   "name": "bg_task_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5436,
   "name": "bg_task_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5437,
   "name": "main_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5438,
   "name": "main_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5439,
   "name": "main_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5440,
   "name": "edge_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5441,
   "name": "init_background_task",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5462,
   "name": "draw_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5476,
   "name": "b_1564",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5504,
   "name": "b_1580",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5509,
   "name": "b_1585",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5519,
   "name": "b_158F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5557,
   "name": "b_15B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5599,
   "name": "b_15DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5629,
   "name": "b_15FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5643,
   "name": "b_160B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5646,
   "name": "draw_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5664,
   "name": "draw_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5703,
   "name": "b_1647",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5710,
   "name": "b_164E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5713,
   "name": "b_1651",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5721,
   "name": "b_1659",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5723,
   "name": "b_165B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5729,
   "name": "b_1661",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5738,
   "name": "shape_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5739,
   "name": "shape_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5742,
   "name": "b_166E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5758,
   "name": "b_167E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5772,
   "name": "r_168C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5773,
   "name": "clear_play_area",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5785,
   "name": "b_1699",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5789,
   "name": "b_169D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5790,
   "name": "clear_ptr_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5791,
   "name": "clear_ptr_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5809,
   "name": "b_16B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5813,
   "name": "colour_list_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5814,
   "name": "colour_value",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5815,
   "name": "colour_rows_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5816,
   "name": "paint_colour_ram",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5833,
   "name": "j_16C9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5852,
   "name": "b_16DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5857,
   "name": "b_16E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5858,
   "name": "colour_ptr_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5859,
   "name": "colour_ptr_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5877,
   "name": "b_16F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5891,
   "name": "b_1703",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5900,
   "name": "b_170C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5929,
   "name": "b_1729",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5950,
   "name": "r_173E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5951,
   "name": "edge_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5971,
   "name": "clamp_hero_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6004,
   "name": "b_1774",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6040,
   "name": "b_1798",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6043,
   "name": "b_179B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6046,
   "name": "b_179E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6056,
   "name": "b_17A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6089,
   "name": "b_17C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6093,
   "name": "b_17CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6127,
   "name": "b_17EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6130,
   "name": "b_17F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6147,
   "name": "update_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6155,
   "name": "b_180B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6171,
   "name": "b_181B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6173,
   "name": "b_181D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6186,
   "name": "r_182A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6187,
   "name": "j_182B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6219,
   "name": "r_184B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6220,
   "name": "b_184C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6235,
   "name": "b_185B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6246,
   "name": "r_1866",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6247,
   "name": "b_1867",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6257,
   "name": "b_1871",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6263,
   "name": "b_1877",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6266,
   "name": "j_187A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6299,
   "name": "b_189B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6314,
   "name": "r_18AA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6315,
   "name": "b_18AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6332,
   "name": "flip_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6358,
   "name": "b_18D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6373,
   "name": "j_18E5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6404,
   "name": "b_1904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6408,
   "name": "b_1908",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6444,
   "name": "b_192C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6447,
   "name": "b_192F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6461,
   "name": "b_193D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6467,
   "name": "b_1943",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6499,
   "name": "b_1963",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6502,
   "name": "r_1966",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6503,
   "name": "b_1967",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6508,
   "name": "b_196C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6511,
   "name": "get_zone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6527,
   "name": "b_197F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6530,
   "name": "b_1982",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6533,
   "name": "check_limits_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6564,
   "name": "b_19A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6582,
   "name": "b_19B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6593,
   "name": "start_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6609,
   "name": "b_19D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6612,
   "name": "j_19D4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6617,
   "name": "r_19D9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6618,
   "name": "b_19DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6624,
   "name": "default_left_limit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6643,
   "name": "default_right_limit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6662,
   "name": "find_room_exits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6664,
   "name": "b_1A08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6666,
   "name": "b_1A0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6677,
   "name": "b_1A15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6688,
   "name": "b_1A20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6691,
   "name": "b_1A23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6712,
   "name": "b_1A38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6721,
   "name": "b_1A41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6728,
   "name": "r_1A48",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6729,
   "name": "recheck_barriers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6754,
   "name": "b_1A62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6765,
   "name": "b_1A6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6770,
   "name": "r_1A72",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6771,
   "name": "run_fighter_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6810,
   "name": "b_1A9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6813,
   "name": "b_1A9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6816,
   "name": "r_1AA0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6817,
   "name": "step_move_script",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6833,
   "name": "b_1AB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6836,
   "name": "b_1AB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6865,
   "name": "b_1AD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6871,
   "name": "b_1AD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6894,
   "name": "j_1AEE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6959,
   "name": "j_1B2F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6972,
   "name": "b_1B3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6978,
   "name": "j_1B42",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7001,
   "name": "b_1B59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7010,
   "name": "j_1B62",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7015,
   "name": "r_1B67",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7016,
   "name": "start_move_script",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7030,
   "name": "s_1B76",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 7062,
   "name": "b_1B96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7067,
   "name": "part_ptr_lists",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7103,
   "name": "part_list_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7107,
   "name": "part_list_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7111,
   "name": "slot_offset_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7112,
   "name": "sprite_buf_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7116,
   "name": "sprite_buf_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7120,
   "name": "extra_buf_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7124,
   "name": "image_page",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7134,
   "name": "build_pose",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7148,
   "name": "b_1BEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7172,
   "name": "b_1C04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7173,
   "name": "part_list_op_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7174,
   "name": "part_list_op_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7198,
   "name": "b_1C1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7201,
   "name": "b_1C21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7213,
   "name": "b_1C2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7216,
   "name": "b_1C30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7228,
   "name": "b_1C3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7231,
   "name": "b_1C3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7243,
   "name": "b_1C4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7246,
   "name": "b_1C4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7258,
   "name": "b_1C5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7261,
   "name": "b_1C5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7273,
   "name": "b_1C69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7276,
   "name": "b_1C6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7288,
   "name": "b_1C78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7291,
   "name": "b_1C7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7303,
   "name": "b_1C87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7306,
   "name": "b_1C8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7318,
   "name": "b_1C96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7321,
   "name": "b_1C99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7330,
   "name": "b_1CA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7341,
   "name": "b_1CAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7347,
   "name": "b_1CB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7359,
   "name": "b_1CBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7377,
   "name": "store_part_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7392,
   "name": "b_1CE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7404,
   "name": "b_1CEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7429,
   "name": "acc_pose_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7437,
   "name": "acc_ptr0_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7453,
   "name": "acc_ptr1_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7469,
   "name": "acc_ptr2_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7485,
   "name": "decode_part",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7515,
   "name": "b_1D5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7536,
   "name": "j_1D70",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7540,
   "name": "b_1D74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7541,
   "name": "part_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7542,
   "name": "part_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7548,
   "name": "b_1D7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7554,
   "name": "b_1D82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7558,
   "name": "part_src_lo2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7559,
   "name": "part_src_hi2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7565,
   "name": "b_1D8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7569,
   "name": "zero_run_end",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7574,
   "name": "saved_pose",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7575,
   "name": "next_part_buffer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7586,
   "name": "b_1DA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7590,
   "name": "build_pose_mirrored",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7655,
   "name": "b_1DE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7681,
   "name": "b_1E01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7682,
   "name": "mpart_list_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7683,
   "name": "mpart_list_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7707,
   "name": "b_1E1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7710,
   "name": "b_1E1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7722,
   "name": "b_1E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7725,
   "name": "b_1E2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7737,
   "name": "b_1E39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7740,
   "name": "b_1E3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7752,
   "name": "b_1E48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7755,
   "name": "b_1E4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7767,
   "name": "b_1E57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7770,
   "name": "b_1E5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7782,
   "name": "b_1E66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7785,
   "name": "b_1E69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7797,
   "name": "b_1E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7800,
   "name": "b_1E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7812,
   "name": "b_1E84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7815,
   "name": "b_1E87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7827,
   "name": "b_1E93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7830,
   "name": "b_1E96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7833,
   "name": "next_mirror_buffer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7886,
   "name": "b_1ECE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7897,
   "name": "b_1ED9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7925,
   "name": "decode_part_mirrored",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7979,
   "name": "b_1F2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8024,
   "name": "j_1F58",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8034,
   "name": "b_1F62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8038,
   "name": "a_1F66",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8039,
   "name": "a_1F67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8052,
   "name": "a_1F74",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8053,
   "name": "a_1F75",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8054,
   "name": "j_1F76",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8059,
   "name": "a_1F7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8060,
   "name": "a_1F7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8073,
   "name": "a_1F89",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8074,
   "name": "a_1F8A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8075,
   "name": "j_1F8B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8080,
   "name": "a_1F90",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8081,
   "name": "a_1F91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8094,
   "name": "a_1F9E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8095,
   "name": "a_1F9F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8096,
   "name": "j_1FA0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8107,
   "name": "b_1FAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8112,
   "name": "a_1FB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8113,
   "name": "a_1FB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8122,
   "name": "b_1FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8123,
   "name": "a_1FBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8124,
   "name": "a_1FBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8129,
   "name": "b_1FC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8130,
   "name": "a_1FC2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8131,
   "name": "a_1FC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8136,
   "name": "b_1FC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8137,
   "name": "a_1FC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8138,
   "name": "a_1FCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8145,
   "name": "b_1FD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8150,
   "name": "a_1FD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8151,
   "name": "a_1FD7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8162,
   "name": "b_1FE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8167,
   "name": "a_1FE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8168,
   "name": "a_1FE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8179,
   "name": "b_1FF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8188,
   "name": "b_1FFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8194,
   "name": "tail_jmp_1f8b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8197,
   "name": "b_2005",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8206,
   "name": "copy_fighter_sprite_shape",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8242,
   "name": "b_2032",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8267,
   "name": "b_204B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8279,
   "name": "b_2057",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8293,
   "name": "r_2065",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8294,
   "name": "b_2066",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8298,
   "name": "b_206A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8340,
   "name": "r_2094",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8341,
   "name": "flip_sprite_shape_vertically",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8343,
   "name": "b_2097",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8373,
   "name": "load_fighter_frame_attributes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8417,
   "name": "vflip_row_partner",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8447,
   "name": "tbl_20ff_unknown",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8449,
   "name": "game_restart",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8455,
   "name": "j_2107",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8461,
   "name": "play_one_game",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8567,
   "name": "b_2177",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8598,
   "name": "b_2196",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8637,
   "name": "b_21BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8654,
   "name": "b_21CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8673,
   "name": "r_21E1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8674,
   "name": "play_loop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8705,
   "name": "b_2201",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8733,
   "name": "b_221D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8749,
   "name": "b_222D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8762,
   "name": "j_223A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8773,
   "name": "b_2245",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8806,
   "name": "b_2266",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8819,
   "name": "b_2273",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8860,
   "name": "b_229C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8869,
   "name": "b_22A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8872,
   "name": "b_22A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8938,
   "name": "b_22EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8963,
   "name": "b_2303",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8973,
   "name": "b_230D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8976,
   "name": "b_2310",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8978,
   "name": "r_2312",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8979,
   "name": "edge_trigger_position",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8981,
   "name": "update_hazard_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9024,
   "name": "r_2340",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9025,
   "name": "b_2341",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9038,
   "name": "b_234E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9051,
   "name": "r_235B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9052,
   "name": "enter_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9069,
   "name": "b_236D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9098,
   "name": "b_238A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9134,
   "name": "b_23AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9136,
   "name": "b_23B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9159,
   "name": "b_23C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9188,
   "name": "b_23E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9196,
   "name": "b_23EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9234,
   "name": "b_2412",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9242,
   "name": "b_241A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9251,
   "name": "b_2423",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9256,
   "name": "b_2428",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9270,
   "name": "entry_x_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9272,
   "name": "step_seed_0430",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9280,
   "name": "b_2440",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9284,
   "name": "check_f5_restart",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9314,
   "name": "b_2462",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9317,
   "name": "b_2465",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9320,
   "name": "reset_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9343,
   "name": "save_high_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9351,
   "name": "r_2487",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9352,
   "name": "compare_score_with_high",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9354,
   "name": "b_248A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9366,
   "name": "b_2496",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9372,
   "name": "r_249C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9373,
   "name": "copy_score_to_high",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9375,
   "name": "b_249F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9385,
   "name": "add_hit_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9404,
   "name": "b_24BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9411,
   "name": "score_add_100",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9424,
   "name": "b_24D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9452,
   "name": "b_24EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9480,
   "name": "b_2508",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9508,
   "name": "b_2524",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9538,
   "name": "r_2542",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9539,
   "name": "damage_other_fighter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9541,
   "name": "damage_fighter_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9549,
   "name": "damage_amount_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9554,
   "name": "b_2552",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9558,
   "name": "draw_energy_bars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9571,
   "name": "draw_hero_energy_bar",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9586,
   "name": "b_2572",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9589,
   "name": "j_2575",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9615,
   "name": "b_258F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9624,
   "name": "b_2598",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9634,
   "name": "b_25A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9646,
   "name": "b_25AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9657,
   "name": "b_25B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9663,
   "name": "b_25BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9669,
   "name": "b_25C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9682,
   "name": "draw_opponent_energy_bar",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9697,
   "name": "b_25E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9700,
   "name": "j_25E4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9735,
   "name": "b_2607",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9744,
   "name": "b_2610",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9754,
   "name": "b_261A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9766,
   "name": "b_2626",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9777,
   "name": "b_2631",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9784,
   "name": "b_2638",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9796,
   "name": "r_2644",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9797,
   "name": "clear_energy_bar_row",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9799,
   "name": "b_2647",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9818,
   "name": "fighter_distance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9855,
   "name": "reset_fighter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9885,
   "name": "set_fighter_graphics",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9908,
   "name": "gfx_set_48",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9913,
   "name": "gfx_set_50",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9918,
   "name": "gfx_set_52",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9923,
   "name": "gfx_set_5e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9928,
   "name": "reset_hero",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9961,
   "name": "spawn_opponent",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9989,
   "name": "b_2705",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9995,
   "name": "b_270B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10055,
   "name": "b_2747",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10078,
   "name": "b_275E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10113,
   "name": "r_2781",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10114,
   "name": "spawn_offset_by_direction",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10116,
   "name": "reset_encounters",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10118,
   "name": "b_2786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10138,
   "name": "b_279A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10145,
   "name": "opponent_beaten",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10182,
   "name": "b_27C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10199,
   "name": "b_27D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10204,
   "name": "end_fight",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10229,
   "name": "scan_encounters",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10231,
   "name": "b_27F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10239,
   "name": "b_27FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10253,
   "name": "b_280D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10289,
   "name": "b_2831",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10303,
   "name": "b_283F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10315,
   "name": "b_284B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10333,
   "name": "b_285D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10335,
   "name": "j_285F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10340,
   "name": "b_2864",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10416,
   "name": "b_28B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10421,
   "name": "r_28B5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10422,
   "name": "b_28B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10491,
   "name": "b_28FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10505,
   "name": "b_2909",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10526,
   "name": "r_291E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10527,
   "name": "b_291F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10568,
   "name": "b_2948",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10577,
   "name": "b_2951",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10593,
   "name": "scroll_offset_by_direction",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10595,
   "name": "launch_hazard_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10644,
   "name": "hazard_x_offset_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10646,
   "name": "hazard_x_offset_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10648,
   "name": "place_hazard_near_hero",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10662,
   "name": "b_29A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10691,
   "name": "b_29C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10718,
   "name": "j_29DE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10748,
   "name": "b_29FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10751,
   "name": "move_hazard_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10823,
   "name": "b_2A47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10837,
   "name": "b_2A55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10839,
   "name": "b_2A57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10849,
   "name": "b_2A61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10859,
   "name": "b_2A6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10871,
   "name": "b_2A77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10885,
   "name": "b_2A85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10887,
   "name": "b_2A87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10902,
   "name": "j_2A96",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10922,
   "name": "b_2AAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10965,
   "name": "b_2AD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10969,
   "name": "b_2AD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10983,
   "name": "b_2AE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10985,
   "name": "b_2AE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10990,
   "name": "j_2AEE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11001,
   "name": "b_2AF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11003,
   "name": "b_2AFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11011,
   "name": "r_2B03",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11012,
   "name": "b_2B04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11055,
   "name": "b_2B2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11067,
   "name": "hazard_hit_margin",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11079,
   "name": "update_hazard_kind_other",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11096,
   "name": "b_2B58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11160,
   "name": "r_2B98",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11161,
   "name": "hazard_split_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11163,
   "name": "update_hazard_second",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11198,
   "name": "b_2BBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11215,
   "name": "b_2BCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11251,
   "name": "b_2BF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11255,
   "name": "b_2BF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11269,
   "name": "b_2C05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11273,
   "name": "j_2C09",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11290,
   "name": "b_2C1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11300,
   "name": "r_2C24",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11301,
   "name": "collect_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11341,
   "name": "b_2C4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11350,
   "name": "b_2C56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11387,
   "name": "r_2C7B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11388,
   "name": "check_fighters_apart",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11401,
   "name": "b_2C89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11405,
   "name": "b_2C8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11409,
   "name": "b_2C91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11411,
   "name": "b_2C93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11435,
   "name": "b_2CAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11437,
   "name": "b_2CAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11440,
   "name": "r_2CB0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11441,
   "name": "b_2CB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11452,
   "name": "deliver_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11488,
   "name": "b_2CE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11492,
   "name": "energy_regen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11534,
   "name": "b_2D0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11540,
   "name": "b_2D14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11568,
   "name": "r_2D30",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11569,
   "name": "regen_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11570,
   "name": "lives",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11571,
   "name": "respawn_room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11572,
   "name": "colour_status_row1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11574,
   "name": "b_2D36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11583,
   "name": "clear_status_row1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11587,
   "name": "b_2D43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11594,
   "name": "icon_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11607,
   "name": "blink_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11632,
   "name": "blink_icon_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11655,
   "name": "b_2D87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11663,
   "name": "r_2D8F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11664,
   "name": "dead_code_2d90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11671,
   "name": "draw_scroll_icon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11679,
   "name": "put_scroll_icon_chars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11692,
   "name": "draw_all_scroll_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11694,
   "name": "b_2DAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11701,
   "name": "final_scene",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11769,
   "name": "b_2DF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11790,
   "name": "opponent_ai",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11808,
   "name": "b_2E20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11812,
   "name": "r_2E24",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11813,
   "name": "b_2E25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11820,
   "name": "b_2E2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11844,
   "name": "b_2E44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11846,
   "name": "b_2E46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11849,
   "name": "b_2E49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11861,
   "name": "b_2E55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11864,
   "name": "b_2E58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11884,
   "name": "b_2E6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11893,
   "name": "b_2E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11900,
   "name": "b_2E7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11909,
   "name": "b_2E85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11942,
   "name": "b_2EA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11964,
   "name": "b_2EBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11969,
   "name": "b_2EC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11991,
   "name": "b_2ED7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11994,
   "name": "b_2EDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12004,
   "name": "b_2EE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12030,
   "name": "b_2EFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12032,
   "name": "b_2F00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12037,
   "name": "b_2F05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12061,
   "name": "b_2F1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12064,
   "name": "b_2F20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12067,
   "name": "b_2F23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12081,
   "name": "j_2F31",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12111,
   "name": "b_2F4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12126,
   "name": "b_2F5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12140,
   "name": "b_2F6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12145,
   "name": "b_2F71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12164,
   "name": "b_2F84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12167,
   "name": "j_2F87",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12182,
   "name": "b_2F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12210,
   "name": "b_2FB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12226,
   "name": "b_2FC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12233,
   "name": "b_2FC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12243,
   "name": "b_2FD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12246,
   "name": "j_2FD6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12264,
   "name": "b_2FE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12275,
   "name": "b_2FF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12278,
   "name": "b_2FF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12286,
   "name": "j_2FFE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12298,
   "name": "b_300A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12327,
   "name": "b_3027",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12341,
   "name": "b_3035",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12350,
   "name": "b_303E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12361,
   "name": "b_3049",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12374,
   "name": "b_3056",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12391,
   "name": "b_3067",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12410,
   "name": "b_307A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12423,
   "name": "b_3087",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12433,
   "name": "b_3091",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12438,
   "name": "b_3096",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12441,
   "name": "j_3099",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12448,
   "name": "dead_jmp_2f6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12451,
   "name": "ai_choose_attack",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12462,
   "name": "b_30AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12470,
   "name": "b_30B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12477,
   "name": "b_30BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12488,
   "name": "j_30C8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12519,
   "name": "b_30E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12536,
   "name": "b_30F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12549,
   "name": "b_3105",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12558,
   "name": "j_310E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12574,
   "name": "j_311E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12593,
   "name": "b_3131",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12599,
   "name": "b_3137",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12602,
   "name": "b_313A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12609,
   "name": "random",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12617,
   "name": "b_3149",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12621,
   "name": "init_ai_style",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12698,
   "name": "ai_combo_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12721,
   "name": "b_31B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12732,
   "name": "ai_combo_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12743,
   "name": "ai_combo_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12754,
   "name": "ai_combo_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12769,
   "name": "b_31E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12776,
   "name": "ai_combo_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12784,
   "name": "b_31F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12791,
   "name": "ai_combo_6",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12800,
   "name": "b_3200",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12802,
   "name": "b_3202",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12811,
   "name": "ai_combo_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12822,
   "name": "b_3216",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12824,
   "name": "b_3218",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12833,
   "name": "ai_combo_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12846,
   "name": "b_322E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12851,
   "name": "run_ai_combo",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12866,
   "name": "ai_vary_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12890,
   "name": "b_325A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12894,
   "name": "b_325E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12906,
   "name": "ai_combo_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12929,
   "name": "b_3281",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12936,
   "name": "ai_combo_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12937,
   "name": "ai_combo_table_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12956,
   "name": "ai_counter_move",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12968,
   "name": "ai_moves_vs_14",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12972,
   "name": "ai_moves_vs_15",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12976,
   "name": "ai_style_aggression",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12988,
   "name": "ai_style_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13000,
   "name": "ai_attack_near",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13019,
   "name": "ai_attack_facing",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13041,
   "name": "ai_random_moves",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13049,
   "name": "update_fighter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13071,
   "name": "b_330F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13084,
   "name": "b_331C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13093,
   "name": "b_3325",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13117,
   "name": "r_333D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13118,
   "name": "b_333E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13123,
   "name": "choose_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13131,
   "name": "b_334B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13146,
   "name": "b_335A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13154,
   "name": "b_3362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13177,
   "name": "b_3379",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13194,
   "name": "b_338A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13200,
   "name": "r_3390",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13201,
   "name": "read_joystick",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13234,
   "name": "b_33B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13250,
   "name": "r_33C2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13251,
   "name": "joystick_move_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13283,
   "name": "move_allowed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13286,
   "name": "move_allowed_03",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13290,
   "name": "move_allowed_07",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13292,
   "name": "move_allowed_09",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13293,
   "name": "move_allowed_0a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13299,
   "name": "move_allowed_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13300,
   "name": "move_allowed_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13301,
   "name": "move_allowed_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13302,
   "name": "commit_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13312,
   "name": "b_3400",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13341,
   "name": "b_341D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13346,
   "name": "r_3422",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13347,
   "name": "b_3423",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13367,
   "name": "r_3437",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13368,
   "name": "b_3438",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13380,
   "name": "b_3444",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13385,
   "name": "b_3449",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13390,
   "name": "b_344E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13404,
   "name": "b_345C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13418,
   "name": "r_346A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13419,
   "name": "b_346B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13437,
   "name": "b_347D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13457,
   "name": "r_3491",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13458,
   "name": "b_3492",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13467,
   "name": "b_349B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13493,
   "name": "b_34B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13528,
   "name": "b_34D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13541,
   "name": "b_34E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13548,
   "name": "b_34EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13552,
   "name": "b_34F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13557,
   "name": "b_34F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13569,
   "name": "b_3501",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13572,
   "name": "resolve_fighter_state",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13622,
   "name": "b_3536",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13625,
   "name": "b_3539",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13654,
   "name": "r_3556",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13655,
   "name": "b_3557",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13665,
   "name": "b_3561",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13681,
   "name": "b_3571",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13683,
   "name": "b_3573",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13689,
   "name": "b_3579",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13719,
   "name": "b_3597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13738,
   "name": "b_35AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13777,
   "name": "b_35D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13799,
   "name": "b_35E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13801,
   "name": "b_35E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13813,
   "name": "b_35F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13827,
   "name": "b_3603",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13832,
   "name": "b_3608",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13840,
   "name": "b_3610",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13846,
   "name": "b_3616",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13853,
   "name": "b_361D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13860,
   "name": "b_3624",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13873,
   "name": "b_3631",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13880,
   "name": "b_3638",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13887,
   "name": "b_363F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13896,
   "name": "b_3648",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13900,
   "name": "b_364C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13908,
   "name": "j_3654",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13924,
   "name": "location_action",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13940,
   "name": "b_3674",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13943,
   "name": "b_3677",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13990,
   "name": "b_36A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13992,
   "name": "b_36A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14010,
   "name": "r_36BA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14011,
   "name": "b_36BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14053,
   "name": "b_36E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14066,
   "name": "b_36F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14068,
   "name": "b_36F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14073,
   "name": "b_36F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14079,
   "name": "r_36FF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14080,
   "name": "b_3700",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14100,
   "name": "b_3714",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14105,
   "name": "b_3719",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14109,
   "name": "b_371D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14119,
   "name": "b_3727",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14127,
   "name": "b_372F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14143,
   "name": "animate_fighter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14164,
   "name": "b_3754",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14172,
   "name": "b_375C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14182,
   "name": "b_3766",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14186,
   "name": "b_376A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14189,
   "name": "test_strike",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14212,
   "name": "b_3784",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14216,
   "name": "b_3788",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14235,
   "name": "r_379B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14236,
   "name": "test_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14262,
   "name": "b_37B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14279,
   "name": "j_37C7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14309,
   "name": "b_37E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14312,
   "name": "j_37E8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14335,
   "name": "r_37FF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14336,
   "name": "b_3800",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14345,
   "name": "b_3809",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14364,
   "name": "b_381C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14375,
   "name": "j_3827",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14405,
   "name": "b_3845",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14408,
   "name": "j_3848",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14439,
   "name": "r_3867",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14440,
   "name": "b_3868",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14459,
   "name": "j_387B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14473,
   "name": "b_3889",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14489,
   "name": "b_3899",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14515,
   "name": "b_38B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14532,
   "name": "j_38C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14538,
   "name": "b_38CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14544,
   "name": "b_38D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14561,
   "name": "j_38E1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14567,
   "name": "b_38E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14573,
   "name": "b_38ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14590,
   "name": "j_38FE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14596,
   "name": "b_3904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14602,
   "name": "b_390A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14612,
   "name": "in_range",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14631,
   "name": "b_3927",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14634,
   "name": "j_392A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14657,
   "name": "b_3941",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14660,
   "name": "b_3944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14663,
   "name": "b_3947",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14673,
   "name": "b_3951",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14676,
   "name": "j_3954",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14702,
   "name": "return_396e",
   "type": "Return",
   "kind": "user"
  },
  {
   "address": 14703,
   "name": "meditate_refill",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14719,
   "name": "b_397F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14726,
   "name": "irq_mux_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14735,
   "name": "b_398F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14737,
   "name": "a_3991",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14753,
   "name": "a_39A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14758,
   "name": "a_39A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14763,
   "name": "a_39AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14766,
   "name": "a_39AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14768,
   "name": "a_39B0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14771,
   "name": "a_39B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14773,
   "name": "a_39B5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14776,
   "name": "a_39B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14778,
   "name": "a_39BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14783,
   "name": "rti_reset_vector",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14784,
   "name": "irq_mux_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14793,
   "name": "b_39C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14795,
   "name": "a_39CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14811,
   "name": "a_39DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14816,
   "name": "a_39E0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14821,
   "name": "a_39E5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14824,
   "name": "a_39E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14826,
   "name": "a_39EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14829,
   "name": "a_39ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14831,
   "name": "a_39EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14834,
   "name": "a_39F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14836,
   "name": "a_39F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14842,
   "name": "irq_mux_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14851,
   "name": "b_3A03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14853,
   "name": "a_3A05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14869,
   "name": "a_3A15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14874,
   "name": "a_3A1A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14880,
   "name": "a_3A20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14883,
   "name": "a_3A23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14885,
   "name": "a_3A25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14888,
   "name": "a_3A28",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14890,
   "name": "a_3A2A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14893,
   "name": "a_3A2D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14895,
   "name": "a_3A2F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14901,
   "name": "irq_mux_d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14910,
   "name": "b_3A3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14912,
   "name": "a_3A40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14928,
   "name": "a_3A50",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14933,
   "name": "a_3A55",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14939,
   "name": "a_3A5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14942,
   "name": "a_3A5E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14944,
   "name": "a_3A60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14947,
   "name": "a_3A63",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14949,
   "name": "a_3A65",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14952,
   "name": "a_3A68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14954,
   "name": "a_3A6A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14960,
   "name": "irq_mux_e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14969,
   "name": "b_3A79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14971,
   "name": "a_3A7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14972,
   "name": "b_3A7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14978,
   "name": "a_3A82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15003,
   "name": "a_3A9B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15010,
   "name": "a_3AA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15013,
   "name": "a_3AA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15015,
   "name": "a_3AA7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15018,
   "name": "a_3AAA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15020,
   "name": "a_3AAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15023,
   "name": "a_3AAF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15025,
   "name": "a_3AB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15028,
   "name": "a_3AB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15030,
   "name": "a_3AB6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15033,
   "name": "a_3AB9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15035,
   "name": "a_3ABB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15038,
   "name": "a_3ABE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15040,
   "name": "a_3AC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15045,
   "name": "a_3AC5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15051,
   "name": "irq_mux_f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15060,
   "name": "b_3AD4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15062,
   "name": "a_3AD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15063,
   "name": "b_3AD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15069,
   "name": "a_3ADD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15094,
   "name": "a_3AF6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15101,
   "name": "a_3AFD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15104,
   "name": "a_3B00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15106,
   "name": "a_3B02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15109,
   "name": "a_3B05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15111,
   "name": "a_3B07",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15114,
   "name": "a_3B0A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15116,
   "name": "a_3B0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15119,
   "name": "a_3B0F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15121,
   "name": "a_3B11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15124,
   "name": "a_3B14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15126,
   "name": "a_3B16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15129,
   "name": "a_3B19",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15131,
   "name": "a_3B1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15136,
   "name": "a_3B20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15142,
   "name": "irq_mux_g",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15151,
   "name": "b_3B2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15153,
   "name": "a_3B31",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15164,
   "name": "a_3B3C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15180,
   "name": "a_3B4C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15185,
   "name": "a_3B51",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15190,
   "name": "a_3B56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15195,
   "name": "a_3B5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15198,
   "name": "a_3B5E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15200,
   "name": "a_3B60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15203,
   "name": "a_3B63",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15205,
   "name": "a_3B65",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15208,
   "name": "a_3B68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15213,
   "name": "a_3B6D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15216,
   "name": "a_3B70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15218,
   "name": "a_3B72",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15221,
   "name": "a_3B75",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15223,
   "name": "a_3B77",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15226,
   "name": "a_3B7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15229,
   "name": "irq_mux_h",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15238,
   "name": "b_3B86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15240,
   "name": "a_3B88",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15251,
   "name": "a_3B93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15267,
   "name": "a_3BA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15272,
   "name": "a_3BA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15277,
   "name": "a_3BAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15282,
   "name": "a_3BB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15285,
   "name": "a_3BB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15287,
   "name": "a_3BB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15290,
   "name": "a_3BBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15292,
   "name": "a_3BBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15295,
   "name": "a_3BBF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15300,
   "name": "a_3BC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15303,
   "name": "a_3BC7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15305,
   "name": "a_3BC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15308,
   "name": "a_3BCC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15310,
   "name": "a_3BCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15313,
   "name": "a_3BD1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15316,
   "name": "irq_play_area",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15325,
   "name": "b_3BDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15332,
   "name": "a_3BE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15337,
   "name": "a_3BE9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15342,
   "name": "a_3BEE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15394,
   "name": "unused_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15395,
   "name": "nmi_restore_pause",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15408,
   "name": "b_3C30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15419,
   "name": "irq_mux_i",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15428,
   "name": "b_3C44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15441,
   "name": "a_3C51",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15444,
   "name": "a_3C54",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15446,
   "name": "a_3C56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15449,
   "name": "a_3C59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15451,
   "name": "a_3C5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15454,
   "name": "a_3C5E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15477,
   "name": "irq_mux_j",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15486,
   "name": "b_3C7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15499,
   "name": "a_3C8B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15502,
   "name": "a_3C8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15504,
   "name": "a_3C90",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15507,
   "name": "a_3C93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15509,
   "name": "a_3C95",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15512,
   "name": "a_3C98",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15535,
   "name": "irq_mux_k",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15544,
   "name": "b_3CB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15566,
   "name": "a_3CCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15569,
   "name": "a_3CD1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15571,
   "name": "a_3CD3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15574,
   "name": "a_3CD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15576,
   "name": "a_3CD8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15579,
   "name": "a_3CDB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15581,
   "name": "a_3CDD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15584,
   "name": "a_3CE0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15586,
   "name": "a_3CE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15589,
   "name": "a_3CE5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15591,
   "name": "a_3CE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15594,
   "name": "a_3CEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15617,
   "name": "irq_handler_shaped_3d01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15649,
   "name": "irq_status_band",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15658,
   "name": "b_3D2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15750,
   "name": "status_band_exit",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15754,
   "name": "unused_rti_3d8a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15755,
   "name": "irq_sample_tick",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15791,
   "name": "b_3DAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15800,
   "name": "play_sample",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15805,
   "name": "b_3DBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15822,
   "name": "start_sample_timers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15884,
   "name": "sample_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15886,
   "name": "phase_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15887,
   "name": "phase2_repeats",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15888,
   "name": "phase3_repeats",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15889,
   "name": "sample_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15890,
   "name": "repeats_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15891,
   "name": "level_target",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15892,
   "name": "level_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15893,
   "name": "level_countdown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15894,
   "name": "sample_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15895,
   "name": "sample_finished",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15896,
   "name": "sample_eor_level",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15897,
   "name": "sample_requested",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15898,
   "name": "update_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15918,
   "name": "run_sample_phase",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15928,
   "name": "r_3E38",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15929,
   "name": "stop_if_idle",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15939,
   "name": "r_3E43",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15940,
   "name": "stop_sample",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15961,
   "name": "sample_phase_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15962,
   "name": "sample_phase_table_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15969,
   "name": "dispatch_sample_phase",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15987,
   "name": "phase_jump_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15988,
   "name": "a_3E74",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15989,
   "name": "unused_rts_3e75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15990,
   "name": "sample_phase_start",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16000,
   "name": "sample_phase_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16018,
   "name": "b_3E92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16021,
   "name": "r_3E95",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16022,
   "name": "next_sample_phase",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16057,
   "name": "step_countdown",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16070,
   "name": "r_3EC6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16071,
   "name": "sample_phase_ramp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16084,
   "name": "b_3ED4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16100,
   "name": "b_3EE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16103,
   "name": "r_3EE7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16104,
   "name": "step_level",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16127,
   "name": "r_3EFF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16128,
   "name": "envelope_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16131,
   "name": "envelope_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16134,
   "name": "envelope_targets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16137,
   "name": "load_sample",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16203,
   "name": "check_sample_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16226,
   "name": "r_3F62",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16227,
   "name": "unused_3f63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16231,
   "name": "irq_top_of_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16240,
   "name": "b_3F70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16296,
   "name": "b_3FA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16314,
   "name": "b_3FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16335,
   "name": "b_3FCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16360,
   "name": "b_3FE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16368,
   "name": "j_3FF0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16384,
   "name": "irq234_plan_fighter_splits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16426,
   "name": "b_402A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16430,
   "name": "b_402E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16433,
   "name": "b_4031",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16457,
   "name": "b_4049",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16479,
   "name": "b_405F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16524,
   "name": "b_408C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16551,
   "name": "irq234_default_chain",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16566,
   "name": "irq234_copy_row_pointers",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16630,
   "name": "irq234_pick_layout",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16647,
   "name": "b_4107",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16655,
   "name": "b_410F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16673,
   "name": "b_4121",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16683,
   "name": "b_412B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16688,
   "name": "b_4130",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16697,
   "name": "b_4139",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16702,
   "name": "b_413E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16709,
   "name": "b_4145",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16712,
   "name": "j_4148",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16716,
   "name": "b_414C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16721,
   "name": "b_4151",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16728,
   "name": "b_4158",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16731,
   "name": "layout_same_row",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16809,
   "name": "layout_a_above_close",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16943,
   "name": "b_422F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16946,
   "name": "layout_b_above_close",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17080,
   "name": "b_42B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17083,
   "name": "layout_a_above_by_14",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17197,
   "name": "b_432D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17200,
   "name": "layout_b_above_by_14",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17314,
   "name": "b_43A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17317,
   "name": "layout_a_above_far",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17451,
   "name": "b_442B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17454,
   "name": "layout_b_above_far",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17588,
   "name": "b_44B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17591,
   "name": "layout_only_a_shown",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17675,
   "name": "b_450B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17678,
   "name": "layout_only_b_shown",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17768,
   "name": "b_4568",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17771,
   "name": "place_fighter_a_sprites",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 17793,
   "name": "b_4581",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17863,
   "name": "b_45C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17872,
   "name": "b_45D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17882,
   "name": "b_45DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17887,
   "name": "place_fighter_a_extra",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17922,
   "name": "b_4602",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17931,
   "name": "j_460B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17950,
   "name": "b_461E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17967,
   "name": "b_462F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17970,
   "name": "b_4632",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17992,
   "name": "b_4648",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18018,
   "name": "b_4662",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18032,
   "name": "b_4670",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18049,
   "name": "b_4681",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18052,
   "name": "b_4684",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18070,
   "name": "b_4696",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18084,
   "name": "b_46A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18092,
   "name": "place_fighter_b_sprites",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 18107,
   "name": "b_46BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18125,
   "name": "b_46CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18134,
   "name": "b_46D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18147,
   "name": "b_46E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18232,
   "name": "b_4738",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18241,
   "name": "j_4741",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 18260,
   "name": "b_4754",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18280,
   "name": "b_4768",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18299,
   "name": "b_477B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18302,
   "name": "b_477E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18328,
   "name": "b_4798",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18342,
   "name": "b_47A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18362,
   "name": "b_47BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18380,
   "name": "j_47CC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 18394,
   "name": "b_47DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18402,
   "name": "irq234_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 18428,
   "name": "b_47FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18434,
   "name": "fighter_a_msb_bits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18438,
   "name": "f_4806",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18442,
   "name": "patch_a_row2_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18471,
   "name": "patch_a_row3_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18500,
   "name": "patch_b_row2_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18529,
   "name": "patch_b_row3_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18558,
   "name": "patch_both_row2_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18613,
   "name": "patch_both_row3_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18668,
   "name": "patch_gap14_a_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18723,
   "name": "dead_patch_variant_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18760,
   "name": "patch_gap14_b_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18815,
   "name": "dead_patch_variant_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18852,
   "name": "fighter_screen_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18883,
   "name": "b_49C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18928,
   "name": "b_49F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18943,
   "name": "b_49FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18951,
   "name": "b_4A07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18965,
   "name": "b_4A15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18974,
   "name": "b_4A1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18989,
   "name": "lend_sprites_to_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18991,
   "name": "b_4A2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19001,
   "name": "move_fighter_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19015,
   "name": "b_4A47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19041,
   "name": "r_4A61",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 19042,
   "name": "unused_4a62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19053,
   "name": "ptr_screen_exits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19054,
   "name": "a_4A6E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19055,
   "name": "a_4A6F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19056,
   "name": "a_4A70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19057,
   "name": "screen_area_table",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19180,
   "name": "screen_exit_lists",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19964,
   "name": "screen_exit_lists_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20211,
   "name": "s_4EF3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20480,
   "name": "a_5000",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20507,
   "name": "ptr_item_lists",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20508,
   "name": "a_501C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20509,
   "name": "item_list_area_base",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20510,
   "name": "item_list_ptrs",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20720,
   "name": "item_lists",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20852,
   "name": "f_5174",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20860,
   "name": "f_517C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20868,
   "name": "f_5184",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20885,
   "name": "item_lists_from_5195",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21233,
   "name": "unused_52f1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21238,
   "name": "scn0_shape_ptr_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21296,
   "name": "scn0_shape_ptr_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21354,
   "name": "scn0_shape_width",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21412,
   "name": "scn0_shape_height",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21470,
   "name": "scn0_group_ptr_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21486,
   "name": "scn0_group_ptr_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21502,
   "name": "scn0_group_width",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21518,
   "name": "scn0_shape_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "scn0_shape_chars_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22658,
   "name": "scn0_groups",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23463,
   "name": "scn0_area_list_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23464,
   "name": "f_5BA8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23479,
   "name": "f_5BB7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23480,
   "name": "f_5BB8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23495,
   "name": "f_5BC7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23496,
   "name": "f_5BC8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23511,
   "name": "scn0_area_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23952,
   "name": "scn1_shape_ptr_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24004,
   "name": "scn1_shape_ptr_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24056,
   "name": "scn1_shape_width",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24108,
   "name": "scn1_shape_height",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24160,
   "name": "scn1_group_ptr_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24191,
   "name": "scn1_group_ptr_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24222,
   "name": "scn1_group_width",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24253,
   "name": "scn1_shape_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "set1_shape_chars_cont",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25516,
   "name": "set1_composites",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "set1_composites_6400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26112,
   "name": "set1_composites_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26708,
   "name": "set1_area_obj_x_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26709,
   "name": "set1_area_obj_x_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26752,
   "name": "set1_area_obj_y_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26753,
   "name": "set1_area_obj_y_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26796,
   "name": "set1_area_obj_type_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26797,
   "name": "set1_area_obj_type_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26840,
   "name": "set1_area_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27864,
   "name": "set1_area_objects_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28142,
   "name": "set2_shape_offset_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28196,
   "name": "set2_shape_offset_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28250,
   "name": "set2_shape_width",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28304,
   "name": "set2_shape_height",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28358,
   "name": "set2_composite_offset_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28392,
   "name": "set2_composite_offset_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28426,
   "name": "set2_composite_d7_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28460,
   "name": "set2_shape_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29484,
   "name": "set2_shape_chars_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29862,
   "name": "set2_composites",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30838,
   "name": "set2_area_obj_x_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30839,
   "name": "set2_area_obj_x_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30874,
   "name": "set2_area_obj_y_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30875,
   "name": "set2_area_obj_y_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30910,
   "name": "set2_area_obj_type_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30911,
   "name": "set2_area_obj_type_offsets_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30946,
   "name": "set2_area_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31458,
   "name": "set2_area_objects_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31909,
   "name": "pad_7ca5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31910,
   "name": "strike_reach_facing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32128,
   "name": "strike_reach_facing_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32339,
   "name": "strike_reach_same_facing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32512,
   "name": "strike_reach_same_facing_part2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "sprite_frame_000",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32770,
   "name": "sprite_frame_001",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32843,
   "name": "sprite_frame_002",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32903,
   "name": "sprite_frame_003",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32983,
   "name": "sprite_frame_004",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33063,
   "name": "sprite_frame_005",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33072,
   "name": "sprite_frame_006",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33093,
   "name": "sprite_frame_007",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33166,
   "name": "sprite_frame_008",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33236,
   "name": "sprite_frame_009",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33263,
   "name": "sprite_frame_010",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33285,
   "name": "sprite_frame_011",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33366,
   "name": "sprite_frame_012",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33383,
   "name": "sprite_frame_013",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33462,
   "name": "sprite_frame_014",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33534,
   "name": "sprite_frame_015",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33599,
   "name": "sprite_frame_016",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33612,
   "name": "sprite_frame_017",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33686,
   "name": "sprite_frame_018",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33723,
   "name": "sprite_frame_019",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33803,
   "name": "sprite_frame_020",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33876,
   "name": "sprite_frame_021",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33946,
   "name": "sprite_frame_022",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34002,
   "name": "sprite_frame_023",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34082,
   "name": "sprite_frame_024",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34140,
   "name": "sprite_frame_025",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34184,
   "name": "sprite_frame_026",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34222,
   "name": "sprite_frame_027",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34246,
   "name": "sprite_frame_028",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34317,
   "name": "sprite_frame_029",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34388,
   "name": "sprite_frame_030",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34416,
   "name": "sprite_frame_031",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34440,
   "name": "sprite_frame_032",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34507,
   "name": "sprite_frame_033",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34569,
   "name": "sprite_frame_034",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34608,
   "name": "sprite_frame_035",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34628,
   "name": "sprite_frame_036",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34665,
   "name": "sprite_frame_037",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34736,
   "name": "sprite_frame_038",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34813,
   "name": "sprite_frame_039",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34876,
   "name": "sprite_frame_040",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34957,
   "name": "sprite_frame_041",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35024,
   "name": "sprite_frame_042",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35088,
   "name": "sprite_frame_043",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35141,
   "name": "sprite_frame_044",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35175,
   "name": "sprite_frame_045",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35198,
   "name": "sprite_frame_046",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35221,
   "name": "sprite_frame_047",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35288,
   "name": "sprite_frame_048",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35320,
   "name": "sprite_frame_049",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35401,
   "name": "sprite_frame_050",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35474,
   "name": "sprite_frame_051",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35495,
   "name": "sprite_frame_052",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35515,
   "name": "sprite_frame_053",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35596,
   "name": "sprite_frame_054",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35661,
   "name": "sprite_frame_055",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35734,
   "name": "sprite_frame_056",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35806,
   "name": "sprite_frame_057",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35840,
   "name": "sprite_frame_058",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35902,
   "name": "sprite_frame_059",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35931,
   "name": "sprite_frame_060",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36008,
   "name": "sprite_frame_061",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36031,
   "name": "sprite_frame_062",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36078,
   "name": "sprite_frame_063",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36146,
   "name": "sprite_frame_064",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36213,
   "name": "sprite_frame_065",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36291,
   "name": "sprite_frame_066",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36349,
   "name": "sprite_frame_067",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36426,
   "name": "sprite_frame_068",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36455,
   "name": "sprite_frame_069",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36531,
   "name": "sprite_frame_070",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36614,
   "name": "sprite_frame_071",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36688,
   "name": "sprite_frame_072",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36763,
   "name": "sprite_frame_073",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36840,
   "name": "sprite_frame_074",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36858,
   "name": "sprite_frame_075",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36873,
   "name": "sprite_frame_076",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36941,
   "name": "sprite_frame_077",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36988,
   "name": "sprite_frame_078",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37020,
   "name": "sprite_frame_079",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37101,
   "name": "sprite_frame_080",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37170,
   "name": "sprite_frame_081",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37195,
   "name": "sprite_frame_082",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37262,
   "name": "sprite_frame_083",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37328,
   "name": "sprite_frame_084",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37403,
   "name": "sprite_frame_085",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37459,
   "name": "sprite_frame_086",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37479,
   "name": "sprite_frame_087",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37552,
   "name": "sprite_frame_088",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37614,
   "name": "sprite_frame_089",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37684,
   "name": "sprite_frame_090",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37760,
   "name": "sprite_frame_091",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37840,
   "name": "sprite_frame_092",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37920,
   "name": "sprite_frame_093",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37944,
   "name": "sprite_frame_094",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38016,
   "name": "sprite_frame_095",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38049,
   "name": "sprite_frame_096",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38133,
   "name": "sprite_frame_097",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38204,
   "name": "sprite_frame_098",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38279,
   "name": "sprite_frame_099",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38307,
   "name": "sprite_frame_100",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38378,
   "name": "sprite_frame_101",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38441,
   "name": "sprite_frame_102",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38505,
   "name": "sprite_frame_103",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38573,
   "name": "sprite_frame_104",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38637,
   "name": "sprite_frame_105",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38666,
   "name": "sprite_frame_106",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38735,
   "name": "sprite_frame_107",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38761,
   "name": "sprite_frame_108",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38778,
   "name": "sprite_frame_109",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38858,
   "name": "sprite_frame_110",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38926,
   "name": "sprite_frame_111",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38990,
   "name": "sprite_frame_112",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39022,
   "name": "sprite_frame_113",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39101,
   "name": "sprite_frame_114",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39166,
   "name": "sprite_frame_115",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39239,
   "name": "sprite_frame_116",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39247,
   "name": "sprite_frame_117",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39307,
   "name": "sprite_frame_118",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39379,
   "name": "sprite_frame_119",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39407,
   "name": "sprite_frame_120",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39468,
   "name": "sprite_frame_121",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39541,
   "name": "sprite_frame_122",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39619,
   "name": "sprite_frame_123",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39684,
   "name": "sprite_frame_124",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39763,
   "name": "sprite_frame_125",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39822,
   "name": "sprite_frame_126",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39901,
   "name": "sprite_frame_127",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39958,
   "name": "sprite_frame_128",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40034,
   "name": "sprite_frame_129",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40115,
   "name": "sprite_frame_130",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40199,
   "name": "sprite_frame_131",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40263,
   "name": "sprite_frame_132",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40287,
   "name": "sprite_frame_133",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40318,
   "name": "sprite_frame_134",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40388,
   "name": "sprite_frame_135",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40453,
   "name": "sprite_frame_136",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40485,
   "name": "sprite_frame_137",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40557,
   "name": "sprite_frame_138",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40631,
   "name": "sprite_frame_139",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40696,
   "name": "sprite_frame_140",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40773,
   "name": "sprite_frame_141",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40852,
   "name": "sprite_frame_142",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40918,
   "name": "sprite_frame_143",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "sprite_frame_143_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40989,
   "name": "sprite_frame_144",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41047,
   "name": "sprite_frame_145",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41128,
   "name": "sprite_frame_146",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41184,
   "name": "sprite_frame_147",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41266,
   "name": "sprite_frame_148",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41327,
   "name": "sprite_frame_149",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41409,
   "name": "sprite_frame_150",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41479,
   "name": "sprite_frame_151",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41551,
   "name": "sprite_frame_152",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41622,
   "name": "sprite_frame_153",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41688,
   "name": "sprite_frame_154",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41711,
   "name": "sprite_frame_155",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41778,
   "name": "sprite_frame_156",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41838,
   "name": "sprite_frame_157",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41920,
   "name": "sprite_frame_158",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41991,
   "name": "sprite_frame_159",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42057,
   "name": "sprite_frame_160",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42122,
   "name": "sprite_frame_161",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42169,
   "name": "sprite_frame_162",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42251,
   "name": "sprite_frame_163",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42328,
   "name": "sprite_frame_164",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42330,
   "name": "sprite_frame_165",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42332,
   "name": "sprite_frame_166",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42334,
   "name": "sprite_frame_167",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42336,
   "name": "sprite_frame_168",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42338,
   "name": "sprite_frame_169",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42340,
   "name": "sprite_frame_170",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42414,
   "name": "sprite_frame_171",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42483,
   "name": "sprite_frame_172",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42559,
   "name": "sprite_frame_173",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42640,
   "name": "sprite_frame_174",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42674,
   "name": "sprite_frame_175",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42704,
   "name": "sprite_frame_176",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42780,
   "name": "sprite_frame_177",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42858,
   "name": "sprite_frame_178",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42878,
   "name": "sprite_frame_179",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42926,
   "name": "sprite_frame_180",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42995,
   "name": "sprite_frame_181",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43049,
   "name": "sprite_frame_182",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43082,
   "name": "sprite_frame_183",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43117,
   "name": "sprite_frame_184",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43155,
   "name": "sprite_frame_185",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43177,
   "name": "sprite_frame_186",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43198,
   "name": "sprite_frame_187",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43277,
   "name": "sprite_frame_188",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43332,
   "name": "sprite_frame_189",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43413,
   "name": "sprite_frame_190",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43478,
   "name": "sprite_frame_191",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43536,
   "name": "sprite_frame_192",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43602,
   "name": "sprite_frame_193",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43625,
   "name": "sprite_frame_194",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43646,
   "name": "sprite_frame_195",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43687,
   "name": "sprite_frame_196",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43753,
   "name": "sprite_frame_197",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43826,
   "name": "sprite_frame_198",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43871,
   "name": "sprite_frame_199",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43913,
   "name": "sprite_frame_200",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43954,
   "name": "sprite_frame_201",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44023,
   "name": "sprite_frame_202",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44067,
   "name": "sprite_frame_203",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44069,
   "name": "sprite_frame_204",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44071,
   "name": "sprite_frame_205",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44073,
   "name": "sprite_frame_206",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44075,
   "name": "sprite_frame_207",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44077,
   "name": "sprite_frame_208",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44079,
   "name": "sprite_frame_209",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44081,
   "name": "sprite_frame_210",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44083,
   "name": "sprite_frame_211",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44085,
   "name": "sprite_frame_212",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44154,
   "name": "sprite_frame_213",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44220,
   "name": "sprite_frame_214",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44293,
   "name": "sprite_frame_215",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44365,
   "name": "sprite_frame_216",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44416,
   "name": "sprite_frame_217",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44465,
   "name": "sprite_frame_218",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44537,
   "name": "sprite_frame_219",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44616,
   "name": "sprite_frame_220",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44646,
   "name": "sprite_frame_221",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44674,
   "name": "sprite_frame_222",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44700,
   "name": "sprite_frame_223",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44719,
   "name": "sprite_frame_224",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44747,
   "name": "sprite_frame_225",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44765,
   "name": "sprite_frame_226",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44780,
   "name": "sprite_frame_227",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44803,
   "name": "sprite_frame_228",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44816,
   "name": "sprite_frame_spare_blank",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44870,
   "name": "anim_script_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44871,
   "name": "f_AF47",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44872,
   "name": "f_AF48",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44936,
   "name": "anim_script_ptrs_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44962,
   "name": "anim_script_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44970,
   "name": "anim_script_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44978,
   "name": "anim_script_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44990,
   "name": "anim_script_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44998,
   "name": "anim_script_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45010,
   "name": "anim_script_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45026,
   "name": "anim_script_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45058,
   "name": "anim_script_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45066,
   "name": "anim_script_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45078,
   "name": "anim_script_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45094,
   "name": "anim_script_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45102,
   "name": "anim_script_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45106,
   "name": "anim_script_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45126,
   "name": "anim_script_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45146,
   "name": "anim_script_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45150,
   "name": "anim_script_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45162,
   "name": "anim_script_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45190,
   "name": "anim_script_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45218,
   "name": "anim_script_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45222,
   "name": "anim_script_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45226,
   "name": "anim_script_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45230,
   "name": "anim_script_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45238,
   "name": "anim_script_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45266,
   "name": "anim_script_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45302,
   "name": "anim_script_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45314,
   "name": "anim_script_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45342,
   "name": "anim_script_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45346,
   "name": "anim_script_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45350,
   "name": "anim_script_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45378,
   "name": "anim_script_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45390,
   "name": "anim_script_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45402,
   "name": "anim_script_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45414,
   "name": "anim_script_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45426,
   "name": "anim_script_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45430,
   "name": "anim_script_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45442,
   "name": "anim_script_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45466,
   "name": "anim_script_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45478,
   "name": "anim_script_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45482,
   "name": "anim_script_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45486,
   "name": "anim_script_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45490,
   "name": "anim_script_41",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45502,
   "name": "anim_script_42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45506,
   "name": "anim_script_43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45522,
   "name": "anim_script_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45538,
   "name": "anim_script_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45584,
   "name": "pose_frame_slot0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45657,
   "name": "pose_frame_slot1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45730,
   "name": "pose_frame_slot2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45803,
   "name": "pose_frame_slot3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45876,
   "name": "pose_frame_slot4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45949,
   "name": "pose_frame_slot5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46022,
   "name": "pose_frame_slot6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46095,
   "name": "pose_frame_slot7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46168,
   "name": "pose_frame_slot8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46241,
   "name": "pose_attr_18",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46314,
   "name": "pose_attr_1a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46387,
   "name": "pose_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46460,
   "name": "sprite_frame_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46689,
   "name": "sprite_frame_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46918,
   "name": "head_sprites_b740",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46976,
   "name": "head_sprite_00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47040,
   "name": "head_sprite_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47104,
   "name": "head_sprite_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47168,
   "name": "head_sprite_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47232,
   "name": "head_sprite_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47296,
   "name": "head_sprite_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47360,
   "name": "head_sprite_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47363,
   "name": "a_B903",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47364,
   "name": "a_B904",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47365,
   "name": "a_B905",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47366,
   "name": "a_B906",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47367,
   "name": "a_B907",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47368,
   "name": "a_B908",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47369,
   "name": "a_B909",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47370,
   "name": "a_B90A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47424,
   "name": "head_sprite_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47488,
   "name": "head_sprite_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47552,
   "name": "head_sprite_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47616,
   "name": "head_sprite_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47680,
   "name": "head_sprite_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47744,
   "name": "head_sprite_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47808,
   "name": "head_sprite_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47872,
   "name": "head_sprite_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47936,
   "name": "head_sprite_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48000,
   "name": "head_sprite_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48064,
   "name": "head_sprite_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48128,
   "name": "head_sprite_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48192,
   "name": "head_sprite_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48256,
   "name": "head_sprite_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48320,
   "name": "head_sprite_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48384,
   "name": "head_sprite_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48448,
   "name": "head_sprite_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48512,
   "name": "head_sprite_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48576,
   "name": "head_sprite_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48640,
   "name": "head_sprite_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48704,
   "name": "head_sprite_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48768,
   "name": "head_sprite_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48832,
   "name": "unk_bec0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48838,
   "name": "sample_params",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48839,
   "name": "f_BEC7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48840,
   "name": "f_BEC8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48841,
   "name": "f_BEC9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48874,
   "name": "unk_beea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48896,
   "name": "mirror_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "loader_entry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49172,
   "name": "loader_stray_bytes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49174,
   "name": "loader_load_title",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49204,
   "name": "fn_title",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49209,
   "name": "loader_load_tsetup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49216,
   "name": "b_C040",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49246,
   "name": "fn_tsetup",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49252,
   "name": "loader_show_title",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49259,
   "name": "b_C06B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49262,
   "name": "loader_load_bnk4b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49292,
   "name": "fn_bnk4b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49297,
   "name": "loader_copy_bnk4b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49304,
   "name": "b_C098",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49339,
   "name": "b_C0BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49340,
   "name": "smc_c0bc",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49341,
   "name": "smc_c0bd",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49343,
   "name": "smc_c0bf",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49344,
   "name": "smc_c0c0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49353,
   "name": "b_C0C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49361,
   "name": "b_C0D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49369,
   "name": "b_C0D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49373,
   "name": "smc_c0dd",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49375,
   "name": "smc_c0df",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49413,
   "name": "fn_bnk4a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49418,
   "name": "loader_load_bnk3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49425,
   "name": "b_C111",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49455,
   "name": "fn_bnk3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49459,
   "name": "loader_copy_bnk3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49466,
   "name": "b_C13A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49501,
   "name": "b_C15D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49502,
   "name": "smc_c15e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49503,
   "name": "smc_c15f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49505,
   "name": "smc_c161",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49506,
   "name": "smc_c162",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49515,
   "name": "b_C16B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49523,
   "name": "b_C173",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49531,
   "name": "b_C17B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49535,
   "name": "smc_c17f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49537,
   "name": "smc_c181",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49575,
   "name": "fn_bnk12a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49581,
   "name": "loader_load_color",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49588,
   "name": "b_C1B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49621,
   "name": "fn_color",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49626,
   "name": "loader_copy_color",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49633,
   "name": "b_C1E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49668,
   "name": "b_C204",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49669,
   "name": "smc_c205",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49670,
   "name": "smc_c206",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49672,
   "name": "smc_c208",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49673,
   "name": "smc_c209",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49682,
   "name": "b_C212",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49690,
   "name": "b_C21A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49698,
   "name": "b_C222",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49702,
   "name": "smc_c226",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49704,
   "name": "smc_c228",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49742,
   "name": "fn_bnk2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49747,
   "name": "loader_finish",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49754,
   "name": "b_C25A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49765,
   "name": "loader_screen_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49774,
   "name": "loader_screen_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49783,
   "name": "loader_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49792,
   "name": "old_setup_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49795,
   "name": "j_C283",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49824,
   "name": "old_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49850,
   "name": "old_setup_vectors",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49912,
   "name": "old_setup_vic",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49991,
   "name": "old_clear_sprite0",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49995,
   "name": "b_C34B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50002,
   "name": "old_setup_vars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50044,
   "name": "b_C37C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50089,
   "name": "old_copy_tables",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50091,
   "name": "b_C3AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50107,
   "name": "sprite_0f_image",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50173,
   "name": "start_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "startup",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50194,
   "name": "b_C412",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50232,
   "name": "clear_play_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50236,
   "name": "b_C43C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50264,
   "name": "setup_vectors",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50326,
   "name": "setup_vic",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50404,
   "name": "clear_blank_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50408,
   "name": "b_C4E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50415,
   "name": "set_status_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50417,
   "name": "b_C4F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50426,
   "name": "clear_status_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50430,
   "name": "b_C4FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50432,
   "name": "f_C500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50439,
   "name": "sprite_images_14_1b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50944,
   "name": "sample_period_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "sample_period_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51456,
   "name": "sprite_images_24_2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51776,
   "name": "sprite_images_29_2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52224,
   "name": "f_CC00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52225,
   "name": "a_CC01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52226,
   "name": "a_CC02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52227,
   "name": "a_CC03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52228,
   "name": "a_CC04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52229,
   "name": "a_CC05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52230,
   "name": "a_CC06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52257,
   "name": "f_CC21",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52264,
   "name": "f_CC28",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52272,
   "name": "f_CC30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52273,
   "name": "f_CC31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52344,
   "name": "f_CC78",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52480,
   "name": "f_CD00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52736,
   "name": "f_CE00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52984,
   "name": "f_CEF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53185,
   "name": "f_CFC1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53186,
   "name": "a_CFC2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53221,
   "name": "a_CFE5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53222,
   "name": "a_CFE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53224,
   "name": "screen_cc00_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53240,
   "name": "screen_cc00_sprite_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53241,
   "name": "a_CFF9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53242,
   "name": "a_CFFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53243,
   "name": "a_CFFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53245,
   "name": "a_CFFD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53246,
   "name": "a_CFFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53247,
   "name": "a_CFFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53248,
   "name": "charset_play_d000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "charset_play_d000_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "charset_play_d800",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55336,
   "name": "f_D828",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55344,
   "name": "f_D830",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55345,
   "name": "f_D831",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55352,
   "name": "charset_b_d838",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55662,
   "name": "f_D96E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55702,
   "name": "f_D996",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55742,
   "name": "f_D9BE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55782,
   "name": "f_D9E6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55822,
   "name": "f_DA0E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55862,
   "name": "f_DA36",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55868,
   "name": "f_DA3C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55872,
   "name": "charset_b_da40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56028,
   "name": "f_DADC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56068,
   "name": "f_DB04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56108,
   "name": "f_DB2C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56148,
   "name": "f_DB54",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56155,
   "name": "f_DB5B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56160,
   "name": "charset_b_db60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56257,
   "name": "f_DBC1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56320,
   "name": "charset_play_d800_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "gfx_chars_e000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58368,
   "name": "gfx_chars_e000_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58888,
   "name": "obj_list_len",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58889,
   "name": "obj_list",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58890,
   "name": "obj_list_b1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58891,
   "name": "obj_list_b2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59051,
   "name": "unk_e6ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59072,
   "name": "sprites_9b_9f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59392,
   "name": "status_charset",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59664,
   "name": "unk_e910",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60672,
   "name": "unk_ed00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60864,
   "name": "sprites_b7_bf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61520,
   "name": "f_F050",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61696,
   "name": "f_F100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61952,
   "name": "f_F200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62144,
   "name": "f_F2C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62456,
   "name": "f_F3F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62457,
   "name": "a_F3F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62458,
   "name": "a_F3FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62459,
   "name": "a_F3FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62461,
   "name": "a_F3FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62462,
   "name": "a_F3FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62463,
   "name": "a_F3FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62464,
   "name": "music_play",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62467,
   "name": "music_unused_f403",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62471,
   "name": "tune_voice1_seq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62472,
   "name": "tune_voice1_seq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62479,
   "name": "tune_voice2_seq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62480,
   "name": "tune_voice2_seq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62487,
   "name": "tune_voice3_seq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62488,
   "name": "tune_voice3_seq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62495,
   "name": "tune_pattern_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62496,
   "name": "tune_pattern_table_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62503,
   "name": "tune_pattern_base",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62504,
   "name": "tune_pattern_base_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62511,
   "name": "tune_tempo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62515,
   "name": "v_target_freq_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62518,
   "name": "v_target_freq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62521,
   "name": "v_ctrl",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62524,
   "name": "v_pulse_base_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62527,
   "name": "v_pulse_base_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62530,
   "name": "v_pwm_source",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62533,
   "name": "v_pwm_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62536,
   "name": "v_ramp_rate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62539,
   "name": "v_attack_decay",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62542,
   "name": "v_sustain_release",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62545,
   "name": "v_glide_on",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62548,
   "name": "v_glide_rate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62551,
   "name": "v_octave_add",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62554,
   "name": "v_vibrato_on",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62557,
   "name": "v_vibrato_mode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62560,
   "name": "v_vibrato_rate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62563,
   "name": "v_vibrato_period",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62566,
   "name": "filt_res_route",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62567,
   "name": "filt_mode_vol",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62568,
   "name": "filt_cutoff_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62569,
   "name": "filt_sweep_src",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62570,
   "name": "filt_sweep_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62571,
   "name": "filt_sweep_dir",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62572,
   "name": "v_active",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62573,
   "name": "v_active_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62574,
   "name": "v_active_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62575,
   "name": "v_seq_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62576,
   "name": "v_seq_lo_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62577,
   "name": "v_seq_lo_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62578,
   "name": "v_seq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62579,
   "name": "v_seq_hi_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62580,
   "name": "v_seq_hi_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62581,
   "name": "v_pat_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62584,
   "name": "v_pat_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62587,
   "name": "v_seq_pos",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62590,
   "name": "v_need_pattern",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62593,
   "name": "v_pat_pos",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62596,
   "name": "v_ticks_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62599,
   "name": "v_release_phase",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62602,
   "name": "filt_cutoff_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62603,
   "name": "v_note_flags",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62606,
   "name": "v_octave",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62609,
   "name": "v_note",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62612,
   "name": "v_tick_count",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62613,
   "name": "v_tick_count_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62614,
   "name": "v_tick_count_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62615,
   "name": "tick_reload",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62616,
   "name": "mus_tmp_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62617,
   "name": "mus_tmp_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62618,
   "name": "mus_unused_f49a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62621,
   "name": "ramp_value",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62624,
   "name": "mod_env3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62625,
   "name": "mod_osc3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62626,
   "name": "ramp_dir",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62629,
   "name": "v_pulse_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62632,
   "name": "v_pulse_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62635,
   "name": "v_freq_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62638,
   "name": "v_freq_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62641,
   "name": "tune_playing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62642,
   "name": "v_glide_rate_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62645,
   "name": "v_repeat_count",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62648,
   "name": "voice_clear_mask",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62656,
   "name": "voice_set_mask",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62664,
   "name": "note_freq_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62677,
   "name": "note_length_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62693,
   "name": "seq_cmd_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62694,
   "name": "f_F4E6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62701,
   "name": "mus_unused_f4ed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62703,
   "name": "music_update",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62713,
   "name": "music_check_tune",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62745,
   "name": "music_start_tune",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62834,
   "name": "music_set_seq_ptrs",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62871,
   "name": "music_voices",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62873,
   "name": "mv_voice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62909,
   "name": "mv_read_seq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62932,
   "name": "mv_between_ticks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62943,
   "name": "mv_no_glide",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62955,
   "name": "mv_vibrato",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62963,
   "name": "mv_next_voice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62979,
   "name": "mv_write_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62987,
   "name": "mv_write_next",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62996,
   "name": "seq_cmd_pattern",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63007,
   "name": "smc_pattern_table_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63008,
   "name": "smc_pattern_table_lo_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63019,
   "name": "smc_pattern_table_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63020,
   "name": "smc_pattern_table_hi_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63040,
   "name": "note_tick",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63048,
   "name": "note_time_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63076,
   "name": "note_to_glide",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63079,
   "name": "pat_next_byte",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63082,
   "name": "pat_read",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63107,
   "name": "pat_instrument",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63118,
   "name": "pat_note",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63131,
   "name": "pat_note_freq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63159,
   "name": "pat_octave_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63168,
   "name": "pat_length",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63197,
   "name": "pat_flags",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63219,
   "name": "pat_gate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63238,
   "name": "pat_done",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63241,
   "name": "v_instrument",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63244,
   "name": "music_write_sid",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63287,
   "name": "music_clear_sid",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63291,
   "name": "mcs_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63298,
   "name": "music_init_voice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63371,
   "name": "music_init_voices",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63373,
   "name": "miv_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63380,
   "name": "seq_cmd_jump",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63389,
   "name": "seq_cmd_stop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63395,
   "name": "seq_cmd_repeat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63415,
   "name": "scr_counting",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63429,
   "name": "scr_done",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63441,
   "name": "load_instrument",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63468,
   "name": "li_copy",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63472,
   "name": "li_copy_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63523,
   "name": "li_filter_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63533,
   "name": "li_pwm_source",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63544,
   "name": "li_pulse",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63557,
   "name": "li_tmp",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63558,
   "name": "music_ramps",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63572,
   "name": "mr_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63600,
   "name": "mr_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63620,
   "name": "mr_next",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63624,
   "name": "music_pwm",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63626,
   "name": "mp_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63644,
   "name": "mp_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63651,
   "name": "mp_add",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63667,
   "name": "mp_next",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63671,
   "name": "music_filter_sweep",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63689,
   "name": "mfs_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63696,
   "name": "mfs_apply",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63722,
   "name": "mfs_subtract",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63740,
   "name": "mfs_rts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63741,
   "name": "music_glide",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63762,
   "name": "mg_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63776,
   "name": "mg_up_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63783,
   "name": "mg_up_add",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63806,
   "name": "mg_rts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63807,
   "name": "mg_up_check",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63815,
   "name": "mg_clamp",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63828,
   "name": "mg_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63842,
   "name": "mg_down_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63849,
   "name": "mg_down_sub",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63878,
   "name": "mg_rts2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63879,
   "name": "mg_down_check",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63887,
   "name": "mg_clamp2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63900,
   "name": "unused_lsr4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63905,
   "name": "pattern_base_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63906,
   "name": "pattern_base_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63907,
   "name": "music_vibrato",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63936,
   "name": "mvib_rate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63972,
   "name": "mvib_shift",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63985,
   "name": "mvib_step_done",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64002,
   "name": "mvib_restart",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64042,
   "name": "mvib_move",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64097,
   "name": "mvib_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64132,
   "name": "mvib_output",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64155,
   "name": "mvib_held_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64168,
   "name": "mvib_swept",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64181,
   "name": "vib_dir",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64184,
   "name": "vib_pitch_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64187,
   "name": "vib_pitch_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64190,
   "name": "vib_held_a_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64193,
   "name": "vib_held_a_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64196,
   "name": "vib_held_b_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64199,
   "name": "vib_held_b_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64202,
   "name": "vib_count",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64205,
   "name": "vib_last_rate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64208,
   "name": "vib_step_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64211,
   "name": "vib_step_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64215,
   "name": "vib_restart",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64218,
   "name": "tune_sequences",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64330,
   "name": "pattern_offsets",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64331,
   "name": "pattern_offsets_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64378,
   "name": "tune1_patterns",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64732,
   "name": "tune2_patterns",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "tune3_patterns",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65091,
   "name": "instruments",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65424,
   "name": "s_FF90",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 65448,
   "name": "instrument_offsets",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65466,
   "name": "s_FFBA",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 65469,
   "name": "s_FFBD",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 65482,
   "name": "unk_ffca",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65483,
   "name": "f_FFCB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 65484,
   "name": "f_FFCC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 65485,
   "name": "f_FFCD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 65486,
   "name": "f_FFCE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 65493,
   "name": "s_FFD5",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 65520,
   "name": "a_FFF0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 65530,
   "name": "vec_nmi",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 0,
   "type": "line",
   "text": "6510 data-direction register. Nothing in the game writes it. The tracer once decoded $0000-$0007 as code because the JMP at $3E72 has a placeholder operand $0000 that the game rewrites before it runs; that block was set back to undefined."
  },
  {
   "address": 1,
   "type": "line",
   "text": "6510 port: memory configuration. Written at $C45B and $C46B during set-up; $15 in play (I/O visible, RAM everywhere else, no ROMs)."
  },
  {
   "address": 2,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 0 for fighter X (pair $02/$03, X = 0 or 1). Copied from the build slot $9C by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 4,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 1 for fighter X (pair $04/$05, X = 0 or 1). Copied from the build slot $9D by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 6,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 2 for fighter X (pair $06/$07, X = 0 or 1). Copied from the build slot $9E by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 8,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 3 for fighter X (pair $08/$09, X = 0 or 1). Copied from the build slot $9F by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 10,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 4 for fighter X (pair $0A/$0B, X = 0 or 1). Copied from the build slot $A0 by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 12,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 5 for fighter X (pair $0C/$0D, X = 0 or 1). Copied from the build slot $A1 by $1CEC-$1D02 after a pose is assembled; 0 = sprite not used."
  },
  {
   "address": 14,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 6 for fighter X (pair $0E/$0F). Copied from build slot $A2 at $1CE0-$1CEA, or forced to 0 at $1CD6 when the fighter's flag $0474,X is set."
  },
  {
   "address": 16,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 7 for fighter X (pair $10/$11). Copied from build slot $A3 at $1CE0-$1CEA, or forced to 0 at $1CD6 when the fighter's flag $0474,X is set."
  },
  {
   "address": 18,
   "type": "line",
   "text": "Sprite pointer of body-part sprite 8 for fighter X (pair $12/$13). Copied from build slot $A4 at $1CE0-$1CEA, or forced to 0 at $1CD6 when the fighter's flag $0474,X is set."
  },
  {
   "address": 20,
   "type": "line",
   "text": "Fighter X's sprite Y (pair $14/$15): the fighter height $92,X doubled, written at $1B45; also read at $0857 (value $9C tested)."
  },
  {
   "address": 22,
   "type": "line",
   "text": "Sprite pointer of fighter X's extra single sprite (pair $16/$17): $25 plus the double-buffer toggle $4A,X, written at $2018."
  },
  {
   "address": 24,
   "type": "line",
   "text": "Byte pair $18/$19, per fighter; written only at $20C5 (indexed by X). Purpose not traced."
  },
  {
   "address": 26,
   "type": "line",
   "text": "Byte pair $1A/$1B, per fighter; written only at $20CA. Purpose not traced."
  },
  {
   "address": 28,
   "type": "line",
   "text": "Byte pair $1C/$1D, per fighter; written only at $20D1. Purpose not traced."
  },
  {
   "address": 30,
   "type": "line",
   "text": "Fighter X's facing (pair $1E/$1F). 0 = the pose is drawn as stored (path $1BEC); non-zero = drawn mirrored through the bit-reverse table $BF00 (path $1DA6). Read by the room-exit scan at $06F1 and many others."
  },
  {
   "address": 31,
   "type": "line",
   "text": "Facing of fighter 1 (the second byte of fighter_facing); also written directly at $26F5."
  },
  {
   "address": 32,
   "type": "line",
   "text": "Cleared at set-up ($C408); written at $333B (next to the joystick code). Purpose not traced."
  },
  {
   "address": 33,
   "type": "line",
   "text": "Written at $2133, $3612 and $36FD; no reader found by address. Purpose not traced."
  },
  {
   "address": 34,
   "type": "line",
   "text": "$22-$41: a copy of $02-$21 (the fighters' sprite pointers, Y and facing) taken with interrupts off at $3FA8 when $0411 is set; the drawing code at $4581-$4A0D reads this copy, so the interrupt never sees half-updated values."
  },
  {
   "address": 36,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $04); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 38,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $06); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 40,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $08); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 42,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $0A); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 44,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $0C); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 46,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $0E); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 48,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $10); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 50,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $12); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 52,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $14); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 54,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $16); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 56,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $18); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 58,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $1A); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 62,
   "type": "line",
   "text": "Part of the $22-$41 copy (mirrors $1E, fighter 0's facing). $1753 uses it as the index Y that picks the left or right walk limit."
  },
  {
   "address": 64,
   "type": "line",
   "text": "Part of the $22-$41 copy (it mirrors $20); read by the sprite code at $3F9x-$4Axx."
  },
  {
   "address": 65,
   "type": "line",
   "text": "Last byte of the $22-$41 copy (mirrors $21); read at $4031."
  },
  {
   "address": 66,
   "type": "line",
   "text": "Zero-page byte $42: written at $3FF9; read at $45B7, $4617, $463A, $4648. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 67,
   "type": "line",
   "text": "Zero-page byte $43: written at $4009; read at $46BD, $474D, $4770, $477E. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 68,
   "type": "line",
   "text": "Zero-page byte $44: written at $3FF4; read at $401E, $403C, $4122, $4133, $417F, $41E7. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 69,
   "type": "line",
   "text": "Zero-page byte $45: written at $4004; read at $4024, $4040, $405F, $4124, $4131, $41FF. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 70,
   "type": "line",
   "text": "Zero-page byte $46: written at $3FFE; read at $45B5, $45D3, $45F0, $461E, $464F, $4670. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 71,
   "type": "line",
   "text": "Zero-page byte $47: written at $400E; read at $46BB, $46D6, $4726, $4754, $4785, $47A6. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 72,
   "type": "line",
   "text": "Zero-page byte $48: written at $26A7; read at $45EB, $4721. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 73,
   "type": "line",
   "text": "Zero-page byte $49: written at $2301, $277F; read at $22FD. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 74,
   "type": "line",
   "text": "Per fighter (pair $4A/$4B): toggled 0/1 at $200E to double-buffer fighter X's extra sprite; indexes $1BC8/$1BD0 for the buffer address."
  },
  {
   "address": 75,
   "type": "line",
   "text": "Zero-page byte $4B: written at $26ED. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 76,
   "type": "line",
   "text": "Per fighter (pair $4C/$4D): image number of fighter X's extra sprite; bit 7 set selects the image at $C000. $2032-$2045 turn it into an address with $1BD4 (page) and $1BC7 (64-byte slot)."
  },
  {
   "address": 78,
   "type": "line",
   "text": "Zero-page byte $4E: written at $2124, $26D0; read at $269D. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 79,
   "type": "line",
   "text": "Zero-page byte $4F: written at $2723, $273E. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 80,
   "type": "line",
   "text": "Per fighter (pair $50/$51): low byte of the base the extra-sprite image number is added to ($2043)."
  },
  {
   "address": 82,
   "type": "line",
   "text": "Per fighter (pair $52/$53): high byte of the extra-sprite image base ($2036)."
  },
  {
   "address": 84,
   "type": "line",
   "text": "Per fighter (pair $54/$55): its high nibble is compared with the facing at $204B to choose a plain or mirrored copy of the extra sprite."
  },
  {
   "address": 86,
   "type": "line",
   "text": "Per fighter (pair $56/$57): read at $205E and $208D in the extra-sprite copy; written at $20DE."
  },
  {
   "address": 88,
   "type": "line",
   "text": "Pointer (with $59): source image of the 63-byte extra-sprite copy at $2055."
  },
  {
   "address": 89,
   "type": "line",
   "text": "High byte of spr_copy_src ($58)."
  },
  {
   "address": 90,
   "type": "line",
   "text": "Pointer (with $5B): destination sprite buffer of the extra-sprite copy, from $1BC8/$1BD0."
  },
  {
   "address": 91,
   "type": "line",
   "text": "High byte of spr_copy_dst ($5A), from table $1BD0."
  },
  {
   "address": 92,
   "type": "line",
   "text": "Zero-page byte $5C: written at $3FDF, $3FEA; read at $3FF0, $4014, $40B6, $40F6, $4572, $45A6. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 93,
   "type": "line",
   "text": "Zero-page byte $5D: written at $3FE3, $3FEE; read at $4000, $40D6, $40F8, $46AC, $46E3, $46FB. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 94,
   "type": "line",
   "text": "Zero-page byte $5E: written at $26A2, $C4BE; read at $45A8, $46E5. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 95,
   "type": "line",
   "text": "Zero-page byte $5F: written at $C4C2. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 96,
   "type": "line",
   "text": "Zero-page byte $60: written at $404B, $406F, $4093, $40AD, $C2A3; read at $4175, $41DD, $4220, $4266, $42A9, $42E2. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 97,
   "type": "line",
   "text": "Zero-page byte $61: written at $404F, $4073, $4097, $40B1, $C29B; read at $417A, $41E2, $4225, $426B, $42AE, $42E7. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 98,
   "type": "line",
   "text": "Per fighter (pair $62/$63): sprite pointer of accessory sprite 0, set from table $1D0D at $1CC2 for the eight poses listed at $1D05."
  },
  {
   "address": 100,
   "type": "line",
   "text": "Per fighter (pair $64/$65): sprite pointer of accessory sprite 1, from table $1D1D at $1CC7."
  },
  {
   "address": 102,
   "type": "line",
   "text": "Per fighter (pair $66/$67): sprite pointer of accessory sprite 2, from table $1D2D at $1CCC."
  },
  {
   "address": 104,
   "type": "line",
   "text": "Pointer (with $69) into the stream of the digitised-sound player at $3D8B: each byte is an index into the timer table $0200/$0300."
  },
  {
   "address": 105,
   "type": "line",
   "text": "High byte of sample_ptr ($68); incremented at $3DAD."
  },
  {
   "address": 106,
   "type": "line",
   "text": "The value last written to SID $D418 by the sample player at $3D8E: it is EORed with $3E18 on every timer interrupt, toggling the volume bits to make the sound."
  },
  {
   "address": 108,
   "type": "line",
   "text": "Zero-page byte $6C: written at $3F29; read at $3F55. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 109,
   "type": "line",
   "text": "Zero-page byte $6D: written at $3F30; read at $3F59. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 114,
   "type": "line",
   "text": "World column shown at the left edge of the play area (character units). Moved one step at $1867/$18AB; clamped to $0428-$0427 at $11A6-$11C2; drives the room drawing at $1556 and the edge-column drawing at $12E6."
  },
  {
   "address": 115,
   "type": "line",
   "text": "Low byte of the play-area origin in the back screen: $78, i.e. row 3 of a 40-column screen. Set at $12A9."
  },
  {
   "address": 116,
   "type": "line",
   "text": "High byte of the play-area origin: $F0 or $CC. $18BC flips it (EOR $3C) after each coarse scroll, so the game draws in one of the two screens $F000/$CC00 while the other is shown."
  },
  {
   "address": 117,
   "type": "line",
   "text": "Pointer (with $76) to the screen row being drawn by $1620/$13D7."
  },
  {
   "address": 118,
   "type": "line",
   "text": "High byte of draw_ptr ($75)."
  },
  {
   "address": 119,
   "type": "line",
   "text": "Rows of the current scenery object still to draw ($1622, $1688)."
  },
  {
   "address": 120,
   "type": "line",
   "text": "Screen column where the current scenery object starts (world column minus $0424)."
  },
  {
   "address": 121,
   "type": "line",
   "text": "Screen row where the current scenery object starts."
  },
  {
   "address": 122,
   "type": "line",
   "text": "World column just past the right edge of the area being drawn ($0424 + $28 at $155C, or + $1540 at $130B)."
  },
  {
   "address": 123,
   "type": "line",
   "text": "Index of the scenery object being examined in the room lists ($1562-$1587)."
  },
  {
   "address": 124,
   "type": "line",
   "text": "Screen column where the current object's row ends (draw_col + width)."
  },
  {
   "address": 125,
   "type": "line",
   "text": "Per fighter (pair $7D/$7E): number of the move being performed, 0 = none. Indexes the move-script table $AF46 at $1AF3; $0C-$0E add $1E to the table offset at $1A95; tested against exit types at $06EB and walking moves at $18EA."
  },
  {
   "address": 126,
   "type": "line",
   "text": "Fighter 1's move number (second byte of fighter_move)."
  },
  {
   "address": 127,
   "type": "line",
   "text": "Per fighter (pair $7F/$80): the move whose script is loaded; $1A77 starts a new script (via $1B68) while it is 0 and $7D,X is non-zero."
  },
  {
   "address": 128,
   "type": "line",
   "text": "Fighter 1's byte of fighter_move_started ($7F)."
  },
  {
   "address": 129,
   "type": "line",
   "text": "Per fighter (pair $81/$82): frames left before the move script steps; decremented at $1AA1, reloaded from the script (low 7 bits) at $1B0B."
  },
  {
   "address": 131,
   "type": "line",
   "text": "Per fighter (pair $83/$84): 0 = the move script is played forwards, non-zero = backwards (and the height step is subtracted, $1B3C). Written by code at $2681-$34EE."
  },
  {
   "address": 133,
   "type": "line",
   "text": "Per fighter (pair $85/$86): offset of the current 4-byte step in the move script; +4 or -4 per step ($1AD1, $1AD9)."
  },
  {
   "address": 135,
   "type": "line",
   "text": "Pointer (with $88) to the current move script, from table $AF46 ($1AF8). A step is 4 bytes: timer (bit 7 copied to $20FF,X), pose, X step, height step."
  },
  {
   "address": 136,
   "type": "line",
   "text": "High byte of move_script_ptr ($87)."
  },
  {
   "address": 137,
   "type": "line",
   "text": "Per fighter (pair $89/$8A): length in bytes of the loaded move script ($1B84-$1B8B), where the forward play stops."
  },
  {
   "address": 139,
   "type": "line",
   "text": "Per fighter (pair $8B/$8C): set at $0848/$0865 to $20 or $1E plus (facing EOR zone flag); read at $0A2E (below $0C it indexes pose_hit_table $04E1) and widely at $21B2-$2E71. Meaning not traced."
  },
  {
   "address": 141,
   "type": "line",
   "text": "Zero-page byte $8D: written at $2E22, $2E33, $2E77, $2EBE, $2F02, $2F2C; read at $3365, $33B7, $33F6, $3400, $342D, $3449. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 143,
   "type": "line",
   "text": "Zero-page byte $8F: written at $226B, $22AC; read at $2543, $2E0E, $2E37, $2E49, $2E99, $2F05. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 144,
   "type": "line",
   "text": "Hero's X relative to the camera, halved: ($DB/$DD - $0433/$0434) / 2, computed at $17F2. $180D compares it with $14 and $81 to decide the scroll direction."
  },
  {
   "address": 146,
   "type": "line",
   "text": "Per fighter (pair $92/$93): vertical position; the move's height step is added or subtracted at $1B33-$1B42, and doubled into $14,X."
  },
  {
   "address": 147,
   "type": "line",
   "text": "Zero-page byte $93: written at $274C. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 148,
   "type": "line",
   "text": "Zero-page byte $94: written at $37AC, $37BD; read at $37CD, $382D. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 149,
   "type": "line",
   "text": "Zero-page byte $95: written at $37B1, $37C2. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 150,
   "type": "line",
   "text": "Zero-page byte $96: written at $2688, $340A, $3498, $34B2, $34F2, $34F7; read at $2A2C, $2E4B, $2E91, $2F35, $31D2, $3462. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 152,
   "type": "line",
   "text": "Per fighter (pair $98/$99): toggled at $1BDE to choose which of two sprite-buffer sets the next pose is built in (index into $1BC8/$1BCC/$1BBF), so a pose is never shown half built."
  },
  {
   "address": 153,
   "type": "line",
   "text": "Zero-page byte $99: written at $26EB. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 154,
   "type": "line",
   "text": "Pointer (with $9B) to the 64-byte sprite being filled by the pose decoder ($1D79); +$40 per part at $1D97."
  },
  {
   "address": 155,
   "type": "line",
   "text": "High byte of spr_build_ptr ($9A)."
  },
  {
   "address": 156,
   "type": "line",
   "text": "$9C-$A4: nine sprite-pointer values for the pose being built, one per body part. Preloaded from a list at $1B9B; a part the pose does not use is set to 0; copied to $02-$13,X at $1CD1."
  },
  {
   "address": 157,
   "type": "line",
   "text": "Build slot 1 of spr_build_slots ($9C-$A4): sprite pointer of body part 1, or 0."
  },
  {
   "address": 158,
   "type": "line",
   "text": "Build slot 2 of spr_build_slots ($9C-$A4): sprite pointer of body part 2, or 0."
  },
  {
   "address": 159,
   "type": "line",
   "text": "Build slot 3 of spr_build_slots ($9C-$A4): sprite pointer of body part 3, or 0."
  },
  {
   "address": 160,
   "type": "line",
   "text": "Build slot 4 of spr_build_slots ($9C-$A4): sprite pointer of body part 4, or 0."
  },
  {
   "address": 161,
   "type": "line",
   "text": "Build slot 5 of spr_build_slots ($9C-$A4): sprite pointer of body part 5, or 0."
  },
  {
   "address": 162,
   "type": "line",
   "text": "Build slot 6 of spr_build_slots ($9C-$A4): sprite pointer of body part 6, or 0."
  },
  {
   "address": 163,
   "type": "line",
   "text": "Build slot 7 of spr_build_slots ($9C-$A4): sprite pointer of body part 7, or 0."
  },
  {
   "address": 164,
   "type": "line",
   "text": "Build slot 8 of spr_build_slots ($9C-$A4): sprite pointer of body part 8, or 0."
  },
  {
   "address": 165,
   "type": "line",
   "text": "Fighter index X saved across the pose build ($1C0D, $1C99)."
  },
  {
   "address": 168,
   "type": "line",
   "text": "Per fighter (pair $A8/$A9): 1 on the frame the move script stepped, else 0 ($1AA7, $1AB6); read at $0A34 to accept a hit on a scroll object and at $340E, $3784."
  },
  {
   "address": 170,
   "type": "line",
   "text": "Zero-page byte $AA: written at $3157; read at $2F46. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 171,
   "type": "line",
   "text": "Zero-page byte $AB: written at $2F4A, $2F4F, $2F5B, $3167; read at $2F3F. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 172,
   "type": "line",
   "text": "Zero-page byte $AC: written at $3169. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 173,
   "type": "line",
   "text": "Per fighter (pair $AD/$AE): set with $8B at $084A/$0867; also written at $276F-$2F00, read at $2EBC, $2F6C."
  },
  {
   "address": 174,
   "type": "line",
   "text": "Zero-page byte $AE: written at $316F. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 175,
   "type": "line",
   "text": "Zero-page byte $AF: written at $2FF1, $2FF6, $2FFC, $3173; read at $2FE8. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 176,
   "type": "line",
   "text": "Zero-page byte $B0: written at $3175. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 179,
   "type": "line",
   "text": "Zero-page byte $B3: written at $3180; read at $2EE7. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 180,
   "type": "line",
   "text": "Zero-page byte $B4: written at $2F1D, $30BF, $3179, $31B9, $31C4, $31CF; read at $2E25. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 181,
   "type": "line",
   "text": "Zero-page byte $B5: written at $317B, $C2AB. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 182,
   "type": "line",
   "text": "Temporary pointer (with $B7): the sprite being mirrored by $0E17, and the byte count of a room's item list at $0B4F."
  },
  {
   "address": 183,
   "type": "line",
   "text": "High byte of tmp_ptr_b6; also saves Y at $0B74."
  },
  {
   "address": 184,
   "type": "line",
   "text": "Colour value for the play area, read by the interrupt at $3C19; per zone from $0E4F, per colour scheme from $0E7A (zone 0) or per room from $0EC3 (zone 1)."
  },
  {
   "address": 185,
   "type": "line",
   "text": "Pointer (with $BA) to the part list of a compound scenery object: 3-byte entries (shape, X offset, Y offset), ended by a byte with bit 7 set."
  },
  {
   "address": 186,
   "type": "line",
   "text": "High byte of compound_ptr ($B9)."
  },
  {
   "address": 191,
   "type": "line",
   "text": "High byte of the sprite-pointer block of the screen being prepared: $CF or $F3 (sprite pointers $CFF8/$F3F8), flipped with the screens at $18CA."
  },
  {
   "address": 192,
   "type": "line",
   "text": "Colour value read by the interrupt at $3BFD; per zone from $0E40 ($121B)."
  },
  {
   "address": 193,
   "type": "line",
   "text": "Colour value read by the interrupt at $3C0A; per zone from $0E49 or per colour scheme from $0E84."
  },
  {
   "address": 194,
   "type": "line",
   "text": "Colour value read by the interrupt at $3C05; per zone from $0E4C or per colour scheme from $0E8E."
  },
  {
   "address": 197,
   "type": "line",
   "text": "Pointer (with $C6) to the room's scenery list: shape number of each object; bit 7 set = compound object, $FF = empty. Some entries are rewritten in play ($0A0C, $0AB4, $0B80)."
  },
  {
   "address": 198,
   "type": "line",
   "text": "High byte of room_obj_shape ($C5)."
  },
  {
   "address": 199,
   "type": "line",
   "text": "Pointer (with $C8) to the room's list of object world columns."
  },
  {
   "address": 200,
   "type": "line",
   "text": "High byte of room_obj_x ($C7)."
  },
  {
   "address": 201,
   "type": "line",
   "text": "Pointer (with $CA) to the room's list of object screen rows."
  },
  {
   "address": 202,
   "type": "line",
   "text": "High byte of room_obj_y ($C9)."
  },
  {
   "address": 203,
   "type": "line",
   "text": "Pointer (with $CC) to the zone's table of shape widths in characters."
  },
  {
   "address": 204,
   "type": "line",
   "text": "High byte of shape_width ($CB)."
  },
  {
   "address": 205,
   "type": "line",
   "text": "Pointer (with $CE) to the zone's table of shape heights in rows."
  },
  {
   "address": 206,
   "type": "line",
   "text": "High byte of shape_height ($CD)."
  },
  {
   "address": 207,
   "type": "line",
   "text": "Pointer (with $D0) to the zone's table of low bytes of each shape's character data (added to $0FE8)."
  },
  {
   "address": 208,
   "type": "line",
   "text": "High byte of shape_gfx_lo ($CF)."
  },
  {
   "address": 209,
   "type": "line",
   "text": "Pointer (with $D2) to the zone's table of high bytes of each shape's character data (added to $0FE9)."
  },
  {
   "address": 210,
   "type": "line",
   "text": "High byte of shape_gfx_hi ($D1)."
  },
  {
   "address": 211,
   "type": "line",
   "text": "Pointer (with $D4) to the zone's table of low bytes of compound-object part lists (added to $0FEA)."
  },
  {
   "address": 212,
   "type": "line",
   "text": "High byte of compound_lo ($D3)."
  },
  {
   "address": 213,
   "type": "line",
   "text": "Pointer (with $D6) to the zone's table of high bytes of compound-object part lists (added to $0FEB)."
  },
  {
   "address": 214,
   "type": "line",
   "text": "High byte of compound_hi ($D5)."
  },
  {
   "address": 215,
   "type": "line",
   "text": "Pointer (with $D8) to the zone's table of compound-object widths, used by the edge-column drawing at $1357."
  },
  {
   "address": 216,
   "type": "line",
   "text": "High byte of compound_width ($D7)."
  },
  {
   "address": 217,
   "type": "line",
   "text": "Pointer (with $DA) to the room's colour-RAM list read by $16B8: each byte = rows (high 5 bits) and colour (low 3 bits, +8 for multicolour)."
  },
  {
   "address": 218,
   "type": "line",
   "text": "High byte of room_colour_list ($D9)."
  },
  {
   "address": 219,
   "type": "line",
   "text": "Per fighter (pair $DB/$DC): world X in pixels, low byte. The hero's ($DB) is stepped at $1860/$18A0 and clamped at $177D/$17D4."
  },
  {
   "address": 220,
   "type": "line",
   "text": "Fighter 1's world X, low byte (second byte of fighter_x_lo); set at $2714 and at set-up ($C369), read at $47F0."
  },
  {
   "address": 221,
   "type": "line",
   "text": "Per fighter (pair $DD/$DE): world X, high byte."
  },
  {
   "address": 222,
   "type": "line",
   "text": "Fighter 1's world X, high byte; set at $26F9-$2712 and $C373, read at $47F8."
  },
  {
   "address": 223,
   "type": "line",
   "text": "Zero-page byte $DF: written at $47EE, $C378; read at $265A, $265E, $266C, $266F, $29AF, $29CA. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 224,
   "type": "line",
   "text": "Zero-page byte $E0: written at $47F2. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 225,
   "type": "line",
   "text": "Zero-page byte $E1: written at $47F6; read at $2663, $2666, $2675, $2677, $29B4, $29D2. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 226,
   "type": "line",
   "text": "Zero-page byte $E2: written at $47FA. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 227,
   "type": "line",
   "text": "Per fighter (pair $E3/$E4): horizontal position that the move's X step (doubled, sign by facing) is added to at $1B62; written at $212C, $32FB, $3573."
  },
  {
   "address": 228,
   "type": "line",
   "text": "Fighter 1's byte of fighter_screen_x ($E3); set at $212E."
  },
  {
   "address": 229,
   "type": "line",
   "text": "Per fighter (pair $E5/$E6): world X / 8 (character column), plus 3 when facing is set; computed at $055B."
  },
  {
   "address": 230,
   "type": "line",
   "text": "Fighter 1's byte of fighter_column ($E5); read at $2C7C, $2C98."
  },
  {
   "address": 231,
   "type": "line",
   "text": "Pointer (with $E8) to the room's 4-byte exit records (type, X, Y, target), ended by 0. $1A06 advances it to room N; $0576 scans it."
  },
  {
   "address": 232,
   "type": "line",
   "text": "High byte of exit_list_ptr ($E7)."
  },
  {
   "address": 233,
   "type": "line",
   "text": "Pointer (with $EA) to byte 1 of the exit records (the X column compared with the fighter column)."
  },
  {
   "address": 234,
   "type": "line",
   "text": "High byte of exit_field1; also the end test of the item scan at $0B1C."
  },
  {
   "address": 235,
   "type": "line",
   "text": "Pointer (with $EC) to byte 3 of the exit records (a target position)."
  },
  {
   "address": 236,
   "type": "line",
   "text": "High byte of exit_field3 ($EB)."
  },
  {
   "address": 237,
   "type": "line",
   "text": "Pointer (with $EE) to byte 2 of the exit records (the target room, stored to $046B)."
  },
  {
   "address": 238,
   "type": "line",
   "text": "High byte of exit_field2 ($ED)."
  },
  {
   "address": 239,
   "type": "line",
   "text": "Zero-page byte $EF: written at $4012, $40A9; read at $41A1, $4217, $422A, $42A0, $42B3, $4315. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 240,
   "type": "line",
   "text": "Pointer (with $F1) to the room's item list in $8000-$BFFF: records of 3 or 4 bytes whose first byte carries flags (bit 7 = active, bit 6 = short record)."
  },
  {
   "address": 241,
   "type": "line",
   "text": "High byte of item_list_ptr ($F0)."
  },
  {
   "address": 242,
   "type": "line",
   "text": "Zero-page byte $F2: written at $3FB1, $402C; read at $421C, $42A5, $431A, $438F, $4418, $44A1. Its code lies outside $0000-$1FFF; purpose not traced."
  },
  {
   "address": 249,
   "type": "line",
   "text": "Music-driver work byte $F9, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 250,
   "type": "line",
   "text": "Music-driver work byte $FA, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 251,
   "type": "line",
   "text": "Music-driver work byte $FB, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 252,
   "type": "line",
   "text": "Music-driver work byte $FC, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 253,
   "type": "line",
   "text": "Music-driver work byte $FD, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 254,
   "type": "line",
   "text": "Music-driver work byte $FE, used only by the driver at $F5AC-$F8EE."
  },
  {
   "address": 255,
   "type": "line",
   "text": "Tune number for the music driver ($F4EF, $FA0C): set per world zone from $1247 at $11E4 (1, 3, 2), 2 in room 6, 0 at set-up."
  },
  {
   "address": 307,
   "type": "line",
   "text": "Stack byte $0133: the status byte of the RTI frame that starts the background task, set to 0 at $1525."
  },
  {
   "address": 308,
   "type": "line",
   "text": "Stack byte $0134: low byte of the background task's start address ($CA) in its RTI frame."
  },
  {
   "address": 309,
   "type": "line",
   "text": "Stack byte $0135: high byte of the background task's start address ($12), so the task starts at $12CA."
  },
  {
   "address": 512,
   "type": "line",
   "text": "$0200-$02FF: low bytes of 256 CIA 1 timer B periods for the digitised-sound player ($3DA3 -> $DC06). Copied from $C700 at $C412; ascending values."
  },
  {
   "address": 768,
   "type": "line",
   "text": "$0300-$03FF: high bytes of the same 256 timer periods ($3D9D -> $DC07). Copied from $C800 at $C418."
  },
  {
   "address": 1024,
   "type": "line",
   "text": "Two bytes $5E, $5A left by BNK12A at $0400; read at $2149 ($0400) and $213D ($0401) during game start."
  },
  {
   "address": 1025,
   "type": "line",
   "text": "Second of the two start-up bytes ($5A), read at $213D."
  },
  {
   "address": 1026,
   "type": "line",
   "text": "Main entry: the set-up at $C400 ends with JMP $0402, which jumps to the main program at $2101 (stack reset, background task set up, then the main loop)."
  },
  {
   "address": 1029,
   "type": "line",
   "text": "$0405-$040E: flag array, one byte each, indexed by Y at $279A and $2C44-$2D9A; bit 7 tested at $0A67 ($0405), $0659 ($0407), $0A52 ($0408), $0674 ($040A), $10E5 ($040B). The tests sit in the code for scroll objects and meditation rooms, so these are probably the scroll/chamber states; not confirmed."
  },
  {
   "address": 1030,
   "type": "line",
   "text": "Flag $0406 of scroll_flags; read at $3739."
  },
  {
   "address": 1031,
   "type": "line",
   "text": "Flag $0407 of scroll_flags; bit 7 tested at $0659 in the room-13/room-7 exit handling."
  },
  {
   "address": 1032,
   "type": "line",
   "text": "Flag $0408 of scroll_flags; bit 7 tested at $0A52 when a type-7 item is hit."
  },
  {
   "address": 1033,
   "type": "line",
   "text": "Flag $0409 of scroll_flags; read at $27AD."
  },
  {
   "address": 1034,
   "type": "line",
   "text": "Flag $040A of scroll_flags; bit 7 tested at $0674."
  },
  {
   "address": 1035,
   "type": "line",
   "text": "Flag $040B of scroll_flags; bit 7 tested at $10E5 when the zone-0 colour scheme is 8."
  },
  {
   "address": 1036,
   "type": "line",
   "text": "Flag $040C of scroll_flags; read at $2CF0."
  },
  {
   "address": 1039,
   "type": "line",
   "text": "Output index of the mirrored-pose decoder $1EF5 ($1F5A-$1FF3)."
  },
  {
   "address": 1040,
   "type": "line",
   "text": "Input index of the mirrored-pose decoder $1EF5."
  },
  {
   "address": 1041,
   "type": "line",
   "text": "When non-zero, $3FA1 copies $02-$21 to $22-$41 each frame. Written at $21ED, $22C9, $47E9."
  },
  {
   "address": 1042,
   "type": "line",
   "text": "Variable $0412: cleared at $0660 (room-7 exit when flag $0407 is clear), and read or changed at $2548-$2D2D, $38B5."
  },
  {
   "address": 1043,
   "type": "line",
   "text": "Variable $0413: read at $255C; written at $275E, $27E3."
  },
  {
   "address": 1044,
   "type": "line",
   "text": "Per-fighter array at $0414: written at $2685, $3510, $3886, read at $377B."
  },
  {
   "address": 1046,
   "type": "line",
   "text": "Variable $0416: read at $2201, $3C31; written at $3C36 (interrupt code)."
  },
  {
   "address": 1047,
   "type": "line",
   "text": "Variable $0417: compared at $2456, written at $245B (joystick code)."
  },
  {
   "address": 1048,
   "type": "line",
   "text": "Per-fighter array at $0418: written at $339C, read at $363F."
  },
  {
   "address": 1051,
   "type": "line",
   "text": "Variable $041B: written at $3244, read at $325A."
  },
  {
   "address": 1052,
   "type": "line",
   "text": "Variable $041C: written and used in arithmetic at $4637-$47C4."
  },
  {
   "address": 1053,
   "type": "line",
   "text": "Variable $041D: written at $2099, read at $20A6 (extra-sprite code)."
  },
  {
   "address": 1054,
   "type": "line",
   "text": "Variable $041E: written at $209C, read at $20AB."
  },
  {
   "address": 1055,
   "type": "line",
   "text": "Variable $041F: cleared at set-up ($C403); no other reference found."
  },
  {
   "address": 1058,
   "type": "line",
   "text": "Per-fighter array at $0422: read at $30A3, $30AE, $314D."
  },
  {
   "address": 1059,
   "type": "line",
   "text": "Variable $0423: written at $2747."
  },
  {
   "address": 1060,
   "type": "line",
   "text": "World column at the left edge of the area being drawn (copy of scroll_column at $1558, or the edge column at $1304)."
  },
  {
   "address": 1061,
   "type": "line",
   "text": "Screen row being drawn; drawing stops at row 20 ($1684, $143E)."
  },
  {
   "address": 1062,
   "type": "line",
   "text": "Handshake with the background task: 0 asks it to rebuild the other screen for the next coarse scroll step; the task sets it to 1 when done ($12DA). The scroll code waits for 1 before flipping screens."
  },
  {
   "address": 1063,
   "type": "line",
   "text": "Largest allowed scroll_column for this room: the left edge of the right barrier minus 40 ($08CF)."
  },
  {
   "address": 1064,
   "type": "line",
   "text": "Smallest allowed scroll_column for this room: the right edge of the left barrier ($089C)."
  },
  {
   "address": 1066,
   "type": "line",
   "text": "Loop counter: sprites left to mirror in $0DF4; also used at $27B7-$306A."
  },
  {
   "address": 1068,
   "type": "line",
   "text": "Variable $042C: compared, stepped and loaded at $2565-$26E0."
  },
  {
   "address": 1069,
   "type": "line",
   "text": "Variable $042D: compared, stepped and loaded at $25D4-$2763."
  },
  {
   "address": 1070,
   "type": "line",
   "text": "Variable $042E: used at $258A-$260B."
  },
  {
   "address": 1071,
   "type": "line",
   "text": "Variable $042F: written at $2165, $3149; read at $3141."
  },
  {
   "address": 1072,
   "type": "line",
   "text": "Variable $0430: set to $53 at set-up ($C426); read at $2162, $2438; written at $2440."
  },
  {
   "address": 1073,
   "type": "line",
   "text": "Variable $0431: used at $49C9-$4A26."
  },
  {
   "address": 1074,
   "type": "line",
   "text": "Variable $0432: used at $49D1-$4A20."
  },
  {
   "address": 1075,
   "type": "line",
   "text": "World X in pixels of the play area's left edge, low byte: subtracted from object X to place sprites ($0D26) and from the hero's X at $17F5."
  },
  {
   "address": 1076,
   "type": "line",
   "text": "High byte of camera_x."
  },
  {
   "address": 1077,
   "type": "line",
   "text": "Work: camera X plus the walk limit, low byte ($175C, $17AF); the hero's X is clamped to it."
  },
  {
   "address": 1078,
   "type": "line",
   "text": "Work: high byte of limit_x."
  },
  {
   "address": 1079,
   "type": "line",
   "text": "$0437/$0438: the right walk limits (screen pixels, low bytes) for facing 0/1, indexed by Y at $1759; computed from the right barrier at $095F or set to $AC/$94 at $19F3."
  },
  {
   "address": 1080,
   "type": "line",
   "text": "Second right walk limit (low byte), and a work byte of the barrier calculation at $0947."
  },
  {
   "address": 1081,
   "type": "line",
   "text": "$0439/$043A: high bytes of the right walk limits."
  },
  {
   "address": 1082,
   "type": "line",
   "text": "Second right walk limit (high byte); shifted at $0939-$0941 in the barrier calculation."
  },
  {
   "address": 1083,
   "type": "line",
   "text": "$043B/$043C: the left walk limits (low bytes), computed from the left barrier at $090E or set to $AC/$94 at $19E0."
  },
  {
   "address": 1084,
   "type": "line",
   "text": "Second left walk limit (low byte), a work byte of the barrier calculation at $08FE."
  },
  {
   "address": 1085,
   "type": "line",
   "text": "$043D/$043E: high bytes of the left walk limits."
  },
  {
   "address": 1086,
   "type": "line",
   "text": "Second left walk limit (high byte); shifted at $08F3-$08FB."
  },
  {
   "address": 1087,
   "type": "line",
   "text": "Per-fighter array at $043F: written at $49D6, $49F2."
  },
  {
   "address": 1088,
   "type": "line",
   "text": "Variable $0440: read at $1A53 (non-zero calls $27DC) and $2251."
  },
  {
   "address": 1089,
   "type": "line",
   "text": "Position compared with the walk limits at $0982 and $198F (low byte); written at $213A and $49E5, $4A29 (indexed)."
  },
  {
   "address": 1091,
   "type": "line",
   "text": "High byte of the position in $0441."
  },
  {
   "address": 1093,
   "type": "line",
   "text": "Variable $0445: written at $2672 (shifted $267B); read at $2F84-$3951."
  },
  {
   "address": 1094,
   "type": "line",
   "text": "Variable $0446: written at $2660; read at $2F7E-$394B."
  },
  {
   "address": 1095,
   "type": "line",
   "text": "Variable $0447: written at $21EA, $2C93; read at $2E2C, $330F."
  },
  {
   "address": 1096,
   "type": "line",
   "text": "Per-fighter array at $0448, indexed at $4016-$4107; written at $2121."
  },
  {
   "address": 1097,
   "type": "line",
   "text": "Variable $0449: written at $2157, $22C4."
  },
  {
   "address": 1099,
   "type": "line",
   "text": "Variable $044B: written at $215A, $27DE, $28B2; read at $22C1."
  },
  {
   "address": 1102,
   "type": "line",
   "text": "Variable $044E: bit 7 set stops the barrier re-check at $1A49; also used at $215F-$351C."
  },
  {
   "address": 1103,
   "type": "line",
   "text": "Saves Y across the width lookup at $15CE-$15D7."
  },
  {
   "address": 1104,
   "type": "line",
   "text": "Shape number of the compound-object part being drawn ($15BB, $1374)."
  },
  {
   "address": 1105,
   "type": "line",
   "text": "Variable $0451: set to $40 when an exit is taken ($070A, $074D, $0798); also used at $21C8-$3545."
  },
  {
   "address": 1106,
   "type": "line",
   "text": "Per-fighter array at $0452: many readers and writers in $268A-$38F6."
  },
  {
   "address": 1108,
   "type": "line",
   "text": "Per-fighter array at $0454: read at $335A, $3889."
  },
  {
   "address": 1110,
   "type": "line",
   "text": "Per-fighter array at $0456: written at $268D-$35EF."
  },
  {
   "address": 1112,
   "type": "line",
   "text": "Variable $0458: written at $37D6, $3836; compared at $37F8-$3875."
  },
  {
   "address": 1113,
   "type": "line",
   "text": "Variable $0459: written at $2F87-$384B; read at $3035-$3868."
  },
  {
   "address": 1114,
   "type": "line",
   "text": "Variable $045A: read at $24A9, written at $387D."
  },
  {
   "address": 1115,
   "type": "line",
   "text": "Per-fighter array at $045B: $2773, $2F96, $2FA8, $318E."
  },
  {
   "address": 1116,
   "type": "line",
   "text": "Variable $045C: written at $3191."
  },
  {
   "address": 1117,
   "type": "line",
   "text": "Per-fighter array at $045D: $2FB5, $3189."
  },
  {
   "address": 1119,
   "type": "line",
   "text": "Per-fighter array at $045F: $2EC6-$2EE1, $3196."
  },
  {
   "address": 1121,
   "type": "line",
   "text": "Walk/scroll state: 0 = the hero walks, 1 = the screen scrolls right, $80 = left ($19C1). While non-zero, the hero's X is not stepped ($185B)."
  },
  {
   "address": 1122,
   "type": "line",
   "text": "$80 after an item is hit ($0A1E), 1 when the barriers must be re-read ($1A64), 0 after $19D4. Read at $1787, $17DE, $11C4, $1803."
  },
  {
   "address": 1123,
   "type": "line",
   "text": "Variable $0463: written at $28DD, read and decremented at $2B04-$2B09."
  },
  {
   "address": 1124,
   "type": "line",
   "text": "Variable $0464: many uses at $2198-$2924."
  },
  {
   "address": 1125,
   "type": "line",
   "text": "Variable $0465: used at $2A0C-$2BDA."
  },
  {
   "address": 1126,
   "type": "line",
   "text": "Variable $0466: used at $2A32-$2BE2."
  },
  {
   "address": 1127,
   "type": "line",
   "text": "Variable $0467: written at $2399, $23BC; read at $23B5, $23D2."
  },
  {
   "address": 1128,
   "type": "line",
   "text": "Work byte: high bits of a column * 8 calculation at $07CD-$07F2 (and $236F-$23BF)."
  },
  {
   "address": 1129,
   "type": "line",
   "text": "Target position taken from an exit record ($0714, $0762, $07A5), adjusted at $07BD."
  },
  {
   "address": 1130,
   "type": "line",
   "text": "Number of the room (screen) the hero is in. Selects the zone ($196F: below $0E44 = 0, below $0E45 = 1, else 2), the item and exit lists, the colours."
  },
  {
   "address": 1131,
   "type": "line",
   "text": "Room the chosen exit leads to, from byte 2 of the exit record ($070F, $0752, $079D)."
  },
  {
   "address": 1132,
   "type": "line",
   "text": "Variable $046C: cleared at set-up ($12B8)."
  },
  {
   "address": 1133,
   "type": "line",
   "text": "Set to 1 while an item's removal is redrawn ($09D9); the frame code at $3FBA skips the walk-limit and scroll checks while it is set."
  },
  {
   "address": 1134,
   "type": "line",
   "text": "Per-fighter array at $046E: $2E1B, $3159."
  },
  {
   "address": 1135,
   "type": "line",
   "text": "Variable $046F: written at $315C."
  },
  {
   "address": 1136,
   "type": "line",
   "text": "Variable $0470: $3122, $3162."
  },
  {
   "address": 1137,
   "type": "line",
   "text": "Kind of exit taken: 1 or 2 ($0746, $0703), bit 7 added for exit types $12/$0C ($0725)."
  },
  {
   "address": 1138,
   "type": "line",
   "text": "Variable $0472: $27B2, $2875."
  },
  {
   "address": 1139,
   "type": "line",
   "text": "Result of the exit scan $0576: bit 0, 1, 2, 3 are set by the checks at $0788, $076C, $077A, $07F9."
  },
  {
   "address": 1140,
   "type": "line",
   "text": "Per fighter (pair $0474/$0475): when set, body parts 6-8 are not shown ($1CD1) and the sprite settings at $33E3 are changed ($0C2D). Set at $086C; meaning not traced."
  },
  {
   "address": 1141,
   "type": "line",
   "text": "Fighter 1's byte of $0474; also written at $21A1, $27E6."
  },
  {
   "address": 1142,
   "type": "line",
   "text": "Cleared at $1B10 before a pose is built; tested at $1D3E and $1EF6, but both branches do the same thing."
  },
  {
   "address": 1143,
   "type": "line",
   "text": "Per fighter (pair $0477/$0478): pose number from the move script ($1B15); indexes the nine part tables $B210-$B458."
  },
  {
   "address": 1145,
   "type": "line",
   "text": "Per fighter (pair $0479/$047A): X step of the current script step ($1B1B)."
  },
  {
   "address": 1147,
   "type": "line",
   "text": "Per fighter (pair $047B/$047C): height step of the current script step ($1B21)."
  },
  {
   "address": 1149,
   "type": "line",
   "text": "Per fighter (pair $047D/$047E): 1 when the move script has run out ($1AC7, $1AE8), cleared when a new move starts ($1B6D)."
  },
  {
   "address": 1151,
   "type": "line",
   "text": "Variable $047F: read at $2A16, $2BA5, $2C2C; written at $3F9C."
  },
  {
   "address": 1153,
   "type": "line",
   "text": "Second target position from an exit record ($071A, $075A, $07AA)."
  },
  {
   "address": 1154,
   "type": "line",
   "text": "Set to 1 at $07C7 when the exit's target position underflows; makes $11A1 snap the scroll to scroll_min."
  },
  {
   "address": 1155,
   "type": "line",
   "text": "Variable $0483: $80 at $1A5D; used at $219B-$2864."
  },
  {
   "address": 1156,
   "type": "line",
   "text": "Last value written to $D01B (sprite-behind-background bits) for the zone ($11F9); restored at $0C05."
  },
  {
   "address": 1157,
   "type": "line",
   "text": "Variable $0485: $26D8, $2D28, $397F."
  },
  {
   "address": 1158,
   "type": "line",
   "text": "Per fighter (pair $0486/$0487): added to the move number to index $AF46: $1E for moves $0C-$0E outside barrier mode ($1A95), else 0."
  },
  {
   "address": 1160,
   "type": "line",
   "text": "Colour scheme of a zone-0 room ($10EC), from $0E52 or the fixed values for rooms 4-7; indexes $0E70 and $0E7A-$0E8E."
  },
  {
   "address": 1161,
   "type": "line",
   "text": "When set, reaching a walk limit calls $19C1/$1A49; cleared at $1A6F."
  },
  {
   "address": 1162,
   "type": "line",
   "text": "Variable $048A: tested at $084D; used at $21AF-$365E."
  },
  {
   "address": 1164,
   "type": "line",
   "text": "Variable $048C: $2135-$396F."
  },
  {
   "address": 1165,
   "type": "line",
   "text": "Variable $048D: $291F, $2C34, $2D4B-$2D52."
  },
  {
   "address": 1167,
   "type": "line",
   "text": "Variable $048F: $2D7D, $2D82."
  },
  {
   "address": 1168,
   "type": "line",
   "text": "Variable $0490: $2D5F-$2D77."
  },
  {
   "address": 1169,
   "type": "line",
   "text": "Set together with $0492 at $0663, $0671, $0A4A, $0A5F, $10DD (values $80, $0A, $0B); also used at $217E-$2D66. Meaning not traced."
  },
  {
   "address": 1170,
   "type": "line",
   "text": "Set with $0491 to 2, 5, 3, 0 or 6 when particular exits or items are reached ($0656, $066C, $0A4F, $0A64, $10E2). Meaning not traced."
  },
  {
   "address": 1171,
   "type": "line",
   "text": "$0493-$04BC: 42 bytes of 0/1/$80 values, read indexed at $28A2, $3471, $34E5, $35DD."
  },
  {
   "address": 1213,
   "type": "line",
   "text": "$04BD-$04C8: 12 bytes ($00, $15, $14, $10...), read indexed at $2E6C, $2F29, $36A0."
  },
  {
   "address": 1225,
   "type": "line",
   "text": "$04C9-$04D4: 12 bytes, read indexed at $37F0-$395B."
  },
  {
   "address": 1237,
   "type": "line",
   "text": "$04D5-$04E0: 12 bytes (7, 8, 10, 6...), added or subtracted at $3800-$3872."
  },
  {
   "address": 1249,
   "type": "line",
   "text": "$04E1-$04EC: 12 pose numbers; $0A3B accepts a hit on an item only if fighter 0's pose equals the entry for its $8B value, also read at $2A27, $3790."
  },
  {
   "address": 1261,
   "type": "line",
   "text": "$04ED-$0504: 12 little-endian words: $0000 then pointers $7CA6-$7E2C, 39 bytes apart; read as pairs at $37A9/$37AE."
  },
  {
   "address": 1262,
   "type": "line",
   "text": "High bytes of the $04ED word table, read at $37AE."
  },
  {
   "address": 1285,
   "type": "line",
   "text": "$0505-$051C: 12 words: $0000 then pointers $7E53-$7FD9, 39 bytes apart; read at $37BA/$37BF."
  },
  {
   "address": 1286,
   "type": "line",
   "text": "High bytes of the $0505 word table, read at $37BF."
  },
  {
   "address": 1309,
   "type": "line",
   "text": "$051D-$052E: 18 bytes, read indexed at $24AC."
  },
  {
   "address": 1327,
   "type": "line",
   "text": "$052F-$053A: 12 bytes, read indexed at $381E."
  },
  {
   "address": 1339,
   "type": "line",
   "text": "$053B-$0542: the bit masks $01-$80, used to set a sprite's X bit 8 in $D010 ($0D53) and elsewhere."
  },
  {
   "address": 1347,
   "type": "line",
   "text": "$0543-$054A: the inverted masks $FE-$7F, used to clear a sprite's bit in $D010 ($0D49)."
  },
  {
   "address": 1355,
   "type": "line",
   "text": "$054B-$0552: 8 bytes $0B-$18, read at $2D9F."
  },
  {
   "address": 1363,
   "type": "line",
   "text": "$0553-$055A: 8 bytes $0C-$19, read at $2DA5."
  },
  {
   "address": 1371,
   "type": "line",
   "text": "Fighter X's world column: ($DB,X/$DD,X) / 8, plus 3 when facing is set, into $E5,X."
  },
  {
   "address": 1398,
   "type": "line",
   "text": "Walks the room's 4-byte exit records (type in the low 5 bits of byte 0) and compares each with the hero's column $E5; depending on the type, it takes the exit ($06EB, $072E, $0796) or sets a bit in $0473. Called at $227B."
  },
  {
   "address": 1486,
   "type": "line",
   "text": "Returns A=0 (Z set) when the hero's column $E5 lies within 2 columns of the exit's X byte, else A=$80."
  },
  {
   "address": 1792,
   "type": "line",
   "text": "Exit taken to the right (entered with facing 0 and move $0D, or facing 1 and $0E): records the exit and target room and position. Called at $364E."
  },
  {
   "address": 1942,
   "type": "line",
   "text": "Takes an exit whose target position is relative to scroll_column; sets $0482 if it underflows. Called at $360A."
  },
  {
   "address": 1995,
   "type": "line",
   "text": "Sets the hero's world X ($DB/$DD) to the exit's column times 8 (minus 2 columns when facing is set, via the operand at $07E2). Called at $36F5."
  },
  {
   "address": 2018,
   "type": "line",
   "text": "Operand of the SBC at $07E1: 0 or 2, written at $07D2/$07DB."
  },
  {
   "address": 2053,
   "type": "line",
   "text": "$0805-$0808: the offsets (Y) of the exit records that set each bit of $0473 or were taken, saved at $0788, $076C, $0743, $0700; read at $3603-$3707."
  },
  {
   "address": 2054,
   "type": "line",
   "text": "Saved exit offset for bits 1-3 of $0473; read at $3616, $3624, $3631, $3707."
  },
  {
   "address": 2055,
   "type": "line",
   "text": "Saved exit offset of the exit taken at $0743; no reader found in the traced code."
  },
  {
   "address": 2056,
   "type": "line",
   "text": "Saved exit offset of the exit taken at $0700; no reader found in the traced code."
  },
  {
   "address": 2057,
   "type": "line",
   "text": "For fighter X: if the room and its column match a triple in $0F9B, sets $0A7D,X; if a newly set $0474,X flag applies, resets the sprite set and recomputes $8B/$AD. Called at $21BA, $2278, $2895, $3659."
  },
  {
   "address": 2170,
   "type": "line",
   "text": "Scans the room's item list ($F0) for the active barrier records nearest the hero's column on each side; sets scroll_min $0428 and scroll_max $0427 and saves the barrier columns in $0A7B/$0A7C and offsets in $0A79/$0A7A."
  },
  {
   "address": 2272,
   "type": "line",
   "text": "Turns the barrier columns $0A7B/$0A7C into screen-pixel walk limits $0437-$043E (a default when a barrier is off screen)."
  },
  {
   "address": 2417,
   "type": "line",
   "text": "When the scroll is at a limit and the hero is past the walk limit, tests the barrier item; on a qualifying hit ($0A2E) clears its active bit, redraws the room and plays sound 8 ($3DB8). Called at $229F."
  },
  {
   "address": 2605,
   "type": "line",
   "text": "0 or 1: which side's barrier was hit, copied to $1535 at $09E4."
  },
  {
   "address": 2606,
   "type": "line",
   "text": "Returns $80 or 1 (by facing) when fighter 0's move and pose match the item's requirement (tables $04E1) and the item's type/flag conditions ($0405, $0408) allow it; else 0."
  },
  {
   "address": 2681,
   "type": "line",
   "text": "$0A79/$0A7A: offsets in the item list of the left and right barrier records ($088A, $08D2)."
  },
  {
   "address": 2682,
   "type": "line",
   "text": "Offset of the right barrier record in the item list."
  },
  {
   "address": 2683,
   "type": "line",
   "text": "Column of the left barrier's inner edge ($08A6)."
  },
  {
   "address": 2684,
   "type": "line",
   "text": "Column of the right barrier's inner edge ($08DC)."
  },
  {
   "address": 2685,
   "type": "line",
   "text": "$0A7D/$0A7E: per fighter, 1 when the fighter stands in a $0F9B zone ($0830); EORed with the facing to choose $8B."
  },
  {
   "address": 2686,
   "type": "line",
   "text": "Fighter 1's byte of fighter_zone_flag; also written at $21A7, $27E9."
  },
  {
   "address": 2687,
   "type": "line",
   "text": "Zone 2 only: for each scenery object, shapes $80/$81 and $86/$87 are swapped to the variant facing the hero, by comparing the object column with $E5."
  },
  {
   "address": 2749,
   "type": "line",
   "text": "$0ABD-$0AC6: 10 bytes, indexed by the item's low nibble: the width subtracted at $0899 and added at $08C9."
  },
  {
   "address": 2759,
   "type": "line",
   "text": "$0AC7-$0AD0: 10 bytes, the second width per item kind ($08A3, $08D9)."
  },
  {
   "address": 2769,
   "type": "line",
   "text": "At room entry: finds the room's item list through the table at ($501B) and sets bit 7 (active) on every record that is not a short record. Called at $216E."
  },
  {
   "address": 2855,
   "type": "line",
   "text": "LDA $xxxx,X with the address patched from $501B/$501C: reads the room table."
  },
  {
   "address": 2856,
   "type": "line",
   "text": "Operand of the LDA at $0B27, low byte, patched at $0AD4."
  },
  {
   "address": 2857,
   "type": "line",
   "text": "Operand of the LDA at $0B27, high byte, patched at $0ADA."
  },
  {
   "address": 2859,
   "type": "line",
   "text": "Puts back the shapes of active items in the room's scenery list: an empty ($FF) slot gets $82 (zone 0) or $86."
  },
  {
   "address": 2959,
   "type": "line",
   "text": "Shape written back by $0B2B: $82 or $86."
  },
  {
   "address": 2960,
   "type": "line",
   "text": "Writes shape $99 into three scenery slots of zone-1 rooms 10 and 14 (tables at $68AC). Called at $216B."
  },
  {
   "address": 2987,
   "type": "line",
   "text": "Points $C5/$C6 at the zone-1 scenery shape list of room X/2 ($68AC + $68D8)."
  },
  {
   "address": 3003,
   "type": "line",
   "text": "Points $C5/$C6 at the zone-0 scenery shape list of room X/2 ($5BC7 + $5BD7)."
  },
  {
   "address": 3019,
   "type": "line",
   "text": "Empties (shape $FF) one slot each in zone-0 rooms 1 and 3."
  },
  {
   "address": 3039,
   "type": "line",
   "text": "Operand byte inside the STA ($C5),Y at $0BDF; a store at $C298 in the loader era writes here. The store is outside this range; not checked."
  },
  {
   "address": 3042,
   "type": "line",
   "text": "Sets $D01B to $FF (sprites behind scenery) when the hero is in a column range listed in $0FC0, else to the zone's value $0484. Called at $2275."
  },
  {
   "address": 3088,
   "type": "line",
   "text": "Fills 19 bytes at $33E3-$33F5 with A."
  },
  {
   "address": 3097,
   "type": "line",
   "text": "Clears $33E3-$33F5, then sets $33ED and $33EF-$33F5 to 1."
  },
  {
   "address": 3123,
   "type": "line",
   "text": "Sets $33E3-$33F5 to 1, then applies $0C3E when $0474 is set."
  },
  {
   "address": 3134,
   "type": "line",
   "text": "Clears $33E6, $33EA, $33EC and $33F3-$33F5."
  },
  {
   "address": 3155,
   "type": "line",
   "text": "Steps extra sprite object X through its script at $0D7F (4 bytes: timer, frame, X step with bit 7 = direction, Y step); returns A=1 when the script ends. Called at $2A96, $2B47, $2BC0."
  },
  {
   "address": 3335,
   "type": "line",
   "text": "Puts object X on hardware sprite Y: pointer in both screens' pointer blocks ($CFF8, $F3F8), colour, Y, and X relative to camera_x with $D010."
  },
  {
   "address": 3418,
   "type": "line",
   "text": "$0D5A-$0DDC: the extra sprite objects' state and scripts. $0D5A-$0D5D: X low byte, per object."
  },
  {
   "address": 3419,
   "type": "line",
   "text": "X low byte of the second half of a two-sprite object ($0CE4: X + 24)."
  },
  {
   "address": 3420,
   "type": "line",
   "text": "Object X low byte, object 2; written at $2B88."
  },
  {
   "address": 3422,
   "type": "line",
   "text": "$0D5E-$0D61: object X high byte."
  },
  {
   "address": 3423,
   "type": "line",
   "text": "X high byte of the second sprite of a two-sprite object ($0CEC)."
  },
  {
   "address": 3424,
   "type": "line",
   "text": "Object X high byte, object 2; written at $2B90."
  },
  {
   "address": 3426,
   "type": "line",
   "text": "$0D62-$0D65: object sprite colour ($0D12)."
  },
  {
   "address": 3427,
   "type": "line",
   "text": "Colour of object 1; written at $298B, $29F5, $2DE4."
  },
  {
   "address": 3428,
   "type": "line",
   "text": "Colour of object 2; written at $2B95."
  },
  {
   "address": 3430,
   "type": "line",
   "text": "$0D66-$0D69: object sprite Y."
  },
  {
   "address": 3431,
   "type": "line",
   "text": "Y of object 1 / second sprite of a two-sprite object ($0CDB)."
  },
  {
   "address": 3432,
   "type": "line",
   "text": "Y of object 2; written at $2B7B."
  },
  {
   "address": 3434,
   "type": "line",
   "text": "$0D6A-$0D6D: object sprite pointer, from $0DC3 ($0CC8); 0 = hidden ($0D10)."
  },
  {
   "address": 3435,
   "type": "line",
   "text": "Sprite pointer of object 1 / second sprite ($0DD0, $0CD5)."
  },
  {
   "address": 3436,
   "type": "line",
   "text": "Sprite pointer of object 2; written at $2405."
  },
  {
   "address": 3437,
   "type": "line",
   "text": "Sprite pointer of object 3; written at $2408."
  },
  {
   "address": 3438,
   "type": "line",
   "text": "$0D6E-$0D71: object state: 0 = idle, 2 = a two-sprite object."
  },
  {
   "address": 3440,
   "type": "line",
   "text": "State of object 2; written at $2B66, ORed at $232B, $2351."
  },
  {
   "address": 3442,
   "type": "line",
   "text": "Work: bit 8 of the sprite X being placed ($0D32)."
  },
  {
   "address": 3443,
   "type": "line",
   "text": "Work: X step being subtracted ($0CA2)."
  },
  {
   "address": 3444,
   "type": "line",
   "text": "$0D74-$0D77: object step timer."
  },
  {
   "address": 3446,
   "type": "line",
   "text": "Timer of object 2; written at $28E7, $2B75."
  },
  {
   "address": 3448,
   "type": "line",
   "text": "$0D78-$0D7B: offset into the object script table $0D7F (+4 per step)."
  },
  {
   "address": 3450,
   "type": "line",
   "text": "Script offset of object 2; written at $2B70."
  },
  {
   "address": 3452,
   "type": "line",
   "text": "When set, the object's X steps are reversed and the two sprites of a pair swapped ($0C7C, $0CEF)."
  },
  {
   "address": 3453,
   "type": "line",
   "text": "Variable $0D7D: $290E, $2918."
  },
  {
   "address": 3454,
   "type": "line",
   "text": "Variable $0D7E: $28F0, $28F5."
  },
  {
   "address": 3455,
   "type": "line",
   "text": "$0D7F-$0DC2: object scripts, 4 bytes a step (timer, frame index, X step with bit 7 = backwards, Y step), a timer of $FF ends a script."
  },
  {
   "address": 3456,
   "type": "line",
   "text": "Frame-index column of obj_scripts ($0CC1)."
  },
  {
   "address": 3457,
   "type": "line",
   "text": "X-step column of obj_scripts ($0C77)."
  },
  {
   "address": 3458,
   "type": "line",
   "text": "Y-step column of obj_scripts ($0CB7)."
  },
  {
   "address": 3522,
   "type": "line",
   "text": "The $FF that ends the last object script in obj_scripts."
  },
  {
   "address": 3523,
   "type": "line",
   "text": "$0DC3-$0DCF: sprite pointers per frame index ($29-$2F, $2A-$2E, $BD, $BF...)."
  },
  {
   "address": 3536,
   "type": "line",
   "text": "$0DD0-$0DDC: sprite pointers of the second sprite of a two-sprite object."
  },
  {
   "address": 3549,
   "type": "line",
   "text": "Mirrors the 7 sprites from $CA40 and then 1 at $F000 (64 bytes at the start of screen $F000, as the code reads; not checked live), using $0E17. Called at $28F8."
  },
  {
   "address": 3572,
   "type": "line",
   "text": "Mirrors A consecutive 64-byte sprites starting at ($B6)."
  },
  {
   "address": 3595,
   "type": "line",
   "text": "Mirrors 7 sprites at $EE40. Called at $291B."
  },
  {
   "address": 3607,
   "type": "line",
   "text": "Mirrors one sprite left-right in place: swaps bytes 0 and 2 of each row and bit-reverses all three through the table $BF00."
  },
  {
   "address": 3647,
   "type": "line",
   "text": "$0E3F-$0FEB: room, zone and colour tables. $0E3F: unused byte ($60); $0E40-$0E42: $C0 value per zone."
  },
  {
   "address": 3648,
   "type": "line",
   "text": "$0E40-$0E42: colour value $C0 per zone ($121B)."
  },
  {
   "address": 3652,
   "type": "line",
   "text": "First room of zone 1 ($08)."
  },
  {
   "address": 3653,
   "type": "line",
   "text": "First room of zone 2 ($1E)."
  },
  {
   "address": 3654,
   "type": "line",
   "text": "$0E46-$0E48: border colour $D020 per zone ($1209)."
  },
  {
   "address": 3657,
   "type": "line",
   "text": "$0E49-$0E4B: $C1 per zone."
  },
  {
   "address": 3660,
   "type": "line",
   "text": "$0E4C-$0E4E: $C2 per zone."
  },
  {
   "address": 3663,
   "type": "line",
   "text": "$0E4F-$0E51: $B8 per zone."
  },
  {
   "address": 3666,
   "type": "line",
   "text": "$0E52-$0E6F: colour scheme of each zone-0 target room, two per byte (high nibble for even rooms), read at $10C9."
  },
  {
   "address": 3696,
   "type": "line",
   "text": "$0E70-$0E79: colour-list number per scheme ($10F0)."
  },
  {
   "address": 3706,
   "type": "line",
   "text": "$0E7A-$0E83: $B8 per colour scheme ($1227)."
  },
  {
   "address": 3716,
   "type": "line",
   "text": "$0E84-$0E8D: $C1 per colour scheme."
  },
  {
   "address": 3726,
   "type": "line",
   "text": "$0E8E-$0E97: $C2 per colour scheme."
  },
  {
   "address": 3736,
   "type": "line",
   "text": "$0E98-$0EA3: pointers to zone-0 colour-RAM lists; the lists follow ($0EA4...)."
  },
  {
   "address": 3737,
   "type": "line",
   "text": "High bytes of the zone-0 colour-list pointers ($10FA)."
  },
  {
   "address": 3757,
   "type": "line",
   "text": "$0EAD-$0EC2: colour-list number per zone-1 room (room - 8) ($113F)."
  },
  {
   "address": 3779,
   "type": "line",
   "text": "$0EC3-$0ED8: $B8 per zone-1 room ($1241)."
  },
  {
   "address": 3801,
   "type": "line",
   "text": "$0ED9-$0EE2: pointers to zone-1 colour-RAM lists, lists after them."
  },
  {
   "address": 3802,
   "type": "line",
   "text": "High bytes of the zone-1 colour-list pointers ($1149)."
  },
  {
   "address": 3820,
   "type": "line",
   "text": "$0EEC-...: pointers to zone-2 colour-RAM lists, indexed by target room - $64 ($118F)."
  },
  {
   "address": 3821,
   "type": "line",
   "text": "High bytes of the zone-2 colour-list pointers ($1194)."
  },
  {
   "address": 3885,
   "type": "line",
   "text": "$0F2D-$0F31: last bytes of the zone-2 colour-RAM lists (rows in the high 5 bits, colour in the low 3), before zone_shape_tables."
  },
  {
   "address": 3890,
   "type": "line",
   "text": "$0F32-$0F67: per zone (2 bytes each, 3 zones) the addresses of the shape tables loaded into $CB-$D8 by $124A, then the graphics and compound bases $0FE8-$0FEB."
  },
  {
   "address": 3891,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D4 at $124A-$128E."
  },
  {
   "address": 3896,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D5 at $124A-$128E."
  },
  {
   "address": 3897,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D6 at $124A-$128E."
  },
  {
   "address": 3902,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $CF at $124A-$128E."
  },
  {
   "address": 3903,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D0 at $124A-$128E."
  },
  {
   "address": 3908,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D1 at $124A-$128E."
  },
  {
   "address": 3909,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D2 at $124A-$128E."
  },
  {
   "address": 3914,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $CB at $124A-$128E."
  },
  {
   "address": 3915,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $CC at $124A-$128E."
  },
  {
   "address": 3920,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $CD at $124A-$128E."
  },
  {
   "address": 3921,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $CE at $124A-$128E."
  },
  {
   "address": 3926,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D7 at $124A-$128E."
  },
  {
   "address": 3927,
   "type": "line",
   "text": "Column of zone_shape_tables loaded into $D8 at $124A-$128E."
  },
  {
   "address": 3932,
   "type": "line",
   "text": "$0F5C-$0F61: per zone, the base added to shape graphics addresses ($0FE8/$0FE9)."
  },
  {
   "address": 3933,
   "type": "line",
   "text": "High bytes of zone_gfx_base ($1296)."
  },
  {
   "address": 3938,
   "type": "line",
   "text": "$0F62-$0F67: per zone, the base added to compound-object addresses ($0FEA/$0FEB)."
  },
  {
   "address": 3939,
   "type": "line",
   "text": "High bytes of zone_compound_base ($12A2)."
  },
  {
   "address": 3944,
   "type": "line",
   "text": "$0F68-$0F97: number of scenery objects per room, stored to $0FE7 ($1006)."
  },
  {
   "address": 3992,
   "type": "line",
   "text": "$0F98-$0F9A: $D01B value per zone ($11E6); rooms 4-7 force 0."
  },
  {
   "address": 3995,
   "type": "line",
   "text": "$0F9B-$0FBF: triples (room, first column, last column), ended by $FF: where $0809 sets fighter_zone_flag."
  },
  {
   "address": 4032,
   "type": "line",
   "text": "$0FC0-$0FE4: triples (room, first column, last column), ended by $FF: where $0BE2 puts sprites behind the scenery."
  },
  {
   "address": 4069,
   "type": "line",
   "text": "Column of the compound object being drawn."
  },
  {
   "address": 4070,
   "type": "line",
   "text": "Row of the compound object being drawn."
  },
  {
   "address": 4071,
   "type": "line",
   "text": "Number of scenery objects in the current room."
  },
  {
   "address": 4072,
   "type": "line",
   "text": "Current zone's shape graphics base, low byte ($1293)."
  },
  {
   "address": 4073,
   "type": "line",
   "text": "Current zone's shape graphics base, high byte."
  },
  {
   "address": 4074,
   "type": "line",
   "text": "Current zone's compound-list base, low byte."
  },
  {
   "address": 4075,
   "type": "line",
   "text": "Current zone's compound-list base, high byte."
  },
  {
   "address": 4076,
   "type": "line",
   "text": "Room entry: reads the new room number, selects the zone tables, points the scenery lists, exit list and colour list at the room, sets the scroll limits, barrier, zone-2 facing and item shapes. Called at $23F4."
  },
  {
   "address": 4089,
   "type": "line",
   "text": "Operand of the LDA at $0FF8, patched from $4A6F."
  },
  {
   "address": 4090,
   "type": "line",
   "text": "Operand high byte, patched from $4A70."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "The first byte of $1000 is where the loader calls TSETUP (JSR $1000 at $C06B) before BNK12A overwrites this area; in the game it is the operand high byte of JSR $196F at $0FFE (inside enter_room)."
  },
  {
   "address": 4177,
   "type": "line",
   "text": "Operand of the LDA at $1050 (low byte of the room's item list), patched from $501B."
  },
  {
   "address": 4178,
   "type": "line",
   "text": "Operand high byte of the LDA at $1050, from $501C."
  },
  {
   "address": 4182,
   "type": "line",
   "text": "Operand of the LDA at $1055 (high byte of the room's item list): $501B + 1."
  },
  {
   "address": 4183,
   "type": "line",
   "text": "Operand high byte of the LDA at $1055."
  },
  {
   "address": 4570,
   "type": "line",
   "text": "Paints colour RAM for the room ($16B8) and sets the zone's tune ($FF), sprite priority, border and the colour values $B8, $C0-$C2. Called at $242F."
  },
  {
   "address": 4679,
   "type": "line",
   "text": "$1247-$1249: tune number per zone (1, 3, 2), stored in $FF."
  },
  {
   "address": 4682,
   "type": "line",
   "text": "Loads the pointers $CB-$D8 and the bases $0FE8-$0FEB for zone Y/2 from $0F32-$0F67."
  },
  {
   "address": 4777,
   "type": "line",
   "text": "Start-up: play-area origin $F078, scroll_column 0, fine scroll 0, redraw_done 1, $BF=$CF, $1536=$30."
  },
  {
   "address": 4810,
   "type": "line",
   "text": "The background task, entered by RTI from $1510: with the interrupt exit at $3D86 set to switch tasks (NOP), rebuilds the other screen when redraw_done is 0 ($1447), then makes $3D86 an RTI again and restarts itself ($151E)."
  },
  {
   "address": 4838,
   "type": "line",
   "text": "Draws the new column at the screen edge (0 or 39, $1540) for every scenery object that covers it, after $1447 has shifted the screen."
  },
  {
   "address": 5061,
   "type": "line",
   "text": "Draws one scenery object's cells in the edge column only."
  },
  {
   "address": 5079,
   "type": "line",
   "text": "Entry of draw_obj_column for a compound part (shape already in Y)."
  },
  {
   "address": 5156,
   "type": "line",
   "text": "Operand of the LDA at $1423: the object's character data, low byte, patched at $13E8."
  },
  {
   "address": 5157,
   "type": "line",
   "text": "Operand high byte, patched at $13F0 and stepped at $141B."
  },
  {
   "address": 5191,
   "type": "line",
   "text": "Copies the shown screen's play area one column left or right into the other screen ($148D) and clears the column that comes in ($14BA/$14DD), then draws it ($12E6)."
  },
  {
   "address": 5261,
   "type": "line",
   "text": "Copies 20 rows of 39 characters between the two screens, offset by one column."
  },
  {
   "address": 5266,
   "type": "line",
   "text": "Operand of the LDA at $1491: source row, low byte."
  },
  {
   "address": 5267,
   "type": "line",
   "text": "Operand high byte of the copy's source (the shown screen)."
  },
  {
   "address": 5269,
   "type": "line",
   "text": "Operand of the STA at $1494: destination row, low byte."
  },
  {
   "address": 5270,
   "type": "line",
   "text": "Operand high byte of the copy's destination (the screen being prepared)."
  },
  {
   "address": 5306,
   "type": "line",
   "text": "Writes 0 into column 0 of the 20 play-area rows."
  },
  {
   "address": 5321,
   "type": "line",
   "text": "Operand of the STY at $14C8, low byte."
  },
  {
   "address": 5322,
   "type": "line",
   "text": "Operand of the STY at $14C8, high byte."
  },
  {
   "address": 5341,
   "type": "line",
   "text": "Writes 0 into column 39 of the 20 play-area rows."
  },
  {
   "address": 5352,
   "type": "line",
   "text": "Task switch from the main program to the background task (entered by JMP from the interrupt at $3C1F): saves registers and stack pointer, loads the background's, RTI."
  },
  {
   "address": 5379,
   "type": "line",
   "text": "Task switch back from the background task to the main program (from the interrupt exit at $3D87 while $3D86 is a NOP)."
  },
  {
   "address": 5406,
   "type": "line",
   "text": "Rebuilds the background task's stack (SP $32, RTI frame to $12CA at $0133-$0135) and switches to the main program."
  },
  {
   "address": 5429,
   "type": "line",
   "text": "Side of the pending coarse scroll: 0 = the new column is drawn at the left edge (column 0), 1 = at the right edge (column 39), as $1447 and $12E6 use it."
  },
  {
   "address": 5430,
   "type": "line",
   "text": "Flipped between $30 and $C0 with the screens at $18C2; ORed into the interrupt's $D018 value at $3BFF."
  },
  {
   "address": 5431,
   "type": "line",
   "text": "Fine scroll 0-7 ($1832, $1883); read by the interrupt code at $2126."
  },
  {
   "address": 5432,
   "type": "line",
   "text": "Saved stack pointer of the background task."
  },
  {
   "address": 5433,
   "type": "line",
   "text": "Saved stack pointer of the main program."
  },
  {
   "address": 5434,
   "type": "line",
   "text": "Background task's saved X."
  },
  {
   "address": 5435,
   "type": "line",
   "text": "Background task's saved Y."
  },
  {
   "address": 5436,
   "type": "line",
   "text": "Background task's saved A."
  },
  {
   "address": 5437,
   "type": "line",
   "text": "Main program's saved X."
  },
  {
   "address": 5438,
   "type": "line",
   "text": "Main program's saved Y."
  },
  {
   "address": 5439,
   "type": "line",
   "text": "Main program's saved A."
  },
  {
   "address": 5440,
   "type": "line",
   "text": "Screen column to draw after a shift: 0 or 39 ($1460, $1477)."
  },
  {
   "address": 5441,
   "type": "line",
   "text": "Start-up: background stack pointer $32 and RTI frame to $12CA. Called at $2104."
  },
  {
   "address": 5462,
   "type": "line",
   "text": "Draws every scenery object (and each part of a compound one) that lies in the 40 columns from scroll_column into the back screen."
  },
  {
   "address": 5646,
   "type": "line",
   "text": "Draws one scenery object Y: position from the room lists, then its rows via $1620."
  },
  {
   "address": 5664,
   "type": "line",
   "text": "Draws shape Y at column $78, row $79: height rows of width cells from its character data, clipped to columns 0-39 and to row 20."
  },
  {
   "address": 5738,
   "type": "line",
   "text": "Operand of the LDA at $1669: the shape's character data, low byte."
  },
  {
   "address": 5739,
   "type": "line",
   "text": "Operand high byte, stepped at $165E."
  },
  {
   "address": 5773,
   "type": "line",
   "text": "Clears the 20 rows of 40 characters at the play-area origin of the back screen."
  },
  {
   "address": 5790,
   "type": "line",
   "text": "Operand of the STA at $169D, low byte."
  },
  {
   "address": 5791,
   "type": "line",
   "text": "Operand of the STA at $169D, high byte."
  },
  {
   "address": 5813,
   "type": "line",
   "text": "Offset in the room's colour list ($16CA)."
  },
  {
   "address": 5814,
   "type": "line",
   "text": "Colour being filled ($16D4)."
  },
  {
   "address": 5815,
   "type": "line",
   "text": "Rows of colour RAM still to fill (20 at start)."
  },
  {
   "address": 5816,
   "type": "line",
   "text": "Fills colour RAM rows 3-22 from the room's colour list ($D9); room 6 then gets extra colour patches at $170A-$173C."
  },
  {
   "address": 5858,
   "type": "line",
   "text": "Operand of the STA at $16E1, low byte."
  },
  {
   "address": 5859,
   "type": "line",
   "text": "Operand of the STA at $16E1, high byte."
  },
  {
   "address": 5951,
   "type": "line",
   "text": "$173F-$1752: low bytes of the addresses of play-area rows 3-22 ($78 + 40 * n), for the edge-column drawing at $13F9."
  },
  {
   "address": 5971,
   "type": "line",
   "text": "Keeps the hero between the walk limits of the current facing; starts a scroll when the hero reaches one; sets $90. Called every frame at $3FBF."
  },
  {
   "address": 6147,
   "type": "line",
   "text": "Every frame ($3FC2): decides the scroll direction from $90, or runs the walk/scroll step: fine scroll, coarse scroll with screen flip ($18BC), or the hero's walking move."
  },
  {
   "address": 6332,
   "type": "line",
   "text": "Swaps the two screens after a coarse scroll step: $74, $1536 and $BF are flipped; asks the background task for the next rebuild."
  },
  {
   "address": 6511,
   "type": "line",
   "text": "Returns the zone of current_room in A: 0, 1 or 2."
  },
  {
   "address": 6533,
   "type": "line",
   "text": "At the walk limits, starts a scroll step to the right or left or stops ($19C1). Called at $223F."
  },
  {
   "address": 6593,
   "type": "line",
   "text": "Starts a scroll: $0461 = A, $1535 = A AND 1, redraw request, default walk limits."
  },
  {
   "address": 6624,
   "type": "line",
   "text": "Sets the left walk limits to $AC/$94."
  },
  {
   "address": 6643,
   "type": "line",
   "text": "Sets the right walk limits to $AC/$94."
  },
  {
   "address": 6662,
   "type": "line",
   "text": "Points $E7/$E8 at the exit records of room X (skipping X lists ended by 0) and sets the field pointers $E9-$EE."
  },
  {
   "address": 6729,
   "type": "line",
   "text": "After a scroll, if $0489 is set: calls $27DC or asks for new barriers ($0462 = 1, $08E0, $0C33)."
  },
  {
   "address": 6771,
   "type": "line",
   "text": "Per frame for fighter X: starts or steps the move script. Called at $21F8, $376A."
  },
  {
   "address": 6817,
   "type": "line",
   "text": "Counts down the frame timer; on expiry moves to the next (or previous) 4-byte step, loads pose, X and height steps and rebuilds the sprites ($1BDE)."
  },
  {
   "address": 7016,
   "type": "line",
   "text": "Starts move $7D,X: clears the step values, finds the script length, and sets the position to the start or end."
  },
  {
   "address": 7030,
   "type": "line",
   "text": "Entry of start_move_script that keeps the cleared values (called at $35FF)."
  },
  {
   "address": 7067,
   "type": "line",
   "text": "$1B9B-$1BBE: four lists of nine sprite pointers ($01-$09, $0A-$12, $13-$1B, $1C-$24), the defaults for the nine build slots $9C-$A4 of each sprite buffer."
  },
  {
   "address": 7103,
   "type": "line",
   "text": "$1BBF-$1BC2: low bytes of the four lists at $1B9B, patched into $1C05/$1E02."
  },
  {
   "address": 7107,
   "type": "line",
   "text": "$1BC3-$1BC6: high bytes of those lists."
  },
  {
   "address": 7111,
   "type": "line",
   "text": "$1BC7-$1BCA: $00, $40, $80, $C0: low byte of a 64-byte slot, used at $203F."
  },
  {
   "address": 7112,
   "type": "line",
   "text": "$1BC8-$1BCB: low bytes of the four fighter sprite buffers $C040, $C280, $C4C0, $C700 (with $1BCC)."
  },
  {
   "address": 7116,
   "type": "line",
   "text": "$1BCC-$1BCF: high bytes of the sprite buffers."
  },
  {
   "address": 7120,
   "type": "line",
   "text": "$1BD0-$1BD3: high bytes of the four extra-sprite buffers ($C940-$CA00)."
  },
  {
   "address": 7124,
   "type": "line",
   "text": "$1BD4-$1BDD: image number / 4 (page offset of a 64-byte image), used at $2032."
  },
  {
   "address": 7134,
   "type": "line",
   "text": "Assembles fighter X's pose in the other sprite buffer: for each of the nine parts in the tables $B210-$B458, decodes the part image ($1D3D or mirrored $1EF5), then copies the pointers ($1CD1) and the accessory sprites."
  },
  {
   "address": 7173,
   "type": "line",
   "text": "Operand of the LDA at $1C04 (a list at $1B9B), low byte."
  },
  {
   "address": 7174,
   "type": "line",
   "text": "Operand of the LDA at $1C04, high byte."
  },
  {
   "address": 7377,
   "type": "line",
   "text": "Copies the nine build slots into fighter X's sprite pointers $02-$13 (parts 6-8 cleared when $0474,X is set)."
  },
  {
   "address": 7429,
   "type": "line",
   "text": "$1D05-$1D0C: the eight poses that show accessory sprites."
  },
  {
   "address": 7437,
   "type": "line",
   "text": "$1D0D-$1D1C: accessory sprite 0 pointer per pose (8 facing 0, 8 facing 1)."
  },
  {
   "address": 7453,
   "type": "line",
   "text": "$1D1D-$1D2C: accessory sprite 1 pointer per pose."
  },
  {
   "address": 7469,
   "type": "line",
   "text": "$1D2D-$1D3C: accessory sprite 2 pointer per pose."
  },
  {
   "address": 7485,
   "type": "line",
   "text": "Decodes part image A into the 64-byte sprite at ($9A): bytes copied, a 0 followed by a count gives that many zero bytes. The source address comes from $B57C/$B661 + $80."
  },
  {
   "address": 7541,
   "type": "line",
   "text": "Operand of the LDA at $1D74 (part image source), low byte."
  },
  {
   "address": 7542,
   "type": "line",
   "text": "Operand high byte."
  },
  {
   "address": 7558,
   "type": "line",
   "text": "Operand of the ADC at $1D85 (the run count), low byte."
  },
  {
   "address": 7559,
   "type": "line",
   "text": "Operand of the ADC at $1D85, high byte (the part source page, patched at $1D4C/$1D64)."
  },
  {
   "address": 7569,
   "type": "line",
   "text": "Operand of the CPY at $1D90: end of the zero run."
  },
  {
   "address": 7574,
   "type": "line",
   "text": "The pose number, kept here during the build ($1C12, $1DA2)."
  },
  {
   "address": 7575,
   "type": "line",
   "text": "Advances ($9A) to the next 64-byte sprite."
  },
  {
   "address": 7590,
   "type": "line",
   "text": "The mirrored form of build_pose (facing set): the parts are decoded right to left into the buffers by the self-modifying $1EF5."
  },
  {
   "address": 7682,
   "type": "line",
   "text": "Operand of the LDA at $1E01, low byte."
  },
  {
   "address": 7683,
   "type": "line",
   "text": "Operand of the LDA at $1E01, high byte."
  },
  {
   "address": 7833,
   "type": "line",
   "text": "Advances the patched destination operands at $1F74-$1FCA by one sprite."
  },
  {
   "address": 7925,
   "type": "line",
   "text": "Decodes part image A mirrored: each row's three bytes are written in reverse order, bit-reversed through $BF00, zero runs as in $1D3D."
  },
  {
   "address": 8038,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F66: LDY source, low."
  },
  {
   "address": 8039,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F67: LDY source, high."
  },
  {
   "address": 8052,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F74: STA destination (row byte 2), low."
  },
  {
   "address": 8053,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F75: STA destination, high."
  },
  {
   "address": 8059,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F7B: LDY source, low (second byte)."
  },
  {
   "address": 8060,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F7C: LDY source, high (second byte)."
  },
  {
   "address": 8073,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F89: STA destination (row byte 1), low."
  },
  {
   "address": 8074,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F8A: STA destination (row byte 1), high."
  },
  {
   "address": 8080,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F90: LDY source, low (third byte)."
  },
  {
   "address": 8081,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F91: LDY source, high (third byte)."
  },
  {
   "address": 8094,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F9E: STA destination (row byte 0), low."
  },
  {
   "address": 8095,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1F9F: STA destination (row byte 0), high."
  },
  {
   "address": 8112,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FB0: LDY run count, low."
  },
  {
   "address": 8113,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FB1: LDY run count, high."
  },
  {
   "address": 8123,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FBB: zero-run STA, low."
  },
  {
   "address": 8124,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FBC: zero-run STA, high."
  },
  {
   "address": 8130,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FC2: zero-run STA (second), low."
  },
  {
   "address": 8131,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FC3: zero-run STA (second), high."
  },
  {
   "address": 8137,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FC9: zero-run STA (third), low."
  },
  {
   "address": 8138,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FCA: zero-run STA (third), high."
  },
  {
   "address": 8150,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FD6: LDY run count, low (second)."
  },
  {
   "address": 8151,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FD7: LDY run count, high (second)."
  },
  {
   "address": 8167,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FE7: LDY run count, low (third)."
  },
  {
   "address": 8168,
   "type": "line",
   "text": "Self-modified operand of the mirrored decoder at $1FE8: LDY run count, high (third)."
  },
  {
   "address": 8194,
   "type": "line",
   "text": "Tail of a routine that starts below $2000: JMP $1F8B. $2005 (reached from $1FCC): STX $040F, LDX $0410, JMP $1FA0."
  },
  {
   "address": 8206,
   "type": "line",
   "text": "Build fighter X's sprite shape for this frame. Toggles the fighter's shape buffer ($4A,X bit 0), sets its sprite pointer $16,X = $25 + buffer (shapes at $C940/$C980/$C9C0/$CA00 via $1BC8/$1BD0), then copies 63 bytes from the animation frame source ($C000 when $4C,X is negative, else $1BD4/$1BC7 + $50/$52,X). If the frame's mirror flag ($54,X bit 4 >> 4) differs from facing $1E,X, the copy mirrors each row through the byte-reverse table $BF00 and swaps its outer bytes. Reached by JMP from $1CB0/$1CCE."
  },
  {
   "address": 8341,
   "type": "line",
   "text": "Turn the sprite shape at ($5A) upside down: swaps each of 30 bytes with its partner row given by the table at $20E1 (row r with row 20-r). Called after the copy when the frame's flag $56,X (attribute bit 5) is set."
  },
  {
   "address": 8373,
   "type": "line",
   "text": "Read the attributes of fighter X's animation frame $0477,X: $B533 low nibble - 1 -> $4C,X (shape source bank, negative = blank), $B4A1 -> $18,X and $B4EA -> $1A,X (per-frame offsets, not checked which axis), $B533 bit 7 -> $1C,X, bit 4 -> $54,X (mirror), bit 5 -> $56,X (vertical flip). Called from $1B24."
  },
  {
   "address": 8417,
   "type": "line",
   "text": "30 bytes: for each byte offset 0-29 of a sprite shape, the offset of the byte in the mirrored row (row r <-> row 20-r, three bytes a row). Read by flip_sprite_shape_vertically ($209F)."
  },
  {
   "address": 8447,
   "type": "line",
   "text": "2 bytes, both $00 in both snapshots. Read by $1AA9, $1B06 and $1B6A (below $2000); purpose not traced."
  },
  {
   "address": 8449,
   "type": "line",
   "text": "Game entry, from $0402 and from the F5 key ($2465): reset the stack, JSR $1541, then run play_one_game for ever, each game starting from the first room."
  },
  {
   "address": 8461,
   "type": "line",
   "text": "One whole game. Clears the status rows, resets the score ($2468), zeroes sprite expansion and many state variables, sets the start room $046B from $0400 and map position $0469 from $0401, lives $2D32 = 1, copies the random seed $0430 to $042F, draws the energy bar row, resets the hero ($26C8). Loop at $2177: set up the room ($235C), draw the scroll icons ($2DAC); room $7A goes to the still ending scene ($2DB5). Then play ($21E2) until $0451 is set: $40 means a life was lost with lives left (back to $2177), otherwise game over: save a high score ($247F) and return."
  },
  {
   "address": 8674,
   "type": "line",
   "text": "The in-play main loop, one pass a frame. Waits while $0416 (pause, toggled by RESTORE through the NMI at $3C23) or $0411 (the frame handshake with the IRQ at $3F67) is set. Then: hero update ($055B); scroll pickup ($2C25), hazards ($2315) or the encounter scan ($27F5); the opponent when a fight is on; the two fighters ($32F9, $8F = the other one); the seed step ($2438) and the F5 key ($2444). Then sets $0411, redraws the energy bars ($2556), blinks icons ($2D57), steps the sound ($3E1A), and handles location types $05 ($2CE4) and $06 ($2CBC). Returns with A = 0 when $0451 (life lost) is set."
  },
  {
   "address": 8979,
   "type": "line",
   "text": "2 bytes ($69, $5A), indexed by the scroll direction $1535: the map position $72 at which, in a location of type $13 with $0461 = 0, $0462 is set to $80 and $08E0 is called (read at $22DB). What this event is in the game is not traced."
  },
  {
   "address": 8981,
   "type": "line",
   "text": "Per-frame update of the two hazard objects when $0464 is set: kind 1 moves objects 0 and 2 ($29FF) and ends the event when both are gone ($0D6E/$0D70); other kinds run $2B47 and, with $0464 bit 7, $2B9B."
  },
  {
   "address": 9052,
   "type": "line",
   "text": "Set up a room: waits for $0426; room $7A forces map position $4E; rooms $44-$4B (the meditation chambers) put the hero in move $26 with $1E = 1 at X $11. Converts start X $0481 x 8 into $0467/$0468 (adding $2436[$1E] when entering from a side, $0471), copies them to the hero position $DB/$DD and the map position $0469 to $72, loads the room ($0FEC, $168D, $1556), clears the object table, then waits for raster line $64 and draws ($11DA, $18BC)."
  },
  {
   "address": 9270,
   "type": "line",
   "text": "2 bytes ($18, $00) by facing $1E: added to the hero's start X when entering a room from a side (read at $23B9)."
  },
  {
   "address": 9272,
   "type": "line",
   "text": "Advance the random seed $0430 once a frame: shift left, EOR #$1D on carry (an 8-bit LFSR). The fighters' generator $3141 is seeded from it at the start of each game ($2162)."
  },
  {
   "address": 9284,
   "type": "line",
   "text": "Scan keyboard row 0 ($DC00 = $FE, read $DC01). When the row changes to $BF (F5 alone, per the c64-reference matrix), JMP to game_restart; otherwise returns A = 0. The last value is kept in $0417 so F5 acts on the press only."
  },
  {
   "address": 9320,
   "type": "line",
   "text": "Set the six score digits $CC01-$CC06 (status screen, row 0) to five blanks and a 0: a digit byte 0 is blank, n shows digit n-1."
  },
  {
   "address": 9343,
   "type": "line",
   "text": "At game over: when the score $CC01-$CC06 is higher than the high score $CC21-$CC26 ($2488), copy it across ($249D)."
  },
  {
   "address": 9352,
   "type": "line",
   "text": "Compare score digits $CC01.. with high-score digits $CC21.. from the left; carry clear means the score is higher."
  },
  {
   "address": 9373,
   "type": "line",
   "text": "Copy the six score digits $CC01-$CC06 to the high score $CC21-$CC26."
  },
  {
   "address": 9385,
   "type": "line",
   "text": "Add the score for the hero's landed move $045A: $051D[move] times 100 points (calls $24C3 that many times). Called from $3892 only when the hero (X = 0) and not the computer landed the hit."
  },
  {
   "address": 9411,
   "type": "line",
   "text": "Add 100 to the score: increments the hundreds digit $CC04 and carries into $CC03, $CC02, $CC01 (digit byte n shows n-1, 0 blank, $0B wraps to 1). Past 999,900 all digits become 0."
  },
  {
   "address": 9539,
   "type": "line",
   "text": "Subtract A from the energy of the fighter in $8F (entry $2545: fighter Y). The amount is written into the SBC operand at $254D; energy is floored at 0. $0412 is the hero's energy, $0413 the opponent's."
  },
  {
   "address": 9541,
   "type": "line",
   "text": "Second entry of damage_other_fighter: subtract A from the energy $0412,Y of fighter Y (floored at 0). Called from $2A5B and $2BB6 with Y = 0, the hero."
  },
  {
   "address": 9549,
   "type": "line",
   "text": "Operand of SBC #, written at run time by damage_other_fighter ($2545): the damage amount."
  },
  {
   "address": 9558,
   "type": "line",
   "text": "Draw both energy bars on the bottom status row ($CFC1-$CFE7): hero's energy $0412 from the left ($2563), opponent's $0413 from the right ($25D2)."
  },
  {
   "address": 9571,
   "type": "line",
   "text": "Hero's bar: length energy/4, moved one step a frame towards it ($042C), drawn from column 1 of row 24 of the status screen with characters $1A-$1E and end cap $21."
  },
  {
   "address": 9682,
   "type": "line",
   "text": "Opponent's bar: length energy/4, one step a frame ($042D), drawn leftwards from column 36 of row 24 with characters $1A, $1B, $1F-$21."
  },
  {
   "address": 9797,
   "type": "line",
   "text": "Clear status row 24 ($CFC1-$CFE7), colour it $0F (light grey) in colour RAM $DBC1, and put the hero bar's end cap $21 in column 1."
  },
  {
   "address": 9818,
   "type": "line",
   "text": "Signed half-distances between fighter X and fighter Y from the X positions $DF/$E1: $0446 = (Y - X)/2, $0445 = (X - Y)/2."
  },
  {
   "address": 9855,
   "type": "line",
   "text": "Reset fighter X: clear its move state ($83, $7F, $96, $0414, $0452, $0456), set move $0C (standing) in $7D and $8B, pick its graphics set ($269D) and its fighting style ($314D)."
  },
  {
   "address": 9885,
   "type": "line",
   "text": "From the graphics set $4E,X (0-4) load $5E,X, $48,X, $50,X and $52,X from the tables at $26C3, $26B4, $26B9, $26BE."
  },
  {
   "address": 9908,
   "type": "line",
   "text": "5 bytes by graphics set: value for $48,X (read at $26A4)."
  },
  {
   "address": 9913,
   "type": "line",
   "text": "5 bytes by graphics set: low byte of the shape source, $50,X (read at $26A9)."
  },
  {
   "address": 9918,
   "type": "line",
   "text": "5 bytes by graphics set: high part of the shape source, $52,X (read at $26AE)."
  },
  {
   "address": 9923,
   "type": "line",
   "text": "5 bytes by graphics set: value for $5E,X (read at $269F)."
  },
  {
   "address": 9928,
   "type": "line",
   "text": "Reset the hero at a game start: $1E = 0, energy $0412 and maximum $0485 = $2F (47), bar length 0, then reset_fighter."
  },
  {
   "address": 9961,
   "type": "line",
   "text": "Start an opponent from encounter entry $044E of the table at $E609: position from $E60B (or map position $72 + $2782[direction]) x 8 into $DC/$DE, $4F = flag bits 4-5 + 1; a low nibble of $0A or more marks a group ($0491/$0492, random $4F, $0423 = random 1-8). Energy $0413 = random 31-63, +64 once 16 opponents have been beaten ($048C). Fighter 1 is reset and walks in (move $0D)."
  },
  {
   "address": 10114,
   "type": "line",
   "text": "2 bytes ($FB, $2D) by scroll direction $1535: offset from the map position at which an opponent enters (read at $2708)."
  },
  {
   "address": 10116,
   "type": "line",
   "text": "At game start: clear bit 7 (done) of every 3-byte entry of the encounter table $E609 (count in $E608) and the eight scroll flags $0405-$040C."
  },
  {
   "address": 10145,
   "type": "line",
   "text": "After an opponent dies: for an entry whose low nibble is $0A another opponent comes ($26E9) until $0472 runs out or scroll flag $0409 is negative (delivered); otherwise the fight ends: $0462 = $80, then end_fight."
  },
  {
   "address": 10204,
   "type": "line",
   "text": "No fight: $044B = 1, opponent energy 0, $044E = $80 (no entry), $0475/$0A7E cleared, movement-only move set ($0C19)."
  },
  {
   "address": 10229,
   "type": "line",
   "text": "Look for an entry of the encounter table $E609 (3 bytes: flags, room, position) in this room ($046B) at this map position $72. Done entries (flags bit 7) come back only after 30 defeats ($048C), at random. Flags bit 6 clear: a fight starts (spawn_opponent; if the hero's move has $0493 bit 7 he is put in move $29 and sample 3 plays); bit 6 set: a hazard ($28B6); bits 6 and 5: a scroll lying in the room ($291F)."
  },
  {
   "address": 10593,
   "type": "line",
   "text": "2 bytes ($00, $29) by scroll direction $1535: added to the map position when placing a scroll or matching an entry (read at $2857, $294E)."
  },
  {
   "address": 10595,
   "type": "line",
   "text": "Start object X (0 or 2) of the object table at the position $0433/$0434 + $2994/$2996[direction $0D7C], Y $C6, step $FC, active ($0D6E = 2)."
  },
  {
   "address": 10644,
   "type": "line",
   "text": "2 bytes: high byte of the start offset for a hazard object, by direction (read at $2973, $2ABD, $2B1E)."
  },
  {
   "address": 10646,
   "type": "line",
   "text": "2 bytes: low byte of the start offset for a hazard object, by direction (read at $296A, $2AB4, $2B15)."
  },
  {
   "address": 10648,
   "type": "line",
   "text": "Hazard kind 2: unless a fight is on, place object X at a random distance $48-$87 right of the hero, or $40-$7F left of him ($0D7C = side), Y $C6, step $12."
  },
  {
   "address": 10751,
   "type": "line",
   "text": "Per-frame for hazard object X. On sprite contact with the hero (collision bits $047F & $053B): if the hero is at the striking frame of an attack ($04E1 per move) and the object is inside hazard_hit_margin, it is knocked away (sample 1, step $0D); otherwise the hero loses 2 energy. Then it moves ($0C53) and, once off screen, restarts up to $0463 times."
  },
  {
   "address": 11067,
   "type": "line",
   "text": "12 bytes by hero move $00-$0B: margin added to or taken from the hero's X when testing a hazard object's hit (read at $2A3C, $2A6C)."
  },
  {
   "address": 11079,
   "type": "line",
   "text": "Hazard kinds other than 1: move object 0 ($0C53); when it reaches step $26, start object 2 from it (Y $0F, $0D7A = $37) and set $0464 = $82."
  },
  {
   "address": 11161,
   "type": "line",
   "text": "2 bytes ($00, $0C) by $0D7C: X offset of the second object from the first (read at $2B85)."
  },
  {
   "address": 11163,
   "type": "line",
   "text": "The second object of a kind-$82 hazard: on sprite contact the hero loses 10 energy and sample 2 plays; otherwise it moves and is removed past the hero's position."
  },
  {
   "address": 11301,
   "type": "line",
   "text": "While a scroll lies in the room ($0464 = $FF): on sprite contact with the hero, mark its entry done, set scroll flag $0405 + (flags & 7) to 1 and draw its icon; remove it when it scrolls off the screen."
  },
  {
   "address": 11388,
   "type": "line",
   "text": "$0447 = 1 when the fighters' columns $E5/$E6 are 18 or more apart. Then $0489 = 1 when the opponent's column is 0-9 or 28-34 past the map position $72, 0 when it is 10-27 or apart is 0; room $3F always 0."
  },
  {
   "address": 11452,
   "type": "line",
   "text": "In a meditation chamber (location type 6): the chamber is room $44 + n; if scroll n has been found ($0405+n = 1) mark it delivered ($80), add a life ($2D32), colour its icon red. The room becomes the respawn point $2D33. Then blink ($2D70)."
  },
  {
   "address": 11492,
   "type": "line",
   "text": "Location type 5: blink icon 7, and unless scroll 8 is delivered ($040C negative) flash multicolour $C1 and drain 1 hero energy every 10 frames; at 0 the hero dies (move $1A). Elsewhere: +1 energy every 128 frames up to $0485, except while $0462 = 1."
  },
  {
   "address": 11569,
   "type": "line",
   "text": "Frame counter for energy_regen: 128 frames (10 in a type-5 location)."
  },
  {
   "address": 11570,
   "type": "line",
   "text": "Lives: 1 at the start of a game ($2154), +1 for each scroll delivered ($2CCD), -1 on death ($353E); zero ends the game."
  },
  {
   "address": 11571,
   "type": "line",
   "text": "The room the hero restarts in after losing a life: the last meditation chamber visited ($2CBF, read at $3548)."
  },
  {
   "address": 11572,
   "type": "line",
   "text": "Colour row 1 of the status area ($D828-$D84F) yellow (7). Also called from $C4CE."
  },
  {
   "address": 11583,
   "type": "line",
   "text": "Clear row 1 of the status screen ($CC28-$CC4F), where the scroll icons go. Also called from $C4D1."
  },
  {
   "address": 11594,
   "type": "line",
   "text": "X = Y x 3: the screen offset of scroll icon Y ($CC30 + X)."
  },
  {
   "address": 11607,
   "type": "line",
   "text": "While $0491 is set, blink icon $0492 every 20 frames ($0490), counting $0491 down; then redraw it."
  },
  {
   "address": 11632,
   "type": "line",
   "text": "Every 20 frames toggle $048F and draw or blank scroll icon Y."
  },
  {
   "address": 11664,
   "type": "line",
   "text": "Seven bytes no code reaches: LDA $046B / SEC / SBC #$44 / TAY (room number to chamber number)."
  },
  {
   "address": 11671,
   "type": "line",
   "text": "Draw scroll icon Y (two characters from $054B/$0553) at $CC30 + 3Y if flag $0405+Y is set, otherwise blank it."
  },
  {
   "address": 11679,
   "type": "line",
   "text": "Write the two characters of scroll icon Y ($054B,Y and $0553,Y) at $CC30,X / $CC31,X."
  },
  {
   "address": 11692,
   "type": "line",
   "text": "Draw the eight scroll icons."
  },
  {
   "address": 11701,
   "type": "line",
   "text": "Room $7A: expand sprites 1 and 5 ($22) in both directions behind the background, place two objects, then loop for ever flashing object 0 ($0D6A) and polling F5 ($2444), the only way out. Seen as the game's end only by this reading; not checked live."
  },
  {
   "address": 11790,
   "type": "line",
   "text": "Computer fighter X picks its next move into $8D,X (and $AD,X). Uses the other fighter's move ($8B,Y via $8F), their distance ($0445/$0446), the style set up by $314D, reaction timers ($045B, $045F, $AB, $AF) and the random generator $3141. Runs a scripted combination through the table at $3288 when $B4,X is set ($3233)."
  },
  {
   "address": 12448,
   "type": "line",
   "text": "Three bytes no code reaches: JMP $2F6C."
  },
  {
   "address": 12451,
   "type": "line",
   "text": "Second half of opponent_ai. $30A3: a chosen move $07 is kept for fighter types $0422 below 7 and becomes $0D for 7 and up. $30AE: move $03 is taken only by types 2 and up. $30BD: start combination 5 with move $0F. $30C8: attacks chosen by distance when both face the same way (tables $32DB, $32F1). $311E: moves $08/$09 are rolled against $0470: negative gives $13, $40 and up $0E, $20-$3F $11, else the move stands."
  },
  {
   "address": 12609,
   "type": "line",
   "text": "Random number: shift $042F left, EOR #$1D on carry (an 8-bit LFSR). Returns it in A."
  },
  {
   "address": 12621,
   "type": "line",
   "text": "Set the computer fighter's style from its type $0422,X: aggression mask $32B0 -> $0470, move mask $32BC -> $B3, reaction time random 7-31 -> $AA/$046E, timers reset, $045D random $3F-$7F."
  },
  {
   "address": 12698,
   "type": "line",
   "text": "AI combination 1 (table $3288): move $0F until a random roll (random AND $85 = 0) or the other fighter's frame is $15, then move $03 and end."
  },
  {
   "address": 12732,
   "type": "line",
   "text": "AI combination 3: move $07, end the combination."
  },
  {
   "address": 12743,
   "type": "line",
   "text": "AI combination 4: move $12, end the combination."
  },
  {
   "address": 12754,
   "type": "line",
   "text": "AI combination 5: move $0F until $96,X is set, then move $02 and end."
  },
  {
   "address": 12776,
   "type": "line",
   "text": "AI combination 8: at random, combination 6, or combination 5 after setting $B4 (not $B4,X) to 5."
  },
  {
   "address": 12791,
   "type": "line",
   "text": "AI combination 6: move $01 or $0B at random, end the combination."
  },
  {
   "address": 12811,
   "type": "line",
   "text": "AI combination 7: move $03 when $1E,X equals the other fighter's $1E, else $09; end."
  },
  {
   "address": 12833,
   "type": "line",
   "text": "AI combination 2: move $03 until the fighter is in move $03, then end."
  },
  {
   "address": 12851,
   "type": "line",
   "text": "Dispatch AI combination $B4,X (1-9) through the address table at $3288: JMP ($B6)."
  },
  {
   "address": 12866,
   "type": "line",
   "text": "A = a chosen AI move. If the other fighter is in move $02, $03, $09 or $0F, half the time replace it with a random one from $32F1."
  },
  {
   "address": 12906,
   "type": "line",
   "text": "AI combination 9: for fighter types 7 and up, half the time move $06 and end; otherwise switch to combination 1."
  },
  {
   "address": 12936,
   "type": "line",
   "text": "10 addresses by $B4 x 2: 0 unused ($0000), then combinations 1-9 at $319A, $3221, $31BC, $31C7, $31D2, $31F7, $320B, $31E8, $326A."
  },
  {
   "address": 12937,
   "type": "line",
   "text": "High byte of entry 0 of ai_combo_table (read at $323A as the high byte of every entry)."
  },
  {
   "address": 12956,
   "type": "line",
   "text": "12 bytes by the other fighter's move $00-$0B: combination to start in answer (0 none; 2 only when $0474,X is clear). Read at $2F0F."
  },
  {
   "address": 12968,
   "type": "line",
   "text": "4 bytes: random answer when the other fighter is in move $14 (read at $302D)."
  },
  {
   "address": 12972,
   "type": "line",
   "text": "4 bytes: random answer when the other fighter is in move $15 (read at $301B)."
  },
  {
   "address": 12976,
   "type": "line",
   "text": "12 bytes by fighter type $0422: mask for the random attack roll, stored in $0470 (read at $315F)."
  },
  {
   "address": 12988,
   "type": "line",
   "text": "12 bytes by fighter type: mask stored in $B3, ANDed with a random number to choose idle, answer or attack (read at $317D)."
  },
  {
   "address": 13000,
   "type": "line",
   "text": "19 bytes: attack moves chosen by distance when facing away, index distance + random 0-3 (read at $3077)."
  },
  {
   "address": 13019,
   "type": "line",
   "text": "22 bytes: attack moves chosen by distance when facing the same way, index distance + $21 + random 0-3 (read at $30E1)."
  },
  {
   "address": 13041,
   "type": "line",
   "text": "8 bytes: moves $0C-$13 picked at random for walking and dodging (read at $3044, $310B, $3266, $3371)."
  },
  {
   "address": 13049,
   "type": "line",
   "text": "Per-frame update of fighter X (other fighter in $8F): resolve death and falls ($3504), test its strike ($376D), choose the next move (AI or joystick, $3343), location actions ($3664), commit it ($33F6), animate ($373F). Then reads the sprite-to-sprite collision register $D01E (bits 0-2): with no contact and an attack move $01-$0B, $20 = X."
  },
  {
   "address": 13123,
   "type": "line",
   "text": "Next move for fighter X into $8D,X: a dying fighter keeps $0452,X; location type $1D forces move $1B with $1E = 0; the computer ($0454,X set) uses opponent_ai, where a move $17 or above becomes a random one from $32F1 and a move not allowed now (table $33E3) becomes $0C or $0E; the hero reads the joystick."
  },
  {
   "address": 13201,
   "type": "line",
   "text": "Read fighter X's joystick: $DC00 for X = 0 (port 2), $DC01 for X = 1 (port 1). Fire goes to $0418,X. When $1E,X is non-zero left and right are swapped, then the 5 bits index the move table $33C3; a move the table $33E3 does not allow becomes $0C (stand)."
  },
  {
   "address": 13251,
   "type": "line",
   "text": "32 bytes: move code by the joystick bits (fire, right, left, down, up; 0 = pressed), as seen by a fighter with $1E = 0. No fire: up $10, down $0F, right $0D, left $0E, up-right $01, down-right $02, up-left $12, down-left $11. Fire: up $07, down $03, right $05, left $0A, up-right $06, down-right $04, up-left $08, down-left $09. Nothing, or fire alone: $0C."
  },
  {
   "address": 13283,
   "type": "line",
   "text": "19 bytes, one per move $00-$12, rewritten at run time: 1 = the move may be used now. $0C19 (below $2000) allows only $0A and $0C-$12 out of a fight, $0C33 allows all in one, and $0C3E then forbids $03, $07, $09, $10, $11, $12 while $0474 is set."
  },
  {
   "address": 13286,
   "type": "line",
   "text": "move_allowed entry for move $03: cleared by $0C40 while $0474 is set."
  },
  {
   "address": 13290,
   "type": "line",
   "text": "move_allowed entry for move $07: cleared by $0C43 while $0474 is set."
  },
  {
   "address": 13292,
   "type": "line",
   "text": "move_allowed entry for move $09: cleared by $0C46 while $0474 is set."
  },
  {
   "address": 13293,
   "type": "line",
   "text": "move_allowed entry for move $0A: set by $0C20 even out of a fight."
  },
  {
   "address": 13299,
   "type": "line",
   "text": "move_allowed entry for move $10: cleared by $0C49 while $0474 is set."
  },
  {
   "address": 13300,
   "type": "line",
   "text": "move_allowed entry for move $11: cleared by $0C4C while $0474 is set."
  },
  {
   "address": 13301,
   "type": "line",
   "text": "move_allowed entry for move $12: cleared by $0C4F while $0474 is set."
  },
  {
   "address": 13302,
   "type": "line",
   "text": "Make the chosen move $8D,X the current move $8B,X, with the rules for moves in progress: $17/$1A (death) commit at once (sample 4 for types $38/$3C); some moves turn into $0F, $13, $16 or $0C depending on the move being left and $0493."
  },
  {
   "address": 13572,
   "type": "line",
   "text": "When $047D,X is set: a dying fighter ($0452,X) ends. Opponent dead: mark its encounter done, count the defeat ($048C, max 31), go to opponent_beaten. Hero dead: $0451 = 1, a life is lost; with lives left $0451 = $40 and the hero restarts in respawn_room. Otherwise ends falls and the location actions of moves $18-$28 (climbing and the like, through $0796/$07CB/$0700/$0809; $26 meditation refills energy)."
  },
  {
   "address": 13924,
   "type": "line",
   "text": "For the hero: joystick moves $0E, $0F, $10 become location actions by the location flags $0473 and the tile under him (($E7),Y): $18, $1C, $22, $24 or $13. In room $34 also sets blink $0491/$0492. Moves $0E also turn into the counter of the other fighter's attack ($04BD) when in range."
  },
  {
   "address": 14143,
   "type": "line",
   "text": "If fighter X's move changed, restart its animation (sample 3 for an attack, $01-$0B); then step the animation ($1A73)."
  },
  {
   "address": 14189,
   "type": "line",
   "text": "When fighter X's attack reaches its striking frame ($04E1 per move = frame $0477,X), and it is not falling, test the hit ($379C)."
  },
  {
   "address": 14236,
   "type": "line",
   "text": "Is the other fighter within the reach of fighter X's move? The reach comes from the tables pointed to by $04ED (facing each other) or $0505 (same way) indexed by the target's frame, and $04C9/$04D5. On a hit: damage $052F[move] ($2543) and score for the hero ($24A9). At 0 energy the target dies ($0452 = $17 or $1A); sample 2 for moves $02, $05, $0B and for some others, sample 1 otherwise."
  },
  {
   "address": 14612,
   "type": "line",
   "text": "A = 1 when the other fighter's attack could reach fighter X (distance $14-$EF when facing each other, $03-$1F otherwise, by $04C9), else 0."
  },
  {
   "address": 14702,
   "type": "line",
   "text": "An RTS called three times from test_hit ($38CA, $38E7, $3904): a hook that does nothing."
  },
  {
   "address": 14703,
   "type": "line",
   "text": "Meditation: the maximum energy $0485 = 47 + 4 x (defeats $048C rounded down to even), at most 127, and the hero's energy $0412 is filled to it."
  },
  {
   "address": 14726,
   "type": "line",
   "text": "Raster handler of the sprite multiplexer. A CIA1 interrupt goes to the sample player ($3D8B). Otherwise sets the Y of sprites 1-3 and their three pointers, the next raster line and the next handler, from operands the code at $41B5-$4530 and $480E-$4823 writes each frame; even the pointers' page is patched ($F3F9 on the play-area screen, $CFF9 on the status screen). In f2-play: Y $B1, pointers 4/5/0, next $39C0 at line $C5."
  },
  {
   "address": 14737,
   "type": "line",
   "text": "Operand byte of `lda #$B1` at $3990 in irq_mux_a; rewritten at run time by $41F1, $4292, $42F6, $43ED, $448E, $44E5."
  },
  {
   "address": 14753,
   "type": "line",
   "text": "Operand byte of `lda #$C5` at $39A0 in irq_mux_a; rewritten at run time by $4204, $4280, $42FC, $43F3, $4494, $44B1, $44EB, $4508."
  },
  {
   "address": 14758,
   "type": "line",
   "text": "Operand byte of `lda #$C0` at $39A5 in irq_mux_a; rewritten at run time by $41C1, $4254, $42D0, $43BD, $445A, $44A7, $44C9, $44FE."
  },
  {
   "address": 14763,
   "type": "line",
   "text": "Operand byte of `lda #$04` at $39AA in irq_mux_a; rewritten at run time by $480E."
  },
  {
   "address": 14766,
   "type": "line",
   "text": "Operand byte of `sta $F3F9` at $39AC in irq_mux_a; rewritten at run time by $481D."
  },
  {
   "address": 14768,
   "type": "line",
   "text": "Operand byte of `lda #$05` at $39AF in irq_mux_a; rewritten at run time by $4813."
  },
  {
   "address": 14771,
   "type": "line",
   "text": "Operand byte of `sta $F3FA` at $39B1 in irq_mux_a; rewritten at run time by $4820."
  },
  {
   "address": 14773,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $39B4 in irq_mux_a; rewritten at run time by $4818."
  },
  {
   "address": 14776,
   "type": "line",
   "text": "Operand byte of `sta $F3FB` at $39B6 in irq_mux_a; rewritten at run time by $4823."
  },
  {
   "address": 14778,
   "type": "line",
   "text": "Operand byte of `lda #$39` at $39B9 in irq_mux_a; rewritten at run time by $41C6, $4259, $42D5, $43C2, $445F, $44AC, $44CE, $4503."
  },
  {
   "address": 14783,
   "type": "line",
   "text": "RTI, the end of irq_mux_a. The reset vector $FFFC points here; on a C64 a reset reads the ROM's vector, so this only matters if the RAM vector is ever used."
  },
  {
   "address": 14784,
   "type": "line",
   "text": "Multiplexer handler of the same shape: sprites 1-3 Y and pointers, next line and handler from patched operands (in f2-play: Y $C6, next $3D21 at line $EA)."
  },
  {
   "address": 14795,
   "type": "line",
   "text": "Operand byte of `lda #$C6` at $39CA in irq_mux_b; rewritten at run time by $41FC, $429D, $4387, $43F8, $4499, $44F0."
  },
  {
   "address": 14811,
   "type": "line",
   "text": "Operand byte of `lda #$EA` at $39DA in irq_mux_b; rewritten at run time by $420F, $422C, $42A2, $438C, $4400, $449E, $44F5."
  },
  {
   "address": 14816,
   "type": "line",
   "text": "Operand byte of `lda #$21` at $39DF in irq_mux_b; rewritten at run time by $41D5, $4222, $4268, $4359, $43C7, $4464, $44D3."
  },
  {
   "address": 14821,
   "type": "line",
   "text": "Operand byte of `lda #$07` at $39E4 in irq_mux_b; rewritten at run time by $482B."
  },
  {
   "address": 14824,
   "type": "line",
   "text": "Operand byte of `sta $F3F9` at $39E6 in irq_mux_b; rewritten at run time by $483A."
  },
  {
   "address": 14826,
   "type": "line",
   "text": "Operand byte of `lda #$08` at $39E9 in irq_mux_b; rewritten at run time by $4830."
  },
  {
   "address": 14829,
   "type": "line",
   "text": "Operand byte of `sta $F3FA` at $39EB in irq_mux_b; rewritten at run time by $483D."
  },
  {
   "address": 14831,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $39EE in irq_mux_b; rewritten at run time by $4835."
  },
  {
   "address": 14834,
   "type": "line",
   "text": "Operand byte of `sta $F3FB` at $39F0 in irq_mux_b; rewritten at run time by $4840."
  },
  {
   "address": 14836,
   "type": "line",
   "text": "Operand byte of `lda #$3D` at $39F3 in irq_mux_b; rewritten at run time by $41DA, $4227, $426D, $435E, $43CC, $4469, $44D8."
  },
  {
   "address": 14842,
   "type": "line",
   "text": "Multiplexer handler: Y of sprites 5-7 ($D00B-$D00F), pointers $CFFD-$CFFF, next line and handler, all patched by $41BF-$451A."
  },
  {
   "address": 14853,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A04 in irq_mux_c; rewritten at run time by $4209, $427A, $436B, $4405, $4476, $4542."
  },
  {
   "address": 14869,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A14 in irq_mux_c; rewritten at run time by $41F7, $428D, $4371, $440B, $4428, $447C, $4548, $4565."
  },
  {
   "address": 14874,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A19 in irq_mux_c; rewritten at run time by $41CB, $424A, $4345, $43D1, $441E, $4446, $4526, $455B."
  },
  {
   "address": 14880,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A1F in irq_mux_c; rewritten at run time by $4848."
  },
  {
   "address": 14883,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3A21 in irq_mux_c; rewritten at run time by $4857."
  },
  {
   "address": 14885,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A24 in irq_mux_c; rewritten at run time by $484D."
  },
  {
   "address": 14888,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3A26 in irq_mux_c; rewritten at run time by $485A."
  },
  {
   "address": 14890,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A29 in irq_mux_c; rewritten at run time by $4852."
  },
  {
   "address": 14893,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3A2B in irq_mux_c; rewritten at run time by $485D."
  },
  {
   "address": 14895,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A2E in irq_mux_c; rewritten at run time by $41D0, $424F, $434A, $43D6, $4423, $444B, $452B, $4560."
  },
  {
   "address": 14901,
   "type": "line",
   "text": "Multiplexer handler, same form as irq_mux_c (sprites 5-7), patched by $41D3-$4524."
  },
  {
   "address": 14912,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A3F in irq_mux_d; rewritten at run time by $4214, $4285, $4312, $4410, $4481, $454D."
  },
  {
   "address": 14928,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A4F in irq_mux_d; rewritten at run time by $4219, $4298, $42B5, $4317, $4415, $4489, $4552."
  },
  {
   "address": 14933,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A54 in irq_mux_d; rewritten at run time by $41DF, $425E, $42AB, $42E4, $43DB, $4450, $4530."
  },
  {
   "address": 14939,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A5A in irq_mux_d; rewritten at run time by $4865."
  },
  {
   "address": 14942,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3A5C in irq_mux_d; rewritten at run time by $4874, $D3BE."
  },
  {
   "address": 14944,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A5F in irq_mux_d; rewritten at run time by $486A."
  },
  {
   "address": 14947,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3A61 in irq_mux_d; rewritten at run time by $4877."
  },
  {
   "address": 14949,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A64 in irq_mux_d; rewritten at run time by $486F."
  },
  {
   "address": 14952,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3A66 in irq_mux_d; rewritten at run time by $487A."
  },
  {
   "address": 14954,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A69 in irq_mux_d; rewritten at run time by $41E4, $4263, $42B0, $42E9, $43E0, $4455, $4535."
  },
  {
   "address": 14960,
   "type": "line",
   "text": "Multiplexer handler that first waits for an exact raster line, then sets Y of sprites 1-3 and 5-7 and six pointers $CFF9-$CFFF. Patched by $4161-$41A3."
  },
  {
   "address": 14971,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A7A in irq_mux_e; rewritten at run time by $418A."
  },
  {
   "address": 14978,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A81 in irq_mux_e; rewritten at run time by $418E."
  },
  {
   "address": 15003,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3A9A in irq_mux_e; rewritten at run time by $4194."
  },
  {
   "address": 15010,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AA1 in irq_mux_e; rewritten at run time by $4882."
  },
  {
   "address": 15013,
   "type": "line",
   "text": "Operand byte of `sta $CFF9` at $3AA3 in irq_mux_e; rewritten at run time by $48A2."
  },
  {
   "address": 15015,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AA6 in irq_mux_e; rewritten at run time by $4887."
  },
  {
   "address": 15018,
   "type": "line",
   "text": "Operand byte of `sta $CFFA` at $3AA8 in irq_mux_e; rewritten at run time by $48A5."
  },
  {
   "address": 15020,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AAB in irq_mux_e; rewritten at run time by $488C."
  },
  {
   "address": 15023,
   "type": "line",
   "text": "Operand byte of `sta $CFFB` at $3AAD in irq_mux_e; rewritten at run time by $48A8."
  },
  {
   "address": 15025,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AB0 in irq_mux_e; rewritten at run time by $4893."
  },
  {
   "address": 15028,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3AB2 in irq_mux_e; rewritten at run time by $48AB."
  },
  {
   "address": 15030,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AB5 in irq_mux_e; rewritten at run time by $4898."
  },
  {
   "address": 15033,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3AB7 in irq_mux_e; rewritten at run time by $48AE."
  },
  {
   "address": 15035,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3ABA in irq_mux_e; rewritten at run time by $489D."
  },
  {
   "address": 15038,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3ABC in irq_mux_e; rewritten at run time by $48B1."
  },
  {
   "address": 15040,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3ABF in irq_mux_e; rewritten at run time by $416D."
  },
  {
   "address": 15045,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AC4 in irq_mux_e; rewritten at run time by $4172."
  },
  {
   "address": 15051,
   "type": "line",
   "text": "Second handler of the irq_mux_e form (wait for a line, six sprites), patched by $416B-$41A3."
  },
  {
   "address": 15062,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AD5 in irq_mux_f; rewritten at run time by $419A."
  },
  {
   "address": 15069,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3ADC in irq_mux_f; rewritten at run time by $419E."
  },
  {
   "address": 15094,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AF5 in irq_mux_f; rewritten at run time by $41A3."
  },
  {
   "address": 15101,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3AFC in irq_mux_f; rewritten at run time by $48B9."
  },
  {
   "address": 15104,
   "type": "line",
   "text": "Operand byte of `sta $CFF9` at $3AFE in irq_mux_f; rewritten at run time by $48D9."
  },
  {
   "address": 15106,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B01 in irq_mux_f; rewritten at run time by $48BE."
  },
  {
   "address": 15109,
   "type": "line",
   "text": "Operand byte of `sta $CFFA` at $3B03 in irq_mux_f; rewritten at run time by $48DC."
  },
  {
   "address": 15111,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B06 in irq_mux_f; rewritten at run time by $48C3."
  },
  {
   "address": 15114,
   "type": "line",
   "text": "Operand byte of `sta $CFFB` at $3B08 in irq_mux_f; rewritten at run time by $48DF."
  },
  {
   "address": 15116,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B0B in irq_mux_f; rewritten at run time by $48CA."
  },
  {
   "address": 15119,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3B0D in irq_mux_f; rewritten at run time by $48E2."
  },
  {
   "address": 15121,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B10 in irq_mux_f; rewritten at run time by $48CF."
  },
  {
   "address": 15124,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3B12 in irq_mux_f; rewritten at run time by $48E5."
  },
  {
   "address": 15126,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B15 in irq_mux_f; rewritten at run time by $48D4."
  },
  {
   "address": 15129,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3B17 in irq_mux_f; rewritten at run time by $48E8."
  },
  {
   "address": 15131,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B1A in irq_mux_f; rewritten at run time by $4177."
  },
  {
   "address": 15136,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B1F in irq_mux_f; rewritten at run time by $417C."
  },
  {
   "address": 15142,
   "type": "line",
   "text": "Multiplexer handler for sprites 5-7 then 1-3, with pointers $CFFD-$CFFF and $CFF9-$CFFB. Patched from $42CE onwards. The hand-over IRQ vector $3B43 points into its middle."
  },
  {
   "address": 15153,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B30 in irq_mux_g; rewritten at run time by $4301."
  },
  {
   "address": 15164,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B3B in irq_mux_g; rewritten at run time by $4305."
  },
  {
   "address": 15180,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B4B in irq_mux_g; rewritten at run time by $430D, $432A."
  },
  {
   "address": 15185,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B50 in irq_mux_g; rewritten at run time by $42DA, $4320."
  },
  {
   "address": 15190,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B55 in irq_mux_g; rewritten at run time by $42DF, $4325."
  },
  {
   "address": 15195,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B5A in irq_mux_g; rewritten at run time by $4901, $4938."
  },
  {
   "address": 15198,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3B5C in irq_mux_g; rewritten at run time by $4919."
  },
  {
   "address": 15200,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B5F in irq_mux_g; rewritten at run time by $4906, $493D."
  },
  {
   "address": 15203,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3B61 in irq_mux_g; rewritten at run time by $491C."
  },
  {
   "address": 15205,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B64 in irq_mux_g; rewritten at run time by $490B, $4942."
  },
  {
   "address": 15208,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3B66 in irq_mux_g; rewritten at run time by $491F."
  },
  {
   "address": 15213,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B6C in irq_mux_g; rewritten at run time by $48F0, $4927."
  },
  {
   "address": 15216,
   "type": "line",
   "text": "Operand byte of `sta $CFF9` at $3B6E in irq_mux_g; rewritten at run time by $4910."
  },
  {
   "address": 15218,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B71 in irq_mux_g; rewritten at run time by $48F5, $492C."
  },
  {
   "address": 15221,
   "type": "line",
   "text": "Operand byte of `sta $CFFA` at $3B73 in irq_mux_g; rewritten at run time by $4913."
  },
  {
   "address": 15223,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B76 in irq_mux_g; rewritten at run time by $48FA, $4931."
  },
  {
   "address": 15226,
   "type": "line",
   "text": "Operand byte of `sta $CFFB` at $3B78 in irq_mux_g; rewritten at run time by $4916."
  },
  {
   "address": 15229,
   "type": "line",
   "text": "Multiplexer handler for sprites 1-3 then 5-7 with six pointers. Patched from $4343 onwards."
  },
  {
   "address": 15240,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B87 in irq_mux_h; rewritten at run time by $4376."
  },
  {
   "address": 15251,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3B92 in irq_mux_h; rewritten at run time by $437A."
  },
  {
   "address": 15267,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BA2 in irq_mux_h; rewritten at run time by $4382, $439F."
  },
  {
   "address": 15272,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BA7 in irq_mux_h; rewritten at run time by $434F, $4395."
  },
  {
   "address": 15277,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BAC in irq_mux_h; rewritten at run time by $4354, $439A."
  },
  {
   "address": 15282,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BB1 in irq_mux_h; rewritten at run time by $494C, $4983."
  },
  {
   "address": 15285,
   "type": "line",
   "text": "Operand byte of `sta $CFF9` at $3BB3 in irq_mux_h; rewritten at run time by $496C."
  },
  {
   "address": 15287,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BB6 in irq_mux_h; rewritten at run time by $4951, $4988."
  },
  {
   "address": 15290,
   "type": "line",
   "text": "Operand byte of `sta $CFFA` at $3BB8 in irq_mux_h; rewritten at run time by $496F."
  },
  {
   "address": 15292,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BBB in irq_mux_h; rewritten at run time by $4956, $498D."
  },
  {
   "address": 15295,
   "type": "line",
   "text": "Operand byte of `sta $CFFB` at $3BBD in irq_mux_h; rewritten at run time by $4972."
  },
  {
   "address": 15300,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BC3 in irq_mux_h; rewritten at run time by $495D, $4994."
  },
  {
   "address": 15303,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3BC5 in irq_mux_h; rewritten at run time by $4975."
  },
  {
   "address": 15305,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BC8 in irq_mux_h; rewritten at run time by $4962, $4999."
  },
  {
   "address": 15308,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3BCA in irq_mux_h; rewritten at run time by $4978."
  },
  {
   "address": 15310,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3BCD in irq_mux_h; rewritten at run time by $4967, $499E."
  },
  {
   "address": 15313,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3BCF in irq_mux_h; rewritten at run time by $497B."
  },
  {
   "address": 15316,
   "type": "line",
   "text": "Raster handler for the top of the play area: acknowledges, sets the next line and handler (patched by $4161/$41B5: $3986 or $3A70), fine scroll $D016 from $1537, $D018 = $C0 | $1536, multicolours $C1/$C2, a short delay, background $B8, then JMP $14E8."
  },
  {
   "address": 15332,
   "type": "line",
   "text": "Operand byte of `lda #$B0` at $3BE3 in irq_play_area; rewritten at run time by $4184, $41EC, $4275, $42F1, $4366, $43E8, $4471, $44E0 and others."
  },
  {
   "address": 15337,
   "type": "line",
   "text": "Operand byte of `lda #$86` at $3BE8 in irq_play_area; rewritten at run time by $4163, $41B7, $4240, $42C6, $433B, $43B3, $443C, $44BF and others."
  },
  {
   "address": 15342,
   "type": "line",
   "text": "Operand byte of `lda #$39` at $3BED in irq_play_area; rewritten at run time by $4168, $41BC, $4245, $42CB, $4340, $43B8, $4441, $44C4 and others."
  },
  {
   "address": 15394,
   "type": "line",
   "text": "An RTI no code reaches."
  },
  {
   "address": 15395,
   "type": "line",
   "text": "NMI: when CIA2 did not cause it (the RESTORE key), toggle $0416, which the play loop waits on: RESTORE pauses and resumes. A CIA2 interrupt instead sets the background yellow ($D021 = 7)."
  },
  {
   "address": 15419,
   "type": "line",
   "text": "Multiplexer handler for sprites 1-3 (Y and pointers $F3F9-$F3FB), set up at $4091-$40C4 (address written to $60)."
  },
  {
   "address": 15441,
   "type": "line",
   "text": "Operand byte of `lda #$76` at $3C50 in irq_mux_i; rewritten at run time by $40BA."
  },
  {
   "address": 15444,
   "type": "line",
   "text": "Operand byte of `sta $F3F9` at $3C52 in irq_mux_i; rewritten at run time by $409B."
  },
  {
   "address": 15446,
   "type": "line",
   "text": "Operand byte of `lda #$19` at $3C55 in irq_mux_i; rewritten at run time by $40BF."
  },
  {
   "address": 15449,
   "type": "line",
   "text": "Operand byte of `sta $F3FA` at $3C57 in irq_mux_i; rewritten at run time by $409E."
  },
  {
   "address": 15451,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3C5A in irq_mux_i; rewritten at run time by $40C4."
  },
  {
   "address": 15454,
   "type": "line",
   "text": "Operand byte of `sta $F3FB` at $3C5C in irq_mux_i; rewritten at run time by $40A1."
  },
  {
   "address": 15477,
   "type": "line",
   "text": "Multiplexer handler for sprites 5-7 (Y and pointers $CFFD-$CFFF), set up at $4049-$40F3."
  },
  {
   "address": 15499,
   "type": "line",
   "text": "Operand byte of `lda #$A3` at $3C8A in irq_mux_j; rewritten at run time by $40E9."
  },
  {
   "address": 15502,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3C8C in irq_mux_j; rewritten at run time by $4053."
  },
  {
   "address": 15504,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3C8F in irq_mux_j; rewritten at run time by $40EE."
  },
  {
   "address": 15507,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3C91 in irq_mux_j; rewritten at run time by $4056."
  },
  {
   "address": 15509,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3C94 in irq_mux_j; rewritten at run time by $40F3."
  },
  {
   "address": 15512,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3C96 in irq_mux_j; rewritten at run time by $4059."
  },
  {
   "address": 15535,
   "type": "line",
   "text": "Multiplexer handler for sprites 1-3 and 5-7 with six pointers, set up at $406D-$40E4."
  },
  {
   "address": 15566,
   "type": "line",
   "text": "Operand byte of `lda #$76` at $3CCD in irq_mux_k; rewritten at run time by $40C9."
  },
  {
   "address": 15569,
   "type": "line",
   "text": "Operand byte of `sta $CFF9` at $3CCF in irq_mux_k; rewritten at run time by $4077."
  },
  {
   "address": 15571,
   "type": "line",
   "text": "Operand byte of `lda #$19` at $3CD2 in irq_mux_k; rewritten at run time by $40CE."
  },
  {
   "address": 15574,
   "type": "line",
   "text": "Operand byte of `sta $CFFA` at $3CD4 in irq_mux_k; rewritten at run time by $407A."
  },
  {
   "address": 15576,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3CD7 in irq_mux_k; rewritten at run time by $40D3."
  },
  {
   "address": 15579,
   "type": "line",
   "text": "Operand byte of `sta $CFFB` at $3CD9 in irq_mux_k; rewritten at run time by $407D."
  },
  {
   "address": 15581,
   "type": "line",
   "text": "Operand byte of `lda #$A3` at $3CDC in irq_mux_k; rewritten at run time by $40DA."
  },
  {
   "address": 15584,
   "type": "line",
   "text": "Operand byte of `sta $CFFD` at $3CDE in irq_mux_k; rewritten at run time by $4080."
  },
  {
   "address": 15586,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3CE1 in irq_mux_k; rewritten at run time by $40DF."
  },
  {
   "address": 15589,
   "type": "line",
   "text": "Operand byte of `sta $CFFE` at $3CE3 in irq_mux_k; rewritten at run time by $4083."
  },
  {
   "address": 15591,
   "type": "line",
   "text": "Operand byte of `lda #$00` at $3CE6 in irq_mux_k; rewritten at run time by $40E4."
  },
  {
   "address": 15594,
   "type": "line",
   "text": "Operand byte of `sta $CFFF` at $3CE8 in irq_mux_k; rewritten at run time by $4086."
  },
  {
   "address": 15617,
   "type": "line",
   "text": "32 bytes in the form of a raster handler (acknowledge, next line $EA, next handler $3D21, RTI) that the disassembler does not reach; no writer of its address was found. Left as data."
  },
  {
   "address": 15649,
   "type": "line",
   "text": "Raster handler for the status band below the play area: next handler $3F67 at line 0; border colour into the background, $D011 = $1B, X scroll 0, multicolours 0/$0F, $D018 = $3A (as patched), sprites X 1-3 and 5-7 to 0; then the music ($F400) with X and Y saved. Its closing RTI at $3D86 is sometimes replaced by a NOP so that it runs on into JMP $1503."
  },
  {
   "address": 15750,
   "type": "line",
   "text": "The RTI that ends irq_status_band, rewritten at run time: $12CA stores NOP ($EA) here so the handler runs on into JMP $1503 at $3D87, and $12E0 puts the RTI ($40) back. The operand-free switch that hands the frame to the code at $1503."
  },
  {
   "address": 15754,
   "type": "line",
   "text": "An RTI after the JMP $1503 at $3D87; nothing branches here, so it looks unreachable."
  },
  {
   "address": 15755,
   "type": "line",
   "text": "CIA1 timer B interrupt, from every raster handler: plays one step of a sound sample. The volume $D418 flips between $6A and $6A EOR $3E18, so the SID's volume register sounds a one-bit wave; the sample byte at ($68) picks the time to the next flip from $0300/$0200 (copied from $C800/$C700), loaded into timer B, which counts timer A underflows ($DC0F = $59)."
  },
  {
   "address": 15800,
   "type": "line",
   "text": "Start sample A (1 and up): number - 1 into $3E16, phase 0, $3E19 = 1. A = 0 stops the sound ($3E44)."
  },
  {
   "address": 15822,
   "type": "line",
   "text": "Start the timers for a sample: CIA1 interrupts off, timer A = $3E0C, SID filter and volume 0, level $6A = $0F, timer A running, timer B = 1 counting timer A, the timer B interrupt on ($DC0D = $82); $3E17 = 0 (playing)."
  },
  {
   "address": 15884,
   "type": "line",
   "text": "Timer A rate for the current sample, from $BEC6 (load_sample); $3E0D is not used."
  },
  {
   "address": 15886,
   "type": "line",
   "text": "Repeat count of envelope phase 1 (rise), loaded by load_sample from $BEC7."
  },
  {
   "address": 15887,
   "type": "line",
   "text": "Repeat count of phase 2 (hold), from $BEC8."
  },
  {
   "address": 15888,
   "type": "line",
   "text": "Repeat count of phase 3 (fall), from $BEC9."
  },
  {
   "address": 15889,
   "type": "line",
   "text": "Envelope phase of the sample player: 0 start, 1 rise, 2 hold, 3 fall, 4 idle."
  },
  {
   "address": 15890,
   "type": "line",
   "text": "Plays of the sample left in this phase."
  },
  {
   "address": 15891,
   "type": "line",
   "text": "EOR level at which a rise or fall phase ends."
  },
  {
   "address": 15892,
   "type": "line",
   "text": "Change of the EOR level per step: +1, 0 or -1."
  },
  {
   "address": 15893,
   "type": "line",
   "text": "Countdown between level steps, less 8 a frame (step_countdown)."
  },
  {
   "address": 15894,
   "type": "line",
   "text": "Sample being played, 0-based (play_sample stores A - 1)."
  },
  {
   "address": 15895,
   "type": "line",
   "text": "1 when the sample has run to its end or is stopped, 0 while it plays."
  },
  {
   "address": 15896,
   "type": "line",
   "text": "Value EORed into the SID volume at each flip: the loudness of the one-bit sample."
  },
  {
   "address": 15897,
   "type": "line",
   "text": "1 once play_sample has been called, cleared by stop_sample."
  },
  {
   "address": 15898,
   "type": "line",
   "text": "Once a frame from the play loop: check the end of the sample ($3F4B), run the current phase ($3E2E) or stop when idle ($3E39); registers saved."
  },
  {
   "address": 15918,
   "type": "line",
   "text": "While the phase $3E11 is below 4, run it ($3E61)."
  },
  {
   "address": 15929,
   "type": "line",
   "text": "When the phase $3E11 is 4 or more, stop the sound ($3E44)."
  },
  {
   "address": 15940,
   "type": "line",
   "text": "Phase 4 (idle), finished, CIA1 interrupts off, no request."
  },
  {
   "address": 15961,
   "type": "line",
   "text": "4 addresses by phase: $3E76 start, $3EC7 ramp, $3E80 hold, $3EC7 ramp."
  },
  {
   "address": 15962,
   "type": "line",
   "text": "High byte of the first entry of sample_phase_table (read at $3E6C for every entry)."
  },
  {
   "address": 15969,
   "type": "line",
   "text": "JMP through sample_phase_table by the phase $3E11: writes the target into the JMP at $3E72."
  },
  {
   "address": 15987,
   "type": "line",
   "text": "Operand of the JMP at $3E72, written by dispatch_sample_phase."
  },
  {
   "address": 15988,
   "type": "line",
   "text": "Operand byte of `jmp $0000` at $3E72 in phase_jump_operand; rewritten at run time by $3E6F."
  },
  {
   "address": 15989,
   "type": "line",
   "text": "An RTS after the dispatch JMP that no code reaches."
  },
  {
   "address": 15990,
   "type": "line",
   "text": "Phase 0: load the sample's pointers and settings ($3F09), move to phase 1 ($3E96), start the timers ($3DCE)."
  },
  {
   "address": 16000,
   "type": "line",
   "text": "Phase 2: each time the sample ends, play it again while repeats $3E12 last, then the next phase."
  },
  {
   "address": 16022,
   "type": "line",
   "text": "Advance the phase and load its level start $3F00, step $3F03, target $3F06 and repeat count $3E0E."
  },
  {
   "address": 16057,
   "type": "line",
   "text": "Subtract 8 from the level countdown $3E15; A = the result, 0 when it runs out."
  },
  {
   "address": 16071,
   "type": "line",
   "text": "Phases 1 and 3: replay the sample when it ends, and every countdown step move the level $3E18 by $3E14 towards $3E13; the phase ends when it arrives or the repeats run out."
  },
  {
   "address": 16104,
   "type": "line",
   "text": "Move the EOR level $3E18 one step $3E14 towards the target $3E13, force the base level $6A to $0F; A = 0 once there."
  },
  {
   "address": 16128,
   "type": "line",
   "text": "Start levels by envelope phase 1-3: $01, $0F, $0F (read at $3EA9). Followed by the steps ($3F03) and targets ($3F06): the loudness rises, holds, and falls."
  },
  {
   "address": 16131,
   "type": "line",
   "text": "Level steps by phase 1-3: +1, 0, -1 (read at $3E9D)."
  },
  {
   "address": 16134,
   "type": "line",
   "text": "Target levels by phase 1-3: $0F, $00, $01 (read at $3EA3)."
  },
  {
   "address": 16137,
   "type": "line",
   "text": "For sample $3E16: start and end pointers $68/$69, $6C/$6D from the 4-byte entries at $FFCB (RAM under the KERNAL) plus $C8D0, and timer A rate and three repeat counts from $BEC6 into $3E0C-$3E10. $3E17 = 0."
  },
  {
   "address": 16203,
   "type": "line",
   "text": "While playing, rearm timer B and set $3E17 when the pointer $68 has passed the end $6C."
  },
  {
   "address": 16227,
   "type": "line",
   "text": "Four bytes no code reaches: RTS, JMP $F400."
  },
  {
   "address": 16231,
   "type": "line",
   "text": "Raster handler that follows irq_status_band (which sets the compare to $00 with $D011 bit 7 clear; the brief's frame capture saw it at line 234, not reconciled). Schedules irq_play_area ($3BD4) at line $49, multicolours to $0E, reads the sprite-to-sprite collisions $D01E into $047F, then with interrupts on: when $0411 is set copies $02-$21 to $22-$41 and runs $4A39 for both fighters; unless $046D, scrolls ($1753, $1803) and positions both fighters' sprites ($49A4); then sprite multicolours and the multiplexer set-up that continues past $4000."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "Second half of the line-234 raster handler ($3F67 falls through here). Fighter $5C is drawn in sprites 0-3, fighter $5D in sprites 4-7; each fighter is a 3x3 grid of sprites reused down the screen by the mid-screen handlers at $3986-$3D21. This part reads the two fighters' screen rows ($44 upper, $45 lower), X ($42/$43) and hidden flags ($0448), and patches those handlers' operands for the next frame: raster lines, next-handler addresses, sprite pointers."
  },
  {
   "address": 16551,
   "type": "line",
   "text": "No special chain case applies: sets the next-handler address $3D21 (into $60/$61) and $EA for $EF, the value later written as the last split's raster operand."
  },
  {
   "address": 16566,
   "type": "line",
   "text": "Copies both fighters' sprite-pointer rows ($62/$64/$66 by fighter index) into the immediate operands of the handler variants at $3C51-$3CE7 and $3C8B-$3C95."
  },
  {
   "address": 16630,
   "type": "line",
   "text": "Chooses the split layout for the frame from which fighters are hidden ($0448,x) and the vertical gap between them ($45-$44 or $44-$45: equal, below $14, exactly $14, $14-$15, $16 or more). Both hidden: next IRQ is $3F67 at line 0 and sprite placement is skipped."
  },
  {
   "address": 16731,
   "type": "line",
   "text": "Both fighters on the same row: one set of splits serves both (routines $487E/$48B5 load both fighters' rows 2 and 3 together); raster lines = $44+$12, +$15 etc. are patched into $3A7B-$3BE4."
  },
  {
   "address": 16809,
   "type": "line",
   "text": "Fighter at $44 above the other by less than $14 lines: patches the handler chain ($39A6/$39BA, $3A1A/$3A2F, $39E0/$39F4, $3A55/$3A6A) and the raster compare operands so both fighters' rows are re-pointed in interleaved order."
  },
  {
   "address": 16946,
   "type": "line",
   "text": "Mirror of $41A9 when the fighter at $45 is the upper one by less than $14 lines."
  },
  {
   "address": 17083,
   "type": "line",
   "text": "Case: the gap is exactly $14 lines with $44 above; uses the combined handler at $3B26 and its operands $3B31-$3B56 (routine $48EC)."
  },
  {
   "address": 17200,
   "type": "line",
   "text": "Case: the gap is exactly $14 lines with $45 above; uses the combined handler at $3B7D and operands $3B88-$3BAD (routine $4948)."
  },
  {
   "address": 17317,
   "type": "line",
   "text": "Case: $44 above $45 by $16 lines or more; each fighter gets its own two splits in sequence ($39C0, $39FA, $3A35, then the end handler)."
  },
  {
   "address": 17454,
   "type": "line",
   "text": "Case: $45 above $44 by $16 lines or more; the same chain in the other order."
  },
  {
   "address": 17591,
   "type": "line",
   "text": "Only fighter $5C is visible ($5D hidden): splits for one fighter only."
  },
  {
   "address": 17678,
   "type": "line",
   "text": "Only fighter $5D is visible ($5C hidden): splits for one fighter only."
  },
  {
   "address": 17771,
   "type": "line",
   "text": "Top-row sprite placement for fighter $5C: clears $D010, then either hands sprites 0-3 to other objects ($4A2D, when $0448 is set) or sets the pointers of sprites 1-3 at $CFF9-$CFFB and $F3F9-$F3FB (both screens), their Y ($44), colours ($5E), X ($42, +24, +48) with the X high bits from $46 and table $4802."
  },
  {
   "address": 17887,
   "type": "line",
   "text": "Sprite 0, the fighter's fourth sprite (placed apart from the 3-wide rows): pointer $36, colour $48, X = $42 plus signed offset $38 (measured back from $42+$30 when $3E,x is set, which looks like the facing flag), Y = $44 + $3A; X high bit kept in $D010 via $053B/$0543."
  },
  {
   "address": 18092,
   "type": "line",
   "text": "The same placement for fighter $5D in sprites 4-7: sprites 5-7 as the 3-wide top row (X $43, high bits $47 with table $4806, Y $45, colours $5E), sprite 4 the extra sprite; or hands them to other objects via $4A2D."
  },
  {
   "address": 18402,
   "type": "line",
   "text": "End of the handler: when $0411 is set (by the frame's game logic) clears it and copies the fighters' world X $DB-$DE into $DF-$E2; then restores X, Y, A and returns from the interrupt."
  },
  {
   "address": 18434,
   "type": "line",
   "text": "$D010 bits for fighter $5C's sprites 1-3 by how many have crossed X=256 (index from $46 and the carries at $45C4/$45CE): $00,$0E,$0C,$08; $4806 is the same for sprites 5-7: $00,$E0,$C0,$80."
  },
  {
   "address": 18438,
   "type": "line",
   "text": "fighter_b_msb_bits: $D010 bits for fighter $5D's sprites 5-7 ($00,$E0,$C0,$80), read at $46DA; the counterpart of $4802."
  },
  {
   "address": 18442,
   "type": "line",
   "text": "Writes fighter $5C's second sprite row ($28/$2A/$2C) into the handler's pointer operands at $39AB/$39B0/$39B5 and $BF (the high byte, $CF or $F3: which screen's pointer block) at $39AE-$39B8."
  },
  {
   "address": 18471,
   "type": "line",
   "text": "Writes fighter $5C's third sprite row ($2E/$30/$32) into $39E5/$39EA/$39EF, high bytes from $BF."
  },
  {
   "address": 18500,
   "type": "line",
   "text": "Writes fighter $5D's second sprite row ($28/$2A/$2C) into $3A20/$3A25/$3A2A, high bytes from $BF."
  },
  {
   "address": 18529,
   "type": "line",
   "text": "Writes fighter $5D's third sprite row ($2E/$30/$32) into $3A5B/$3A60/$3A65, high bytes from $BF."
  },
  {
   "address": 18558,
   "type": "line",
   "text": "Same-row layout: both fighters' second rows into the shared handler at $3AA2-$3ABE."
  },
  {
   "address": 18613,
   "type": "line",
   "text": "Same-row layout: both fighters' third rows into the shared handler at $3AFD-$3B19."
  },
  {
   "address": 18668,
   "type": "line",
   "text": "Gap-$14 layout ($44 above): fighter $5C's third row and fighter $5D's second row into the handler at $3B5B-$3B7A."
  },
  {
   "address": 18723,
   "type": "line",
   "text": "Unreferenced code (no caller in the image): a copy of $48EC with the rows swapped (fighter $5C row 2, $5D row 3 into $3B6D-$3B65) ending JMP $490E into $48EC's tail. Left over from development."
  },
  {
   "address": 18760,
   "type": "line",
   "text": "Gap-$14 layout ($45 above): fighter $5C's second row and fighter $5D's third row into the handler at $3BB2-$3BD1."
  },
  {
   "address": 18815,
   "type": "line",
   "text": "Unreferenced code: a copy of $4948 with the rows swapped, ending JMP $496A into its tail. Left over from development."
  },
  {
   "address": 18852,
   "type": "line",
   "text": "For fighter X (0 or 1): screen X = world X ($DB/$DD) minus the scroll position ($72 x 8 - $1537), into $0441,x (low) and $0443,x (high). Clips at the left edge: 24 or 48 pixels off screen blanks one or two sprite columns (zeroes pointers $22-$32), further off or past X=$140 blanks all, sets $043F,x and $0443,x = $80."
  },
  {
   "address": 18989,
   "type": "line",
   "text": "Called with Y = 0 or 4: gives the four sprites Y..Y+3 to the four other-object slots through $0D07 (X = 0-3), used when the fighter owning them is hidden."
  },
  {
   "address": 19001,
   "type": "line",
   "text": "Adds fighter X's signed step $E3,x to its world X $DB,x/$DD,x, stopping at 0. A negative step is negated in place in $E3,x, so the step is positive afterwards (unclear if intended)."
  },
  {
   "address": 19042,
   "type": "line",
   "text": "Unreferenced bytes: 95 DB 95 DD 60 DD 60 (the shape of STA $DB,X / STA $DD,X / RTS, a leftover) then 00 00 00 FF."
  },
  {
   "address": 19053,
   "type": "line",
   "text": "Two pointers read by $0FEC when a screen is entered: $4AEC (the exit lists, to $E7/$E8) and $4A71 (the screen-to-area table, patched into the LDA at $0FF8)."
  },
  {
   "address": 19054,
   "type": "line",
   "text": "High byte of the exit-list pointer ($4AEC), read at $1013."
  },
  {
   "address": 19055,
   "type": "line",
   "text": "Pointer to the screen-to-area table $4A71 (low byte, read at $0FEC)."
  },
  {
   "address": 19056,
   "type": "line",
   "text": "High byte of the screen-to-area pointer, read at $0FF2."
  },
  {
   "address": 19057,
   "type": "line",
   "text": "One byte per screen, 123 screens (index $046B): the area / scenery set drawn for it, stored in $046A (0-$2F). Areas 0-7 use the scenery tables at $52F6, 8-$2F those at $5D90, the rest $6DEE (routine $196F picks by $0E44/$0E45)."
  },
  {
   "address": 19180,
   "type": "line",
   "text": "Exits from each screen, one list per screen in screen order (123 lists; $1A06 skips to list $046B). Entries are 4 bytes: type (low 5 bits; 01-05, 09-0C, 0D-15: kinds of doorway, stair and edge tested by $0576), the hero column that triggers it (vs $E5), destination screen (to $046B), destination scroll column (to $0469). A 0 byte ends each list."
  },
  {
   "address": 19964,
   "type": "line",
   "text": "Continuation of the screen exit lists ($4AEC): this is the list for screen 84; the lists run on to screen 122 (empty) at $501A."
  },
  {
   "address": 20211,
   "type": "line",
   "text": "Inside the exit lists (screen 103's list starts at $4EEB). The code at $C390-$C3A5 calls $4EF3 as a subroutine four times, and $C37E-$C386 writes $5174-$518B: that code matches some other memory layout; in this image both targets are data."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Exit list for screen 120 (from $5000)."
  },
  {
   "address": 20507,
   "type": "line",
   "text": "Pointer to $501E, patched into the LDA at $0B27 and $1050 so they index the item-list pointers."
  },
  {
   "address": 20508,
   "type": "line",
   "text": "High byte of the item-list pointer ($501E), read at $0AD7 and $103F."
  },
  {
   "address": 20509,
   "type": "line",
   "text": "$38: added to the area number ($046A) to index $501E for screens numbered $3C and above; $30 + $38 = $68 is the end entry used by $0AD1."
  },
  {
   "address": 20510,
   "type": "line",
   "text": "105 pointers into the lists at $50F0: entries 0-$3B by screen number (screens below $3C), entries $38+area for other screens, entry $68 the end ($52F1). Read through $0B27 and $1050."
  },
  {
   "address": 20720,
   "type": "line",
   "text": "Per-screen lists of changeable screen features, 2- or 3-byte entries: bit 6 of the first byte marks a 2-byte entry; bit 7 is set at start-up by $0AD1 on every 3-byte entry. $0B2B writes character $82 or $86 into the screen row at the column in byte 3 of an entry with bit 7 set, where the row holds $FF. What these features are in play is unknown."
  },
  {
   "address": 20852,
   "type": "line",
   "text": "Inside the item lists at $50F0. $C37E stores $FF at $5174-$517B (see $4EF3: code for another layout)."
  },
  {
   "address": 20860,
   "type": "line",
   "text": "Inside the item lists; $C386 stores 0 at $517C-$5183 (code for another layout, see $4EF3)."
  },
  {
   "address": 20868,
   "type": "line",
   "text": "Inside the item lists; $C383 stores 0 at $5184-$518B (code for another layout, see $4EF3)."
  },
  {
   "address": 20885,
   "type": "line",
   "text": "Item lists continued (begun at $50F0): the list at $5195 is the target of pointer entry 38 (at $506A); the lists run to $52F0."
  },
  {
   "address": 21233,
   "type": "line",
   "text": "Five bytes after the end of the item lists (FF 00 FF 00 FF); nothing reads them."
  },
  {
   "address": 21238,
   "type": "line",
   "text": "Scenery set 0 (areas 0-7), 58 shapes: low byte of each shape's offset from $540E. $124A puts this table in $CF/$D0; drawn by $1620."
  },
  {
   "address": 21296,
   "type": "line",
   "text": "Scenery set 0: high byte of each shape's offset from $540E ($D1/$D2)."
  },
  {
   "address": 21354,
   "type": "line",
   "text": "Scenery set 0: width of each shape in characters ($CB/$CC); also used to decide whether a shape is on screen at the current scroll ($1556)."
  },
  {
   "address": 21412,
   "type": "line",
   "text": "Scenery set 0: height of each shape in character rows ($CD/$CE)."
  },
  {
   "address": 21470,
   "type": "line",
   "text": "Scenery set 0, 16 groups: low byte of each group's offset from $5882 ($D3/$D4). An object id with bit 7 set names a group (id AND $7F)."
  },
  {
   "address": 21486,
   "type": "line",
   "text": "Scenery set 0: high byte of each group's offset from $5882 ($D5/$D6)."
  },
  {
   "address": 21502,
   "type": "line",
   "text": "Scenery set 0: overall width of each group in characters ($D7/$D8), for the on-screen test in the code at $1357."
  },
  {
   "address": 21518,
   "type": "line",
   "text": "Scenery set 0 shape data: for each shape, width x height character codes row by row, copied to the play screen ($73/$74, 40 columns) by $1620. Offsets from $52F6/$5330; the 58 shapes tile this block exactly."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "End of the scenery set 0 shape character data begun at $540E (to $5881)."
  },
  {
   "address": 22658,
   "type": "line",
   "text": "Scenery set 0 groups: for each, a list of 3-byte entries (shape id, column offset, row offset) ended by a byte of $80 or more ($FF); drawn by $1556 at the group's position. The 16 lists tile this block exactly."
  },
  {
   "address": 23463,
   "type": "line",
   "text": "Areas 0-7: three tables of 8 words, offsets from $5BD7 to each area's object columns ($5BA7), rows ($5BB7) and ids ($5BC7); read by $1074-$109A into $C7, $C9 and $C5."
  },
  {
   "address": 23464,
   "type": "line",
   "text": "High byte of area 0's column-array offset (read at $108B)."
  },
  {
   "address": 23479,
   "type": "line",
   "text": "Areas 0-7: offsets from $5BD7 to each area's row array (read at $1092)."
  },
  {
   "address": 23480,
   "type": "line",
   "text": "High byte of the row-array offsets (read at $109A)."
  },
  {
   "address": 23495,
   "type": "line",
   "text": "Areas 0-7: offsets from $5BD7 to each area's object-id array (read at $0BBB and $1074)."
  },
  {
   "address": 23496,
   "type": "line",
   "text": "High byte of the object-id-array offsets (read at $0BC3 and $107C)."
  },
  {
   "address": 23511,
   "type": "line",
   "text": "Areas 0-7: the scenery placed in each area, as three parallel arrays per area (columns, rows, object ids; id bit 7 = a group from $5882, $FF = none). The number of objects is $0F68,area (20,16,17,17,6,13,53,5). Area 0 at $5BD7, 1 $5C13, 2 $5C43, 3 $5C76, 4 $5CA9, 5 $5CBB, 6 $5CE2, 7 $5D81."
  },
  {
   "address": 23952,
   "type": "line",
   "text": "Scenery set 1 (areas 8-$2F), 52 shapes: low byte of each shape's offset from $5EBD ($CF/$D0 via $0F34)."
  },
  {
   "address": 24004,
   "type": "line",
   "text": "Scenery set 1: high byte of each shape's offset from $5EBD."
  },
  {
   "address": 24056,
   "type": "line",
   "text": "Scenery set 1: width of each shape in characters."
  },
  {
   "address": 24108,
   "type": "line",
   "text": "Scenery set 1: height of each shape in character rows."
  },
  {
   "address": 24160,
   "type": "line",
   "text": "Scenery set 1, 31 groups: low byte of each group's offset from $63AC."
  },
  {
   "address": 24191,
   "type": "line",
   "text": "Scenery set 1: high byte of each group's offset from $63AC."
  },
  {
   "address": 24222,
   "type": "line",
   "text": "Scenery set 1: overall width of each group in characters."
  },
  {
   "address": 24253,
   "type": "line",
   "text": "Scenery set 1 shape data: width x height character codes per shape, row by row; the block runs on past $5FFF to $63AB, and the 52 shapes tile it exactly."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "Scenery shape data for scenery set 1 (areas 8-29), continued from $5EBD: raw screen codes, each shape width x height bytes row by row, drawn into the play-area screen at $F078 by $1620. Shape n starts at $5EBD + offset from $5D90/$5DC4 (lo/hi), width at $5DF8, height at $5E2C; the 52 shapes fill $5EBD-$63AB exactly."
  },
  {
   "address": 25516,
   "type": "line",
   "text": "Composite scenery objects for set 1 (areas 8-29): 31 lists of 3-byte entries (shape number, dx columns, dy rows), each list ended by a byte with bit 7 set. Object n starts at $63AC + offset from $5E60/$5E7F (lo/hi); read by $15B5 through ($B9), each part drawn by $1620. Last terminator at $6853."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "Composite-object lists of scenery set 1 continued from set1_composites ($63AC): 3-byte entries (shape, dx, dy), each list ended by a byte with bit 7 set, read by $15B5. Labelled here so the description reaches the end of the block at $6853."
  },
  {
   "address": 26112,
   "type": "line",
   "text": "Second part of the set 1 composite-object lists ($6600-$6853): the remaining (shape, dx, dy) entries up to the last terminator at $6853."
  },
  {
   "address": 26708,
   "type": "line",
   "text": "Set 1 (areas 8-29): 22 word offsets from $68D8 to each area's object X-column array; read at $111A with X = (area $046A - 8) * 2 into pointer $C7."
  },
  {
   "address": 26709,
   "type": "line",
   "text": "High-byte view of the word table at $6854 (read as $6855,x at $1122); the rest of the 22 X-array offsets."
  },
  {
   "address": 26752,
   "type": "line",
   "text": "Set 1: 22 word offsets from $68D8 to each area's object Y-row array; read at $1129 into pointer $C9."
  },
  {
   "address": 26753,
   "type": "line",
   "text": "High-byte view of the word table at $6880 (read as $6881,x at $1131); the rest of the 22 Y-array offsets."
  },
  {
   "address": 26796,
   "type": "line",
   "text": "Set 1: 22 word offsets from $68D8 to each area's object type array; read at $110B and $0BAB into pointer $C5."
  },
  {
   "address": 26797,
   "type": "line",
   "text": "High-byte view of the word table at $68AC (read as $68AD,x at $1113 and $0BB3); the rest of the 22 type-array offsets."
  },
  {
   "address": 26840,
   "type": "line",
   "text": "Scenery object lists for areas 8-29: per area three arrays of N bytes (X columns, Y rows, type), N = $0F68 + area. Type < $80 is a single shape, $80-$FE a composite ($7F mask), $FF an empty slot. The game rewrites types in place ($0A0C, $0AB4, $0B80: e.g. $80<->$81, $86<->$87, $99->$9A, ->$FF), so this is live world state as well as initial data."
  },
  {
   "address": 27864,
   "type": "line",
   "text": "Second part of the set 1 area object lists ($6CD8-$6DED): the arrays of the last areas of set 1 (up to area 29, 14 objects)."
  },
  {
   "address": 28142,
   "type": "line",
   "text": "Scenery set 2 (areas 30-47): low bytes of 54 shape offsets from $6F2C; pointer ($CF) set at $125C from $0F3E, read at $162B."
  },
  {
   "address": 28196,
   "type": "line",
   "text": "Set 2: high bytes of the 54 shape offsets; pointer ($D1) from $0F44, read at $1634."
  },
  {
   "address": 28250,
   "type": "line",
   "text": "Set 2: width in characters of each of the 54 shapes; pointer ($CB) from $0F4A, read at $1627 and in the clipping tests at $1579/$15D5."
  },
  {
   "address": 28304,
   "type": "line",
   "text": "Set 2: height in character rows of each of the 54 shapes; pointer ($CD) from $0F50, read at $1620 as the row count."
  },
  {
   "address": 28358,
   "type": "line",
   "text": "Set 2: low bytes of 34 composite-object offsets from $74A6; pointer ($D3) from $0F32, read at $15A6."
  },
  {
   "address": 28392,
   "type": "line",
   "text": "Set 2: high bytes of the 34 composite-object offsets; pointer ($D5) from $0F38, read at $15AE."
  },
  {
   "address": 28426,
   "type": "line",
   "text": "Set 2: one byte per composite object (34, values $03-$2E); its address goes to $D7/$D8 at $126B from $0F56, but no reader of $D7 was found in the code traced so far. Meaning unknown (the values look like widths in columns)."
  },
  {
   "address": 28460,
   "type": "line",
   "text": "Scenery shape data for set 2 (areas 30-47): raw screen codes, width x height bytes row by row, drawn at $1620; the 54 shapes fill $6F2C-$74A5 exactly (base from $0F5C into $0FE8/$0FE9)."
  },
  {
   "address": 29484,
   "type": "line",
   "text": "Second part of the set 2 shape screen codes ($732C-$74A5): the last shapes of the 54, row by row."
  },
  {
   "address": 29862,
   "type": "line",
   "text": "Composite scenery objects for set 2: 34 lists of 3-byte entries (shape, dx, dy) each ended by a byte with bit 7 set; base from $0F62 into $0FEA/$0FEB, read by $15B5."
  },
  {
   "address": 30838,
   "type": "line",
   "text": "Set 2 (areas 30-47): 18 word offsets from $78E2 to each area's object X-column array; read at $1169 with X = (area - 30) * 2 into $C7."
  },
  {
   "address": 30839,
   "type": "line",
   "text": "High-byte view of the word table at $7876 (read as $7877,x at $1171); the rest of the 18 X-array offsets."
  },
  {
   "address": 30874,
   "type": "line",
   "text": "Set 2: 18 word offsets from $78E2 to each area's Y-row array; read at $1178 into $C9."
  },
  {
   "address": 30875,
   "type": "line",
   "text": "High-byte view of the word table at $789A (read as $789B,x at $1180); the rest of the 18 Y-array offsets."
  },
  {
   "address": 30910,
   "type": "line",
   "text": "Set 2: 18 word offsets from $78E2 to each area's object type array; read at $115A into $C5."
  },
  {
   "address": 30911,
   "type": "line",
   "text": "High-byte view of the word table at $78BE (read as $78BF,x at $1162); the rest of the 18 type-array offsets."
  },
  {
   "address": 30946,
   "type": "line",
   "text": "Scenery object lists for areas 30-47, same layout as $68D8 (X array, Y array, type array per area, N from $0F68); types rewritten in place during play."
  },
  {
   "address": 31458,
   "type": "line",
   "text": "Second part of the set 2 area object lists ($7AE2-$7CA4): the arrays of the later areas of set 2 (up to area 47, 9 objects)."
  },
  {
   "address": 31909,
   "type": "line",
   "text": "One byte ($FF) between the set 2 object lists and the strike table; no reader found."
  },
  {
   "address": 31910,
   "type": "line",
   "text": "Hit test table, fighters facing each other: 11 rows of 39 bytes, one per move ($8B,x = 1-11), one byte per animation frame ($0477). Row pointers at $04EF (table $04ED, index move*2). Read at $37CD: $80 = this frame does not strike, else a signed reach compared with the fighters' separation ($0445/$0446). Interpretation of the value is from the code, not tested live."
  },
  {
   "address": 32128,
   "type": "line",
   "text": "Rows for moves 6-11 of the facing-each-other hit table ($7D80-$7E52), 39 frame bytes per move, $80 = no strike."
  },
  {
   "address": 32339,
   "type": "line",
   "text": "Hit test table used when both fighters face the same way ($1E,x = $1E,y): 11 rows of 39 bytes per move and frame, row pointers at $0507 (table $0505); read at $382D. $80 = no strike; values are mostly negative ($DD-$FB), i.e. reach behind."
  },
  {
   "address": 32512,
   "type": "line",
   "text": "Rows for moves 5-11 of the same-facing hit table ($7F00-$7FFF), 39 frame bytes per move, $80 = no strike; the last row ends at $7FFF."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "Packed sprite frames, BNK3 ($8000-$AF0F): 229 multicolour sprite images (63 bytes each unpacked), zero-run packed: a non-zero byte is copied; $00 n writes n zero bytes. Frame i starts at $8000 + ($B661[i]*256 + $B57C[i]); unpacked into a 64-byte bank-3 sprite slot by $1D3E-$1D94 (as drawn) or $1EFA-$1FF8 (mirrored through the $BF00 flip table). Frame 0 ($8000-$8048 packed): starts with $F6 $3F then runs on into frame 1's bytes, so it is frame 1 shifted two bytes; whether any caller uses index 0 is unknown."
  },
  {
   "address": 32770,
   "type": "line",
   "text": "Sprite frame 1 (index 1 in the $B57C/$B661 frame table): packed, $8002-$804A (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 32843,
   "type": "line",
   "text": "Sprite frame 2 (index 2 in the $B57C/$B661 frame table): packed, $804B-$8086 (60 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 32903,
   "type": "line",
   "text": "Sprite frame 3 (index 3 in the $B57C/$B661 frame table): packed, $8087-$80D6 (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 32983,
   "type": "line",
   "text": "Sprite frame 4 (index 4 in the $B57C/$B661 frame table): packed, $80D7-$8126 (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33063,
   "type": "line",
   "text": "Sprite frame 5 (index 5 in the $B57C/$B661 frame table): packed, $8127-$812F (9 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33072,
   "type": "line",
   "text": "Sprite frame 6 (index 6 in the $B57C/$B661 frame table): packed, $8130-$8144 (21 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33093,
   "type": "line",
   "text": "Sprite frame 7 (index 7 in the $B57C/$B661 frame table): packed, $8145-$818D (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33166,
   "type": "line",
   "text": "Sprite frame 8 (index 8 in the $B57C/$B661 frame table): packed, $818E-$81D3 (70 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33236,
   "type": "line",
   "text": "Sprite frame 9 (index 9 in the $B57C/$B661 frame table): packed, $81D4-$81EE (27 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33263,
   "type": "line",
   "text": "Sprite frame 10 (index 10 in the $B57C/$B661 frame table): packed, $81EF-$8204 (22 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33285,
   "type": "line",
   "text": "Sprite frame 11 (index 11 in the $B57C/$B661 frame table): packed, $8205-$8255 (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33366,
   "type": "line",
   "text": "Sprite frame 12 (index 12 in the $B57C/$B661 frame table): packed, $8256-$8266 (17 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33383,
   "type": "line",
   "text": "Sprite frame 13 (index 13 in the $B57C/$B661 frame table): packed, $8267-$82B5 (79 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33462,
   "type": "line",
   "text": "Sprite frame 14 (index 14 in the $B57C/$B661 frame table): packed, $82B6-$82FD (72 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33534,
   "type": "line",
   "text": "Sprite frame 15 (index 15 in the $B57C/$B661 frame table): packed, $82FE-$833E (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33599,
   "type": "line",
   "text": "Sprite frame 16 (index 16 in the $B57C/$B661 frame table): packed, $833F-$834B (13 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33612,
   "type": "line",
   "text": "Sprite frame 17 (index 17 in the $B57C/$B661 frame table): packed, $834C-$8395 (74 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33686,
   "type": "line",
   "text": "Sprite frame 18 (index 18 in the $B57C/$B661 frame table): packed, $8396-$83BA (37 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33723,
   "type": "line",
   "text": "Sprite frame 19 (index 19 in the $B57C/$B661 frame table): packed, $83BB-$840A (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33803,
   "type": "line",
   "text": "Sprite frame 20 (index 20 in the $B57C/$B661 frame table): packed, $840B-$8453 (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33876,
   "type": "line",
   "text": "Sprite frame 21 (index 21 in the $B57C/$B661 frame table): packed, $8454-$8499 (70 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 33946,
   "type": "line",
   "text": "Sprite frame 22 (index 22 in the $B57C/$B661 frame table): packed, $849A-$84D1 (56 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34002,
   "type": "line",
   "text": "Sprite frame 23 (index 23 in the $B57C/$B661 frame table): packed, $84D2-$8521 (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34082,
   "type": "line",
   "text": "Sprite frame 24 (index 24 in the $B57C/$B661 frame table): packed, $8522-$855B (58 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34140,
   "type": "line",
   "text": "Sprite frame 25 (index 25 in the $B57C/$B661 frame table): packed, $855C-$8587 (44 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34184,
   "type": "line",
   "text": "Sprite frame 26 (index 26 in the $B57C/$B661 frame table): packed, $8588-$85AD (38 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34222,
   "type": "line",
   "text": "Sprite frame 27 (index 27 in the $B57C/$B661 frame table): packed, $85AE-$85C5 (24 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34246,
   "type": "line",
   "text": "Sprite frame 28 (index 28 in the $B57C/$B661 frame table): packed, $85C6-$860C (71 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34317,
   "type": "line",
   "text": "Sprite frame 29 (index 29 in the $B57C/$B661 frame table): packed, $860D-$8653 (71 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34388,
   "type": "line",
   "text": "Sprite frame 30 (index 30 in the $B57C/$B661 frame table): packed, $8654-$866F (28 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34416,
   "type": "line",
   "text": "Sprite frame 31 (index 31 in the $B57C/$B661 frame table): packed, $8670-$8687 (24 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34440,
   "type": "line",
   "text": "Sprite frame 32 (index 32 in the $B57C/$B661 frame table): packed, $8688-$86CA (67 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34507,
   "type": "line",
   "text": "Sprite frame 33 (index 33 in the $B57C/$B661 frame table): packed, $86CB-$8708 (62 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34569,
   "type": "line",
   "text": "Sprite frame 34 (index 34 in the $B57C/$B661 frame table): packed, $8709-$872F (39 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34608,
   "type": "line",
   "text": "Sprite frame 35 (index 35 in the $B57C/$B661 frame table): packed, $8730-$8743 (20 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34628,
   "type": "line",
   "text": "Sprite frame 36 (index 36 in the $B57C/$B661 frame table): packed, $8744-$8768 (37 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34665,
   "type": "line",
   "text": "Sprite frame 37 (index 37 in the $B57C/$B661 frame table): packed, $8769-$87AF (71 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34736,
   "type": "line",
   "text": "Sprite frame 38 (index 38 in the $B57C/$B661 frame table): packed, $87B0-$87FC (77 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34813,
   "type": "line",
   "text": "Sprite frame 39 (index 39 in the $B57C/$B661 frame table): packed, $87FD-$883B (63 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34876,
   "type": "line",
   "text": "Sprite frame 40 (index 40 in the $B57C/$B661 frame table): packed, $883C-$888C (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 34957,
   "type": "line",
   "text": "Sprite frame 41 (index 41 in the $B57C/$B661 frame table): packed, $888D-$88CF (67 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35024,
   "type": "line",
   "text": "Sprite frame 42 (index 42 in the $B57C/$B661 frame table): packed, $88D0-$890F (64 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35088,
   "type": "line",
   "text": "Sprite frame 43 (index 43 in the $B57C/$B661 frame table): packed, $8910-$8944 (53 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35141,
   "type": "line",
   "text": "Sprite frame 44 (index 44 in the $B57C/$B661 frame table): packed, $8945-$8966 (34 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35175,
   "type": "line",
   "text": "Sprite frame 45 (index 45 in the $B57C/$B661 frame table): packed, $8967-$897D (23 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35198,
   "type": "line",
   "text": "Sprite frame 46 (index 46 in the $B57C/$B661 frame table): packed, $897E-$8994 (23 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35221,
   "type": "line",
   "text": "Sprite frame 47 (index 47 in the $B57C/$B661 frame table): packed, $8995-$89D7 (67 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35288,
   "type": "line",
   "text": "Sprite frame 48 (index 48 in the $B57C/$B661 frame table): packed, $89D8-$89F7 (32 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35320,
   "type": "line",
   "text": "Sprite frame 49 (index 49 in the $B57C/$B661 frame table): packed, $89F8-$8A48 (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35401,
   "type": "line",
   "text": "Sprite frame 50 (index 50 in the $B57C/$B661 frame table): packed, $8A49-$8A91 (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35474,
   "type": "line",
   "text": "Sprite frame 51 (index 51 in the $B57C/$B661 frame table): packed, $8A92-$8AA6 (21 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35495,
   "type": "line",
   "text": "Sprite frame 52 (index 52 in the $B57C/$B661 frame table): packed, $8AA7-$8ABA (20 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35515,
   "type": "line",
   "text": "Sprite frame 53 (index 53 in the $B57C/$B661 frame table): packed, $8ABB-$8B0B (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35596,
   "type": "line",
   "text": "Sprite frame 54 (index 54 in the $B57C/$B661 frame table): packed, $8B0C-$8B4C (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35661,
   "type": "line",
   "text": "Sprite frame 55 (index 55 in the $B57C/$B661 frame table): packed, $8B4D-$8B95 (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35734,
   "type": "line",
   "text": "Sprite frame 56 (index 56 in the $B57C/$B661 frame table): packed, $8B96-$8BDD (72 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35806,
   "type": "line",
   "text": "Sprite frame 57 (index 57 in the $B57C/$B661 frame table): packed, $8BDE-$8BFF (34 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35840,
   "type": "line",
   "text": "Sprite frame 58 (index 58 in the $B57C/$B661 frame table): packed, $8C00-$8C3D (62 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35902,
   "type": "line",
   "text": "Sprite frame 59 (index 59 in the $B57C/$B661 frame table): packed, $8C3E-$8C5A (29 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 35931,
   "type": "line",
   "text": "Sprite frame 60 (index 60 in the $B57C/$B661 frame table): packed, $8C5B-$8CA7 (77 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36008,
   "type": "line",
   "text": "Sprite frame 61 (index 61 in the $B57C/$B661 frame table): packed, $8CA8-$8CBE (23 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36031,
   "type": "line",
   "text": "Sprite frame 62 (index 62 in the $B57C/$B661 frame table): packed, $8CBF-$8CED (47 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36078,
   "type": "line",
   "text": "Sprite frame 63 (index 63 in the $B57C/$B661 frame table): packed, $8CEE-$8D31 (68 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36146,
   "type": "line",
   "text": "Sprite frame 64 (index 64 in the $B57C/$B661 frame table): packed, $8D32-$8D74 (67 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36213,
   "type": "line",
   "text": "Sprite frame 65 (index 65 in the $B57C/$B661 frame table): packed, $8D75-$8DC2 (78 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36291,
   "type": "line",
   "text": "Sprite frame 66 (index 66 in the $B57C/$B661 frame table): packed, $8DC3-$8DFC (58 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36349,
   "type": "line",
   "text": "Sprite frame 67 (index 67 in the $B57C/$B661 frame table): packed, $8DFD-$8E49 (77 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36426,
   "type": "line",
   "text": "Sprite frame 68 (index 68 in the $B57C/$B661 frame table): packed, $8E4A-$8E66 (29 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36455,
   "type": "line",
   "text": "Sprite frame 69 (index 69 in the $B57C/$B661 frame table): packed, $8E67-$8EB2 (76 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36531,
   "type": "line",
   "text": "Sprite frame 70 (index 70 in the $B57C/$B661 frame table): packed, $8EB3-$8F05 (83 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36614,
   "type": "line",
   "text": "Sprite frame 71 (index 71 in the $B57C/$B661 frame table): packed, $8F06-$8F4F (74 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36688,
   "type": "line",
   "text": "Sprite frame 72 (index 72 in the $B57C/$B661 frame table): packed, $8F50-$8F9A (75 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36763,
   "type": "line",
   "text": "Sprite frame 73 (index 73 in the $B57C/$B661 frame table): packed, $8F9B-$8FE7 (77 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36840,
   "type": "line",
   "text": "Sprite frame 74 (index 74 in the $B57C/$B661 frame table): packed, $8FE8-$8FF9 (18 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36858,
   "type": "line",
   "text": "Sprite frame 75 (index 75 in the $B57C/$B661 frame table): packed, $8FFA-$9008 (15 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36873,
   "type": "line",
   "text": "Sprite frame 76 (index 76 in the $B57C/$B661 frame table): packed, $9009-$904C (68 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36941,
   "type": "line",
   "text": "Sprite frame 77 (index 77 in the $B57C/$B661 frame table): packed, $904D-$907B (47 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 36988,
   "type": "line",
   "text": "Sprite frame 78 (index 78 in the $B57C/$B661 frame table): packed, $907C-$909B (32 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37020,
   "type": "line",
   "text": "Sprite frame 79 (index 79 in the $B57C/$B661 frame table): packed, $909C-$90EC (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37101,
   "type": "line",
   "text": "Sprite frame 80 (index 80 in the $B57C/$B661 frame table): packed, $90ED-$9131 (69 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37170,
   "type": "line",
   "text": "Sprite frame 81 (index 81 in the $B57C/$B661 frame table): packed, $9132-$914A (25 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37195,
   "type": "line",
   "text": "Sprite frame 82 (index 82 in the $B57C/$B661 frame table): packed, $914B-$918D (67 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37262,
   "type": "line",
   "text": "Sprite frame 83 (index 83 in the $B57C/$B661 frame table): packed, $918E-$91CF (66 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37328,
   "type": "line",
   "text": "Sprite frame 84 (index 84 in the $B57C/$B661 frame table): packed, $91D0-$921A (75 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37403,
   "type": "line",
   "text": "Sprite frame 85 (index 85 in the $B57C/$B661 frame table): packed, $921B-$9252 (56 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37459,
   "type": "line",
   "text": "Sprite frame 86 (index 86 in the $B57C/$B661 frame table): packed, $9253-$9266 (20 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37479,
   "type": "line",
   "text": "Sprite frame 87 (index 87 in the $B57C/$B661 frame table): packed, $9267-$92AF (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37552,
   "type": "line",
   "text": "Sprite frame 88 (index 88 in the $B57C/$B661 frame table): packed, $92B0-$92ED (62 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37614,
   "type": "line",
   "text": "Sprite frame 89 (index 89 in the $B57C/$B661 frame table): packed, $92EE-$9333 (70 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37684,
   "type": "line",
   "text": "Sprite frame 90 (index 90 in the $B57C/$B661 frame table): packed, $9334-$937F (76 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37760,
   "type": "line",
   "text": "Sprite frame 91 (index 91 in the $B57C/$B661 frame table): packed, $9380-$93CF (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37840,
   "type": "line",
   "text": "Sprite frame 92 (index 92 in the $B57C/$B661 frame table): packed, $93D0-$941F (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37920,
   "type": "line",
   "text": "Sprite frame 93 (index 93 in the $B57C/$B661 frame table): packed, $9420-$9437 (24 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 37944,
   "type": "line",
   "text": "Sprite frame 94 (index 94 in the $B57C/$B661 frame table): packed, $9438-$947F (72 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38016,
   "type": "line",
   "text": "Sprite frame 95 (index 95 in the $B57C/$B661 frame table): packed, $9480-$94A0 (33 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38049,
   "type": "line",
   "text": "Sprite frame 96 (index 96 in the $B57C/$B661 frame table): packed, $94A1-$94F4 (84 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38133,
   "type": "line",
   "text": "Sprite frame 97 (index 97 in the $B57C/$B661 frame table): packed, $94F5-$953B (71 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38204,
   "type": "line",
   "text": "Sprite frame 98 (index 98 in the $B57C/$B661 frame table): packed, $953C-$9586 (75 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38279,
   "type": "line",
   "text": "Sprite frame 99 (index 99 in the $B57C/$B661 frame table): packed, $9587-$95A2 (28 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38307,
   "type": "line",
   "text": "Sprite frame 100 (index 100 in the $B57C/$B661 frame table): packed, $95A3-$95E9 (71 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38378,
   "type": "line",
   "text": "Sprite frame 101 (index 101 in the $B57C/$B661 frame table): packed, $95EA-$9628 (63 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38441,
   "type": "line",
   "text": "Sprite frame 102 (index 102 in the $B57C/$B661 frame table): packed, $9629-$9668 (64 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38505,
   "type": "line",
   "text": "Sprite frame 103 (index 103 in the $B57C/$B661 frame table): packed, $9669-$96AC (68 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38573,
   "type": "line",
   "text": "Sprite frame 104 (index 104 in the $B57C/$B661 frame table): packed, $96AD-$96EC (64 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38637,
   "type": "line",
   "text": "Sprite frame 105 (index 105 in the $B57C/$B661 frame table): packed, $96ED-$9709 (29 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38666,
   "type": "line",
   "text": "Sprite frame 106 (index 106 in the $B57C/$B661 frame table): packed, $970A-$974E (69 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38735,
   "type": "line",
   "text": "Sprite frame 107 (index 107 in the $B57C/$B661 frame table): packed, $974F-$9768 (26 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38761,
   "type": "line",
   "text": "Sprite frame 108 (index 108 in the $B57C/$B661 frame table): packed, $9769-$9779 (17 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38778,
   "type": "line",
   "text": "Sprite frame 109 (index 109 in the $B57C/$B661 frame table): packed, $977A-$97C9 (80 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38858,
   "type": "line",
   "text": "Sprite frame 110 (index 110 in the $B57C/$B661 frame table): packed, $97CA-$980D (68 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38926,
   "type": "line",
   "text": "Sprite frame 111 (index 111 in the $B57C/$B661 frame table): packed, $980E-$984D (64 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 38990,
   "type": "line",
   "text": "Sprite frame 112 (index 112 in the $B57C/$B661 frame table): packed, $984E-$986D (32 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39022,
   "type": "line",
   "text": "Sprite frame 113 (index 113 in the $B57C/$B661 frame table): packed, $986E-$98BC (79 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39101,
   "type": "line",
   "text": "Sprite frame 114 (index 114 in the $B57C/$B661 frame table): packed, $98BD-$98FD (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39166,
   "type": "line",
   "text": "Sprite frame 115 (index 115 in the $B57C/$B661 frame table): packed, $98FE-$9946 (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39239,
   "type": "line",
   "text": "Sprite frame 116 (index 116 in the $B57C/$B661 frame table): packed, $9947-$994E (8 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39247,
   "type": "line",
   "text": "Sprite frame 117 (index 117 in the $B57C/$B661 frame table): packed, $994F-$998A (60 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39307,
   "type": "line",
   "text": "Sprite frame 118 (index 118 in the $B57C/$B661 frame table): packed, $998B-$99D2 (72 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39379,
   "type": "line",
   "text": "Sprite frame 119 (index 119 in the $B57C/$B661 frame table): packed, $99D3-$99EE (28 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39407,
   "type": "line",
   "text": "Sprite frame 120 (index 120 in the $B57C/$B661 frame table): packed, $99EF-$9A2B (61 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39468,
   "type": "line",
   "text": "Sprite frame 121 (index 121 in the $B57C/$B661 frame table): packed, $9A2C-$9A74 (73 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39541,
   "type": "line",
   "text": "Sprite frame 122 (index 122 in the $B57C/$B661 frame table): packed, $9A75-$9AC2 (78 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39619,
   "type": "line",
   "text": "Sprite frame 123 (index 123 in the $B57C/$B661 frame table): packed, $9AC3-$9B03 (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39684,
   "type": "line",
   "text": "Sprite frame 124 (index 124 in the $B57C/$B661 frame table): packed, $9B04-$9B52 (79 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39763,
   "type": "line",
   "text": "Sprite frame 125 (index 125 in the $B57C/$B661 frame table): packed, $9B53-$9B8D (59 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39822,
   "type": "line",
   "text": "Sprite frame 126 (index 126 in the $B57C/$B661 frame table): packed, $9B8E-$9BDC (79 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39901,
   "type": "line",
   "text": "Sprite frame 127 (index 127 in the $B57C/$B661 frame table): packed, $9BDD-$9C15 (57 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 39958,
   "type": "line",
   "text": "Sprite frame 128 (index 128 in the $B57C/$B661 frame table): packed, $9C16-$9C61 (76 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40034,
   "type": "line",
   "text": "Sprite frame 129 (index 129 in the $B57C/$B661 frame table): packed, $9C62-$9CB2 (81 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40115,
   "type": "line",
   "text": "Sprite frame 130 (index 130 in the $B57C/$B661 frame table): packed, $9CB3-$9D06 (84 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40199,
   "type": "line",
   "text": "Sprite frame 131 (index 131 in the $B57C/$B661 frame table): packed, $9D07-$9D46 (64 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40263,
   "type": "line",
   "text": "Sprite frame 132 (index 132 in the $B57C/$B661 frame table): packed, $9D47-$9D5E (24 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40287,
   "type": "line",
   "text": "Sprite frame 133 (index 133 in the $B57C/$B661 frame table): packed, $9D5F-$9D7D (31 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40318,
   "type": "line",
   "text": "Sprite frame 134 (index 134 in the $B57C/$B661 frame table): packed, $9D7E-$9DC3 (70 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40388,
   "type": "line",
   "text": "Sprite frame 135 (index 135 in the $B57C/$B661 frame table): packed, $9DC4-$9E04 (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40453,
   "type": "line",
   "text": "Sprite frame 136 (index 136 in the $B57C/$B661 frame table): packed, $9E05-$9E24 (32 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40485,
   "type": "line",
   "text": "Sprite frame 137 (index 137 in the $B57C/$B661 frame table): packed, $9E25-$9E6C (72 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40557,
   "type": "line",
   "text": "Sprite frame 138 (index 138 in the $B57C/$B661 frame table): packed, $9E6D-$9EB6 (74 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40631,
   "type": "line",
   "text": "Sprite frame 139 (index 139 in the $B57C/$B661 frame table): packed, $9EB7-$9EF7 (65 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40696,
   "type": "line",
   "text": "Sprite frame 140 (index 140 in the $B57C/$B661 frame table): packed, $9EF8-$9F44 (77 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40773,
   "type": "line",
   "text": "Sprite frame 141 (index 141 in the $B57C/$B661 frame table): packed, $9F45-$9F93 (79 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40852,
   "type": "line",
   "text": "Sprite frame 142 (index 142 in the $B57C/$B661 frame table): packed, $9F94-$9FD5 (66 bytes), unpacks to 63 bytes via $1D70 / $1F58."
  },
  {
   "address": 40918,
   "type": "line",
   "text": "Sprite frame 143 (index 143 in the $B57C/$B661 frame table): packed, $9FD6-$A01C (71 bytes), unpacks to 63 bytes via $1D70 / $1F58. Its tail continues past $A000."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "Last 29 bytes of compressed sprite frame 143 (starts at $9FD6). Frame format read by $1D70/$1F62: literal bytes, and 00 nn = nn zero bytes, until 63 bytes of a 24x21 multicolour sprite are written."
  },
  {
   "address": 40989,
   "type": "line",
   "text": "Compressed sprite frame 144 (pointer $B57C/$B661 entry 144); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41047,
   "type": "line",
   "text": "Compressed sprite frame 145 (pointer $B57C/$B661 entry 145); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41128,
   "type": "line",
   "text": "Compressed sprite frame 146 (pointer $B57C/$B661 entry 146); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41184,
   "type": "line",
   "text": "Compressed sprite frame 147 (pointer $B57C/$B661 entry 147); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41266,
   "type": "line",
   "text": "Compressed sprite frame 148 (pointer $B57C/$B661 entry 148); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41327,
   "type": "line",
   "text": "Compressed sprite frame 149 (pointer $B57C/$B661 entry 149); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41409,
   "type": "line",
   "text": "Compressed sprite frame 150 (pointer $B57C/$B661 entry 150); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41479,
   "type": "line",
   "text": "Compressed sprite frame 151 (pointer $B57C/$B661 entry 151); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41551,
   "type": "line",
   "text": "Compressed sprite frame 152 (pointer $B57C/$B661 entry 152); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41622,
   "type": "line",
   "text": "Compressed sprite frame 153 (pointer $B57C/$B661 entry 153); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41688,
   "type": "line",
   "text": "Compressed sprite frame 154 (pointer $B57C/$B661 entry 154); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41711,
   "type": "line",
   "text": "Compressed sprite frame 155 (pointer $B57C/$B661 entry 155); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41778,
   "type": "line",
   "text": "Compressed sprite frame 156 (pointer $B57C/$B661 entry 156); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41838,
   "type": "line",
   "text": "Compressed sprite frame 157 (pointer $B57C/$B661 entry 157); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41920,
   "type": "line",
   "text": "Compressed sprite frame 158 (pointer $B57C/$B661 entry 158); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 41991,
   "type": "line",
   "text": "Compressed sprite frame 159 (pointer $B57C/$B661 entry 159); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42057,
   "type": "line",
   "text": "Compressed sprite frame 160 (pointer $B57C/$B661 entry 160); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42122,
   "type": "line",
   "text": "Compressed sprite frame 161 (pointer $B57C/$B661 entry 161); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42169,
   "type": "line",
   "text": "Compressed sprite frame 162 (pointer $B57C/$B661 entry 162); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42251,
   "type": "line",
   "text": "Compressed sprite frame 163 (pointer $B57C/$B661 entry 163); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42328,
   "type": "line",
   "text": "Compressed sprite frame 164 (pointer $B57C/$B661 entry 164); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42330,
   "type": "line",
   "text": "Compressed sprite frame 165 (pointer $B57C/$B661 entry 165); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42332,
   "type": "line",
   "text": "Compressed sprite frame 166 (pointer $B57C/$B661 entry 166); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42334,
   "type": "line",
   "text": "Compressed sprite frame 167 (pointer $B57C/$B661 entry 167); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42336,
   "type": "line",
   "text": "Compressed sprite frame 168 (pointer $B57C/$B661 entry 168); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42338,
   "type": "line",
   "text": "Compressed sprite frame 169 (pointer $B57C/$B661 entry 169); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42340,
   "type": "line",
   "text": "Compressed sprite frame 170 (pointer $B57C/$B661 entry 170); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42414,
   "type": "line",
   "text": "Compressed sprite frame 171 (pointer $B57C/$B661 entry 171); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42483,
   "type": "line",
   "text": "Compressed sprite frame 172 (pointer $B57C/$B661 entry 172); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42559,
   "type": "line",
   "text": "Compressed sprite frame 173 (pointer $B57C/$B661 entry 173); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42640,
   "type": "line",
   "text": "Compressed sprite frame 174 (pointer $B57C/$B661 entry 174); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42674,
   "type": "line",
   "text": "Compressed sprite frame 175 (pointer $B57C/$B661 entry 175); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42704,
   "type": "line",
   "text": "Compressed sprite frame 176 (pointer $B57C/$B661 entry 176); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42780,
   "type": "line",
   "text": "Compressed sprite frame 177 (pointer $B57C/$B661 entry 177); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42858,
   "type": "line",
   "text": "Compressed sprite frame 178 (pointer $B57C/$B661 entry 178); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42878,
   "type": "line",
   "text": "Compressed sprite frame 179 (pointer $B57C/$B661 entry 179); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42926,
   "type": "line",
   "text": "Compressed sprite frame 180 (pointer $B57C/$B661 entry 180); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 42995,
   "type": "line",
   "text": "Compressed sprite frame 181 (pointer $B57C/$B661 entry 181); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43049,
   "type": "line",
   "text": "Compressed sprite frame 182 (pointer $B57C/$B661 entry 182); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43082,
   "type": "line",
   "text": "Compressed sprite frame 183 (pointer $B57C/$B661 entry 183); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43117,
   "type": "line",
   "text": "Compressed sprite frame 184 (pointer $B57C/$B661 entry 184); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43155,
   "type": "line",
   "text": "Compressed sprite frame 185 (pointer $B57C/$B661 entry 185); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43177,
   "type": "line",
   "text": "Compressed sprite frame 186 (pointer $B57C/$B661 entry 186); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43198,
   "type": "line",
   "text": "Compressed sprite frame 187 (pointer $B57C/$B661 entry 187); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43277,
   "type": "line",
   "text": "Compressed sprite frame 188 (pointer $B57C/$B661 entry 188); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43332,
   "type": "line",
   "text": "Compressed sprite frame 189 (pointer $B57C/$B661 entry 189); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43413,
   "type": "line",
   "text": "Compressed sprite frame 190 (pointer $B57C/$B661 entry 190); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43478,
   "type": "line",
   "text": "Compressed sprite frame 191 (pointer $B57C/$B661 entry 191); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43536,
   "type": "line",
   "text": "Compressed sprite frame 192 (pointer $B57C/$B661 entry 192); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43602,
   "type": "line",
   "text": "Compressed sprite frame 193 (pointer $B57C/$B661 entry 193); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43625,
   "type": "line",
   "text": "Compressed sprite frame 194 (pointer $B57C/$B661 entry 194); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43646,
   "type": "line",
   "text": "Compressed sprite frame 195 (pointer $B57C/$B661 entry 195); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43687,
   "type": "line",
   "text": "Compressed sprite frame 196 (pointer $B57C/$B661 entry 196); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43753,
   "type": "line",
   "text": "Compressed sprite frame 197 (pointer $B57C/$B661 entry 197); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43826,
   "type": "line",
   "text": "Compressed sprite frame 198 (pointer $B57C/$B661 entry 198); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43871,
   "type": "line",
   "text": "Compressed sprite frame 199 (pointer $B57C/$B661 entry 199); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43913,
   "type": "line",
   "text": "Compressed sprite frame 200 (pointer $B57C/$B661 entry 200); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 43954,
   "type": "line",
   "text": "Compressed sprite frame 201 (pointer $B57C/$B661 entry 201); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44023,
   "type": "line",
   "text": "Compressed sprite frame 202 (pointer $B57C/$B661 entry 202); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44067,
   "type": "line",
   "text": "Compressed sprite frame 203 (pointer $B57C/$B661 entry 203); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44069,
   "type": "line",
   "text": "Compressed sprite frame 204 (pointer $B57C/$B661 entry 204); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44071,
   "type": "line",
   "text": "Compressed sprite frame 205 (pointer $B57C/$B661 entry 205); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44073,
   "type": "line",
   "text": "Compressed sprite frame 206 (pointer $B57C/$B661 entry 206); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44075,
   "type": "line",
   "text": "Compressed sprite frame 207 (pointer $B57C/$B661 entry 207); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44077,
   "type": "line",
   "text": "Compressed sprite frame 208 (pointer $B57C/$B661 entry 208); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44079,
   "type": "line",
   "text": "Compressed sprite frame 209 (pointer $B57C/$B661 entry 209); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44081,
   "type": "line",
   "text": "Compressed sprite frame 210 (pointer $B57C/$B661 entry 210); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44083,
   "type": "line",
   "text": "Compressed sprite frame 211 (pointer $B57C/$B661 entry 211); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44085,
   "type": "line",
   "text": "Compressed sprite frame 212 (pointer $B57C/$B661 entry 212); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44154,
   "type": "line",
   "text": "Compressed sprite frame 213 (pointer $B57C/$B661 entry 213); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44220,
   "type": "line",
   "text": "Compressed sprite frame 214 (pointer $B57C/$B661 entry 214); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44293,
   "type": "line",
   "text": "Compressed sprite frame 215 (pointer $B57C/$B661 entry 215); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44365,
   "type": "line",
   "text": "Compressed sprite frame 216 (pointer $B57C/$B661 entry 216); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44416,
   "type": "line",
   "text": "Compressed sprite frame 217 (pointer $B57C/$B661 entry 217); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44465,
   "type": "line",
   "text": "Compressed sprite frame 218 (pointer $B57C/$B661 entry 218); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44537,
   "type": "line",
   "text": "Compressed sprite frame 219 (pointer $B57C/$B661 entry 219); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44616,
   "type": "line",
   "text": "Compressed sprite frame 220 (pointer $B57C/$B661 entry 220); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44646,
   "type": "line",
   "text": "Compressed sprite frame 221 (pointer $B57C/$B661 entry 221); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44674,
   "type": "line",
   "text": "Compressed sprite frame 222 (pointer $B57C/$B661 entry 222); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44700,
   "type": "line",
   "text": "Compressed sprite frame 223 (pointer $B57C/$B661 entry 223); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44719,
   "type": "line",
   "text": "Compressed sprite frame 224 (pointer $B57C/$B661 entry 224); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44747,
   "type": "line",
   "text": "Compressed sprite frame 225 (pointer $B57C/$B661 entry 225); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44765,
   "type": "line",
   "text": "Compressed sprite frame 226 (pointer $B57C/$B661 entry 226); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44780,
   "type": "line",
   "text": "Compressed sprite frame 227 (pointer $B57C/$B661 entry 227); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44803,
   "type": "line",
   "text": "Compressed sprite frame 228 (pointer $B57C/$B661 entry 228); zero-run coded 63-byte multicolour sprite: literal bytes, 00 nn = nn zeros. Unpacked by $1D3D/$1D70 (or mirrored by $1EF5/$1F62) into the sprite area."
  },
  {
   "address": 44816,
   "type": "line",
   "text": "27 copies of 00 3F, each a compressed all-blank sprite frame; no entry of the frame pointer tables ($B57C/$B661) points here, so no reader found (spare or padding)."
  },
  {
   "address": 44870,
   "type": "line",
   "text": "Animation script pointers, 46 words (entry 0 = $0000). Indexed by ($7D,x + $0486,x)*2 at $1AF0; the next entry minus this one gives the script length in bytes ($1B84)."
  },
  {
   "address": 44871,
   "type": "line",
   "text": "High bytes of anim_script_ptrs viewed one byte on: $1AFD reads $AF47,y for the pointer high byte; $1B84 reads $AF48,y (next entry) to get the script length."
  },
  {
   "address": 44872,
   "type": "line",
   "text": "Next-entry view of anim_script_ptrs: $1B84 reads $AF48,y minus $AF46,y to get the length of the script just selected."
  },
  {
   "address": 44936,
   "type": "line",
   "text": "Entries 33-45 of anim_script_ptrs (continuation label so each symbol owns under 64 bytes)."
  },
  {
   "address": 44962,
   "type": "line",
   "text": "Animation script 1: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 44970,
   "type": "line",
   "text": "Animation script 2: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 44978,
   "type": "line",
   "text": "Animation script 3: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 44990,
   "type": "line",
   "text": "Animation script 4: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 44998,
   "type": "line",
   "text": "Animation script 5: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45010,
   "type": "line",
   "text": "Animation script 6: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45026,
   "type": "line",
   "text": "Animation script 7: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45058,
   "type": "line",
   "text": "Animation script 8: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45066,
   "type": "line",
   "text": "Animation script 9: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45078,
   "type": "line",
   "text": "Animation script 10: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45094,
   "type": "line",
   "text": "Animation script 11: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45102,
   "type": "line",
   "text": "Animation script 12: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45106,
   "type": "line",
   "text": "Animation script 13: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45126,
   "type": "line",
   "text": "Animation script 14: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45146,
   "type": "line",
   "text": "Animation script 15: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45150,
   "type": "line",
   "text": "Animation script 16: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45162,
   "type": "line",
   "text": "Animation script 17: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45190,
   "type": "line",
   "text": "Animation script 18: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45218,
   "type": "line",
   "text": "Animation script 19: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45222,
   "type": "line",
   "text": "Animation script 20: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45226,
   "type": "line",
   "text": "Animation script 21: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45230,
   "type": "line",
   "text": "Animation script 22: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45238,
   "type": "line",
   "text": "Animation script 23: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45266,
   "type": "line",
   "text": "Animation script 24: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45302,
   "type": "line",
   "text": "Animation script 25: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45314,
   "type": "line",
   "text": "Animation script 26: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45342,
   "type": "line",
   "text": "Animation script 27: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45346,
   "type": "line",
   "text": "Animation script 28: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45350,
   "type": "line",
   "text": "Animation script 29: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45378,
   "type": "line",
   "text": "Animation script 30: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45390,
   "type": "line",
   "text": "Animation script 31: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45402,
   "type": "line",
   "text": "Animation script 32: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45414,
   "type": "line",
   "text": "Animation script 33: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45426,
   "type": "line",
   "text": "Animation script 34: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45430,
   "type": "line",
   "text": "Animation script 35: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45442,
   "type": "line",
   "text": "Animation script 36: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45466,
   "type": "line",
   "text": "Animation script 37: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45478,
   "type": "line",
   "text": "Animation script 38: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45482,
   "type": "line",
   "text": "Animation script 39: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45486,
   "type": "line",
   "text": "Animation script 40: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45490,
   "type": "line",
   "text": "Animation script 41: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45502,
   "type": "line",
   "text": "Animation script 42: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45506,
   "type": "line",
   "text": "Animation script 43: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45522,
   "type": "line",
   "text": "Animation script 44: 4-byte steps [time|flag, pose, dx, dy] read at $1AF0-$1B21. Byte 0 -> $20FF,x (bit 7 a flag, low 7 bits -> $81,x, likely the step's duration); pose -> $0477,x (index into $B210 tables); dx -> $0479,x; dy -> $047B,x (signed)."
  },
  {
   "address": 45538,
   "type": "line",
   "text": "Target of pointer entry 45; the 46 bytes here are an FF/00 fill pattern, not plausible steps, and their length cannot be derived (no following pointer). Reader not confirmed; likely unused."
  },
  {
   "address": 45584,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 0 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 0 goes to $9C."
  },
  {
   "address": 45657,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 1 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 1 goes to $9D."
  },
  {
   "address": 45730,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 2 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 2 goes to $9E."
  },
  {
   "address": 45803,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 3 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 3 goes to $9F."
  },
  {
   "address": 45876,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 4 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 4 goes to $A0."
  },
  {
   "address": 45949,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 5 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 5 goes to $A1."
  },
  {
   "address": 46022,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 6 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 6 goes to $A2."
  },
  {
   "address": 46095,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 7 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 7 goes to $A3."
  },
  {
   "address": 46168,
   "type": "line",
   "text": "Pose -> sprite frame number for sprite slot 8 of the fighter's 9-sprite figure (73 poses, index $0477,x). Read at $1C15.. / $1E12..; 0 = slot empty, else a frame number for $B57C/$B661. Slot 8 goes to $A4."
  },
  {
   "address": 46241,
   "type": "line",
   "text": "Per-pose byte (73 poses) copied to $18,x by $20B5. Meaning unknown (likely a position or size offset)."
  },
  {
   "address": 46314,
   "type": "line",
   "text": "Per-pose byte (73 poses) copied to $1A,x by $20B5. Meaning unknown."
  },
  {
   "address": 46387,
   "type": "line",
   "text": "Per-pose flags (73 poses), read by $20B5: low nibble minus 1 -> $4C,x; bit 7 -> $1C,x; bit 4 -> $54,x; bit 5 -> $56,x (when set, $2095 swaps sprite rows, a vertical flip). Meanings of $4C/$1C/$54 unknown."
  },
  {
   "address": 46460,
   "type": "line",
   "text": "Sprite frame address, low bytes, 229 frames. Read at $1D4F/$1F13."
  },
  {
   "address": 46689,
   "type": "line",
   "text": "Sprite frame address, high bytes minus $80 (code adds $80), 229 frames: frames live in $8000-$AF0F. Read at $1D43/$1EFB."
  },
  {
   "address": 46918,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image in slot $B740 (rows 0-1 overwritten by the end of $B661); a head seen side-on. Same series as $B780-$BEBF. No reader found in the traced code."
  },
  {
   "address": 46976,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 0 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47040,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 1 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47104,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 2 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47168,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 3 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47232,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 4 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47296,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 5 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47360,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 6 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47363,
   "type": "line",
   "text": "Zero byte 0 of 8 ($B903+0) inside head_sprite_06; $C352 copies it to zero page $D8 at set-up."
  },
  {
   "address": 47364,
   "type": "line",
   "text": "Zero byte 1 of 8 ($B903+1) inside head_sprite_06; $C352 copies it to zero page $D9 at set-up."
  },
  {
   "address": 47365,
   "type": "line",
   "text": "Zero byte 2 of 8 ($B903+2) inside head_sprite_06; $C352 copies it to zero page $DA at set-up."
  },
  {
   "address": 47366,
   "type": "line",
   "text": "Zero byte 3 of 8 ($B903+3) inside head_sprite_06; $C352 copies it to zero page $DB at set-up."
  },
  {
   "address": 47367,
   "type": "line",
   "text": "Zero byte 4 of 8 ($B903+4) inside head_sprite_06; $C352 copies it to zero page $DC at set-up."
  },
  {
   "address": 47368,
   "type": "line",
   "text": "Zero byte 5 of 8 ($B903+5) inside head_sprite_06; $C352 copies it to zero page $DD at set-up."
  },
  {
   "address": 47369,
   "type": "line",
   "text": "Zero byte 6 of 8 ($B903+6) inside head_sprite_06; $C352 copies it to zero page $DE at set-up."
  },
  {
   "address": 47370,
   "type": "line",
   "text": "Zero byte 7 of 8 ($B903+7) inside head_sprite_06; $C352 copies it to zero page $DF at set-up."
  },
  {
   "address": 47424,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 7 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47488,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 8 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47552,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 9 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47616,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 10 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47680,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 11 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47744,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 12 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47808,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 13 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47872,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 14 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 47936,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 15 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48000,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 16 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48064,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 17 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48128,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 18 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48192,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 19 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48256,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 20 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48320,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 21 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48384,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 22 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48448,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 23 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48512,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 24 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48576,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 25 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48640,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 26 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48704,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 27 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48768,
   "type": "line",
   "text": "Uncompressed 64-byte multicolour sprite image 28 of 28 in $B780-$BEBF: a head (face, hair) seen side-on. No reader found in the traced code or by operand scan; purpose unknown (spare/unused, or read through a computed pointer)."
  },
  {
   "address": 48832,
   "type": "line",
   "text": "6 zero bytes with no reader found; they sit before the sample table at $BEC6."
  },
  {
   "address": 48838,
   "type": "line",
   "text": "Sampled-sound parameters, 4 bytes per sample number ($3E16*4), read at $3F32: byte 0 -> $3E0C (CIA 1 timer A low, the playback rate, see $3DD8), bytes 1-3 -> $3E0E/$3E0F/$3E10 (meaning unknown). Same index as the start/end table at $FFCB."
  },
  {
   "address": 48839,
   "type": "line",
   "text": "Bytes 1-3 of each sample_params entry, read at $3F38/$3F3E/$3F44 into $3E0E/$3E0F/$3E10; meaning unknown."
  },
  {
   "address": 48840,
   "type": "line",
   "text": "Byte 2 of each sample_params entry, read at $3F3E into $3E0F; meaning unknown."
  },
  {
   "address": 48841,
   "type": "line",
   "text": "Byte 3 of each sample_params entry, read at $3F44 into $3E10; meaning unknown."
  },
  {
   "address": 48874,
   "type": "line",
   "text": "22 bytes after the sample table; no reader found. Where the table ends is not certain."
  },
  {
   "address": 48896,
   "type": "line",
   "text": "256-byte multicolour mirror table: entry n is n with its four bit pairs in reverse order (checked for all 256). Used with byte reversal to flip sprites left-right at $0E17, $1F6A and $206D."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "LOADALL leftover (dead in play): the Adventure loader's head as it sits in memory: JSR $C280 (in the LOADALL file that was the loader's own code; BNK4A has since overwritten $C280 onward), $01=$06, CLI, SETMSG 0, $CC=1, then JMP $C06E, which skips the TITLE/TSETUP loads at $C016-$C06D. $C000-$C03E is also sprite block $00: the start-up clears it ($C4E4) and it is the blank sprite image in play."
  },
  {
   "address": 49172,
   "type": "line",
   "text": "LOADALL leftover (dead in play): two bytes ($20 $D0) between the JMP at $C011 and the SETLFS code at $C016; no path reaches them, apparently the remains of an overwritten instruction."
  },
  {
   "address": 49174,
   "type": "line",
   "text": "LOADALL leftover (dead in play): KERNAL SETLFS 1,8,0 / SETNAM \"TITLE\" / LOAD to $6000; border red ($D020=2) on carry set (load error). Not reached from $C000 in this copy (JMP $C011->$C06E skips it)."
  },
  {
   "address": 49204,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"TITLE\" (5 bytes, PETSCII) for SETNAM at $C01F."
  },
  {
   "address": 49209,
   "type": "line",
   "text": "LOADALL leftover (dead in play): on load error set border red; then LOAD \"TSETUP\" to $1000."
  },
  {
   "address": 49246,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"TSETUP\" (6 bytes, PETSCII)."
  },
  {
   "address": 49252,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error, then JSR $1000 (TSETUP: shows the title picture)."
  },
  {
   "address": 49262,
   "type": "line",
   "text": "LOADALL leftover (dead in play): LOAD \"BNK4B\" to $1000 (reached from JMP $C011)."
  },
  {
   "address": 49292,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"BNK4B\" (PETSCII)."
  },
  {
   "address": 49297,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; SEI, $01=$00 (all ROM and I/O out), then a self-modifying copy loop moves $1000-$3FF8 up to $D000-$FFF8 (RAM under I/O and KERNAL): operands at $C0BC/$C0BF are the source/destination, $C0DD/$C0DF the remaining count ($2FF0)."
  },
  {
   "address": 49340,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: source low byte of LDA $3FF0 at $C0BB; patched to $00, then incremented."
  },
  {
   "address": 49341,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: source high byte of that LDA, patched to $10."
  },
  {
   "address": 49343,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: destination low byte of STA $FFF0 at $C0BE."
  },
  {
   "address": 49344,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: destination high byte of that STA, patched to $D0."
  },
  {
   "address": 49373,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: count low byte, operand of LDA #$00 at $C0DC, patched to $F0."
  },
  {
   "address": 49375,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK4B copy loop, self-modified operand: count high byte, operand of ORA #$00 at $C0DE, patched to $2F."
  },
  {
   "address": 49413,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"BNK4A\" (PETSCII)."
  },
  {
   "address": 49418,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; LOAD \"BNK3\" to $1000. The BNK4A load at $C0E7 put $C280-$CFFF in place just before, over the loader's own tail."
  },
  {
   "address": 49455,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"BNK3\" (PETSCII). $C100-$C17E is also sprite blocks $04/$05: overwritten in play by a fighter's images (seen in f2-play.vsf)."
  },
  {
   "address": 49459,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; SEI, $01=$00, self-modifying copy of $1000-$4FFF to $8000-$BFFF ($4000 bytes); then LOAD \"BNK12A\" to $0400."
  },
  {
   "address": 49502,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: source low byte of LDA $5000 at $C15D, patched to $00."
  },
  {
   "address": 49503,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: source high byte, patched to $10."
  },
  {
   "address": 49505,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: destination low byte of STA $C000 at $C160."
  },
  {
   "address": 49506,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: destination high byte, patched to $80."
  },
  {
   "address": 49535,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: count low byte, patched to $00."
  },
  {
   "address": 49537,
   "type": "line",
   "text": "LOADALL leftover (dead in play): BNK3 copy loop, self-modified operand: count high byte, patched to $40."
  },
  {
   "address": 49575,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"BNK12A\" (PETSCII)."
  },
  {
   "address": 49581,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; blank the screen (JSR $C265); LOAD \"COLOR\" to $6000."
  },
  {
   "address": 49621,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"COLOR\" (PETSCII). $C1C0-$C23E is also sprite blocks $07/$08: overwritten in play by a fighter's images."
  },
  {
   "address": 49626,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; SEI, $01=$05 (I/O in, ROMs out), self-modifying copy of $6000-$63FF into colour RAM $D800-$DBFF; then LOAD \"BNK2B\" to $5C00."
  },
  {
   "address": 49669,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: source low byte of LDA $6400 at $C204, patched to $00."
  },
  {
   "address": 49670,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: source high byte, patched to $60."
  },
  {
   "address": 49672,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: destination low byte of STA $DC00 at $C207."
  },
  {
   "address": 49673,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: destination high byte, patched to $D8."
  },
  {
   "address": 49702,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: count low byte, patched to $00."
  },
  {
   "address": 49704,
   "type": "line",
   "text": "LOADALL leftover (dead in play): COLOR copy loop, self-modified operand: count high byte, patched to $04."
  },
  {
   "address": 49742,
   "type": "line",
   "text": "LOADALL leftover (dead in play): file name \"BNK2B\" (PETSCII)."
  },
  {
   "address": 49747,
   "type": "line",
   "text": "LOADALL leftover (dead in play): border red on error; screen back on (JSR $C26E); SEI, $01=$00, JMP $C3FD (the game's start-up)."
  },
  {
   "address": 49765,
   "type": "line",
   "text": "LOADALL leftover (dead in play): clear bit 4 of $D011 (blank the display) while loading."
  },
  {
   "address": 49774,
   "type": "line",
   "text": "LOADALL leftover (dead in play): set bit 4 of $D011 (display on again)."
  },
  {
   "address": 49783,
   "type": "line",
   "text": "LOADALL leftover (dead in play): nine zero bytes ending the part of LOADALL that BNK4A (loaded at $C280) did not overwrite."
  },
  {
   "address": 49792,
   "type": "line",
   "text": "BNK4A, unreached: no instruction in the image calls $C280-$C3BA (the only reference, JSR $C280 at $C000, is the loader's). Reads as an earlier build's start-up: JMP $C283; SEI; $FF=1; JSR $C2A0; $D5 = $D012 OR $29; $9C=5; $0BDF,$61,$9B = 0; RTS."
  },
  {
   "address": 49824,
   "type": "line",
   "text": "BNK4A, unreached: clears $60/$1C/$7D, $B5=$FF, then JSR $C2BA (vectors), $C3A9 (tables), $C2F8 (VIC), $C352 (game variables)."
  },
  {
   "address": 49850,
   "type": "line",
   "text": "BNK4A, unreached: CIA 1 interrupts off, raster IRQ on, $01=$05, IRQ vector $C01A, reset and NMI vectors $C02A, CIA 2 NMIs off, $DC02=0. Those targets are loader code now, so this could not run in this build."
  },
  {
   "address": 49912,
   "type": "line",
   "text": "BNK4A, unreached: VIC bank 3, $D018=$36, clears sprite block 0 (JSR $C347), $D011=$1B, raster $FF, multicolour, sprite colours 8/9, all sprites multicolour and on, sprites 0-5 double height, colours $0F/$06, black border and background."
  },
  {
   "address": 49991,
   "type": "line",
   "text": "BNK4A, unreached: zero $C000-$C03E (sprite block $00); same as the live $C4E4. $C340-$C3BA is also sprite blocks $0D/$0E, overwritten in play by the second fighter's images."
  },
  {
   "address": 50002,
   "type": "line",
   "text": "BNK4A, unreached: copies $B903-$B90A to zero page $D8-$DF; sets eight entries of $5174 to $FF and of $5184/$517C to 0; calls $4EF3 with Y=1..4, A=4 ($4EF3 holds no routine in this build)."
  },
  {
   "address": 50089,
   "type": "line",
   "text": "BNK4A, unreached: copies $C400-$C4FF to $0200 and $C500-$C5FF to $0300: an older layout of the sample-period tables that the live start-up copies from $C700/$C800."
  },
  {
   "address": 50107,
   "type": "line",
   "text": "Sprite graphics in bank 3: the last five bytes of block $0E and block $0F ($C3C0-$C3FC, 21 rows of 3 bytes, multicolour); the JMP at $C3FD overlaps its final row. No code seen selecting pointer $0F; use unknown."
  },
  {
   "address": 50173,
   "type": "line",
   "text": "Game entry: the loader's JMP $C3FD lands here, JMP $C400."
  },
  {
   "address": 50176,
   "type": "line",
   "text": "One-time start-up: SEI; clears $041F,$FF,$20,$0476; vectors ($C458); copies the sample-period tables $C700/$C800 to $0200/$0300; VIC set-up ($C496); $0430=$53; clears both screens ($C438); JSR $12A9; status colours ($C4EF); clears status rows ($C4FA); JMP $0402 (main loop). $C400-$C47E is also sprite blocks $10/$11, overwritten in play by the second fighter's images."
  },
  {
   "address": 50232,
   "type": "line",
   "text": "Zero $CC78-$CFF7 and $F050-$F3BF: rows 3-24 of both play-area screens ($CC00 and $F000; the game flips between them through $1536, $30/$C0 at $18C2). Rows 0-2 of $CC00 are the status band."
  },
  {
   "address": 50264,
   "type": "line",
   "text": "$01=$07 briefly, CIA 1 interrupts off, raster IRQ enabled, $01=$05 (RAM under the KERNAL), IRQ vector $3F67, reset vector $39BF, CIA 2 interrupts off, NMI vector $3C23, $DC02=0 (port A all inputs)."
  },
  {
   "address": 50326,
   "type": "line",
   "text": "VIC bank 3 ($DD00=0), $D018=$38, blank sprite block $00 ($C4E4), $D011=$3B, raster compare $FF, multicolour text ($D016=$10), sprite multicolours 0/$0A, $5E=2, $5F=9, all sprites multicolour and on, JSR $2D34 and $2D3F, sprites behind the background, background colours 6/0. The raster handlers reset most of this each frame."
  },
  {
   "address": 50404,
   "type": "line",
   "text": "Zero $C000-$C03E: sprite block $00 becomes the blank image; the sprite copier at $2028 uses $C000 as its source for an empty frame."
  },
  {
   "address": 50415,
   "type": "line",
   "text": "Colour RAM $D800-$D877 (rows 0-2, the status band) = 1, white."
  },
  {
   "address": 50426,
   "type": "line",
   "text": "Zero $CC00-$CC77, the three status-band rows of screen $CC00."
  },
  {
   "address": 50432,
   "type": "line",
   "text": "Operand byte inside STA $CC00,X at $C4FE; the unreached $C3A9 reads $C500-$C5FF as a table (an older layout), so the disassembler marks a field here. Code of clear_status_rows."
  },
  {
   "address": 50439,
   "type": "line",
   "text": "Sprite graphics, bank 3 blocks $14-$1B ($C507 is inside block $14, whose first rows the start-up code overlays; $C540-$C6FF are blocks $15-$1B whole). Multicolour images; the pointer values that select them were not traced (the frame logic keeps pointers in zero page $02-$41)."
  },
  {
   "address": 50944,
   "type": "line",
   "text": "Low bytes of a 256-entry 16-bit period table, copied to $0200 at start-up. The digitised-sound handler at $3D8B reads a byte from the stream at ($68), looks up $0300/$0200 with it, loads CIA 1 timer B ($DC07/$DC06), restarts it one-shot counting timer A underflows ($DC0F=$59), and toggles the SID volume ($D418). Values rise from 1 to 60000 ($EA60). Two alphabet-like runs here ($C73F...) are only part of this rising sequence."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "High bytes of the period table (copied to $0300): zero for entries $00-$CB, then rising to $EA."
  },
  {
   "address": 51456,
   "type": "line",
   "text": "Sprite graphics, bank 3 blocks $24-$2F ($C900-$CBFF). $C900 repeats block $1B. Blocks $25-$28 ($C940-$CA3F) are also the destinations of the 63-byte sprite copier at $2055 (address tables $1BC8/$1BD0), so they are rewritten in play; pointer $25 is live in f2-play.vsf (sprite 0)."
  },
  {
   "address": 51776,
   "type": "line",
   "text": "Sprite graphics, bank 3 blocks $29-$2F ($CA40-$CBFF), multicolour; which frames they are was not traced."
  },
  {
   "address": 53224,
   "type": "line",
   "text": "16 bytes between screen $CC00's last row and its sprite pointers; zero, no reader seen."
  },
  {
   "address": 53240,
   "type": "line",
   "text": "Sprite pointers for screen $CC00 (runtime): written with those at $F3F8 by $0D0A, $4583-$4593, $45E5, $46FF-$471B, and by the raster handlers at $39AC and $3B5C."
  },
  {
   "address": 53241,
   "type": "line",
   "text": "Pointer for sprite 1 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53242,
   "type": "line",
   "text": "Pointer for sprite 2 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53243,
   "type": "line",
   "text": "Pointer for sprite 3 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53245,
   "type": "line",
   "text": "Pointer for sprite 5 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53246,
   "type": "line",
   "text": "Pointer for sprite 6 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53247,
   "type": "line",
   "text": "Pointer for sprite 7 while screen $CC00 is shown (runtime; see $CFF8)."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "RAM under the I/O area: play-area character set, 256 multicolour glyphs of 8 bytes ($D000-$D7FF), read by the video chip in bank 3 when the low nibble of $D018 is 4 ($C0=$04, table $0E40). The CPU never reads it: no code in the game switches the I/O out ($01 is set only by the loader and start-up)."
  },
  {
   "address": 54272,
   "type": "line",
   "text": "RAM under the I/O area: second half of the $D000 play-area character set, glyphs $80-$FF."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "RAM under the I/O area: a second play-area character set ($D800-$DFFF, 256 glyphs), selected when $D018's low nibble is 6 ($C0=$06, first entry of table $0E40, set at $121B); presumably another scenery zone. Static between f2-entry and f2-play."
  },
  {
   "address": 55336,
   "type": "line",
   "text": "Part of play-area character set B ($D800-$DFFF, RAM under the I/O area, glyph 5). The symbol at $D828 was minted by instructions that write colour RAM at the same address (the CPU sees the colour chip there); the game's own reads of this RAM are only the video chip's."
  },
  {
   "address": 55344,
   "type": "line",
   "text": "Part of play-area character set B ($D800-$DFFF, RAM under the I/O area, glyph 6). The symbol at $D830 was minted by instructions that write colour RAM at the same address (the CPU sees the colour chip there); the game's own reads of this RAM are only the video chip's."
  },
  {
   "address": 55345,
   "type": "line",
   "text": "Part of play-area character set B ($D800-$DFFF, RAM under the I/O area, glyph 6). The symbol at $D831 was minted by instructions that write colour RAM at the same address (the CPU sees the colour chip there); the game's own reads of this RAM are only the video chip's."
  },
  {
   "address": 55352,
   "type": "line",
   "text": "Play-area character set B, glyphs 7 onward (8 bytes each), in the RAM under the I/O area at $D838. The video chip reads it when $D018 selects $D800 in bank 3; the CPU never does, because the game keeps the I/O switched in."
  },
  {
   "address": 55662,
   "type": "line",
   "text": "Code names $D96E as colour RAM (I/O, row 9, column 6); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $2D (byte 6) of the $D800 character set."
  },
  {
   "address": 55702,
   "type": "line",
   "text": "Code names $D996 as colour RAM (I/O, row 10, column 6); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $32 (byte 6) of the $D800 character set."
  },
  {
   "address": 55742,
   "type": "line",
   "text": "Code names $D9BE as colour RAM (I/O, row 11, column 6); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $37 (byte 6) of the $D800 character set."
  },
  {
   "address": 55782,
   "type": "line",
   "text": "Code names $D9E6 as colour RAM (I/O, row 12, column 6); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $3C (byte 6) of the $D800 character set."
  },
  {
   "address": 55822,
   "type": "line",
   "text": "Code names $DA0E as colour RAM (I/O, row 13, column 6); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $41 (byte 6) of the $D800 character set."
  },
  {
   "address": 55862,
   "type": "line",
   "text": "Part of play-area character set B in the RAM under the I/O area (glyph 70, byte 6). The symbol comes from a colour-RAM store to $DA36 at $170E-$1738 or $264E, which the CPU sends to the colour chip, not to this RAM."
  },
  {
   "address": 55868,
   "type": "line",
   "text": "Part of play-area character set B in the RAM under the I/O area (glyph 71, byte 4). The symbol comes from a colour-RAM store to $DA3C at $170E-$1738 or $264E, which the CPU sends to the colour chip, not to this RAM."
  },
  {
   "address": 55872,
   "type": "line",
   "text": "Play-area character set B, glyphs 72 onward (8 bytes each), in the RAM under the I/O area at $DA40. The video chip reads it when $D018 selects $D800 in bank 3; the CPU never does, because the game keeps the I/O switched in."
  },
  {
   "address": 56028,
   "type": "line",
   "text": "Code names $DADC as colour RAM (I/O, row 18, column 12); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $5B (byte 4) of the $D800 character set."
  },
  {
   "address": 56068,
   "type": "line",
   "text": "Code names $DB04 as colour RAM (I/O, row 19, column 12); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $60 (byte 4) of the $D800 character set."
  },
  {
   "address": 56108,
   "type": "line",
   "text": "Code names $DB2C as colour RAM (I/O, row 20, column 12); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $65 (byte 4) of the $D800 character set."
  },
  {
   "address": 56148,
   "type": "line",
   "text": "Part of play-area character set B in the RAM under the I/O area (glyph 106, byte 4). The symbol comes from a colour-RAM store to $DB54 at $170E-$1738 or $264E, which the CPU sends to the colour chip, not to this RAM."
  },
  {
   "address": 56155,
   "type": "line",
   "text": "Part of play-area character set B in the RAM under the I/O area (glyph 107, byte 3). The symbol comes from a colour-RAM store to $DB5B at $170E-$1738 or $264E, which the CPU sends to the colour chip, not to this RAM."
  },
  {
   "address": 56160,
   "type": "line",
   "text": "Play-area character set B, glyphs 108 onward (8 bytes each), in the RAM under the I/O area at $DB60. The video chip reads it when $D018 selects $D800 in bank 3; the CPU never does, because the game keeps the I/O switched in."
  },
  {
   "address": 56257,
   "type": "line",
   "text": "Code names $DBC1 as colour RAM (I/O, row 24, column 1); the CPU writes reach the colour chip, not this RAM. The RAM underneath is glyph $78 (byte 1) of the $D800 character set."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "RAM under the I/O area: glyphs $80-$FF of the $D800 character set. The last 320 bytes ($DEC0-$DFFF) are laid out like 3-byte sprite rows; whether they also serve as sprites (pointers $7B-$7F) is unknown."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "1,544 bytes of 8-byte character glyphs (multicolour patterns: $55/$AA/$FF fills, edges, textures), $E000-$E607, i.e. glyphs $00-$C0 of a character set at $E000. The one-time set-up points the video chip at $E000 briefly ($C49B: $D018=$38) before switching to $3B; no reader of these bytes was found in the traced code, so which screen uses them is open."
  },
  {
   "address": 58368,
   "type": "line",
   "text": "Continuation of the $E000 glyph block ($E400-$E607, glyphs $80-$C0); same description and same open reader."
  },
  {
   "address": 58888,
   "type": "line",
   "text": "Length in bytes of the 3-byte record list that follows ($A2 = 162 = 54 records). Read as the loop end by $2791 and $2802 (CPX $E608)."
  },
  {
   "address": 58889,
   "type": "line",
   "text": "54 records of 3 bytes ($E609-$E6AA), read and written by the game code at $2700-$2943, $2C37, $351F. Byte 0: flags and type (bit 7 is set by the game and cleared for every record by the loop at $2786; the low nibble is a type, $0A treated specially at $27A9). Byte 1: compared with $046B at $27F7 to find the record for the current place. Byte 2: used at $2700/$2838. What the records stand for in the game (objects, scrolls, doors?) is not settled here."
  },
  {
   "address": 58890,
   "type": "line",
   "text": "Byte 1 of each obj_list record (index X steps by 3): the key compared with $046B at $27F7."
  },
  {
   "address": 58891,
   "type": "line",
   "text": "Byte 2 of each obj_list record: read at $2700 (a value multiplied by 8, likely a graphic or position index) and compared at $2838/$2844/$285F. Meaning open."
  },
  {
   "address": 59051,
   "type": "line",
   "text": "21 bytes ($E6AB-$E6BF) after the record list: $FF/$00 alternating runs and small values. No reader found; may be fill or the tail of the glyph block (glyphs $D5-$D7). Unknown."
  },
  {
   "address": 59072,
   "type": "line",
   "text": "Five sprite shapes, 64 bytes each, sprite pointers $9B-$9F ($E6C0,$E700,$E740,$E780,$E7C0; bank 3, pointer x 64 + $C000). Small multicolour shapes in the upper rows. Which object uses them is not traced."
  },
  {
   "address": 59392,
   "type": "line",
   "text": "Status-band character set (video chip reads it when $D018=$3B, lines 236-74). Glyph $00 blank; $01-$0A digits 0-9 ($E808-$E857); $0B-$19 striped patterns; $1A-$21 multicolour energy-bar segments and end caps ($E8D0-$E90F); the bottom status row uses codes $1A-$21 in the play snapshot. Glyphs $22-$FF ($E910-$EFFF) hold other data, below."
  },
  {
   "address": 59664,
   "type": "line",
   "text": "1,200 bytes ($E910-$EDBF) inside the status character set's unused glyphs $22-$B7: byte values mostly $00-$7F, often in pairs with slowly varying values (e.g. $E9C0-$EB3F runs of 2x/3x/4x/5x/6x/7x). Not glyphs by appearance; no reader found in the traced code. Unknown table."
  },
  {
   "address": 60672,
   "type": "line",
   "text": "Continuation of the unknown table ($ED00-$EDBF); higher values ($80-$EF) mixed in. Unknown."
  },
  {
   "address": 60864,
   "type": "line",
   "text": "Nine sprite shapes, pointers $B7-$BF ($EDC0-$EFFF, 64 bytes each). $0E0B mirrors the seven at $EE40-$EFFF ($B9-$BF) left-to-right in place (swaps bytes 0 and 2 of every row through the bit-pair reverse table at $BF00), so they are drawn facing both ways. Figures in the lower rows (character or creature frames)."
  },
  {
   "address": 62464,
   "type": "line",
   "text": "Music driver entry, called once a frame from the raster handler at $3D21 (JSR at $3D7E; also JMP $F400 at $3F64). Jumps to music_update. Zero page $FF holds the tune to play: 0 silence, 1-3 a tune (set at $11E4/$1202 from $1247, cleared at $C406)."
  },
  {
   "address": 62467,
   "type": "line",
   "text": "Four zero bytes; no reader. Entry 0 of the tune tables is unused too (tune 0 = silence)."
  },
  {
   "address": 62471,
   "type": "line",
   "text": "Tune tables, one word per tune 0-3 (tune 0 unused): $F407 voice 1 sequence, $F40F voice 2 sequence, $F417 voice 3 sequence, $F41F pattern-offset table, $F427 pattern data base. Read by music_start_tune at $F572-$F593 and $F54C-$F564."
  },
  {
   "address": 62472,
   "type": "line",
   "text": "High bytes of tune_voice1_seq (read as $F408,Y)."
  },
  {
   "address": 62479,
   "type": "line",
   "text": "Voice 2 sequence pointer per tune: $FAEE, $FB05, $FB0E."
  },
  {
   "address": 62480,
   "type": "line",
   "text": "High bytes of tune_voice2_seq."
  },
  {
   "address": 62487,
   "type": "line",
   "text": "Voice 3 sequence pointer per tune: $FB12, $FB3C, $FB46. (Voice 1: $FADA, $FAE2, $FAE6.)"
  },
  {
   "address": 62488,
   "type": "line",
   "text": "High bytes of tune_voice3_seq."
  },
  {
   "address": 62495,
   "type": "line",
   "text": "Pattern-offset table per tune: $FB4A, $FB5C, $FB68. Copied into the operands at $F61F/$F62B (self-modifying) when a tune starts."
  },
  {
   "address": 62496,
   "type": "line",
   "text": "High bytes of tune_pattern_table."
  },
  {
   "address": 62503,
   "type": "line",
   "text": "Base address added to every pattern offset, per tune: $FB7A, $FCDC, $FD30. Copied to $F9A1/$F9A2."
  },
  {
   "address": 62504,
   "type": "line",
   "text": "High bytes of tune_pattern_base."
  },
  {
   "address": 62511,
   "type": "line",
   "text": "Tempo per tune (index = tune; entry 0 unused): calls to the driver per tick, 2, 2, 5. Copied to tick_reload $F497."
  },
  {
   "address": 62515,
   "type": "line",
   "text": "Voice work area starts here: three bytes per variable, one per voice (index X = 0-2), all runtime. $F433: target frequency low byte (note from note_freq_table shifted up by octave)."
  },
  {
   "address": 62518,
   "type": "line",
   "text": "Target frequency high byte, per voice."
  },
  {
   "address": 62521,
   "type": "line",
   "text": "SID control register value per voice (waveform bits from the instrument, bit 0 gate set on a note and cleared at the end of its time). Written to $D404+voice by music_write_sid."
  },
  {
   "address": 62524,
   "type": "line",
   "text": "Pulse width base, low byte (instrument byte 1)."
  },
  {
   "address": 62527,
   "type": "line",
   "text": "Pulse width base, high byte (instrument byte 2)."
  },
  {
   "address": 62530,
   "type": "line",
   "text": "Pulse-width modulation source (instrument byte 3): bit 7 set = none; else the index of the ramp counter in $F49D-$F4A1 to add (0-2 ramps; 3 = voice 3 envelope $D41C, 4 = voice 3 oscillator $D41B). A positive non-zero instrument value is replaced by the voice's own index ($F834)."
  },
  {
   "address": 62533,
   "type": "line",
   "text": "Left-shift count applied to the modulation value before it is added to the pulse base (instrument byte 4)."
  },
  {
   "address": 62536,
   "type": "line",
   "text": "Ramp speed (instrument byte 5): step added to or subtracted from ramp $F49D,X each call (music_ramps)."
  },
  {
   "address": 62539,
   "type": "line",
   "text": "SID attack/decay per voice (instrument byte 6)."
  },
  {
   "address": 62542,
   "type": "line",
   "text": "SID sustain/release per voice (instrument byte 7)."
  },
  {
   "address": 62545,
   "type": "line",
   "text": "Glide flag (instrument byte 8): non-zero makes the frequency slide towards the target instead of jumping (music_glide)."
  },
  {
   "address": 62548,
   "type": "line",
   "text": "Glide step (instrument byte 9), shifted by the note's octave."
  },
  {
   "address": 62551,
   "type": "line",
   "text": "Octave added to every note's octave (instrument byte 10)."
  },
  {
   "address": 62554,
   "type": "line",
   "text": "Vibrato/pitch-effect enable (instrument byte 11): non-zero calls music_vibrato every call."
  },
  {
   "address": 62557,
   "type": "line",
   "text": "Vibrato mode (instrument byte 12): bit 7 set = output alternates between two held pitches (trill-like); clear = the swept pitch is output."
  },
  {
   "address": 62560,
   "type": "line",
   "text": "Vibrato step (instrument byte 13): low 5 bits + $20 shifted left by bits 5-7, minus $20, gives the 16-bit step (computed at $F9C0)."
  },
  {
   "address": 62563,
   "type": "line",
   "text": "Vibrato half-period in calls (instrument byte 14); the first half after a note is half as long."
  },
  {
   "address": 62566,
   "type": "line",
   "text": "Filter resonance and voice routing written to $D417 (instrument byte 15: high nibble resonance; low nibble non-zero routes this voice through the filter)."
  },
  {
   "address": 62567,
   "type": "line",
   "text": "Filter mode and master volume written to $D418 (instrument byte 16)."
  },
  {
   "address": 62568,
   "type": "line",
   "text": "Filter cutoff base high byte, $D416 (instrument byte 17)."
  },
  {
   "address": 62569,
   "type": "line",
   "text": "Filter sweep source (instrument byte 18): bit 7 set = no sweep, else the ramp index 0-4 (as v_pwm_source)."
  },
  {
   "address": 62570,
   "type": "line",
   "text": "Left-shift count of the filter sweep value (instrument byte 19)."
  },
  {
   "address": 62571,
   "type": "line",
   "text": "Filter sweep direction (instrument byte 20): 0 adds the sweep to the cutoff, non-zero subtracts it."
  },
  {
   "address": 62572,
   "type": "line",
   "text": "Voice active flags, one per voice: $81 set when a tune starts; 0 after a sequence stop command (the voice is then silent and not written). Bit 7 selects music_write_sid."
  },
  {
   "address": 62573,
   "type": "line",
   "text": "v_active for voice 2."
  },
  {
   "address": 62574,
   "type": "line",
   "text": "v_active for voice 3."
  },
  {
   "address": 62575,
   "type": "line",
   "text": "Sequence pointer low byte, voices 1-3 ($F46F-$F471); high bytes at $F472-$F474. Copied to zero page $F9/$FA."
  },
  {
   "address": 62576,
   "type": "line",
   "text": "Sequence pointer low, voice 2."
  },
  {
   "address": 62577,
   "type": "line",
   "text": "Sequence pointer low, voice 3."
  },
  {
   "address": 62578,
   "type": "line",
   "text": "Sequence pointer high byte, voice 1."
  },
  {
   "address": 62579,
   "type": "line",
   "text": "Sequence pointer high, voice 2."
  },
  {
   "address": 62580,
   "type": "line",
   "text": "Sequence pointer high, voice 3."
  },
  {
   "address": 62581,
   "type": "line",
   "text": "Current pattern address low byte per voice (copied to $FB)."
  },
  {
   "address": 62584,
   "type": "line",
   "text": "Current pattern address high byte per voice (copied to $FC)."
  },
  {
   "address": 62587,
   "type": "line",
   "text": "Position in the voice's sequence (byte index)."
  },
  {
   "address": 62590,
   "type": "line",
   "text": "Set to 1 when the voice must read its next sequence command (pattern ended, or at start)."
  },
  {
   "address": 62593,
   "type": "line",
   "text": "Position in the current pattern (byte index)."
  },
  {
   "address": 62596,
   "type": "line",
   "text": "Ticks left on the current note (from note_length_table)."
  },
  {
   "address": 62599,
   "type": "line",
   "text": "0 while the note sounds; at time-up it becomes 1 and the note gets one more tick with the gate cleared (unless tied) before the next pattern byte is read. Length index $0E sets it at once, so that note has no release tick."
  },
  {
   "address": 62602,
   "type": "line",
   "text": "Filter cutoff base low byte ($D415). Not set by the instrument loader."
  },
  {
   "address": 62603,
   "type": "line",
   "text": "Bits 6-7 of the note's length byte. Bit 6: the gate stays on when the note's time is up (tied). Non-zero: the next note does not set its pitch and restart the vibrato at once; the pitch then follows the between-ticks path (glide when the instrument has it)."
  },
  {
   "address": 62606,
   "type": "line",
   "text": "Octave of the current note (note byte bits 4-6 + v_octave_add); scales the glide step."
  },
  {
   "address": 62609,
   "type": "line",
   "text": "Note number 1-12 of the current note (0 = rest)."
  },
  {
   "address": 62612,
   "type": "line",
   "text": "Per-voice call counter; counts down from tick_reload, and a tick happens at zero."
  },
  {
   "address": 62613,
   "type": "line",
   "text": "Tick counter, voice 2."
  },
  {
   "address": 62614,
   "type": "line",
   "text": "Tick counter, voice 3."
  },
  {
   "address": 62615,
   "type": "line",
   "text": "Calls per tick for the playing tune (from tune_tempo)."
  },
  {
   "address": 62616,
   "type": "line",
   "text": "Scratch high byte for the shift loops."
  },
  {
   "address": 62617,
   "type": "line",
   "text": "Scratch low byte (glide down)."
  },
  {
   "address": 62618,
   "type": "line",
   "text": "Three bytes, no reader found."
  },
  {
   "address": 62621,
   "type": "line",
   "text": "Modulation sources, indexed 0-4: $F49D-$F49F three triangle ramps (0-$FF up and down at v_ramp_rate), $F4A0 voice 3 envelope ($D41C), $F4A1 voice 3 oscillator ($D41B), refreshed each call by music_ramps."
  },
  {
   "address": 62624,
   "type": "line",
   "text": "Copy of $D41C (voice 3 envelope), modulation source 3."
  },
  {
   "address": 62625,
   "type": "line",
   "text": "Copy of $D41B (voice 3 oscillator), modulation source 4."
  },
  {
   "address": 62626,
   "type": "line",
   "text": "Ramp direction per ramp: 0 rising, $FF falling."
  },
  {
   "address": 62629,
   "type": "line",
   "text": "Pulse width written to $D402+voice (base + modulation)."
  },
  {
   "address": 62632,
   "type": "line",
   "text": "Pulse width high, $D403+voice."
  },
  {
   "address": 62635,
   "type": "line",
   "text": "Frequency written to $D400+voice, low byte (after glide and vibrato)."
  },
  {
   "address": 62638,
   "type": "line",
   "text": "Frequency high byte, $D401+voice."
  },
  {
   "address": 62641,
   "type": "line",
   "text": "The tune the driver last started; compared with $FF each call, and a different value restarts the driver on the new tune."
  },
  {
   "address": 62642,
   "type": "line",
   "text": "High byte of the glide step (cleared at voice init; nothing else writes it)."
  },
  {
   "address": 62645,
   "type": "line",
   "text": "Repeat counter for the sequence command 3 (loop)."
  },
  {
   "address": 62648,
   "type": "line",
   "text": "Bit masks $FE,$FD,$FB,$F7,... (only the first three used): clears this voice's routing bit in $D417."
  },
  {
   "address": 62656,
   "type": "line",
   "text": "Bit masks $01,$02,$04,... : sets this voice's routing bit in $D417."
  },
  {
   "address": 62664,
   "type": "line",
   "text": "Note table: frequency low bytes for notes 1-12 of the base octave, high byte always $01 ($010C,$011C,...,$01FA: equal-tempered semitones, $010C is about 15.7 Hz on PAL). Byte 0 unused (rest). Each octave step shifts the value left once ($F6B7)."
  },
  {
   "address": 62677,
   "type": "line",
   "text": "Note lengths in ticks, indexed by the low nibble of the length byte: 2,5,8,11,17,23,35,47,71,1,3,7,6,4,1,1. Index $0E also sets v_release_phase directly ($F6D6), skipping the release tick."
  },
  {
   "address": 62693,
   "type": "line",
   "text": "Sequence command handlers (command byte x 2): 0 $F79D stop voice, 1 $F614 play pattern n, 2 $F794 jump to position, 3 $F7A3 repeat block. Dispatched by JMP ($FD) at $F5D1."
  },
  {
   "address": 62694,
   "type": "line",
   "text": "High bytes of seq_cmd_table (read as $F4E6,Y)."
  },
  {
   "address": 62701,
   "type": "line",
   "text": "Two zero bytes before the code; no reader."
  },
  {
   "address": 62703,
   "type": "line",
   "text": "Per-call driver: tune 0 in $FF sets the volume to 0 and returns. A tune different from tune_playing restarts everything (music_start_tune); otherwise rewrite the filter registers and run each active voice (music_voices)."
  },
  {
   "address": 62713,
   "type": "line",
   "text": "Same tune as last call: write $D418/$D417/$D415/$D416 from the filter variables and go to music_voices."
  },
  {
   "address": 62745,
   "type": "line",
   "text": "New tune: record it, load its tempo, clear the SID (music_clear_sid) and every voice (music_init_voices), set all voices active and point each at its sequence, the pattern table (into the operands at $F61F/$F62B) and the pattern base."
  },
  {
   "address": 62834,
   "type": "line",
   "text": "Copies the three sequence pointers of the tune (Y = tune x 2) into v_seq_lo/hi."
  },
  {
   "address": 62871,
   "type": "line",
   "text": "Voice loop X = 2..0: for an active voice, count its tick; on a tick read the sequence command (via seq_cmd_table) or continue the pattern; between ticks, glide or hold the pitch; then vibrato. Afterwards update the ramps, pulse widths and filter, and write every active voice to the SID."
  },
  {
   "address": 62873,
   "type": "line",
   "text": "Per-voice body of music_voices."
  },
  {
   "address": 62909,
   "type": "line",
   "text": "Read the sequence byte at v_seq_pos and dispatch through seq_cmd_table with Y = position."
  },
  {
   "address": 62932,
   "type": "line",
   "text": "Not a tick (or note continuing): glide if v_glide_on, else set the frequency to the target."
  },
  {
   "address": 62943,
   "type": "line",
   "text": "Frequency jumps straight to the target."
  },
  {
   "address": 62955,
   "type": "line",
   "text": "Apply music_vibrato when v_vibrato_on."
  },
  {
   "address": 62963,
   "type": "line",
   "text": "Voice loop: next voice (X-1)."
  },
  {
   "address": 62979,
   "type": "line",
   "text": "Write each active voice to the SID; Y = voice register offset 14, 7, 0."
  },
  {
   "address": 62987,
   "type": "line",
   "text": "Step Y down by 7 to the previous voice's registers."
  },
  {
   "address": 62996,
   "type": "line",
   "text": "Sequence command 1: when the voice needs a pattern, read pattern number n, look up its offset (table operand patched at $F61F/$F62B), add the tune's pattern base and start the pattern; otherwise continue the current note (count its ticks)."
  },
  {
   "address": 63007,
   "type": "line",
   "text": "Operand of LDA $FB4A,Y: written with the tune's pattern-table address at $F55B/$F567 (self-modifying)."
  },
  {
   "address": 63008,
   "type": "line",
   "text": "High byte of the patched operand at $F61F."
  },
  {
   "address": 63019,
   "type": "line",
   "text": "Operand of LDA $FB4B,Y (the offset's high byte): tune's pattern table + 1, patched at $F55E-$F56F."
  },
  {
   "address": 63020,
   "type": "line",
   "text": "High byte of the patched operand at $F62B."
  },
  {
   "address": 63040,
   "type": "line",
   "text": "Count down the note's ticks; at zero go to the release phase (gate off unless the note is tied, bit 6 of v_note_flags), and one tick later read the next pattern byte."
  },
  {
   "address": 63048,
   "type": "line",
   "text": "Note time up: enter or leave the release phase."
  },
  {
   "address": 63076,
   "type": "line",
   "text": "Release tick set up: continue with the glide/hold path."
  },
  {
   "address": 63079,
   "type": "line",
   "text": "Advance in the pattern."
  },
  {
   "address": 63082,
   "type": "line",
   "text": "Pattern byte: $FF ends the pattern (next sequence command), $80-$FE selects instrument (b AND $7F) through load_instrument, $00-$7F is a note (low nibble note 1-12 or 0 rest, bits 4-6 octave) followed by a length byte (low nibble: note_length_table index; bits 6-7: v_note_flags)."
  },
  {
   "address": 63107,
   "type": "line",
   "text": "Instrument change byte: store the number and load it."
  },
  {
   "address": 63118,
   "type": "line",
   "text": "Note byte: set the target frequency from note_freq_table and shift it up by the octave."
  },
  {
   "address": 63131,
   "type": "line",
   "text": "Base-octave frequency for the note."
  },
  {
   "address": 63159,
   "type": "line",
   "text": "Double the frequency once per octave."
  },
  {
   "address": 63168,
   "type": "line",
   "text": "Read the length byte: ticks from note_length_table, note flags, gate on, restart vibrato."
  },
  {
   "address": 63197,
   "type": "line",
   "text": "If the previous note had no flags, set the frequency at once and request a vibrato restart, for voice 1 only (STA $FAD7 is not indexed, so voices 2 and 3 never restart: see report)."
  },
  {
   "address": 63219,
   "type": "line",
   "text": "Keep bits 6-7 as v_note_flags; set the gate bit unless the note is a rest."
  },
  {
   "address": 63238,
   "type": "line",
   "text": "Note set up: continue with the glide/hold path at mv_between_ticks."
  },
  {
   "address": 63241,
   "type": "line",
   "text": "Current instrument number per voice (runtime, written at $F685)."
  },
  {
   "address": 63244,
   "type": "line",
   "text": "Writes one voice's frequency, pulse width, ADSR and control to the SID (X = voice, Y = register offset 0/7/14)."
  },
  {
   "address": 63287,
   "type": "line",
   "text": "Zeroes all SID registers $D400-$D418."
  },
  {
   "address": 63291,
   "type": "line",
   "text": "Clear loop $D418 down to $D400."
  },
  {
   "address": 63298,
   "type": "line",
   "text": "Clears one voice's state (X), marks it as needing a pattern, loads its tick counter, and disables PWM and the filter sweep ($80)."
  },
  {
   "address": 63371,
   "type": "line",
   "text": "music_init_voice for voices 2, 1, 0."
  },
  {
   "address": 63373,
   "type": "line",
   "text": "init loop over voices 2..0."
  },
  {
   "address": 63380,
   "type": "line",
   "text": "Sequence command 2: jump to the position in the next byte (the tunes use it to loop forever)."
  },
  {
   "address": 63389,
   "type": "line",
   "text": "Sequence command 0: reset the voice (music_init_voice), making it inactive. No tune uses it."
  },
  {
   "address": 63395,
   "type": "line",
   "text": "Sequence command 3 (position, count): jump back to position until the block has been played count times, then skip the three bytes."
  },
  {
   "address": 63415,
   "type": "line",
   "text": "Repeat counter running: count down."
  },
  {
   "address": 63429,
   "type": "line",
   "text": "Repeat done: step past the command."
  },
  {
   "address": 63441,
   "type": "line",
   "text": "Loads instrument A into voice X: address = word at instrument_offsets + A x 2, plus $FE43; the first 15 bytes go to the per-voice variables $F439-$F463 (stride 3); byte 15 sets resonance and this voice's filter routing and, if its low nibble is non-zero, bytes 16-20 set $F467-$F46B (filter mode/volume, cutoff, sweep)."
  },
  {
   "address": 63468,
   "type": "line",
   "text": "Copy the 15 per-voice bytes."
  },
  {
   "address": 63472,
   "type": "line",
   "text": "Copy loop, X steps by 3."
  },
  {
   "address": 63523,
   "type": "line",
   "text": "Copy filter bytes 16-20 to $F467-$F46B."
  },
  {
   "address": 63533,
   "type": "line",
   "text": "Fix up the PWM source and set the pulse width from the base."
  },
  {
   "address": 63544,
   "type": "line",
   "text": "Pulse width = base."
  },
  {
   "address": 63557,
   "type": "line",
   "text": "Scratch byte for the resonance nibble."
  },
  {
   "address": 63558,
   "type": "line",
   "text": "Reads voice 3 envelope and oscillator into mod_env3/mod_osc3, then moves the three triangle ramps up or down by v_ramp_rate, turning at $00 and $FF."
  },
  {
   "address": 63572,
   "type": "line",
   "text": "Ramp loop Y = 2..0."
  },
  {
   "address": 63600,
   "type": "line",
   "text": "Falling ramp."
  },
  {
   "address": 63620,
   "type": "line",
   "text": "Ramps: next ramp."
  },
  {
   "address": 63624,
   "type": "line",
   "text": "Pulse width = v_pulse_base + (modulation source value << v_pwm_shift) for each voice with a source."
  },
  {
   "address": 63626,
   "type": "line",
   "text": "Voice loop."
  },
  {
   "address": 63644,
   "type": "line",
   "text": "PWM: shift the source value left v_pwm_shift times."
  },
  {
   "address": 63651,
   "type": "line",
   "text": "Add to the base."
  },
  {
   "address": 63667,
   "type": "line",
   "text": "PWM: next voice."
  },
  {
   "address": 63671,
   "type": "line",
   "text": "Filter cutoff = base $F48A/$F468 plus or minus (source << shift), written to $D415/$D416, when filt_sweep_src is a source."
  },
  {
   "address": 63689,
   "type": "line",
   "text": "Filter sweep: shift the source value left filt_sweep_shift times."
  },
  {
   "address": 63696,
   "type": "line",
   "text": "Add or subtract."
  },
  {
   "address": 63722,
   "type": "line",
   "text": "Subtract form."
  },
  {
   "address": 63740,
   "type": "line",
   "text": "Return."
  },
  {
   "address": 63741,
   "type": "line",
   "text": "Moves the voice frequency towards the target by the glide step shifted by the octave, stopping on it."
  },
  {
   "address": 63762,
   "type": "line",
   "text": "Current below target: add the step."
  },
  {
   "address": 63776,
   "type": "line",
   "text": "Glide up: shift the glide step left once per octave."
  },
  {
   "address": 63783,
   "type": "line",
   "text": "Add and clamp at the target."
  },
  {
   "address": 63806,
   "type": "line",
   "text": "Return from glide up while still below the target."
  },
  {
   "address": 63807,
   "type": "line",
   "text": "Glide up: high bytes equal, compare low bytes with the target."
  },
  {
   "address": 63815,
   "type": "line",
   "text": "Glide up overshot: clamp to the target frequency."
  },
  {
   "address": 63828,
   "type": "line",
   "text": "Current above target: subtract the step."
  },
  {
   "address": 63842,
   "type": "line",
   "text": "Glide down: shift the glide step left once per octave."
  },
  {
   "address": 63849,
   "type": "line",
   "text": "Subtract and clamp."
  },
  {
   "address": 63878,
   "type": "line",
   "text": "Return from glide down while still above the target."
  },
  {
   "address": 63879,
   "type": "line",
   "text": "Glide down: high bytes equal, compare low bytes with the target."
  },
  {
   "address": 63887,
   "type": "line",
   "text": "Glide down overshot: clamp to the target frequency."
  },
  {
   "address": 63900,
   "type": "line",
   "text": "LSR A x4 / RTS (A >>= 4): no caller found (opcodes.py --refs $F99C finds none); left as bytes."
  },
  {
   "address": 63905,
   "type": "line",
   "text": "Pattern data base of the playing tune (from tune_pattern_base)."
  },
  {
   "address": 63906,
   "type": "line",
   "text": "High byte of pattern_base_lo."
  },
  {
   "address": 63907,
   "type": "line",
   "text": "Pitch effect: sweeps the frequency up for v_vibrato_period calls and down for as many, by a step from v_vibrato_rate, restarting at each new note (flag $FAD7,X). Mode bit 7 (v_vibrato_mode) outputs the pitch held at the turning points instead."
  },
  {
   "address": 63936,
   "type": "line",
   "text": "Recompute the 16-bit step when v_vibrato_rate changed."
  },
  {
   "address": 63972,
   "type": "line",
   "text": "Vibrato step: shift the step left once per count in bits 5-7 of v_vibrato_rate."
  },
  {
   "address": 63985,
   "type": "line",
   "text": "Subtract the $20 bias."
  },
  {
   "address": 64002,
   "type": "line",
   "text": "New note: start the cycle with a half period, copying $FF (the tune number, non-zero) as the direction flag."
  },
  {
   "address": 64042,
   "type": "line",
   "text": "Move up or down."
  },
  {
   "address": 64097,
   "type": "line",
   "text": "Move down; at the end of the period turn up."
  },
  {
   "address": 64132,
   "type": "line",
   "text": "Choose the output pitch by mode."
  },
  {
   "address": 64155,
   "type": "line",
   "text": "Held pitch B."
  },
  {
   "address": 64168,
   "type": "line",
   "text": "Swept pitch."
  },
  {
   "address": 64181,
   "type": "line",
   "text": "Vibrato work area ($FAB5-$FAD9, 3 bytes each per voice, runtime): $FAB5 direction (non-zero up), $FAB8/$FABB pitch lo/hi, $FABE/$FAC1 held pitch A, $FAC4/$FAC7 held pitch B, $FACA period counter, $FACD last rate, $FAD0/$FAD3 step hi/lo, $FAD7 restart flags."
  },
  {
   "address": 64184,
   "type": "line",
   "text": "Vibrato pitch low byte."
  },
  {
   "address": 64187,
   "type": "line",
   "text": "Vibrato pitch high byte."
  },
  {
   "address": 64190,
   "type": "line",
   "text": "Held pitch A high."
  },
  {
   "address": 64193,
   "type": "line",
   "text": "Held pitch A low."
  },
  {
   "address": 64196,
   "type": "line",
   "text": "Held pitch B high."
  },
  {
   "address": 64199,
   "type": "line",
   "text": "Held pitch B low."
  },
  {
   "address": 64202,
   "type": "line",
   "text": "Calls left in the current half period."
  },
  {
   "address": 64205,
   "type": "line",
   "text": "v_vibrato_rate the step was computed from."
  },
  {
   "address": 64208,
   "type": "line",
   "text": "Vibrato step high."
  },
  {
   "address": 64211,
   "type": "line",
   "text": "Vibrato step low."
  },
  {
   "address": 64215,
   "type": "line",
   "text": "Restart flags per voice ($FF = restart at the next call)."
  },
  {
   "address": 64218,
   "type": "line",
   "text": "Voice sequences of the three tunes ($FADA-$FB49). Commands: 00 stop, 01 n play pattern n, 02 p jump to byte p, 03 p c repeat from p c times. Tune 1: v1 $FADA P3 P2 P4 loop; v2 $FAEE P7 P8 (x11) P5 P6 (x15) P5 P6 (x15) loop; v3 $FB12 a 20-pattern bass/drum line of P0/P1. Tune 2: v1 $FAE2, v2 $FB05, v3 $FB3C. Tune 3: v1 $FAE6 P0 P1 P2, v2 $FB0E P3, v3 $FB46 P4, each looping."
  },
  {
   "address": 64330,
   "type": "line",
   "text": "Pattern offset tables (words, added to the tune's pattern base): tune 1 $FB4A, 9 patterns; tune 2 $FB5C, 6; tune 3 $FB68, 9 entries of which 5 used."
  },
  {
   "address": 64331,
   "type": "line",
   "text": "High bytes of tune 1's offsets (read as $FB4B,Y through the patched operand)."
  },
  {
   "address": 64378,
   "type": "line",
   "text": "Tune 1 patterns, $FB7A-$FCDB (base $FB7A): P0/P1 bass figures with instrument 0 and 2, P2 a long melody (instrument 3), P3 instrument 6, P4 a 100-event lead (instruments 4 and 5), P5-P8 single-note percussion hits (instruments 1 and 7). Format as described at pat_read."
  },
  {
   "address": 64732,
   "type": "line",
   "text": "Tune 2 patterns, $FCDC-$FD2F (base $FCDC): P0 a rest, P1-P3 melody (instrument 9), P4 a slow bass line (instrument 10), P5 instrument 11."
  },
  {
   "address": 64816,
   "type": "line",
   "text": "Tune 3 patterns, $FD30-$FE42 (base $FD30), the tune playing in the jungle at the start of play ($FF = 3 in f2-play): P0-P2 melody alternating instruments 12, 13, 14; P3 a sustained figure (instrument 15); P4 a bass line (instrument 16)."
  },
  {
   "address": 65091,
   "type": "line",
   "text": "17 instruments of 21 bytes, $FE43-$FFA7 (see load_instrument): 0 control, 1-2 pulse width, 3 PWM source, 4 PWM shift, 5 ramp rate, 6 AD, 7 SR, 8 glide on, 9 glide rate, 10 octave add, 11 vibrato on, 12 vibrato mode, 13 vibrato rate, 14 vibrato period, 15 resonance/filter route, 16 $D418, 17 cutoff hi, 18 sweep source, 19 sweep shift, 20 sweep direction."
  },
  {
   "address": 65424,
   "type": "line",
   "text": "Auto symbol minted by a reference from the loader's KERNAL calls ($0350-$0380 call the ROM at this address while the ROM is banked in); the RAM underneath is part of the instrument block (instruments 16, $FF93-$FFA7). Propose excluding this entry byte."
  },
  {
   "address": 65448,
   "type": "line",
   "text": "Instrument offsets from $FE43, one word each: 0, $15, $2A, ... $150 (17 instruments, 21 bytes apart). Read by load_instrument at $F7D3/$F7D9."
  },
  {
   "address": 65466,
   "type": "line",
   "text": "Auto symbol minted by a reference from the loader's KERNAL calls ($0350-$0380 call the ROM at this address while the ROM is banked in); the RAM underneath is part of instrument_offsets."
  },
  {
   "address": 65469,
   "type": "line",
   "text": "Auto symbol from the loader's KERNAL call to $FFBD (SETNAM in ROM, made with the ROM banked in); the RAM underneath is part of instrument_offsets."
  },
  {
   "address": 65482,
   "type": "line",
   "text": "48 bytes ($FFCA-$FFF9) after the instrument offsets: 32 bytes that read as pairs $2040,$2100,$2170,$2270,$22F0,$23F0... then $FF/$00 runs like power-on RAM. No reader found; unknown (not instrument data: load_instrument never indexes past $FFC9 with the tunes' instrument numbers 0-16)."
  },
  {
   "address": 65483,
   "type": "line",
   "text": "Inside unk_ffca: auto symbol from an indexed reference elsewhere in the image (not from the driver); unknown."
  },
  {
   "address": 65484,
   "type": "line",
   "text": "Inside unk_ffca (second byte after $FFCB); unknown."
  },
  {
   "address": 65485,
   "type": "line",
   "text": "Inside unk_ffca (third byte after $FFCB); unknown."
  },
  {
   "address": 65486,
   "type": "line",
   "text": "Inside unk_ffca (fourth byte after $FFCB); unknown."
  },
  {
   "address": 65493,
   "type": "line",
   "text": "Auto symbol minted by a reference from the loader's KERNAL calls ($0350-$0380 call the ROM at this address while the ROM is banked in); the RAM underneath is part of the unknown bytes at unk_ffca."
  },
  {
   "address": 65520,
   "type": "line",
   "text": "Inside unk_ffca ($FF/$00 fill); unknown."
  },
  {
   "address": 65530,
   "type": "line",
   "text": "Hardware vectors, written by the set-up at $C46F-$C48D: NMI $3C23, reset $39BF, IRQ $FFFE/$FFFF rewritten by every raster handler (the chain). The loaded bytes here ($00/$FF) are overwritten at set-up."
  }
 ]
}