Привет!
p_star, рискую повториться, но пост уже написан.
Как сделать универсльный GG код чтоб на всех эмуляторах работал?
А то сделал (для эксперимента) GG код AX7S-8JAN для Contra - The Hard Corps (J) [!].smd добавляющий четвёртый квадратик энергии(?) первому игроку, а он зараза работает только на Gens'е. В тоже время этот код H9GT-AACG Начать с полным оружием, который есть на сайте работает и в Gens'е и в Fusion'е. Блин аж обидно.:'(
Добавлено через 19 часов 29 минут
Никто не желает помочь? Или я не в ту тему написал?
Если перевести ваш код (AX7S-8JAN) в формат "адрес:данные", получится FFFA0C:0404. Коды, которые после преобразования в этот формат начинаются с FF, не работают на реальном Game Genie. Соответственно, и не все эмуляторы их поддерживают.
Поясню более подробно. Приставка Sega Genesis реализована таким образом, что в адресном пространстве ее главного процессора (M68000) адреса $000000-$3FFFFF (знак "$" означает, что число - шестнадцадцатеричное, такова система обозначений, принятая фирмой Motorola) соответствуют РОМу (содержимому картриджа), а адреса $FF0000-$FFFFFF - оперативной памяти. Таким образом, все коды, начинающиеся с FF, работают с оперативной памятью приставки.
Как-то фирмой Datel Electronics было выпущено устройство "Action Replay". Внешне оно представляло собой картридж с переключателем сбоку и прорезью наверху, в которую мог вставляться другой картридж. Если запустить такую "башню" на приставке, перед запуском самой игры появится окно ввода кодов. Туда можно ввести максимум 4 кода в формате ""адрес:данные"; при этом адрес должен лежать в пределах от $000000 до $3FFFFF. Пример:
0028CC:6006
00290C:4E75
002F76:601E
0059E2:603E
После этого давишь Start на джойстике, и запускается игра. Введенные коды будут действовать до тех пор, пока не вырубишь приставку или сам Action Replay (тем самым переключателем сбоку).
Как же это все действует? Да очень просто: Action Replay как бы заставляет приставку видеть по нужным адресам в РОМе (записанном на картридже) не исходные данные, а модифицированные. И коды работают.
Остался один вопрос: где брать сами коды? Ведь дизассемблировать игры средний геймер просто не мог физически (эмуляция Sega Genesis находилась тогда в зачаточном состоянии, РОМы не валялись просто так по интернету, а дамперы (устройства, считывающие содержимое картриджа в файл) и сейчас есть у немногих). Ну правда, как я пойму, что в игровой программе хранится по тому адресу, а что - по иному? Разглядывая картридж? Я уж не говорю о том, что дизассемблированию тоже надо учиться.
Перед самими парнями из Datel особенно остро стоял второй вопрос. Ведь хакингу в школе не учат. И то, что они разработали отличное устройство, еще не делало их мастерами в дизассемблировании (GManiac, например, уже их обставил
). С грехом пополам они все же выпустили книжки с кодами (впрочем, легко мне, гаду такому, их хаять. Для того времени коды были очень даже ничего). Но, видать, уже стали подумывать, "как бы сделать такое устройство, для которого стряпать коды полегче".
И придумали. И название новое придумали, до того обрадовались. Так увидел свет еще один девайс - Pro Action Replay.
Отличался он от первого тем, что поддерживал еще один режим - Trainer Mode. После запуска "башни" на экран выводилась менюшка, предлагавшая выбрать или классический режим, или Trainer Mode. При выборе второго появлялся экран ввода читов, только список допустимых адресов был иным: от $FF0000 до $FFFFFF. До боли знакомые адреса. Оперативка Сеги!
Делать книжки с кодами стало куда легче. Эх, и почему нас там не было, с рулезной-то программкой отечественного производства - Artmoney, а еще с Gens'ом от Стефа и Никодима, а еще...
Впрочем, отвлекся. Помимо парней из Datel, разработкой чит-девайсов занималась еще одна команда. Они именовали себя Codemasters. Скромные парни.
Так вот, их паяльнику принадлежит еще одно чит-устройство - Game Genie. Известный на всю Америку производитель плюшевых мишек, компания Galoob, до того прониклась творением народных умельцев, что согласилась стать издателем нового устройства. И понеслось... Дети и думать забыли о мягких игрушках. По ночам им снились сны про Game Genie. (Кстати, кое-что об этом написано в одном из номеров журнала "GameBit" (можно скачать на сайте). У меня такое ощущение, будто я повторяю их слова.)
Что же представляет собой этот девайс? В общем-то, по внешнему виду и принципу действия он сильно похож на Action Replay (БЕЗ приставки "Pro"). Только вот кодов можно ввести не 4, а 5. И еще одно отличие, ради которого я и развел весь этот сыр-бор. Коды вводились не в формате "адрес:данные", а в формате "ABCD-EFGH", где "A", "B", "C", "D", "E", "F", "G" и "H" - цифры от 0 до 9 и все буквы английского алфавита, кроме "I" и "O" (чтобы самые одаренные, вводя код, не думали, что же там написано: буква "O" или ноль).
Всего - 32 символа.
Один символ будет содержать (логарифм по основанию 2 от 32) = 5 (битов информации).
В одном в Game Genie-коде - 8 символов, каждый код содержит 8*5 = 40 (битов информации).
В алфавите же устройства (Pro) Action Replay - 16 символов (0-9, A-F), по 4 бита в каждом.
В одном (Pro) Action Replay-коде - 10 символов, каждый код содержит 10*4 = 40 (битов информации).
И там 40, и здесь 40. Разница только во внешнем виде. И кто им (производителям Game Genie) сказал, что "в виде буковок помнится лучше"? Лично мне гораздо приятнее видеть, скажем, "0028CC:6006", чем "A2YA-AA8N". Тем более, здесь ведущие нолики можно и не запоминать ("28CC:6006").
Впрочем, о вкусах не спорят. Нас интересует другое: поддержка этих форматов различными эмуляторами. Про это могу сказать только одно: если взять код, работающий с оперативой, переделать его в буквенный формат, и предложить Gens'у, он возражать не будет. В окошке "Game Genie/Patch" по этому поводу написано: "Syntax for Game Genie code: XXXX-XXXX". Что обратное неверно, там никто не писал. Ясен пень, все сразу решили, что любой код в формате "ABCD-EFGH" - Game Genie-код. Каюсь, сам так решил.
И статью опубликовал, как делать Game Genie-коды, патчащие оперативу
. И еще думал: "Во, какие у меня крутые Game Genie-коды; тот просто останавливает таймер, а мой - приравнивает время к максимальному". Теперь-то я знаю, что "просто останавливающий таймер" код сделать сложнее. Но до сих пор на многих форумах вижу посты, где поиск значений в оперативной памяти зовется "ромхакингом".
P.S. GManiac, респект за проделанную работу. Решил тоже запостить немного кодов (некоторые из них уже выдавал в ирке, возможно, еще на некоторых форумах):
Shining in the DarknessНекоторые коды совпадают с твоими, привожу несовпадающие:
1) ALFT-EA3G = 028B26:6002
Никогда не промахиваться.
2) ACFT-EA3G = 028B26:6000
Всегда промахиваться.
3) ALFT-EA4C = 028B42:6002
Всегда делать "an awesome blow".
4) ACFT-EA4C = 028B42:6000
Никогда не делать "an awesome blow".
5) ACPA-EA66 = 029A9C:6000
Враги всегда промахиваются.
6) AKFT-EA4N = 024B4C:6002
Враги вседа оставляют предметы.
7) AK0T-EA7E = 026DA4:6002
Звездочки над врагами.
8) ALNA-EA4G = 029846:6002
Врагам срывает башню (ведут себя, как Muddled).
9) BBBT-FA8G = 0243C6:7008
Враги всегда "выпускают из рук свое сокровище", если у них сорвана башня или этот эффект сымитирован кодом №8. Они так заполнят рюкзаки сокровищами, что, не замочи их вовремя, не останется ни одной свободной ячейки. Если так и будет, они (видимо, удовлетворившись результатом) начнут бить себя.
10) S43A-FE7C = 02B2A2:727E
Враги убегают со всех ног (даже Dark Sol сматывается).
11) AC3A-EA7E + 0C3A-F2ZG = 02B2A4:6000 + 02B2A6:5CB0
Когда хоть один враг пытается атаковать, раздается взрыв, появляется надпись "Lightning flashes from the box", и враги отправляются бороздить просторы Вселенной. Все-все, во главе с Dark Sol'ом.
12) C5PT-EA8W = 02DBD2:6016
Предметы не могут быть повреждены.
13) REZA-A6WW = 002A52:4E71
После одной битвы все персонажи достигают 99 уровня. (Вовремя отрубив этот код, можно "прокачаться" поменьше).
14) AJVT-AA2J = 002308:6002
Не получать опыт за битвы.
15) RFKA-E6WL + NPKA-FA4N = 02524A:4E71 + 02524C:7063
Всегда нарываться на Crystal Ooze.
Удачи!
Chemist.