Автор Тема: Taito маперы 33 и 48  (Прочитано 5157 раз)

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

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1358
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Taito маперы 33 и 48
« : 18 Июль 2018, 20:48:49 »
На волне интереса по Taito's X1-017 (82 мапер) решил посмотреть на еще одну парочку маперов от Тайто, которые до сих пор не полностью исследованы в железном плане.

Вот эти игры работают на 33 мапере:

Akira (J) [!]
TC0190   Bakushou!! Jinsei Gekijou (J) [!]
TC0190   Bakushou!! Jinsei Gekijou 2 (J) [!]
TC0190   Golf Ko Open (J)
TC0190   Insector X (J)
TC0190   Operation Wolf (J)
TC0190   Power Blazer (J)
TC0190   Takeshi no Sengoku Fuuunji (J) [!]
TC0350   Don Doko Don (J)

Вот эти игры работают на 48 мапере:

TC0190+PAL16R4   Bakushou!! Jinsei Gekijou 3 (J) [!]
TC0190+PAL16R4   Don Doko Don 2 (J)
TC0350   Don Doko Don (J)
?   Bubble Bobble 2 (J)
?   Captain Saver (J)
?   Jetsons, The - Cogswell's Caper! (J)
TC0690   Flintstones, The - The Rescue of Dino & Hoppy (J)

Тут интересный момент. Если мы берем игру Bakushou!! Jinsei Gekijou 3 (J)


, то на ней (гугл перевод с польского):
MAPPER 48 dev-cart - bakushou 3:
Цитата
I have tested other M48 games on the Bakushou 3 card:
- Don Doko Don 2 - surprise ... WORKS PERFECTLY !!!!!! heh
- Flintstones Rescue - Black screen, the same as on the pirate DDD2 card.
- Captain Saver - works, but there are errors in the graphics, just like the DDD2 pirate.
- Jetsons - errors, the blown up title and the end is fired.
Получается что в железном плане есть 2 вида 48 мапера? Почему на доноре Bakushou!! Jinsei Gekijou 3 не корректно работают Flintstones, Captain Saver и Jetsons?



На флинтсоунах 15пин слота (IRC) на картридже задействован, а на Bakushou!! Jinsei Gekijou 3 и Don Doko Don 2 - нет. Значит в железном плане 48 мапер бывает разным?


Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9391
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #1 : 18 Июль 2018, 21:47:25 »
На флинтсоунах 15пин слота (IRC) на картридже задействован, а на Bakushou!! Jinsei Gekijou 3 и Don Doko Don 2 - нет. Значит в железном плане 48 мапер бывает разным?
https://wiki.nesdev.com/w/index.php/INES_Mapper_048

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1358
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #2 : 18 Июль 2018, 21:51:50 »
MetalliC, мне нужно самому додумывать что ты хотел сказать этой ссылкой? Я с гуглом на ты.
« Последнее редактирование: 18 Июль 2018, 21:58:48 от SavitarSvit »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9391
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #3 : 18 Июль 2018, 22:00:32 »
SavitarSvit, значит плохо и с английским и с гугльтранслейтом, или с пониманием.
в этих раз два три статьях всё более чем подробно разжевано

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1358
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #4 : 18 Июль 2018, 22:05:08 »
MetalliC, ну сколько раз уже говорили вам "небожителям". Кидаться ссылками - это не уважение к собеседнику. Если вам дорого ваше время и вы не можете написать пару предложений, чтобы ответить на поставленный вопрос в теме, то проходите мимо. Форум для того, чтобы обсуждать тему, а не кидать ссылку в лицо.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9391
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #5 : 18 Июль 2018, 22:06:43 »
мне нужно самому додумывать что ты хотел сказать этой ссылкой?
ничего додумывать не нужно, достаточно прочитать саму первую строчку. там сказано что TC0690 (mapper 048) =  TC0190 (mapper 033) + PAL16R4 (мирроринг) + IRQ счетчик  в одном флаконе

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1358
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #6 : 18 Июль 2018, 22:14:38 »
ничего додумывать не нужно, достаточно прочитать саму первую строчку. там сказано что TC0690 (mapper 048) =  TC0190 (mapper 033) + PAL16R4 (мирроринг) + IRQ счетчик  в одном флаконе
А я понял, что там написано TC0690 (mapper 048) - не равно -  TC0190 (mapper 033) + PAL16R4 (мирроринг) + отсутствие IRQ.
Если бы TC0190 + PAL16R4 был 1 в 1 как TC0690, то такие игры Flintstones бы работали на TC0190 + PAL16R4, но этого не происходит.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #7 : 18 Июль 2018, 22:26:47 »
но этого не происходит.

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

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1358
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #8 : 18 Июль 2018, 22:32:55 »
ясное дело, если игре нужны прерывания, то с какой радости она должна работать на маппере который их не даёт
Да, только почему все эти игры (Bakushou!! Jinsei Gekijou 3 и  Flintstones допустим)  отнесли к 48 маперу, если они работают на разных в железном плане компонентах?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9391
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #9 : 18 Июль 2018, 22:45:02 »
Да, только почему все эти игры (Bakushou!! Jinsei Gekijou 3 и  Flintstones допустим)  отнесли к 48 маперу, если они работают на разных в железном плане компонентах?
вероятно потому, что те кто занимается мумуляцией редко разбираются в железе.
на логическом уровне упомянутые игры пользуют регистры мапера 48, но не используют регистры IRQ

add: эх раз да еще раз
жил-был TC0190 / мапер 033, с этим чипом выпустили пачку игр
но что-то в нем не понравилось, и бит мирроринга решили перенести в другой регистр, прилепив PAL16 костыль, и выпустили упомянутую пару игр.
потом решили добавить еще управление IRQ, а заодно свернули это всё безобразие в одну микросхему TC0690 / мапер 048

по ссылкам на несдеве это всё просто и доступно объясняется, так что понятно и далеким от NES людям типа меня.
учи английский короче, пригодится ;)
« Последнее редактирование: 18 Июль 2018, 22:56:27 от MetalliC »

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #10 : 18 Июль 2018, 22:55:18 »
SavitarSvit, это вопрос к тому кто их приписал к 48, по сути это 33-ий с доработкой

P.S. MetalliC опередил :D

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #11 : 19 Июль 2018, 06:13:44 »
Просто не следует приравнивать чип на плате к номеру маппера, даже один и тот же чип подключенный по-разному приводит к необходимости учитывать это при эмуляции и поэтому такой игре назначают другой номер маппера (118 и 4, 155 и 1). В принципе, этот номер говорит лишь о поддержке необходимого для запуска игры функционала. Так многие игры с 206 маппером запускаются на 4, с 71 на 2. А у китайских мапперов вообще зоопарк, то разделяют, то объединяют в один.
« Последнее редактирование: 19 Июль 2018, 07:06:28 от supremacy »

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4486
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #12 : 19 Июль 2018, 12:42:39 »
А что Дон Доко Дон в обоих списках сразу?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9391
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #13 : 19 Июль 2018, 18:04:17 »
если копнуть немного глубже
https://wiki.nesdev.com/w/index.php/Talk:INES_Mapper_033
говорят, что там даже 4 разновидности этих 33 / 48 маперов, с так и сяк перемешаным функционалом  :)

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

а вопросом документирования железа / плат / чипов / итп начали заниматься лишь относительно недавно, в 2010х годах или около того.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3593
    • Twitter
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #14 : 19 Июль 2018, 20:32:28 »
и надо понимать одну весч, в эмуляции денди мало кто озабачивался в свое время эмуляцией и документацией конкретного железа (как в матери например), тем более некоторые эмуписатели могли вообще вживую картридж не видеть, а реверсить целиком по логике работы игры. все это приводит к тому, что совершенно разные по железу картриджи логически могут работать совершенно одинаково и наоборот, совершенно одинаковые свиду платы работают вообще по-разному даже из-за поменянных местами паре адресных или линий данных.

соответственно, а зачем писать каждой игре/плате свой отдельный маппер, если можно тупо использовать уже готовый другой, но такой же по функциям. типа вот тех же кодмастеровских плат на 71 маппере, который в целом такой же 02. и тп. опять же, если есть маппер, отличающийся от другого в чем-то небольшом, проще было добавить к существующему коду пару строк и второй маппер начинал работать на коде и с номером первого. вот отсюда появляются эти франкенштейны N-in-1 мапперы в мулях, которые мулят сразу группу совершенно разношерстных плат картриджей и большей части народа до борозды, какой там у него должен быть номер и какое железо на самом деле, если он один хрен работает и так.

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

опять же, во всей этой катавасии мало кто разбирается полностью, тем более те люди, которые дают номера мапперов ромам. отсюда в сети гуляет МОРЕ кривых ромов с не пойми как сделанными заголовками, которые приходится из эмулятора по контрольной сумме корректировать порой. единственный ромменеджер, который пытается это как-то править - это гуднес (функция fix). но и у него не все там до конца правильно, хотя я постарался максимум корректив коровнику занести в свое время лол если до кучи не считать, что как такового жесткого утвержденного кем-то списка соответствия мапперов играм не существует по вышеуказанным причинам. и некоторые игры на одном эмуляторе могут запускаться только с одним номером маппера, а на другом - с другим. отсюда даже пошла мода встраивать в эмулятор базу ромов, чтобы игнорировать заголовок вообще и запускать каждую из известных базе игр именно так, как надо конкретому мумулятору.

врядли в сети могли быть ромы игр на 48ом маппере с 33им в заголовке, но очень даже может быть, что некоторые 33ие значатся как 48ые, если они и там и там работают.

точно такая же лабуда например с мапперами конами, которых там 22,23,24,25 и далее, а все это один VRC4 чип и разница там всего в паре перепутанных адресов как раз порой. многие игры вообще например не 22 или не 24 лол, а работают на них. и даже некоторая пиратка, которая имеет хардварно клонированный VRC4 маппер может спокойно работать на каком-то из вариантов оригинального маппера.

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #15 : 04 Январь 2020, 15:21:11 »
Просьба подсказать или так или иначе подать мысль.

Делаю реализацию мапперов 33 и 48 (по факту просто копипаста из coolgirl). Игры с 33 маппером работают без вопросов.
48 маппер: doko doko don 2 зависает с мусором вместо заставки, джетсоны даже заставку не показывают, Bakushou!! Jinsei Gekijou 3 зависает на начале игры.
То есть явно что-то сделано не так.

Что проверялось: прерывания точно ни при чем, ddd2 их не использует и в те регистры не пишет. Мирроринг тоже точно ни при чем, принудительно делал и так и так.
Юмор ситуации в том что на coolgirl все работает, в точности тот же самый код и ром (у меня есть оба картриджа).
Разрешать запись в chr пробовал, баг не появляется. Мыслей больше не осталось, ну только разве что на coolgirl 256к chr.

Принимаются любые идеи.

Добавлено позже:
Тьфу, блин, от безнадеги обрезал chr память coolgirl до 128к и проблема тут же вылезла в полный рост. Ну вот как можно так писать программы?
Три дня докодону под хвост.
« Последнее редактирование: 04 Январь 2020, 15:59:17 от dssoft »

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #16 : 04 Январь 2020, 16:24:58 »
если виснет, то chr не причём, или банки неправильно переключаются (может конфликт на шине) или прерывание срабатывает

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #17 : 04 Январь 2020, 16:31:29 »
если виснет, то chr не причём, или банки неправильно переключаются (может конфликт на шине) или прерывание срабатывает
Я тоже так думал что не может виснуть, ан нет, оказалось может. Для полной уверенности сегодня пересажу микросхемку на 256.
Возможно дело в нулевом спрайте или еще чем-то подобном.

Переключение прг у них одинаковое с 33, прерывание я гвоздиком к стенке прибивал чтобы не срабатывало. Интересно было бы попробовать в эмуляторе память порезать.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #18 : 04 Январь 2020, 16:36:55 »
нулевой спрайт, правдоподобное объяснение. Можно ром сделать обрезав первую половину chr. Должно воспроизветись в эмуляторе

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #19 : 05 Январь 2020, 20:12:16 »
Заменил память на 256к и все проблемные игры "магически" заработали.

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #20 : 10 Январь 2020, 01:09:50 »
Цитата
IRQs on this mapper seem to behave exactly like MMC3's IRQs, with 2 exceptions:
 
  1)  The written reload value is inverted.  EG:  Writing $06 to the reload reg on this mapper would be like
 writing $F9 on MMC3.  You can simply XOR the writes with $FF and it will work just like MMC3.
 
  2)  The IRQ seems to trip a little later than it does on MMC3.  It looks like about a 4 CPU cycle delay from
 the normal MMC3 IRQ time.  Failure to put in this delay results in shaking and other graphical quirks in some
 games.
Забавно, похоже описывающему не пришло в голову что в этом маппере счетчик увеличивается, а не уменьшается, а инверсия как раз и добавляет лишний цикл  :D

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #21 : 11 Январь 2020, 18:32:12 »
А нет ли у нас здесь счастливых обладателей японской версии джетсонов "в железе"? Никак не могу найти как должна выглядеть "демка", везде только mmc3 английская версия на ютубе.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #22 : 11 Январь 2020, 20:54:51 »
Только с флешкартриджа. Зачем делать японскую версию, если можно сделать английскую?

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #23 : 11 Январь 2020, 21:04:17 »
Я заморочился максимально точной эмуляцией. На флешкартриджах, к сожалению, реализация тоже может быть не совсем верной, источники информации-то одни и те же.
Вот, к примеру, в демке джетсонов есть полоса, подчеркивающая иероглифы? Фото с экрана, сорри.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #24 : 11 Январь 2020, 21:25:46 »
Нет, полосы нет. Немножко пиксель мерцает слева на уровне полосы.

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #25 : 11 Январь 2020, 21:30:16 »
Ага, спасибо. Вот в этом и загвоздка - должна быть полоса или нет, ошибка на целую сканлинию это дофига и по идее артефактов должно немало. Но их нет, кроме этой линии.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #26 : 11 Январь 2020, 21:44:44 »
Думаю, что линии быть не должно, она не вписывается в дизайн

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #27 : 11 Январь 2020, 21:57:21 »
Вот тут согласен, тем более что ее нет на ммс3 версии.

Добавлено позже:
В общем, это я лошара: в 48 маппере счет останавливается при запрете прерываний, отсюда и эти плавающие погрешности.
« Последнее редактирование: 11 Январь 2020, 22:49:39 от dssoft »

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #28 : 04 Февраль 2020, 20:48:46 »
В общем, все совсем не так как на самом деле, алгоритм генерации прерываний отличается от ММС3.
http://forums.nesdev.com/viewtopic.php?f=3&t=18277
Цитата
* Mechanism of IRQS:
  if falling_edge(PPU_/RD)
    if PPU_A13 = 0 AND LAST_PPU_A12 = 1 AND PPU_A12 = 0
      if (IRQ_counter = 255)
        IRQ_pending <= 1;
      end if;
      IRQ_counter++;
    end if;
    LAST_PPU_A12 <= PPU_A12
  end if
* IRQ is asserted immediatelly if IRQ_pending flag is set AND IRQs_are_enabled
* It is impossible to tell if the IRQ_counter is reloaded instantly when writing to C001 or when falling edge of PPU /RD (but that does not matter)
* Only writing to C001 clears the IRQ_pending flag (dislabling IRQs doesn't)
* IRQ counter reacts only when there is a PPU A12 transition at $0000-$1fff and only during PPU reads (because the external 74157 mux prevents chip from seeing actual PPU A12/A13 values during PPU write cycles)
* IRQ counter does not checks for M2 when determining if two A12 transitions are too close to each other
Пункт Only writing to C001 clears the IRQ_pending flag (dislabling IRQs doesn't) сомнителен.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2279
  • Пол: Мужской
    • Просмотр профиля
Taito маперы 33 и 48
« Ответ #29 : 05 Февраль 2020, 08:27:37 »
То что алгоритм прерываний отличается от mmc3 было понятно и раньше (на nesdev было написано что прерывание происходит позже чем на mmc3). Я как-то хотел переделать Captain Saver на mmc3, так там с прерываниями совсем беда, где-то просто графические глюки, а где-то и зависания. Надо сидеть и подгонять тайминги для каждого места.

Пункт Only writing to C001 clears the IRQ_pending flag (dislabling IRQs doesn't) сомнителен.
Человек тестировал на реальном железе, а какие основания для сомнений есть у тебя? 8)
« Последнее редактирование: 05 Февраль 2020, 08:36:17 от supremacy »