Описание: Титульник и прочее |
Поиск в теме | Версия для печати |
Mefistotel |
Отправлено: 01 Августа, 2016 - 14:00:34
|
Chief-Net
Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014
Откуда: МАГАДАН
|
Немного изменил текст (центровка, перевод) и собрал гифку для наглядности:
Думаю, необходимо несколько доработать шрифт (буквы ж, д и у). Очень сильно они отличаются от остальных.
Интересно выводится надпись GAME OVER, в вольном переводе того времени "УЖЕ ВСЕ?"
Тайловая карта записано кодом, в котором идут ссылки на буквы из основного шрифта.
В игре буквы как бы появляются по очереди на экране.
G-h6A0 LEA h01C34E
A-h6B4 LEA h01C1CE
M-h6C8 LEA h01C4CE
E-h6DC LEA h01C2CE
O-h6F0 LEA h01C54E
V-h704 LEA h01C70E
R-h718 LEA h01C60E
Необходимо перенести и дополнить код, чтобы уместить "ИГРА ОКОНЧЕНА".
----- "Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse |
|
|
Griever |
Отправлено: 28 Августа, 2016 - 14:08:25
|
VIP
Покинул форум
Сообщений всего: 457
Дата рег-ции: Июнь 2015
|
Mefistotel пишет:Проверил. Почему-то буква "Ч" на пиксель ниже остальных.
Ч становилась невидимой в оригинале и тоже была на пиксель ниже из-за carry overflow: разработчики положили счетчик фреймов продолжительности черного экрана в структуру невидимого спрайта. Структура спрайта в обычном режиме игры складывается с вордом, на месте которого сейчас оказался счетчик фреймов и когда сумма вылезает за размер ворда, бит флага переноса оказывается младшим битом координаты Y, которая по структуре стоит перед этой суммой.
Проблема в том, что номер спрайта, в который засунули счетчик, hard-coded, причем во множестве мест, а суммирование используется в самой игре для изменения координаты Y. Поэтому максимум, что я могу сделать - обнулить координату на экране game over, но на один фрейм буква скакнет на пиксель вниз.
Вот патч . |
|
|
Марат |
Отправлено: 22 Января, 2018 - 21:08:47
|
Chief-Net
Покинул форум
Сообщений всего: 2183
Дата рег-ции: Окт. 2014
Откуда: Казахстан
|
Конечно, уже не актуально, но воодушевленный тем, что получилось разобраться с алгоритмом сжатия rnc из библиотеки ScumVM, решил разобраться до конца и с методом сжатия в этой игре. Что-то мне подсказывает, что это сжатие методом Шеннона-Фано. В том смысле, что длина префиксного кода распределялась по символам именно в соответсвии с деревом Шеннона-Фано. Я в своём варианте использовал дерево Хаффмана и благодаря этому сжатие получилось намного лучше оригинала. Сначала я пробовал вычислить длину бита по формуле, которая использовалась в Кодировании Шеннона, но результат был далёк от оригинала. После этого я уже взял за основу сжатие Хаффмана, так как именно дерево Хаффмана даёт оптимальны коды. Но сами коды я не использовал, я лишь использовал полученную длину кода. Вот, я думаю, если построить дерево Шеннона-Фано, то получиться результат, как в оригинале. Вот такие пироги. |
|
|
Griever |
Отправлено: 23 Января, 2018 - 08:01:43
|
VIP
Покинул форум
Сообщений всего: 457
Дата рег-ции: Июнь 2015
|
Марат пишет:Что-то мне подсказывает, что это сжатие методом Шеннона-Фано. В том смысле, что длина префиксного кода распределялась по символам именно в соответсвии с деревом Шеннона-Фано.
Полагаю, это интервальное кодирование. Ты не смотрел на мою утилитку - как она сжимает?
(Отредактировано автором: 23 Января, 2018 - 08:06:15) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): « 1 [2] 3 » |
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0) |
« Переводы » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|