Всем привет.
Неторопясь делаю реверс игрушки Scuba Dive для ZX Spectrum 48K, собственно уже есть некоторые результаты.
SkoolKit HTML: https://nzeemin.github.io/skoolkit-g...scuba/asm.html
Репозиторий с ASM для компиляции через pasmo: https://github.com/nzeemin/spectrum-scubadive-rev
При компиляции получаются в точности такие же три блока, до байта, как и в исходном TAP-файле.
Блоки, загружаемые из TAP-файла:
Использование памяти:Код:Name Type Addr Size SizeHex RangeHex "SCUBA " BASIC "DIVE " CODE 16384, 7150 $1BEE $4000-$5BED "S " CODE 24576, 25856 $6500 $6000-$C4FF "D " CODE 55552, 6144 $1800 $D900-$F0FF
На данный момент:Код:Начало $5B00 Переменные Спрайты $6000 Начало кода $9C56 Конец кода $F000
- Определено назначение многих переменных
- Разобрана часть процедур
- Раскопаны все спрайты
Лабиринт игры определяется в виде "свёртки": таблица AC5D ("мини-карта") содержит 32x32 = 256 индексов блоков, блоки по адресу A4DD состоят из 8x8 тайлов, тайлы по адресу 9134 это 8x8 ч/б пикселов. Итого, весь лабиринт это 256x256 тайлов = 2048x2048 пикселов. На экране мы всегда видим только 24x24 тайлов из этой карты (3x3 блока).
Карта, строится процедурно, изменением байтов в таблице AC5D. Глубина карты зависит от уровня игры (1..4).
Интересно сделано размещение осьминога, который сторожит проход вниз: ставятся подряд блоки $1C и $1D, с рисунком прохода -- и само наличие этих блоков как раз и означает, что тут должен быть размещён объект "осьминог".




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

а в чем разница у пасмо и sjasm в плане портов? Я посмотрел краем глаза, особо разницы и нет (кроме z80=>8086)
