The Last Mission Replica (апдейт 04.07.09)
Участников: 3
The Last Mission Replica (апдейт 04.07.09)
Обновление 04.07.09
- добавлена музыка (правда, не из оригинальной игры)
- масштабирование экрана до 640*400 теперь производится не за счёт WinAPI, заодно появился "халявный" эффект scanlines.
- протестировано на старом компе Celeron 766 с Win98 - странно, но через WinAPI StretchDIBits масштабирование работает быстрее... На медленных компах автоматически используется последнее, на быстрых - апскейлинг с эффектом scanlines.
==================
Приветствую форумчан!
Хочу поделиться со всеми одним проектом, который я сейчас активно допиливаю. Это реплика (копия, ремейк - называйте как угодно) старинной испанской игрушки 1987 года под кодовым именем The Last Mission. Игрушка выходила для старинных 8-битных компов, но в том числе и для писюка. PC-версия могла похвастаться аж 4-х цветной CGA графикой и мегазвуковыми эффектами PC-Speaker'а... В то время как 8-битные версии легко крыли палитровым многоцветьем и трёхканальным синтезаторным звуком и музыкой. Взглянуть на скриншоты разных воплощений и прочувствовать разницу можно по этой ссылочке:
http://www.mobygames.com/game/last-mission/screenshots
А теперь предыстория. Мне попалась писюковая версия (а если бы попалась другая, то толку бы не было, ибо в ассемблере z80 я не силён), а именно кривой рип с самозагрузочной фирменной дискеты. Кривизна выражалась в том, что на современном компе игра шла слишком быстро. После недолгих размышлений игрушка была препарирована в дизассемблере Ida Pro не помню какой версии. Открывшиеся пытливому взору внутренности явили собой полную кашу... Оказалось, что основные алгоритмы были написаны под процессор z80, а конверсия для x86 была сделана путём макрозамены мнемоник, от чего код приобрёл весьма шизофренический вид...
Итогом ковыряния было вожделенное торможение игры до приемлимой скорости (синхронизация по vsync) и некая осведомлённость во внутренних алгоритмах. Разобраться полностью терпения не хватило, зато структуры данных были как на блюдечке.
Тут же родилась идея сделать ремейк. Первая (очень неполная) версия была написана на Sphinx C--, ибо дзэн не позволял воспользоваться языком высокого уровня. В конечном итоге, идея умерла, в том числе и из-за сложностей с самим С--. Зато игра компилилась под Win и pmode Dos.
А вот теперь имеется версия (почти полная), написанная на FreeBASIC'е. Конечно, можно было бы и на Си сделать, но тогда я не писал бы сейчас на этом форуме.
Бета для Win находится по ссылке (апдейт 03.07.09):
http://file-pasta.com/file/765551757/mission040709.zip
Теперь на заставке играет музычка (прикручен эмулятор opl2 aka adlib от MAME) в формате RAD, правда, не из оригинальной игры. Осталось прикрутить звуковые эффекты
Игра полностью рабочая, имеется один забавный баг (найдите какой).
Исходники прилагаются, но стиль программирования весьма специфичен - нечто си-подобное пополам с ассемблером (наследие C--).
- добавлена музыка (правда, не из оригинальной игры)
- масштабирование экрана до 640*400 теперь производится не за счёт WinAPI, заодно появился "халявный" эффект scanlines.
- протестировано на старом компе Celeron 766 с Win98 - странно, но через WinAPI StretchDIBits масштабирование работает быстрее... На медленных компах автоматически используется последнее, на быстрых - апскейлинг с эффектом scanlines.
==================
Приветствую форумчан!
Хочу поделиться со всеми одним проектом, который я сейчас активно допиливаю. Это реплика (копия, ремейк - называйте как угодно) старинной испанской игрушки 1987 года под кодовым именем The Last Mission. Игрушка выходила для старинных 8-битных компов, но в том числе и для писюка. PC-версия могла похвастаться аж 4-х цветной CGA графикой и мегазвуковыми эффектами PC-Speaker'а... В то время как 8-битные версии легко крыли палитровым многоцветьем и трёхканальным синтезаторным звуком и музыкой. Взглянуть на скриншоты разных воплощений и прочувствовать разницу можно по этой ссылочке:
http://www.mobygames.com/game/last-mission/screenshots
А теперь предыстория. Мне попалась писюковая версия (а если бы попалась другая, то толку бы не было, ибо в ассемблере z80 я не силён), а именно кривой рип с самозагрузочной фирменной дискеты. Кривизна выражалась в том, что на современном компе игра шла слишком быстро. После недолгих размышлений игрушка была препарирована в дизассемблере Ida Pro не помню какой версии. Открывшиеся пытливому взору внутренности явили собой полную кашу... Оказалось, что основные алгоритмы были написаны под процессор z80, а конверсия для x86 была сделана путём макрозамены мнемоник, от чего код приобрёл весьма шизофренический вид...
Итогом ковыряния было вожделенное торможение игры до приемлимой скорости (синхронизация по vsync) и некая осведомлённость во внутренних алгоритмах. Разобраться полностью терпения не хватило, зато структуры данных были как на блюдечке.
Тут же родилась идея сделать ремейк. Первая (очень неполная) версия была написана на Sphinx C--, ибо дзэн не позволял воспользоваться языком высокого уровня. В конечном итоге, идея умерла, в том числе и из-за сложностей с самим С--. Зато игра компилилась под Win и pmode Dos.
А вот теперь имеется версия (почти полная), написанная на FreeBASIC'е. Конечно, можно было бы и на Си сделать, но тогда я не писал бы сейчас на этом форуме.
Бета для Win находится по ссылке (апдейт 03.07.09):
http://file-pasta.com/file/765551757/mission040709.zip
Теперь на заставке играет музычка (прикручен эмулятор opl2 aka adlib от MAME) в формате RAD, правда, не из оригинальной игры. Осталось прикрутить звуковые эффекты
Игра полностью рабочая, имеется один забавный баг (найдите какой).
Исходники прилагаются, но стиль программирования весьма специфичен - нечто си-подобное пополам с ассемблером (наследие C--).
Последний раз редактировалось: ExMortis (Сб Июл 04, 2009 2:38 pm), всего редактировалось 8 раз(а)
ExMortis- Сообщения : 11
Дата регистрации : 2009-01-01
Возраст : 41
Откуда : Российская Империя, уездный город Белгород
Re: The Last Mission Replica (апдейт 04.07.09)
Обожаю класику...
Однако вопрос, почему для создания окна используется windows.bi, ведь существуют встроенные средства в FB, а от windows.bi игра не портируется, или это с чемто связано?
Однако вопрос, почему для создания окна используется windows.bi, ведь существуют встроенные средства в FB, а от windows.bi игра не портируется, или это с чемто связано?
Re: The Last Mission Replica (апдейт 04.07.09)
tux пишет:Обожаю класику...
Однако вопрос, почему для создания окна используется windows.bi, ведь существуют встроенные средства в FB, а от windows.bi игра не портируется, или это с чемто связано?
Ибо дзэн. Так меньше и короче. А портируемость не пострадает, т.к. вызовы Windows API легко меняются в таковые от SDL.
ExMortis- Сообщения : 11
Дата регистрации : 2009-01-01
Возраст : 41
Откуда : Российская Империя, уездный город Белгород
Re: The Last Mission Replica (апдейт 04.07.09)
не, хозяин - барин, но тк я в асме плохо соображаю, то ща играю из под вайна((
Re: The Last Mission Replica (апдейт 04.07.09)
Добротно... Гуд Гейм! Не знал о такой игрушке, но идея интересная.
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 31
Откуда : Москва
Re: The Last Mission Replica (апдейт 04.07.09)
Обновление 03.07.09 - см. первый пост.
ExMortis- Сообщения : 11
Дата регистрации : 2009-01-01
Возраст : 41
Откуда : Российская Империя, уездный город Белгород
Права доступа к этому форуму:
Вы не можете отвечать на сообщения