≡ Передовица » Software » Игры » Алиса в стране чудес
Алиса в стране чудесСкачать архив с диском. АГАТ-9. НГМД 840. + ReadMe. Самый натуральный русифицированный квест для Агата. Бродим по игре, общаемся с персонажами, манипулируем предметами и т.п. В игре два крупных пространства: Страна чудес и Зазеркалье, перемещение по ним осуществляется как в аркаде. Авторы адаптации и русификации (г.Москва 1992/93 год):
* * *Подробности о переводе: Оригинал игры выпущен в 1985 году фирмой Windham Classics для Apple ][ и Commodore 64. В Apple версии игра занимает три диска формата 140Кб. В 1992 году, программисты из клуба USN, объединили эти диски на одном, формата "АГАТ" (840Кб), и русифицировали первую половину игры. Вторая осталась нетронутой, поскольку исходный диск от Apple был с нечитаемым куском, который не позволял правильно декодировать англ. текст (к сожалению, копия, попавшая в СССР через Болгарию, была с некоторыми дефектами). Это не помешало игре завоевать поклонников, даже проходя первую половину, можно было потратить несколько недель времени и получить массу удовольствия. В 2018 году, на нашем форуме появилась тема с воспоминаниями о игре: Как поиск квеста "Алиса в стране чудес" сам превратился в квест . На него откликнулся один из авторов перевода 1992 года (Dohtur Frag), и работа была возобновлена. Но уже на новом технологическом уровне (см. подробности ниже), и на основе дистрибутивного оригинала, купленного на ebay. В Перевод текстов из "Алисы" включились форумчане; AlexBel, avivanov76, garnizon, Wierzbowsky. Благодаря этому, был выполнен полный перевод всех текстов из игры.
Что сделано на данный момент:
Важно, что изменения коснулись не только перевода текста. Были исправлены многие баги оригинала. По возможности улучшены характеристики, в т.ч. за счёт технических преимуществ Агата перед Apple][. - Переведён полностью весь текст (750+ фраз), диалоги, загадки, песни и т.д. Расширенна система хранения текста - теперь в игре можно использовать ENG и RUS алфавиты. - Управление переделано в соответствии с особенностью клавиатуры Агат. - Все 3х140Кб диска оригинальной игры, размещены на одном 840Кб формата Агат. Причем от простого эмулятора трех дисков на поверхности 840 отказались. ALICE_GAME - главный блок, логика - Задействован Агатовский контроллер памяти. - Анализ оригинальной игры показал: изначально для обеих частей игры планировался один текстовый массив - 30кб.
Но нехватка ОЗУ у Apple заставила авторов оригинала сделать следующий финт: на диске разместили две копии массива,
потом в первой вычистили все фразы, которые нужны только в зазеркалье, а в второй вычистили все фразы которые нужны только в стране чудес, а общие фразы остались продублированы. Таким образом получилось два массива по 20Кб, загружаемые на одно и тоже место ОЗУ в зависимости от части игры. - Так же, из-за нехватки памяти, авторы оригинала применили "костыль", когда 11-й блок текста лежит на диске впереди 1-го. В Агатовской версии от этого избавились, теперь все лежит аккуратно. Исправление фирменных багов игры: - Переделана процедура ввода ответа на загадки. Оригинальной не возможно было нормально пользоваться из-за тройной ошибки авторов. Исправлено. - Оригинальная игра, при попытке чтения из пустой (ранее не записанной) ячейки висла. Версия для агат, делает проверку, и если ячейка пуста то выводит соответствующее сообщение. - Бага, пока Алиса не сделает хотя бы один прыжок - персонажи не станут говорить входную фразу. Исправлено. - Игра зависала после 50 дней или в конце - исправлено. - Иногда игра ждала повторного нажатия пробела при выходе из меню - исправлено. - В конце каждой фразы присутствовали лишние один или два пробела. Один пробел это компенсация ошибки в РАСПАКОВЩИКЕ. Авторы оригинала руками добивали, ведь если последний символ фразы оказывается ровно в конце байта - распаковщик его проглатывает. Нет контроля на совпадение конца байта и количества распакованных бит. Второй пробел возникает автоматом(иногда) из-за ошибки в УПАКОВЩИКЕ. Исправлено. - Процедура построения таблицы блоков не имела контроля перехода между адресами. В случае, если указатель конца блока ff,ff, оказывался на границе между bf00 и e300 - то процедура не находила конец блока. Попадание на границу крайне маловероятно, но это потенциальная бага. Исправлено. По мелочи: Звук теперь не просто выключается а переводится на разъем магнитофона. ! Переписаны селекторы песен и предметов, теперь можно перематывать в обе стороны и выйти в любой момент. Кроме того, перед выводом очередного названия - добавлена очистка строки, больше не будет мусора и заботы о пробелах.
Что пока не сделано:
- Чтоб игра сама определяла кол-во ОЗУ и в соответствии с этим производила загрузку. - Оригинальная игра, не проверяет - заклеен ли диск от записи, и вообще - произошла ошибка записи, открыт дисковод... ей пофиг. Будет пытаться писать пока не запишет. Пока у Агатовской версии так же. - Русские названия комнат в графике. - Во время загрузки игры, включен текстовый экран, на котором появляется мусор. Вариант или включать текстовый режим где не будет мусора (например Т40 эпловский, можно даже что-то там написать) или сразу графическую страницу. О главном: Игра получилась реально хорошей, одно удовольствие играть но... В эмуляторе вообще всё прекрасно, а вот на реальной машине есть особенности: Загрузка происходит достаточно долго и в этот момент головка ездит по поверхности туда-сюда очень ЛЮТО и МНОГО, пытаясь протереть диск насквозь :) Даже если файлы разложены подряд и не дефрагментированы. Дело в том, что при первом запуске происходит поиск нужных файлов и считываются t/s каждого. Таки да, каждого отдельно. Алиса обращается к системе с вопросом: "а есть такой файл на диске?", Система отвечает: "есть, вот первый t/s файла". Алиса берёт этот t/s и так с каждым файлом. Все t/s, алиса запоминает. И в дальнейшем, когда понадобится что-то подчитать, она берёт данные из этих t/s и обращается к rwts. Таким образом, к каталогу, система обращается только при старте алисы 5-6 раз(скока файлов). Дальше, если ОЗУ 256кб, то больше обращения к диску не требуются, ну кроме записи состояния. Если ОЗУ стандартное, т.е. всего 128кб то еще есть особенности: Спрайты с разными размерами алисы, спрайты персонажей и комнаты игра подгружает во время игры. Для первых двух пунктов может и найдется место в ОЗУ, а вот за каждой комнатой игра обращается к диску. В переводе 92 года это решалось так: За один раз в ОЗУ загружается несколько комнат. Интересно что сама игра на этот счет не модифицировалась. Использовался оптимизированный для неё драйвер RWTS 840, c кешированием треков в старших сегментах виртуального ОЗУ Агат-9. Для каждого сегмета от 10 до 32 игровых экранов, а игра так и думала что получает всё от НГМД. Теоретически читать в ОЗУ 5-10 экранов по времени тоже самое что лазать на диск за 1 экраном, а польза очевидна. Но в ОЗУ для этого нет места, поскольку часть пространства занимает ос "The Best", она нужна для организации RAM диска.
* * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |