{
 "schema": 1,
 "platform": "apple2",
 "game": "karateka",
 "part": "cliff",
 "build": "Br\u00f8derbund's original 1984 disk, side A: Karateka.woz (SHA-1 426b1049...aa259d1f608) from archive.org's A Woz A Day collection, item wozaday_Karateka, run on the kit's enhanced IIe; the engine analysed at its hand-over to $0200 and each stage at its hand-over to $BFFA (orientation.md)",
 "source": "live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    49152,
    53247,
    "I/O and the cards' ROM"
   ],
   [
    53248,
    65535,
    "the ROM, or the language card's RAM"
   ],
   [
    0,
    4095,
    "The engine"
   ],
   [
    8192,
    40959,
    "The engine"
   ],
   [
    49152,
    65535,
    "The engine"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   768,
   1024,
   2048,
   3072,
   8192,
   16384,
   24576,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    4095,
    "The engine"
   ],
   [
    8192,
    40959,
    "The engine"
   ],
   [
    49152,
    65535,
    "The engine"
   ]
  ]
 },
 "blocks": [
  {
   "start": 4096,
   "end": 4159,
   "type": "Code"
  },
  {
   "start": 4160,
   "end": 4378,
   "type": "Byte"
  },
  {
   "start": 4379,
   "end": 4582,
   "type": "Code"
  },
  {
   "start": 4583,
   "end": 6399,
   "type": "Byte"
  },
  {
   "start": 6400,
   "end": 6707,
   "type": "Code"
  },
  {
   "start": 6708,
   "end": 6721,
   "type": "Byte"
  },
  {
   "start": 6722,
   "end": 7289,
   "type": "Code"
  },
  {
   "start": 7290,
   "end": 8191,
   "type": "Byte"
  },
  {
   "start": 40960,
   "end": 44079,
   "type": "Byte"
  },
  {
   "start": 44080,
   "end": 44082,
   "type": "Code"
  },
  {
   "start": 44083,
   "end": 44094,
   "type": "Byte"
  },
  {
   "start": 44095,
   "end": 44160,
   "type": "Code"
  },
  {
   "start": 44161,
   "end": 44290,
   "type": "Byte"
  },
  {
   "start": 44291,
   "end": 44534,
   "type": "Code"
  },
  {
   "start": 44535,
   "end": 44606,
   "type": "Byte"
  },
  {
   "start": 44607,
   "end": 45181,
   "type": "Code"
  },
  {
   "start": 45182,
   "end": 45247,
   "type": "Byte"
  },
  {
   "start": 45248,
   "end": 45465,
   "type": "Code"
  },
  {
   "start": 45466,
   "end": 45485,
   "type": "Byte"
  },
  {
   "start": 45486,
   "end": 45628,
   "type": "Code"
  },
  {
   "start": 45629,
   "end": 45663,
   "type": "Byte"
  },
  {
   "start": 45664,
   "end": 45794,
   "type": "Code"
  },
  {
   "start": 45795,
   "end": 45803,
   "type": "Byte"
  },
  {
   "start": 45804,
   "end": 45829,
   "type": "Code"
  },
  {
   "start": 45830,
   "end": 45838,
   "type": "Byte"
  },
  {
   "start": 45839,
   "end": 46070,
   "type": "Code"
  },
  {
   "start": 46071,
   "end": 46079,
   "type": "Byte"
  },
  {
   "start": 46080,
   "end": 46573,
   "type": "Code"
  },
  {
   "start": 46574,
   "end": 46591,
   "type": "Byte"
  },
  {
   "start": 46592,
   "end": 46594,
   "type": "Code"
  },
  {
   "start": 46595,
   "end": 46722,
   "type": "Byte"
  },
  {
   "start": 46723,
   "end": 46745,
   "type": "Code"
  },
  {
   "start": 46746,
   "end": 46847,
   "type": "Byte"
  },
  {
   "start": 46848,
   "end": 47907,
   "type": "Code"
  },
  {
   "start": 47908,
   "end": 47920,
   "type": "Byte"
  },
  {
   "start": 47921,
   "end": 47988,
   "type": "Code"
  },
  {
   "start": 47989,
   "end": 48127,
   "type": "Byte"
  },
  {
   "start": 48128,
   "end": 48133,
   "type": "Code"
  },
  {
   "start": 48134,
   "end": 48201,
   "type": "Byte"
  },
  {
   "start": 48202,
   "end": 48394,
   "type": "Code"
  },
  {
   "start": 48395,
   "end": 49145,
   "type": "Byte"
  },
  {
   "start": 49146,
   "end": 49148,
   "type": "Code"
  },
  {
   "start": 49149,
   "end": 49151,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 4096,
   "name": "stage_tunes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4099,
   "name": "s_1003",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4102,
   "name": "s_1006",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4105,
   "name": "s_1009",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4108,
   "name": "s_100C",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4111,
   "name": "j_100F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4114,
   "name": "s_1012",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4117,
   "name": "s_1015",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4124,
   "name": "r_101C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4125,
   "name": "j_101D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4132,
   "name": "j_1024",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4139,
   "name": "j_102B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4146,
   "name": "j_1032",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4153,
   "name": "j_1039",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4160,
   "name": "tune_climb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4235,
   "name": "tune_death",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4287,
   "name": "tune_beaten",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4324,
   "name": "tune_akuma",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4340,
   "name": "tune_arm",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4373,
   "name": "b_1115",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4397,
   "name": "j_112D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4404,
   "name": "b_1134",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4448,
   "name": "b_1160",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4464,
   "name": "b_1170",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4478,
   "name": "b_117E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4499,
   "name": "b_1193",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4518,
   "name": "s_11A6",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4542,
   "name": "b_11BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4545,
   "name": "s_11C1",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 4608,
   "name": "room_piece_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4808,
   "name": "room_piece_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5310,
   "name": "room_piece_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5424,
   "name": "mariko_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5512,
   "name": "mariko_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5649,
   "name": "mariko_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5786,
   "name": "mariko_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5836,
   "name": "mariko_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5982,
   "name": "mariko_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6099,
   "name": "mariko_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6185,
   "name": "mariko_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6247,
   "name": "mariko_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6335,
   "name": "room_piece_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6352,
   "name": "room_piece_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6400,
   "name": "clear_page",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6403,
   "name": "draw_shape",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6406,
   "name": "draw_shape_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6409,
   "name": "draw_mirrored",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6412,
   "name": "draw_mirrored_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6415,
   "name": "j_190F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6423,
   "name": "b_1917",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6425,
   "name": "b_1919",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6439,
   "name": "clip_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6476,
   "name": "b_194C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6498,
   "name": "b_1962",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6501,
   "name": "b_1965",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6518,
   "name": "b_1976",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6522,
   "name": "b_197A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6527,
   "name": "b_197F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6532,
   "name": "j_1984",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6565,
   "name": "b_19A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6580,
   "name": "b_19B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6602,
   "name": "b_19CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6608,
   "name": "b_19D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6617,
   "name": "b_19D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6630,
   "name": "a_19E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6631,
   "name": "a_19E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6648,
   "name": "b_19F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6661,
   "name": "b_1A05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6665,
   "name": "j_1A09",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6667,
   "name": "b_1A0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6681,
   "name": "b_1A19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6691,
   "name": "b_1A23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6703,
   "name": "j_1A2F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6708,
   "name": "left_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6715,
   "name": "right_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6722,
   "name": "j_1A42",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6731,
   "name": "j_1A4B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6753,
   "name": "shape_header",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6787,
   "name": "r_1A83",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6788,
   "name": "shift_dots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6821,
   "name": "b_1AA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6826,
   "name": "b_1AAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6841,
   "name": "b_1AB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6856,
   "name": "b_1AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6870,
   "name": "b_1AD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6881,
   "name": "b_1AE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6891,
   "name": "restore_shape",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6900,
   "name": "draw_reversed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6917,
   "name": "b_1B05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6919,
   "name": "b_1B07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6960,
   "name": "b_1B30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6995,
   "name": "b_1B53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6998,
   "name": "b_1B56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7015,
   "name": "b_1B67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7019,
   "name": "b_1B6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7024,
   "name": "b_1B70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7029,
   "name": "j_1B75",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7068,
   "name": "b_1B9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7079,
   "name": "b_1BA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7115,
   "name": "b_1BCB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7130,
   "name": "j_1BDA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7154,
   "name": "a_1BF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7155,
   "name": "a_1BF3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7169,
   "name": "b_1C01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7194,
   "name": "b_1C1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7204,
   "name": "j_1C24",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7206,
   "name": "b_1C26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7220,
   "name": "b_1C34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7230,
   "name": "b_1C3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7248,
   "name": "j_1C50",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7259,
   "name": "j_1C5B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7268,
   "name": "j_1C64",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7364,
   "name": "mariko_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7380,
   "name": "mariko_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7424,
   "name": "mariko_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7478,
   "name": "mariko_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7514,
   "name": "mariko_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7550,
   "name": "mariko_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7586,
   "name": "mariko_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7639,
   "name": "mariko_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7680,
   "name": "fall_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7758,
   "name": "fall_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7865,
   "name": "fall_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7891,
   "name": "fall_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7945,
   "name": "title_picture",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "far_gate_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40966,
   "name": "far_gate_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41016,
   "name": "far_gate_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41128,
   "name": "far_gate_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41286,
   "name": "far_gate_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41396,
   "name": "far_gate_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41538,
   "name": "far_gate_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41588,
   "name": "far_gate_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41622,
   "name": "far_gate_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41636,
   "name": "far_gate_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41648,
   "name": "far_gate_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41656,
   "name": "far_gate_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41694,
   "name": "far_gate_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41742,
   "name": "far_gate_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41763,
   "name": "far_gate_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41805,
   "name": "far_gate_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41884,
   "name": "far_gate_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41925,
   "name": "climb_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41961,
   "name": "climb_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41995,
   "name": "climb_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42021,
   "name": "climb_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42074,
   "name": "climb_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42148,
   "name": "climb_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42194,
   "name": "climb_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42226,
   "name": "climb_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42312,
   "name": "climb_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42354,
   "name": "climb_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42444,
   "name": "climb_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42460,
   "name": "climb_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42628,
   "name": "gate_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42634,
   "name": "gate_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42662,
   "name": "gate_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42688,
   "name": "gate_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42708,
   "name": "gate_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42735,
   "name": "gate_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42755,
   "name": "gate_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42759,
   "name": "gate_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42851,
   "name": "gate_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42961,
   "name": "gate_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43051,
   "name": "gate_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43095,
   "name": "gate_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43103,
   "name": "gate_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43109,
   "name": "gate_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43127,
   "name": "gate_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43131,
   "name": "gate_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43336,
   "name": "fuji_peak",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43382,
   "name": "fuji_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43448,
   "name": "fuji_slopes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43490,
   "name": "fuji_foot",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43537,
   "name": "rail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43555,
   "name": "post",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43569,
   "name": "post_patch",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43645,
   "name": "edge_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43850,
   "name": "edge_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43900,
   "name": "edge_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43918,
   "name": "edge_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43924,
   "name": "edge_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44051,
   "name": "fall_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44055,
   "name": "fall_col",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44058,
   "name": "gate_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44059,
   "name": "fall_row",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44080,
   "name": "fall_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44095,
   "name": "fall_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44111,
   "name": "b_AC4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44113,
   "name": "r_AC51",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44114,
   "name": "fall_picture",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44154,
   "name": "b_AC7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44291,
   "name": "scenery_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44294,
   "name": "s_AD06",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44297,
   "name": "s_AD09",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44300,
   "name": "s_AD0C",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44303,
   "name": "s_AD0F",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44306,
   "name": "s_AD12",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44309,
   "name": "s_AD15",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44312,
   "name": "s_AD18",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44319,
   "name": "b_AD1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44335,
   "name": "r_AD2F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44336,
   "name": "j_AD30",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44374,
   "name": "j_AD56",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44391,
   "name": "b_AD67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44405,
   "name": "j_AD75",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44422,
   "name": "b_AD86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44430,
   "name": "j_AD8E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44449,
   "name": "b_ADA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44461,
   "name": "b_ADAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44475,
   "name": "b_ADBB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44478,
   "name": "j_ADBE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44496,
   "name": "r_ADD0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44497,
   "name": "s_ADD1",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44535,
   "name": "gate_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44553,
   "name": "gate_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44571,
   "name": "gate_col",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44589,
   "name": "gate_row",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44607,
   "name": "gate_piece",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44639,
   "name": "b_AE5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44645,
   "name": "j_AE65",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44656,
   "name": "b_AE70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44665,
   "name": "r_AE79",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44666,
   "name": "gate_draw",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44696,
   "name": "b_AE98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44706,
   "name": "b_AEA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44722,
   "name": "b_AEB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44753,
   "name": "b_AED1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44792,
   "name": "b_AEF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44815,
   "name": "b_AF0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44820,
   "name": "b_AF14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44858,
   "name": "b_AF3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44876,
   "name": "r_AF4C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44877,
   "name": "gate_front",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44895,
   "name": "b_AF5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44904,
   "name": "b_AF68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44918,
   "name": "gate_erase",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44934,
   "name": "b_AF86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44989,
   "name": "j_AFBD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45044,
   "name": "r_AFF4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45045,
   "name": "b_AFF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45052,
   "name": "b_AFFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45077,
   "name": "draw_background",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45161,
   "name": "rail_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45248,
   "name": "edge_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45251,
   "name": "s_B0C3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 45254,
   "name": "edge_draw",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45292,
   "name": "r_B0EC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45293,
   "name": "b_B0ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45327,
   "name": "b_B10F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45391,
   "name": "b_B14F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45417,
   "name": "b_B169",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45441,
   "name": "b_B181",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45466,
   "name": "edge_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45471,
   "name": "edge_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45476,
   "name": "edge_col",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45481,
   "name": "edge_row",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45486,
   "name": "edge_piece",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45509,
   "name": "r_B1C5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45510,
   "name": "edge_erase",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45530,
   "name": "b_B1DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45543,
   "name": "b_B1E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45571,
   "name": "b_B203",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45582,
   "name": "b_B20E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45589,
   "name": "b_B215",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45664,
   "name": "scroll",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45687,
   "name": "b_B277",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45696,
   "name": "b_B280",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45705,
   "name": "b_B289",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45715,
   "name": "b_B293",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45723,
   "name": "b_B29B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45734,
   "name": "b_B2A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45737,
   "name": "b_B2A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45742,
   "name": "b_B2AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45751,
   "name": "b_B2B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45760,
   "name": "b_B2C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45768,
   "name": "b_B2C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45775,
   "name": "b_B2CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45804,
   "name": "j_B2EC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45839,
   "name": "j_B30F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45859,
   "name": "b_B323",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45877,
   "name": "b_B335",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45882,
   "name": "b_B33A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45898,
   "name": "b_B34A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45906,
   "name": "b_B352",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45930,
   "name": "b_B36A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45952,
   "name": "r_B380",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45953,
   "name": "j_B381",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45971,
   "name": "b_B393",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45976,
   "name": "b_B398",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45990,
   "name": "b_B3A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46014,
   "name": "b_B3BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46016,
   "name": "j_B3C0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46033,
   "name": "b_B3D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46046,
   "name": "r_B3DE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46047,
   "name": "s_B3DF",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46080,
   "name": "cut_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46083,
   "name": "s_B403",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46086,
   "name": "s_B406",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46089,
   "name": "s_B409",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46092,
   "name": "cut_gate",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46123,
   "name": "b_B42B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46149,
   "name": "b_B445",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46224,
   "name": "b_B490",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46226,
   "name": "b_B492",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46253,
   "name": "j_B4AD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46267,
   "name": "cut_run",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46311,
   "name": "b_B4E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46320,
   "name": "b_B4F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46385,
   "name": "b_B531",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46424,
   "name": "j_B558",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46433,
   "name": "r_B561",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46434,
   "name": "s_B562",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46441,
   "name": "s_B569",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46451,
   "name": "b_B573",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46471,
   "name": "b_B587",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46474,
   "name": "s_B58A",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46499,
   "name": "s_B5A3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46522,
   "name": "keep_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46568,
   "name": "r_B5E8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46569,
   "name": "s_B5E9",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46592,
   "name": "climb_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46595,
   "name": "climb_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46627,
   "name": "climb_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46659,
   "name": "climb_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46691,
   "name": "climb_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46723,
   "name": "climb_picture",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46848,
   "name": "cliff_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46947,
   "name": "s_B763",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47019,
   "name": "b_B7AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47041,
   "name": "j_B7C1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47050,
   "name": "cliff_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47063,
   "name": "b_B7D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47096,
   "name": "b_B7F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47128,
   "name": "j_B818",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47134,
   "name": "b_B81E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47154,
   "name": "b_B832",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47165,
   "name": "b_B83D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47185,
   "name": "b_B851",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47217,
   "name": "b_B871",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47220,
   "name": "j_B874",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47272,
   "name": "b_B8A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47283,
   "name": "b_B8B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47289,
   "name": "b_B8B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47307,
   "name": "b_B8CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47353,
   "name": "b_B8F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47357,
   "name": "b_B8FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47359,
   "name": "b_B8FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47384,
   "name": "b_B918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47400,
   "name": "b_B928",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47445,
   "name": "b_B955",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47461,
   "name": "b_B965",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47464,
   "name": "b_B968",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47475,
   "name": "b_B973",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47500,
   "name": "b_B98C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47516,
   "name": "b_B99C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47519,
   "name": "b_B99F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47525,
   "name": "j_B9A5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47532,
   "name": "b_B9AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47596,
   "name": "b_B9EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47613,
   "name": "b_B9FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47627,
   "name": "b_BA0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47635,
   "name": "b_BA13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47638,
   "name": "b_BA16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47656,
   "name": "b_BA28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47671,
   "name": "b_BA37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47677,
   "name": "j_BA3D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47687,
   "name": "b_BA47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47701,
   "name": "b_BA55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47709,
   "name": "b_BA5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47718,
   "name": "b_BA66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47732,
   "name": "b_BA74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47761,
   "name": "hero_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47792,
   "name": "b_BAB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47805,
   "name": "b_BABD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47817,
   "name": "b_BAC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47841,
   "name": "b_BAE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47845,
   "name": "b_BAE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47857,
   "name": "b_BAF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47860,
   "name": "j_BAF4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47874,
   "name": "b_BB02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47898,
   "name": "b_BB1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47901,
   "name": "s_BB1D",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47921,
   "name": "climb_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47937,
   "name": "opp_arrows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47954,
   "name": "hero_arrows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47971,
   "name": "guard_chances",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47989,
   "name": "chance_kick",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47995,
   "name": "chance_punch",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48001,
   "name": "chance_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48128,
   "name": "far_gate_vectors",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48131,
   "name": "s_BC03",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 48134,
   "name": "far_gate_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48151,
   "name": "far_gate_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48168,
   "name": "far_gate_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48185,
   "name": "far_gate_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48202,
   "name": "far_gate_piece",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48228,
   "name": "r_BC64",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48229,
   "name": "far_gate_draw",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48251,
   "name": "b_BC7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48261,
   "name": "b_BC85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48263,
   "name": "b_BC87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48294,
   "name": "b_BCA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48298,
   "name": "b_BCAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48315,
   "name": "b_BCBB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48320,
   "name": "b_BCC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48353,
   "name": "far_gate_front",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48376,
   "name": "b_BCF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48394,
   "name": "r_BD0A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48416,
   "name": "unused_hat_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48448,
   "name": "unused_hat_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48480,
   "name": "unused_hat_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48512,
   "name": "unused_hat_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48544,
   "name": "unused_hat_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48592,
   "name": "unused_hat_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48640,
   "name": "hat1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48672,
   "name": "hat1_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48707,
   "name": "hat1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48736,
   "name": "hat2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48768,
   "name": "hat2_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48803,
   "name": "hat2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48832,
   "name": "hat3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48864,
   "name": "hat3_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48899,
   "name": "hat3_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48928,
   "name": "hat4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48960,
   "name": "hat4_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48995,
   "name": "hat4_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49024,
   "name": "hat5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49056,
   "name": "hat5_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49091,
   "name": "hat5_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49121,
   "name": "brain_t1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49126,
   "name": "brain_t2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49131,
   "name": "brain_t3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49138,
   "name": "brain_t4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49146,
   "name": "cliff_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49149,
   "name": "stage_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49150,
   "name": "stage_check1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49151,
   "name": "stage_check2",
   "type": "AbsoluteAddress",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 4096,
   "type": "line",
   "text": "The stage's tunes, five JMPs the engine and the stage call: $1000 the four notes as Akuma's chamber is shown ($79C6), $1003 the hero's death, $1006 a guard beaten (asked for by $88 and played at the end of the frame), $1009 the tune after the climb onto the cliff, $100C Akuma raising his arm ($7A10). Each points ($F7) at its tune."
  },
  {
   "address": 4099,
   "type": "line",
   "text": "JMP: the hero's death tune ($108B)."
  },
  {
   "address": 4102,
   "type": "line",
   "text": "JMP: the tune of a guard beaten ($10BF)."
  },
  {
   "address": 4105,
   "type": "line",
   "text": "JMP: the tune after the climb ($1040)."
  },
  {
   "address": 4108,
   "type": "line",
   "text": "JMP: the tune of Akuma raising his arm ($10F4)."
  },
  {
   "address": 4111,
   "type": "line",
   "text": "Play the tune at A (low) and X (high) with the engine's player ($0D00), unless the music or the sound is off ($4F AND $86)."
  },
  {
   "address": 4114,
   "type": "line",
   "text": "The middle of $100F. The engine calls $1012 only in the title stage, which keeps a tune's entry there ($0237)."
  },
  {
   "address": 4117,
   "type": "line",
   "text": "The middle of $100F. The engine calls $1015 only in the title stage's cutscene ($7BBC)."
  },
  {
   "address": 4160,
   "type": "line",
   "text": "The tune after the climb ($1009): tempo 5, the second voice on the speaker, 23 notes of three bytes (a length and the pitch as a coarse and a fine count), $FF at the end."
  },
  {
   "address": 4235,
   "type": "line",
   "text": "The hero's death ($1003): tempo 6, 16 notes."
  },
  {
   "address": 4287,
   "type": "line",
   "text": "A guard beaten ($1006): tempo 5, 11 notes."
  },
  {
   "address": 4324,
   "type": "line",
   "text": "Akuma's chamber ($1000): tempo 7, four notes."
  },
  {
   "address": 4340,
   "type": "line",
   "text": "Akuma raising his arm ($100C): tempo 4, seven notes."
  },
  {
   "address": 4365,
   "type": "line",
   "text": "Twelve bytes after the last tune in the same form, the end of a tune nothing points at."
  },
  {
   "address": 4377,
   "type": "line",
   "text": "Two bytes, $00 $B7, the end of a JMP $B700 whose first byte the tunes have covered."
  },
  {
   "address": 4379,
   "type": "line",
   "text": "An earlier version of the engine's entry points ($0200-$02CA), left in the stage: load stage $D0 ($0300), check $BFFF against $D0 EOR $49 and enter the stage at $B700; a call into the Monitor's MOVE ($FE2C); a wait for a key or a button; and THE END ($11A6), the picture at $9A74 drawn on both pages. It begins at $1115, under the tunes, and nothing calls it."
  },
  {
   "address": 4518,
   "type": "line",
   "text": "Clear the draw page, draw THE END ($11C1) and flip, twice, so that both pages show it."
  },
  {
   "address": 4545,
   "type": "line",
   "text": "Draw the picture at $9A74 at column $0F, row $5A, in store mode."
  },
  {
   "address": 4568,
   "type": "line",
   "text": "Set the column and row for the picture and fill ($0A18): reached from nowhere."
  },
  {
   "address": 4583,
   "type": "line",
   "text": "25 bytes in the form of picture rows that nothing points at."
  },
  {
   "address": 4608,
   "type": "line",
   "text": "The engine's room scenery piece 6 ($7815): with pieces 6-9 the engine draws the wall of Mariko's cell ($7929), with piece 10 its doorway ($796A); the same bytes in every stage. 9 rows of 22 bytes."
  },
  {
   "address": 4808,
   "type": "line",
   "text": "The engine's room scenery piece 7 ($7815): with pieces 6-9 the engine draws the wall of Mariko's cell ($7929), with piece 10 its doorway ($796A); the same bytes in every stage. 50 rows of 10 bytes."
  },
  {
   "address": 5310,
   "type": "line",
   "text": "The engine's room scenery piece 8 ($7815): with pieces 6-9 the engine draws the wall of Mariko's cell ($7929), with piece 10 its doorway ($796A); the same bytes in every stage. 5 rows of 20 bytes."
  },
  {
   "address": 5412,
   "type": "line",
   "text": "12 bytes of $80 after room_piece_8, black dots that no table or instruction points at."
  },
  {
   "address": 5424,
   "type": "line",
   "text": "Mariko's part or pose 8 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. The same picture serves as mariko_9, mariko_26. 43 rows of 2 bytes."
  },
  {
   "address": 5512,
   "type": "line",
   "text": "Mariko's part or pose 10 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 43 rows of 3 bytes."
  },
  {
   "address": 5643,
   "type": "line",
   "text": "6 bytes after mariko_10 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 5649,
   "type": "line",
   "text": "Mariko's part or pose 11 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 43 rows of 3 bytes."
  },
  {
   "address": 5780,
   "type": "line",
   "text": "6 bytes after mariko_11 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 5786,
   "type": "line",
   "text": "Mariko's part or pose 12 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. The same picture serves as mariko_13, mariko_14. 16 rows of 3 bytes."
  },
  {
   "address": 5836,
   "type": "line",
   "text": "Mariko's part or pose 15 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 36 rows of 4 bytes."
  },
  {
   "address": 5982,
   "type": "line",
   "text": "Mariko's part or pose 16 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 23 rows of 5 bytes."
  },
  {
   "address": 6099,
   "type": "line",
   "text": "Mariko's part or pose 17 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 14 rows of 6 bytes."
  },
  {
   "address": 6185,
   "type": "line",
   "text": "Mariko's part or pose 18 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 10 rows of 6 bytes."
  },
  {
   "address": 6247,
   "type": "line",
   "text": "Mariko's part or pose 19 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 43 rows of 2 bytes."
  },
  {
   "address": 6335,
   "type": "line",
   "text": "The engine's room scenery piece 9 ($7815): with pieces 6-9 the engine draws the wall of Mariko's cell ($7929), with piece 10 its doorway ($796A); the same bytes in every stage. 5 rows of 3 bytes."
  },
  {
   "address": 6352,
   "type": "line",
   "text": "The engine's room scenery piece 10 ($7815): with pieces 6-9 the engine draws the wall of Mariko's cell ($7929), with piece 10 its doorway ($796A); the same bytes in every stage. 3 rows of 2 bytes."
  },
  {
   "address": 6360,
   "type": "line",
   "text": "40 bytes after room_piece_10 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 6400,
   "type": "line",
   "text": "Five entry points: $1900 clears the draw page, $1903 draws a shape, $1906 draws it with its right edge at the column, $1909 draws it mirrored, $190C mirrored with its right edge at the column."
  },
  {
   "address": 6403,
   "type": "line",
   "text": "JMP: draw the shape at ($03) on the draw page, at byte column $05, row $06, dot offset $10, in mode $0F ($1A42)."
  },
  {
   "address": 6406,
   "type": "line",
   "text": "JMP: the same with the shape's right edge at column $05 ($1A4B)."
  },
  {
   "address": 6409,
   "type": "line",
   "text": "JMP: draw the shape mirrored, facing the other way ($1C5B)."
  },
  {
   "address": 6412,
   "type": "line",
   "text": "JMP: mirrored, with its right edge at column $05 ($1C64)."
  },
  {
   "address": 6415,
   "type": "line",
   "text": "Clear the draw page: fill the 32 pages from $07 ($20 or $40) with $80, black."
  },
  {
   "address": 6439,
   "type": "line",
   "text": "Clip a shape to the screen's 40 byte columns: $15 keeps its width, $14 is the first column drawn, $16 the bytes cut off at the left, and $0E becomes the bytes drawn on each row. A negative column, the shape starting left of the screen, cuts it at the left edge, a shape that would run past column 39 is cut at the right, and one wholly off the screen is not drawn ($1A2F). Then the mode ($0F) is written into the instruction at $19E6: ORA ($00),Y for 0, AND ($00),Y for a negative mode, two NOPs for a positive one, so that the STA after it ORs, masks or stores."
  },
  {
   "address": 6506,
   "type": "line",
   "text": "The same LDA $0F twice."
  },
  {
   "address": 6532,
   "type": "line",
   "text": "Draw the rows: for each of the $0D rows, the row's address on the draw page from the row tables ($0800, $08C0 plus $07) and $14. When bytes were cut at the left, the last one cut is read only for the dots it carries into the first byte drawn. The first byte keeps the screen's dots to the left of the shape ($1A34), each byte is the shape's dots shifted by $10 ($1A84) with the dots carried from the byte before, and the dots carried out of the last byte go into the next screen byte ($19F8) unless it is past column 39."
  },
  {
   "address": 6630,
   "type": "line",
   "text": "The instruction the mode writes: ORA ($00),Y, AND ($00),Y, or two NOPs, before the STA ($00),Y that follows."
  },
  {
   "address": 6631,
   "type": "line",
   "text": "The second byte of the instruction at $19E6: $00 for ORA and AND ($00),Y, or a NOP in store mode."
  },
  {
   "address": 6648,
   "type": "line",
   "text": "The dots carried past the shape's last byte: ORed onto the screen in mode 0; in store mode the screen keeps its own dots to the right of them ($1A3B); in AND mode the mask's carried dots are set to the right ($1A3B) and ANDed."
  },
  {
   "address": 6703,
   "type": "line",
   "text": "Done: X and Y back from $18 and $17."
  },
  {
   "address": 6708,
   "type": "line",
   "text": "For a dot offset of 0-6, the screen's dots kept to the left of a shape's first dot, with bit 7 set: none, then one to six."
  },
  {
   "address": 6715,
   "type": "line",
   "text": "For a dot offset of 0-6, the screen's dots kept to the right of the dots carried out of a shape's last byte."
  },
  {
   "address": 6722,
   "type": "line",
   "text": "Draw a shape: read its header ($1A61), clip it and draw it ($1927), and put the pointer back ($1AEB)."
  },
  {
   "address": 6731,
   "type": "line",
   "text": "Draw a shape with its right edge at column $05: the column less the width, plus one, for the drawing, then $05 back."
  },
  {
   "address": 6753,
   "type": "line",
   "text": "Read a shape's header: keep its pointer in $1B/$1C, X in $18 and Y in $17, its height in rows in $0D and its width in bytes in $0E, and move ($03) on to the first row."
  },
  {
   "address": 6788,
   "type": "line",
   "text": "Shift the seven dots of the shape byte in A right by $10 dots (0-6): returns the dots that stay in this byte, moved along, and puts in $1A the dots pushed out into the next byte. A dot moves right on the screen as it moves up a bit, since bit 0 is the leftmost dot."
  },
  {
   "address": 6891,
   "type": "line",
   "text": "Put the shape pointer back from $1B/$1C."
  },
  {
   "address": 6900,
   "type": "line",
   "text": "Draw a shape mirrored. The dot offset becomes 7 less $10 (or, at 0, the column one less), so that the mirrored shape ends where the shape would have started. The shape is clipped as $1927 does, $1D saying which side was cut (1 the left, $FF the right), and each row is read from its last byte back to its first, every byte through the reversal table at $0980 (read as $0900 + X with bit 7 set) so that its dots come out in reverse order. The mode works as for $1903, through the instruction at $1BF2. $05 and $10 come back at the end ($1C50)."
  },
  {
   "address": 7154,
   "type": "line",
   "text": "The instruction the mode writes for the mirrored drawing, as at $19E6."
  },
  {
   "address": 7155,
   "type": "line",
   "text": "The second byte of the instruction at $1BF2, written as at $19E7."
  },
  {
   "address": 7248,
   "type": "line",
   "text": "Done: X and Y back, and the dot offset and the column restored."
  },
  {
   "address": 7259,
   "type": "line",
   "text": "Draw a shape mirrored: the header, the drawing ($1AF4), the pointer back."
  },
  {
   "address": 7268,
   "type": "line",
   "text": "Draw a shape mirrored with its right edge at column $05."
  },
  {
   "address": 7290,
   "type": "line",
   "text": "74 bytes ($1C7A-$1CC3) that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 7364,
   "type": "line",
   "text": "Mariko's part or pose 7 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 2 rows of 7 bytes."
  },
  {
   "address": 7380,
   "type": "line",
   "text": "Mariko's part or pose 6 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 21 rows of 2 bytes."
  },
  {
   "address": 7424,
   "type": "line",
   "text": "Mariko's part or pose 5 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 26 rows of 2 bytes."
  },
  {
   "address": 7478,
   "type": "line",
   "text": "Mariko's part or pose 1 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 17 rows of 2 bytes."
  },
  {
   "address": 7514,
   "type": "line",
   "text": "Mariko's part or pose 2 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 17 rows of 2 bytes."
  },
  {
   "address": 7550,
   "type": "line",
   "text": "Mariko's part or pose 3 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 17 rows of 2 bytes."
  },
  {
   "address": 7586,
   "type": "line",
   "text": "Mariko's part or pose 4 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 17 rows of 3 bytes."
  },
  {
   "address": 7639,
   "type": "line",
   "text": "Mariko's part or pose 0 for the engine's tables ($7E3F); the same bytes as the title stage's, though the cliff never draws her. 17 rows of 2 bytes."
  },
  {
   "address": 7675,
   "type": "line",
   "text": "5 zeros after mariko_0."
  },
  {
   "address": 7680,
   "type": "line",
   "text": "The hero falling from the cliff, picture 0 of 0-3 ($AC52). 19 rows of 4 bytes."
  },
  {
   "address": 7758,
   "type": "line",
   "text": "The hero falling from the cliff, picture 1. 15 rows of 7 bytes."
  },
  {
   "address": 7865,
   "type": "line",
   "text": "The hero falling from the cliff, picture 2. 12 rows of 2 bytes."
  },
  {
   "address": 7891,
   "type": "line",
   "text": "The hero falling from the cliff, picture 3. 13 rows of 4 bytes."
  },
  {
   "address": 7945,
   "type": "line",
   "text": "A picture that the title stage draws from the same bytes at the same address ($B8F7 there); nothing in the cliff points at it. 9 rows of 24 bytes."
  },
  {
   "address": 8163,
   "type": "line",
   "text": "29 bytes after title_picture that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "Piece 0 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 2 rows of 2 bytes."
  },
  {
   "address": 40966,
   "type": "line",
   "text": "Piece 1 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 12 rows of 3 bytes."
  },
  {
   "address": 41004,
   "type": "line",
   "text": "12 bytes after far_gate_1 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41016,
   "type": "line",
   "text": "Piece 2 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 11 rows of 8 bytes."
  },
  {
   "address": 41106,
   "type": "line",
   "text": "22 bytes after far_gate_2 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41128,
   "type": "line",
   "text": "Piece 3 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 12 rows of 13 bytes."
  },
  {
   "address": 41286,
   "type": "line",
   "text": "Piece 4 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 9 rows of 11 bytes."
  },
  {
   "address": 41387,
   "type": "line",
   "text": "9 bytes after far_gate_4 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41396,
   "type": "line",
   "text": "Piece 5 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 14 rows of 9 bytes."
  },
  {
   "address": 41524,
   "type": "line",
   "text": "14 bytes after far_gate_5 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41538,
   "type": "line",
   "text": "Piece 6 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 8 rows of 5 bytes."
  },
  {
   "address": 41580,
   "type": "line",
   "text": "8 bytes after far_gate_6 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41588,
   "type": "line",
   "text": "Piece 7 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 8 rows of 3 bytes."
  },
  {
   "address": 41614,
   "type": "line",
   "text": "8 bytes after far_gate_7 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41622,
   "type": "line",
   "text": "Piece 8 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 12 rows of 1 byte."
  },
  {
   "address": 41636,
   "type": "line",
   "text": "Piece 9 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 5 rows of 2 bytes."
  },
  {
   "address": 41648,
   "type": "line",
   "text": "Piece 10 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 2 rows of 3 bytes."
  },
  {
   "address": 41656,
   "type": "line",
   "text": "Piece 11 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 6 rows of 4 bytes."
  },
  {
   "address": 41682,
   "type": "line",
   "text": "12 bytes after far_gate_11 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41694,
   "type": "line",
   "text": "Piece 12 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 23 rows of 2 bytes."
  },
  {
   "address": 41742,
   "type": "line",
   "text": "Piece 13 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 19 rows of 1 byte."
  },
  {
   "address": 41763,
   "type": "line",
   "text": "Piece 14 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 8 rows of 4 bytes."
  },
  {
   "address": 41797,
   "type": "line",
   "text": "8 bytes after far_gate_14 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41805,
   "type": "line",
   "text": "Piece 15 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 11 rows of 6 bytes."
  },
  {
   "address": 41873,
   "type": "line",
   "text": "11 bytes after far_gate_15 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 41884,
   "type": "line",
   "text": "Piece 16 of the gate the guards come out of, as drawn in the cut to it ($BC4A). 13 rows of 3 bytes."
  },
  {
   "address": 41925,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 12 of $0C-$17 ($B600). 17 rows of 2 bytes."
  },
  {
   "address": 41961,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 13 of $0C-$17 ($B600). 8 rows of 4 bytes."
  },
  {
   "address": 41995,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 14 of $0C-$17 ($B600). 8 rows of 3 bytes."
  },
  {
   "address": 42021,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 15 of $0C-$17 ($B600). 17 rows of 3 bytes."
  },
  {
   "address": 42074,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 16 of $0C-$17 ($B600). 24 rows of 3 bytes."
  },
  {
   "address": 42148,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 17 of $0C-$17 ($B600). 22 rows of 2 bytes."
  },
  {
   "address": 42194,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 18 of $0C-$17 ($B600). 6 rows of 5 bytes."
  },
  {
   "address": 42226,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 19 of $0C-$17 ($B600). 21 rows of 4 bytes."
  },
  {
   "address": 42312,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 20 of $0C-$17 ($B600). 10 rows of 4 bytes."
  },
  {
   "address": 42354,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 21 of $0C-$17 ($B600). 22 rows of 4 bytes."
  },
  {
   "address": 42444,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 22 of $0C-$17 ($B600). 7 rows of 2 bytes."
  },
  {
   "address": 42460,
   "type": "line",
   "text": "The hero climbing onto the cliff, picture 23 of $0C-$17 ($B600). 36 rows of 3 bytes."
  },
  {
   "address": 42570,
   "type": "line",
   "text": "58 bytes after climb_23 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 42628,
   "type": "line",
   "text": "Piece 0 of the gate on the cliff ($AE3F). 2 rows of 2 bytes."
  },
  {
   "address": 42634,
   "type": "line",
   "text": "Piece 1 of the gate on the cliff ($AE3F). 2 rows of 2 bytes."
  },
  {
   "address": 42640,
   "type": "line",
   "text": "22 bytes after gate_1 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 42662,
   "type": "line",
   "text": "Piece 3 of the gate on the cliff ($AE3F). 6 rows of 4 bytes."
  },
  {
   "address": 42688,
   "type": "line",
   "text": "Piece 4 of the gate on the cliff ($AE3F). 6 rows of 3 bytes."
  },
  {
   "address": 42708,
   "type": "line",
   "text": "Piece 5 of the gate on the cliff ($AE3F). 5 rows of 5 bytes."
  },
  {
   "address": 42735,
   "type": "line",
   "text": "Piece 6 of the gate on the cliff ($AE3F). 18 rows of 1 byte."
  },
  {
   "address": 42755,
   "type": "line",
   "text": "Piece 7 of the gate on the cliff ($AE3F). 2 rows of 1 byte."
  },
  {
   "address": 42759,
   "type": "line",
   "text": "Piece 8 of the gate on the cliff ($AE3F). 18 rows of 5 bytes."
  },
  {
   "address": 42851,
   "type": "line",
   "text": "Piece 9 of the gate on the cliff ($AE3F). 18 rows of 6 bytes."
  },
  {
   "address": 42961,
   "type": "line",
   "text": "Piece 10 of the gate on the cliff ($AE3F). 11 rows of 8 bytes."
  },
  {
   "address": 43051,
   "type": "line",
   "text": "Piece 11 of the gate on the cliff ($AE3F). 7 rows of 6 bytes."
  },
  {
   "address": 43095,
   "type": "line",
   "text": "Piece 12 of the gate on the cliff ($AE3F). 6 rows of 1 byte."
  },
  {
   "address": 43103,
   "type": "line",
   "text": "Piece 13 of the gate on the cliff ($AE3F). 2 rows of 2 bytes."
  },
  {
   "address": 43109,
   "type": "line",
   "text": "Piece 14 of the gate on the cliff ($AE3F). 8 rows of 2 bytes."
  },
  {
   "address": 43127,
   "type": "line",
   "text": "Piece 17 of the gate on the cliff ($AE3F). 1 row of 2 bytes."
  },
  {
   "address": 43131,
   "type": "line",
   "text": "Piece 2 of the gate on the cliff ($AE3F). 6 rows of 4 bytes."
  },
  {
   "address": 43157,
   "type": "line",
   "text": "179 bytes after gate_2 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 43336,
   "type": "line",
   "text": "The top of the mountain, drawn once with the background ($AD30). 11 rows of 4 bytes."
  },
  {
   "address": 43382,
   "type": "line",
   "text": "The mountain below its peak ($AD47). 8 rows of 8 bytes."
  },
  {
   "address": 43448,
   "type": "line",
   "text": "The mountain's lower slopes, drawn again whenever the scene scrolls ($ADD1). 4 rows of 10 bytes."
  },
  {
   "address": 43490,
   "type": "line",
   "text": "The mountain's foot and the far shore ($ADE8). 3 rows of 15 bytes."
  },
  {
   "address": 43537,
   "type": "line",
   "text": "Two columns of the fence's rail ($B069). 8 rows of 2 bytes."
  },
  {
   "address": 43555,
   "type": "line",
   "text": "A post of the fence, drawn every twelve columns from $51 + 1 ($AD8E). 12 rows of 1 byte."
  },
  {
   "address": 43569,
   "type": "line",
   "text": "The sky and rail that cover a fence post where it was ($AD86). 12 rows of 1 byte."
  },
  {
   "address": 43583,
   "type": "line",
   "text": "62 bytes after post_patch that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 43645,
   "type": "line",
   "text": "Piece 0 of the cliff's edge and the sea below it ($B1AE). 29 rows of 6 bytes."
  },
  {
   "address": 43821,
   "type": "line",
   "text": "29 bytes after edge_0 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 43850,
   "type": "line",
   "text": "Piece 1 of the cliff's edge and the sea below it ($B1AE). 4 rows of 12 bytes."
  },
  {
   "address": 43900,
   "type": "line",
   "text": "Piece 2 of the cliff's edge and the sea below it ($B1AE). 8 rows of 2 bytes."
  },
  {
   "address": 43918,
   "type": "line",
   "text": "Piece 3 of the cliff's edge and the sea below it ($B1AE). 1 row of 4 bytes."
  },
  {
   "address": 43924,
   "type": "line",
   "text": "Piece 4 of the cliff's edge and the sea below it ($B1AE). 4 rows of 15 bytes."
  },
  {
   "address": 43986,
   "type": "line",
   "text": "46 bytes after edge_4 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 44051,
   "type": "line",
   "text": "The base of the falling pictures' low bytes, read only as $AC13 + X with X = $20-$23: the bytes at $AC33-$AC36 (page $1E)."
  },
  {
   "address": 44055,
   "type": "line",
   "text": "The base of their columns, read at $AC37-$AC3A."
  },
  {
   "address": 44058,
   "type": "line",
   "text": "Piece 15 of the gate on the cliff ($AE3F). 8 rows of 2 bytes."
  },
  {
   "address": 44059,
   "type": "line",
   "text": "The base of their rows, read at $AC3B-$AC3E."
  },
  {
   "address": 44076,
   "type": "line",
   "text": "Four zeros."
  },
  {
   "address": 44080,
   "type": "line",
   "text": "JMP: the hero falling from the cliff, one step ($AC3F)."
  },
  {
   "address": 44083,
   "type": "line",
   "text": "The falling pictures' tables, as $AC13 + X reads them: low bytes $00 $4E $B9 $D3 (pictures at $1E00-$1F08), columns 7, 7, 6, 4 from the scroll, rows $84, $97, $9B, $A7."
  },
  {
   "address": 44095,
   "type": "line",
   "text": "One step of the fall: $A1 counts from $1F, set when the hero stepped off the cliff's edge ($B8BD). While it is below $23, the next two pictures of the falling hero are drawn ($AC52); from $30 the hero is dead ($B7D7)."
  },
  {
   "address": 44114,
   "type": "line",
   "text": "Draw falling picture X at its column moved with the scroll ($52 - $30) and one dot left of the scene's dot offset ($50), in store mode."
  },
  {
   "address": 44161,
   "type": "line",
   "text": "Zeros between the falling hero and the background's routines, to $AD02."
  },
  {
   "address": 44291,
   "type": "line",
   "text": "Seven JMPs: $AD03 the mountain and the fence posts, $AD06 the gate, $AD09 the gate's near post, drawn after the fighters, $AD0C the background where the gate was, $AD0F the whole background, $AD12 the fence posts covered where they were, $AD15 the rail's shape set up."
  },
  {
   "address": 44294,
   "type": "line",
   "text": "JMP: the gate ($AE7A)."
  },
  {
   "address": 44297,
   "type": "line",
   "text": "JMP: the gate's near post over the figures ($AF4D)."
  },
  {
   "address": 44300,
   "type": "line",
   "text": "JMP: cover the gate where it was ($AF76)."
  },
  {
   "address": 44303,
   "type": "line",
   "text": "JMP: the whole background ($B015)."
  },
  {
   "address": 44306,
   "type": "line",
   "text": "JMP: cover the fence posts where they were ($AD75)."
  },
  {
   "address": 44309,
   "type": "line",
   "text": "JMP: set up the rail's shape ($B069)."
  },
  {
   "address": 44312,
   "type": "line",
   "text": "Draw the fence's rail along the whole width, at row $68, two columns at a time."
  },
  {
   "address": 44336,
   "type": "line",
   "text": "Draw the mountain's top: $A948 at column $12, row $51, and $A976 at column $10, row $5C."
  },
  {
   "address": 44374,
   "type": "line",
   "text": "Draw the mountain's slopes ($ADD1) and the four fence posts, unless nothing has moved since this page was last drawn: the posts' column ($51), the scene's dot offset ($50) and $54 the same as two frames before ($AC, $AE)."
  },
  {
   "address": 44405,
   "type": "line",
   "text": "Cover the fence posts where they were drawn on this page two frames before ($AC, $AE) with the sky and rail behind them ($AA31), unless nothing has moved."
  },
  {
   "address": 44430,
   "type": "line",
   "text": "Draw four fence posts twelve columns apart from column X + 1, at dot Y + 1, row $64, in store mode; a post at columns $15-$7F is drawn mirrored, and a column past the right edge comes round 48 columns to the left."
  },
  {
   "address": 44497,
   "type": "line",
   "text": "Draw the mountain's lower slopes ($A9B8 at column $0F, row $64) and its foot and the far shore ($A9E2 at column $0C, row $6C)."
  },
  {
   "address": 44535,
   "type": "line",
   "text": "The gate's 18 pieces, low bytes ($AE3F). Piece 16 points into the engine at $8000 and is not drawn."
  },
  {
   "address": 44553,
   "type": "line",
   "text": "The gate's pieces, high bytes."
  },
  {
   "address": 44571,
   "type": "line",
   "text": "Each piece's column from the gate's ($52): added while $52 is $14 or more, taken away (and the piece mirrored) below that."
  },
  {
   "address": 44589,
   "type": "line",
   "text": "Each gate piece's top row."
  },
  {
   "address": 44607,
   "type": "line",
   "text": "Draw gate piece X at its row and at the gate's column ($52) plus its own, as it is, while $52 is $14 or more; below that (or negative), at $52 less its own, mirrored and right-aligned."
  },
  {
   "address": 44645,
   "type": "line",
   "text": "Draw the piece set up, as it is or mirrored by the gate's column ($52)."
  },
  {
   "address": 44666,
   "type": "line",
   "text": "Draw the gate on the cliff while the camera is on the hero ($4C = 0) and the gate's column ($52) is below $29 or at $FE-$FF. When anything has moved since this page was drawn ($54, $52 against $E1, $50 against $AE), the whole gate: pieces 5 and 8-13, the post below piece 13 down to row $66, pieces 14 and 15, then the second half below, with $3F = 1. When nothing has moved, $3F is set by where the fighters stand against the gate, and only when it is 1 is the second half drawn again: piece 1 repeated down to row $97, pieces 2, 3, 4, 6 and 7, the post down to row $66 and piece $11. $3F also has the near post drawn over the figures ($AF4D)."
  },
  {
   "address": 44877,
   "type": "line",
   "text": "When $3F is set and the gate is in sight, draw its near post again over the figures: piece 0, then repeated down to row $AA."
  },
  {
   "address": 44918,
   "type": "line",
   "text": "Cover the gate where it was drawn on this page two frames before ($E1): with $E1 at $14-$27, from column $1C to the right edge, the sky down to the rail, the rail, the floor's colours and the black above the floor, and column $1B on rows $54-$55; with $E1 below $14 or at $FE-$FF, the same from column 0 to $0A, the rail to $0B. Nothing is done when nothing has moved."
  },
  {
   "address": 45077,
   "type": "line",
   "text": "Draw the whole background: the sky ($D5 and $AA, blue) down to row $67, the floor's four colours from row $99 to $B4, black between them and below, the rail along the whole width ($AD18) and the mountain's top ($AD30)."
  },
  {
   "address": 45161,
   "type": "line",
   "text": "Set up the rail's shape ($AA11) at row $68, dot 0, store mode."
  },
  {
   "address": 45182,
   "type": "line",
   "text": "Bytes left from an earlier build: the end of a routine and a loop that draws gate pieces through $B04A. Nothing runs them."
  },
  {
   "address": 45248,
   "type": "line",
   "text": "JMP: the cliff's edge ($B0C6); JMP: cover it where it was ($B1C6)."
  },
  {
   "address": 45251,
   "type": "line",
   "text": "JMP: cover the cliff's edge where it was ($B1C6)."
  },
  {
   "address": 45254,
   "type": "line",
   "text": "On the first screen ($44 = 0) with the scroll at $23 or more, so that the end of the cliff is in sight, draw it, unless nothing has moved and both fighters are well right of it: the sea's black and blue, the cliff's top, the rock face (edge pieces 0, 2, 3, repeated down to row $97) and the ledge below (4, in AND mode)."
  },
  {
   "address": 45466,
   "type": "line",
   "text": "The cliff edge's five pieces, low bytes ($B1AE)."
  },
  {
   "address": 45471,
   "type": "line",
   "text": "Their high bytes."
  },
  {
   "address": 45476,
   "type": "line",
   "text": "Their columns from the scroll's ($80 = $52 - $30)."
  },
  {
   "address": 45481,
   "type": "line",
   "text": "Their top rows."
  },
  {
   "address": 45486,
   "type": "line",
   "text": "Set up edge piece X: its shape, its row, its column from $80."
  },
  {
   "address": 45510,
   "type": "line",
   "text": "Cover the cliff's edge where it was drawn two frames before ($E1), on the first screen: the rail from column 0 to $0C, then black and the floor's colours over its columns."
  },
  {
   "address": 45629,
   "type": "line",
   "text": "Bytes left from an earlier build of the routine before: fills through $0A00 and $0A03, and a call to $0D00. Nothing runs them."
  },
  {
   "address": 45664,
   "type": "line",
   "text": "Move the scene with the hero, once a frame. On the first screen ($44 = 0) a hero at column $2A or more asks for the cut to Akuma ($AF = 1) when no guard is coming ($30); with a guard coming, a hero at column $21 or more takes the scene to the second screen ($B2EC). On the second screen, a hero at column $2A or more has reached the end of the stage: $D0 = 2, and the main loop loads the palace. A hero left of column 3 goes back to the first screen ($B2CF) from the second, and on the first starts the scene scrolling right. Elsewhere the scene scrolls to bring him to column $0F: from the left of it towards the right ($B381), from the right of it towards the left ($B30F). The scroll ($52) runs from $30 down to $1B on the first screen, and from $0B down on the second."
  },
  {
   "address": 45737,
   "type": "line",
   "text": "Stop the scroll: $53 = 0."
  },
  {
   "address": 45775,
   "type": "line",
   "text": "Back to the first screen: $44 = 0, the scroll at $1B, every figure moved $1A columns right ($B3DF) and the fence two columns."
  },
  {
   "address": 45795,
   "type": "line",
   "text": "Nine bytes left from an earlier build ($72 moved 10 columns left). Nothing runs them."
  },
  {
   "address": 45804,
   "type": "line",
   "text": "On to the second screen: $44 = 1, the scroll at $0B, dot 0, every figure moved $1A columns left and the fence two columns."
  },
  {
   "address": 45830,
   "type": "line",
   "text": "Nine bytes left from an earlier build ($72 moved 10 columns right). Nothing runs them."
  },
  {
   "address": 45839,
   "type": "line",
   "text": "Scroll towards the left: the speed $53 is brought two dots a frame towards -4 (in the stance), -6 (standing) or -10 (running, legs sequence $42-$49)."
  },
  {
   "address": 45882,
   "type": "line",
   "text": "Move the scene by $53 dots, at most six at a time: the dot offset $50 goes down, and each time it passes 0 every figure ($62, $72), the scroll ($52), the hawk's column ($91) and the fence ($51, coming round from -9 to 39) move a column left. Reaching $1A, everything is put back a column and the scroll stops at $1B."
  },
  {
   "address": 45898,
   "type": "line",
   "text": "Add A dots to the scene's offset."
  },
  {
   "address": 45953,
   "type": "line",
   "text": "Scroll towards the right: the speed $53 is brought two dots a frame towards +4."
  },
  {
   "address": 45976,
   "type": "line",
   "text": "Move the scene right by $53 dots, every figure and the fence a column right each time the offset passes 6; the scroll stops with dot 1 at $52 = $30, the start of the first screen, and with dot 0 at $0B, the start of the second."
  },
  {
   "address": 46047,
   "type": "line",
   "text": "Add A to every figure's column: the hero ($62), the opponent ($72) and the hawk ($91)."
  },
  {
   "address": 46071,
   "type": "line",
   "text": "An RTS left from an earlier build and eight zeros."
  },
  {
   "address": 46080,
   "type": "line",
   "text": "Four JMPs: $B400 the cut to the next guard coming out of the gate, $B403 the cut to the guard running on, $B406 the whole background while $5F counts, $B409 keep the frame's positions."
  },
  {
   "address": 46083,
   "type": "line",
   "text": "JMP: the cut to the guard running on ($B4BB)."
  },
  {
   "address": 46086,
   "type": "line",
   "text": "JMP: the whole background while $5F counts ($B558)."
  },
  {
   "address": 46089,
   "type": "line",
   "text": "JMP: keep the frame's positions ($B5BA)."
  },
  {
   "address": 46092,
   "type": "line",
   "text": "The cut to the next guard: with the dot offset kept ($31) and a cutscene counted ($36), the camera moves to the gate ahead ($4C = 1, the scroll at $1B, the fence at $17). The guard, running ($B58A), comes on from column $27 until he is at column 4 + 4 times his headgear ($3E; 5 when $57 is set, which the cliff never does), each frame drawn with the gate ahead ($BC00, $BC03). Then the camera comes back to the hero: the scroll, the fence and the dot offset as they were, and the guard's record set up again ($B5A3) with his column $2C less. Nothing happens when the camera is already ahead ($4C)."
  },
  {
   "address": 46267,
   "type": "line",
   "text": "The cut to the guard running on while he is out of sight: for $85 frames (two fewer each time, down to 5) the camera runs with him, the scene scrolling ten dots a frame behind him ($B562), and each column the scene moves brings his true column ($37) one nearer. Then the camera comes back: the dot offset as it was, and the guard at his new column, with its odd or even dots as before."
  },
  {
   "address": 46424,
   "type": "line",
   "text": "While $5F counts (from 2: both pages), draw the whole background ($AD0F)."
  },
  {
   "address": 46434,
   "type": "line",
   "text": "Scroll the scene by six dots and by four."
  },
  {
   "address": 46441,
   "type": "line",
   "text": "Add A dots to the dot offset; past 6, the guard moves a column right on the screen, his true column ($37) one less, and the fence ($51) a column right, coming round from 40 to -8."
  },
  {
   "address": 46474,
   "type": "line",
   "text": "The guard running for the cut to the gate: legs $23, torso $1E, sequence positions $43 and $2E, steps 1, stick forward."
  },
  {
   "address": 46499,
   "type": "line",
   "text": "Set up the opponent's record ($7003), coming on ($30 = 1), at the scroll's column + $14, facing left ($7F = $FF), on the camera's other side ($4B = 1)."
  },
  {
   "address": 46522,
   "type": "line",
   "text": "Keep this frame's positions for the page drawn two frames from now: the fence ($51 into $AB, then $AC), the dot offset ($50 into $AD, $AE), the scroll ($52 into $E0, $E1), the hero ($62 into $E2, $E3), the opponent ($72 into $E4, $E5); and count $54 down."
  },
  {
   "address": 46569,
   "type": "line",
   "text": "Ask for both pages to be drawn whole: $54 = 2."
  },
  {
   "address": 46574,
   "type": "line",
   "text": "Bytes left from an earlier build: the end of $B5E9 and part of a frame. Nothing runs them."
  },
  {
   "address": 46592,
   "type": "line",
   "text": "JMP: draw climbing picture X ($B683)."
  },
  {
   "address": 46595,
   "type": "line",
   "text": "The pictures of the climb, low bytes, 32 entries; the climb draws entries $0C-$17 ($BB31), and the others point at nothing in this stage."
  },
  {
   "address": 46627,
   "type": "line",
   "text": "The climb's pictures, high bytes."
  },
  {
   "address": 46659,
   "type": "line",
   "text": "Their columns."
  },
  {
   "address": 46691,
   "type": "line",
   "text": "Their rows."
  },
  {
   "address": 46723,
   "type": "line",
   "text": "Draw climbing picture X at its column and row."
  },
  {
   "address": 46746,
   "type": "line",
   "text": "Bytes left from an earlier build of the climb and the main loop. Nothing runs them."
  },
  {
   "address": 46848,
   "type": "line",
   "text": "Stage 1 begins: the fighters' records ($7000), the arrows' recovery intervals ($B8, $B9) and the sampled sound's speed ($BA) at 30, the dot offset 1, both fighters alive ($5D, $5E), the scroll and its copies at $30, the fence at -2, the cuts and the sounds cleared, both pages to be drawn whole ($5F, $54), 14 arrows for each ($B0, $B1), the opponent's ($BB41) and the hero's ($BB52); headgear 0 and its chances ($BB63); the climb from picture $0B ($99). Then the climb's frames until $99 is 0, the climb's tune ($1009), and the main loop: one frame ($B7CA) and its end ($7600), for ever."
  },
  {
   "address": 46947,
   "type": "line",
   "text": "The rest of the start: the sampled sound, the headgear and the cuts cleared. The engine calls $B763 only in the title stage ($7C47), whose own routine is there."
  },
  {
   "address": 47050,
   "type": "line",
   "text": "One frame of the cliff. While the hero falls ($A1): at $30 he is dead, without arrows, with the struck sound, and after three more frames the death tune and THE END ($B818); before that, the frame without the hero's move. With the hero lying dead (legs $13) and the guard lying dead or standing, the death tune and THE END. With the guard beaten ($82) and the hero alive: once a guard is coming ($30), $82 counts to 20 and the next guard comes, with the next headgear (up to 5), his chances, his arrows and the cut to the gate ($B400). While a guard is alive and $89 has counted out, the cut to him running ($B403)."
  },
  {
   "address": 47220,
   "type": "line",
   "text": "The fight's frame. The first frame the guard lies dead with the hero alive in the stance: the tune of a guard beaten ($88), $82 set, the hero's arrows back quickly ($B8 = 2), and while his most is 10 or more, one fewer for him ($B0) and one more for the next guard ($B1). Then, unless the hero falls or climbs: the start of the fall ($A2), or the hero's move ($BA91); with the guard out of sight ahead, $89 counted down (each frame the hero moves on, otherwise every 15 frames, $8B). The opponent's brain and move ($B918), for types 0 and 1 only on frames drawn on page 1 or once his legs' sequence is past $0D or stopped. The hits: the hero's blow tested every frame, the opponent's on frames drawn on page 1 ($7366, $701E); the arrows back ($0B0F); the scroll ($B260); the cut to Akuma when $AF counts out with the guard beaten and none coming; the stage's end ($D0 = 2: the palace is loaded on a frame drawn on page 2, on page 1 $D0 goes back to 1); the sides kept ($7018, $701B); then the drawing ($B9A5)."
  },
  {
   "address": 47525,
   "type": "line",
   "text": "Draw the frame, reading the buttons between steps ($6D03): the bands behind the figures cleared, the fence posts, the cliff's edge and the gate covered where they were, the special keys, the whole background while $5F counts, the arrows' strip, the mountain and the posts, the gate, the gate ahead, and the feet masks; the climb ends when $99 reaches $17."
  },
  {
   "address": 47638,
   "type": "line",
   "text": "The figures: the hero's arrows; the climb's pictures while $99 counts ($BB31), the fall while $A1 counts (with a pause, the Monitor's WAIT), or the hero ($6783); the opponent when he is on the screen, with his arrows and the star of a blow on the hero ($74C0); the star of a blow on the opponent; the gate's near post ($AD09), the near post of the gate ahead ($BC03), and the positions kept ($B409)."
  },
  {
   "address": 47761,
   "type": "line",
   "text": "The hero's move. With no opponent alive: while the guard is still falling or the beaten tune is asked for ($88), the hero stays and changes his arms ($D1); once the guard lies dead, arms held in guard (torso $1C, $1D) drop (torso 6). Off the right of the screen (column $24 or more) he runs on by himself; with the camera ahead ($4C) this also sets $82 to $64 and puts a living guard at column $3C, unless the guard is nearer than column $2E, when the player keeps control. Otherwise the player moves him ($6E00). When his legs' sequence reaches position $15, the end of taking the stance, the sampled sound plays at speed $1E. On the first screen, with his column on the screen ($30 - $52 + $22) below $0B, he has stepped off the cliff's edge: $A2 = 1."
  },
  {
   "address": 47901,
   "type": "line",
   "text": "Set off the sampled sound ($4E) at the speed in A ($BA)."
  },
  {
   "address": 47908,
   "type": "line",
   "text": "Bytes left from an earlier build: the random numbers ($48 times 5 plus $0B). Nothing runs them."
  },
  {
   "address": 47921,
   "type": "line",
   "text": "Draw climbing pictures X + 1 and X + 2, in store mode at dot 0, and return X + 2."
  },
  {
   "address": 47937,
   "type": "line",
   "text": "Give the opponent his arrows ($B7 = $B1), his arrows' place at the bottom right ($B3, $B5) and $5B cleared."
  },
  {
   "address": 47954,
   "type": "line",
   "text": "Give the hero his arrows ($B6 = $B0), with $B2 = 1 and $B4, $5C cleared."
  },
  {
   "address": 47971,
   "type": "line",
   "text": "Set the guard's chances for his headgear $3E (0-5): of a kick ($D7), a punch ($D8) and a step forward ($D9), each the number a random byte must be below ($6C23, $6BF2, $6BE3)."
  },
  {
   "address": 47989,
   "type": "line",
   "text": "The chance of a kick ($D7) for headgear 0-5: $E0 $E8 $30 $FF $F8 $FF."
  },
  {
   "address": 47995,
   "type": "line",
   "text": "The chance of a punch ($D8): $E0 $E0 $FF $30 $E8 $E8."
  },
  {
   "address": 48001,
   "type": "line",
   "text": "The chance of a step forward ($D9): $FF $E0 $C0 $A0 $80 $50. After it, left from an earlier build: the end of $BB52, a copy of $BB63 with its three tables, and $FF $00 $00 $FF over and over to the end of the page."
  },
  {
   "address": 48128,
   "type": "line",
   "text": "JMP: the gate ahead ($BC65); JMP: its near post again over the figures ($BCE1). The engine also jumps to $BC00 for an opponent of a type other than 0 or 5 facing left ($6823); the cliff has none."
  },
  {
   "address": 48131,
   "type": "line",
   "text": "JMP: the gate ahead's near post over the figures ($BCE1)."
  },
  {
   "address": 48134,
   "type": "line",
   "text": "The gate ahead's 17 pieces, low bytes."
  },
  {
   "address": 48151,
   "type": "line",
   "text": "The gate ahead's pieces, high bytes."
  },
  {
   "address": 48168,
   "type": "line",
   "text": "Their columns from the scroll's."
  },
  {
   "address": 48185,
   "type": "line",
   "text": "Each piece of the gate ahead: its top row."
  },
  {
   "address": 48202,
   "type": "line",
   "text": "Draw piece X of the gate ahead at its row and at the scroll ($52) plus its column."
  },
  {
   "address": 48229,
   "type": "line",
   "text": "With the camera ahead ($4C) and the scroll below $2C, draw the gate ahead. When anything has moved, the whole gate: pieces 1-7 and $0B, then the second half below, with $3F = 1. When nothing has moved, $3F is set by where the fighters stand, and only when it is 1 is the second half drawn again: piece $0A repeated down to row $95, and pieces $0D-$10."
  },
  {
   "address": 48353,
   "type": "line",
   "text": "With the camera ahead and $3F set, draw the gate's near post again over the figures: piece 0 repeated down to row $93, and piece $0C."
  },
  {
   "address": 48395,
   "type": "line",
   "text": "The ends of three routines left from an earlier build: an operand byte and RTS twice, then JMP $BC4A and RTS; nothing runs them. Then 13 bytes in the form of picture rows that nothing points at."
  },
  {
   "address": 48416,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 1 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48448,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 2 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48480,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 3 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48512,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 4 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48544,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 5 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48576,
   "type": "line",
   "text": "16 bytes after unused_hat_4 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 48592,
   "type": "line",
   "text": "Headgear in the form of a first drawing that no table points at, 6 of six at $BD20-$BDEF. 10 rows of 3 bytes."
  },
  {
   "address": 48624,
   "type": "line",
   "text": "16 bytes after unused_hat_5 that no table or instruction in this stage points at, in the form of picture rows."
  },
  {
   "address": 48640,
   "type": "line",
   "text": "Headgear type 1 ($3E), drawing 1 of 3 for the engine's tables ($62E8). 10 rows of 3 bytes."
  },
  {
   "address": 48672,
   "type": "line",
   "text": "Headgear type 1 ($3E), drawing 2 of 3 for the engine's tables ($62E8). 11 rows of 3 bytes."
  },
  {
   "address": 48707,
   "type": "line",
   "text": "Headgear type 1 ($3E), drawing 3 of 3 for the engine's tables ($62E8). 9 rows of 3 bytes."
  },
  {
   "address": 48736,
   "type": "line",
   "text": "Headgear type 2 ($3E), drawing 1 of 3 for the engine's tables ($62EE). 10 rows of 3 bytes."
  },
  {
   "address": 48768,
   "type": "line",
   "text": "Headgear type 2 ($3E), drawing 2 of 3 for the engine's tables ($62EE). 11 rows of 3 bytes."
  },
  {
   "address": 48803,
   "type": "line",
   "text": "Headgear type 2 ($3E), drawing 3 of 3 for the engine's tables ($62EE). 9 rows of 3 bytes."
  },
  {
   "address": 48832,
   "type": "line",
   "text": "Headgear type 3 ($3E), drawing 1 of 3 for the engine's tables ($62F4). 10 rows of 3 bytes."
  },
  {
   "address": 48864,
   "type": "line",
   "text": "Headgear type 3 ($3E), drawing 2 of 3 for the engine's tables ($62F4). 11 rows of 3 bytes."
  },
  {
   "address": 48899,
   "type": "line",
   "text": "Headgear type 3 ($3E), drawing 3 of 3 for the engine's tables ($62F4). 9 rows of 3 bytes."
  },
  {
   "address": 48928,
   "type": "line",
   "text": "Headgear type 4 ($3E), drawing 1 of 3 for the engine's tables ($62FA). 10 rows of 3 bytes."
  },
  {
   "address": 48960,
   "type": "line",
   "text": "Headgear type 4 ($3E), drawing 2 of 3 for the engine's tables ($62FA). 11 rows of 3 bytes."
  },
  {
   "address": 48995,
   "type": "line",
   "text": "Headgear type 4 ($3E), drawing 3 of 3 for the engine's tables ($62FA). 9 rows of 3 bytes."
  },
  {
   "address": 49024,
   "type": "line",
   "text": "Headgear type 5 ($3E), drawing 1 of 3 for the engine's tables ($6AEA). 10 rows of 3 bytes."
  },
  {
   "address": 49056,
   "type": "line",
   "text": "Headgear type 5 ($3E), drawing 2 of 3 for the engine's tables ($6AEA). 11 rows of 3 bytes."
  },
  {
   "address": 49091,
   "type": "line",
   "text": "Headgear type 5 ($3E), drawing 3 of 3 for the engine's tables ($6AEA). 9 rows of 3 bytes."
  },
  {
   "address": 49120,
   "type": "line",
   "text": "The end of the last headgear picture's row."
  },
  {
   "address": 49121,
   "type": "line",
   "text": "The opponents' brain ($6B00) reads four tables of thresholds here, each as its base + X with X the distance between the fighters held to 7-11. This one ($6BBB, $6BD1) is read at $BFE8-$BFEC: $FF $FF $FF $A0 $A0; a random byte at or above it throws no blow. The bytes from $BFE1 to $BFE7 are not read."
  },
  {
   "address": 49126,
   "type": "line",
   "text": "The second ($6BD6), read at $BFED-$BFF1: $C0 $80 $80 $80 $80; a random byte at or above it, below the first, tries a kick ($D7)."
  },
  {
   "address": 49131,
   "type": "line",
   "text": "The third ($6BC0, $6BDB), read at $BFF2-$BFF6: $00 $00 $40 $80 $80; at or above it, below the second, a punch ($D8); below it, a step forward ($D9)."
  },
  {
   "address": 49138,
   "type": "line",
   "text": "The fourth ($6C38), read at $BFF9-$BFFD: $80, then the JMP below and the stage number; with no blow, at the legs' sequence position 3, a random byte below it steps forward and any other halts."
  },
  {
   "address": 49146,
   "type": "line",
   "text": "The stage's entry, where the engine jumps after loading it ($022C): JMP $B700."
  },
  {
   "address": 49149,
   "type": "line",
   "text": "The stage's number, 1, checked by the engine's loader ($020C) with the next two."
  },
  {
   "address": 49150,
   "type": "line",
   "text": "The stage number EOR $3B."
  },
  {
   "address": 49151,
   "type": "line",
   "text": "The stage number EOR $49."
  }
 ]
}