А скажи для европейки адрес какой вводить надо для шрифта? Американка шлак - выбора сложности нет, и второго режима игры тоже нет. Кто знает, что они там ещё навырезали...
BE8D9?
Отредактировано Guyver (2012-07-21 10:48:36)
Chief-NET |
Привет, Гость! Войдите или зарегистрируйтесь.
А скажи для европейки адрес какой вводить надо для шрифта? Американка шлак - выбора сложности нет, и второго режима игры тоже нет. Кто знает, что они там ещё навырезали...
BE8D9?
Отредактировано Guyver (2012-07-21 10:48:36)
x0BE8D9 - (без хедера) только с размером уже сам определишься ну и адреса таблиц скорее всего другие
Ага, x14B56 - таблица соответствия для ввода имени.
Эх, вот бы ещё сделать автоматом вставку в ром запакованной части, это же всего пару строк кода дописать ;о) А то приходится юзать каждый раз долбанный хекс редактор. Ужос...
Это сделано для того, чтобы контролировать размер запакованных данных. Вдруг после запаковки он не поместится в исходное место, тогда ром будет запорчен. Поэтому я всегда такие вещи вручную делаю.
А автоматизацию можно вводить только при перестройке рома (как в BL).
Дык сделать проверку, запакованные данные больше - не вставлять ;о)
Алфавит теперь пашет как надо, ура! Прикол в том, что разрабы даже в алфавит вставили 1 символ по словарю, экономия вышла - целый байт! Вот блин там сидели оптимизаторы, блин ;о)))))))))))))))))
Отредактировано Guyver (2012-07-21 16:21:57)
Алекс, ещё не могу найти слова менюшек:
Time Score Player Enemy Angel [ACT] [SIM]
Даже если их рисовать графикой, то слово Score использует букву E от слова Time, т.е. полюбому нужна карта тайлов слов этих...
Отредактировано Guyver (2012-07-22 05:31:23)
А, всё, вроде нашёл всё...
Отредактировано Guyver (2012-07-22 05:30:45)
Хм... Нашёл и перерисовал всё, кроме слова ENEMY, появляется при встрече с боссом.
Но для такой проверки программа должна знать, какой размер был у изначального пакета, а эта информация нигде не содержится, а высчитывается только при распаковке.
Дай сохранение перед появлением надписи - посмотрю.
Вроде подключил все поинтеры, но на 1 блок не могу найти, на самый первый блок. Алекс, вот те сейв перед боссом, просто пройди вправо, и появится слово ENEMY, которое я не нашёл...
После победы над боссом мы появимся над городом и ангел будет нам давать инструктаж. Так вот - его фразы как раз из того блока, поинтеры на который я не нашёл. Его первые фразы про Филлмор и про то, что нужно вернуть в него мир и порядок... Это блок текста с 20077 до 21396. Весь остальной игровой текст я подключил и проверил, вроде. (ещё правда не все менюшки подключил, но там вроде трабл не должно быть...)
П.С.
Отредактировано Guyver (2012-07-22 05:30:04)
Адрес поинтера первой реплики, которую говорит ангел после победы над боссом - x1C219
Адрес поинтера второй реплики (и последующих реплик инструктажа про стрелы и монстров), которую говорит ангел после победы над боссом (после нажатия кнопки в конце первой реплики) - x1C22C
Адрес поинтера заключительной реплики, которую говорит ангел после победы над боссом - x1C233
Да и остальные поинтеры разбросаны по коду подобным образом (грузятся в аккумулятор Y кодом A0), то есть можно ориентировочно искать поинтеры по последовательности "A0XXXX", где XXXX - поинтер.
Офигеть, эти сволочи сделали то, чего я больше всего боялся:
надпись ENEMY пишется программой, в аккумулятор грузится код начала (0F из адреса x207B) и затем циклично он увеличивается на один, пока надпись не достигнет нужной длины.
Тут два варианта, либо в тайлсете рисовать надпись отдельно (в диапазоне 80-FF) и задавать начальный код в соответствии с новым тайлсетом, либо переписывать код программы, чтобы она делала надпись согласно принятому порядку построения надписей.
Отредактировано alex_231 (2012-07-22 15:22:06)
Спс. Тогда я просто "графику" нарисую... Так проще будет...
С ENEMY покончил + вроде сделал окончательную (очень на это надеюсь) версию шрифта... Попробую подключить оставшиеся поинтеры...
Алекс, тут такое дело, касается имени игрока...
Как видишь, после имени (это переменная) идёт пустое место, оно автоматом подставляется после имени и мешает сильно. Так как невозможно становится отделить имя знаками препинания. В игре во всех переменных такая оказия, ставится после них пустое место. Но с именем самая большая трабла. Что тут можно сделать? Или это глобальная настройка, и после этого все переменные будут без пробела потом? Глянь, а?
Отредактировано Guyver (2012-07-29 07:05:38)
Для того, чтобы программа не писала пробел после имени игрока нужно заменить 8 байт, начиная с адреса x8F5E (A9 20 9F 00 B0 7F E8 E8), 8-ю байтами EA. Только как это скажется на остальном тексте - не знаю.
Шпасибки, сейчас гляну... Позже: вроде всё ОК, работает!
П.С. Ещё не могу найти часть поинтеров, сейвы кину позже. Их вроде мало, штук 10 будет... А так всё, перевод закончен и вставлен.
Есть ещё 1 косяк, это когда в режиме карты летаешь гад городами, их названия высвечиваются. Похоже, они написаны отдельным шрифтом, или даже графикой. Надо найти. Тоже скину.
И ещё слово "гейм овер" надо найти и перерисовать...
Отредактировано Guyver (2012-07-30 06:23:58)
Хех, этот текст (названия городов) написан спрайтовыми надписями.
Начинаются они по адресу xECD9:
сначала идет байт-счетчик, определяющий количество спрайтов в надписи, затем данные спрайтов:
1-й байт - размер спрайта (четное - 8х8, нечетное - 16х16)
2-й байт - x - координата спрайта в пикселях
3-й байт - y - координата спрайта в пикселях
4-й байт - код тайла из видеопамяти (для городов используется диапазон x8000-xC000)
5-й байт - определяет страницу видеопамяти и палитру спрайта
Да, а шрифт для названий городов не пожат, лежит по адресу x2CE7F в роме.