From 29d04b4642b8af388209a3b1811f127d8afb3987 Mon Sep 17 00:00:00 2001 From: jummy Date: Wed, 11 Sep 2024 13:22:16 -0500 Subject: [PATCH] phase table --- src/event.cpp | 1710 ++++++++++++++++++++++++++++++++---- util/extract_phasetable.py | 68 ++ 2 files changed, 1620 insertions(+), 158 deletions(-) create mode 100644 util/extract_phasetable.py diff --git a/src/event.cpp b/src/event.cpp index 41ef4f7..975ffe1 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -95,268 +95,1662 @@ static char cheat_code[25][60] = static Phase table[] = { { - WM_PHASE_TESTCD, + 1552, "init.blp", FALSE, FALSE, - { 0 } + { + { 0 } + }, }, { - WM_PHASE_INIT, + 1524, "init.blp", FALSE, FALSE, { { - WM_PHASE_GAMER, - 0,{ 1, IC_BT_PLAY }, - 0x56, 0x19a, - { 1, TX_BUTTON_PLAYP } + 1545, + 0,{ 1, 48 }, + 86, 410, + { 1, 109 } }, { - WM_PHASE_DEMO, - 0,{ 1, IC_BT_DEMO }, - 0x80, 0x19a, - { 1, 0xd4 } + 1557, + 0,{ 1, 84 }, + 128, 410, + { 1, 212 } }, { -#if _BYE - WM_PHASE_BYE, -#else - WM_CLOSE, -#endif //_BYE - 0,{ 1, IC_BT_CANCEL }, - 0x21c, 0x19a, - { 1, TX_BUTTON_QUITTER } - } - } + 1556, + 0,{ 1, 6 }, + 540, 410, + { 1, 106 } + }, + { 0 } + }, }, { - WM_PHASE_GAMER, + 1545, "gamer.blp", FALSE, FALSE, { { - WM_BUTTON1, + 1225, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 0, - { 1, TX_CHOOSEGAMER } + 60, 58, + { 1, 117 } }, { - WM_BUTTON2, + 1226, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 1, - { 1, TX_CHOOSEGAMER } + 60, 98, + { 1, 117 } }, { - WM_BUTTON3, + 1227, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 2, - { 1, TX_CHOOSEGAMER } + 60, 138, + { 1, 117 } }, { - WM_BUTTON4, + 1228, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 3, - { 1, TX_CHOOSEGAMER } + 60, 178, + { 1, 117 } }, { - WM_BUTTON5, + 1229, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 4, - { 1, TX_CHOOSEGAMER } + 60, 218, + { 1, 117 } }, { - WM_BUTTON6, + 1230, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 5, - { 1, TX_CHOOSEGAMER } - + 60, 258, + { 1, 117 } }, { - WM_BUTTON7, + 1231, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 6, - { 1, TX_CHOOSEGAMER } + 60, 298, + { 1, 117 } }, { - WM_BUTTON8, + 1232, 0,{ 0 }, - 60, 58 + DIMBUTTONX * 7, - { 1, TX_CHOOSEGAMER } - }, - /* // unused gamer slots 9-10 mentioned in promotional texts - { - WM_BUTTON9, - 0,{ 0 }, - 60, 58 + DIMBUTTONX * 8, - { 1, TX_CHOOSEGAMER } + 60, 338, + { 1, 117 } }, { - WM_BUTTON10, - 0,{ 0 }, - 60, 58 + DIMBUTTONX * 9, - { 1, TX_CHOOSEGAMER } - }, - */ - { - WM_PHASE_NAMEGAMER, - 0,{ 1, IC_BT_NAME }, - 0xb2, 0x222, - { 1, TX_PLAYERSNAME } + 1527, + 0,{ 1, 46 }, + 546, 178, + { 1, 118 } }, { - WM_PHASE_CLEARGAMER, - 0,{ 1, IC_BT_DELETE }, - 0xdc, 0x222, - { 1, /* i dont remember lol */ 0 } + 1528, + 0,{ 1, 36 }, + 546, 220, + { 1, 127 } }, { - WM_PHASE_DOPLAY, - 0,{ 1, IC_BT_PLAY }, - 0x41, 0x19e, - { 1, 0xc3 } + 1539, + 0,{ 1, 48 }, + 65, 414, + { 1, 195 } }, { - WM_PHASE_SERVICE, - 0,{ 1, IC_BT_MULTI }, - 0x6b, 0x19e, - { 1, 0xc4 } + 1568, + 0,{ 1, 83 }, + 107, 414, + { 1, 196 } }, { - WM_PHASE_PRIVATE, - 0,{ 1, IC_BT_DESIGN }, - 0x95, 0x19e, - { 1, 0xbc } + 1554, + 0,{ 1, 49 }, + 149, 414, + { 1, 188 } }, { - WM_PHASE_GREAD, - 0,{ 1, IC_BT_READ }, - 0xbf, 0x19e, - { 1, 0x108 } + 1586, + 0,{ 1, 52 }, + 191, 414, + { 1, 264 } }, { - WM_PHASE_SETUP, - 0,{ 1, IC_BT_SETUP }, - 0x14a, 0x19e, - { 1, TX_BUTTON_SETUP } + 1534, + 0,{ 1, 47 }, + 330, 414, + { 1, 128 } }, { - WM_PHASE_INIT, - 0,{ 1, IC_BT_STOP }, - 0x21c, 0x19e, - { 1, TX_BUTTON_TERM } - } - } + 1524, + 0,{ 1, 40 }, + 540, 414, + { 1, 111 } + }, + { 0 } + }, }, { - WM_PHASE_NAMEGAMER, + 1527, "name.blp", FALSE, FALSE, { { - WM_PHASE_DONAMEGAMER, - 0,{ 1, IC_BT_ACCEPT }, - 0xde, 0x146, - { 1, 0xae } + 1562, + 0,{ 1, 18 }, + 222, 326, + { 1, 174 } }, { - WM_PHASE_GAMER, - 0,{ 1, IC_BT_DELETE }, - 0x17a, 0x146, - { 1, 0xaf } - } - } + 1545, + 0,{ 1, 36 }, + 378, 326, + { 1, 175 } + }, + { 0 } + }, }, { - WM_PHASE_CLEARGAMER, + 1528, "clear.blp", FALSE, FALSE, { { - WM_PHASE_DONAMEDESIGN, - 0,{ 1, IC_BT_ACCEPT }, - 0xde, 0x146, - { 1, 0xb0 } + 1563, + 0,{ 1, 18 }, + 222, 326, + { 1, 176 } }, { - WM_PHASE_GAMER, - 0,{ 1, IC_BT_DELETE }, - 0x17a, 0x146, - { 1, 0xb1 } - } - } + 1545, + 0,{ 1, 36 }, + 378, 326, + { 1, 177 } + }, + { 0 } + }, }, - WM_PHASE_SERVICE, - "service.blp", - FALSE, - FALSE, { + 1568, + "service.blp", + FALSE, + FALSE, { - WM_BUTTON1, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0x6e, + { + 1225, + 0,{ 1, 51 }, + 140, 110, + { 0 } + }, + { + 1226, + 0,{ 1, 51 }, + 140, 150, + { 0 } + }, + { + 1227, + 0,{ 1, 51 }, + 140, 190, + { 0 } + }, + { + 1228, + 0,{ 1, 51 }, + 140, 230, + { 0 } + }, + { + 1229, + 0,{ 1, 51 }, + 140, 270, + { 0 } + }, + { + 1230, + 0,{ 1, 51 }, + 140, 310, + { 0 } + }, + { + 1234, + 0,{ 1, 72 }, + 466, 110, + { 1, 242 } + }, + { + 1235, + 0,{ 1, 73 }, + 466, 310, + { 1, 241 } + }, + { + 1569, + 0,{ 1, 18 }, + 222, 389, + { 1, 174 } + }, + { + 1570, + 0,{ 1, 36 }, + 380, 389, + { 1, 175 } + }, { 0 } }, + }, + { + 1571, + "session.blp", + FALSE, + FALSE, { - WM_BUTTON2, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0x96, + { + 1225, + 0,{ 1, 51 }, + 120, 110, + { 0 } + }, + { + 1226, + 0,{ 1, 51 }, + 120, 150, + { 0 } + }, + { + 1227, + 0,{ 1, 51 }, + 120, 190, + { 0 } + }, + { + 1228, + 0,{ 1, 51 }, + 120, 230, + { 0 } + }, + { + 1229, + 0,{ 1, 51 }, + 120, 270, + { 0 } + }, + { + 1230, + 0,{ 1, 51 }, + 120, 310, + { 0 } + }, + { + 1234, + 0,{ 1, 72 }, + 490, 110, + { 1, 246 } + }, + { + 1235, + 0,{ 1, 73 }, + 490, 310, + { 1, 245 } + }, + { + 1572, + 0,{ 1, 45 }, + 120, 389, + { 1, 247 } + }, + { + 1573, + 0,{ 1, 43 }, + 162, 389, + { 1, 248 } + }, + { + 1574, + 0,{ 1, 72 }, + 260, 389, + { 1, 249 } + }, + { + 1575, + 0,{ 1, 36 }, + 485, 389, + { 1, 175 } + }, { 0 } }, + }, + { + 1579, + "create.blp", + FALSE, + FALSE, { - WM_BUTTON3, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0xbe, + { + 1580, + 0,{ 1, 18 }, + 222, 326, + { 1, 174 } + }, + { + 1581, + 0,{ 1, 36 }, + 378, 326, + { 1, 175 } + }, { 0 } }, + }, + { + 1576, + "multi.blp", + FALSE, + FALSE, { - WM_BUTTON4, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0xe6, + { + 1225, + 0,{ 0 }, + 80, 98, + { 1, 207 } + }, + { + 1226, + 0,{ 0 }, + 80, 140, + { 1, 207 } + }, + { + 1227, + 0,{ 0 }, + 80, 182, + { 1, 207 } + }, + { + 1228, + 0,{ 0 }, + 80, 224, + { 1, 207 } + }, + { + 1235, + 0,{ 1, 36 }, + 288, 98, + { 1, 208 } + }, + { + 1236, + 0,{ 1, 36 }, + 288, 140, + { 1, 208 } + }, + { + 1237, + 0,{ 1, 36 }, + 288, 182, + { 1, 208 } + }, + { + 1238, + 0,{ 1, 36 }, + 288, 224, + { 1, 208 } + }, + { + 1244, + 0,{ 1, 94 }, + 404, 388, + { 1, 262 } + }, + { + 1624, + 0,{ 1, 50 }, + 438, 249, + { 1, 107 } + }, + { + 1625, + 0,{ 1, 51 }, + 480, 249, + { 1, 108 } + }, + { + 1577, + 0,{ 1, 48 }, + 508, 389, + { 1, 252 } + }, + { + 1578, + 0,{ 1, 36 }, + 508, 330, + { 1, 175 } + }, { 0 } }, + }, + { + 1529, + "info.blp", + FALSE, + TRUE, { - WM_BUTTON5, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0x10e, + { + 1559, + 0,{ 1, 53 }, + 188, 306, + { 1, 113 } + }, + { + 1560, + 0,{ 1, 52 }, + 232, 306, + { 1, 112 } + }, + { + 1561, + 0,{ 1, 36 }, + 276, 306, + { 1, 183 } + }, + { + 1624, + 0,{ 1, 50 }, + 188, 398, + { 1, 107 } + }, + { + 1536, + 0,{ 1, 48 }, + 232, 398, + { 1, 109 } + }, + { + 1625, + 0,{ 1, 51 }, + 276, 398, + { 1, 108 } + }, + { + 1526, + 0,{ 1, 49 }, + 422, 98, + { 1, 110 } + }, + { + 1542, + 0,{ 1, 22 }, + 422, 195, + { 1, 144 } + }, + { + 1558, + 0,{ 1, 46 }, + 422, 239, + { 1, 185 } + }, + { + 1535, + 0,{ 1, 44 }, + 422, 283, + { 1, 129 } + }, + { + 1545, + 0,{ 1, 40 }, + 422, 398, + { 1, 111 } + }, { 0 } }, + }, + { + 1525, + "", + FALSE, + FALSE, { - WM_BUTTON6, - 0,{ 1, IC_BT_ARROWRIGHT }, - 0x8c, 0x136, { 0 } }, + }, + { + 1530, + "", + FALSE, + FALSE, { - WM_BUTTON10, - 0,{ 1, IC_BT_ARROWUP }, - 0x1d2, 0x6e, - { 1, 0xf2 } + { 0 } }, + }, + { + 1582, + "stop.blp", + FALSE, + FALSE, { - WM_BUTTON11, - 0,{ 1, IC_BT_ARROWDOWN }, - 0x1d2, 0x136, - { 1, 0xf1 } + { + 1584, + 0,{ 1, 53 }, + 187, 178, + { 1, 263 } + }, + { + 1585, + 0,{ 1, 52 }, + 187, 296, + { 1, 264 } + }, + { + 1541, + 0,{ 1, 47 }, + 350, 156, + { 1, 128 } + }, + { + 1583, + 0,{ 1, 86 }, + 391, 156, + { 1, 267 } + }, + { + 1587, + 0,{ 1, 78 }, + 413, 262, + { 1, 266 } + }, + { + 1525, + 0,{ 1, 77 }, + 413, 323, + { 1, 265 } + }, + { 0 } }, + }, + { + 1583, + "help.blp", + FALSE, + FALSE, { - WM_PHASE_DPLAY_DO_SERVICE, - 0,{ 1, IC_BT_ACCEPT }, - 0xde, 0x185, - { 1, 0xae } + { + 1525, + 0,{ 1, 18 }, + 442, 358, + { 1, 174 } + }, + { 0 } }, + }, + { + 1586, + "gread.blp", + FALSE, + TRUE, { - WM_PHASE_DPLAY_CANCEL_SERVICE, - 0,{ 1, IC_BT_DELETE }, - 0x17c, 0x185, - { 1, 0xaf } - } - } - // more... + { + 1225, + 0,{ 0 }, + 280, 110, + { 0 } + }, + { + 1226, + 0,{ 0 }, + 280, 150, + { 0 } + }, + { + 1227, + 0,{ 0 }, + 280, 190, + { 0 } + }, + { + 1228, + 0,{ 0 }, + 280, 230, + { 0 } + }, + { + 1229, + 0,{ 0 }, + 280, 270, + { 0 } + }, + { + 1230, + 0,{ 0 }, + 280, 310, + { 0 } + }, + { + 1244, + 0,{ 1, 18 }, + 330, 387, + { 1, 174 } + }, + { + 1545, + 0,{ 1, 36 }, + 458, 387, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1585, + "gread.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 0 }, + 280, 110, + { 0 } + }, + { + 1226, + 0,{ 0 }, + 280, 150, + { 0 } + }, + { + 1227, + 0,{ 0 }, + 280, 190, + { 0 } + }, + { + 1228, + 0,{ 0 }, + 280, 230, + { 0 } + }, + { + 1229, + 0,{ 0 }, + 280, 270, + { 0 } + }, + { + 1230, + 0,{ 0 }, + 280, 310, + { 0 } + }, + { + 1244, + 0,{ 1, 18 }, + 330, 387, + { 1, 174 } + }, + { + 1582, + 0,{ 1, 36 }, + 458, 387, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1584, + "gwrite.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 0 }, + 280, 110, + { 0 } + }, + { + 1226, + 0,{ 0 }, + 280, 150, + { 0 } + }, + { + 1227, + 0,{ 0 }, + 280, 190, + { 0 } + }, + { + 1228, + 0,{ 0 }, + 280, 230, + { 0 } + }, + { + 1229, + 0,{ 0 }, + 280, 270, + { 0 } + }, + { + 1230, + 0,{ 0 }, + 280, 310, + { 0 } + }, + { + 1244, + 0,{ 1, 18 }, + 330, 387, + { 1, 174 } + }, + { + 1582, + 0,{ 1, 36 }, + 458, 387, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1534, + "setup.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 1, 50 }, + 70, 110, + { 1, 130 } + }, + { + 1226, + 0,{ 1, 51 }, + 110, 110, + { 1, 131 } + }, + { + 1227, + 0,{ 1, 50 }, + 70, 220, + { 1, 132 } + }, + { + 1228, + 0,{ 1, 51 }, + 110, 220, + { 1, 133 } + }, + { + 1229, + 0,{ 1, 133 }, + 70, 330, + { 1, 154 } + }, + { + 1230, + 0,{ 1, 134 }, + 110, 330, + { 1, 155 } + }, + { + 1237, + 0,{ 1, 135 }, + 170, 330, + { 1, 305 } + }, + { + 1238, + 0,{ 1, 136 }, + 210, 330, + { 1, 306 } + }, + { + 1231, + 0,{ 0 }, + 370, 110, + { 1, 156 } + }, + { + 1232, + 0,{ 0 }, + 370, 150, + { 1, 157 } + }, + { + 1233, + 0,{ 0 }, + 370, 190, + { 1, 157 } + }, + { + 1234, + 0,{ 0 }, + 370, 230, + { 1, 157 } + }, + { + 1235, + 0,{ 0 }, + 370, 270, + { 1, 157 } + }, + { + 1236, + 0,{ 0 }, + 370, 310, + { 1, 157 } + }, + { + 1545, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1541, + "setup.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 1, 50 }, + 70, 110, + { 1, 130 } + }, + { + 1226, + 0,{ 1, 51 }, + 110, 110, + { 1, 131 } + }, + { + 1227, + 0,{ 1, 50 }, + 70, 220, + { 1, 132 } + }, + { + 1228, + 0,{ 1, 51 }, + 110, 220, + { 1, 133 } + }, + { + 1229, + 0,{ 1, 133 }, + 70, 330, + { 1, 154 } + }, + { + 1230, + 0,{ 1, 134 }, + 110, 330, + { 1, 155 } + }, + { + 1237, + 0,{ 1, 135 }, + 170, 330, + { 1, 305 } + }, + { + 1238, + 0,{ 1, 136 }, + 210, 330, + { 1, 306 } + }, + { + 1231, + 0,{ 0 }, + 370, 110, + { 1, 156 } + }, + { + 1232, + 0,{ 0 }, + 370, 150, + { 1, 157 } + }, + { + 1233, + 0,{ 0 }, + 370, 190, + { 1, 157 } + }, + { + 1234, + 0,{ 0 }, + 370, 230, + { 1, 157 } + }, + { + 1235, + 0,{ 0 }, + 370, 270, + { 1, 157 } + }, + { + 1236, + 0,{ 0 }, + 370, 310, + { 1, 157 } + }, + { + 1525, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1533, + "lost.blp", + FALSE, + FALSE, + { + { + 1525, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1547, + "lost.blp", + FALSE, + FALSE, + { + { + 1529, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1549, + "lost.blp", + FALSE, + FALSE, + { + { + 1545, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1532, + "win.blp", + FALSE, + FALSE, + { + { + 1545, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1546, + "win.blp", + FALSE, + FALSE, + { + { + 1529, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1550, + "win.blp", + FALSE, + FALSE, + { + { + 1545, + 0,{ 1, 18 }, + 541, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1526, + "", + FALSE, + FALSE, + { + { + 1044, + 0,{ 1, 6 }, + 11, 11, + { 1, 1000 } + }, + { + 1045, + 0,{ 11, 31, 29, 32, 69, 33, 37, 82, 130, 139, 30, 142 }, + 11, 53, + { 11, 2030, 1023, 2072, 1042, 2047, 1026, 1049, 1076, 1080, 1021, 1082 } + }, + { + 1046, + 0,{ 8, 0, 1, 2, 27, 34, 35, 67, 106 }, + 11, 95, + { 8, 1001, 1002, 1003, 1020, 1024, 1025, 1038, 1062 } + }, + { + 1047, + 0,{ 10, 22, 59, 68, 118, 127, 100, 128, 129, 39, 38 }, + 11, 137, + { 10, 2033, 1032, 1037, 1067, 1075, 1061, 1074, 1076, 2038, 2041 } + }, + { + 1048, + 0,{ 10, 137, 138, 65, 66, 112, 58, 23, 80, 81, 79 }, + 11, 179, + { 10, 1079, 1080, 1039, 1040, 1065, 1031, 1015, 1047, 1048, 1022 } + }, + { + 1049, + 0,{ 12, 8, 9, 107, 26, 42, 41, 131, 143, 132, 101, 120, 122 }, + 11, 221, + { 12, 1006, 1007, 1063, 1018, 1028, 1027, 1077, 1083, 1078, 1064, 1069, 1071 } + }, + { + 1050, + 0,{ 13, 21, 20, 19, 28, 121, 16, 55, 60, 113, 140, 54, 95, 99 }, + 11, 263, + { 13, 1009, 1010, 1011, 1019, 1070, 1012, 1030, 1033, 1066, 1081, 1029, 1059, 1060 } + }, + { + 1051, + 0,{ 9, 7, 10, 75, 74, 89, 88, 93, 92, 87 }, + 11, 305, + { 9, 1004, 1005, 1046, 1045, 1052, 1051, 1054, 1053, 2007 } + }, + { + 1052, + 0,{ 10, 125, 126, 144, 124, 56, 70, 123, 141, 17, 76 }, + 11, 347, + { 10, 1036, 1035, 1084, 1073, 1041, 1043, 1072, 2044, 1013, 1014 } + }, + { + 1053, + 0,{ 5, 119, 24, 71, 57, 85 }, + 11, 389, + { 5, 1068, 1016, 1044, 2004, 1050 } + }, + { + 1054, + 0,{ 8, 11, 5, 96, 97, 98, 63, 62, 64 }, + 11, 431, + { 8, 1008, 1055, 1056, 1057, 1058, 1035, 1034, 1036 } + }, + { + 1530, + 0,{ 1, 48 }, + 544, 431, + { 1, 124 } + }, + { + 1529, + 0,{ 1, 40 }, + 586, 431, + { 1, 119 } + }, + { 0 } + }, + }, + { + 1535, + "music.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 1, 40 }, + 200, 130, + { 1, 134 } + }, + { + 1226, + 0,{ 1, 44 }, + 290, 130, + { 1, 135 } + }, + { + 1227, + 0,{ 1, 44 }, + 290, 170, + { 1, 136 } + }, + { + 1228, + 0,{ 1, 44 }, + 290, 210, + { 1, 137 } + }, + { + 1229, + 0,{ 1, 44 }, + 290, 250, + { 1, 138 } + }, + { + 1230, + 0,{ 1, 44 }, + 290, 290, + { 1, 139 } + }, + { + 1231, + 0,{ 1, 44 }, + 350, 130, + { 1, 140 } + }, + { + 1232, + 0,{ 1, 44 }, + 350, 170, + { 1, 141 } + }, + { + 1233, + 0,{ 1, 44 }, + 350, 210, + { 1, 142 } + }, + { + 1234, + 0,{ 1, 44 }, + 350, 250, + { 1, 143 } + }, + { + 1235, + 0,{ 1, 44 }, + 350, 290, + { 1, 171 } + }, + { + 1529, + 0,{ 1, 18 }, + 540, 410, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1542, + "region.blp", + FALSE, + FALSE, + { + { + 1227, + 0,{ 0 }, + 48, 58, + { 1, 217 } + }, + { + 1252, + 0,{ 0 }, + 48, 98, + { 1, 300 } + }, + { + 1246, + 0,{ 0 }, + 48, 138, + { 1, 236 } + }, + { + 1243, + 0,{ 0 }, + 48, 178, + { 1, 233 } + }, + { + 1245, + 0,{ 0 }, + 48, 218, + { 1, 235 } + }, + { + 1244, + 0,{ 0 }, + 48, 258, + { 1, 234 } + }, + { + 1231, + 0,{ 0 }, + 48, 298, + { 1, 221 } + }, + { + 1234, + 0,{ 0 }, + 48, 338, + { 1, 224 } + }, + { + 1225, + 0,{ 0 }, + 148, 58, + { 1, 215 } + }, + { + 1239, + 0,{ 0 }, + 148, 98, + { 1, 229 } + }, + { + 1238, + 0,{ 0 }, + 148, 138, + { 1, 228 } + }, + { + 1235, + 0,{ 0 }, + 148, 178, + { 1, 225 } + }, + { + 1232, + 0,{ 0 }, + 148, 218, + { 1, 222 } + }, + { + 1247, + 0,{ 0 }, + 148, 258, + { 1, 237 } + }, + { + 1237, + 0,{ 0 }, + 148, 298, + { 1, 227 } + }, + { + 1230, + 0,{ 0 }, + 148, 338, + { 1, 220 } + }, + { + 1241, + 0,{ 0 }, + 248, 58, + { 1, 231 } + }, + { + 1242, + 0,{ 0 }, + 248, 98, + { 1, 232 } + }, + { + 1236, + 0,{ 0 }, + 248, 138, + { 1, 226 } + }, + { + 1251, + 0,{ 0 }, + 248, 178, + { 1, 299 } + }, + { + 1240, + 0,{ 0 }, + 248, 218, + { 1, 230 } + }, + { + 1226, + 0,{ 0 }, + 248, 258, + { 1, 216 } + }, + { + 1254, + 0,{ 0 }, + 248, 298, + { 1, 302 } + }, + { + 1253, + 0,{ 0 }, + 248, 338, + { 1, 301 } + }, + { + 1256, + 0,{ 0 }, + 348, 58, + { 1, 304 } + }, + { + 1229, + 0,{ 0 }, + 348, 98, + { 1, 219 } + }, + { + 1233, + 0,{ 0 }, + 348, 138, + { 1, 223 } + }, + { + 1255, + 0,{ 0 }, + 348, 178, + { 1, 303 } + }, + { + 1250, + 0,{ 0 }, + 348, 218, + { 1, 298 } + }, + { + 1248, + 0,{ 0 }, + 348, 258, + { 1, 238 } + }, + { + 1228, + 0,{ 0 }, + 348, 298, + { 1, 218 } + }, + { + 1249, + 0,{ 0 }, + 348, 338, + { 1, 297 } + }, + { + 1265, + 0,{ 1, 15 }, + 521, 135, + { 1, 121 } + }, + { + 1266, + 0,{ 1, 13 }, + 521, 175, + { 1, 122 } + }, + { + 1267, + 0,{ 1, 14 }, + 521, 215, + { 1, 123 } + }, + { + 1268, + 0,{ 1, 61 }, + 521, 255, + { 1, 126 } + }, + { + 1529, + 0,{ 1, 18 }, + 540, 411, + { 1, 174 } + }, + { 0 } + }, + }, + { + 1558, + "name.blp", + FALSE, + FALSE, + { + { + 1564, + 0,{ 1, 18 }, + 222, 326, + { 1, 174 } + }, + { + 1529, + 0,{ 1, 36 }, + 378, 326, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1559, + "write.blp", + FALSE, + FALSE, + { + { + 1234, + 0,{ 1, 72 }, + 420, 112, + { 1, 193 } + }, + { + 1235, + 0,{ 1, 73 }, + 420, 252, + { 1, 192 } + }, + { + 1565, + 0,{ 1, 18 }, + 222, 387, + { 1, 174 } + }, + { + 1529, + 0,{ 1, 36 }, + 380, 387, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1560, + "read.blp", + FALSE, + FALSE, + { + { + 1225, + 0,{ 1, 51 }, + 190, 110, + { 0 } + }, + { + 1226, + 0,{ 1, 51 }, + 190, 150, + { 0 } + }, + { + 1227, + 0,{ 1, 51 }, + 190, 190, + { 0 } + }, + { + 1228, + 0,{ 1, 51 }, + 190, 230, + { 0 } + }, + { + 1229, + 0,{ 1, 51 }, + 190, 270, + { 0 } + }, + { + 1230, + 0,{ 1, 51 }, + 190, 310, + { 0 } + }, + { + 1234, + 0,{ 1, 72 }, + 420, 110, + { 1, 193 } + }, + { + 1235, + 0,{ 1, 73 }, + 420, 310, + { 1, 192 } + }, + { + 1566, + 0,{ 1, 18 }, + 222, 387, + { 1, 174 } + }, + { + 1529, + 0,{ 1, 36 }, + 380, 387, + { 1, 175 } + }, + { 0 } + }, + }, + { + 1561, + "clear.blp", + FALSE, + FALSE, + { + { + 1567, + 0,{ 1, 18 }, + 222, 326, + { 1, 176 } + }, + { + 1529, + 0,{ 1, 36 }, + 378, 326, + { 1, 177 } + }, + { 0 } + }, + }, + { + 1536, + "movie.blp", + FALSE, + FALSE, + { + { 0 } + }, + }, + { + 1537, + "movie.blp", + FALSE, + FALSE, + { + { 0 } + }, + }, + { + 1548, + "movie.blp", + FALSE, + FALSE, + { + { 0 } + }, + }, + { + 1551, + "movie.blp", + FALSE, + FALSE, + { + { 0 } + }, + }, + { + 1556, + "bye.blp", + FALSE, + FALSE, + { + { 0 } + }, + }, + { + 1543, + "insert.blp", + FALSE, + FALSE, + { + { + 1545, + 0,{ 1, 40 }, + 16, 424, + { 1, 106 } + }, + { 0 } + }, + }, + { 0 } }; // Constructor diff --git a/util/extract_phasetable.py b/util/extract_phasetable.py new file mode 100644 index 0000000..64f0e82 --- /dev/null +++ b/util/extract_phasetable.py @@ -0,0 +1,68 @@ +# JUMMY WAS HERE +# extract phase table from speedy blupi 2.2 english ver + +import sys +import io + +offset = 0x3d400 + +outs = [] + +with io.open('BLUPI.exe', 'rb') as f: + data = f.read() + outs.append('static Phase table[] =') + outs.append('{') + for i in range(39): + + poff = offset + i * 7084 + p = int.from_bytes(data[poff : poff + 4], 'little') + if p == 0: + outs.append('{0}') + break + outs.append('{') + outs.append(str(p) + ',') + outs.append('"' + data[poff + 4 : poff + 36].decode('ascii').rstrip('\x00') + '",') + outs.append('TRUE,' if int.from_bytes(data[poff + 36 : poff + 40], 'little') != 0 else 'FALSE,') + outs.append('TRUE,' if int.from_bytes(data[poff + 40 : poff + 44], 'little') != 0 else 'FALSE,') + outs.append('{') + for j in range(40): + boff = poff + 44 + j * 176 + b = int.from_bytes(data[boff : boff + 4], 'little') + if b == 0: + outs.append('{0}') + break + else: + outs.append('{') + outs.append(str(b) + ',') + s = '' + s += str(int.from_bytes(data[boff + 4 : boff + 8], 'little')) + ', ' + m = int.from_bytes(data[boff + 8 : boff + 12], 'little') + if m == 0: + s += '{0},' + else: + s += '{' + str(m) + ', ' + for k in range(m): + moff = boff + 12 + k * 4 + s += str(int.from_bytes(data[moff : moff + 4], 'little')) + ', ' + s += '},' + outs.append(str(s)) + outs.append(str(int.from_bytes(data[boff + 88 : boff + 92], 'little')) + ', ' + str(int.from_bytes(data[boff + 92 : boff + 96], 'little')) + ',') + s = '' + t = int.from_bytes(data[boff + 96 : boff + 100], 'little') + if t == 0: + s += '{0}' + else: + s += '{ ' + str(t) + ', ' + for k in range(t): + toff = boff + 100 + k * 4 + s += str(int.from_bytes(data[toff : toff + 4], 'little')) + ', ' + s += '}' + outs.append(str(s)) + outs.append('},') + outs.append('},') + outs.append('},') + outs.append('},') +outs.append('};') + +with io.open('out.h', 'wb') as f2: + f2.write(bytearray('\n'.join(outs), 'ascii'))