Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Вс Окт 28, 2007 11:41 am Заголовок сообщения: Как делать трейнеры для приставочных игр |
|
|
Как делают трейнеры в ромах? Что для этого нужно? напишите по шагам. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вс Окт 28, 2007 1:38 pm Заголовок сообщения: Re: Как делать трейнеры для приставочных игр |
|
|
iddqd писал(а): | Как делают трейнеры в ромах? Что для этого нужно? напишите по шагам. |
Найти, где хранятся значения, добавить в процедуру проверки на нажатие клавиш твой код, а в нём уже отсканивать нажатия нужных тебе клавиш и при необходимости изменять значения в памяти. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вс Окт 28, 2007 9:03 pm Заголовок сообщения: |
|
|
Что-то не видел я настоящих трейнеров для игрушек НЕС/Сеги. О чём именно речь?
Мне встречались встроенные трейнеры в качестве интро для GBA-ромов, но там и методика та же, что использовалась в 90-х годах для DOS-игр - берут компилятор и нормально пишут интро/трейнер без всякого ромхакинга (разве что хакинг может потребоваться для вставки интро в игру, защищённую от подобных модификаций). |
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Пн Окт 29, 2007 1:16 am Заголовок сообщения: |
|
|
Любой ром с [t...] должен по идее содержать трейнер. _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Вт Окт 30, 2007 1:32 pm Заголовок сообщения: |
|
|
Вот мне и нужно узнать, как делать ромы [t] и патчи для игр на CD-консолей. Какие программы для этого нужны? |
|
Вернуться к началу |
|
|
TiberiyLTim RRC2008
Зарегистрирован: 14.07.2006 Сообщения: 446 Откуда: 39
|
Добавлено: Вт Окт 30, 2007 7:33 pm Заголовок сообщения: |
|
|
iddqd писал(а): | Вот мне и нужно узнать, как делать ромы [t] и патчи для игр на CD-консолей. Какие программы для этого нужны? |
патчи делать Ipsexe
___
Объясни что из себя представляет этот трейнер, как ты задумал. А, кажись, ты не туда движешься... _________________ http://RomHacking.RU |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вт Окт 30, 2007 8:07 pm Заголовок сообщения: |
|
|
TiberiyLTim писал(а): | патчи делать Ipsexe |
PPF, либо X-Delta. Другие мне пока не известны. Ипс тут не катит. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
BoreS
Зарегистрирован: 03.04.2004 Сообщения: 347 Откуда: KarmaSociety
|
Добавлено: Вт Окт 30, 2007 11:16 pm Заголовок сообщения: |
|
|
ещё отличные программы для создания патчей psxt001z и ImageDiff. Взять их можно на их официальном сайте, точнее форуме
http://redump.org/ |
|
Вернуться к началу |
|
|
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Ср Окт 31, 2007 12:06 pm Заголовок сообщения: |
|
|
Я пока никуда не движусь, просто хочу узнать как это делается - чем находить адреса и т.д. |
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Ср Окт 31, 2007 1:30 pm Заголовок сообщения: |
|
|
Предположим, адреса ты найдёшь, причём это должны быть адреса в роме, а не оперативке. Но чтобы сделать сам трейнер, надо хотя бы немного кодить. Отсюда и надо начинать. А тот, кто умеет кодить, без особого труда найдёт адреса. _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Ср Окт 31, 2007 2:35 pm Заголовок сообщения: |
|
|
Ghost писал(а): | Предположим, адреса ты найдёшь, причём это должны быть адреса в роме, а не оперативке. |
Вообще-то нужно узнать, где хранятся значения именно в оперативие, чтобы написать тренер. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Ср Окт 31, 2007 6:10 pm Заголовок сообщения: |
|
|
А я не уточнил, адреса чего надо знать _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Чт Ноя 01, 2007 10:03 pm Заголовок сообщения: |
|
|
Вот кодить-то я и не могу:(Ассемблер? |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
|
Вернуться к началу |
|
|
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Пт Ноя 02, 2007 3:47 pm Заголовок сообщения: |
|
|
Трейнер - это не только и не столько оболочка, сколько хак кода игры. В отличии от игр для компьютеров с приставками всё не так просто.
Код игр для компьютеров грузится в ОЗУ, поэтому трейнер может спокойно заменить код некоторых операций (условно: заменяем декремент NOP'ом, убираем убавление энергии). В этом случае трейнер является автономной программой, он может быть вообще в виде отдельного исполняемого файла, модифицирующего исполняемый файл игры.
На картриджных приставках код находится в ПЗУ. Изменить его трейнер не может. Значения в ОЗУ (условно: непосредственно кол-во энергии) он изменить может, но толку от этого не будет, т.к. код игры инициализирует эти значения при старте игры. Поэтому нужно модифицировать код игры так, чтобы определённые действия выполнялись или не выполнялись в зависимости от флажков в ОЗУ, выставленных трейнером. Для них надо ещё освободить место, чтобы оно не инициализировалось кодом игры.
Сам трейнер (оболочку с выбором опций) лучше писать на ассемблере, т.к. код относительно несложный в написании, и, что важно, он займёт немного места (т.к. надо найти или освободить место в картридже, где его можно разместить). Если написать на C, будет легче написать оболочку, но существенно сложнее вставить её в игру (больше места, расположение по определённым адресам, и т.д).
Имхо, весь этот гемморой не стоит свеч. Встроенного GG в эмуляторах более чем достаточно. |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Вс Ноя 18, 2007 2:03 pm Заголовок сообщения: |
|
|
Цитата: | Значения в ОЗУ (условно: непосредственно кол-во энергии) он изменить может, но толку от этого не будет, т.к. код игры инициализирует эти значения при старте игры. Поэтому нужно модифицировать код игры так, чтобы определённые действия выполнялись или не выполнялись в зависимости от флажков в ОЗУ, выставленных трейнером. Для них надо ещё освободить место, чтобы оно не инициализировалось кодом игры. |
Не согласен - легче изменять значения ОЗУ каждый VBLANK.
Цитата: | он займёт немного места (т.к. надо найти или освободить место в картридже, где его можно разместить) |
Для примера, формат заголовка .nes файла (конкретно - 7-й байт):
Код: | bit 0 1 for vertical mirroring, 0 for horizontal mirroring.
bit 1 1 for battery-backed RAM at $6000-$7FFF.
:!: bit 2 1 for a 512-byte trainer at $7000-$71FF. :!:
16-... ROM banks, in ascending order. If a trainer is present, its
512 bytes precede the ROM bank contents.
|
Конкретно для трейнера адреса уже определены (если располагать в свободном месте ПЗУ, то это уже будет хак =)).
Цитата: | Что-то не видел я настоящих трейнеров для игрушек НЕС/Сеги. |
Узри. _________________
|
|
Вернуться к началу |
|
|
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Вс Ноя 18, 2007 2:31 pm Заголовок сообщения: |
|
|
Griever писал(а): | Не согласен - легче изменять значения ОЗУ каждый VBLANK. |
Неуниверсально. Например, не поможет в R-Type (убивают с одного попадания и перемещают на чекпоинт). Хотя и применимо в некоторых случаях, но опять-же - добавление нового кода непосредственно в игру.
Griever писал(а): | Для примера, формат заголовка .nes файла (конкретно - 7-й байт): |
Я так понимаю, что это будет работать только на эмуляторе. Такой подход я не рассматриваю, в эмуляторах и так есть GG, сейвы, и.т.п. |
|
Вернуться к началу |
|
|
TiberiyLTim RRC2008
Зарегистрирован: 14.07.2006 Сообщения: 446 Откуда: 39
|
|
Вернуться к началу |
|
|
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Пт Дек 21, 2007 2:59 am Заголовок сообщения: |
|
|
Внутри лежат ips-патчи. |
|
Вернуться к началу |
|
|
mesutso
Зарегистрирован: 25.12.2007 Сообщения: 14 Откуда: Moscow
|
Добавлено: Чт Дек 27, 2007 7:04 pm Заголовок сообщения: |
|
|
Ну чё вы так мучаетесь. Зачем так париться. Париться надо где? На парах. А узнавать адреса и значения в ромах можно с помощью ArtMoney SE v7.13 (2). Создаёшь там таблицу потом сохраняешь. Получаются файлики. Так прошёл многие игры на денди. |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Чт Дек 27, 2007 7:23 pm Заголовок сообщения: |
|
|
Ну не все же знают, что существует такая программа - ArtMoney. Вот iddqd теперь будет знать. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Чт Дек 27, 2007 7:30 pm Заголовок сообщения: |
|
|
mesutso писал(а): | Ну чё вы так мучаетесь. Зачем так париться. Париться надо где? На парах. А узнавать адреса и значения в ромах можно с помощью ArtMoney SE v7.13 (2). Создаёшь там таблицу потом сохраняешь. Получаются файлики. Так прошёл многие игры на денди. |
Это адреса в памяти эмулятора (то бишь в виртуальной памяти приставки), но никак не в роме. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
iddqd
Зарегистрирован: 25.04.2006 Сообщения: 78
|
Добавлено: Пт Дек 28, 2007 1:28 am Заголовок сообщения: |
|
|
>Ну не все же знают, что существует такая программа - ArtMoney. вот в наше время... Вот iddqd теперь будет знать.
Юморист. |
|
Вернуться к началу |
|
|
|