Просмотр полной версии : Портирование BATTY на Вектор
Всем привет.
На этой неделе начал портировать на Вектор-06Ц игру Batty.
За основу взят код порта на Специалист Z80, который сделал CityAceE
https://pic.maxiol.com/thumbs2/1710537921.1595409335.photo2024031600244.jpg (https://pic.maxiol.com/?v=1710537921.1595409335.photo2024031600244.jpg&dp=2)
Репо с кодом: https://github.com/nzeemin/vector06c-batty
Пока выкладываю самое раннее превью, забагованное и еле работающее.
И это пока тоже версия под Z80 вариант Вектора.
batty-preview0.zip в аттаче
parallelno
16.03.2024, 01:40
Класс! Планируешь ли ты использовать цвет в игре? Было бы здорово раскрыть возможности вектора в графике.
CityAceE
16.03.2024, 09:26
Очень здорово! Уже практически играбельно.
Сейчас самая большая проблема - с "металлическими" кирпичами. Их переливание при ударе шарика портит окружающие кирпичи, из-за чего происходит дезориентация. Например, на третьем раунде играть почти невозможно, хотя это и так самый сложный уровень.
А то, что главное меню проскакивается, это, я так понимаю, умышленно сделано?
Остальные мелочи, думаю, можно быстро пофиксить. Ну и ждём цвет и перевод кода на i8080 ;)
Пофиксил проблему с металлическими кирпичами.
Расширил управление. Теперь так:
- Движение: стрелки влево / вправо, Таб / ПС
- Огонь: пробел, стрелки вверх и вниз, ЗБ, ВК
- Джойстик-П
Начал постепенную трансформацию кода в сторону 8080, но из-за этого возможны новые глюки.
Когда начинал, количество проблемных строк (инструкции не поддерживаемые на 8080) было примерно 1400, сейчас их 993.
Самая большая проблема это конечно повсеместное использование IX и IY, там надо анализировать код и думать.
Первый этап работы по принципу "наброситься и херачить" закончился, осталось 713 ошибок и всё это в основном работа с регистрами IX и IY.
С этими регистрами использую две стратегии:
1. Используя HL, работаем с данными по (HL) и инкрементируем HL по записи объекта.
2. Используя HL, в начале процедуры патчим её код, расставляя по её коду адреса HL+N, соответственно, в коде дальше уже операторы вида ld A,(NN) и ld (NN),A
Идёт ооочень тяжело, по самым скромным подсчётам нужно недели три на это.
Как вариант можно на первом этапе полуавтоматом заменить на единообразные универсальные макросы, а потом оптимизировать критичные места.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot