From 812128645f5b1dee2090a721035bd3e4d4b5f1a4 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Tue, 14 May 2024 10:17:23 +0300 Subject: [PATCH 1/9] Draft. --- patches/bad-references.json | 3460 ++++++++++++++++++++++++++++++++++- tools/duplicates.py | 26 +- 2 files changed, 3478 insertions(+), 8 deletions(-) diff --git a/patches/bad-references.json b/patches/bad-references.json index c9f14b16..cbf8b426 100644 --- a/patches/bad-references.json +++ b/patches/bad-references.json @@ -14,6 +14,3464 @@ 38281 ] }, + { + "source": "GAME.EXE", + "offset": 198944, + "bad-references": [ + 14305, + 14599, + 14604, + 17226, + 17231, + 17437, + 17442, + 17580, + 17863, + 18115, + 18310, + 19003, + 19257, + 19369, + 19874, + 20077, + 20135, + 20446, + 20458, + 20480, + 20492, + 20517, + 20571, + 20679, + 20753, + 22187, + 23458, + 23840, + 24270, + 25159, + 25213, + 25286, + 26565, + 26581, + 27015, + 27563, + 27582, + 29175, + 29347, + 29853, + 30009, + 30214, + 30342, + 30926, + 30977, + 31172, + 31319, + 31666, + 31697, + 32754, + 35098, + 35551, + 35557, + 35770, + 35932, + 36172, + 38214, + 38219, + 38331, + 38337, + 39348, + 39450, + 39496, + 39669, + 39871, + 40267, + 40350, + 40508, + 40514, + 40537, + 40543, + 40548, + 40864, + 41165, + 41338, + 41669, + 41698, + 41775, + 41959, + 42064, + 42668, + 42679, + 42945, + 43031, + 43099, + 43196, + 43293, + 43403, + 43463, + 43739, + 43750, + 43888, + 43894, + 44082, + 44133, + 44719, + 44740, + 44904, + 45021, + 46185, + 46438, + 46908, + 47050, + 47314, + 47383, + 47610, + 47785, + 47922, + 47983, + 48070, + 48309, + 49110, + 49411, + 49563, + 50338, + 50391, + 50587, + 51454, + 51569, + 55006, + 55011, + 55283, + 55440, + 55793, + 59142, + 59361, + 60909, + 61039, + 61055, + 61123, + 61330, + 63139, + 63618, + 63895, + 64674, + 64730, + 65938, + 65966, + 66042, + 66719, + 66990, + 67335, + 67494, + 69545, + 69558, + 69697, + 69710, + 69715, + 69973, + 72505, + 72576, + 73756, + 75365, + 75767, + 77678, + 77683, + 79239, + 79253, + 79508, + 80245, + 81091, + 81355, + 81439, + 81471, + 81477, + 81885, + 82648, + 83615, + 84460, + 84465, + 84680, + 84963, + 84982, + 84989, + 85205, + 85283, + 85444, + 85680, + 85685, + 85690, + 85698, + 87901, + 89646, + 89857, + 90381, + 90505, + 91330, + 93176, + 95748, + 96275, + 96320, + 96325, + 97215, + 97637, + 97819, + 97824, + 97829, + 98579, + 98585, + 98713, + 99895, + 100907, + 102385, + 102390, + 103306, + 103312, + 104927, + 107070, + 107194, + 107473, + 107513, + 107937, + 107948, + 108314, + 108319, + 108418, + 108691, + 108965, + 109512, + 110280, + 110641, + 110693, + 110893, + 111729, + 114094, + 115236, + 115243, + 115289, + 115326, + 115839, + 116448, + 116520, + 116904, + 116931, + 117003, + 117215, + 117228, + 117560, + 118114, + 120573, + 120580, + 122318, + 123994, + 124876, + 124881, + 125013, + 125217, + 127562, + 127881, + 128180, + 129273, + 130066, + 130066, + 131981, + 133395, + 133893, + 134259, + 134913, + 135303, + 135631, + 135745, + 137464, + 137927, + 138104, + 139430, + 139837, + 139896, + 140925, + 141237, + 143223, + 143228, + 143233, + 143257, + 143270, + 143275, + 143320, + 144024, + 144030, + 144434, + 144959, + 145666, + 146772, + 146802, + 146941, + 147092, + 147169, + 148225, + 148880, + 150067, + 150561, + 151100, + 151871, + 152875, + 159158, + 159328, + 159493, + 159858, + 160020, + 160525, + 160921, + 161374, + 161843, + 162273, + 162311, + 162614, + 162926, + 164494, + 164740, + 164747, + 165103, + 165596, + 165771, + 165923, + 165994, + 166070, + 166117, + 166125, + 167312, + 169419, + 169651, + 170484, + 171095, + 171198, + 171203, + 171208, + 171321, + 171339, + 171502, + 171644, + 171684, + 171897, + 172001, + 172333, + 174402, + 174669, + 174770, + 175280, + 175286, + 175301, + 175462, + 175531, + 175751, + 175757, + 175811, + 175817, + 179954, + 180811, + 180816, + 180821, + 180946, + 181170, + 181610, + 181803, + 182329, + 183742, + 183835, + 183842, + 184910, + 185748, + 185829, + 185855, + 186359, + 187022, + 188096, + 188363, + 188445, + 188614, + 189098, + 189101, + 189118, + 189460, + 189583, + 189789, + 189957, + 190276, + 190340, + 190421, + 190479, + 190543, + 190637, + 190676, + 190818, + 190824, + 190861, + 191153, + 191172, + 191178, + 191520, + 191643, + 191724, + 191730, + 191736, + 191742, + 192075, + 192109, + 192574, + 192935, + 192941, + 193679, + 195515, + 195752, + 197001, + 197228, + 197273, + 197920, + 198117, + 198118, + 198119, + 198120, + 198121, + 198122, + 198126, + 198130, + 198131, + 198135, + 198136, + 198137, + 198140, + 198141, + 198142, + 198143, + 198146, + 198147, + 198151, + 198152, + 198161, + 198164, + 198165, + 198169, + 198170, + 198176, + 198318, + 198322, + 198332, + 198343, + 198441, + 198487, + 198498, + 198499, + 198500, + 198501, + 198502, + 198503, + 198504, + 198505, + 198506, + 198509, + 198510, + 198511, + 198512, + 198513, + 198514, + 198523, + 198524, + 198543, + 198544, + 198549, + 198550, + 198551, + 198552, + 198555, + 198556, + 198559, + 198560, + 198571, + 198572, + 198573, + 198574, + 198575, + 198576, + 198579, + 198580, + 198581, + 198582, + 198587, + 198588, + 198589, + 198590, + 198593, + 198594, + 198595, + 198596, + 198604, + 198612, + 198616, + 198617, + 198618, + 198619, + 198620, + 198621, + 198622, + 198623, + 198624, + 198625, + 198626, + 198627, + 198628, + 198629, + 198635, + 198636, + 198637, + 198638, + 198641, + 198657, + 198658, + 198659, + 198660, + 198661, + 198662, + 198671, + 198672, + 198680, + 198681, + 198685, + 198692, + 198700, + 198726, + 198736, + 198741, + 198742, + 198743, + 198747, + 198748, + 198749, + 198750, + 198760, + 198774, + 198775, + 198776, + 198777, + 198785, + 198815, + 198827, + 198828, + 198832, + 198850, + 198851, + 198859, + 198860, + 198861, + 198862, + 198863, + 198864, + 198867, + 198881, + 198882, + 198888, + 198889, + 198890, + 198891, + 198903, + 198919, + 198931, + 198932, + 198933, + 198936, + 198937, + 198938, + 198939, + 198940, + 198941, + 198942, + 200261, + 200262, + 200263, + 200264, + 200265, + 200266, + 200267, + 200268, + 200269, + 200270, + 200271, + 200272, + 200273, + 200274, + 200388, + 200389, + 200390, + 200391, + 200392, + 200393, + 200394, + 200395, + 200396, + 200397, + 200398, + 200399, + 200400, + 200401, + 200402, + 200403, + 200404, + 200405, + 200406, + 200407, + 200408, + 200409, + 200410, + 200411, + 200412, + 200413, + 200414, + 200415, + 200416, + 200417, + 200418, + 200419, + 200420, + 200421, + 200422, + 200423, + 200424, + 200425, + 200426, + 200434, + 200435, + 200436, + 200437, + 200438, + 200439, + 200440, + 200441, + 200442, + 200443, + 200444, + 200445, + 200446, + 200447, + 200448, + 200449, + 200450, + 200451, + 200452, + 200453, + 200454, + 200455, + 200456, + 200457, + 200458, + 200459, + 200460, + 200461, + 200462, + 200463, + 200464, + 200465, + 200466, + 200467, + 200468, + 200469, + 200470, + 200471, + 200472, + 200473, + 200474, + 200475, + 200476, + 200477, + 200478, + 200479, + 200480, + 200481, + 200482, + 200483, + 200484, + 200485, + 200486, + 200487, + 200488, + 200489, + 200490, + 200491, + 200492, + 200493, + 200494, + 200495, + 200496, + 200497, + 200498, + 200499, + 200500, + 200501, + 200502, + 200503, + 200504, + 200505, + 200506, + 200507, + 200508, + 200509, + 200510, + 200511, + 200512, + 200513, + 200514, + 200515, + 200516, + 200517, + 200518, + 200519, + 200520, + 200521, + 200522, + 200523, + 200524, + 200525, + 200526, + 200527, + 200528, + 200529, + 200530, + 200531, + 200532, + 200533, + 200534, + 200535, + 200536, + 200537, + 200538, + 200539, + 200540, + 200541, + 200542, + 200543, + 200544, + 200545, + 200546, + 200547, + 200548, + 200549, + 200550, + 200551, + 200552, + 200553, + 200554, + 200555, + 200556, + 200557, + 200558, + 200559, + 200560, + 200561, + 200562, + 200563, + 200564, + 200565, + 200566, + 200567, + 200568, + 200569, + 200570, + 200571, + 200572, + 200573, + 200574, + 200575, + 200576, + 200577, + 200578, + 200579, + 200580, + 200581, + 200582, + 200583, + 200584, + 200585, + 200586, + 200587, + 200588, + 200589, + 200590, + 200591, + 200592, + 200593, + 200594, + 200595, + 200596, + 200597, + 200598, + 200599, + 200600, + 200601, + 200602, + 200603, + 200604, + 200605, + 200606, + 200607, + 200608, + 200609, + 200610, + 200611, + 200612, + 200613, + 200614, + 200615, + 200616, + 200617, + 200618, + 200619, + 200620, + 200621, + 200622, + 200623, + 200624, + 200625, + 200626, + 200627, + 200628, + 200629, + 200630, + 200631, + 200632, + 200633, + 200634, + 200635, + 200636, + 200637, + 200638, + 200639, + 200640, + 200641, + 200642, + 200643, + 200644, + 200645, + 200646, + 200647, + 200648, + 200649, + 200650, + 200651, + 200652, + 200653, + 200654, + 200655, + 200656, + 200657, + 200658, + 200659, + 200660, + 200661, + 200662, + 200663, + 200664, + 200665, + 200666, + 200667, + 200668, + 200669, + 200670, + 200671, + 200672, + 200673, + 200674, + 200675, + 200676, + 200722, + 200723, + 200724, + 200727, + 200728, + 200729, + 200730, + 200734, + 200737, + 201084, + 201088, + 201089, + 201090, + 201091, + 201092, + 201093, + 201094, + 201095, + 201096, + 201099, + 201100, + 201101, + 201102, + 201105, + 201106, + 201146, + 201441, + 201442, + 201443, + 201444, + 201445, + 201446, + 201447, + 201450, + 201454, + 201455, + 201458, + 201459, + 201465, + 201468, + 201469, + 201474, + 201475, + 201476, + 201477, + 201478, + 201479, + 201480, + 201481, + 201482, + 201483, + 201484, + 201485, + 201486, + 201491, + 201492, + 201509, + 201510, + 201514, + 201517, + 201576, + 201577, + 201581, + 201618, + 201619, + 201620, + 201621, + 201672, + 201673, + 201674, + 201783, + 201784, + 201785, + 201850, + 201851, + 201854, + 201858, + 201864, + 201876, + 201880, + 201892, + 201893, + 201894, + 201895, + 201896, + 201897, + 201898, + 201899, + 201900, + 201901, + 201902, + 201903, + 201904, + 201905, + 201906, + 201907, + 201908, + 201909, + 201910, + 201911, + 201912, + 201913, + 201914, + 201915, + 201916, + 201917, + 201918, + 201919, + 201920, + 201921, + 201922, + 201923, + 201924, + 201925, + 201926, + 201927, + 201928, + 201929, + 201930, + 201931, + 201932, + 201933, + 201934, + 201935, + 201936, + 201937, + 201938, + 201939, + 201940, + 201941, + 201942, + 201943, + 201944, + 201945, + 201946, + 201947, + 201948, + 201949, + 201950, + 201951, + 201952, + 201953, + 201954, + 201955, + 201956, + 201957, + 201958, + 201959, + 201960, + 201961, + 201962, + 201963, + 201964, + 201965, + 201966, + 201967, + 201968, + 201969, + 201970, + 201971, + 201972, + 201973, + 201974, + 201975, + 201976, + 201977, + 201978, + 201979, + 201980, + 201981, + 201982, + 201983, + 201984, + 201985, + 201986, + 201987, + 201988, + 201989, + 201990, + 201991, + 201992, + 201993, + 201994, + 201995, + 201996, + 201997, + 201998, + 201999, + 202000, + 202001, + 202002, + 202003, + 202004, + 202005, + 202006, + 202007, + 202008, + 202009, + 202010, + 202011, + 202012, + 202013, + 202014, + 202015, + 202016, + 202017, + 202018, + 202019, + 202020, + 202021, + 202022, + 202023, + 202024, + 202025, + 202026, + 202027, + 202028, + 202029, + 202030, + 202031, + 202032, + 202033, + 202034, + 202035, + 202036, + 202037, + 202038, + 202054, + 202055, + 202056, + 202057, + 202155, + 202156, + 202266, + 202267, + 202268, + 202269, + 202606, + 202711, + 202712, + 202713, + 202714, + 203070, + 203678, + 203679, + 203680, + 203681, + 203682, + 203694, + 203695, + 203696, + 203697, + 203698, + 203710, + 203711, + 203712, + 203713, + 203714, + 203726, + 203727, + 203728, + 203729, + 203730, + 203742, + 203743, + 203744, + 203745, + 203746, + 203758, + 203759, + 203760, + 203761, + 203762, + 203774, + 203775, + 203776, + 203777, + 203778, + 203779, + 203790, + 203791, + 203792, + 203793, + 203794, + 206186, + 206210, + 206211, + 206212, + 206213, + 206214, + 206260, + 206261, + 206262, + 206263, + 206264, + 206287, + 206288, + 206289, + 206290, + 206291, + 206292, + 206297, + 206298, + 206299, + 206300, + 206301, + 206306, + 206307, + 206308, + 206309, + 206310, + 206311, + 206321, + 206322, + 206323, + 206324, + 206325, + 206326, + 206327, + 206328, + 206329, + 206330, + 206331, + 206332, + 206333, + 206334, + 206335, + 206336, + 206339, + 206340, + 206341, + 206342, + 206343, + 206354, + 206442, + 206456, + 206499, + 206965, + 206966, + 206967, + 207112, + 207343, + 207344, + 207365, + 207366, + 207739, + 207755, + 210671, + 210672, + 210673, + 210695, + 210696, + 210697, + 210698, + 210699, + 210700, + 210703, + 210704, + 210733, + 210738, + 210750, + 210751, + 210755, + 210756, + 210764, + 210765, + 210789, + 210790, + 210805, + 210806, + 210843, + 210844, + 210845, + 210846, + 211091, + 211111, + 211112, + 211235, + 211236, + 211237, + 211238, + 211239, + 211240, + 211241, + 211242, + 211372, + 211412, + 211413, + 211422, + 211423, + 211424, + 211425, + 211426, + 211431, + 211432, + 211433, + 211434, + 211435, + 211436, + 211437, + 211438, + 211536, + 211537, + 211609, + 211610, + 211611, + 211619, + 211626, + 211627, + 211628, + 211629, + 211630, + 211631, + 211632, + 211633, + 211634, + 211635, + 211636, + 211637, + 211638, + 211639, + 211640, + 211641, + 211642, + 211643, + 211644, + 211645, + 211646, + 211647, + 211648, + 211656, + 211662, + 211668, + 211673, + 211674, + 211679, + 211680, + 211686, + 211698, + 211699, + 211700, + 211701, + 211702, + 211703, + 211704, + 211705, + 211706, + 211707, + 211708, + 211709, + 211710, + 211711, + 211712, + 211713, + 211714, + 211715, + 211716, + 211717, + 211718, + 211719, + 211720, + 211721, + 211722, + 211723, + 211724, + 211725, + 211726, + 211727, + 211728, + 211734, + 211735, + 211736, + 211737, + 211738, + 211739, + 211740, + 211769, + 211770, + 211780, + 212182, + 212202, + 212207, + 212208, + 212209, + 212210, + 212211, + 212212, + 212213, + 212214, + 212215, + 212216, + 212217, + 212218, + 212219, + 212220, + 212221, + 212222, + 212223, + 212224, + 212225, + 212226, + 212227, + 212228, + 212229, + 212230, + 212231, + 212232, + 212233, + 212234, + 212235, + 212236, + 212237, + 212238, + 212239, + 212240, + 212241, + 212247, + 212436, + 212446, + 212447, + 212448, + 212449, + 212450, + 212451, + 212452, + 212453, + 212454, + 212455, + 212456, + 212457, + 212458, + 212459, + 212460, + 212461, + 212462, + 212463, + 212464, + 212465, + 212466, + 212467, + 212468, + 212469, + 212470, + 212471, + 212472, + 212473, + 212474, + 212475, + 212476, + 212477, + 212478, + 212479, + 212480, + 212481, + 212482, + 212483, + 212484, + 212485, + 212486, + 212487, + 212488, + 212489, + 212490, + 212491, + 212492, + 212493, + 212494, + 212495, + 212496, + 212497, + 212498, + 212499, + 212500, + 212501, + 212502, + 212503, + 212504, + 212505, + 212506, + 212507, + 212508, + 212509, + 212510, + 212511, + 212512, + 212513, + 212514, + 212515, + 212516, + 212517, + 212518, + 212519, + 212520, + 212521, + 212522, + 212523, + 212524, + 212525, + 212526, + 212527, + 212528, + 212529, + 212530, + 212531, + 212532, + 212533, + 212534, + 212535, + 212536, + 212537, + 212538, + 212539, + 212540, + 212541, + 212542, + 212543, + 212544, + 212545, + 212546, + 212547, + 212548, + 212549, + 212550, + 212551, + 212552, + 212553, + 212554, + 212555, + 212556, + 212568, + 212569, + 212570, + 212571, + 212572, + 212573, + 212574, + 212575, + 212576, + 212577, + 212578, + 212579, + 212580, + 212581, + 212582, + 212583, + 212584, + 212585, + 212586, + 212596, + 212597, + 212598, + 212599, + 212600, + 212601, + 212602, + 212603, + 212604, + 212605, + 212606, + 212607, + 212608, + 212609, + 212610, + 212611, + 212612, + 212613, + 212614, + 212615, + 212616, + 212617, + 212618, + 212619, + 212620, + 212621, + 212622, + 212623, + 212624, + 212625, + 212626, + 212627, + 212628, + 212649, + 212650, + 212651, + 212652, + 212653, + 212654, + 212655, + 212656, + 212657, + 212658, + 212659, + 212660, + 212661, + 212662, + 212663, + 212664, + 212697, + 212698, + 212699, + 212700, + 212701, + 212702, + 212703, + 212704, + 212705, + 212706, + 212707, + 212708, + 212709, + 212710, + 212714, + 212715, + 212818, + 212819, + 212822, + 212823, + 212824, + 212825, + 212826, + 212827, + 212828, + 212829, + 212830, + 212831, + 212832, + 212833, + 212834, + 212835, + 212836, + 212837, + 212967, + 212968, + 212969, + 212970, + 212971, + 212972, + 212973, + 212974, + 212975, + 212976, + 212977, + 212978, + 212979, + 212980, + 212981, + 212982, + 212983, + 212984, + 212985, + 212986, + 212987, + 212988, + 212989, + 212990, + 212991, + 212992, + 212993, + 212994, + 212995, + 212996, + 212997, + 212998, + 212999, + 213000, + 213001, + 213002, + 213003, + 213004, + 213005, + 213006, + 213007, + 213008, + 213009, + 213010, + 213011, + 213012, + 213013, + 213014, + 213015, + 213016, + 213017, + 213018, + 213019, + 213020, + 213021, + 213022, + 213023, + 213024, + 213025, + 213026, + 213027, + 213028, + 213029, + 213030, + 213031, + 213032, + 213033, + 213034, + 213035, + 213036, + 213037, + 213038, + 213039, + 213040, + 213041, + 213042, + 213043, + 213044, + 213045, + 213046, + 213047, + 213048, + 213049, + 213050, + 213051, + 213052, + 213053, + 213054, + 213055, + 213056, + 213057, + 213058, + 213059, + 213060, + 213061, + 213062, + 213063, + 213064, + 213065, + 213066, + 213067, + 213068, + 213069, + 213070, + 213071, + 213072, + 213073, + 213074, + 213075, + 213076, + 213077, + 213078, + 213079, + 213080, + 213081, + 213082, + 213083, + 213084, + 213085, + 213086, + 213087, + 213088, + 213089, + 213090, + 213091, + 213092, + 213093, + 213094, + 213110, + 213118, + 213119 + ] + }, + { + "source": "GAME.EXE", + "offset": 198960, + "bad-references": [ + 16536, + 16588, + 17355, + 17395, + 18365, + 18405, + 19045, + 19243, + 33327, + 33989, + 34405, + 34805, + 38848, + 45993, + 52421, + 59329, + 60731, + 68467, + 70085, + 70653, + 71071, + 71265, + 71325, + 80935, + 81003, + 84971, + 94818, + 94988, + 96212, + 97065, + 97179, + 101426, + 101448, + 101624, + 101782, + 101834, + 101924, + 102169, + 102247, + 102290, + 102343, + 102783, + 109116, + 109147, + 131043, + 131043, + 133768, + 149656, + 151962, + 162456, + 164011, + 178453, + 180129, + 182117, + 182125, + 182137, + 182145, + 182181, + 183655, + 183677, + 183697, + 183703, + 198518, + 201114, + 203757, + 207093, + 211409, + 211411, + 212821 + ] + }, + { + "source": "GAME.EXE", + "offset": 198971, + "bad-references": [ + 131125, + 131125, + 198520, + 207697 + ] + }, + { + "source": "GAME.EXE", + "offset": 198979, + "bad-references": [ + 131147, + 131147, + 198522, + 207109, + 207201, + 207334 + ] + }, + { + "source": "GAME.EXE", + "offset": 198987, + "bad-references": [ + 131169, + 131169, + 198789, + 198818, + 207217, + 207338, + 212567, + 212817 + ] + }, + { + "source": "GAME.EXE", + "offset": 198994, + "bad-references": [ + 82919, + 82942, + 83024, + 118109, + 131193, + 131193, + 173833, + 174085, + 207165, + 207229 + ] + }, + { + "source": "GAME.EXE", + "offset": 199005, + "bad-references": [ + 132026, + 132026, + 157501, + 166732, + 207660, + 210393, + 210407 + ] + }, + { + "source": "GAME.EXE", + "offset": 199018, + "bad-references": [ + 132276, + 132276, + 204112, + 204140, + 204157, + 204163 + ] + }, + { + "source": "GAME.EXE", + "offset": 199031, + "bad-references": [ + 134699, + 134699, + 192753, + 198536, + 201241, + 201247, + 204213, + 204332, + 207584 + ] + }, + { + "source": "GAME.EXE", + "offset": 199050, + "bad-references": [ + 134716, + 134716 + ] + }, + { + "source": "GAME.EXE", + "offset": 199067, + "bad-references": [ + 134743, + 134743, + 205985, + 205993, + 207464 + ] + }, + { + "source": "GAME.EXE", + "offset": 199076, + "bad-references": [ + 29588, + 39801, + 134851, + 134851, + 207354, + 207520, + 211750 + ] + }, + { + "source": "GAME.EXE", + "offset": 199092, + "bad-references": [ + 36593, + 42287, + 134897, + 134897 + ] + }, + { + "source": "GAME.EXE", + "offset": 199107, + "bad-references": [ + 38458, + 134934, + 134934, + 206315 + ] + }, + { + "source": "GAME.EXE", + "offset": 199114, + "bad-references": [ + 29782, + 134983, + 134983 + ] + }, + { + "source": "GAME.EXE", + "offset": 199124, + "bad-references": [ + 19917, + 35125, + 35599, + 35755, + 35868, + 39016, + 40401, + 44187, + 44289, + 44304, + 44337, + 44395, + 44452, + 44538, + 44651, + 45271, + 50239, + 50254, + 53095, + 53123, + 135286, + 135286, + 147643, + 156637, + 156685, + 165448, + 165509, + 207504, + 211764 + ] + }, + { + "source": "GAME.EXE", + "offset": 199141, + "bad-references": [ + 135328, + 135328 + ] + }, + { + "source": "GAME.EXE", + "offset": 199148, + "bad-references": [ + 30912, + 30912, + 31675, + 31675, + 135594, + 135594 + ] + }, + { + "source": "GAME.EXE", + "offset": 199155, + "bad-references": [ + 29991, + 29991, + 207364 + ] + }, + { + "source": "GAME.EXE", + "offset": 199167, + "bad-references": [ + 30081, + 30081, + 157847, + 202139, + 207596 + ] + }, + { + "source": "GAME.EXE", + "offset": 199190, + "bad-references": [ + 30328, + 30328, + 207616 + ] + }, + { + "source": "GAME.EXE", + "offset": 199201, + "bad-references": [ + 30511, + 30511, + 67088, + 129138, + 181919, + 200691, + 200692, + 200701, + 200702, + 201116, + 201198, + 201199, + 201452, + 201794, + 201862, + 201886, + 206356, + 206444, + 206450, + 206451, + 206788, + 207114, + 207770, + 207771, + 207780, + 207781, + 210693, + 211512, + 211525, + 211783 + ] + }, + { + "source": "GAME.EXE", + "offset": 199214, + "bad-references": [ + 207492, + 207664, + 207787 + ] + }, + { + "source": "GAME.EXE", + "offset": 199221, + "bad-references": [ + 31005, + 31005, + 204097 + ] + }, + { + "source": "GAME.EXE", + "offset": 199233, + "bad-references": [ + 31130, + 31130 + ] + }, + { + "source": "GAME.EXE", + "offset": 199240, + "bad-references": [ + 172838, + 172838, + 201639, + 207656 + ] + }, + { + "source": "GAME.EXE", + "offset": 199285, + "bad-references": [ + 134470, + 134470 + ] + }, + { + "source": "GAME.EXE", + "offset": 199312, + "bad-references": [ + 135142, + 135142, + 183633, + 197886, + 207053, + 207745 + ] + }, + { + "source": "GAME.EXE", + "offset": 199329, + "bad-references": [ + 38806, + 72135, + 107331, + 107331, + 197826, + 201666, + 207041 + ] + }, + { + "source": "GAME.EXE", + "offset": 199343, + "bad-references": [ + 107399, + 107399, + 127484, + 157548 + ] + }, + { + "source": "GAME.EXE", + "offset": 199359, + "bad-references": [ + 124811, + 132375, + 132375, + 197912, + 207600, + 207797 + ] + }, + { + "source": "GAME.EXE", + "offset": 199379, + "bad-references": [ + 24896, + 25694, + 25694, + 132611, + 132611, + 176380, + 206192 + ] + }, + { + "source": "GAME.EXE", + "offset": 199394, + "bad-references": [ + 132474, + 132474, + 170628 + ] + }, + { + "source": "GAME.EXE", + "offset": 199421, + "bad-references": [ + 132544, + 132544, + 213112, + 213114 + ] + }, + { + "source": "GAME.EXE", + "offset": 199443, + "bad-references": [ + 27200, + 27200, + 73504, + 73504, + 87389, + 87389, + 154777, + 154777, + 206238 + ] + }, + { + "source": "GAME.EXE", + "offset": 199464, + "bad-references": [ + 130449, + 130449 + ] + }, + { + "source": "GAME.EXE", + "offset": 199485, + "bad-references": [ + 133706, + 133706 + ] + }, + { + "source": "GAME.EXE", + "offset": 199502, + "bad-references": [ + 30671, + 30671 + ] + }, + { + "source": "GAME.EXE", + "offset": 199517, + "bad-references": [ + 30621, + 30621, + 203862 + ] + }, + { + "source": "GAME.EXE", + "offset": 199536, + "bad-references": [ + 135166, + 135166 + ] + }, + { + "source": "GAME.EXE", + "offset": 199551, + "bad-references": [ + 118514, + 118514, + 203900 + ] + }, + { + "source": "GAME.EXE", + "offset": 199607, + "bad-references": [ + 118567, + 118567 + ] + }, + { + "source": "GAME.EXE", + "offset": 199673, + "bad-references": [ + 118946, + 118946 + ] + }, + { + "source": "GAME.EXE", + "offset": 199708, + "bad-references": [ + 119144, + 119144 + ] + }, + { + "source": "GAME.EXE", + "offset": 199733, + "bad-references": [ + 30653, + 30653, + 135393, + 135393, + 167734, + 167734, + 197962 + ] + }, + { + "source": "GAME.EXE", + "offset": 199757, + "bad-references": [ + 122495, + 122495 + ] + }, + { + "source": "GAME.EXE", + "offset": 199796, + "bad-references": [ + 122569, + 122569 + ] + }, + { + "source": "GAME.EXE", + "offset": 199842, + "bad-references": [ + 103761, + 103761 + ] + }, + { + "source": "GAME.EXE", + "offset": 199896, + "bad-references": [ + 110483, + 110483, + 115187 + ] + }, + { + "source": "GAME.EXE", + "offset": 199931, + "bad-references": [ + 38305, + 38305, + 203749 + ] + }, + { + "source": "GAME.EXE", + "offset": 199969, + "bad-references": [ + 130624, + 130624, + 198207, + 198234, + 207370 + ] + }, + { + "source": "GAME.EXE", + "offset": 199982, + "bad-references": [ + 27526, + 27526, + 29308, + 128664, + 128664, + 203603, + 203958 + ] + }, + { + "source": "GAME.EXE", + "offset": 199989, + "bad-references": [ + 30543, + 31037, + 31098 + ] + }, + { + "source": "GAME.EXE", + "offset": 199993, + "bad-references": [ + 30734, + 30776 + ] + }, + { + "source": "GAME.EXE", + "offset": 200002, + "bad-references": [ + 30596, + 30596 + ] + }, + { + "source": "GAME.EXE", + "offset": 200021, + "bad-references": [ + 30119, + 30119, + 31387 + ] + }, + { + "source": "GAME.EXE", + "offset": 200042, + "bad-references": [ + 131707, + 131707 + ] + }, + { + "source": "GAME.EXE", + "offset": 200063, + "bad-references": [ + 110001, + 110001 + ] + }, + { + "source": "GAME.EXE", + "offset": 200091, + "bad-references": [ + 25555, + 25555 + ] + }, + { + "source": "GAME.EXE", + "offset": 200115, + "bad-references": [ + 110185, + 110185 + ] + }, + { + "source": "GAME.EXE", + "offset": 200152, + "bad-references": [ + 29948, + 29948, + 32888, + 116663 + ] + }, + { + "source": "GAME.EXE", + "offset": 200175, + "bad-references": [ + 28747, + 28747 + ] + }, + { + "source": "GAME.EXE", + "offset": 200199, + "bad-references": [ + 31340, + 31340 + ] + }, + { + "source": "GAME.EXE", + "offset": 200209, + "bad-references": [ + 31305, + 31305 + ] + }, + { + "source": "GAME.EXE", + "offset": 200220, + "bad-references": [ + 188283, + 188283 + ] + }, + { + "source": "GAME.EXE", + "offset": 200249, + "bad-references": [ + 31425, + 31425, + 197925 + ] + }, + { + "source": "GAME.EXE", + "offset": 200822, + "bad-references": [ + 200706, + 202295 + ] + }, + { + "source": "GAME.EXE", + "offset": 200838, + "bad-references": [ + 101530, + 200710, + 211382 + ] + }, + { + "source": "GAME.EXE", + "offset": 200859, + "bad-references": [ + 200716, + 203870 + ] + }, + { + "source": "GAME.EXE", + "offset": 200869, + "bad-references": [ + 200718, + 202311, + 203886 + ] + }, + { + "source": "GAME.EXE", + "offset": 200874, + "bad-references": [ + 200720, + 203892 + ] + }, + { + "source": "GAME.EXE", + "offset": 200884, + "bad-references": [ + 18238, + 202319 + ] + }, + { + "source": "GAME.EXE", + "offset": 201240, + "bad-references": [ + 19272, + 19320, + 19387, + 19437, + 19487, + 201139 + ] + }, + { + "source": "GAME.EXE", + "offset": 201272, + "bad-references": [ + 27278, + 27437, + 27477, + 173411, + 173506, + 174069, + 184119, + 201206, + 204024, + 204034 + ] + }, + { + "source": "GAME.EXE", + "offset": 201296, + "bad-references": [ + 18818, + 20887, + 21247, + 55974, + 66244, + 87331, + 112468, + 131912, + 148478, + 149738, + 154005, + 155118, + 157729, + 157873, + 169939, + 175260, + 183536, + 184096, + 184124, + 189150, + 189191, + 189345, + 191210, + 191251, + 191405, + 198123, + 198153, + 198166, + 198171, + 198507, + 198599, + 201174, + 201216, + 206904, + 207068, + 207268, + 207302, + 207309, + 207373, + 212561, + 212689, + 212691, + 212693 + ] + }, + { + "source": "GAME.EXE", + "offset": 201300, + "bad-references": [ + 21377, + 198167, + 198194, + 198210, + 198211, + 201217, + 201218, + 201812, + 201818, + 206471, + 206477, + 206478, + 206484, + 206812, + 206813, + 206905, + 206906, + 206907, + 206908, + 207294, + 207295, + 207296, + 207297, + 207298, + 207299, + 211484, + 211485, + 212910, + 212911, + 212912, + 212913, + 212914, + 212915, + 212916, + 212917, + 212918, + 212919, + 212920, + 212921, + 212922, + 212923, + 212924, + 212925, + 212926, + 212927, + 212928 + ] + }, + { + "source": "GAME.EXE", + "offset": 201305, + "bad-references": [ + 198055, + 198093, + 201220, + 201579 + ] + }, + { + "source": "GAME.EXE", + "offset": 201325, + "bad-references": [ + 31066, + 203964 + ] + }, + { + "source": "GAME.EXE", + "offset": 201340, + "bad-references": [ + 31355, + 203970 + ] + }, + { + "source": "GAME.EXE", + "offset": 201349, + "bad-references": [ + 30119, + 31387 + ] + }, + { + "source": "GAME.EXE", + "offset": 201356, + "bad-references": [ + 31470, + 203978 + ] + }, + { + "source": "GAME.EXE", + "offset": 201381, + "bad-references": [ + 26718, + 31500 + ] + }, + { + "source": "GAME.EXE", + "offset": 202582, + "bad-references": [ + 73381, + 73862 + ] + }, + { + "source": "GAME.EXE", + "offset": 202847, + "bad-references": [ + 81865, + 198066, + 207277 + ] + }, + { + "source": "GAME.EXE", + "offset": 202851, + "bad-references": [ + 82171, + 198006 + ] + }, + { + "source": "GAME.EXE", + "offset": 202950, + "bad-references": [ + 82627, + 171299 + ] + }, + { + "source": "GAME.EXE", + "offset": 202972, + "bad-references": [ + 82750, + 204020 + ] + }, + { + "source": "GAME.EXE", + "offset": 204636, + "bad-references": [ + 146845, + 203428 + ] + }, + { + "source": "GAME.EXE", + "offset": 204678, + "bad-references": [ + 203450, + 210714 + ] + }, + { + "source": "GAME.EXE", + "offset": 204707, + "bad-references": [ + 203456, + 207011 + ] + }, + { + "source": "GAME.EXE", + "offset": 204898, + "bad-references": [ + 203515, + 203516 + ] + }, + { + "source": "GAME.EXE", + "offset": 205162, + "bad-references": [ + 203608, + 203738 + ] + }, + { + "source": "GAME.EXE", + "offset": 205393, + "bad-references": [ + 198108, + 198236, + 203824 + ] + }, + { + "source": "GAME.EXE", + "offset": 205403, + "bad-references": [ + 198036, + 203826 + ] + }, + { + "source": "GAME.EXE", + "offset": 205492, + "bad-references": [ + 198266, + 203844 + ] + }, + { + "source": "GAME.EXE", + "offset": 205549, + "bad-references": [ + 85917, + 86212, + 88565, + 88584, + 90908, + 91382, + 91401, + 92901, + 93280, + 93858, + 95387, + 96370, + 97488, + 97854, + 98293, + 99066, + 99310, + 99499, + 102702 + ] + }, + { + "source": "GAME.EXE", + "offset": 205558, + "bad-references": [ + 86676, + 86820, + 86977, + 87374, + 87836, + 88041, + 88453, + 88685, + 89215, + 89340, + 91015, + 91505, + 92931, + 93310, + 93888, + 95475, + 96060, + 96471, + 96766, + 97518, + 97928, + 98383, + 98986, + 99096, + 99224, + 99339, + 99529, + 101026 + ] + }, + { + "source": "GAME.EXE", + "offset": 205574, + "bad-references": [ + 88652, + 90982, + 91472, + 95442, + 95830, + 96438, + 96733, + 97895 + ] + }, + { + "source": "GAME.EXE", + "offset": 205578, + "bad-references": [ + 90156, + 90186, + 90216, + 91137, + 91209, + 92501, + 92527, + 92565, + 92990, + 93149, + 93195, + 93362, + 93757, + 93776, + 93940, + 94239, + 94264, + 94283, + 94779, + 95238, + 95583, + 95890, + 95995, + 96293, + 96577, + 96808, + 97085, + 97136, + 97421, + 97573, + 97746, + 97777, + 97988, + 98754, + 99039, + 99179, + 99391, + 99434, + 99629, + 100684, + 100703, + 101859 + ] + }, + { + "source": "GAME.EXE", + "offset": 205599, + "bad-references": [ + 90320, + 90339, + 91677 + ] + }, + { + "source": "GAME.EXE", + "offset": 205663, + "bad-references": [ + 203089, + 204090 + ] + }, + { + "source": "GAME.EXE", + "offset": 205731, + "bad-references": [ + 92240, + 207015, + 207019 + ] + }, + { + "source": "GAME.EXE", + "offset": 205882, + "bad-references": [ + 95783, + 100893 + ] + }, + { + "source": "GAME.EXE", + "offset": 205942, + "bad-references": [ + 98038, + 206378, + 206926, + 206937, + 206948, + 206959 + ] + }, + { + "source": "GAME.EXE", + "offset": 205967, + "bad-references": [ + 98324, + 102733 + ] + }, + { + "source": "GAME.EXE", + "offset": 206673, + "bad-references": [ + 206418, + 206515 + ] + }, + { + "source": "GAME.EXE", + "offset": 206687, + "bad-references": [ + 197941, + 197988, + 206420 + ] + }, + { + "source": "GAME.EXE", + "offset": 206700, + "bad-references": [ + 206422, + 211156 + ] + }, + { + "source": "GAME.EXE", + "offset": 206712, + "bad-references": [ + 201512, + 206424 + ] + }, + { + "source": "GAME.EXE", + "offset": 207267, + "bad-references": [ + 207696, + 210726 + ] + }, + { + "source": "GAME.EXE", + "offset": 207894, + "bad-references": [ + 145637, + 145956, + 147143, + 147348, + 151578, + 162801 + ] + }, + { + "source": "GAME.EXE", + "offset": 207967, + "bad-references": [ + 146339, + 198294, + 203107 + ] + }, + { + "source": "GAME.EXE", + "offset": 208084, + "bad-references": [ + 146567, + 146640 + ] + }, + { + "source": "GAME.EXE", + "offset": 208090, + "bad-references": [ + 146981, + 156212, + 156876 + ] + }, + { + "source": "GAME.EXE", + "offset": 208093, + "bad-references": [ + 147012, + 156243 + ] + }, + { + "source": "GAME.EXE", + "offset": 208210, + "bad-references": [ + 147780, + 165565 + ] + }, + { + "source": "GAME.EXE", + "offset": 208227, + "bad-references": [ + 148150, + 149422, + 150745, + 150838, + 150992, + 154664, + 156133, + 156521, + 156655, + 156757, + 156847, + 157118, + 157793, + 162224, + 162243, + 163376, + 163395, + 165964, + 167682, + 168600, + 169137, + 169233 + ] + }, + { + "source": "GAME.EXE", + "offset": 208244, + "bad-references": [ + 149165, + 150451, + 163980, + 167915 + ] + }, + { + "source": "GAME.EXE", + "offset": 208312, + "bad-references": [ + 150021, + 168354 + ] + }, + { + "source": "GAME.EXE", + "offset": 208326, + "bad-references": [ + 150597, + 151339 + ] + }, + { + "source": "GAME.EXE", + "offset": 208330, + "bad-references": [ + 150619, + 162960, + 165785 + ] + }, + { + "source": "GAME.EXE", + "offset": 208340, + "bad-references": [ + 150644, + 162985, + 165810 + ] + }, + { + "source": "GAME.EXE", + "offset": 208374, + "bad-references": [ + 151370, + 162819, + 162858 + ] + }, + { + "source": "GAME.EXE", + "offset": 208466, + "bad-references": [ + 152158, + 211793 + ] + }, + { + "source": "GAME.EXE", + "offset": 208505, + "bad-references": [ + 152179, + 198379, + 198383, + 200298, + 211202 + ] + }, + { + "source": "GAME.EXE", + "offset": 208581, + "bad-references": [ + 152230, + 199556, + 199587, + 199652, + 199847, + 199899, + 200117, + 201027, + 201408, + 202891, + 202976, + 202986, + 205518, + 207856, + 207900, + 207950, + 208552, + 209078, + 209186, + 209208, + 209500, + 209571, + 209831, + 209866, + 209936, + 209955, + 209988, + 210006, + 210035, + 210270, + 210532, + 210588, + 212164, + 212333 + ] + }, + { + "source": "GAME.EXE", + "offset": 208802, + "bad-references": [ + 153077, + 199837, + 200893 + ] + }, + { + "source": "GAME.EXE", + "offset": 208815, + "bad-references": [ + 153354, + 153738 + ] + }, + { + "source": "GAME.EXE", + "offset": 208855, + "bad-references": [ + 153403, + 153888 + ] + }, + { + "source": "GAME.EXE", + "offset": 208864, + "bad-references": [ + 153424, + 153580, + 153660, + 153941 + ] + }, + { + "source": "GAME.EXE", + "offset": 208883, + "bad-references": [ + 153496, + 153805 + ] + }, + { + "source": "GAME.EXE", + "offset": 208892, + "bad-references": [ + 153529, + 153645, + 153983 + ] + }, + { + "source": "GAME.EXE", + "offset": 209075, + "bad-references": [ + 156437, + 156571 + ] + }, + { + "source": "GAME.EXE", + "offset": 209470, + "bad-references": [ + 160456, + 160848 + ] + }, + { + "source": "GAME.EXE", + "offset": 209498, + "bad-references": [ + 160476, + 160862, + 212647 + ] + }, + { + "source": "GAME.EXE", + "offset": 209701, + "bad-references": [ + 161656, + 164858 + ] + }, + { + "source": "GAME.EXE", + "offset": 210003, + "bad-references": [ + 163271, + 203909, + 206275 + ] + }, + { + "source": "GAME.EXE", + "offset": 210032, + "bad-references": [ + 163358, + 206914 + ] + }, + { + "source": "GAME.EXE", + "offset": 210420, + "bad-references": [ + 166034, + 166786, + 168079 + ] + }, + { + "source": "GAME.EXE", + "offset": 210657, + "bad-references": [ + 94015, + 169027 + ] + }, + { + "source": "GAME.EXE", + "offset": 211806, + "bad-references": [ + 186908, + 187545 + ] + }, + { + "source": "GAME.EXE", + "offset": 211808, + "bad-references": [ + 186320, + 203347 + ] + }, + { + "source": "GAME.EXE", + "offset": 211907, + "bad-references": [ + 186488, + 199047, + 199064, + 199073, + 199138, + 201322, + 208087 + ] + }, + { + "source": "GAME.EXE", + "offset": 212096, + "bad-references": [ + 187324, + 200793, + 211116, + 211133, + 211150 + ] + }, + { + "source": "GAME.EXE", + "offset": 212123, + "bad-references": [ + 187576, + 207827 + ] + }, + { + "source": "INSTALL.EXE", + "offset": 22068, + "bad-references": [ + 2274, + 4549, + 4657, + 4703, + 11254, + 12382, + 12446, + 12506, + 12602, + 13755, + 16176, + 18917, + 19190, + 22780, + 22793, + 26718 + ] + }, + { + "source": "INSTALL.EXE", + "offset": 22111, + "bad-references": [ + 1854, + 1877 + ] + }, + { + "source": "INSTALL.EXE", + "offset": 22482, + "bad-references": [ + 9747, + 9912 + ] + }, + { + "source": "INSTALL.EXE", + "offset": 22640, + "bad-references": [ + 22746, + 22754, + 26440 + ] + }, + { + "source": "INSTALL.EXE", + "offset": 22832, + "bad-references": [ + 22684, + 22794 + ] + }, + { + "source": "U.EXE", + "offset": 92132, + "bad-references": [ + 16837, + 17068, + 17208 + ] + }, { "source": "U.EXE", "offset": 92153, @@ -61,4 +3519,4 @@ 108249 ] } -] +] \ No newline at end of file diff --git a/tools/duplicates.py b/tools/duplicates.py index 1ace8fab..09fa0950 100644 --- a/tools/duplicates.py +++ b/tools/duplicates.py @@ -1,5 +1,6 @@ import json import os +import sys output_directory = os.getcwd() @@ -9,14 +10,25 @@ references = {(x['source'], x['offset']): x['references'] for x in json.loads(f.read())} with open('patches/bad-references.json') as f: - for x in json.loads(f.read()): - bad = set(x['bad-references']) - references[(x['source'], x['offset'])] = [ - y - for y in references[(x['source'], x['offset'])] - if y['origin'] not in bad - ] + br = json.loads(f.read()) + +for x in br: + bad = set(x['bad-references']) + references[(x['source'], x['offset'])] = [ + y + for y in references[(x['source'], x['offset'])] + if y['origin'] not in bad + ] for k, v in references.items(): if len(v) > 1: print('WARNING', k[0], hex(k[1]), len(v), 'references:', ', '.join((hex(x['origin']) for x in v))) + +if sys.argv[1:] == ['--fix']: + for k, v in references.items(): + if len(v) > 1: + br.append({'source': k[0], 'offset': k[1], 'bad-references': [x['origin'] for x in v]}) + + br = sorted(br, key=lambda x: (x['source'], x['offset'])) + with open('patches/bad-references.json', 'w') as f: + f.write(json.dumps(br, indent=4)) From 30928102470388985a657815fd5d1eaa01e1cd10 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 26 May 2024 23:07:50 +0300 Subject: [PATCH 2/9] Truncated russian strings temporarily. --- docker-compose.yml | 5 +- patches/bad-references.json | 3460 +---------------------------------- screenshots/U/create.png | Bin 0 -> 21130 bytes screenshots/U/inside.png | Bin 0 -> 12877 bytes screenshots/U/name.png | Bin 0 -> 5933 bytes screenshots/U/new.png | Bin 0 -> 8905 bytes screenshots/U/scroll.png | Bin 0 -> 21121 bytes tests/__init__.py | 17 +- tests/test_game.py | 6 +- tests/test_u.py | 41 +- tests/testgame/OBJBLKAA | Bin 0 -> 18 bytes tests/testgame/OBJBLKAB | Bin 0 -> 1666 bytes tests/testgame/OBJBLKAC | Bin 0 -> 74 bytes tests/testgame/OBJBLKAD | Bin 0 -> 1242 bytes tests/testgame/OBJBLKAE | Bin 0 -> 1802 bytes tests/testgame/OBJBLKAF | Bin 0 -> 2 bytes tests/testgame/OBJBLKAG | Bin 0 -> 386 bytes tests/testgame/OBJBLKAH | Bin 0 -> 258 bytes tests/testgame/OBJBLKAI | Bin 0 -> 14298 bytes tests/testgame/OBJBLKBA | Bin 0 -> 50 bytes tests/testgame/OBJBLKBB | Bin 0 -> 5426 bytes tests/testgame/OBJBLKBC | Bin 0 -> 354 bytes tests/testgame/OBJBLKBD | Bin 0 -> 594 bytes tests/testgame/OBJBLKBE | Bin 0 -> 90 bytes tests/testgame/OBJBLKBF | Bin 0 -> 34 bytes tests/testgame/OBJBLKBG | Bin 0 -> 2122 bytes tests/testgame/OBJBLKBH | Bin 0 -> 946 bytes tests/testgame/OBJBLKBI | Bin 0 -> 14306 bytes tests/testgame/OBJBLKCA | Bin 0 -> 498 bytes tests/testgame/OBJBLKCB | Bin 0 -> 1018 bytes tests/testgame/OBJBLKCC | Bin 0 -> 6914 bytes tests/testgame/OBJBLKCD | Bin 0 -> 7554 bytes tests/testgame/OBJBLKCE | Bin 0 -> 3034 bytes tests/testgame/OBJBLKCF | Bin 0 -> 146 bytes tests/testgame/OBJBLKCG | Bin 0 -> 266 bytes tests/testgame/OBJBLKCH | Bin 0 -> 2 bytes tests/testgame/OBJBLKCI | Bin 0 -> 13786 bytes tests/testgame/OBJBLKDA | Bin 0 -> 274 bytes tests/testgame/OBJBLKDB | Bin 0 -> 226 bytes tests/testgame/OBJBLKDC | Bin 0 -> 482 bytes tests/testgame/OBJBLKDD | Bin 0 -> 506 bytes tests/testgame/OBJBLKDE | Bin 0 -> 2634 bytes tests/testgame/OBJBLKDF | Bin 0 -> 3090 bytes tests/testgame/OBJBLKDG | Bin 0 -> 1450 bytes tests/testgame/OBJBLKDH | Bin 0 -> 82 bytes tests/testgame/OBJBLKDI | Bin 0 -> 14266 bytes tests/testgame/OBJBLKEA | Bin 0 -> 4562 bytes tests/testgame/OBJBLKEB | Bin 0 -> 90 bytes tests/testgame/OBJBLKEC | Bin 0 -> 1930 bytes tests/testgame/OBJBLKED | Bin 0 -> 2 bytes tests/testgame/OBJBLKEE | Bin 0 -> 2594 bytes tests/testgame/OBJBLKEF | Bin 0 -> 90 bytes tests/testgame/OBJBLKEG | Bin 0 -> 2 bytes tests/testgame/OBJBLKEH | Bin 0 -> 4914 bytes tests/testgame/OBJBLKEI | Bin 0 -> 5274 bytes tests/testgame/OBJBLKFA | Bin 0 -> 1162 bytes tests/testgame/OBJBLKFB | Bin 0 -> 226 bytes tests/testgame/OBJBLKFC | Bin 0 -> 114 bytes tests/testgame/OBJBLKFD | Bin 0 -> 2 bytes tests/testgame/OBJBLKFE | Bin 0 -> 2 bytes tests/testgame/OBJBLKFF | Bin 0 -> 2682 bytes tests/testgame/OBJBLKFG | Bin 0 -> 146 bytes tests/testgame/OBJBLKFH | Bin 0 -> 34 bytes tests/testgame/OBJBLKGA | Bin 0 -> 18 bytes tests/testgame/OBJBLKGB | Bin 0 -> 490 bytes tests/testgame/OBJBLKGC | Bin 0 -> 850 bytes tests/testgame/OBJBLKGD | Bin 0 -> 1658 bytes tests/testgame/OBJBLKGE | Bin 0 -> 186 bytes tests/testgame/OBJBLKGF | Bin 0 -> 18 bytes tests/testgame/OBJBLKGG | Bin 0 -> 34 bytes tests/testgame/OBJBLKGH | Bin 0 -> 1394 bytes tests/testgame/OBJBLKHA | Bin 0 -> 18 bytes tests/testgame/OBJBLKHB | Bin 0 -> 242 bytes tests/testgame/OBJBLKHC | Bin 0 -> 242 bytes tests/testgame/OBJBLKHD | Bin 0 -> 2194 bytes tests/testgame/OBJBLKHE | Bin 0 -> 2162 bytes tests/testgame/OBJBLKHF | Bin 0 -> 2 bytes tests/testgame/OBJBLKHG | Bin 0 -> 1146 bytes tests/testgame/OBJBLKHH | Bin 0 -> 466 bytes tests/testgame/OBJLIST | Bin 0 -> 7539 bytes tools/duplicates.py | 28 +- tools/patch.py | 5 +- 82 files changed, 87 insertions(+), 3475 deletions(-) create mode 100644 screenshots/U/create.png create mode 100644 screenshots/U/inside.png create mode 100644 screenshots/U/name.png create mode 100644 screenshots/U/new.png create mode 100644 screenshots/U/scroll.png create mode 100644 tests/testgame/OBJBLKAA create mode 100644 tests/testgame/OBJBLKAB create mode 100644 tests/testgame/OBJBLKAC create mode 100644 tests/testgame/OBJBLKAD create mode 100644 tests/testgame/OBJBLKAE create mode 100644 tests/testgame/OBJBLKAF create mode 100644 tests/testgame/OBJBLKAG create mode 100644 tests/testgame/OBJBLKAH create mode 100644 tests/testgame/OBJBLKAI create mode 100644 tests/testgame/OBJBLKBA create mode 100644 tests/testgame/OBJBLKBB create mode 100644 tests/testgame/OBJBLKBC create mode 100644 tests/testgame/OBJBLKBD create mode 100644 tests/testgame/OBJBLKBE create mode 100644 tests/testgame/OBJBLKBF create mode 100644 tests/testgame/OBJBLKBG create mode 100644 tests/testgame/OBJBLKBH create mode 100644 tests/testgame/OBJBLKBI create mode 100644 tests/testgame/OBJBLKCA create mode 100644 tests/testgame/OBJBLKCB create mode 100644 tests/testgame/OBJBLKCC create mode 100644 tests/testgame/OBJBLKCD create mode 100644 tests/testgame/OBJBLKCE create mode 100644 tests/testgame/OBJBLKCF create mode 100644 tests/testgame/OBJBLKCG create mode 100644 tests/testgame/OBJBLKCH create mode 100644 tests/testgame/OBJBLKCI create mode 100644 tests/testgame/OBJBLKDA create mode 100644 tests/testgame/OBJBLKDB create mode 100644 tests/testgame/OBJBLKDC create mode 100644 tests/testgame/OBJBLKDD create mode 100644 tests/testgame/OBJBLKDE create mode 100644 tests/testgame/OBJBLKDF create mode 100644 tests/testgame/OBJBLKDG create mode 100644 tests/testgame/OBJBLKDH create mode 100644 tests/testgame/OBJBLKDI create mode 100644 tests/testgame/OBJBLKEA create mode 100644 tests/testgame/OBJBLKEB create mode 100644 tests/testgame/OBJBLKEC create mode 100644 tests/testgame/OBJBLKED create mode 100644 tests/testgame/OBJBLKEE create mode 100644 tests/testgame/OBJBLKEF create mode 100644 tests/testgame/OBJBLKEG create mode 100644 tests/testgame/OBJBLKEH create mode 100644 tests/testgame/OBJBLKEI create mode 100644 tests/testgame/OBJBLKFA create mode 100644 tests/testgame/OBJBLKFB create mode 100644 tests/testgame/OBJBLKFC create mode 100644 tests/testgame/OBJBLKFD create mode 100644 tests/testgame/OBJBLKFE create mode 100644 tests/testgame/OBJBLKFF create mode 100644 tests/testgame/OBJBLKFG create mode 100644 tests/testgame/OBJBLKFH create mode 100644 tests/testgame/OBJBLKGA create mode 100644 tests/testgame/OBJBLKGB create mode 100644 tests/testgame/OBJBLKGC create mode 100644 tests/testgame/OBJBLKGD create mode 100644 tests/testgame/OBJBLKGE create mode 100644 tests/testgame/OBJBLKGF create mode 100644 tests/testgame/OBJBLKGG create mode 100644 tests/testgame/OBJBLKGH create mode 100644 tests/testgame/OBJBLKHA create mode 100644 tests/testgame/OBJBLKHB create mode 100644 tests/testgame/OBJBLKHC create mode 100644 tests/testgame/OBJBLKHD create mode 100644 tests/testgame/OBJBLKHE create mode 100644 tests/testgame/OBJBLKHF create mode 100644 tests/testgame/OBJBLKHG create mode 100644 tests/testgame/OBJBLKHH create mode 100644 tests/testgame/OBJLIST diff --git a/docker-compose.yml b/docker-compose.yml index eb77d152..ad2fee19 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,10 +9,11 @@ services: test: build: . pull_policy: build + ipc: host # FIXME environment: - DISPLAY volumes: - - "/tmp/.X11-unix:/tmp/.X11-unix" - - "/dev/snd:/dev/snd" + - /tmp/.X11-unix:/tmp/.X11-unix + - /dev/snd:/dev/snd depends_on: - testbox diff --git a/patches/bad-references.json b/patches/bad-references.json index cbf8b426..c9f14b16 100644 --- a/patches/bad-references.json +++ b/patches/bad-references.json @@ -14,3464 +14,6 @@ 38281 ] }, - { - "source": "GAME.EXE", - "offset": 198944, - "bad-references": [ - 14305, - 14599, - 14604, - 17226, - 17231, - 17437, - 17442, - 17580, - 17863, - 18115, - 18310, - 19003, - 19257, - 19369, - 19874, - 20077, - 20135, - 20446, - 20458, - 20480, - 20492, - 20517, - 20571, - 20679, - 20753, - 22187, - 23458, - 23840, - 24270, - 25159, - 25213, - 25286, - 26565, - 26581, - 27015, - 27563, - 27582, - 29175, - 29347, - 29853, - 30009, - 30214, - 30342, - 30926, - 30977, - 31172, - 31319, - 31666, - 31697, - 32754, - 35098, - 35551, - 35557, - 35770, - 35932, - 36172, - 38214, - 38219, - 38331, - 38337, - 39348, - 39450, - 39496, - 39669, - 39871, - 40267, - 40350, - 40508, - 40514, - 40537, - 40543, - 40548, - 40864, - 41165, - 41338, - 41669, - 41698, - 41775, - 41959, - 42064, - 42668, - 42679, - 42945, - 43031, - 43099, - 43196, - 43293, - 43403, - 43463, - 43739, - 43750, - 43888, - 43894, - 44082, - 44133, - 44719, - 44740, - 44904, - 45021, - 46185, - 46438, - 46908, - 47050, - 47314, - 47383, - 47610, - 47785, - 47922, - 47983, - 48070, - 48309, - 49110, - 49411, - 49563, - 50338, - 50391, - 50587, - 51454, - 51569, - 55006, - 55011, - 55283, - 55440, - 55793, - 59142, - 59361, - 60909, - 61039, - 61055, - 61123, - 61330, - 63139, - 63618, - 63895, - 64674, - 64730, - 65938, - 65966, - 66042, - 66719, - 66990, - 67335, - 67494, - 69545, - 69558, - 69697, - 69710, - 69715, - 69973, - 72505, - 72576, - 73756, - 75365, - 75767, - 77678, - 77683, - 79239, - 79253, - 79508, - 80245, - 81091, - 81355, - 81439, - 81471, - 81477, - 81885, - 82648, - 83615, - 84460, - 84465, - 84680, - 84963, - 84982, - 84989, - 85205, - 85283, - 85444, - 85680, - 85685, - 85690, - 85698, - 87901, - 89646, - 89857, - 90381, - 90505, - 91330, - 93176, - 95748, - 96275, - 96320, - 96325, - 97215, - 97637, - 97819, - 97824, - 97829, - 98579, - 98585, - 98713, - 99895, - 100907, - 102385, - 102390, - 103306, - 103312, - 104927, - 107070, - 107194, - 107473, - 107513, - 107937, - 107948, - 108314, - 108319, - 108418, - 108691, - 108965, - 109512, - 110280, - 110641, - 110693, - 110893, - 111729, - 114094, - 115236, - 115243, - 115289, - 115326, - 115839, - 116448, - 116520, - 116904, - 116931, - 117003, - 117215, - 117228, - 117560, - 118114, - 120573, - 120580, - 122318, - 123994, - 124876, - 124881, - 125013, - 125217, - 127562, - 127881, - 128180, - 129273, - 130066, - 130066, - 131981, - 133395, - 133893, - 134259, - 134913, - 135303, - 135631, - 135745, - 137464, - 137927, - 138104, - 139430, - 139837, - 139896, - 140925, - 141237, - 143223, - 143228, - 143233, - 143257, - 143270, - 143275, - 143320, - 144024, - 144030, - 144434, - 144959, - 145666, - 146772, - 146802, - 146941, - 147092, - 147169, - 148225, - 148880, - 150067, - 150561, - 151100, - 151871, - 152875, - 159158, - 159328, - 159493, - 159858, - 160020, - 160525, - 160921, - 161374, - 161843, - 162273, - 162311, - 162614, - 162926, - 164494, - 164740, - 164747, - 165103, - 165596, - 165771, - 165923, - 165994, - 166070, - 166117, - 166125, - 167312, - 169419, - 169651, - 170484, - 171095, - 171198, - 171203, - 171208, - 171321, - 171339, - 171502, - 171644, - 171684, - 171897, - 172001, - 172333, - 174402, - 174669, - 174770, - 175280, - 175286, - 175301, - 175462, - 175531, - 175751, - 175757, - 175811, - 175817, - 179954, - 180811, - 180816, - 180821, - 180946, - 181170, - 181610, - 181803, - 182329, - 183742, - 183835, - 183842, - 184910, - 185748, - 185829, - 185855, - 186359, - 187022, - 188096, - 188363, - 188445, - 188614, - 189098, - 189101, - 189118, - 189460, - 189583, - 189789, - 189957, - 190276, - 190340, - 190421, - 190479, - 190543, - 190637, - 190676, - 190818, - 190824, - 190861, - 191153, - 191172, - 191178, - 191520, - 191643, - 191724, - 191730, - 191736, - 191742, - 192075, - 192109, - 192574, - 192935, - 192941, - 193679, - 195515, - 195752, - 197001, - 197228, - 197273, - 197920, - 198117, - 198118, - 198119, - 198120, - 198121, - 198122, - 198126, - 198130, - 198131, - 198135, - 198136, - 198137, - 198140, - 198141, - 198142, - 198143, - 198146, - 198147, - 198151, - 198152, - 198161, - 198164, - 198165, - 198169, - 198170, - 198176, - 198318, - 198322, - 198332, - 198343, - 198441, - 198487, - 198498, - 198499, - 198500, - 198501, - 198502, - 198503, - 198504, - 198505, - 198506, - 198509, - 198510, - 198511, - 198512, - 198513, - 198514, - 198523, - 198524, - 198543, - 198544, - 198549, - 198550, - 198551, - 198552, - 198555, - 198556, - 198559, - 198560, - 198571, - 198572, - 198573, - 198574, - 198575, - 198576, - 198579, - 198580, - 198581, - 198582, - 198587, - 198588, - 198589, - 198590, - 198593, - 198594, - 198595, - 198596, - 198604, - 198612, - 198616, - 198617, - 198618, - 198619, - 198620, - 198621, - 198622, - 198623, - 198624, - 198625, - 198626, - 198627, - 198628, - 198629, - 198635, - 198636, - 198637, - 198638, - 198641, - 198657, - 198658, - 198659, - 198660, - 198661, - 198662, - 198671, - 198672, - 198680, - 198681, - 198685, - 198692, - 198700, - 198726, - 198736, - 198741, - 198742, - 198743, - 198747, - 198748, - 198749, - 198750, - 198760, - 198774, - 198775, - 198776, - 198777, - 198785, - 198815, - 198827, - 198828, - 198832, - 198850, - 198851, - 198859, - 198860, - 198861, - 198862, - 198863, - 198864, - 198867, - 198881, - 198882, - 198888, - 198889, - 198890, - 198891, - 198903, - 198919, - 198931, - 198932, - 198933, - 198936, - 198937, - 198938, - 198939, - 198940, - 198941, - 198942, - 200261, - 200262, - 200263, - 200264, - 200265, - 200266, - 200267, - 200268, - 200269, - 200270, - 200271, - 200272, - 200273, - 200274, - 200388, - 200389, - 200390, - 200391, - 200392, - 200393, - 200394, - 200395, - 200396, - 200397, - 200398, - 200399, - 200400, - 200401, - 200402, - 200403, - 200404, - 200405, - 200406, - 200407, - 200408, - 200409, - 200410, - 200411, - 200412, - 200413, - 200414, - 200415, - 200416, - 200417, - 200418, - 200419, - 200420, - 200421, - 200422, - 200423, - 200424, - 200425, - 200426, - 200434, - 200435, - 200436, - 200437, - 200438, - 200439, - 200440, - 200441, - 200442, - 200443, - 200444, - 200445, - 200446, - 200447, - 200448, - 200449, - 200450, - 200451, - 200452, - 200453, - 200454, - 200455, - 200456, - 200457, - 200458, - 200459, - 200460, - 200461, - 200462, - 200463, - 200464, - 200465, - 200466, - 200467, - 200468, - 200469, - 200470, - 200471, - 200472, - 200473, - 200474, - 200475, - 200476, - 200477, - 200478, - 200479, - 200480, - 200481, - 200482, - 200483, - 200484, - 200485, - 200486, - 200487, - 200488, - 200489, - 200490, - 200491, - 200492, - 200493, - 200494, - 200495, - 200496, - 200497, - 200498, - 200499, - 200500, - 200501, - 200502, - 200503, - 200504, - 200505, - 200506, - 200507, - 200508, - 200509, - 200510, - 200511, - 200512, - 200513, - 200514, - 200515, - 200516, - 200517, - 200518, - 200519, - 200520, - 200521, - 200522, - 200523, - 200524, - 200525, - 200526, - 200527, - 200528, - 200529, - 200530, - 200531, - 200532, - 200533, - 200534, - 200535, - 200536, - 200537, - 200538, - 200539, - 200540, - 200541, - 200542, - 200543, - 200544, - 200545, - 200546, - 200547, - 200548, - 200549, - 200550, - 200551, - 200552, - 200553, - 200554, - 200555, - 200556, - 200557, - 200558, - 200559, - 200560, - 200561, - 200562, - 200563, - 200564, - 200565, - 200566, - 200567, - 200568, - 200569, - 200570, - 200571, - 200572, - 200573, - 200574, - 200575, - 200576, - 200577, - 200578, - 200579, - 200580, - 200581, - 200582, - 200583, - 200584, - 200585, - 200586, - 200587, - 200588, - 200589, - 200590, - 200591, - 200592, - 200593, - 200594, - 200595, - 200596, - 200597, - 200598, - 200599, - 200600, - 200601, - 200602, - 200603, - 200604, - 200605, - 200606, - 200607, - 200608, - 200609, - 200610, - 200611, - 200612, - 200613, - 200614, - 200615, - 200616, - 200617, - 200618, - 200619, - 200620, - 200621, - 200622, - 200623, - 200624, - 200625, - 200626, - 200627, - 200628, - 200629, - 200630, - 200631, - 200632, - 200633, - 200634, - 200635, - 200636, - 200637, - 200638, - 200639, - 200640, - 200641, - 200642, - 200643, - 200644, - 200645, - 200646, - 200647, - 200648, - 200649, - 200650, - 200651, - 200652, - 200653, - 200654, - 200655, - 200656, - 200657, - 200658, - 200659, - 200660, - 200661, - 200662, - 200663, - 200664, - 200665, - 200666, - 200667, - 200668, - 200669, - 200670, - 200671, - 200672, - 200673, - 200674, - 200675, - 200676, - 200722, - 200723, - 200724, - 200727, - 200728, - 200729, - 200730, - 200734, - 200737, - 201084, - 201088, - 201089, - 201090, - 201091, - 201092, - 201093, - 201094, - 201095, - 201096, - 201099, - 201100, - 201101, - 201102, - 201105, - 201106, - 201146, - 201441, - 201442, - 201443, - 201444, - 201445, - 201446, - 201447, - 201450, - 201454, - 201455, - 201458, - 201459, - 201465, - 201468, - 201469, - 201474, - 201475, - 201476, - 201477, - 201478, - 201479, - 201480, - 201481, - 201482, - 201483, - 201484, - 201485, - 201486, - 201491, - 201492, - 201509, - 201510, - 201514, - 201517, - 201576, - 201577, - 201581, - 201618, - 201619, - 201620, - 201621, - 201672, - 201673, - 201674, - 201783, - 201784, - 201785, - 201850, - 201851, - 201854, - 201858, - 201864, - 201876, - 201880, - 201892, - 201893, - 201894, - 201895, - 201896, - 201897, - 201898, - 201899, - 201900, - 201901, - 201902, - 201903, - 201904, - 201905, - 201906, - 201907, - 201908, - 201909, - 201910, - 201911, - 201912, - 201913, - 201914, - 201915, - 201916, - 201917, - 201918, - 201919, - 201920, - 201921, - 201922, - 201923, - 201924, - 201925, - 201926, - 201927, - 201928, - 201929, - 201930, - 201931, - 201932, - 201933, - 201934, - 201935, - 201936, - 201937, - 201938, - 201939, - 201940, - 201941, - 201942, - 201943, - 201944, - 201945, - 201946, - 201947, - 201948, - 201949, - 201950, - 201951, - 201952, - 201953, - 201954, - 201955, - 201956, - 201957, - 201958, - 201959, - 201960, - 201961, - 201962, - 201963, - 201964, - 201965, - 201966, - 201967, - 201968, - 201969, - 201970, - 201971, - 201972, - 201973, - 201974, - 201975, - 201976, - 201977, - 201978, - 201979, - 201980, - 201981, - 201982, - 201983, - 201984, - 201985, - 201986, - 201987, - 201988, - 201989, - 201990, - 201991, - 201992, - 201993, - 201994, - 201995, - 201996, - 201997, - 201998, - 201999, - 202000, - 202001, - 202002, - 202003, - 202004, - 202005, - 202006, - 202007, - 202008, - 202009, - 202010, - 202011, - 202012, - 202013, - 202014, - 202015, - 202016, - 202017, - 202018, - 202019, - 202020, - 202021, - 202022, - 202023, - 202024, - 202025, - 202026, - 202027, - 202028, - 202029, - 202030, - 202031, - 202032, - 202033, - 202034, - 202035, - 202036, - 202037, - 202038, - 202054, - 202055, - 202056, - 202057, - 202155, - 202156, - 202266, - 202267, - 202268, - 202269, - 202606, - 202711, - 202712, - 202713, - 202714, - 203070, - 203678, - 203679, - 203680, - 203681, - 203682, - 203694, - 203695, - 203696, - 203697, - 203698, - 203710, - 203711, - 203712, - 203713, - 203714, - 203726, - 203727, - 203728, - 203729, - 203730, - 203742, - 203743, - 203744, - 203745, - 203746, - 203758, - 203759, - 203760, - 203761, - 203762, - 203774, - 203775, - 203776, - 203777, - 203778, - 203779, - 203790, - 203791, - 203792, - 203793, - 203794, - 206186, - 206210, - 206211, - 206212, - 206213, - 206214, - 206260, - 206261, - 206262, - 206263, - 206264, - 206287, - 206288, - 206289, - 206290, - 206291, - 206292, - 206297, - 206298, - 206299, - 206300, - 206301, - 206306, - 206307, - 206308, - 206309, - 206310, - 206311, - 206321, - 206322, - 206323, - 206324, - 206325, - 206326, - 206327, - 206328, - 206329, - 206330, - 206331, - 206332, - 206333, - 206334, - 206335, - 206336, - 206339, - 206340, - 206341, - 206342, - 206343, - 206354, - 206442, - 206456, - 206499, - 206965, - 206966, - 206967, - 207112, - 207343, - 207344, - 207365, - 207366, - 207739, - 207755, - 210671, - 210672, - 210673, - 210695, - 210696, - 210697, - 210698, - 210699, - 210700, - 210703, - 210704, - 210733, - 210738, - 210750, - 210751, - 210755, - 210756, - 210764, - 210765, - 210789, - 210790, - 210805, - 210806, - 210843, - 210844, - 210845, - 210846, - 211091, - 211111, - 211112, - 211235, - 211236, - 211237, - 211238, - 211239, - 211240, - 211241, - 211242, - 211372, - 211412, - 211413, - 211422, - 211423, - 211424, - 211425, - 211426, - 211431, - 211432, - 211433, - 211434, - 211435, - 211436, - 211437, - 211438, - 211536, - 211537, - 211609, - 211610, - 211611, - 211619, - 211626, - 211627, - 211628, - 211629, - 211630, - 211631, - 211632, - 211633, - 211634, - 211635, - 211636, - 211637, - 211638, - 211639, - 211640, - 211641, - 211642, - 211643, - 211644, - 211645, - 211646, - 211647, - 211648, - 211656, - 211662, - 211668, - 211673, - 211674, - 211679, - 211680, - 211686, - 211698, - 211699, - 211700, - 211701, - 211702, - 211703, - 211704, - 211705, - 211706, - 211707, - 211708, - 211709, - 211710, - 211711, - 211712, - 211713, - 211714, - 211715, - 211716, - 211717, - 211718, - 211719, - 211720, - 211721, - 211722, - 211723, - 211724, - 211725, - 211726, - 211727, - 211728, - 211734, - 211735, - 211736, - 211737, - 211738, - 211739, - 211740, - 211769, - 211770, - 211780, - 212182, - 212202, - 212207, - 212208, - 212209, - 212210, - 212211, - 212212, - 212213, - 212214, - 212215, - 212216, - 212217, - 212218, - 212219, - 212220, - 212221, - 212222, - 212223, - 212224, - 212225, - 212226, - 212227, - 212228, - 212229, - 212230, - 212231, - 212232, - 212233, - 212234, - 212235, - 212236, - 212237, - 212238, - 212239, - 212240, - 212241, - 212247, - 212436, - 212446, - 212447, - 212448, - 212449, - 212450, - 212451, - 212452, - 212453, - 212454, - 212455, - 212456, - 212457, - 212458, - 212459, - 212460, - 212461, - 212462, - 212463, - 212464, - 212465, - 212466, - 212467, - 212468, - 212469, - 212470, - 212471, - 212472, - 212473, - 212474, - 212475, - 212476, - 212477, - 212478, - 212479, - 212480, - 212481, - 212482, - 212483, - 212484, - 212485, - 212486, - 212487, - 212488, - 212489, - 212490, - 212491, - 212492, - 212493, - 212494, - 212495, - 212496, - 212497, - 212498, - 212499, - 212500, - 212501, - 212502, - 212503, - 212504, - 212505, - 212506, - 212507, - 212508, - 212509, - 212510, - 212511, - 212512, - 212513, - 212514, - 212515, - 212516, - 212517, - 212518, - 212519, - 212520, - 212521, - 212522, - 212523, - 212524, - 212525, - 212526, - 212527, - 212528, - 212529, - 212530, - 212531, - 212532, - 212533, - 212534, - 212535, - 212536, - 212537, - 212538, - 212539, - 212540, - 212541, - 212542, - 212543, - 212544, - 212545, - 212546, - 212547, - 212548, - 212549, - 212550, - 212551, - 212552, - 212553, - 212554, - 212555, - 212556, - 212568, - 212569, - 212570, - 212571, - 212572, - 212573, - 212574, - 212575, - 212576, - 212577, - 212578, - 212579, - 212580, - 212581, - 212582, - 212583, - 212584, - 212585, - 212586, - 212596, - 212597, - 212598, - 212599, - 212600, - 212601, - 212602, - 212603, - 212604, - 212605, - 212606, - 212607, - 212608, - 212609, - 212610, - 212611, - 212612, - 212613, - 212614, - 212615, - 212616, - 212617, - 212618, - 212619, - 212620, - 212621, - 212622, - 212623, - 212624, - 212625, - 212626, - 212627, - 212628, - 212649, - 212650, - 212651, - 212652, - 212653, - 212654, - 212655, - 212656, - 212657, - 212658, - 212659, - 212660, - 212661, - 212662, - 212663, - 212664, - 212697, - 212698, - 212699, - 212700, - 212701, - 212702, - 212703, - 212704, - 212705, - 212706, - 212707, - 212708, - 212709, - 212710, - 212714, - 212715, - 212818, - 212819, - 212822, - 212823, - 212824, - 212825, - 212826, - 212827, - 212828, - 212829, - 212830, - 212831, - 212832, - 212833, - 212834, - 212835, - 212836, - 212837, - 212967, - 212968, - 212969, - 212970, - 212971, - 212972, - 212973, - 212974, - 212975, - 212976, - 212977, - 212978, - 212979, - 212980, - 212981, - 212982, - 212983, - 212984, - 212985, - 212986, - 212987, - 212988, - 212989, - 212990, - 212991, - 212992, - 212993, - 212994, - 212995, - 212996, - 212997, - 212998, - 212999, - 213000, - 213001, - 213002, - 213003, - 213004, - 213005, - 213006, - 213007, - 213008, - 213009, - 213010, - 213011, - 213012, - 213013, - 213014, - 213015, - 213016, - 213017, - 213018, - 213019, - 213020, - 213021, - 213022, - 213023, - 213024, - 213025, - 213026, - 213027, - 213028, - 213029, - 213030, - 213031, - 213032, - 213033, - 213034, - 213035, - 213036, - 213037, - 213038, - 213039, - 213040, - 213041, - 213042, - 213043, - 213044, - 213045, - 213046, - 213047, - 213048, - 213049, - 213050, - 213051, - 213052, - 213053, - 213054, - 213055, - 213056, - 213057, - 213058, - 213059, - 213060, - 213061, - 213062, - 213063, - 213064, - 213065, - 213066, - 213067, - 213068, - 213069, - 213070, - 213071, - 213072, - 213073, - 213074, - 213075, - 213076, - 213077, - 213078, - 213079, - 213080, - 213081, - 213082, - 213083, - 213084, - 213085, - 213086, - 213087, - 213088, - 213089, - 213090, - 213091, - 213092, - 213093, - 213094, - 213110, - 213118, - 213119 - ] - }, - { - "source": "GAME.EXE", - "offset": 198960, - "bad-references": [ - 16536, - 16588, - 17355, - 17395, - 18365, - 18405, - 19045, - 19243, - 33327, - 33989, - 34405, - 34805, - 38848, - 45993, - 52421, - 59329, - 60731, - 68467, - 70085, - 70653, - 71071, - 71265, - 71325, - 80935, - 81003, - 84971, - 94818, - 94988, - 96212, - 97065, - 97179, - 101426, - 101448, - 101624, - 101782, - 101834, - 101924, - 102169, - 102247, - 102290, - 102343, - 102783, - 109116, - 109147, - 131043, - 131043, - 133768, - 149656, - 151962, - 162456, - 164011, - 178453, - 180129, - 182117, - 182125, - 182137, - 182145, - 182181, - 183655, - 183677, - 183697, - 183703, - 198518, - 201114, - 203757, - 207093, - 211409, - 211411, - 212821 - ] - }, - { - "source": "GAME.EXE", - "offset": 198971, - "bad-references": [ - 131125, - 131125, - 198520, - 207697 - ] - }, - { - "source": "GAME.EXE", - "offset": 198979, - "bad-references": [ - 131147, - 131147, - 198522, - 207109, - 207201, - 207334 - ] - }, - { - "source": "GAME.EXE", - "offset": 198987, - "bad-references": [ - 131169, - 131169, - 198789, - 198818, - 207217, - 207338, - 212567, - 212817 - ] - }, - { - "source": "GAME.EXE", - "offset": 198994, - "bad-references": [ - 82919, - 82942, - 83024, - 118109, - 131193, - 131193, - 173833, - 174085, - 207165, - 207229 - ] - }, - { - "source": "GAME.EXE", - "offset": 199005, - "bad-references": [ - 132026, - 132026, - 157501, - 166732, - 207660, - 210393, - 210407 - ] - }, - { - "source": "GAME.EXE", - "offset": 199018, - "bad-references": [ - 132276, - 132276, - 204112, - 204140, - 204157, - 204163 - ] - }, - { - "source": "GAME.EXE", - "offset": 199031, - "bad-references": [ - 134699, - 134699, - 192753, - 198536, - 201241, - 201247, - 204213, - 204332, - 207584 - ] - }, - { - "source": "GAME.EXE", - "offset": 199050, - "bad-references": [ - 134716, - 134716 - ] - }, - { - "source": "GAME.EXE", - "offset": 199067, - "bad-references": [ - 134743, - 134743, - 205985, - 205993, - 207464 - ] - }, - { - "source": "GAME.EXE", - "offset": 199076, - "bad-references": [ - 29588, - 39801, - 134851, - 134851, - 207354, - 207520, - 211750 - ] - }, - { - "source": "GAME.EXE", - "offset": 199092, - "bad-references": [ - 36593, - 42287, - 134897, - 134897 - ] - }, - { - "source": "GAME.EXE", - "offset": 199107, - "bad-references": [ - 38458, - 134934, - 134934, - 206315 - ] - }, - { - "source": "GAME.EXE", - "offset": 199114, - "bad-references": [ - 29782, - 134983, - 134983 - ] - }, - { - "source": "GAME.EXE", - "offset": 199124, - "bad-references": [ - 19917, - 35125, - 35599, - 35755, - 35868, - 39016, - 40401, - 44187, - 44289, - 44304, - 44337, - 44395, - 44452, - 44538, - 44651, - 45271, - 50239, - 50254, - 53095, - 53123, - 135286, - 135286, - 147643, - 156637, - 156685, - 165448, - 165509, - 207504, - 211764 - ] - }, - { - "source": "GAME.EXE", - "offset": 199141, - "bad-references": [ - 135328, - 135328 - ] - }, - { - "source": "GAME.EXE", - "offset": 199148, - "bad-references": [ - 30912, - 30912, - 31675, - 31675, - 135594, - 135594 - ] - }, - { - "source": "GAME.EXE", - "offset": 199155, - "bad-references": [ - 29991, - 29991, - 207364 - ] - }, - { - "source": "GAME.EXE", - "offset": 199167, - "bad-references": [ - 30081, - 30081, - 157847, - 202139, - 207596 - ] - }, - { - "source": "GAME.EXE", - "offset": 199190, - "bad-references": [ - 30328, - 30328, - 207616 - ] - }, - { - "source": "GAME.EXE", - "offset": 199201, - "bad-references": [ - 30511, - 30511, - 67088, - 129138, - 181919, - 200691, - 200692, - 200701, - 200702, - 201116, - 201198, - 201199, - 201452, - 201794, - 201862, - 201886, - 206356, - 206444, - 206450, - 206451, - 206788, - 207114, - 207770, - 207771, - 207780, - 207781, - 210693, - 211512, - 211525, - 211783 - ] - }, - { - "source": "GAME.EXE", - "offset": 199214, - "bad-references": [ - 207492, - 207664, - 207787 - ] - }, - { - "source": "GAME.EXE", - "offset": 199221, - "bad-references": [ - 31005, - 31005, - 204097 - ] - }, - { - "source": "GAME.EXE", - "offset": 199233, - "bad-references": [ - 31130, - 31130 - ] - }, - { - "source": "GAME.EXE", - "offset": 199240, - "bad-references": [ - 172838, - 172838, - 201639, - 207656 - ] - }, - { - "source": "GAME.EXE", - "offset": 199285, - "bad-references": [ - 134470, - 134470 - ] - }, - { - "source": "GAME.EXE", - "offset": 199312, - "bad-references": [ - 135142, - 135142, - 183633, - 197886, - 207053, - 207745 - ] - }, - { - "source": "GAME.EXE", - "offset": 199329, - "bad-references": [ - 38806, - 72135, - 107331, - 107331, - 197826, - 201666, - 207041 - ] - }, - { - "source": "GAME.EXE", - "offset": 199343, - "bad-references": [ - 107399, - 107399, - 127484, - 157548 - ] - }, - { - "source": "GAME.EXE", - "offset": 199359, - "bad-references": [ - 124811, - 132375, - 132375, - 197912, - 207600, - 207797 - ] - }, - { - "source": "GAME.EXE", - "offset": 199379, - "bad-references": [ - 24896, - 25694, - 25694, - 132611, - 132611, - 176380, - 206192 - ] - }, - { - "source": "GAME.EXE", - "offset": 199394, - "bad-references": [ - 132474, - 132474, - 170628 - ] - }, - { - "source": "GAME.EXE", - "offset": 199421, - "bad-references": [ - 132544, - 132544, - 213112, - 213114 - ] - }, - { - "source": "GAME.EXE", - "offset": 199443, - "bad-references": [ - 27200, - 27200, - 73504, - 73504, - 87389, - 87389, - 154777, - 154777, - 206238 - ] - }, - { - "source": "GAME.EXE", - "offset": 199464, - "bad-references": [ - 130449, - 130449 - ] - }, - { - "source": "GAME.EXE", - "offset": 199485, - "bad-references": [ - 133706, - 133706 - ] - }, - { - "source": "GAME.EXE", - "offset": 199502, - "bad-references": [ - 30671, - 30671 - ] - }, - { - "source": "GAME.EXE", - "offset": 199517, - "bad-references": [ - 30621, - 30621, - 203862 - ] - }, - { - "source": "GAME.EXE", - "offset": 199536, - "bad-references": [ - 135166, - 135166 - ] - }, - { - "source": "GAME.EXE", - "offset": 199551, - "bad-references": [ - 118514, - 118514, - 203900 - ] - }, - { - "source": "GAME.EXE", - "offset": 199607, - "bad-references": [ - 118567, - 118567 - ] - }, - { - "source": "GAME.EXE", - "offset": 199673, - "bad-references": [ - 118946, - 118946 - ] - }, - { - "source": "GAME.EXE", - "offset": 199708, - "bad-references": [ - 119144, - 119144 - ] - }, - { - "source": "GAME.EXE", - "offset": 199733, - "bad-references": [ - 30653, - 30653, - 135393, - 135393, - 167734, - 167734, - 197962 - ] - }, - { - "source": "GAME.EXE", - "offset": 199757, - "bad-references": [ - 122495, - 122495 - ] - }, - { - "source": "GAME.EXE", - "offset": 199796, - "bad-references": [ - 122569, - 122569 - ] - }, - { - "source": "GAME.EXE", - "offset": 199842, - "bad-references": [ - 103761, - 103761 - ] - }, - { - "source": "GAME.EXE", - "offset": 199896, - "bad-references": [ - 110483, - 110483, - 115187 - ] - }, - { - "source": "GAME.EXE", - "offset": 199931, - "bad-references": [ - 38305, - 38305, - 203749 - ] - }, - { - "source": "GAME.EXE", - "offset": 199969, - "bad-references": [ - 130624, - 130624, - 198207, - 198234, - 207370 - ] - }, - { - "source": "GAME.EXE", - "offset": 199982, - "bad-references": [ - 27526, - 27526, - 29308, - 128664, - 128664, - 203603, - 203958 - ] - }, - { - "source": "GAME.EXE", - "offset": 199989, - "bad-references": [ - 30543, - 31037, - 31098 - ] - }, - { - "source": "GAME.EXE", - "offset": 199993, - "bad-references": [ - 30734, - 30776 - ] - }, - { - "source": "GAME.EXE", - "offset": 200002, - "bad-references": [ - 30596, - 30596 - ] - }, - { - "source": "GAME.EXE", - "offset": 200021, - "bad-references": [ - 30119, - 30119, - 31387 - ] - }, - { - "source": "GAME.EXE", - "offset": 200042, - "bad-references": [ - 131707, - 131707 - ] - }, - { - "source": "GAME.EXE", - "offset": 200063, - "bad-references": [ - 110001, - 110001 - ] - }, - { - "source": "GAME.EXE", - "offset": 200091, - "bad-references": [ - 25555, - 25555 - ] - }, - { - "source": "GAME.EXE", - "offset": 200115, - "bad-references": [ - 110185, - 110185 - ] - }, - { - "source": "GAME.EXE", - "offset": 200152, - "bad-references": [ - 29948, - 29948, - 32888, - 116663 - ] - }, - { - "source": "GAME.EXE", - "offset": 200175, - "bad-references": [ - 28747, - 28747 - ] - }, - { - "source": "GAME.EXE", - "offset": 200199, - "bad-references": [ - 31340, - 31340 - ] - }, - { - "source": "GAME.EXE", - "offset": 200209, - "bad-references": [ - 31305, - 31305 - ] - }, - { - "source": "GAME.EXE", - "offset": 200220, - "bad-references": [ - 188283, - 188283 - ] - }, - { - "source": "GAME.EXE", - "offset": 200249, - "bad-references": [ - 31425, - 31425, - 197925 - ] - }, - { - "source": "GAME.EXE", - "offset": 200822, - "bad-references": [ - 200706, - 202295 - ] - }, - { - "source": "GAME.EXE", - "offset": 200838, - "bad-references": [ - 101530, - 200710, - 211382 - ] - }, - { - "source": "GAME.EXE", - "offset": 200859, - "bad-references": [ - 200716, - 203870 - ] - }, - { - "source": "GAME.EXE", - "offset": 200869, - "bad-references": [ - 200718, - 202311, - 203886 - ] - }, - { - "source": "GAME.EXE", - "offset": 200874, - "bad-references": [ - 200720, - 203892 - ] - }, - { - "source": "GAME.EXE", - "offset": 200884, - "bad-references": [ - 18238, - 202319 - ] - }, - { - "source": "GAME.EXE", - "offset": 201240, - "bad-references": [ - 19272, - 19320, - 19387, - 19437, - 19487, - 201139 - ] - }, - { - "source": "GAME.EXE", - "offset": 201272, - "bad-references": [ - 27278, - 27437, - 27477, - 173411, - 173506, - 174069, - 184119, - 201206, - 204024, - 204034 - ] - }, - { - "source": "GAME.EXE", - "offset": 201296, - "bad-references": [ - 18818, - 20887, - 21247, - 55974, - 66244, - 87331, - 112468, - 131912, - 148478, - 149738, - 154005, - 155118, - 157729, - 157873, - 169939, - 175260, - 183536, - 184096, - 184124, - 189150, - 189191, - 189345, - 191210, - 191251, - 191405, - 198123, - 198153, - 198166, - 198171, - 198507, - 198599, - 201174, - 201216, - 206904, - 207068, - 207268, - 207302, - 207309, - 207373, - 212561, - 212689, - 212691, - 212693 - ] - }, - { - "source": "GAME.EXE", - "offset": 201300, - "bad-references": [ - 21377, - 198167, - 198194, - 198210, - 198211, - 201217, - 201218, - 201812, - 201818, - 206471, - 206477, - 206478, - 206484, - 206812, - 206813, - 206905, - 206906, - 206907, - 206908, - 207294, - 207295, - 207296, - 207297, - 207298, - 207299, - 211484, - 211485, - 212910, - 212911, - 212912, - 212913, - 212914, - 212915, - 212916, - 212917, - 212918, - 212919, - 212920, - 212921, - 212922, - 212923, - 212924, - 212925, - 212926, - 212927, - 212928 - ] - }, - { - "source": "GAME.EXE", - "offset": 201305, - "bad-references": [ - 198055, - 198093, - 201220, - 201579 - ] - }, - { - "source": "GAME.EXE", - "offset": 201325, - "bad-references": [ - 31066, - 203964 - ] - }, - { - "source": "GAME.EXE", - "offset": 201340, - "bad-references": [ - 31355, - 203970 - ] - }, - { - "source": "GAME.EXE", - "offset": 201349, - "bad-references": [ - 30119, - 31387 - ] - }, - { - "source": "GAME.EXE", - "offset": 201356, - "bad-references": [ - 31470, - 203978 - ] - }, - { - "source": "GAME.EXE", - "offset": 201381, - "bad-references": [ - 26718, - 31500 - ] - }, - { - "source": "GAME.EXE", - "offset": 202582, - "bad-references": [ - 73381, - 73862 - ] - }, - { - "source": "GAME.EXE", - "offset": 202847, - "bad-references": [ - 81865, - 198066, - 207277 - ] - }, - { - "source": "GAME.EXE", - "offset": 202851, - "bad-references": [ - 82171, - 198006 - ] - }, - { - "source": "GAME.EXE", - "offset": 202950, - "bad-references": [ - 82627, - 171299 - ] - }, - { - "source": "GAME.EXE", - "offset": 202972, - "bad-references": [ - 82750, - 204020 - ] - }, - { - "source": "GAME.EXE", - "offset": 204636, - "bad-references": [ - 146845, - 203428 - ] - }, - { - "source": "GAME.EXE", - "offset": 204678, - "bad-references": [ - 203450, - 210714 - ] - }, - { - "source": "GAME.EXE", - "offset": 204707, - "bad-references": [ - 203456, - 207011 - ] - }, - { - "source": "GAME.EXE", - "offset": 204898, - "bad-references": [ - 203515, - 203516 - ] - }, - { - "source": "GAME.EXE", - "offset": 205162, - "bad-references": [ - 203608, - 203738 - ] - }, - { - "source": "GAME.EXE", - "offset": 205393, - "bad-references": [ - 198108, - 198236, - 203824 - ] - }, - { - "source": "GAME.EXE", - "offset": 205403, - "bad-references": [ - 198036, - 203826 - ] - }, - { - "source": "GAME.EXE", - "offset": 205492, - "bad-references": [ - 198266, - 203844 - ] - }, - { - "source": "GAME.EXE", - "offset": 205549, - "bad-references": [ - 85917, - 86212, - 88565, - 88584, - 90908, - 91382, - 91401, - 92901, - 93280, - 93858, - 95387, - 96370, - 97488, - 97854, - 98293, - 99066, - 99310, - 99499, - 102702 - ] - }, - { - "source": "GAME.EXE", - "offset": 205558, - "bad-references": [ - 86676, - 86820, - 86977, - 87374, - 87836, - 88041, - 88453, - 88685, - 89215, - 89340, - 91015, - 91505, - 92931, - 93310, - 93888, - 95475, - 96060, - 96471, - 96766, - 97518, - 97928, - 98383, - 98986, - 99096, - 99224, - 99339, - 99529, - 101026 - ] - }, - { - "source": "GAME.EXE", - "offset": 205574, - "bad-references": [ - 88652, - 90982, - 91472, - 95442, - 95830, - 96438, - 96733, - 97895 - ] - }, - { - "source": "GAME.EXE", - "offset": 205578, - "bad-references": [ - 90156, - 90186, - 90216, - 91137, - 91209, - 92501, - 92527, - 92565, - 92990, - 93149, - 93195, - 93362, - 93757, - 93776, - 93940, - 94239, - 94264, - 94283, - 94779, - 95238, - 95583, - 95890, - 95995, - 96293, - 96577, - 96808, - 97085, - 97136, - 97421, - 97573, - 97746, - 97777, - 97988, - 98754, - 99039, - 99179, - 99391, - 99434, - 99629, - 100684, - 100703, - 101859 - ] - }, - { - "source": "GAME.EXE", - "offset": 205599, - "bad-references": [ - 90320, - 90339, - 91677 - ] - }, - { - "source": "GAME.EXE", - "offset": 205663, - "bad-references": [ - 203089, - 204090 - ] - }, - { - "source": "GAME.EXE", - "offset": 205731, - "bad-references": [ - 92240, - 207015, - 207019 - ] - }, - { - "source": "GAME.EXE", - "offset": 205882, - "bad-references": [ - 95783, - 100893 - ] - }, - { - "source": "GAME.EXE", - "offset": 205942, - "bad-references": [ - 98038, - 206378, - 206926, - 206937, - 206948, - 206959 - ] - }, - { - "source": "GAME.EXE", - "offset": 205967, - "bad-references": [ - 98324, - 102733 - ] - }, - { - "source": "GAME.EXE", - "offset": 206673, - "bad-references": [ - 206418, - 206515 - ] - }, - { - "source": "GAME.EXE", - "offset": 206687, - "bad-references": [ - 197941, - 197988, - 206420 - ] - }, - { - "source": "GAME.EXE", - "offset": 206700, - "bad-references": [ - 206422, - 211156 - ] - }, - { - "source": "GAME.EXE", - "offset": 206712, - "bad-references": [ - 201512, - 206424 - ] - }, - { - "source": "GAME.EXE", - "offset": 207267, - "bad-references": [ - 207696, - 210726 - ] - }, - { - "source": "GAME.EXE", - "offset": 207894, - "bad-references": [ - 145637, - 145956, - 147143, - 147348, - 151578, - 162801 - ] - }, - { - "source": "GAME.EXE", - "offset": 207967, - "bad-references": [ - 146339, - 198294, - 203107 - ] - }, - { - "source": "GAME.EXE", - "offset": 208084, - "bad-references": [ - 146567, - 146640 - ] - }, - { - "source": "GAME.EXE", - "offset": 208090, - "bad-references": [ - 146981, - 156212, - 156876 - ] - }, - { - "source": "GAME.EXE", - "offset": 208093, - "bad-references": [ - 147012, - 156243 - ] - }, - { - "source": "GAME.EXE", - "offset": 208210, - "bad-references": [ - 147780, - 165565 - ] - }, - { - "source": "GAME.EXE", - "offset": 208227, - "bad-references": [ - 148150, - 149422, - 150745, - 150838, - 150992, - 154664, - 156133, - 156521, - 156655, - 156757, - 156847, - 157118, - 157793, - 162224, - 162243, - 163376, - 163395, - 165964, - 167682, - 168600, - 169137, - 169233 - ] - }, - { - "source": "GAME.EXE", - "offset": 208244, - "bad-references": [ - 149165, - 150451, - 163980, - 167915 - ] - }, - { - "source": "GAME.EXE", - "offset": 208312, - "bad-references": [ - 150021, - 168354 - ] - }, - { - "source": "GAME.EXE", - "offset": 208326, - "bad-references": [ - 150597, - 151339 - ] - }, - { - "source": "GAME.EXE", - "offset": 208330, - "bad-references": [ - 150619, - 162960, - 165785 - ] - }, - { - "source": "GAME.EXE", - "offset": 208340, - "bad-references": [ - 150644, - 162985, - 165810 - ] - }, - { - "source": "GAME.EXE", - "offset": 208374, - "bad-references": [ - 151370, - 162819, - 162858 - ] - }, - { - "source": "GAME.EXE", - "offset": 208466, - "bad-references": [ - 152158, - 211793 - ] - }, - { - "source": "GAME.EXE", - "offset": 208505, - "bad-references": [ - 152179, - 198379, - 198383, - 200298, - 211202 - ] - }, - { - "source": "GAME.EXE", - "offset": 208581, - "bad-references": [ - 152230, - 199556, - 199587, - 199652, - 199847, - 199899, - 200117, - 201027, - 201408, - 202891, - 202976, - 202986, - 205518, - 207856, - 207900, - 207950, - 208552, - 209078, - 209186, - 209208, - 209500, - 209571, - 209831, - 209866, - 209936, - 209955, - 209988, - 210006, - 210035, - 210270, - 210532, - 210588, - 212164, - 212333 - ] - }, - { - "source": "GAME.EXE", - "offset": 208802, - "bad-references": [ - 153077, - 199837, - 200893 - ] - }, - { - "source": "GAME.EXE", - "offset": 208815, - "bad-references": [ - 153354, - 153738 - ] - }, - { - "source": "GAME.EXE", - "offset": 208855, - "bad-references": [ - 153403, - 153888 - ] - }, - { - "source": "GAME.EXE", - "offset": 208864, - "bad-references": [ - 153424, - 153580, - 153660, - 153941 - ] - }, - { - "source": "GAME.EXE", - "offset": 208883, - "bad-references": [ - 153496, - 153805 - ] - }, - { - "source": "GAME.EXE", - "offset": 208892, - "bad-references": [ - 153529, - 153645, - 153983 - ] - }, - { - "source": "GAME.EXE", - "offset": 209075, - "bad-references": [ - 156437, - 156571 - ] - }, - { - "source": "GAME.EXE", - "offset": 209470, - "bad-references": [ - 160456, - 160848 - ] - }, - { - "source": "GAME.EXE", - "offset": 209498, - "bad-references": [ - 160476, - 160862, - 212647 - ] - }, - { - "source": "GAME.EXE", - "offset": 209701, - "bad-references": [ - 161656, - 164858 - ] - }, - { - "source": "GAME.EXE", - "offset": 210003, - "bad-references": [ - 163271, - 203909, - 206275 - ] - }, - { - "source": "GAME.EXE", - "offset": 210032, - "bad-references": [ - 163358, - 206914 - ] - }, - { - "source": "GAME.EXE", - "offset": 210420, - "bad-references": [ - 166034, - 166786, - 168079 - ] - }, - { - "source": "GAME.EXE", - "offset": 210657, - "bad-references": [ - 94015, - 169027 - ] - }, - { - "source": "GAME.EXE", - "offset": 211806, - "bad-references": [ - 186908, - 187545 - ] - }, - { - "source": "GAME.EXE", - "offset": 211808, - "bad-references": [ - 186320, - 203347 - ] - }, - { - "source": "GAME.EXE", - "offset": 211907, - "bad-references": [ - 186488, - 199047, - 199064, - 199073, - 199138, - 201322, - 208087 - ] - }, - { - "source": "GAME.EXE", - "offset": 212096, - "bad-references": [ - 187324, - 200793, - 211116, - 211133, - 211150 - ] - }, - { - "source": "GAME.EXE", - "offset": 212123, - "bad-references": [ - 187576, - 207827 - ] - }, - { - "source": "INSTALL.EXE", - "offset": 22068, - "bad-references": [ - 2274, - 4549, - 4657, - 4703, - 11254, - 12382, - 12446, - 12506, - 12602, - 13755, - 16176, - 18917, - 19190, - 22780, - 22793, - 26718 - ] - }, - { - "source": "INSTALL.EXE", - "offset": 22111, - "bad-references": [ - 1854, - 1877 - ] - }, - { - "source": "INSTALL.EXE", - "offset": 22482, - "bad-references": [ - 9747, - 9912 - ] - }, - { - "source": "INSTALL.EXE", - "offset": 22640, - "bad-references": [ - 22746, - 22754, - 26440 - ] - }, - { - "source": "INSTALL.EXE", - "offset": 22832, - "bad-references": [ - 22684, - 22794 - ] - }, - { - "source": "U.EXE", - "offset": 92132, - "bad-references": [ - 16837, - 17068, - 17208 - ] - }, { "source": "U.EXE", "offset": 92153, @@ -3519,4 +61,4 @@ 108249 ] } -] \ No newline at end of file +] diff --git a/screenshots/U/create.png b/screenshots/U/create.png new file mode 100644 index 0000000000000000000000000000000000000000..375e42eb03c45a080ed0221e25b69692459b19f6 GIT binary patch literal 21130 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 N002ovPDHLkV1g?C`|SV# literal 0 HcmV?d00001 diff --git a/screenshots/U/inside.png b/screenshots/U/inside.png new file mode 100644 index 0000000000000000000000000000000000000000..d78b1583c0b344953ac916a6c3ae3ae21412fa57 GIT binary patch literal 12877 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

q_pkzdy(-^yM%5eE7#W?eF8XI4Zy~m*6 zR$~0TDeS>|p5cw=*EQaSr8a8ofsZRYn$o`=Bx}(>zo^Jh}W zQ$;7t7s+JqLaLrJDffN2kdl@^Sn6cPJllrHY#huqu=k_9zDVdfNF`-(?rPh|ccbxc zR6RAGv&O?qV5Hy~lr?;g>G!W+F@}Fx;zyh;48g$`!JVJ7{a6ckF4H%%nP(5o^gLIz zCB5w@zSkSiRV}MoY;*n!Dc%bGB=Yi}s(1a|P|l>^-}v@HZHA`tg%4t~>z+MU6Eul# zGQ&e7tkh+{Bf}7-MU!t7hK62roH+zPW@5cjmJ}I@*y-#vRGyM$I_&u98#fsl>yRtm zZBa0AP?6hwmO1`$tc>a9lBw2CKD02r@md6xuS0dP6Li4tcU;Jr6Kmbig?nR>#dikN z2kUhtn->L(Jx!iZflXdIs41_0o~>zNtesjL_jJ&B9GdvKdi5Z8(w)_{FtT--L|36D z-fd)yswTEpApLNCDp6OsrsL@0eoyY%`@RVg@Avb~-|Sgm@E*?+VO$OosfkkN-~RnY OURgn1zElnq@IL?`3jA*X literal 0 HcmV?d00001 diff --git a/screenshots/U/name.png b/screenshots/U/name.png new file mode 100644 index 0000000000000000000000000000000000000000..3b488b67730e6343bd65323e9e10bc6d3aba9587 GIT binary patch literal 5933 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 literal 0 HcmV?d00001 diff --git a/screenshots/U/new.png b/screenshots/U/new.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6b90f67faab1c44a332f314620056670c183e3 GIT binary patch literal 8905 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 U*N$|4YV!zo9^q8yKDBfH59r0>0ssI2 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKAE b/tests/testgame/OBJBLKAE new file mode 100644 index 0000000000000000000000000000000000000000..a52f3d4bcd6fd6c74d36cb27d7c66979f5d81271 GIT binary patch literal 1802 zcmXZcJ8x4-6bJBuHSh;rq#zl&Sx^ci-N3bCkdZ71yEfQa?0bFVJTMN#i6J*uigau3 zF6<)()joi&c1yzJ0{~wD3aBXPsA!O&pnwms+JgU?bE;p?WbVwFb7uU`xthb@Ip^HD z9Bvcwj<}pd+@x1>NDk98z4%Gd^W&CpGSbHBS)D>fYL#Ze;eTc94FKQ{KHWEB-R7`V1DxZ1o$lR1^b@* z?;8Q8Wt}FSqO(-a^Id@Gi0bFH10;tSF9!G+&@&UdAKhW-Y7_Y0@c{HciR;wwJE8kF zCNN#+c$1!{v$RRi<*lxHt!pihucQw3Jobp^^Vlmc=kb=f74zyOrVg_Xv?TcsCQ&#^ zHzx5&^6M25U!s?b+Mnejo-%ZUBK|ZBQrFd@=C@YF1F7$|BAyU@H}eZbe$BB+~kHBCXF{gcEWvXi4(xN4g&M>#an#e`Nbdx^KITC(I8kcHX$Gc@4_A zDS6YvF}g~n|7%pvH!SP5Q0Z&bna+yU0Ls`q`lia+H0^(tPASrxyVznZV*yNxP-k(l~%>c>Y_{3henk5fN> zb;j<`jO9IpyRuGJ)BQ#@@ZD}Zx+CAW8aO3=6D9w)#j%-~9W$i|IZu@N!v^jWx8Bgc zP~VrZ&7sJ!n>V?9rA?DP8qZ!7Eg literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKAF b/tests/testgame/OBJBLKAF new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKAG b/tests/testgame/OBJBLKAG new file mode 100644 index 0000000000000000000000000000000000000000..e25834048d69393cbda701dc21ee30d6f7c7f0ca GIT binary patch literal 386 zcmXZWJ#K?g5Cq^wfykCUg{4@yiF*p9C@07b()%I?%+D3#8#plqg$oJ_3W^jdTu`{6 z@By4lL@qMRd)3FHw=?@9@+R|l=T#;m^~P~#5|{XLMPyeZA*v6WmWXwxTdTj|M_l1k zXL?X~6&@U#R`ArULh!sE4K*h@;W*~k_)wz;rJ6PHLz*{OO^yDN77c!hB(2%YTa#O~ zc+~v3v;Cdv&pO-J!SsEbz39jE6lVlW-a|uAb9)@0ta?YgCs&(K$9Gr!jqfPue*%bAKL7v# literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKAH b/tests/testgame/OBJBLKAH new file mode 100644 index 0000000000000000000000000000000000000000..55b08c1c1c7b4a4c9fc765cca21f1fc6a4c523cb GIT binary patch literal 258 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 xWNRNnF(YXnNDVqnPe83&HkY6KM{UqUVo|6 zx*h~&ogAsteerFbuHW(X9KW99l4)c*nNg3p@m=oHp!eM6zKaZGJ5DB5x`nuj^iUq(!1x*%ADKp`H$?8T>x6O!WNb47 zW{V!wILRzBo16&$66b*i&C~Y{%u6H3ZDd^%pfz#EZE8OCY${xg0gN`HAQBbx%i&Zr1|`;N#`}8 zS?811%>B_!|6~T4$#yUS?o1Z?Nxa?7k$S*?L}_}+2|G3ZG*IGCCo{-QG7FUWCho*~ z!1?k}(0d-g3o~6iZTWWP?1t2D<{ zZ%%e&;Aeb9SY+8-7f`{)n4 zkNn+-nJ=oEDDShvi%9tlE3*ANT6@qd7a4pC^$|Xe z`-D*5_l0Go{T&$k$=?yB|NW%>J=gvq{!W5Fn1lBB<{Ofu`W+jT`)oZZ=gR41jrSwQ z8%ovrZAhg(Xzf9ubM9N2{>N|y#+4TVM@O0htAUa9i6S? zI0dl7KKsw0d@pc>_xXYsnU=z+J#Tk`a?Z7qZRBnc^)!bHqqFd{bn{iA`a4&st%ZE*~QJhE5n04R?^R(HbdjHmP&0{0&wv|WmyBgPYQ@*T1`zMiif->&Il$TT> zKAbPvvEC{d_u7S(ka7RHI#z#gRbHuiUsoB;@S)#&X@~vwv3gE!t&I9bzpYZn4V$+r zqhsXv)S&%cLwjY^{$2}&e6iVU{TpXWthYwq2aZ%~ofjUP=GnOnQE2^S-7vfysRwZ#tKpTn}U$xwkr+C4NBIhs}{{jc1@*=P_)x$}Ov-_IF#mR!0+HZd%DU z^2!>mLuw83iRZ*4vG_iV_xqNbsQo?At{Uz?vW@Jo(QzKDML+EG$GNUH*Xq9A0?NMK zN;Z>ffclo%;RcA-4C|$@%6tU)8Dqh4s2lHq>jLH`nWUTd98? zvW)viz3xj8>+WIm7WHq}GYPSK{Xz79#O$a3AjdhxehCd4#~5;BgVyuU zvOi+t%;pB>1GM=d-)>+WY;SFlc@8%3u>D=Ox3hged5G=34VsVmMqNig1u<=NGkHrR z;=uX7Mb;I*1I(n{NV$-9n;Z4~+XBjZ*h)5%uY+>_?FUo91JoZRyU0VJ*nKbKU_H0s zJdtq+H$l$zJFT&}2m6CU{6DUM@L8YVvdkBZF~^!T{^QNc?K^d!f!JrR*-II;^55Ik z?nJwCZHKOl?Hw2ozrWef^X07$J%2#dF>Kl?gL)p({v+D2>O_CsUp|h-|L4H-b8DCS zop)H~VVs^=eV=PR&U62`#8YJAdeyF_m(NeoK0nDeayKaZrKOM0D^S+Oi9Q{-FBbP? z+`szzw7%Q>p+`PX^So{8*M6=2I^J%`(*JzF+6O$f|2o#Y+r|H;Ywl77iu`hA2iR4u(A+fP5!W4i*N6QbuM@ E0Ov^vNdN!< literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKBB b/tests/testgame/OBJBLKBB new file mode 100644 index 0000000000000000000000000000000000000000..7bde67775fe10a62f90157e31765f729764262c2 GIT binary patch literal 5426 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 L@_^elJU;^eFwaAj literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKBD b/tests/testgame/OBJBLKBD new file mode 100644 index 0000000000000000000000000000000000000000..fdfebdb6caaaff28c70446da6a6206f751fc4dff GIT binary patch literal 594 zcmXYuJ4gdT5Qb-yyPMUBk0OPjf?yz!3oM$#B87;AU}JBgO~A&&B47kNEks1L5eo~A zjUa-pl@?-=s5#9AECj_zBN9=pau&|q?lm9ZKeM~Dx03+3dFL4D`zSa$8ywh~cc#Q( zr;I>wBqA}WEa>`O(HRlkXV@(2{9#%1a#h!V)-=C&b^fx)`&qIBf@$9G%yV*a=!O$t z=Use`kZ}G?K5WSz<2OUNY0-IihW-$4v0o?gfWX{mdPyvEUU6}gz3Sp&AF<|Qs(&D4 zI!%7>;-6&$)Lq=>e&Qm5`Ns5(6W=6xgZewDpZL!86@^ox7i0p0B@wllC1FRIMPW;* zDm>+VZxvR#pLk)lgG@p2#9mW+zI$cnP*~!;uFM3+GYT4A*5a z%J1Q4&}KF==rFxeT<3bj(97a0dp(P(IQ$vc&j?BW%l#3Vhw`kD@*f0ye`){# literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKBE b/tests/testgame/OBJBLKBE new file mode 100644 index 0000000000000000000000000000000000000000..abf22ccf5ff0054b57463e5837b3d9453905a36c GIT binary patch literal 90 zcmd;PVAvYM;m?>N%E7>Jx|ETHlVQyd2%ibWXX0d-{s+Qmf%1RzaQZVUvT(35oGxKx YBqVE+&cCKJ7PfEQCe=q%TPfRMjFZQ(^n)cQrduXQiBEN7ku)D}#N(?_E zY!v2YzF?8ZGq6?V7bJOA{@T>9a{evpuiA0&a~TKCK0`IqerWok>5tW3mA}F?1WkQt z&JUWrMC-wP4tf15k1xXRH9nVda4ZH;))lIe8mm1uQTsX`j&T{OwPeq;v&0K>p3t19 zx5TwsnkHZS``Qmpf2(HCsa@m0WgUKv-&D={wU+sc#L&d;WzAdWqRG?tWSJw0VJNm% z_zl<hVbVcAowU_hi4VRh@TL`&aq0jPtdF+i9bzC3XJ>uT0s?5{zxXZLjk;eu3{xO_|Jvav& zp?2Z-i8HxheZn~B{=JK=)V??Actp2oh$U5x{cLyaT2 zfczMmdeE$Epmhee&enjR$bRk(?0JTAo)a_F9&lkw>Z+dVt6eovLp4%kXzD_<&tt87 zZ0ojRkPA|`1LaW%@f{1NP8!IP1YTq=)H#~ADVTXu$RMp2M_pNsozu^Kil#9zu5Le_1>?z zcXN*W52bY{GewP4`|j_bYM$EogU{qWY&_H>zv_?e@2!1i|7SaA_C4^=?7I!^ zyLWEa;h)>@1I_n2dddrB+y_{e{rFGqIkujecf-v%=_~U4^Pll2F5ZhtC;bcI|5E3< HdH4PU8Of(A literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKBH b/tests/testgame/OBJBLKBH new file mode 100644 index 0000000000000000000000000000000000000000..46882f45622d51829b668087314fbd5a16ef16cb GIT binary patch literal 946 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 Wvq1e1_9##E===_xR31NR_5Tkwfmg%; literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCA b/tests/testgame/OBJBLKCA new file mode 100644 index 0000000000000000000000000000000000000000..84b2cb2bbbf3187b2d520e05dfeffbe71e1e829e GIT binary patch literal 498 zcmXxfy-ve06b0aONlG070}=yGlSq+50TpEcF(I+Q01~JV0UZD_REWR)cw^|;kpZNR z3_Jic6GH~x2s=JZpYHYb_3uahR}W@55YykLIs4hG>ksMX8}_g+pnzL)}ykB&n~~ zp&vvPj?Znqq(bOR@d7-J$MSCT6jzei|CO|&HPy7Zl_aopw4ycD^m!tY z-B(N`vHMF}(VFW2^Lv*g{E?(%=KDr_KcX@FVdLKKH|AfvzS@Vrla7L^+guTiY4|J2 Ns@-R_IU*Xn{vV#>MQ;EA literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCB b/tests/testgame/OBJBLKCB new file mode 100644 index 0000000000000000000000000000000000000000..2809bec81199bec3cd97fe60e225e754fcfa7cf9 GIT binary patch literal 1018 zcmXYwJ#W)s5XaAVk1eN!0YoqZAZ74iiU$uFf)r38?`>Q_VklA(rRvb31E7FRshN3c z#l*ru%gau`0Ua_#5TQzBC=x@54h-QFbl~pn>8Jny&gZ-5x#tCd>ETBM08S6T7MXMl zKb;re!5xNhTWBxfbm^ip^u=GqUGbeo{2<@c5*~xidIg`Tzk-j!Qth2&!&=4H>aQZP z4X}pO7q}iX3>nTEu1o&?hd6JQje8o>yB3}R?4u`f>fNC~HJ$x(m%^rG@Bn)s z*aQ40+8N+CGsXTe_lKDeBMfxz5r%RuW`t)889kvr%JR&9c24$w)~^|(r+tsJxt(!V zpAPVn+zT_*|Nl|ny#nbkc*lJl;^m6;bC|`gBmB)0tiSj}h!gytbEx+}!2{7|f+JzQ zOgeA7Oq()4b4%FCHB+=z_i0}9ebRGi_@w91^eL9PT0Xs(c-yDrA~)LgN%v;Xrw7F; zaBo5yOFYi?ZAcfmf2$r4%G}JXZjjdv=(F_E3n-R&9Ay15--zD~N%y7|(lgOa?-aA0 zvlG%e>5HlR)D21ZX)Yvv5517|JVWxc`>p7eE6Q{ z{XFM6&-1(NFQlQWqQ{Di73&ie!Fd@7vxGnbd5zYWZ<7s>e0GLJsyvNTv4^1dj44%G-OllCRW{KjT*gR`R8>hE;@XfeN6go=H|e1?MZoYUHu@WFL! zD6#{7rh1H5;`1uuPw6-%To%PYHkNW3no~uo_g`w`_LcINv|cF}O8Lfe{<>&T`>!as z`Wv=zUFk!Z=N3*>q5Q!uTrTy?oSQ)LcLgZx+O>u2#b2QA*QTxJzj9F8#hmYRZgy^Q zKIDAAvjQwZyHkDqgLU8;=kNz@{v*!QAK^FZQ7#m}4u66#0yN@0{XEymIzXLQ@&Nxu z%2NlpMCO$SW&RD$MrV_=+1cXlb`0`*X_p+dcB%iP_&q(ye+8&hx{F|K3&J5bgIPKmasQvBo zadr&z0*Wa$Z1YGD^KTK)o0wR_O&FZ-Lp5l6Lh3gS^W!q#W~)ybv=`m#{XIOwzbINm z(a%$?pCUw+rm1>_7v#Lujo5xBT&G5C{Du)u%K95YSyvM%^Ut7M`mfCLN2RXa;R?c@p{5upoDtQY!*@f~ZP~yEA^|yiM%PFx7W!~)|))P9i{544G%v#>) zvUN~*mVYk(`VqyxDCN+)j-D+4K{WV#r`mh7d|foCc2Mn=qb&PGp!)wO6x#s*MV+B) zln+KQ&Md_~7U)6YHdGhZIc3_S3&2n_%9orMK}wIBe;P(PDSiSsN`ppdiDOW86SVjP zRNV~1FQI#se+hHw9c5i7sQIaKjNg>~h>vm27MxR1@_0y$@p}=3;*K$Xjpz_HjByhC zvI$!y^OZCBjFCSCQX|T1z$P$(_HAQ)PWBblaoWc?kK)if#`{46CEtb0ah{Mk0KX#K z?izembbMUKKfJz>XgBSoO`whsj?q0N_R|OL@<@x?K%D?vK@h{t8;o!1@N@=2bRG>p(e*)77gA8LT!!*M1!}HMyM{Q`$r8q_1}7o z*$K1oyH53ENr;_-Edq+agmRAxf96`&A$knY7U4N~Oeo`_Ki*CEYrlJBf6-Sz_C>hW z%BhuJr%lkc(8A5m2aJrULp)-h8jqmvL(cryhV>%us6D6q5PEaC=doUJ#HoIP)_P}i zc2B>O(wa#V4d4cwFj%a-OJr%JbcnuLE}R&)F${1O11}^Pcz4Yo4R{ zd3)#9pSQdKN?r)<=lQiF8l+Au4_&HXpdPOWYQ1e2cmmxA@Ks^u1@lMx0zX;|L$fjT zUO--lPF}M81@+zDcnSCHBc+jCu>9UpBu)r}+}h1YQ)bo7Q`Yil_NIkfCYTQ5K^+%-SL$~eL${9u>iO%Lws`EHwtW1QkAHZYZ%D!! z1na>Uruj|8W8}@C_dUHhZR&v;U9<})?DF(cyC4i2!F}B zTgtx}tFxx{dVW6;AF%y_Z1AD@UEjz&_~sEWe3yqJImq9Hj6S zkdm|ZPE3I~@04-fVmh?W+W7&$BK13FJ&tERj-h4#U9%p?vld6t8sFWnL5t&Ai{t)T zi`S=T?L5ZkERWXDS^tSSyRSiQmz=ZwnF1y6rsud7{*1gAVz|dM)NGnEUa!UKh1NOq zSI3;a??Aa%sB_Nd3+lN8E&fq1@zgb^_a1?&yS*N$^*}ohb9Np+KBw;v>i2O#$%FLN zoP95Yn*R>X@qdU0=#z8yt{8HzowxV|H9q6>d;{?vYUcGF7A-G`eSq*z1|N4m=InDm z>fGgg#JLj;weuQZ(T59S@_rD?y)HcGdJNx1qBp>=!ndS6F5|)uK8|}{_!t!_`<#!` zy{dP4`6JGqVn;tcqCp9Fp}Y@;coI^mpJ%!LqRj=dc1UNT^B(8D&Zu*(^FHST&P~qE zgnsq?keIi3AgKG5ocA~a%Q0{ol(=sOw}Kf^_N@h!IO~}A{4nqNVczqDF?72f)CX42 zyyl6}>-IzQyawkv^09(gKgJPmN4Kiw{Rh24?xCae_PYisziWirx9xsQzHReOgEF6H z*Da<)$J>_YLH#c1b`6TAfwv{z_Rs<4UOJ?Fjs}&_(-Gyq5Wi~i@j`)|r&JVt67Nsp zZtNc=ukuF8b14v#(qN6u$L$%nx46CSs^#^ zf57#pt$qaTmwh_q_LpTocproP@}3xU`)C2aQ{YdqUjprj+s_rmjzC7he%aTdtNeuI z$KzM|!_vO`9lP&Az3=PZv3q96J6tdR2G!o`8q|9~eogaMsJo`|CA^60l)UEo6qNqc zAoi1*-JWrKi`(0-SzewhuzcKg&Hdwi_8NbLDhB8;(t(eJ+zDmYCcOWSUyiK_ba`DY3HuaS?~75O}m$qH~n0L z2s2898lRxVZ3dM7TR@p#$4#!6eE}ukhWIU(yhosof6K;C-txEyrN8to{XL4Bof$80 zvGUM%i+_k}VcVkZQ`MrqyFeRfk@bF$FWS4eX3@q;E%M*dj?$+e9cH_v|(eK>FT^|3tvS@iL|{jMaGJaz(<`JT+%`*1kVUzK{Ge3#Ry zynPRV`kevlJ$X7W-+iqFsy>sq-$TGM$qRK$me1>#ET4n=PECOFK29z1zW{1>wk_Fu zs4%t$<|ruJPwj3mER2bpqoCYF)aCYj3S)EdQ&cGSo+VrVz9l^`G_b_gVh44e`J|RDEj6;`{WH#rGN5#edtD?RVGoGCv~yWSqO) zzGs<#BmL}M=3hJCk%9ItTl;}!iz`si&;DiW|A6a*&O>fL?E1{Ieb<3Hk3B1VQ~KYx z!c|VS53E@K$5w1#hgR%+8q{?icb-_W?^#goCs+8K+ykKM;T8M+0W^O&Pp{~ACkZ9r zfm(hB#5oKPuj2nBz>% literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCD b/tests/testgame/OBJBLKCD new file mode 100644 index 0000000000000000000000000000000000000000..ec696c1af0c46b6413aa0d524b090ae71dc097bc GIT binary patch literal 7554 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 I>xuU7zjRwCivR!s literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCF b/tests/testgame/OBJBLKCF new file mode 100644 index 0000000000000000000000000000000000000000..32539e6d1fcb727da03bae883c28eb4f306a4a5a GIT binary patch literal 146 zcmWe)V9;aa@@G_J;b34`RLIE8!5}6J;WL5wOdJd{u3T=S49pDju|RPn77kX3IuJdZ zk&%NTcqK?Z0|y7gqIHaHoD9itA$%^der^T_S#GdA55uBdMrJ;SWM2rMk6}?7$Uf_} PK)w+phXBK(7@&RtqS6%n literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCG b/tests/testgame/OBJBLKCG new file mode 100644 index 0000000000000000000000000000000000000000..b557d0c737efb60e6b84ca6a2505ffff39855135 GIT binary patch literal 266 zcmXxfF%E)25CzabERaoHOfXtm7_OkD6}loyf~Ad#F?Jezui!x}JqGoL(!zqmk^|Ve z$XLDXbglHun`ptc8T(|#8YTnQ0 dJipeqZ|2G&%$EEP^oQ?Z_eJo#V+8XcA-^TsG6ett literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCH b/tests/testgame/OBJBLKCH new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKCI b/tests/testgame/OBJBLKCI new file mode 100644 index 0000000000000000000000000000000000000000..37875610a86070e30ccd1dfe841ab4813fd95643 GIT binary patch literal 13786 zcmZvje{@vUwa3rQ+(|EF&;U^*5Q;7Oq6~6x5;T%fPy&Qxq9K{2DMX79lxna8q!5L^ zM=MyKrWGVALZB!?LlSC);Ex5`Xz{HmS#6Y9X#oX-n3AEL3bj~h-`o3szpnoC_~*0s zKKtyw&)(;r`(wiXBs0fyb{hFN*K+Rir5f9365lgEV>Vb$vGOU)xk1ODww(FaU}FbO zVvgvQl_qFRrH%OuY-gg%LeJmJwzEy9`TuS^yLEn5Nc?9Sdx%La@C9r$KScX~^A@$M zru+-Fzr)zWO`<~W*N2>Nx{M3Q4^h7%_`MWzTuIXmNpW^s!r?-Jxt<(PMpGPD(lhf@ z5Vsoi|2+kMQc|HGN{&s1pRiER{p?e*(R3irXhYNc^~ycuRnch&WNEhKY0}F zhK_=tEXq4aY5goa*CbjcU(+`V_9Mo?{?josUTxV^OybABq>$+wgYoznCs*_PGdVC8 z@?S_h1M>%Gpg%LU4$`0DqSrd5k=N7iM)Eu46pmMCAm4KtPO0`qI7#ECgjo-A7Q=#_p1bIac z{9G;6yu*~Ilci)!j#D;B#^1=ne%-+RdOQc$$A9F(&v>$coJCfV$Mdj%Pvtq&^tw7j z2Bu=2GpE8&8Tr$x&Yha~qvVrQCH{4m{k+DP{rtjI=M5P)yQVtdQnpQXMk-&K>a0*6 zQhPZMUQ&D8Hb+&i_S?HmVu{aZo8wcFkCl(O!F<-6ayogvQ0p_3jFPc@o-1T?zB5

|oAuQMWv=-oeYAbNcR90RuY!_Z9JW+r; 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 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDA b/tests/testgame/OBJBLKDA new file mode 100644 index 0000000000000000000000000000000000000000..d84e99ab64644c917f09cf148076430cbed01ed5 GIT binary patch literal 274 zcmXxfuL{CY6bA6`8+UkR4lxd7sM+K@XcDX{7)-KYSTI;_6RmT1LyN)gTlh$O0C%@z z`f>hp&IG9DT!c`lc3g3+G-1~C13dR!hL|=+0BpjSU;9WnWbHd?`#UfnssP!MvCH4Z zT(n{#mf|(7=Od;2FdI_i*2JD3z-(QdrHs37pO}kQEW}dGPK-m>FXo~Z3$gsy&+R|o OOMS=8(<7Jz{oW6qYb!bc literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDB b/tests/testgame/OBJBLKDB new file mode 100644 index 0000000000000000000000000000000000000000..b7c6ae9bb577546018085ca73c969e5d6d2e5999 GIT binary patch literal 226 zcmXYsI|{;35Jm62_Y4zakYGdv8y8^V0xY!=v9wZGU}L2gvkyUW1qwn+w~)dj%TNRx zK?^f6)#1#KJ8j_JH%9{S9GeMszyw*5waQJ;IOUe8;5w>UBukxh>_KKktX$;4KD0&M z*Sg2JcGZak$eh^6W2X)dAp>~8TRo1s1{tCXd=CHp2r?zhNG|{VI^;~AkMx%N$Z?~* Y_f^kxG$AK)0n$wShFfKxS7!CEAFr+`o&W#< literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDC b/tests/testgame/OBJBLKDC new file mode 100644 index 0000000000000000000000000000000000000000..b3ee146924000a1cca5d70c60953559688dc231e GIT binary patch literal 482 zcmXYuJxc>Y5I|=xH?l|6N;z4KkitSVg$g2SCxVBBkisHD1TiQm2i6vX`6$vEI}5>> zq`X2qOAAXY|AK$u;4sQTa3;IeUj=}AKwXCLN!SSJ*=4o@@`-s{q~5%Eks1u) zxHrobiZlJ3^fJ}Onf{XWL%I@Yn)?;HmbuM}@kW)FXBT*1l?sd8??Ng}G4DevVGUId z^bO)9BrV#No?6Bo<3AnRM(%%>BioY)(^JdgBdr4Zlda7l^L#5}gdB_B@X4-pKB?9NC_{*>_s@KX_h#T5W(nNAjTmDekCE&}T>rzGHDv ITjT#w|9fLv1^@s6 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDD b/tests/testgame/OBJBLKDD new file mode 100644 index 0000000000000000000000000000000000000000..b73010746df46aea0b2384687cc5a4ca9627fe38 GIT binary patch literal 506 zcmXZZze@u#6bJA`ug{1GI>^Co9UThlR*E>^a1@6wLWh7i+#)!si(D?bQ9*9@e<(%z z7uD52pmgy2k~e+$CND3)?vz@OX{MD@KjP{#<&C(ymMpHPQZH_%G}q%3V^r~|&9QPN zU0t9bdkQ-^g1)3Dz&?vP&xeu%XPBSEzN8nFmibiaEPZM767WA1x zFS;e|4QFv!(uDVKEp35vmR`lU5Av4Rcb2}yIFB61y-nwVF$c)~drQCEr>$wnx;oXt zUF;)z8HaCN2V;L2>jI4ZYWm~(wn_JO4edF@c<)a1G7jT-XwrN14H3V~;L?4E5Bv*$ XWTuLDt literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDE b/tests/testgame/OBJBLKDE new file mode 100644 index 0000000000000000000000000000000000000000..8234c28e1a581171df9aaebcd425b1eecfcc955f GIT binary patch literal 2634 zcmXw*J!qR(6o#*eRrIzIR1hN!mBE7tk*KK#4<0h45K2hgkRd|`wN0r@Gnf)uwRQS~ z^nH>NMUia%eU4z!EQCD)E2op;U!ajZ^|O=CNb ztCWsR$H`6{`>!bf5qp>V7}<;Cq3C`bKN=s(K2aQdqRHQk-d+a2mGKZLxtM1#yk>AN_FgQp;I=BUiNmgw(fmdk1mchM^V&05nQ$Mt&J1!Ae{Tk_$~pVqe%Y;g zF1o>t_TkX$_ubfZG>gytezPcwe`*2a@|@MkEA~aSsXa}A7#;& zx|2SB@-d|wXYr}=ae_ZKIA8jcd?NN%4re8fPEOB9J`#JEl>K_fzA-Yck+R=<4hIwB zKWBb(>W})V>@z04-<;NKHIHnDbtZF?uUmPIoAmJxNSQy(YkVUcCw0HP`Wff#T(tZB z^LDPh`f1JK5AlC%PUn+859D*P59Y9J^mgj!-tU~QU!Svc+4_;KC;j@dY0|IT;C!D~ zTfaJQeJ~H-2e;<6PNcu@1Jk6x_rrO;_ahr0n|;IV)sxzbuxo*7v2qj2-bCEo=V|>zJ0jt&@_+k?FDN4b!(x51W{le6AZu#<6k3c-uH^V_Lpf z>!jp;WO{6R!}M*_^#RVt-BBl;;{0F}Es3|XsrRXBy0K~R&!+Y3w)Rc9t?zurSliZn zcYPb*a~oGTHn+8}TL1GK)z|K6eH-_1MDlTyl>9V}En{s*|6h>)y=m;=NJi%E;4Q+H zclF*@c5z4Eb)lT2wyWF@XTU9CrbSL@N(wSB1NohUt!_mO#cfVfod+I0rUFVhl*1DFBfwA;d>sU4h#?mvbQ`s0851#QopP5L!5!<>LizWU8 DSI^va literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDF b/tests/testgame/OBJBLKDF new file mode 100644 index 0000000000000000000000000000000000000000..ce87875527c4f256ce4a5702269912dc675d0eb6 GIT binary patch literal 3090 zcmXYzUufG^6vywcP0MdR-Rxu~^AEyc+qB8H4E9h(x2k1U8UDfPU>dXA|J@=faPrm1O?z#7z zd+yEs*fEn$EmH$2V?N!|GSv>Ix3(O0b_Lu9__ z8eNlWm+!9epEFJPZgq#-V*FQ~Mly*}e1F8at*isCIm7y(akue!Xm5M;GzOsPGs_N+3e_7(M8 zReM$Kkv_WFit%0_ML7-_Qy$rZACrC5-Gl`5ePneN{wRlu^y|FJv&zYSI_mT|?gPgE z&~ffEpQ$~kTv4v}(@hs~s{N8r`bFw$hXyg9FL1; z9;e{LU@Rp0fHt3r5Y6zqlOf77=R&lWDMXvf@08bh{6dJn zXAN3AXzlSqTE=&`$M}TLOkNiAe)jhUB~Q@iDAz9bU#^-r;f3Ql}AmkH^hG+xnw2efhK zH4bRwl++KjexQxBpmENO>Uu}%4xf8}RO&r5N&&8WLG54@>)BCiW){^B+WnbV|B~84 z>%XA>(XjMiEKE-u(`Z2HuP}Xpa3&t6QKhv{gek%rw06+ilVN(F_s0uMzNs*sVm~mr z3(SS7hx@J&rrT_v3)9~APD|T2MYSi!sOtc}gWc@!jY%G_$LKciOKyyM zd0(Ot%_Ab~i$!F8pyU(LeAFIS`-Iv-$w%$U2<3S`FvmQ0ZiLR6Uu}~UESy((C%Bx zqfgim407DGC;OH6sHYFw_o$c8@e=fIuf zYEbH-dO~$FLqB!E?=*NXcm~`9dKr4l_AmUnKB)}74KRay!I=#0<9-Egzm_v{zk*gT zWuy;RGhA14|JD7iW~h_z`I_>A@}lyRvaYRA*&_V{m|{`x z<@qAvRfBaw^Eyh(g(7uu-k`nL%0;;!7omCGOJFy+T%?BprX61aSu;6atgQEYS?~9< z-tT3pL#{0U>xD9X%j4$D(wC*O+>;Bc%VoJA7t3;vm(^ZT#w+r_^{C_DjW8~_kK-jO za!ww1-bG#D)_n_ks zIF4)LHJSHW$8UhU3-YmGJ_s7GrvKwL>9hHo)PJ!i=PFj$`qZ^Pb*WFbP9YwjuhSR2 zj>WpH3$*8W3AFXElbvT7n(JMu(>5LlTAjQi@14>Wy2f!po7dtMsW&M1!Wy+Y_@hd# z$vbI&P3lozllm;K$$JB|{^@mnhpkIqS=FFDPmv9M_bJaRCpS<(y!+nZ{or?>+H=Yk z>yiKVWDDTfro)_;=)m8X&-$!o9`0*R^jy!ck*QNHf+Ox`> N+E>(XRqa)={|^MSkW&Bv literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDG b/tests/testgame/OBJBLKDG new file mode 100644 index 0000000000000000000000000000000000000000..de05ad0629fb747b06b0e0a67c01fea3691750b7 GIT binary patch literal 1450 zcmXYxziSjx5Xaw|OW5e75DiNpDk4FaxJ4R4tQ0IH2CJmNT^M6{V*-4xO3}&ErRfAS{m#Iy#_m=4+*E>+1g!Gl`zHNp-U}k;?&3;JJ zTyHg`1J<>WhRk|MZJ-)X}R_g_Ay&%`y&&r$*vUG|62hjR& zMRbmlb-#|6! z`S2^}Xo~af)G4iW09`l>U7#%Kd`&e!E3Fy$rtr)~)}B`ftz?w7X}9F_ulGB=&<69b279 zeF?~Ou%p~n?kV?`Rb@?CS2mQ*ggo2tMBcqtBJV0_-#^gywVlu!=LfA`+nB(6l5)Fv TkDL+L{P_!g-MA;LoeTc~JF^zE literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDH b/tests/testgame/OBJBLKDH new file mode 100644 index 0000000000000000000000000000000000000000..50483d5d58e7a0569180c1c75e8a77d3ba2317d9 GIT binary patch literal 82 zcmd;LU|2bkZw~7;AU&1OnvsElVbxT=IkwaOb22fUpAO=$2J&Np@+)TY`7@@laIi9* eFJNTl0MQAI%p452&jQ6288|o?&POpaaR2~`coZ-I literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKDI b/tests/testgame/OBJBLKDI new file mode 100644 index 0000000000000000000000000000000000000000..020682b4db1ebbfd7522b0ef1f1944d678292f75 GIT binary patch literal 14266 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 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEA b/tests/testgame/OBJBLKEA new file mode 100644 index 0000000000000000000000000000000000000000..6e6ca532ae20a3f17b800dfed0d0a60b1065fdc0 GIT binary patch literal 4562 zcmZ9PO>CTJ5yxk?j@d4WNlhAuw6Rp7Sh5`_#3-&Df26$YZ0z0j+WYSAyWe{-iD~S_ zqIP29wY?Uh^icYBfC@n=OQb%HqH1Lmj6OPq9bgL$Wo8!c-2i{cecg*6~`1yPxfJ>^mSj z(aO%BVk>`N$0s7}{1P@rQX;}X2c1932s?i!BkcUiM)-q+GNBmZU$;akEWUkO{QiH^ zE116&;SY8Gjfnl;%?PiO93bAt?p%pBcIQgAu{&3~&HNEI)sIXY*VRv<(>aU_oz7!i z=yaitJNjgPQTU9o1eU=HSZ(8DF5aS_m3g%`{;Pmq!T!Rg>WOxCarWEI-vBJO^8w96 zshwMtWv~KPFG*C&tidjd)x=O-lg^l|=)&hted z6n*2k#XC;aF6OXMmr`Rz0bn^>coVcj#x;QCu z;FT`^hOS@j;_nG~t;>FYz03R??y-E1_E7 zb>9o8`P2zxpVTbfI?dfD#DAgFBmFKuT<_=K>wIB{%;VL5eqXgv^U7=e{5#b`m%sIX z%il)7`E_%E|D@yf0astgqHLBcG0tYm+>qgLKokw9v{{pp7Zz_Nh8gJ*TCyCu61}eW^wJ0S-gZzF(30N z)CGPPR6o_Obs)4lcoFM_O|jGYnAO=(%NC1}xSHZ4pAkJL)IKr~UIVWS zwGZ|C+^v2K-F-agTfMvpyU^JOVIT4>4kI$I_gm=3W4_gw(4Bu;=BYnv-|{4MdGdW; z7Bl@1ojn7)(CMsD{m%Jzf2uy;(>#3<`(F0#-U;3OE8r~bLT7LI{HCrGzM(uHSic_% z_^8&m(0xya1N)wM0sl(O6a~`(&xEBO|3)-PPsw=#%eNm`f6ahd*mHs1&wRkW+CPMS z8i!I~aS*!tEe93{q4Tp6Slh9TsZ6jDTK^cSTaPX8Yf&@tdlJZz$_E zK66O8D(n`nf$Lxc+yIAW;P;Hhb!5ik9G$Uxo1d|I6S{h<&+wTq=>EcUx<9xMHoy%q zI&1f5Y}WEzn6)}6&05@Qv(|@Jpa{`dyU|)q@=w`^uFMXM*S7cbI-%%=TvbG5-Zt|a%l}(GI(7h*y zw)i`0AKkJ#y|Be^tA1&V_w;*NXId1gd>PbtifXss+p>H_w=5sUE$%%h{YmKhb#;sH z>U-GR#=LFR>9)NyE^XU8V_L@5(eyUEek64NF9=?%kZAvtI<7+_m7yK(|&qk&+_2y*?T#c=f&G8=bV&Q)r%1HRe+JBgIWPe8U;!+GC9n)uz_EvRo}(ek z=)JfIeJn)32+Ms@%Dc`{&l!8j?p}^RxmybRN0@U4$+{m!T`rsYm?YiFb*ngd>*^(6q2BI`fF%XL^;gU|#H#VlN2$F1J!q Ic<5dFH-BuVk^lez literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEB b/tests/testgame/OBJBLKEB new file mode 100644 index 0000000000000000000000000000000000000000..8b087ff440a20c752d8e018eea2e7e139e3de9e4 GIT binary patch literal 90 zcmWN`u@OK(5J1ttcROZpZsmp lRxQ9PF;h3uT}Wli`iUjsEjLswLRPsvqHd3hV#? literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEC b/tests/testgame/OBJBLKEC new file mode 100644 index 0000000000000000000000000000000000000000..6747e135f1a012a3a80998bb2335138e6dd15cdd GIT binary patch literal 1930 zcmXYxJ#1T56vxlA-$|UNK}BgWjflZX+|*wfI}LT54`S7}kQEGg2*_$;W@;e{l|UN3A=%FcwD}#sJc|*Ph@WSGXD%S70O(ZzKdo4(FJoAo|SXgE8G+PT7|zB=2aIe985!( zDtt%m;8#ksKdV*raor8PLEcA>6QEp`XXU#JRi2jn1cRoZD*p*d*&Uu0`zk2*94P$= zWnYCdpTdsj?Py+&@4!si8ux^Sn)++jzqZR}-$Aoyg@Pn-G;4n|-o zf^u%D!Ou%y;BOK)-?aCTYI0q4p~-&n7n{r`uE}GvF&O7JmUyc#luSKEKCD3FQl5Vb7jd+Oz$K+kA2s_Qf_ob#YOVHs2r|2zFo=2Ic%* zo44m^!ce|ztIdzZpKtT0%FmRK7(OMMO|p|gFSmOL;h z?{XD1@2qe4d;?ng+tfJF#Ki{ulrXsXfK%d6fRdLS*!t-KpUC%S2K)q|Wzh72ywk|L zIN-m;o*mftvZ~At?7P_**!Q%l_W025Q35O?FFmyTpBb_zb(V*=AJCI?E)6+8hx-DP z@}1X)T$-V0C^q8H<(+`$eZ)t$pXA8CQ}7VslpfjrS{rdy=KS%<&gZfGPyLgWJmw=g fC!>7z*#2L$(6aYA<+^fHS$}BjJR$D`#~1h?Pm~io literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKED b/tests/testgame/OBJBLKED new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEE b/tests/testgame/OBJBLKEE new file mode 100644 index 0000000000000000000000000000000000000000..e5aed92c05d6155f92d816804f471994b833c4a7 GIT binary patch literal 2594 zcmXYzPe|ie5XUD`m(11$ODhq&3elu))c7Yc8)FRHL-pX#Btj{qLMarXU}2%QwSNwx zrFaOt*^<&wf{5LP9(q_74?Qe&3m&9(TMr(D3Qfh*(0T~PgNH>*zw>5(mk;0fXXeek zdGGgL^%4041)oO&qT+(DV4O z_-%f09UNcg%hooc`24S8Os~nB=IL1UzuJS+a;LD$JM*Q?|D2F%r3%C9a&P#i0gM(u-euM9|(jsLx z_^$MWW#N>y_m_13KuPlfZljw9OZ*6a0{v8c;TrT%N%H`frGL1@55&%hj-#;>k9I-} zWqcfT>o4(_kThP>e5OkLv1sr^$rtG2oG9^$#FZ}bWuT2ZKA`rmC626Wik3C+u`)jr zzp1j>Dck(A&d)-N|5wTy*HFdQU9ojnblsyB4#qHUtio%u4lwvUbiBgrqQRiVlc?}t z03|Ct(2acnV`4v5vGrq|#5qwh{}pbLb>FI3UaK7K#JqtjyZsxg>OO#XT>h+o#QGCe z-N#hb;;V9y#eP-oPgb?=GF9~tx_pAJ?xxV+js<~k-KiR%U^-3I_;2G04g*cr%udbh z)XYvz{Y|0Y*{N|;=H1xhdn9$VrSVN|@fC?PdY?hgwJRhg$F8w#>U} z8Wi329{FWkg@a%RDCbuA8qTe70d*oQ;yMvZJqz7_jO~dY`?ef+&TBFb&ABzs}>A8sPY5k=4cuxGy?D6kX z_qjdZ?8Z%(2eXSlDu8c7hxcvXzSZ46dl8JE-Pinhpv#x(oawyjg6Vhnx!{Xa;72OH zA@_dhfPaA*>OJ6}+LcdD|13IuV15tG?}4s&_CWLQ8Rv{SW8PRWh7S2Ru^T=#dxvVT z|B#2e(GI%%WA;$uc&YLcnp0D#}8}=`9s`UrD zb3AAojJf;tln3QLOhC)NW~?7{{obk7xiM$V8wX4_9~n2DZsU|Nl{#aArBcQw2lTE(FJAo#kV`8t# z*ToO${#%nx?vncfbn$1J8vj(2-$FBi?!TCA>U#xr?-kI^kDlv#z-<{HJLk`h?*9|F ze$e%&&o$0TW9D4rojP}U==g-Ld`09l`i*PGb;{bj8yEV22Hm@2;6n2dyU=%2%2#yn wBd|#SVqF)S=i~)%$@)O|4oQRZ;F^5Ks4mpiGagDRU0p%D_Vj=HU(PE32cd((4*&oF literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEF b/tests/testgame/OBJBLKEF new file mode 100644 index 0000000000000000000000000000000000000000..7a1b53096d2b4a075025f8e36b62316e73add181 GIT binary patch literal 90 zcmd;PV6bN5(l(U?)4Hk*3=CFmT=#(#gB2Io0TwO>23syDpAX9CgYt!-d?5(mMvQA0 ISUrRW0PzhA*Z=?k literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEG b/tests/testgame/OBJBLKEG new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEH b/tests/testgame/OBJBLKEH new file mode 100644 index 0000000000000000000000000000000000000000..91c2b4ecdccb0da1288e2abe253f26ea606872ca GIT binary patch literal 4914 zcmXw-UrgKA700hhVi`lujSayze+<~z!C(^t1ZgCZ)~#Em7)(RjsYz2+>O;HIKM&E$ zI#xw3tC$isY>Tw0LKUNQYNb3>ZKUNP($K_1w0Rp3JRr?lvS@3&r)EsdA`YgcTQ#_-*GYL>Mun0G`s4&Z0vQ;O&e?T@_UHxsd>383#zApzQ7+N$)CGBqaX_7K?tE(om-O2#&^iP zjStv3sN)42pI(wh+JTz)%#yqg(SfN1SX;7nm^^EGQ1y>5$!p9HRQZ&}19jbVOCjIP zvizNKJD24)*|jWp$i8LS)_j-cG498Jv1sGNW>+@9ip7~;mb>(y0qI{e&Ke&#o-)pX zC@Pn^B)7SL`AhN`RnV4QI>D_uX^75Rd4enmc`-2h~=0DUX; z;J>LKHouC+nSnkA{b}P5R;1K}a|0`!zw?Te4+d&I^k1?0uE>{+mj`t|kogy&*ZHo< zJ?hKm52}CF{HL$TujmJUM!Ol1at&mhS&K7g`qO3)s@)T2m$@41u>Y#%byfbuc=@aH zK=Xo37NFO>uF8L@ub3bBu5(A+H0(J(V}3P|d7QGibEZFS`X@}^vnqes8+WlKSLd;j zEygAzud&OT-OpXU!g27BaoEUf=yI#!et}<8&YKMGWuO6*!LPZl!PU@jO2+DH*pC^r zJ8e9(Dpj6m&sxa$T~|*+jDfsHWE<%E)Dc#Q`-AsBudFkMm(zU+zOW z%=mdw?iVupxd(bs>pFK$4s$>9AUA#hWStky4ph6c z#o4qt-5*;&_}KhG^#|!cWcuFgQeyuDb)C8EW`A9_V{VVjLsmbKeuHKYs(sfD`7O`4 z`$p)0;5tOtb3;C1q2+E^JW%6+I{%IEJ?gnBAGFgRWSrbhvj^24)Ol})`(HBlY?>da zew*e8svoF+oAMKcb%UFsAA|bc0<}+oc>)~w$82aeeB)}>+Ic< z=U8`Ny82mc7x|PMQ#SG3`?stPw&d_5kn`YCZ~*)sSTOzIR=7{#9{QC`2KP}O+L9>Q zcPrE{sNbplEvwU8;XI0_2UY*lt?(Vr)I%TcsfT=ejeT|2UnI6K!us?}R)vJK?*O+p+Ti^*lhHN5%BV zb|g@u)m=8AyE5Jyb<=L#q^-+TWx&5 zje|O#Y=k=gex&|w=b|w%j_{;@A3*L0-G@xW-X#sW&F@iHBkXgx$vurw ze|-&kg#GN0v1H>zW;bkpWs@rwcd8NU_IN|moFC-82i|k?Yu<}j8sVIp?}Yc}vk`q~ z#=wiTZ@nX*0_mGhm_ONNWc#7ac17+1UE7^-E}-_gVYBd_>v-Mr&wmy4i>7}~lRp-6Jw2f#BfqC5+7yuwBcl*lyzo z;~xDd>Oeh*bll>{L;Rt*f0XA^Hjc*q9P13!@A(ms^NtzEjT0dI<%zi0-&-f+K1;hQ zNdIY*XH2e{JZtg+v3(M+=a7KR_e)azVSo(#B%a&p+DvXYra|2&3F{aXuYD2Jb&i+} zsyvFgT;~yx-_0@OxN!nxA3h=eeSlmiPm0fSomJzsamH9P&KlE6%PSf3>Q08dK+R() zY5Q#)O2+4sn>-yJ^m1(Vx5JlnGaRi6gAADND@zR?cLA4LA?HK(6%l5K+2 zJ~|fkZrnHla$UzeJbyR46CGarN}|)VKRHm(H`y8H0kzKCIzyeeo1E_S`i{tSdY!lg zKiBdzZGl65pw2TmX?agt-jg;jsPh`j#tO)J m+o$~B81LYe|0|iE^0zo|X)2ue5Xkc$HkOT*sj%-L&-;HIXWh#H literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKEI b/tests/testgame/OBJBLKEI new file mode 100644 index 0000000000000000000000000000000000000000..bb7c378f7cc5da42d503069cc963e4904e431059 GIT binary patch literal 5274 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 D71|cn literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKFD b/tests/testgame/OBJBLKFD new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKFE b/tests/testgame/OBJBLKFE new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKFF b/tests/testgame/OBJBLKFF new file mode 100644 index 0000000000000000000000000000000000000000..5274e60b791e8d4612e5b4a2fb00c91736fa928d GIT binary patch literal 2682 zcmYM$&1;-h6bA4+ZCa*h(wYX#Sg}Ei6`Pt_1XQr%KhR1Sf^<<7p#f3^K$PTx1c7i-KJg$s$4*Q_W(S%vUm#%p~*m#!S-5%;cj!&pij6&5v{L=iGbW z`@ZKwZf#h8b@;&vx;`vlyO1|}5b?&ae9JtH9)VAXs2lPqU9;`jWN03k9x-}PdP4Sc`&B`Yvq#m zd)(?#{@?l~Idu%|>IGjA5IOOo@1zJB_K4DcMy-H_*bellj( z%$e!i@`H0@E`M82a-HD_+b!IdGo0_j9XWd#rsERj`p?DX8pnZA<}-1*1E`O)ak;{C z46iZ|eLfeL4;e!r=gmS~zGoi#{AOH+IBv)6nmuz1ay_>#-m!Ss;%64mCG`Af64HnI z0~efhIZigA`vjSHIWun-tle@#syqkHguKi3*i6U}_oHKW&7QesZks#iuKCPdzAI-B zx_(EGvfsNh#C7bLU9)FyL5{y|@s7p27C*B%_nSVa&_Ac?N!zbU`54XJ9AbYCCiQvC zOiJ13r)-_3^q$C1**Tcfb1?V2J|}R3^)nCjc_=*a&$X*Olrx-P`=N|--ze90)8dZV zg{((eUU{VFs{KgYZJHgk3t4}0+McIreV*#ma*O8=-lWZG`H{A#tsk>vb|L#&o{=ZO zt<1=*`M3Fm?W;5L4`b-_(C2G2a*KI*leTAU9J6C~A;+mc)_FD`>wVmQZ1v5K*@diM zOv-j27Os?(&)Glx%#3oK7L&S9OI8kjIrQaawC_iI==XCusq=+?zAH)H??zJ6d_Oed ztFWDvQJ!b&_simr*|mIe*5)^B^P9E#%}SK*7iT2^Zpq4_&d zeNQc>^xQ33T()>QrT0Gc_kJxU{=HaF>3b3S`=XJOuXx`;A2(AvKJ@2(J|jnYE>|J{ z=X^oqY)R*lgUsj6f;kWQT$W05n&nGofIR2FYW4m#*Q|cFqW#w@atzg6y`twA`u723 zKGduD_uT;(%DwGgcl0Fk^nLsvdd}iK7@zS6Za?1R72VIBitc~5rsFNtbez&xLXqLi_t&HPCya7RVPE&q03spNFPIe7}K2{C8F3P{e;ftsaW__aNkZ@P$v@o=?$? zvN`4UQ+DqfgAsm5xnMBjzn69gBls?hginWZ`dxNBGQ@j+9ddm(;0f4z&GOLaA@i%l r+7BE+=vu>(A>P~T(AR^n;QXw`A_-2Q6|;VzFNePWQELZ%9-`fUfl7I< literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKFG b/tests/testgame/OBJBLKFG new file mode 100644 index 0000000000000000000000000000000000000000..d1612cf0607cabdf7ecb1f92db7c288cf0d802ca GIT binary patch literal 146 zcmWe)V7Rc4$DdJ=frEkJR1_m4H^Z4zJl2d13=F5wLFltk`tU1|Iu;IAhEr=9nK&4Z z3GwV literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKFH b/tests/testgame/OBJBLKFH new file mode 100644 index 0000000000000000000000000000000000000000..8900d6e3597a4724b3e220a1fca7d6bfd5a14237 GIT binary patch literal 34 ncmZQ!V3_@m&!16|g@b|NR5&9eH^Yl0ejuNLgNfl(6p#-9ble6^ literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKGA b/tests/testgame/OBJBLKGA new file mode 100644 index 0000000000000000000000000000000000000000..8ed78ea417ac6a109855afb7fd0d577a72cba669 GIT binary patch literal 18 ZcmZQ#V33*4=+9`x!ok2$9nZ+Y4FD8D0y6*r literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKGB b/tests/testgame/OBJBLKGB new file mode 100644 index 0000000000000000000000000000000000000000..d7021cadc6559163ecf8cd2d9ca07670d9d1cee0 GIT binary patch literal 490 zcmXYtJ4*vm5QWd&*>K(C@2UfF^v&~n2pgjqBaV4u}tR{w$T;A!a^)9EG#Ti z1l+FhD&QR@} z`ia-g+|_I6zK>_u`{`KbUJP^@Sx%uwJn{2+c0MKES9%^y)?Rz`d*YoRvcuRvJM z`OxfH&v{^cVaeRF{>nFyhp-eHJ?2{*A3I%{@Ov-?y@9L;wmd;(`D5~GZ(J!ZSk{Zc EKQUZOp8x;= literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKGC b/tests/testgame/OBJBLKGC new file mode 100644 index 0000000000000000000000000000000000000000..b0e5eeef6739a7d23c75b0cc1b050d3719e43a75 GIT binary patch literal 850 zcmXZaJx|+E6b9hqBrgpDhN?kPB}hfX(y9yysp`T|%11W_+9t7MJ9X?J!N9=a!Gi~e z3>h*oWME+E-{{}z?i87jx0_Y4=q13$7XCMmY0>d5^bnRA_fwElT|3 z^PobXb4F%Z;SK9l*C$e0Ki2qLud9zM^q7~ZtXEy1)Z$r%rkh`(Me_=vMTIr9LuVB_ ztRK|a=l;Xm-h)1KkFfTAqT2Tv*S=3&qsRQjOwFQ3XIJC18c&ME59qN^qH+(_-_zp7 z13KJmrt-bSbL{b6$=u(EvOZNAr@ZfE?!W7AGqZTK@c)78{)2RZKI<~GSl~13RXuM@ zy7Y4_L! zF0OvGn4v?J4jn`k96D5*p+g154puq{cIXh04*t)*2L-3!JO6Xe{W#~o(pUi zN)pj+)73+Els_c)QF0H_Awz#jq3YexQ_%k-#p;Le&=L5B$NrJ>W4wVqsGyuw7RUIT z=weQ zw^)QXT9TJ1#K`3uW|uv_E+fk}SOtZ*x++v)AHxT;AE3e_aApe9pQh-=l6s4XZ#hQNLiTWA&CRi{Sr6J!^(6w>}xG~ zrzUw7pC*x_T#Fw_ezC=taG^@e$Ad0DXz_^b)ATguc^@Cl`~EhScNTp8iVM8ki;Z%N zd{5Q`{rg$;dVbOO#V$(SdXl$Y-40N0iSN7kB_5D-=9he5ic7AZrv8>^5_F5~TYo=L z&SxU0-=x}mUX{8xmBB~uI{~{6%KaNks|=NqG6n|`7c6t1tLrjf!11ZE%ol}L87d?7 z$B38zBv{eB6(1idW9Z_aYV*)B^aV`I`axUc+q!<6&&WQJ+A;jdGvzg3@5&nLHPVxu zcJ(@Fs;UQTy3U&JtBj$$bFHg?UGKB5`zb?Zr2ZK3l2`u1?*OVOtIFUD_oboNLFrRN zX_cWeQpVtr++)N252-mn_e@poSFo{8N=da1?W3~t-OmpY{q7?BUHk8B)N_lUN#AQ* z{8{Ej01jin#+Iv_2|X!Re^dRHpO`mtu5I2$zNu{U6Iln`1gHwie3;ty@3p?|`xbec z@{Y@+%8s8aRnWyl@0GkA|9%@g+~?j8DD?_K%yg=B{Cuf){5+ZJ_<7Rk`1;!puO{(B Ygs|~mOx)o&IA7`$(Nm$ut5tTJHInNcgVY!tZ)$R!8|~M$Iv;9& g1a+Brp1(rw9uVI!i?8fcMDm=@l2=c<7x1+5i9m literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKGF b/tests/testgame/OBJBLKGF new file mode 100644 index 0000000000000000000000000000000000000000..710e385bf7595c01d0389ec72645d849059526c2 GIT binary patch literal 18 ZcmZQ#V31qP<kyIY^1LwZa@qiEIpTLG+$qX-Dh^XU=Pz~GIp7@{qDZyL zd7%n_ob$ZYYe7$f)3$D9Eud`Qaa>AsP6OCy)NUy2iM`h2k1z{A2!kGb5*PM(OX`4! zE7A{I`kNll3F96w{G-IRprwD>EBknT?iy&J?9uF(`QZKv9D!=^8{8DCHlW?7U+&fF z^Lgo$^f?tygVL|9O#fpHdq?$*vN_N_2As%z5wz3+4=&d%6WQ0mFZuC+e*x6exO7mS zf34u1dX3yw%3g@yFL>!p$z`b<6xyfYQ?`D=6{S5#Q}CqdxZo*a3-PjNqIE!9XQn96 zKl;jha&F)o<%Z;WNAg}OYwMI9%KbHt_>%MokzXZW{kPN~s2_yCMp5Z^?@;#A!F!9< z4_bes`S&!xt$xtf@2LNw`n~UL=ZcgarFUG;`Ixc;nbTMOMDwC!z9{=7YJaNsj_T){ z=biARA0Pjc;q6*ZRGMzj?h%4Kknu27k)_u`(R-TYKLl zz5kKk|EN4?qyE$5a=tw|r;1C>G0)ri#@uMjoMS#`=Y*Db8YvAp2OX>btk!ua=Rbx2 zROBx$j>p3Cd{=#WZ|-}_o;kit;Z1*5>PMi|HQ*u`Zu+zG{Y0R(gVHCwt?{6>gEs!I Z#)H-l+V}?=4_Z5D;~!}}Xzd{4{{nDJ*0!{z` literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKHB b/tests/testgame/OBJBLKHB new file mode 100644 index 0000000000000000000000000000000000000000..f7ed35a16da4b179b2799df51fc9692693bc8d2e GIT binary patch literal 242 zcmZwBEe^s!5QgDtzqVNe391Q%8YHRU1RS7ZMMVV?2jK*Z#30}VB&5F>1e}ZuRParx zWX+Q|v$NSmq{?s;9=h^qo#7tPCc~Q;h+9h}CJ=WRdO@YjQ0cwW;-XEjYGu(&$o;{G z#d4mA&@|O~ju-dLSlo=Mo(GSATG|}F;d^a?6X$9?qFsSfo5mB`Y*6ceo*!6m>zk># Ny%*xAAE`Uf558LADCz(J literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKHC b/tests/testgame/OBJBLKHC new file mode 100644 index 0000000000000000000000000000000000000000..e62695dc055ee8eec4889a6c0846b3f1cfa68852 GIT binary patch literal 242 zcmb1RU|7P=;>^pyz_1!hFBFFGmkG02GXlj|Lg{r-@g>p_@zqdzxjc(8P#GhT_5{)l zK)REW;Q+%DWr(^J$}ApW^P&7@+E8<$^g?}zee0m~5^Jb?pmf`I7Jo)X77h^xhB8J* z4u&JAS=>Y!7#WUS2Z}qfaELQ7qzN){fapv{W)6n#-w^du3=A2JtlSK?+7ubt-FrpFxX>!FuVbNvx8e2!;hVAQ}<0A(8Z zoB{hAcwThW$mhf_)5z1}H{Zy!<>0MGzCv)k)5w2|o@?gmI_0CnvwS!900k$A9Bi~nL9UshI1T({eJUG@`-{SNp9 z_zNiU%(wGl0LP!e7`WKZDTy2O^V@k{;*SzOp1Fkgn@{+BEGGCoh6${UgSQjBUIC_) zny)0^l<|z}*(A?M9P>#&B-t;?rE=b-B#($6cu%;T<^B{%aa2@(zDE=n;&et0R!ZJb|u%Ls0rG+T}k1O7FQoG~u518MGVU^L0t@`#OaCzJH>9 zUyod~Z8y)xf-i_J$iBH&(Ivqc(YvN3pt}RmEhd;C`ree3Q}~;0lsGcV?23KC)o;Z% z35Qqgi^81hypE5qSodCyg8>{SRi{?{di~1ms$XYl)i%5JR{i=p)p;F{3O=qMi7uMb zI1Lu8yO*Hr(`>=VF;wvLhgIiP=T(ms?9+0eK{s!#VBPyRp-dGuK4rG3@f9_`qQ<8> zuj8Xdzs`8ky7vz}Bk$Lw+Oun#w>8b%n&wS)UdPAQ>>2bcjjvghfM^0*-i>fW>!8eU zSofZfZs@)n*1dm|s8RtYcvr>#3dJ2?#y2PWtlC=$`#`@$7Jaa3-T##brJi7eoM&uP^Q_Enp`I6G!Cyp| zj0tFX%hol)4|H`I*|IhDQYY2Xww`y}x_@pL=aBm}uKHgh**5?a@=i~x{XeyX6VKyE z_;OqJHNiew+L$;+JN72rg;T=Jj&=WDcE|Vc(2jNYGTgQ9U%0kwYo&ic_phh-?B_BM z{7ks8hxMx|z$f&!F=f=hZ{0r<9@v76M+f#pC7u+g3v%x>2ll#X(Ahy}A3Ctp6|f7% TFLz+AMc3VoO3}L*meVHwspmz^<^s=Kko0SquY)gxTi_+#zd-+D zas$%TV$vsj%HUZksNLXsdE*&y^PDu)|L!?iUWA`uO8x(a;+<*kIgsP|IpdAC8ednX|SwRf11&jB+fX9>BW@vA1~6P*Wp zfT<_leS)NXsd_&t#{xsWq@*;ygQWbSd6^{TPvv3K`e~-*jI5+(q;~hy@)4jsQg+j_ zt>fU4@&FWYnwB@!pIKUB7r<)9#S!d5ntI0N3$*##%gAvEe(h&yKO<#b2mMId1+9I~ zA8;Ogr00E&{Sm!aM$T)z4m0wj?we-hcjYW2n`BJmSj)P+>}7dwmgi;Vv99Z8cM=fRuGuJ7JK-*@%#o{86V zeC$g_>jaGHeI~wCRf93DyKjBx4`}r*YS8N2Tn}1(hx4G-cYS%F=N$U-H~El!p!b_{ z9JJ%09iRE~j;;gk{Xjcj&9Uxs($o2^oV!<$b9Fb!NlNQsl#}x|{;Mwj!7Agi%6P20 z`mE;VEA?YDFDv>EK>M!hc~{SSdFCz8yyfKx%S<=VyyaaTLA$(R-sTO|y!G<(p~e%m z@$GXxXyY>=ha3m(_=x*JtH+!Nt)6fmw7Oc5@71qb!S%oW0_(ZJcLQzxDmXt6plv-D zSkDFdNB8$ZT{j?y@4EilxGGCpFWaE*Yf`tUcc^!%+teNEfO>G%_RZ5Tm?vK~CSn@vvZVcQn{1LT za);a{+hm6f$o{(P!{c=sJ_mb^YqU!?$riao?vib?Lk48;n)~m8DgCcCHfWb@k}YzF z+$Gy&hYZN>hWjt}H|Y0<`~~x7yy5copNYS2LPo$#X3p}W<`4QOUDqhflJ=i%Q2SDo zx<$Q1y-VGu?obER{j$VT*gq({z5&|zGAzr2+6Ardb@cxo67k|wZ!T|Rp S?RjA{IdQV+y%ds&oBtp90CB$n literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKHF b/tests/testgame/OBJBLKHF new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJBLKHG b/tests/testgame/OBJBLKHG new file mode 100644 index 0000000000000000000000000000000000000000..9d6c83c63809a9df5c153d2244f683a08f185059 GIT binary patch literal 1146 zcmXxjy-piZ5Cz~_Fp^Q20?8B<6o@JXu@XdqKtd!S3W_Z#tjL86KrSdOMBxHU@CFn% z*xvOYdmEI9iU-I8MB*hV^Ab5T_fUPBoilg5ci~0BlAWyv=*O}-`Nl620K`9W(~bQVGX@bd43wt@2C2POOia*U6DH(rFvxV zKgIJUSTGkb=kup=K0DQ_-B%7RKZ5rA1Nxq;#oVA4_hdD#+VdPPTOO{!3Ht$gpR4oy zI`i4J^U(L9@405o^_u)H zG;4AW`W*B<>=!g(-p{$@zDv$QpM$;+eb2RGZrIXIyXUN>Uue9?7U%HX?;o|#W6tNV zx#yaDpznd6L*H`u?RbwDANSbid$#$WG;8x5=;uIxPxcEMFz@?sw6coxd(d(Z^pW=I zfDUPPqg9)OK9{4m{|D&x2=zK@==GRR=#P^^x)h(;1boNJoqm*BNNje2eJ!6I%zW#&KuG0F5n!{~s8%5ty zs{YTqBX%?O%hXSd<+n%5ed^uf!-V|?U*zRCITRm%s84>Gf1i^1lz#9>9oA~I|4SBU F{0CnLTo?cV literal 0 HcmV?d00001 diff --git a/tests/testgame/OBJLIST b/tests/testgame/OBJLIST new file mode 100644 index 0000000000000000000000000000000000000000..c2a8f9cf15b03a1eb3f492f2a04c3d821d3a118e GIT binary patch literal 7539 zcmeHLeQXv}QHehW+L$KzqZ4dsz!)G_35n8a67-Lupea1h zdv=|brBb~zbu`c2`|&)_@A=WxA73+41EB1)>d&CV7NK5`9 zu6|uyQY(G3R=TcM@{&@zMH)OM-Tk7}c2?Z@l+?CZ>in$KzD^45lB8Ox=d8H-gcy59 zy6IJ^Z;5pGjnd*SsbQb^@Odfytn{PXrA?h;`s-5mT=1JzeyUTRcr$psQ69GR+;YAD z_gepH?a&r&WK8RSLF@mCHvBzp?{RJNY3<}ae4vYetCttf@?W}9_~T*z{NMO{UK8SMUq}g?%Ya_9w6I5GDVtRBVQgMt6Is}3UzcO{KTW`lPAI_UkpFl zp`IF1H>&c3%jEUFa>sJH@yEgY-wxigHrV`J@HcCN>+g}@{C?=)cZSXor2pMyb}8E>!HzCLZ3bi$f>Zb-jjNY`fco4+9aF4a8xuVl-;O>Or! z<+nBcs?c=0kZdrT+j^6uYSYu-N`9p`*}gG(tT#DaEo{D3$iAw)_XB>nyyCCVH?BDy zNv7`5{;Y4%#OCfg*nB=BzWbPXeKF5mA!7(&AH!j2Vu^+X}ECC0FRPE*!#Pjn6pumb_dvu8pLMUngTBw z@Paa5<1y_ZLnFrbo@3E+uE)HBXS*DuoB{4KFfdZe-K3=fj~)hXT(dCzED?v9L&W+) zx1Z_!8nW&nVW|4ifPaBp8~~3~k(4_XOM~45k(|31Y%tRH9iDxB!|@HJK4d^z>OqQS z(GQtm)D*}cTD*P7e3u9LW!<3WcQFI_oO`vL55g^6S5pT*@^kS5&_^Eh>Iq1rHMSL} z)e%Cesv4SZTB@mMO=ZKz&9SDmSa6hKYfrs%b#ore@okrkN%t zt{Rqsy{R&7s10-S2UHGNfPke9-N8DbM--X~RuOPUW7Nd{05JvB34NkA0Bob$@oUnt z|E%gN8`_Sw`y3*xXdIJ-`pZ;t{Z$b&5|8PSw65tIK47fRP~mw(0ft)REP^KhZNj=# z!!V;7OO3_=iUmZVC|?4rrrBT(M+8bzkY{bV0DvO^P%Kx2@>qoq)mb-?F=-f|C~nay zwhT@h91u7nF&L~1AXMX3*w`yke}d~H50gD)H=#=t9A4|#?C<}#^UsOzf0E07h?r}I zOJ{ip(Tj2B#|`miUFx!PX@U$c$7<#h5h^{$72CA}&BiS`F3Yk61F5w79BP0-XvxxC zl_aM?-q66*@0%oWXIV@%4i?OaO;m1eEg~%jh{tJ)qT2>Q#pPwo5GJuOmTXb*F)lSE ze2N1l5@b;|7o37j5RgaF1#u}n z+W92FQpyUnMF5ZDk{K2SoIj%+m6N!^7jI@!%m7rrC3<9dP_P>(z!&pjwv|sA?7R1! zp^*s>s8E1A1FM&Zo##EWKkwyH!3YH7xGChl3Dm-k7BKRK{QeS`_X-o}CqLnh<-Pr5 zB~ZRlH~_9abO`zbI#A&eub}7EJQ4=pUjRaX%s1dL_&8`XnS34w+@Q(mfXI7e8Mu9_ zyndM%gh25t=;O9jUiBQy<(wjOF%$&nNat=Bm6^H!V=x;~mA-V#DBRg)cCOzLi!w*z zIA!2}@8$r@%HRh|%lgaO!E4nu{ldHOhtIYBhtFkwSQfww9a!kV|62#-K=5&HJ^cQ^ z%$=FHHo_efBzWz7mu!Xk2sZ^Uu1m?M0KZx|3iDlLB}g2u3f@f*3P;&H@4U`HL1wvG ProWOu=9db1)$0BOOisx} literal 0 HcmV?d00001 diff --git a/tools/duplicates.py b/tools/duplicates.py index 09fa0950..be861699 100644 --- a/tools/duplicates.py +++ b/tools/duplicates.py @@ -1,5 +1,6 @@ import json import os +import random import sys @@ -24,11 +25,32 @@ if len(v) > 1: print('WARNING', k[0], hex(k[1]), len(v), 'references:', ', '.join((hex(x['origin']) for x in v))) -if sys.argv[1:] == ['--fix']: +if sys.argv[1:] in (['--fix'], ['--fix-half'], ['--fix-tenth']): + added = set() + if sys.argv[1:] == ['--fix-half']: + threshold = 0.5 + elif sys.argv[1:] == ['--fix-tenth']: + threshold = 0.1 + else: + threshold = 1.0 + for k, v in references.items(): if len(v) > 1: - br.append({'source': k[0], 'offset': k[1], 'bad-references': [x['origin'] for x in v]}) - + for b in br: + if b['source'] == k[0] and b['offset'] == k[1]: + found = b + break + else: + found = {'source': k[0], 'offset': k[1], 'bad-references': [x['origin'] for x in v]} + br.append(found) + + for x in v: + if random.random() <= threshold: + found['bad-references'].append(x['origin']) + added.add((k[0], k[1], x['origin'])) + found['bad-references'] = sorted(found['bad-references']) + + print('Added:', sorted(added)) br = sorted(br, key=lambda x: (x['source'], x['offset'])) with open('patches/bad-references.json', 'w') as f: f.write(json.dumps(br, indent=4)) diff --git a/tools/patch.py b/tools/patch.py index 11b78605..1277dad8 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -252,10 +252,11 @@ def pi_jump(s, a): if t['source'] == binary: if not t['russian'].startswith('FIXME ') and t['russian'] != t['english']: references_segments = [x['segment'] for x in references.get((binary, t['offset']), [])] + new_string = t['russian'].encode('cp866')[:len(t['english'].encode('cp866'))] - if len(t['russian'].encode('cp866')) <= len(t['english'].encode('cp866')): + if len(new_string) <= len(t['english'].encode('cp866')): # FIXME упаковать фразы лучше - message = t['russian'].encode('cp866').ljust(len(t['english']), b'\x00') + message = new_string.ljust(len(t['english']), b'\x00') replaces.append((t['offset'], len(message), message)) replaced += 1 From 38dec88bd2a925d5dbbf2b333ca4c57282d48aab Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 26 May 2024 23:08:25 +0300 Subject: [PATCH 3/9] asdasdasd --- tests/test_game.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_game.py b/tests/test_game.py index 42af8900..f42123b7 100644 --- a/tests/test_game.py +++ b/tests/test_game.py @@ -7,7 +7,7 @@ class TestGame(tests.ConfiguredTestCase): - #@unittest.skip('TBD') + @unittest.skip('TBD') def testGame(self): # FIXME игре нужен созданный персонаж shutil.copytree('tests/testgame', 'SAVEGAME') From 1062c7a14667b2e677166ecb106c4d09766c210b Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 2 Jun 2024 14:16:15 +0300 Subject: [PATCH 4/9] Removed truncation. --- tools/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/patch.py b/tools/patch.py index 1277dad8..1435e97c 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -252,7 +252,7 @@ def pi_jump(s, a): if t['source'] == binary: if not t['russian'].startswith('FIXME ') and t['russian'] != t['english']: references_segments = [x['segment'] for x in references.get((binary, t['offset']), [])] - new_string = t['russian'].encode('cp866')[:len(t['english'].encode('cp866'))] + new_string = t['russian'].encode('cp866') if len(new_string) <= len(t['english'].encode('cp866')): # FIXME упаковать фразы лучше From ea2e367f0dbfbae961f936f3b19a176b2bf96b32 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 2 Jun 2024 14:24:47 +0300 Subject: [PATCH 5/9] Patched system breaks. --- tools/patch.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/patch.py b/tools/patch.py index 1435e97c..baae4312 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -280,6 +280,7 @@ def pi_jump(s, a): missing += 1 ds[system_break_address:system_break_address+2] = len(ds).to_bytes(2, 'little') + ds.extend(b'\x00' * ((len(ds) - ds_size + 0x1ff) // 0x200 * 0x200 - len(ds) + ds_size)) assert (len(ds) - ds_size) % 0x200 == 0 data_space = (len(ds) - ds_size) // 0x200 @@ -334,6 +335,13 @@ def pi_jump(s, a): d[0x0a:0x0c] = (max(0, int.from_bytes(d[0x0a:0x0c], 'little') - data_space*0x20)).to_bytes(2, 'little') d[0x0c:0x0e] = (max(0, int.from_bytes(d[0x0c:0x0e], 'little') - data_space*0x20)).to_bytes(2, 'little') + uncovered_system_breaks = 0 + for i in range(len(d)-1): + if int.from_bytes(d[i:i+2], 'little') == system_break: + d[i:i+2] = system_break.to_bytes(2, 'little') + uncovered_system_breaks += 1 + assert uncovered_system_breaks == 5 # TODO Search remaining system breaks by code. + d = d[:header] + code_block + d[header:] checksum = (checksum - sum(map(lambda x: x[1]*0x100+x[0], zip(d[::2], d[1::2]))) + original_checksum) & 0xffff From 0e51b4ebc6237226eb28e4f7daa38cc95dc98a87 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 2 Jun 2024 14:33:39 +0300 Subject: [PATCH 6/9] More strict system breaks replacements. --- tools/patch.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tools/patch.py b/tools/patch.py index baae4312..a0f09fa8 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -335,12 +335,17 @@ def pi_jump(s, a): d[0x0a:0x0c] = (max(0, int.from_bytes(d[0x0a:0x0c], 'little') - data_space*0x20)).to_bytes(2, 'little') d[0x0c:0x0e] = (max(0, int.from_bytes(d[0x0c:0x0e], 'little') - data_space*0x20)).to_bytes(2, 'little') - uncovered_system_breaks = 0 - for i in range(len(d)-1): + replace_system_breaks = { # TODO more strict. + b'\x81\xc7': 1, + b'\xb9': 1, + } + for i in range(len(d)): if int.from_bytes(d[i:i+2], 'little') == system_break: - d[i:i+2] = system_break.to_bytes(2, 'little') - uncovered_system_breaks += 1 - assert uncovered_system_breaks == 5 # TODO Search remaining system breaks by code. + for prefix in replace_system_breaks: + if i >= len(prefix) and prefix == d[i-len(prefix):i]: + replace_system_breaks[prefix] -= 1 + d[i:i+2] = system_break.to_bytes(2, 'little') + assert set(replace_system_breaks.values()) == {0} d = d[:header] + code_block + d[header:] From c343431e78048858fba9174123eb6e8f67989e0a Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 2 Jun 2024 14:45:35 +0300 Subject: [PATCH 7/9] Real replace. --- tools/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/patch.py b/tools/patch.py index a0f09fa8..7bd354ba 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -344,7 +344,7 @@ def pi_jump(s, a): for prefix in replace_system_breaks: if i >= len(prefix) and prefix == d[i-len(prefix):i]: replace_system_breaks[prefix] -= 1 - d[i:i+2] = system_break.to_bytes(2, 'little') + d[i:i+2] = len(ds).to_bytes(2, 'little') assert set(replace_system_breaks.values()) == {0} d = d[:header] + code_block + d[header:] From b052a4e8a45f0634a11f52d7a9b4b588c0cb4161 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 2 Jun 2024 14:48:59 +0300 Subject: [PATCH 8/9] sdfsdf --- tools/patch.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/patch.py b/tools/patch.py index 7bd354ba..6f253b37 100644 --- a/tools/patch.py +++ b/tools/patch.py @@ -287,6 +287,8 @@ def pi_jump(s, a): print(f'{binary} — adding {data_space*0x200 + len(code_block)} bytes for {len(functions)} functions and {added} strings') d[header + segments[-1]*0x10:] = ds + # FIXME patch also extra_alloc + # FIXME переставил это на абзац ниже, проверить, что это ничего не ломает. как будто бы не должно for o, l, t in replaces: # TODO Эта штука нужна до тех пор пока есть несовместимые замены и она скрывает эти ошибки. assert len(t) == l From 3f1a88d3742507881473991f95b5440480c023cb Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sun, 30 Jun 2024 23:01:12 +0300 Subject: [PATCH 9/9] wrong --- Dockerfile | 2 ++ patches/bad-references.json | 7 +++++++ tools/DEBUG.EXE | Bin 0 -> 22928 bytes tools/patch.py | 37 +++++++++++++++++++++++++++++++----- 4 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 tools/DEBUG.EXE diff --git a/Dockerfile b/Dockerfile index 38543404..03eea6c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,4 +19,6 @@ COPY tools/RK211.COM . COPY tools/RUSSIAN.RK . COPY tools/8X16.RK . +COPY tools/DEBUG.EXE . + ENTRYPOINT ["python3", "-m", "unittest", "-v"] diff --git a/patches/bad-references.json b/patches/bad-references.json index c9f14b16..3303d9d0 100644 --- a/patches/bad-references.json +++ b/patches/bad-references.json @@ -14,6 +14,13 @@ 38281 ] }, + { + "source": "GAME.EXE", + "offset": 198944, + "bad-references": [ + 212818 + ] + }, { "source": "U.EXE", "offset": 92153, diff --git a/tools/DEBUG.EXE b/tools/DEBUG.EXE new file mode 100644 index 0000000000000000000000000000000000000000..7065b703aeffce23267dbf0f00d724019710e0b9 GIT binary patch literal 22928 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 rzh@A>dJuk7um6t!t$}}Q;NKefw+8 header + segments[-1]*0x10: + # Data segment. # FIXME reuse old space rr = references.get((binary, t['offset']), []) for r in rr: @@ -273,21 +287,29 @@ def pi_jump(s, a): added += 1 elif all(map(lambda x: isinstance(x, int), references_segments)): + # (Probably) only referenced by far pointers. print(f'String {repr(t["russian"])} can be moved!') - # FIXME why it can? else: missing += 1 ds[system_break_address:system_break_address+2] = len(ds).to_bytes(2, 'little') + print('Old DS size:', hex(ds_size)) ds.extend(b'\x00' * ((len(ds) - ds_size + 0x1ff) // 0x200 * 0x200 - len(ds) + ds_size)) + print('Required space:', hex(len(ds)-ds_full_size)) assert (len(ds) - ds_size) % 0x200 == 0 data_space = (len(ds) - ds_size) // 0x200 + print('DS size:', hex(len(ds))) print(f'{binary} — adding {data_space*0x200 + len(code_block)} bytes for {len(functions)} functions and {added} strings') - d[header + segments[-1]*0x10:] = ds - # FIXME patch also extra_alloc + # TODO FIXME check for remaining memory + + #Reduce stack??? + #assert extra_alloc - data_space*0x20 >= 0x200 # Stack? FIXME find a way to leave stack size as is. + #ds[extra_alloc_address:extra_alloc_address+2] = (extra_alloc-data_space*0x20).to_bytes(2, 'little') + + d[header + segments[-1]*0x10:] = ds # FIXME переставил это на абзац ниже, проверить, что это ничего не ломает. как будто бы не должно for o, l, t in replaces: # TODO Эта штука нужна до тех пор пока есть несовместимые замены и она скрывает эти ошибки. @@ -334,8 +356,13 @@ def pi_jump(s, a): assert ss + 0x10 < 0x10000 d[0x0e:0x10] = ss.to_bytes(2, 'little') d[4:6] = pages.to_bytes(2, 'little') + + assert d[0x0c:0x0e] == b'\xff\xff' # Maximum allocation. + d[0x0a:0x0c] = (max(0, int.from_bytes(d[0x0a:0x0c], 'little') - data_space*0x20)).to_bytes(2, 'little') - d[0x0c:0x0e] = (max(0, int.from_bytes(d[0x0c:0x0e], 'little') - data_space*0x20)).to_bytes(2, 'little') + + if d[0x0c:0x0e] != b'\xff\xff': + d[0x0c:0x0e] = (max(0, int.from_bytes(d[0x0c:0x0e], 'little') - data_space*0x20)).to_bytes(2, 'little') replace_system_breaks = { # TODO more strict. b'\x81\xc7': 1,