Без описания |
Поиск в теме | Версия для печати |
Shurrick |
Отправлено: 28 Февраля, 2016 - 15:23:46
|
Призрак
Покинул форум
Сообщений всего: 436
Дата рег-ции: Окт. 2014
|
Shurrick
Потянуло меня опять в HEXPOSE и TLP... tbs
Перерисовал шрифт, надпись "GAME OVER", и прочие мелочи да вот наткнулся на такую штуковину. Кажись, надписи "continue ?", "yes!", "no." имеют фиксированый размер, поскольку пойнтеры, найденные мною на адресах h65E0, h660B и h6636 меняют лишь место считывания, в то время как размер надписи остаётся неизменным. В данном случае мне надо увеличить на тайл длину слова "продолжить" для вопросительного знака, а длину слова "да!" на тайл уменьшить. Можно ли это как-нибудь изменить и насколько это сложно? Надписи расположены в роме по адресу h6684. Судя по всему, такая же байда и с текстом "Tiny toon adentures, characters..." в самом начале игры. Прикреплено изображение
|
|
|
Guyver |
Отправлено: 28 Февраля, 2016 - 15:27:03
|
Chief-Net
Покинул форум
Сообщений всего: 10117
Дата рег-ции: Окт. 2014
Откуда: Магадан
|
Guyver
Решение элегантное и простое. Для работы нам понадобится моя программа "Пакостник".
Скачать программу!
Открываем ей ром. Выбираем эмулятор, которым будем его запускать. Можно сразу же запустить ром, не изменяя его, и пройти до того места, где появляется слово КОНТИН, и сохраниться ПРЯМО ПЕРЕД этим экраном, чтобы потом проверять проще было. Идеальный эмулятор для этого - VirtuaNES, так как в других эмулях сохранение может записаться так, что при его загрузке не будет видно никаких изменений, которые мы произведём... А с квиксейвом VirtuaNES таких проблем не будет...
Начать я решил со слова "NO." В нём 5 букв. Адрес, по которому расположено слово - как ты мне говорил, h6684. Я не знаю, где расположены байты, которые меняют длину слова, но я предполагаю, что они идут перед ним.
Поэтому в своей проге я выбираю 16ричную систему и в диапазон значений файла пишу
a
От 6600 до 6684 (ну решил я сразу проверить такой диапазон, с запасом)
В значениях для поиска ставлю 05 - длина слова "NO."
И решаю увеличить длину на 2, например - Увеличенные на 2 в "Заменить найденные байты на"
Нажимаю напакостить - нашлись и увеличились на 2 сразу два значения. - Запускаю ром - вижу, что всё получилось. (в роме, как оказалось, нужно заменить именно 2 значения, если заменить одно - ром виснет...)
теперь слово "YES." - его длина 06. Просто меняю в значениях для поиска 05 на 06 - и тоже нахожу 2 значения.
Со словом контин сложнее. Его длина 0A, но при поиске она не находится, тогда я увеличиваю диапазон поиска, от 6550 до 6684. Всё, найдено опять 2 символа, и их можно изменить как хочешь...
----- Я не волшебник - я только учусь... |
|
|
Shurrick |
Отправлено: 29 Февраля, 2016 - 08:13:39
|
Призрак
Покинул форум
Сообщений всего: 436
Дата рег-ции: Окт. 2014
|
Shurrick
Мда, поспешил я с выводами <_< . Загвоздочка.
В игре почти во всех случаях скроллингом текста в интросценах управляет нажатием кнопки пользователь. Есть такая строка (см. скрин). Следом за ней идёт другая, после которой происходит, так сказать, разветвление: либо событие А, либо событие Б. Адрес нужной мне строки в роме h571a, адрес пойнтера - h5429. Так вот: можно ли сделать так, чтобы эта самая строка выводилась в другом месте, а именно после строки с адресом h5698 и пойнтером h5407, либо вообще её вырубить? Перебивал пойнтер h5429 на стопбайт FF, не получилось: текста нет, а кнопку для скроллинга нажимать надо.
Прикреплено изображение
|
|
|
Mefistotel |
Отправлено: 29 Февраля, 2016 - 08:14:25
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
Mefistotel
Цитата:можно ли сделать так, чтобы эта самая строка выводилась в другом месте, а именно после строки с адресом h5698 и пойнтером h5407, либо вообще её вырубить?
Тебе надо просто строку перенести в другое место? Так смени указатель по адресу 0x5429 (0A 97) на нужный тебе, например, A4 96 и пропиши строку с этого адреса.
Я думаю, тебе нужен проект к Круптару, иначе трудновато будет. Занимайся всей графикой, шрифтом и пр., а я посмотрю проект для Круптара.
Или что все-таки нужно сделать?
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
Shurrick |
Отправлено: 29 Февраля, 2016 - 08:14:52
|
Призрак
Покинул форум
Сообщений всего: 436
Дата рег-ции: Окт. 2014
|
Shurrick
Цитата:Или что все-таки нужно сделать?
ссылка на ром:slil. в роме 2 таблицы.
Постараюсь описать проблему схематично.
Строка 1: Welcome to....
Строка 2: You need 4 golden tickets...
Если у тебя есть 4 билета, - ты допущен к этапу, если нет -
Строка 3: Сорри, бла-бла-бла.
Строка 4: You can enter to... with 50 normal tickets,
Cтрока 5: instead of 4 gold tickets.
Строка 6: Do you have...
И опять: если есть - то проходишь, если нет - строка 3.
Если б текст шпарил сплошняком, вне зависимости от кол-ва билетов, я бы не задавал этого вопроса.
Так вот: Можно ли сделать так, чтобы строка 5 выводилась между строками 1 и 2 и не выводилась между 4 и 6 строками?
P.S. Если невнятно излагаю мысли - пардон, я не подкован в терминологии.
P. P. S.Саня, ссылки на недаработанные ромы лучше давать в личку во избежании утечки. Ок. Посмотрю. Но лучше все-таки проект. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (4): [1] 2 3 4 » |
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0) |
« Переводы » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|