russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Срочно нужна помощь! - поинтеры NES
greengh0stДата: Пятница, 05.11.2010, 19:56 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
Ребята подскажите, кто знает,как выкрутиться из ситуации. Есть игра у нее надо перевести три фразы,дело в том,что места свободного рядом нет,даже для одной буковки. Знаю что можно написать эти фразы в пустом месте рома, и поправить поинтер чтоб он указывал на эти фразы. Глупый вопрос,что является пустым местом в роме 00 или FF. Просто пока этого не понимаю. И опишите сам процесс или ссылочку киньте с факом, желательно чтоб фак на русском. Все остальные фразы перевел и поправил поинтеры, где было место. Но дальше я в тупике.

Сообщение отредактировал greengh0st - Пятница, 05.11.2010, 19:58
 
SmokeДата: Пятница, 05.11.2010, 20:48 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 139
Статус: Оффлайн
Пустое место -- это все что идет после последнего символа в роме. Ну еще бывают куски с одними $FF это место скорее всего тоже не используется.
 
greengh0stДата: Пятница, 05.11.2010, 21:44 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
что является последним символом в роме???
 
SmokeДата: Пятница, 05.11.2010, 22:12 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 139
Статус: Оффлайн
Если размер рома $2FFFFF байт, то после смещения $2FFFFF идет пустое место, которое можно использовать (правда до определенного предела). В конец короче все пиши и переписывай указатели
 
Ti_Дата: Пятница, 05.11.2010, 23:27 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 58
Статус: Оффлайн
Пустое место - это большие области заполненные либо $00 либо $FF. Как правило в конце РОМ-файла.

Просто н-кые разрабы заливали $FF-ками пустое место. Почему так делали читайте в доке сеги.

Если места всё же нет (но место всегда есть!), ну если не нашли.. то просто пишем в конец файла, расширяя его. то есть после последнего байта. (может потребовать фикс чесуммы и размера в заголовке)

 
greengh0stДата: Суббота, 06.11.2010, 00:49 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
Значит любое место в котором есть массив данных со значением FF или 00 можно использовать? такое место точно есть,но поинтер должен оставаться на своем месте,надо только изменить его значение правильно?? Это понять не сложно, главное как понять какое значение должно быть у поинтера??? Так как все игрушки в которых удалось поковыряться до этого,поинтеры находись блоками, то есть легко определялись визуально, потому их перерасчетами никогда не занимался.По поводу поинтеров перечитал кучу инфы , но так ни в одной игре эти доки не помогли(((

Добавлено (06.11.2010, 00:49)
---------------------------------------------
есть свободное место по адресу 132f3 запихиваю свою фразу туда, старое место этого фразы 1d395 поинтер 9dd3, по какой системе высчитываются поинтеры.

 
TLTДата: Суббота, 06.11.2010, 01:02 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Игру с какой платформы ты мучаешь?

Вот, смотри картинку:

В конце пустое место - почти 100%, что это заполнение до нужного размера. На NES довольно-таки часто встречаются заглушки до конца PRG банка. Также в ROM-файлах часто встречается мусор, либо не использующиеся ресурсы, различные послания от разрабов, не использующиеся в игре. В середине ROM'а, как правило, различные данные выравниваются по строке, поэтому ты можешь наблюдать идущие подряд байты - $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF - свои данные можно вставить сюда. Но большие пустые места могут также использоваться в игре, например в сетке заставки, где разработчики предусмотрели использование данного экрана, например, для локализаций, для перевода титульника с японского на английский и наоборот, где понадобится увеличить графическую надпись.

Прикрепления: 6406260.png (35.2 Kb)



Вот так.
 
greengh0stДата: Суббота, 06.11.2010, 01:28 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
Игра на NES, пока разбираюсь только с этой платформой, когда пойму, что более или менее смогу спокойно делать с ромомами, попробую перейти на другую платформу. Игра попалась мне на глаза с кривым переводом и с грамматической ошибкой в титульнике, вот я и решил её перевести, текста почти нет, но это не главное,главное мне разобраться во всех тонкостях,которые пока мне попадаются практически в каждом роме.

Добавлено (06.11.2010, 01:25)
---------------------------------------------
TLT я это уже понял спасибо, теперь понять какое значение поинтеру задать, чтоб он брал фразу с нового адреса.

Добавлено (06.11.2010, 01:28)
---------------------------------------------
и еще вопрос как в титрах переводить слово SPECIAL после него идут обычно имена кренделей???

 
Ti_Дата: Суббота, 06.11.2010, 01:30 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 58
Статус: Оффлайн
Quote (greengh0st)
по какой системе высчитываются поинтеры.

абсолютные или pc(от текущего места +-xxxxm). хотя может и что-другое быть.

какая платформа хоть?
на сеге:
абсолютные - это просто полный 32битный адрес (оффсет). пример: (00 00 45 40)

от-ные считай расстояние адрес текста минус адрес команды. +они могут быть частью команды (кода). пример lea.
00002000: 41FA 0068

0000206A: 'text'

(2002+68=206A), тут посложнее так как есть еще ограничения. (по pc адресация на -+$8000)

 
greengh0stДата: Суббота, 06.11.2010, 01:48 | Сообщение # 10
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
я написал что на NES.
 
Ti_Дата: Суббота, 06.11.2010, 12:43 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 58
Статус: Оффлайн
Ну по нес тебе ответили:
Quote (TLT)
На NES довольно-таки часто встречаются заглушки до конца PRG банка.

Разница в том, что тут надо искать не конец рома, а конец банка, которых несколько. IDA+лоадер Санчеза вот разбивает на банки, но не все ромы. Да думаю проще просто вбить в хексе в поиск $FFFFFFFFFFFFFFFFF (начиная от того места где поинтер).
А принцип подсчета может совпадать, смысл в том что насколько сдвигаешь текст, столько надо и добавить к значению поинтера., в случае от-ной адресации.
 
greengh0stДата: Понедельник, 08.11.2010, 18:27 | Сообщение # 12
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
в конце рома места нет пустого, пробовал создать проект в круптаре 7, но при пересчете поинтеров почему то, фразу на старом месте переделывает в 00 а в новом месте все нормально, но при этом продолжает считывать фразу оттуда где она и находилась. Т.е поинтер не изменился.
 
Ti_Дата: Понедельник, 08.11.2010, 18:55 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 58
Статус: Оффлайн
Quote (greengh0st)
в конце рома места нет пустого, пробовал создать проект в круптаре 7, но при пересчете поинтеров почему то, фразу на старом месте переделывает в 00 а в новом месте все нормально, но при этом продолжает считывать фразу оттуда где она и находилась. Т.е поинтер не изменился.

Вообщем называй игру (ром-файл), фразу и поинтер.
 
greengh0stДата: Пятница, 12.11.2010, 04:01 | Сообщение # 14
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
Ti спасибо за помощь, завтра ром посмотрю, я тебе еще в личке по этому поводу кое что напишу.
 
greengh0stДата: Среда, 17.11.2010, 14:40 | Сообщение # 15
Лейтенант
Группа: Проверенные
Сообщений: 57
Статус: Оффлайн
Всем спасибо за помощь тему можно закрыть))
 
  • Страница 1 из 1
  • 1
Поиск: