Автор Тема: Отличия Dendy и других клонов от NES/Famicom (+F.A.Q.)  (Прочитано 13042 раз)

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

Оффлайн evgs

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

1. Официальный NTSC NES и Famicom.
2. Официальный PAL NES.
3. Пиратский PAL Famiclone, к которому относятся и наши Dendy.


В большинстве современных эмуляторов этот тайминг именуется режимом Dendy
в силу исторических причин (так сложилось).

Он представляет из себя гибрид NTSC/PAL, а именно:

Цитата
- Тактовая частота кварцевого резонатора (XTAL) = 26.601712 МГц.
- Тактовая частота CPU (XTAL:15) = 1.7734475 МГц, что намного ближе к NTSC NES/Famicom, чем к оригинальной европейской PAL NES.
- Тактовая частота PPU (XTAL:5) = 5.3203424 МГц, эквивалентна PAL NES.

- Таким образом, соотношение тактовых частот CPU:PPU одинаково для NTSC и Dendy, и равняется 1:3
  Иными словами PPU рендерит 3 пиксела за 1 такт CPU. Для PAL NES это cоотношение равняется 1:3.2

- Длина VBlank после NMI одинакова у NTSC и Dendy (20 сканлайнов), и отличается от PAL NES (70 сканлайнов).
  Полная длина VBlank эквивалентна PAL NES, но пострендер длинее на 50 дополнительных сканлайнов,
  соответственно NMI наступает ближе к концу VBlank (строка 291 вместо 241)
  Этот трюк позволяет сохранить длину VBlank после NMI в точности такой же, как у NTSC-систем.

- Логика работы аудиоканалов (LUT-таблицы Noise и DMC) соответствует NTSC-системам.
Это означает, что Dendy и им подобные PAL-фамиклоны были разработаны с целью обеспечения максимальной совместимости с японскими и американскими играми NTSC-региона, в ущерб официальной библиотеке PAL NES (мало распространенной в Азии).
Иными словами, Dendy позволяет запускать NTSC-игры со скоростью 50 к/с, сохраняя с ними совместимость, в отличие от PAL NES.

* Если попытаться запустить NTSC игры на официальной PAL NES (в обход lockout-чипа), или на эмуляторе в режиме PAL, они также будут работать со скоростью 50 к/с, но многие начнут артефачить, а некоторые даже зависать.
Ко всему прочему мы будем слышать дисбаланс между высотой тона PSG и DMC аудиоканалов.
На Dendy же будет правильный баланс.
Всё это происходит из-за несовместимости таймингов.

Благодарю HardWareMan, без которого эти исследования не воплотились бы в реальность, а также комьюнити nesdev.com и авторов популярных эмуляторов, охотно поддержавших инициативу.

Список эмуляторов, поддерживающих Dendy-режим:
Цитата
- RetroArch [libretro] (nestopia, fceumm, mesen)
- Nestopia 1.40, Nestopia UE
- FCEUX 2.2.3
- Nintendulator
- Mesen
- puNES
- BizHawk
- My NES
- Nintaco
- RetroCopy
- NESICIDE
- nes.emu (iOS/Android)
- nsfplay 2.3 (плеер NSF)
Подробная техническая информация:

CYCLE REFERENCE CHART - nesdev wiki
CPU Signals and Frequencies - nesdev wiki
Detect TV System - nesdev wiki
UMC UA6538 PPU die-shot


Тема на emu-russia, zx-pk, nedopc
Topic on nesdev

F.A.Q:

1. - Почему в эмуляторах этот режим назван "Dendy"? Не лучше ли было назвать его "PAL Famiclone"?
Ведь на этих таймингах работала куча самых разных клонов по всему миру!


2. - Я запутался! На моей Dendy (Lifa/Kenga/Subor/MicroGenius/Pegasus и т.д.) написано PAL!
Значит ли это, что я должен использовать игры для PAL-региона (Europe)?


3. - Как мне проверить тайминг моей приставки?
Как проверить ROM в разных режимах работы с помощью эмулятора?


4. - Что такое перепутанная скважность? Я что-то слышал о ней, но не знаю, что это!


5. - А вот в детстве на моём фамиклоне "Принц Персии" зависал, "Jungle Book" был очень тёмный,
а заставка "Lion King" вообще была зеленая! Сплошные глюки!
Неужели вы хотите и это эмулировать?!?!


6. - А зачем вообще нужна эмуляция этой пиратчины?!?!
NTSC-игры должны играться на NTSC-тайминге со скоростью 60FPS.
Именно так, как это было задумано разработчиками!


ENGLISH VERSION:

« Последнее редактирование: 08 Март 2023, 13:32:06 от evgs »

Оффлайн benladen88

  • Пользователь
  • Сообщений: 716
    • Просмотр профиля
Отличия Dendy и других клонов от NES/Famicom (+F.A.Q.)
« Ответ #1 : 16 Февраль 2019, 15:44:58 »
Хотелось бы побольше узнать про совместимость Dendy и PAL-ромов. Там, как я понимаю, выборочная совместимость, но по какому принципу? Опять же, к нам попадали пал-пиратки на стародельных картриджах, вспомним ту же Shadow Warriors, и тут встречались "свидетели пиратского проботектора".
И второй, оффтоповый вопрос - на сегах всё не так? Мы ведь #вдетстве тоже играли на PAL-выходе в NTSC-ромы.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
Отличия Dendy и других клонов от NES/Famicom (+F.A.Q.)
« Ответ #2 : 16 Февраль 2019, 16:19:02 »
Цитата
Хотелось бы побольше узнать про совместимость Dendy и PAL-ромов. Там, как я понимаю, выборочная совместимость, но по какому принципу?
По тому же принципу, по которому некоторые NTSC-игры без глюков запускаются в официальном PAL-режиме - слабая чувствительность к таймингам.
Каких-то общих рецептов тут нет - как повезет.
Про сегу, я полагаю, другие товарищи расскажут лучше меня.
Если память не изменяет - там всё было стандартно, без уникальных таймингов.

-------------------------------------------------------------------------------------------------------------------
Оригинальная Nestopia 1.40 от Martin Freij имеет баги в режиме Dendy.
Они исправлены в NestopiaUE 1.49 / NestopiaUE 1.50

Прикрепляю оригинальную Nestopia 1.40, собранную с фиксами для Dendy-режима.
Также имеется хак Nestopia 1.37, где PAL переделан в Dendy. Пусть будет для истории:

-------------------------------------------------------------------------------------------------------------------

Changelog:
« Последнее редактирование: 22 Декабрь 2020, 10:09:17 от evgs »

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2187
  • Пол: Мужской
    • Просмотр профиля
Отличия Dendy и других клонов от NES/Famicom (+F.A.Q.)
« Ответ #3 : 16 Февраль 2019, 16:49:05 »
Там, как я понимаю, выборочная совместимость, но по какому принципу?
Никакой совместимости не предусмотрено, если оно не глючит то лишь по воле случая. Если игра сначала вышла в америке или японии, и стояла задача выпустить её в европе, то было несколько вариантов:
1. игра работает на pal, хоть и замедленно, переводим текст и оставляем как есть (пример Hammerin' Harry)
2. игра работает, но разработчики решают исправить музыку, чтобы звучала с такой же скоростью как на NTSC (например Adventure Island)
3. игра работает, но нужно подправить физику игры и музыку, чтобы различия между регионами не ощущались (например Super Mario Bros. 3)
4. игра не работает, нужно менять код, чтобы подстроить под новые тайминги. (например Battletoads)
Таким образом, если игра минимально менялась для pal региона, то она будет работать и на ntsc приставке.
Другое дело PAL эксклюзивы, они изначально делались под тайминги PAL, поэтому на NTSC практически у всех будут глюки. Есть ещё один момент - зависимость от маппера, дело в том что игры на простых мапперах вроде UNROM, AOROM сами вычисляют в каком месте экрана происходит отрисовка, в отличие от игр на MMC3 у которых есть аппаратный счётчик сканлиний, поэтому такие игры в большинстве случаев хуже реагируют на смену таймингов.