Просмотр полной версии : Ассемблирование 128к sjasm
Здравствуйте. Как правильно ассемблировать игру в sjasm если она занимает 128к. Я пишу device zxspectrum128. А sjasm пишет что памяти занято больше чем 65536.
Никак.
Процессору z80 доступно только 64кб.
Нужно распределять данные и код по 16к страницам, и делать менеджер, который будет переключать страницы и переносить код куда надо. Обычно в страницах только данные держат, потому что с кодом в страницах работать нетривиально. Либо перекидывать в рабочую память, либо Swap'ать туда-сюда, либо дублировать один и тот же код на разных страницах чтобы при исполнении кода из самих страниц исполнение не оказалось где-то в спрайте или еще где-то не там.
Я хотел дизассемблировать игру seraphima. Сохранил снапшот. Дизассемблировал. А обратно ассемблировать не получается. А снапшот занимает 128кб памяти.
ну так и в снапшоте куча страниц по 16к, это надо формат снапшота смотреть, чего\куда.
А так то zx-игры в основном дизассемблят вот этим
https://skoolkit.ca/
Есть большая куча уже дизассемблерных игр, и примеры, как делать правильно.
https://skoolkit.ca/disassemblies/
Bedazzle
13.03.2025, 23:25
Я хотел дизассемблировать игру seraphima. Сохранил снапшот. Дизассемблировал. А обратно ассемблировать не получается. А снапшот занимает 128кб памяти.
Что-то типа такого можно сотворить:
https://pastebin.com/ndhW0sKd
CityAceE
14.03.2025, 08:19
Я хотел дизассемблировать игру seraphima. Сохранил снапшот. Дизассемблировал.
Для начала нужно разобрать снепшот на составляющие:
заголовок снепшота
основную область памяти 16384-65535
несколько страниц памяти 49152-65535
И только после этого дизассемблировать каждый участок памяти по отдельности. Код игры скорее всего будет основной области программы, а в дополнительных хранится графика, музыка, текст, уровни и т.д.
Просто так дизассемблировать, чтобы потом сходу собралось то же самое, увы, не получится.
Bedazzle
17.03.2025, 16:17
Просто так дизассемблировать, чтобы потом сходу собралось то же самое, увы, не получится.
За Серафиму не скажу, но другие проекты вполне себе получается разбирать и потом собирать -почти- то же самое (небольшая разница в том, что содержал стек до останова, или в экране).
После ассемблирования - запускаем побайтную сверку, чтобы чётко следить, не порушили ли шаловливыми руками.
Как отправную точку касательно Серафимы - можно использовать чистый снапшот, который генерится скулкитом:
https://github.com/skoolkid/t2sfiles/blob/master/t2s/s/seraphima.t2s
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot