| Разработка и ромхакинг > Ромхакинг и программирование |
| [NES/GB] Konami Wai Wai World и все-все-все... - генерирование паролей |
| (1/1) |
| Awl:
Дело было вечером, делать было нечего. Здравствуйте, сегодня я хотел бы рассказать про генерацию паролей в играх: Konami Wai Wai World, Wai Wai World 2: SOS!! Paseri Jou, Moai-Kun и Mystical ninja starring Goemon. Konami Wai Wai World Теория Пароль состоит из 14 позиций, каждая позиция состоит из 5 битов, итого 14*5= 70 битов. Эти биты сохраняют большое количество игровой информации, которую я опишу в битовой структуре. Сырой пароль 1 позиция: C0, Vg0, Vr0, Tg0, Tr0 2 позиция: C1, P0, Ar0, Cl0, H0 3 позиция: C2, Sw0, Gw0, Lw0, Kmw0 4 позиция: C3, S0, G0, L0, Km0 5 позиция: C4, K3, K2, K1, K0 6 позиция: C5, SB0, FB0, GK0, MkK0 7 позиция: C6, A3, A2, A1, A0 8 позиция: C7, R1, R0, C7, C6 9 позиция: C0, U40, U30, U20, U10 10 позиция: C1, KKw0, Mw0, Mkw0, Fw0 11 позиция: C2, KK0, M0, Mk0, F0 12 позиция: C3, A9, A8, ?0, ?0 13 позиция: C4, U50, X0, MB0, KKB0 14 позиция: C5, A7, A6, A5, A4 Обозначения Vg - № патронов (0-1) в двоичной СС у Vic Viper. №Патроны Vic Viper0Начальные1Лазер Vr - ракеты у Vic Viper. Tg - № патронов (0-1) в двоичной СС у Twin Bee. №Патроны Twin Bee0Начальные1Овальные Tr - кулаки у Twin Bee. P - увеличение силы всех персонажей (бонус из Gradius). Ar - увеличение стойкости всех персонажей (броня). Cl - плащ. H - дополнительная жизнь (онигири). Km - Конамимен. L - Конами леди. G - Гоемон. S - Саймон. F - Фума. Mk - Майки. M - Моаи. KK - Кинг Конг. w - дополнительное оружие. K - количество ключей (0-10) в двоичной СС. A - количество боеприпасов (0-1000) в двоичной СС. GK - собран ключ на локации Гоемона. SB - убит босс и собран ключ на локации Саймона. MkK - собран ключ на локации Майки. FB - убит босс на локации Фумы. MB - убит босс и собран ключ на локации Моаи. KKB - убит босс и собран ключ на локации Кинг Конга. X - убит финальный босс и на локациях нет: бонусов (сердечки, ракеты, зелье), дополнительного оружия, ключей, двигающихся и проваливающихся платформ. R - random (0-3) в двоичной СС. U - неиспользуемые биты (хотя, я точно не уверен). ? = 0. C - контрольная сумма. Контрольная сумма C = (сумма позиций с 1 по 7) + (сумма позиций с 9 по 14) Условия работоспособности пароля * Дополнительное оружие можно активировать, если есть соответствующий персонаж * Улучшения для Twin Bee и Vic Viper можно активировать, если есть все персонажи * Количество ключей = 2 + SB0 + FB0 + GK0 + MkK0 + KKB0 + MB0 + X0 + U50 - Km0 - L0 - F0 - S0 - G0 - Mk0 - M0 - KK0 Шифрование Шифрование происходит по этой формуле: x позиция XOR Ch[(x-1) + ((Random XOR 3) *4)], где x = 1-14. (Ch[(x-1) + ((Random XOR 3) *4)]) - данной операцией мы получаем индекс Ch. На основе индекса, нужно получить значение и подставить его в формулу. Ch = [0,0,18,17,3,1,0,0,17,0,0,1,1,3,0,17,0,1,3,3,17,0,2,2,1,2] Потом происходит второй этап шифрования: Нечётные позицииЧётные позиции+0+14 Кодирование アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン Wai Wai World 2: SOS!! Paseri Jou Теория Пароль представляет собой таблицу, состоящую из 6 столбцов и 4 строк. Столбец условно обозначим как одну позицию, и в итоге, пароль состоит из 6 позиций. Каждая позиция может принимать значения от 0 до 4. Сырой пароль 1 позиция: 4 - S2 - S0 - 1P1 - 2P1 2 позиция: 1P1, S3 3 позиция: 1P0, S2 4 позиция: 2P1, S1 5 позиция: 2P0, S0 6 позиция: 4 - S3 - S1 - 1P0 - 2P0 Обозначения S - № уровня (1-14) в двоичной СС. №Уровень112233-143-2546576-186-297108-1118-2128-3139-1149-2 1P и 2P - № дополнительных персонажей (0-3) в двоичной СС для первого и второго игроков соответственно. №Дополнительные персонажи0Гоемон, Упа, Саймон1Гоемон, Билл, Фума2Упа, Фума, Саймон3Упа, Саймон, Билл Кодирование Числовые значения позиций переводятся в соответствующее количество кубов. Moai-Kun Теория Пароль состоит из 6 позиций, каждая позиция состоит из 4 битов, итого 6*4= 24 бита. Пароль сохраняет определённые уровни и random. Сырой пароль 1 позиция: C5, R11, R10, L3 2 позиция: C4, R21, R20, L2 3 позиция: C3, R31, R30, L1 4 позиция: C2, R41, R40, L0 5 позиция: C1, R51, R50, C6 6 позиция: C0, R61, R60, C7 Обозначения L - № уровня (0-15) в двоичной СС. Уровень = № уровня * 4 + 1; № уровня>13 даёт глючные уровни. R(1-6) - random(1-6) (0-3) в двоичной СС. C - контрольная сумма. Контрольная сумма C = № уровня * 17 Условие работоспособности пароля Сумма всех шести рандомов mod 4 = 0. Кодирование 0123456789ABCDEF Mystical ninja starring Goemon Теория Пароль состоит из 14 позиций, каждая позиция состоит из 4 битов, итого 14*4= 56 битов. Эти биты сохраняют большое количество игровой информации, которую я опишу в битовой структуре. Сырой пароль 1 позиция: S3, S2, S1, S0 2 позиция: L7, L6, L5, L4 3 позиция: U10, Sk0, E0, G0 4 позиция: L3, L2, L1, L0 5 позиция: Cs0, P0, Bm0, B0 6 позиция: Sh23, Sh22, Sh21, Sh20 7 позиция: U20, Skw0, Ew0, Gw0 8 позиция: M23, M22, M21, M20 9 позиция: M13, M12, M11, M10 10 позиция: M43, M42, M41, M40 11 позиция: M33, M32, M31, M30 12 позиция: Sh13, Sh12, Sh11, Sh10 13 позиция: C23, C22, C21, C20 14 позиция: C13, C12, C11, C10 Обозначения S - № уровня (0-4) в двоичной СС. №Уровень0Karakuri castle1The Demon cave2The Black Ship Skull3The Skull, once again4Skeleton island L - жизни (1-255) в двоичной СС. Если жизней>127, то игра приравняет их количество к 0. U - неиспользуемые биты. G - Гоемон. E - Эбисумару. Sk - Саскэ. Примечание: 0 - персонаж есть. 1 - персонажа нет. w - улучшено оружие персонажа. B - бамбуковая трубка. Bm - бомба. P - пропуск на Black Ship Skull. Cs - ракушка. Sh1 - количество единиц сюрикенов (0-15) в двоичной СС. Sh2 - количество десятков сюрикенов (0-15) в двоичной СС. M1 - количество десятков денег (0-15) в двоичной СС. M2 - количество сотен денег (0-15) в двоичной СС. M3 - количество тысяч денег (0-15) в двоичной СС. M4 - количество десятков тысяч денег (0-15) в двоичной СС. C(1-2) - контрольная сумма (1-2). Контрольная сумма C1 = ((S3 + S2+ S1+ S0 + L7 + L6 + L5 + L4) * 6) mod 16 C2 = ((сумма позиций с 1 по 12) + ((сумма чётных позиций) div 16)) mod 16 Условие работоспособности пароля C1 OR C2 ≠ 0 Кодирование Удачи, спасибо за прочтение! |
| Yoti:
Как и всегда, приятно почитать! |
| Awl:
--- Цитата: Yoti от 18 Июнь 2017, 13:46:59 ---Как и всегда, приятно почитать! --- Конец цитаты --- Благодарю. |
| Навигация |
| Главная страница сообщений |