Super Street Fighter II схема, принцип работы и маппер.
Если какая -то схема называется маппер и названа в честь какой-то игры, игра на данною схеме проста обязана запускаться!
Принцип работы маппера не так уж сложна для понимания , я постараюсь объяснить по народному и не углубляться сильно в деталей. И так у нас есть память на 4МБ(MegaDrive читать до 4МБ память без дополнительных схемотехнических цепей), MegaDrive адресную шину разделяет на 8 равных части по 512КБ так называемые Банки (Банк0…Банк7) , каждый Банки имеет 8-битный регистр (Банк0=0xA130F1, Банк1=0xA130F3, Банк2=0xA130F5, Банк3=0xA130F7, Банк4=0xA130F9, Банк5=0xA130FB, Банк6=0xA130FD, Банк7=0xA130FF)( это область I/O и управления маппером (SRAM)). В каждый регистр написано страница(область память откуда ЧПУ читает данных ) Банк0<-0, Банк1<-1, Банк2<-2, Банк3<-3, Банк4<-4, Банк5<-5, Банк6<-6, Банк7<-7, каждая страница имеет по 512КБ. (банки позволяет написать до 64 страниц (0-63), регистры $A130xx отвечают только за младший байт (D0–D7) и номер страниц берётся из D0–D5(D6,D7 не используются, =00 )). Банк0=$A130F1 обычно зарезервирован и управляет первым окном(начало игры), и оно фиксировано.
8 Банк*8 страниц по 512КБ= 4096КБ(4МБ)
Да ещё один момент все эти операций описаны по Байт-ом , по сколько у нас 16-битная система то процессор за одну обращение к адресную линию читает 2байта, все значения разделяем на 2($A130xx/2, 512КБ/2, 4096КБ(4МБ)/2 etc.) или сдвигаем на один бит адресную линию вправо . тоже по этой причине отсутствует А0 на консоль.
Так работает обычная игра которая не превышает 4МБ.
А теперь самое главное Super Street Fighter II.
По сколько MegaDrive читать и управлять 8 страниц(0-7), SSFII при запуске также как и практически любая игра на 4МБ запускается и читается аналогично. И вот начинается самое интересное, как читается оставшееся 1 МБ?, так вот в картридж добавляется ещё 2регистра(так называемые поставные ) рег1: и рег2: у них задача проста, в нужный момент по команде изменить путь поезда. рег1: и рег2: слушают адрес регистров (рег1:0xA130FD,рег2:$A130FF) когда процессор обращается к области 0xA130FD,$A130FF и по Сигнал активации: (/TIME) в рег1: записывается страница 8 и рег2: страница 9, что приводят к изменения старшие линии адреса ПЗУ и изменение область чтения данных. И этот ансамбль называется маппера.
Думаю кому-то будет интересно, а кому-то полезно.
Полезная инфо к этой теме:
https://devster.proboards.com/thread/1012/super-street-fighter-ii-mapperhttps://segaretro.org/SSFII_Genesis_Technical_Information_(2000-07-26)
https://www.emu-land.net/forum/index.php?action=dlattach;topic=85108.0;attach=232559;imageSuper Street Fighter II:
https://www.emu-land.net/consoles/genesis/roms/super-street-fighter-2-the-new-challengersOverdrive 2 (PAL):
https://f3.erista.me/files/No-Intro/Sega%20-%20Mega%20Drive%20-%20Genesis%20%28Aftermarket%29/Overdrive%202%20%28World%29%20%28Revision%202017%29%20%28Aftermarket%29%20%28Unl%29.zipВот и всё.

