blackbird_ru, насчёт переключения банков в Guardian Legend (UNROM) что можешь сказать? Сам не разбирался, но один из заграничных хакеров, сделавший большой хак на эту игру, остановился из-за нехватки места.
http://wiki.nesdev.com/w/index.php/Programming_UNROM
С UNROM проще или сложнее, чем с MMC3?
Раскопал на днях заморский хак
Guardian Legend Secret Edition и сделал там несколько улучшений.
1. Расширил РОМ с 128 до 256 КБ (128 КБ стало свободно)
2. Переписал/оптимизировал программу переключения банков, в результате освободилось 66 байт в непереключаемом банке (адреса: 3D734 - 3D775 в ROM, D724 - D765 в RAM), которые можно использовать под свои нужды.
3. По ходу дела исправил несколько багов, как оригинала, так и хака (напр., если во время частичного появления последнего босса в хаке нажать селект, то босс становился непроходимым).
Программа переключения банков расположена по адресам D705 - D7A9 (в RAM), к примеру адреса D705 - D723 переключают банки под номерами: 00, 03, 04, 05, 06. Новые банки могут быть включены путём записи значений 87-8E по адресам D76D-D774 соответственно. Например, следующий код переключит для использования банк №08:
LDA #$08
BNE $D707Ещё есть такой хак, который переводит оригинальную игру из UxROM в маппер MMC3 -
http://www.romhacking.net/hacks/2553/Не очень понял, в чём смысл этого хака, потому что на картридж я записать его не смог, т.к. PRG и CHR остались не разделены между собой (наследство от UxROM), а для записи на картридж их требуется разделить (в одну микросхему пишется PRG, в другую CHR). Зато исправил в этом РОМе баги со звуком, поэтому тоже выложу.