Без описания |
Поиск в теме | Версия для печати |
Mefistotel |
Отправлено: 24 Марта, 2016 - 14:32:03
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
В качестве вступления.
lancuster заметил, что в нашем переводе не работает анимация персонажей в заставках между уровнями.
Хотел по-быстрому посмотреть, что да как, но не тут то было. Проект от 2009 года, и я вставлял текст Круптаром без пойнтеров, а потом уже их правил вручную. Это было обусловлено тем, что младшие и старшие части указателей хранились довольно далеко друг от друга.
В своём блокноте заметил запись по этой игре:
Цитата:Пойнтеры в этой игре могут быть следующими:
1) старший + младший байт - В126
2) младший + старший байт - 26В1
3) младший[5 байтов]старший
После этого стало понятно, что я где-то закосячил код игры, приняв его за указатели)
Сижу, разбираюсь теперь.
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
Mefistotel |
Отправлено: 24 Марта, 2016 - 15:30:10
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
Интересно, что:
Цитата:HoRRoR
Первые четыре поинтера:
1224f
1204b
19cc6
1fc27
Интервал три байта внутри одного поинтера. Дальше идёт по-другому. Буду по мере прохождения игры искать остальные поинтеры.
4 пойнтер найден неверно)
Ещё Саня здесь тоже неверно подсказал (видимо, ром европейский смотрел, а не американский), но я случайно удалил древнее сообщение в этой теме.
Цитата:alex_231
хакер-раздолбай
Странно, а у меня получилось по-другому:
адрес - 12384 - там начинается текст THE HUNT FOR RED OCTOBER
поинтер на этот адрес - 12251 - младший и 12255 - старший
адрес - 1241E - текст On November 12, 1984...
поинтер - 1204B - младший и - 1204F - старший
P.S.: Шеф, теряешь навык, я их за 10 минут нашел (еще до того как увидел содержимое этой темы, только название и комментарий).
А вот Шеф как раз-таки всё верно нашёл(для американки)
Цитата:странная система, Gorez попросил меня найти поинтеры в это игре. Но они в ней заданы очень неявно, нашел один поинтер после часа дебага нашел, ссылка задается в ассемблерной коммандос адреса.
1224f Младший байт
12253 Старший байт
Ссылается на 12379
Но это пустяковые указатели (LDA>STA). На текст между миссий они другие.
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
Mefistotel |
Отправлено: 24 Марта, 2016 - 15:56:53
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
Мда. Анимация как-то хитро завязана с регистром выводимых символов. Пока не вкурил полностью.
Upd. Допёр, почему анимация не работает и отчего так странно выглядит текст в хексредакторе (разные регистры букв).
Шрифт для диалогов послов нарисован только в верхнем регистре, но наборов кодов для него два. Когда идут коды c h41 по h5A, то персонажи шевелят губами. Когда коды в диапазоне с h61 по h7A, то этого не происходит.
Для анимации вытирания пота со лба и ударов кулаком по столу используются служебные коды.
Чтобы анимация губ работала в строке должны присутствовать и те, и другие коды, а в нашем переводе в строках задействован только диапазон h41-h5A. Завтра буду править.
Прикреплено изображение
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
Mefistotel |
Отправлено: 03 Апреля, 2016 - 16:08:41
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
Перевод обновлён до версии 1.2:
- исправлен баг, из-за которого не работала анимация говорящих персонажей между игровыми уровнями;
- исправлено несколько орфографических ошибок, добавлены кавычки.
В качестве бонуса приведу инфо по местонахождению основных указателей, а также адреса игровых параметров. Инфа актуальна для рома Hunt for Red October, The (U) (REV0) [!].
Адреса указателей на диалоги (Отобразить)Адрес Адрес
строки указателя
1) 0x12379 -> low 0x1224F, high 0x12253
2) 0x1242A -> low 0x1204B, high 0x1204f
3) 0x125FE -> 0x1566B, 0x1567A
4) 0x1267F -> 0x15683, 0x15692
5) 0x126E2 -> 0x1569B, 0x156AA
6) 0x12753 -> 0x156B3
7) 0x127B7 -> 0x156C5, 0x156D4
8) 0x12820 -> 0x156DD, 0x156EC
9) 0x12857 -> 0x156F5, 0x15704
10) 0x128F8 -> 0x1570D, 0x1571C
11) 0x12995 -> 0x15725
12) 0x12A00 -> 0x1573D, 0x1574C
13) 0x12A77 -> 0x15755, 0x15764
14) 0x12AA5 -> 0x1576D, 0x1577C
15) 0x12B6D -> 0x15785, 0x15794
16) 0x12B86 -> 0x1579D
17) 0x12BEA -> 0x157AF, 0x157BE
18) 0x12C21 -> 0x157C7, 0x157D6
19) 0x12C9C -> 0x157DF, 0x3BE74
20) 0x12D02 -> 0x157F1, 0x15800
21) 0x12D66 -> 0x15809, 0x15818
22) 0x12DB6 -> 0x15821
23) 0x12E2C -> 0x15833, 0x15842
24) 0x12E75 -> 0x1584B, 0x1585A
25) 12EE1 -> 0x15863, 0x15872
26) 0x12F14 -> 0x1587B
27) 0x12FA0 -> 0x1588D
Адреса параметров в роме (Отобразить)0x1B0F7 - жизни,
0x1BC86 - ракеты №1;
0x1BC8B - ракеты №2;
0x1BC95 - маскировка;
0x1BC9A - ЭМИ.
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
|
Поиск в теме | Версия для печати |
Страниц (2): « 1 [2] |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0) |
« Переводы » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|