С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Продолжил изучение возможности переноса игры с Game Boy на ZX Spectrum. Попробовал автоматически конвертировать разными способами 2-х битную (4-х цветную) графику в однобитную:
![]()
![]()
![]()
Становится совершенно очевидно, что без ручной перерисовки графики не обойтись. Автоматически конвертированную графику можно использовать разве что для отладки, в качестве заглушки.
Для понимания того, как работает программа очень помогает эмулятор BGB, который имеет встроенный отладчик и прочие полезные инструменты, облегчающие понимание работы программы. Например, в листинг дизассемблера автоматически вставляются некоторые полезные комментарии, а в карте тайлов подсвечиваются те, которые прямо сейчас отображаются на экране.
![]()
Эмулятор позволяет сохранять как дамп памяти, так и ассемблерный листинг (почему-то без комментариев):
Но, к сожалению, в любом случае задача оказалась несколько сложнее, чем я себе изначально её представлял.Код:ROM0:0150 CD 81 28 call 2881 ROM0:0153 31 FF DF ld sp,DFFF ROM0:0156 AF xor a ROM0:0157 E0 47 ld (ff00+47),a ROM0:0159 E0 48 ld (ff00+48),a ROM0:015B E0 49 ld (ff00+49),a ROM0:015D 21 00 80 ld hl,8000 ROM0:0160 01 00 18 ld bc,1800 ROM0:0163 CD 99 29 call 2999 ROM0:0166 CD A8 28 call 28A8 ROM0:0169 CD 8A 29 call 298A ROM0:016C 3E 01 ld a,01 ROM0:016E EA 00 21 ld (2100),a ROM0:0171 CD 19 7D call 7D19 ROM0:0174 CD C0 FF call FFC0 ROM0:0177 CD CE 40 call 40CE ROM0:017A CD 6B 2B call 2B6B ROM0:017D 3E 44 ld a,44 ROM0:017F E0 41 ld (ff00+41),a ROM0:0181 3E 4F ld a,4F ROM0:0183 E0 45 ld (ff00+45),a ROM0:0185 3E 01 ld a,01 ROM0:0187 EA AF DB ld (DBAF),a ROM0:018A 3E 01 ld a,01 ROM0:018C E0 FF ld (ff00+FF),a ROM0:018E 3E 01 ld a,01 ROM0:0190 EA 00 21 ld (2100),a ROM0:0193 CD 0F 46 call 460F
P.S. Исследуемая Зельда на осцилографе.
Последний раз редактировалось CityAceE; 18.12.2015 в 08:42.
С уважением, Станислав.
В общем, в конце 90-х мы с Jerri ковыряли геймбоевские картриджи. Джерик написал дизассемблер. В принципе, даже на Спеке "ломать" геймбоевский код не очень сложно. Побаловались с выдиранием и выводом графики, музыку тоже удавалось сконвертить для AY. Но дальше экспериментов дело не пошло - посчитали, что на геймбое не было достойных для портирования игр, которые можно было бы за недолго перенести.
Прилагаю трдшник с исходниками в формате Alasm (то, что удалось найти). Практическая ценность его невысока, но, просто, для примера, - как оно выглядит. Там, значит, имеются 1) дизассемблер, настроенный на DuckTales, 2) полный (насколько я помню) дизассемблированный код DuckTales, 3) титульный экран, разложенный на два битплана в zx-формате, 4) два музона из DuckTales в формате протрекера.
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
Отыскал довольно полезную книгу в формате PDF - GAME BOY Programming Manual. В принципе, в ней есть достаточно информации, чтобы разобраться что к чему.
Но чем больше знакомлюсь с архитектурой Game Boy, тем больше понимаю, что простой конвертацией игры обойтись не удастся. Если делать так, как сделано в Game Boy, то, во-первых, может элементарно памяти не хватить, а во-вторых, всё будет нещадно тормозить.
С уважением, Станислав.
Судя по отладчику там и z80 шустрее? 1 такт на простую команду?
Titus, нет там обычный чуть измененный проц
по тактам также хотя он же на 1 мгц работает
кроме того все нещадно тормозится
я бы сказал что он не на Z80 а все таки на i8080 - нет индексных регистров
Последний раз редактировалось jerri; 18.12.2015 в 21:56.
С уважением,
Jerri / Red Triangle.
мне на GBC очень понравилась зельда оракул времён/эпох,
такое впечатление что для GBA игры из этой серии специально упростили.
Я понимаю, что умных учить - только портить, но выскажу своё ИМХО.
Если портировать такие игры - то сразу для PentEvo или ATM. Аргументы:
1. Графику можно рисовать попиксельно и не париться с наложением атрибутов.
2. Владельцев реальных PenteEVO или ATM довольно много.
3. Компы совместимы снизу вверх. Не надо делать двух версий.
4. Тем, у кого вообще реала нет - ПОФИГ. Они на PC что zx48, что Пентеву сэмулируют.
5. Не останутся полуневостребованным висяком видеорежимы и прочие расширенные возможности этих компов.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)