Выкладываю в общий доступ свои наработки по создание картриджей под MMC1 SxROM(ax5904)
SxROMПоддерживаются популярные модификации маппера.
Возможность записать 4in1, 2in1 с переключение через меню.
Можно через меню для одной игры использовать два разных банка сохранений.
Плата разведена под флешки на 512к/256к в 28 выводых корпусах и узкие 24-выводные для CHR-RAM.
В качестве микросхемы сохранений я использовал FRAM FM18W08
Описание джамперов вместе в архиве с платой.
Вшивание меню во много пересекается с
http://www.emu-land.net/forum/index.php/topic,71165.msg1356713.html#msg1356713Открываем нужную игру в Tile Molester, визуально ищем шрифт и составляем таблицу соответствия букв и кодов тайлов.
Определяем номер банка/экрана, помним что нумерация ведется в 0.
Определяем сводобные места в фиксированном банке PRG.
Если в фиксированном банке нет достаточного места, тогда ищем место для 30 байт с кодом переключения банка, а оставшееся место ищем во всем PRG.
Сам код меню еще можно разбить на 2 части и искать уже два пространства поменьше.
Открываем menu-slrom.asm в одном из примеров и редактируем:
.include "dduck-charmap.asm"; кодировка шрифта
ARROW_SIGN = '-' ; символ стрелки
NBANK_FONT = 27 ; номер банка chr(блок 16*16 символов) со шрифтом 0-31
RESET_OLD = $ffe0 ; старое значение вектора сброса $fffc-$fffd
;OFFSET_PRESET = ; смещение на неиспользуемое пространство в последнем банке (для переключения)
OFFSET_MENU = $1f06f-16 ; смещение на неиспользуемое пространство для кода меню
OFFSET_MENU2 = $1fc5c-16 ; смещение на второе неиспользуемое пространство
Если закоментировать все OFFSET_.., то при компиляции будет создан файл пригодный для запуска в эмуляторе.
Порядок игр задается после метки
banktable. Игра с вшитой меню не обязательно должна быть на первом месте.
Так же можно отредактировать количество игр 4/2 в строке с комментарием "ограничиваем пунткы 0-3 (1-4)" и
палитру после метки
paletteПри переносе кода в игру блоки для копирования помечены словами PRESET, MENU, MENU2
Открой nes файлы в hex редакторе wxHexEditor и уведите обозначенные цветом области для копирования.
2 разведенных платы успешно вписываются в размеры 100*100. А такие размеры очень любят китайцы.
Герберы для отправки на производство так же приложены.
Также приложил три примера меню, включая оригинальные файлы и теги для hex редактора wxHexEditor.