Здравствуйте. Как правильно ассемблировать игру в sjasm если она занимает 128к. Я пишу device zxspectrum128. А sjasm пишет что памяти занято больше чем 65536.
Здравствуйте. Как правильно ассемблировать игру в sjasm если она занимает 128к. Я пишу device zxspectrum128. А sjasm пишет что памяти занято больше чем 65536.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Никак.
Процессору z80 доступно только 64кб.
Нужно распределять данные и код по 16к страницам, и делать менеджер, который будет переключать страницы и переносить код куда надо. Обычно в страницах только данные держат, потому что с кодом в страницах работать нетривиально. Либо перекидывать в рабочую память, либо Swap'ать туда-сюда, либо дублировать один и тот же код на разных страницах чтобы при исполнении кода из самих страниц исполнение не оказалось где-то в спрайте или еще где-то не там.
Я хотел дизассемблировать игру seraphima. Сохранил снапшот. Дизассемблировал. А обратно ассемблировать не получается. А снапшот занимает 128кб памяти.
ну так и в снапшоте куча страниц по 16к, это надо формат снапшота смотреть, чего\куда.
А так то zx-игры в основном дизассемблят вот этим
https://skoolkit.ca/
Есть большая куча уже дизассемблерных игр, и примеры, как делать правильно.
https://skoolkit.ca/disassemblies/
Последний раз редактировалось zebest; 13.03.2025 в 18:19.
Profi v3.2 -=- Speccy2010,r2
Что-то типа такого можно сотворить:
https://pastebin.com/ndhW0sKd
Heavy on the disasm
Eric and the disasm
Mask 3: Venom strikes disasm
Bard's disasm
Для начала нужно разобрать снепшот на составляющие:
- заголовок снепшота
- основную область памяти 16384-65535
- несколько страниц памяти 49152-65535
И только после этого дизассемблировать каждый участок памяти по отдельности. Код игры скорее всего будет основной области программы, а в дополнительных хранится графика, музыка, текст, уровни и т.д.
Просто так дизассемблировать, чтобы потом сходу собралось то же самое, увы, не получится.
С уважением, Станислав.
За Серафиму не скажу, но другие проекты вполне себе получается разбирать и потом собирать -почти- то же самое (небольшая разница в том, что содержал стек до останова, или в экране).
После ассемблирования - запускаем побайтную сверку, чтобы чётко следить, не порушили ли шаловливыми руками.
Как отправную точку касательно Серафимы - можно использовать чистый снапшот, который генерится скулкитом:
https://github.com/skoolkid/t2sfiles.../seraphima.t2s
Heavy on the disasm
Eric and the disasm
Mask 3: Venom strikes disasm
Bard's disasm
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)