Автор Тема: Super Street Fighter II схема, принцип работы и маппер  (Прочитано 111 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pushkash

  • Пользователь
  • Сообщений: 7
  • Пол: Мужской
    • Просмотр профиля
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-mapper
https://segaretro.org/SSFII_Genesis_Technical_Information_(2000-07-26)
https://www.emu-land.net/forum/index.php?action=dlattach;topic=85108.0;attach=232559;image
Super Street Fighter II: https://www.emu-land.net/consoles/genesis/roms/super-street-fighter-2-the-new-challengers
Overdrive 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

Вот и всё.

310054-0310056-1
« Последнее редактирование: Вчера в 23:19:55 от pushkash »

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 2070
  • Пол: Мужской
    • Просмотр профиля
pushkash, ну раз ты так любишь конструктивную критику, то отредактируй этот машинный гугл перевод в что то человеко-читаемое, потому что данный бред даже прочитать местами сложно, не то что понять.

Банк0=$A130F1 обычно зарезервирован и управляет первым окном(начало игры), и оно часто фиксировано. 
что значит часто, банк 0 всегда фиксирован, его нельзя переназначить ни при каких условиях.

.
(банки позволяет написать до  64 страниц (0-63), регистры $A130xx отвечают только за младший байт (D0–D7) и номер страниц берётся из D0–D5(D6,D7 не используются, =00 )).

только если речь идёт о оригинальном маппере, при создании кастомного можно использовать все восемь бит для увеличения размера памяти.

Оффлайн pushkash

  • Пользователь
  • Сообщений: 7
  • Пол: Мужской
    • Просмотр профиля
pushkash, ну раз ты так любишь конструктивную критику, то отредактируй этот машинный гугл перевод в что то человеко-читаемое, потому что данный бред даже прочитать местами сложно, не то что понять.
что значит часто, банк 0 всегда фиксирован, его нельзя переназначить ни при каких условиях.

.
только если речь идёт о оригинальном маппере, при создании кастомного можно использовать все восемь бит для увеличения размера памяти.
:) значит ты понял что я написал !? Это хорошо.
1. Я написал "часто фиксировано" по сколько его тоже можно изменить, я думаю что тебе известно что он отвечает за переключение РОМ РАМ и записи. А так да онo фиксировано.
2. Речь идёт про SSF2.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 2070
  • Пол: Мужской
    • Просмотр профиля
так ты определись про что ты пишешь, если про SSF2, то банк 0 изменить нельзя, и нету никакой RAM у SSF2, не путай людей

Оффлайн pushkash

  • Пользователь
  • Сообщений: 7
  • Пол: Мужской
    • Просмотр профиля
так ты определись про что ты пишешь, если про SSF2, то банк 0 изменить нельзя, и нету никакой RAM у SSF2, не путай людей
Хорошо ради тебя уберу  "часто"

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 2070
  • Пол: Мужской
    • Просмотр профиля
pushkash, ради меня вообще ничего не нужно делать, я и так прекрасно знаю как устроен данный маппер, ты это сделай ради тех кто это всё читать будет.

вот тебе пример:
В игры Банки остаются на месте, а страниц при выпали программы  могут меняться местами. 

это что за бредятина, перечитай ещё раз и вникни, тут же тупо набор не связанных по смыслу слов, ну прям видно же что это гул переводил.