Не так давно я задумался о том что, неплохо бы было сделать своей игре статус бар в низу экранной области. Алгоритм sprite 0 hit отпал практически сразу ввиду того что в проекте есть уже довольно сложные и тяжелые механики и данная механика нагрузит выполнение nmi вектора. По этому было принято решение использовать прерывание IRQ, а такое прерывание может генерировать распространенный маппер MMC3, на который я и решил мигрировать свой код. Читать далее
Этот файл — ROM консоли NES. И одновременно ZIP-файл. Он одновременно полностью функционален и как NES ROM, и как ZIP-файл. Что находится в этом ZIP-файле? Исходный код ROM. Что случится, если скомпилировать этот исходный код? Он создаст NES ROM, который также является ZIP-файлом, содержащим исходный код этого NES ROM. Запущенный ROM Этот NES ROM можно «прожечь» на картридж NES и он будет работать на NES. Даже если конвертировать все данные с картриджа, образ NES всё равно будет ZIP-файлом. Читать дальше →
Игры не использующие мапперы в NES ограничены, 16 кб PRG ROM (хранилище программного кода) и 8 кб CHR ROM (хранилище графики). С развитием разработки игр на NES, встал вопрос, а как увеличить данные ограничения и на помощь пришли микросхемы мапперы. Что же такое мапперы мы и разберем сегодня и как их использовать в своем коде. Читать далее
Одна из ключевых функций мапперов это переключить программных банков памяти и банков памяти с графикой CHR. Если брать для сравнение маппер MMC1 то он переключает графику постранично, по факту переключая полностью. MMC3 имеет 5 банков CHR памяти и позволяет их переключать по отдельности, не переключая полностью pattern table. Под катом подробности как это реализовать на ассемблере... Читать далее