Взялся опять за цифровую археологию. Напомню результаты предыдущих раскопок.
Когда я исследовал менюшку 1994 Super HIK 300-in-1
раньше на emu-russia, я замечал достаточно много огрызков непонятных данных. Одним из любопытных оказался набор байт, который следовал сразу же за музыкальными данными, но при этом не являлся музыкой:
98D4AAD4BCD4CED4E0D4F2D404D516D528D53AD54CD55ED570D582D594D5
Оно мне напомнило табличку указателей, но эти адреса в данном роме ничего не значили. Я подумал, что это следы неполного реверс-инжиниринга, и проверил другие ромы — такая же табличка была во всех ромах с Unchained Melody, и только в 300-in-1 1993 года и 1997-in-1 она указывала на валидные адреса — на начало каждой фоновой картинки. В остальных адреса начал фоновых картинок были в другом месте, а эта табличка была дописана в качестве мусора к звуковым данным. То есть все эти 9999-in-1 и т.д. были основаны на результатах кривоватого реверс-инжиниринга, как я тогда предположил, 300-in-1 1993 года. Что интересно, 300-in-1 1994 года скорее всего основан на 1997-in-1, на что указывает наличие тайлов для семёрки в версии 1994 года и их отсутствие в версии 1993 года. Более того, 300-in-1 был уже не банальным хаком, каким являлся 1997-in-1. В нём все адреса были смещены, то есть это был результат реверс-инжиниринга. Исходя из всего этого я решил, что 300-in-1 был прародителем всех менюшек с маленьким морем и Unchained Melody.
Оказалось, я ошибался! Я проверил 300-in-1 1993 года, и заметил там тот же мусор (кроме таблички указателей после музыкальных данных), что я видел и в 300-in-1 1994 года (но по другим адресам, потому что тут был не банальный хак, а пересборка из отревершенных исходников). И тут я обратил внимание на достаточно свежий дамп 200-in-1, и там нашлось отличное объяснение мусору в 300-in-1 1993 года! Последний оказался хаком 200-in-1.
В 300-in-1 1993 года нашёлся хвост падающей картинки 200-in-1 (он выделен):
http://veg.by/z/2017-02-12-19-26-42-2d02c5a7.png. То есть новая картинка 300-in-1 потребовала гораздо меньше байт, и её вставили поверх, а то что осталось от 200-in-1 авторы не удалили и не заменили на нули. А я раньше ломал голову что это за оно. Очень уж оно было похоже на закодированное по тому же принципу, что и другие картинки, но ни во что осмысленное оно не декодировалось. Оказалось, что не хватало первых ≈360 байт, поверх которых была записана картинка 300-in-1.
200-in-1 также примечателен тем, что тут используется ровно 14 сцен. То есть 200-ая игра показывается на 14-ом экране, и потом они идут по кругу. Выходит, что 200-in-1 был первым и оригинальным картриджем с маленьким морем, Unchained Melody и полным набором сцен.
Единственное что меня смущает — так это то, что в 200-in-1 комбинация Select+Start обрабатывается, но код Self Test сломан или отсутствует, поэтому меню начинает глючить. Может быть, существует другой, более полный 200-in-1, а у нас на руках слегка кривоватый хак?
Добавлено позже:Заглянул в свежий дамп 2000-in-1, где всегда показывается лишь одна сцена. Оказалось, что внутри сохранились все сцены. Также там есть картинка 190-in-1, которая красноречиво говорит о том, на чём основан этот 2000-in-1:
Добавлено позже:Так, что касается картриджа 500-in-1 + 190-in-1 (там где оно переключается джампером). Судя по всему, он является кривоватым хаком 300-in-1 1993 года. Дело в том, что там где в 300-in-1 хранится падающая надпись и остатки от надписи 200-in-1, в данном роме хранится надпись 500, и после неё есть остатки как от 300-in-1, так и 200-in-1 (надпись 500 по объёму меньше и той, и другой). Более того, там после данных картинки 500 есть ещё одно наслоение, правда, размером ровно в 1 байт. Он совпадает с 1997-in-1, так что возможно, что он основан на этом картридже.
Добавлено позже:Хм, есть ещё одна любопытный экземпляр. 9999-in-1, который не выводит номер ревизии. В нём есть тот же фрагмент мусора заставки 200-in-1, что осталось в 300-in-1 1993 года. Также у него CHR от 1997-in-1. То есть у него ноги растут оттуда же, откуда они растут у 300-in-1 1994 года. Поскольку 300-in-1 1994 уже выводит номер ревизии, можно сделать вывод, что обсуждаемый 9999-in-1 вышел между 1997-in-1 и 300-in-1 1994.
То есть выходит так:
200-in-1 → 300-in-1 1993 → 1997-in-1 → 500-in-1+190-in-1 → 2000-in-1
→ 500-in-1 со статичной заставкой → 9999999-in-1 без ревизии → 9999999-in-1 с Симбой
→ 9999-in-1 без ревизии → 300-in-1 1994, 9999-in-1, 9999999-in-1 и другие с ревизией по Left+Start+B
И да, выходит что 9999999-in-1 были из двух разных веток. Одна появилась по цепочке через 300-in-1 1994 года (там где выводится номер ревизии), но есть и вариант, который ответвляется от 500-in-1+190-in-1.
Добавлено позже:Ну а сам 200-in-1 появился примерно так:
83-in-1 → 100-in-1 (кривой хак)
→ 150-in-1 / 150-in-1 FIGHT → 200-in-1
Интересно было бы заполучить дамп 150-in-1 (того что без файтинга) и покопаться в нём.
На этот раз хватит
Накопался уже.
Добавлено позже:Ладно, ещё чутка
Если посравнивать тайлсеты 83-in-1, 100-in-1 и 300-in-1, можно сделать вывод, что два последних хака скорее всего делали те же люди. Об этом нам говорит то, что тайлсет для падающих надписей у последних одинаков. Как все 3 тайлсета выглядят можете посмотреть в соответствующих ромах. В будущем может быть оформлю эти все наблюдения более наглядно.