Сообщения без ответов | Активные темы Текущее время: 19 мар 2024, 15:13



Ответить на тему  [ Сообщений: 230 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.
 Отличия Dendy и других клонов от оригинальных NES/Famicom 
Автор Сообщение
Сообщение 13 май 2008, 15:59
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Теме больше 10 лет, назрела необходимость отредактировать верхний пост.
Оригинальный (устаревший) пост 2008 года находится под спойлером:

Добрый день, форумчане.
Еще давным-давно заметил, что звук наших денди немного отличается от эмуляторного: По скорости (темпу) он такой же, как у PAL приставок,
а по высоте звука - аналогичен NTSC приставкам. В принципе, получить похожий звук на эмуляторах не составляло проблемы - достаточно было лишь замедлить NTSC режим до 50 FPS.
Но сразу же возникала проблема с DPCM-каналом: при замедлении эмуляции до 50 FPS высота звука DPCM-канала заметно уменьшалась,
остальные же каналы просто уменьшали скорость, не меняя высоты звука (что требовалось и от DPCM).
Как ни удивительно, именно Денди (и другие известные мне в России клоны) запускали NTSC игры с правильным звуком,
без дисбаланса по высоте между каналами. Если NTSC-игру запустить на PAL приставке, или качественном эмуляторе -
все равно слышится несоответствие высоты звука DPCM по сравнению с остальными каналами.
Как вывод: PAL-игры звучат правильно только на PAL-приставках; NTSC-игры звучат правильно на оригинальных NTSC NES/Famicom,
а также замедленно, но тоже правильно, сбалансированно - на Денди.
Я провел очень много звуковых тестов на 4 разных денди (одночиповых, многочиповых, даже на Мегабое), в частности использовал запись
"Journey 2 Silius" с качественной консоли HardWareMan'a, с разделенными CPU и PPU.
Все денди выдают идентичный, правильный звук.

Я попросил Мартина, разработчика Nestopia, послушать мои тесты и добавить поддержку специфики звука "Денди" в эмулятор:
http://www.bannister.org/forums/ubbthre ... #Post39972

11 мая Мартин добавил поддержку пиратских клонов в нестопию и выслал мне предварительную версию эмулятора.
Я протестировал этот билд (1.39upd) и остался очень доволен.
Звук абсолютно идентичен нашим денди (на всех зв. каналах). Работа выполнена на отлично!
Мартин заинтересовался пиратскими клонами и спросил меня, знаю ли я какие-нибудь их особенности/тонкости.
В принципе он может их заэмулировать, если кто-нибудь поделится технической информацией.
Очень прошу, кто знает - сообщите пожалуйста мне или Марти

Вот, что он ответил мне, когда прислал билд:
Ok here it is. You select the Dendy console in Menu -> Preferences ->
Favored Console -> Clone. Sound seems to be OK from what I've tested by
comparing with your sound files. I was wondering if you happen to know if
there are any games that was exclusively made for the Dendy console or other
famiclones? Also, do you know if there are any known differences between the
Dendy and other Famiclones like Chinese ones or NOAC (Nes-on-a-chip) based
consoles? From what I've gathered, it seems like Dendy is slightly more
accurate than other clones, at least in APU sound quality. Still, I'm not
sure. In any case, if you know anything else interesting about these clones
I'd like to hear it so that I can emulate their inaccuracies more
accurately. Thanks.

/Martin


Итак, за прошедшие годы было выяснено, что существуют 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 же будет [url=http://hwm.us.to/emustuff/Forum/Journey_to_Silius_(USA)_Dendy_TA03NP1-6527P.mp3]правильный баланс.
Всё это происходит из-за несовместимости таймингов.

Благодарю 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)


F.A.Q:

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

Краткий ответ - так сложилось по историческим причинам.

Когда наша команда на emu-russia начинала эти исследования в 2007-2008 годах, эти подробности еще не были известны.
Мы начали исследовать отличия Dendy от Famicom и NES, а вышло так, что нашли общий тайминг, на котором работают почти все PAL-фамиклоны.
Эти приставки были распространены в Азии, странах СНГ и восточной Европы под сотней разных марок.

Технически-грамотное название этого тайминга:
"PAL-Famiclone with NTSC-like timing" или "NTSC/PAL Hybrid", но это звучит громоздко. Поэтому зарубежное сообщество официально согласилось называть его "Dendy".
К тому же это название было уже знакомо западным людям.
Marat Fayzullin и Alex Krasivsky, стоявшие у истоков эмуляции NES, ранее упоминали его в своих документах.

В документации на nesdev.wiki и в исходных кодах практически всех эмуляторов этот тайминг назван "Dendy", и переименование всего с нуля приведет к огромной путанице.

Более того, выяснилось, что существовали PAL-фамиклоны, работающие на таймингах официальной PAL NES, но они были малораспространенными и впоследствии были вытеснены моделями, имеющими Dendy-тайминг.
Поэтому название "PAL Famiclone", как общее для всех приставок работающих в этом режиме, также не подходит.


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

Краткий ответ - нет, не значит.

Не путайте тайминг железа со стандартом видеовыхода.
PAL NES и PAL-фамиклоны (включая Dendy) выдают PAL-сигнал (50Гц).
Некоторые клоны выводят SECAM, но в данном контексте это не имеет значения, и его можно приравнять к PAL.

Исходя из аппаратных различий:
- PAL NES должна использовать PAL-ромы (Europe)
- PAL-фамиклоны (с Dendy-таймингом), Famicom и NTSC NES должны использовать NTSC-ромы (USA, Japan)
Почему так - подробно описано в шапке темы.
И лишь немногие PAL-фамиклоны имеют оригинальный тайминг PAL NES, но шанс найти их вживую очень невелик.

Можно сделать дополнительное пояснение:
У пиратов стояла задача - распространить уже существующие фамикомовские NTSC-игры на обширный
PAL-регион (страны Азии, СНГ, Восточной Европы, Латинской Америки), где Nintendo не выпускала PAL NES официально.

Но просто сделать клон PAL NES было нельзя, так как её тайминг не подходил для этой задачи.
Nintendo видимо специально сломала в нём совместимость с уже существующими NTSC-играми,
сделав другой Vblank в PPU, сильно занизив частоту СPU, и разрушив кратное соотношение частот CPU:PPU (1:3)
Так что разработчикам игр пришлось хорошенько твикать большинство из них для выпуска в Европе.

Поэтому тайваньские пираты придумали свой альтернативный PAL, совместимый с таймингами NTSC.
И в таком случае не требовалось ничего перевыпускать.
Уже существующие NTSC-игры просто работали, только медленнее, практически не имея при этом глюков.
Иными словами, пираты сделали более грамотный PAL, чем это сделала Nintendo в PAL NES.
По крайней мере, разработчики эмуляторов и инженеры с nesdev высказали именно такую позицию.


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

Если у вас есть флеш-картридж, лучше всего скачать тестовый ROM 240pee (от Damian Yerrick)
В правом нижем углу будет отображаться тайминг (NTSC/PAL/Dendy), а если зайти в раздел "CPU Clock Speed"
мы увидим дополнительные подробности.
Привожу скриншот, где показано, какие значения соответствуют разным режимам.
Именно их и должно показывать реальное железо, а также тактово-точные эмуляторы:
Mesen, puNES, Nintendulator, BizHawk, Nestopia. FCEUX немного врёт в этом синтетическом тесте.

Если флеш-картриджа нет, можно взять игру, предельно чувствительную к таймингам, и оценить её поведение визуально.
В качестве наглядного примера возьмём NTSC-версию Battletoads and Double Dragon (U).

- при запуске на NTSC NES и Famicom она будет работать без артефактов.
- при запуске на PAL NES (не забудьте обойти защиту lockout-чипа)
игра будет артефачить на стартовом экране и на экране выбора персонажей,
а также зависать перед началом 1 уровня. Если с помощью чита перейти сразу на третий уровень,
мы увидим смещённый/трясущийся бэкграунд. Это показано здесь.
- при запуске на PAL-Фамиклоне (c Dendy-таймингом) стартовый экран и
экран выбора персонажей будет изредка дёргаться в такт удару барабана, как показано здесь.
Других глюков не должно наблюдаться. Это однозначно доказывает высокую совместимость фамиклонов,
ведь если длина VBlank после NMI отличается от NTSC, эта игра вообще зависает.

Верен и обратный пример. Европейская PAL-версия Battletoads and Double Dragon (E)
также является крайне чувствительной к таймингам, и будет нормально работать только
на официальной PAL NES. Желающие могут проверить это самостоятельно.

Существует множество других игр для тестов, но этот пример весьма нагляден,
и его вполне достаточно в рамках данного F.A.Q.
Все вышеперечисленные процедуры с жабами можно провести используя эмуляторы.


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

Звукогенератор NES умеет генерировать прямоугольные волны (square waves),
модуляция ширины импульса которых может принимать значения 12%, 25%, 50% и 75%.
Это позволяет получить 3 разных тембра волны.
Четвертый тембр (75%) является отзеркаливанием 25%, и звучит одинаково с ним.

Некоторые модели чипов, использовавшихся в NTSC- и PAL-фамиклонах имели аппаратный баг,
заключавшийся в том, что тембры 25% и 50% были перепутаны.
Ничего страшного в этом нет, просто "муз.инструменты" звучат чуть иначе.
Особенно хорошо это слышно в игре Prince of Persia.

Многие эмуляторы, включая FCEUX, puNES и Mesen, умеют имитировать этот баг.
См. опцию "Swap Duty Cycles".

Если у вас есть флеш-картиридж, вы можете узнать, перепутана ли скважность на вашем клоне
используя этот тест.

- "select" = 12%
- "start" = 25%
- "B" = 50%
- "A" = 75%

Проверяется просто: если чип имеет нормальную скважность, то 25% и 75% звучат одинаково.
Если скважность в чипе перепутана - тогда 50% и 75% будут звучать одинаково.


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

Краткий ответ - нет.

Фамиклоны основывались на множестве различных чипов от разных производителей.
Этих чипов ("рассыпушных", однокристальных) наберется несколько десятков, если считать все их ревизии.
И почти каждый из них имел свои специфические баги/недоработки. Где-то была перепутана скважность,
где-то наблюдались явные проблемы со звуком (проблемы с DMC, щелчки triangle-канала),
где-то биты насыщения цвета (emphasis bits) окрашивали/затемняли картинку сильнее, чем нужно.
А в некоторых ранних моделях UM6561 имелись даже явные проблемы с совместимостью.

Но несмотря на все недостатки конкретных чипов, всех их объединял общий тайминг.
И нашей основной задачей являлось отделить главное от второстепенного:
Заэмулировать тайминг, позволяющий запускать NTSC-игры с высокой совместимостью,
но не эмулировать баги, мешающие нормальной работе, да к тому же разные от модели к модели.

Исключением является только перепутанная скважность. Она не влияет отрицательно на работу игр,
и даже больше похожа на "фичу", придающую некоторым моделям фамиклонов свой "уникальный" звук.
Эта функция - строго опциональна, и выключена везде по умолчанию.


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

Ответ - это в первую очередь, технический и исторический интерес,
а затем уже пресловутая "ностальгия".

Нас, в первую очередь, интересует эмуляция этого уникального тайминга.
Сообщество nesdev.com признало его весьма любопытным, и даже технически более грамотным,
чем сделала Nintendo в официальной версии PAL NES.
Во многом благодаря режиму "Dendy" авторы эмуляторов додумались до идеи реализации
"оверклока" методом добавления дополнительных сканлайнов
в пре- и пост-рендер (прощайте, тормоза Contra Force!).

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

Никто силком не заставляет использовать Dendy-режим лишь потому, что подавляющая часть населения форума родом из СНГ.
А значит, играла в детстве на PAL-фамиклонах на замедленной скорости.
Пользоваться им, или не пользоваться - каждый решает для себя сам.

От себя хотим добавить, что нам кажется весьма странным отсутствие даже минимального интереса к этому режиму в русскоязычном сегменте интернета,
в то время как за рубежом его весьма оценили.
И теперь разработчики добавляют его в эмуляторы как обязательный стандарт, идущий наравне с официальными таймингами NTSC и PAL NES.


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

Подробная техническая информация:

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


ENGLISH VERSION:
So it has been found over the years that there are 3 types of NES timing:

1. Official NTSC NES and Famicom.
2. Official PAL NES.
3. Pirate PAL Famiclone, including Dendy.


This timing is called Dendy mode in most of modern emulators due to historical reasons.
It is an NTSC/PAL hybrid, a described below:
Цитата:
- Crystal oscillator freq. (XTAL) = 26.601712 Mhz
- CPU clock freq. (XTAL/15) = 1.7734475 MHz, which is much closer to NTSC NES/Famicom, than to original European PAL NES.
- PPU clock freq. (XTAL/5) = 5.3203424 Mhz, which is same as European PAL NES.

- So, CPU:PPU clock ratio is the same for NTSC and Dendy, and equal to 1:3
In other words PPU renders 3 pixels per 1 CPU cycle. For the PAL NES this ratio is 1:3.2

- The length of VBlank after NMI is the same for NTSC and Dendy (20 scanlines), and differs from PAL NES (70 scanlines).
The full length of VBlank is as long as PAL's, but postrender period is longer (by 50 additional scanlines)
so NMI occurs toward the end of VBlank (line 291 instead of 241).
This trick makes VBlank length after NMI remain the same as NTSC, so any game using a CPU cycle-counting mapper working.

- Noise and DMC logic (APU LUTs in emulators) are same as NTSC NES/Famicom


It means that Dendy and similar PAL Famiclones were designed in order to provide the maximum compatibility to Japanese and American games of NTSC region, to the detriment of the official PAL NES library (not widely used in Asia). In other words Dendy allows running NTSC games at 50 FPS while maintaining compatibility with them, unlike official PAL NES.

* If you try running NTSC games on an official PAL NES (bypassing the lockout chip), or on an emulator in PAL mode, they will also run at 50 FPS, but many of them will start artifacting, and some will even freeze.
In addition, we will hear an imbalance between the pitch of the PSG and DMC channels (Sunsoft games with DPCM-bass for example).
On dendy it sounds correct.
All this happens due to the incompatibility of timings.

Many thanks to HardWareMan, without whom these studies would not have become reality; as well as nesdev.com community and the authors of popular emulators, who willingly supported the initiative.

The list of emulators supporting Dendy mode:
Цитата:
- 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 player)


F.A.Q:

1. - Why is this timing called "Dendy"? Wouldn’t it be better to call it “PAL Famiclone”?
After all, a bunch of different clones all over the world worked on these timings!

Цитата:
The short answer is that it happened so due to historical reasons.

When our emu-russia team began this research in 2007-2008, such details were not yet known. We started to investigate the differences between Dendy and Famicom and NES, and it turned out that we found a common timing that almost all PAL Famiclones work on.
These consoles were used in Asia, the CIS countries and Eastern Europe under hundred of different brand names.

The technically correct name for this timing:
"PAL-Famiclone with NTSC-like timing" or "NTSC / PAL Hybrid", but it sounds cumbersome. Therefore, the foreign community officially agreed to call it "Dendy". Moreover, this name was already familiar to westerners. Marat Fayzullin and Alex Krasivsky, who were at the origin of NES emulation, previously mentioned it in their documents.

This timing is called "Dendy" in nesdev.wiki documentation and in the source code of almost all emulators, thus renaming everything from scratch would be a huge mess.

Moreover, it turned out that there were PAL Famiclones operating on the official PAL NES timings, but they were rare and were finally replaced by models with Dendy timing. Thus "PAL Famiclone" name can’t be used as common for all consoles operating in this mode.


2. - I'm confused! It’s written PAL on my Dendy (Lifa / Kenga / Subor / MicroGenius / Pegasus, etc.)!
Does that mean I have to use games for PAL region (Europe)?

Цитата:
The short answer is no, it doesn't.

Do not confuse hardware timing with video output standard. PAL NES and PAL Famiclones (including Dendy) output PAL signal (50Hz). Some clones output SECAM, but it doesn't matter in this context, and it can be equated with PAL.

Due to hardware differences:
- PAL NES must use PAL ROMs (Europe)
- PAL Famiclones (with Dendy timing), Famicom and NTSC NES must use NTSC ROMs (USA, Japan)
It’s described in detail up above why it’s so.
Only few PAL Famiclones have the original PAL NES timing, but the chance of finding them is very low.

An additional explanation can be made:
The pirates had a task: to present the already existing Famicom NTSC games to the vast PAL region (countries of Asia, CIS, Eastern Europe, Latin America), where Nintendo did not officially release PAL NES.
But you couldn’t simply make a clone of the PAL NES, since its timing wasn’t suitable for this task. It’s likely Nintendo intentionally broke its compatibility with existing NTSC games,
making different Vblank length after NMI in PPU, greatly decreasing CPU frequency, and ruining multiple CPU:PPU clock ratio (1:3). So the game developers had to tweak most of them for European release.

Therefore, the Taiwanese pirates invented their alternative PAL, compatible with NTSC timing. You didn’t need to tweak anything in this case. Existing NTSC games just worked, only slower, with virtually no glitches. In other words, pirates made more adequate PAL than Nintendo had made in PAL NES. At least that was the opinion of emulators’ developers and engineers at nesdev.


3. - How can I check the timing of my console? How to check ROM in different operating modes using an emulator?
Цитата:
If you have a flash cartridge your best bet is to download the test ROM 240pee (by Damian Yerrick).
Timing (NTSC / PAL / Dendy) will be displayed in the lower right corner, and we can see additional details if we go to the "CPU Clock Speed" section.
Here is a screenshot showing which values correspond to different modes. That’s what real hardware should show, as well as cycle-accurate emulators: Mesen, puNES, Nintendulator, BizHawk, Nestopia. FCEUX is less accurate in this test.

If you don't have a flash cartridge you can take a game that is extremely sensitive to timing and evaluate its behavior visually.
For example let’s take the NTSC version of Battletoads and Double Dragon (U):

- There are no artifacts if playing on NTSC NES and Famicom.
- If launched on PAL NES (do not forget to bypass the lockout chip protection) the game will show artifact on the start screen and on the character selection screen, and also freeze before the start of level 1. If you jump directly to the third level with some cheating, you will see a shifted/shaky background. This is shown here.
- While running on PAL Famiclone (with Dendy timing), the start screen and the character select screen will occasionally shake simultaneously to the beat of the drum, as shown here.

There should be no other bugs. This solidly proves the high compatibility of Famiclones, since a game will totally freeze if VBlank length after NMI is other than NTSC.
The opposite example is also correct. European PAL version of Battletoads and Double Dragon (E) is also extremely sensitive to timing and will work fine only on the official PAL NES.
You can check that yourself if interested.
There are many other games for testing but the example above is illustrative enough, and it is quite sufficient for this F.A.Q.
All of the procedures with Battletoads described above can be carried out using emulators.


4. - What are the swapped duty cycles? I've heard something about it but I don't know what it is!
Цитата:
The NES sound generator can create square waves, which pulse width modulation can be equal to 12%, 25%, 50% and 75%. This allows you to get 3 different tones of the wave. The fourth tone (75%) is mirrored copy of 25% tone and sounds the same.

Some models of the chips used in the NTSC and PAL Famiclones had a hardware bug that the 25% and 50% tones were swapped. It’s not so bad, just "musical instruments" sound a little differently. This is especially well heard in Prince of Persia game.
Many emulators including FCEUX, puNES and Mesen can simulate this bug. See "Swap Duty Cycles" option. Having a flash cartridge you can check if the duty cycles on your clone are swapped using this test.
- "select" = 12%
- "start" = 25%
- "B" = 50%
- "A" = 75%

It's easy to check: If the chip has normal duty cycles then 25% and 75% sound the same.
If the duty cycles in the chip are swapped then 50% and 75% will sound the same.


5. - In my childhood Prince of Persia was freezing on my Famiclone, Jungle Book was very dark, and Lion King’s starting animation was completely green!
Glitches all around! Do you really want to emulate this too?

Цитата:
The short answer is no.

Famiclones were based on many different chips from different manufacturers. If you try to count all revisions there were several dozen of these chips (separated CPU/PPU, single-crystal CPU/PPU with external RAM, fully NoACs). And almost each of them had its own specific bugs/flaws.
Somewhere the duty cycles were swapped; somewhere there were obvious sound troubles (problems with the DMC, clicks of triangle channel); somewhere emphasis bits colored/darkened the picture more than necessary. And some of early UM6561 models even had serious issues with compatibility.

But despite all the flaws of specific chips they were all united by a common timing. And our main goal was to separate the main point from the secondary: Emulate the timing to run NTSC games with high compatibility, but not to emulate bugs that interfere with normal operation and which differs from model to model.
The only exception is the swapped duty cycles. It doesn’t negatively affect the operation of games, and it’s even can be considered as a feature that gives some Famiclone models its unique sound. This feature is strictly optional and is disabled everywhere by default.


6. - And why do we need emulation of this pirate staff?
NTSC games must be played on NTSC timing at 60FPS. Exactly how it’s intended to be by developers!

Цитата:
The answer is that first of all it is a technical and historical interest, and only after that the notorious "nostalgia".

We are primarily interested in emulating this unique timing. The nesdev.com community found it to be quite interesting, and technically even more adequate than in Nintendo’s official PAL NES.

Mainly due to Dendy mode the emulators creators came up with the idea of implementing an "overclock" by adding additional scanlines to pre- and post-render (Goodbye, Contra Force slowdowns!).
Besides there are around a dozen of pirate games that work correctly only on this hybrid timing.

We would like to add that this mode was highly appreciated abroad. And now the developers add it to emulators as a mandatory standard along with the official NTSC and PAL NES timings; similar as they do with Pentagon timings for ZX-spectrum.

emu-land and emu-russia topics

Technical information:
CYCLE REFERENCE CHART
CPU Signals and Frequencies
Detect TV System
UMC UA6538 PPU die-shot


Вложения:
differences.png
differences.png [ 77.75 КБ | Просмотров: 22264 ]
CPU_nesdev_wiki.png
CPU_nesdev_wiki.png [ 16.12 КБ | Просмотров: 22264 ]
Cycle_reference_chart_nesdev_wiki.png
Cycle_reference_chart_nesdev_wiki.png [ 152.8 КБ | Просмотров: 22264 ]

_________________
Nestopia 1.37/1.40 Fixed


Последний раз редактировалось EvGS 01 окт 2020, 19:02, всего редактировалось 57 раз(а).

Сообщение 13 май 2008, 16:42
Профиль

Зарегистрирован:
01 авг 2007, 10:17
Сообщения: 68
Мдааа... уже даже интересно стало вспомнить ТОТ САМЫЙ звук. Молодца!


Сообщение 13 май 2008, 16:42
Профиль

Зарегистрирован:
01 авг 2007, 10:17
Сообщения: 68
Ждем новой НЕСтопии)))


Сообщение 13 май 2008, 17:51
Профиль

Зарегистрирован:
22 июл 2007, 18:56
Сообщения: 576
Цитата:
that was exclusively made for the Dendy console


Думаю, Чудовские творения делались из расчета на денди. Сразу возникает вопрос - а Сюборы внутри какие? Т.е. это, по идее, тоже должен быть аналог Dendy с клавиатурой? В текущей Нестопии Сюбор только как клавиатура, т.е. сама приставка эмулируется все равно как NES/Famicom. Если это денди, то есть смысл при загрузке Сюборовских ромов сразу включать режим Dendy.

Кстати, на разных фамиклонах разный звук - где-то более мягкий, где-то более грубый, но сильно различаются, специально сравнивал.


Сообщение 13 май 2008, 18:38
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
-------------------------------------------------------------------------------------------------------------------
Оригинальная Nestopia 1.40 от Martin Freij имеет баги в режиме Dendy.
Они исправлены в NestopiaUE 1.49

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

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

----------------------------------------------------------------
Nestopia 1.37 "Dendy-mode" version (16.11.2020)
----------------------------------------------------------------

Dendy Fixes:

* Transformed vanilla PAL mode to Dendy timings:
- Changed PAL CPU clock to 26.601712 /15 = 1.7734475 MHz
- Changed PAL PPU Vblank/Vsleep timings to 20/51
- Changed all APU rates according to Nestopia 1.40 Dendy-mode
* Renamed PAL to Dendy in GUI

General Fixes:

- Disabled autodetect samplerate subroutine: fixed audio desync (Martin Freij)
- Fixed TV aspect ratio to match 4:3
- Updated VRC7 instruments table (nuke.ykt)

----------------------------------------------------------------
Nestopia 1.40 "Dendy-mode" fixed (16.11.2020)
----------------------------------------------------------------

Dendy Fixes:

- PPU timing fix for Dendy-mode: the flag of Vblank and NMI were set prior of sleep scanlines (FHorse)
- Add Dendy-mode for FDS and NSF (FHorse/feos)
- Fixed triangle channel for Dendy mode (Rdanbrook)
- Removed unused APU code (FHorse)
- Minor interface fixes and cleanups

General Fixes:

- Fixed RAM init (Koitsu/Rdanbrook)
- Disabled autodetect samplerate subroutine: fixed audio desync (Martin Freij)
- Fixed TV aspect ratio to match 4:3
- Updated VRC7 instruments table (nuke.ykt)


Вложения:
nestopia137fix_src.rar [2.17 МБ]
Скачиваний: 478
nestopia137fix_bin.rar [1.16 МБ]
Скачиваний: 483
nestopia140fix_src.rar [2.75 МБ]
Скачиваний: 476
nestopia140fix_bin.rar [1.38 МБ]
Скачиваний: 453

_________________
Nestopia 1.37/1.40 Fixed


Последний раз редактировалось EvGS 16 ноя 2020, 18:35, всего редактировалось 2 раз(а).

Сообщение 13 май 2008, 20:05
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Подтверждаю, что первый Гайден (у меня японская версия - Рюкенден) действительно виснет на дендике на некоторых заставках. Примечательно, что на микросхемном это некоторые мульты (если напрячся, то даже могу сказать какие), а на капельном почти везде, но нигде в игре. Примечено, что если сигнал NMI от PPU поделить на 2 (т.е. генерировать запрос каждые 2 фрейма) висяков нет, но каждый нормально-отрисованный кадр будет чередоваться с мусором (помимо общего замедления игры и мелодии). Все дело в том, что процессор просто не успевает за 1 фрейм что-то сделать или наоборот делает что-то сверх нормы (напомню, что хоть в режиме пал кадр длиннее по времени, но и процессор должен работать медленнее, а тут он работает как у NTSC а прерывание так и не приходит). ТАк же, есть мнение что это связано с маппером, т.к. в моменты висяка видно, что он переключает странички.
И еще, по поводу БэтлТоадсов. Программа синхрится от видеопроцессора, точнее от VRAM. Игра благополучно виснет на первом уровне, если вытащить правую часть картриджа и продолжает играть, если его вставить обратно.

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 14 май 2008, 10:21
Профиль

Зарегистрирован:
01 авг 2007, 10:17
Сообщения: 68
На сюборах такой же звук. Он у меня как раз был после благополучно сломавшейся Денди. А в 2004-ом его сперли


Сообщение 14 май 2008, 11:02
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
*сообщение устарело, стёрто*

_________________
Nestopia 1.37/1.40 Fixed


Последний раз редактировалось EvGS 29 мар 2010, 11:49, всего редактировалось 1 раз.



Сообщение 14 май 2008, 14:18
Профиль

Зарегистрирован:
22 июл 2007, 18:56
Сообщения: 576
Санчез тоже подтвердил, что сюборы внутрях как денди, так что можешь попросить, чтобы нестопия при открытии сюборовских ромов не только клавиатуру подключала, но и в режим денди переходила.


Сообщение 14 май 2008, 14:36
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
F1ReB4LL писал(а):
Санчез тоже подтвердил, что сюборы внутрях как денди, так что можешь попросить, чтобы нестопия при открытии сюборовских ромов не только клавиатуру подключала, но и в режим денди переходила.

Да. Более того, после сгорания капли дендика в сюборе я починил его вставив материнку на микросхемах. Дополнительное устройство цепляется тупо: на разъем картриджа (для принтера и выбора клавки) и на второй джойстик (используя допсигналы). И все работало на ура. Так что все пучком.

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 14 май 2008, 20:03
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Хорошо, я сообщу обо всех найденных на сегодня недочётах. Релиз 1.40 думаю, еще не скоро, так что успеем.
Скоро возьму фотоаппарат и выложу на ifolder видео "с глюками" денди, для наглядности. Поищите и вы, пожалуйста.
На сегодняшний день к сожалению не существует эмулятора, полноценно имитирующего денди, может только старый nnnesterj чем-то похож. Так что мои надежды пока на нестопию. Мартин будет рад любой инфе по денди. СаН4еЗ сказал, что может и сделает поддержку денди в fceumm, но в ооочень далёкой перспективе (давайте дружно его уломаем, чтоб все-таки сделал :P ).

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 15 май 2008, 13:18
Профиль

Зарегистрирован:
01 авг 2007, 10:17
Сообщения: 68
Кое-что вспомнил. На Сюборе отказывался работать PSY BUSTER (всегда зависал на заставке STAGE 1). Так было с двумя картриджами.


Сообщение 15 май 2008, 14:41
Профиль ICQ
Аватара пользователя

Зарегистрирован:
22 авг 2007, 19:39
Сообщения: 268
Откуда: Украина. Краматорск
DeniSS писал(а):
Кое-что вспомнил. На Сюборе отказывался работать PSY BUSTER (всегда зависал на заставке STAGE 1). Так было с двумя картриджами.

Было дело. При этом на денди моего друга игра запускалась.

_________________
まだ若い夜...


Сообщение 15 май 2008, 23:25
Профиль

Зарегистрирован:
22 июл 2007, 18:56
Сообщения: 576
По Чудовским картриджам тоже лучше в режим денди переходить. И мне вот интересно - китайские игры/хаки - они на что рассчитаны? Дампов прилично, а ведь у китайцев как раз денди.


Сообщение 16 май 2008, 01:49
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 10:48
Сообщения: 12
Psy Buster стабильно рандомно вис на первом уровне. Консоль была Dendy Junior.

_________________
"...without love, without anger, without sorrow, breath is just a clock ticking."
- Mary


Сообщение 16 май 2008, 09:11
Профиль

Зарегистрирован:
01 авг 2007, 10:17
Сообщения: 68
Погонял я на тестовой Нестопии. Жуть как непривычно (после четырех лет с эмулем NES). Сначала врубил Contra, она мне показалась жутко тормозной, но звук тот самый). Но потом включил TMNT III, и все встало на свои места (в них-то я со времен сюбора не гонял, так что помнил я их именно такими, а Контру проходил почти каждую неделю). В общем все супер, только Battletoads & DD ТАК не глючила на первых экранах.
P.S. Неужели Contra так медленно шла на Денди?...


Сообщение 23 май 2008, 00:14
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Заметил пока один общий глюк в разных играх, думаю легко исправляемый: r.c. pro-am2, robocop 3, battletoads&DD и на некоторых других играх - верхняя часть экрана на заставках испорчена. На денди такого не было. А вот на настоящих PAL-приставках (судя по тестам на других эмуляторах) те же глюки. Так что обнаружил еще одну "специфическую особенность". Заметил что, все найденные на сегодня ошибки связаны с мапперами 1 и 7
DeniSS: Contra (U), Super Contra (U), Contra Force (U), Contra 6 (Unl) работают как на денди. Та же скорость и тот же звук ;)
Вообще все игры, за исключением (E) шли на наших приставках заторможенно. Отвыкать от NTSC-эмулей надо, они нам "не родные". Тем более, что (E)-игры у нас почти не продавались. В большинстве своем были (J), (U) и всяческие (unl)-поделки.
Metal Frame PsyBuster (J) на нестопии в денди-режиме часто виснет на title-скрине, после попытки нажать старт. Но мне удавалось ее запустить, вроде работает. Вот прочитал, что на некоторых денди всё похоже было.

*добавлено 23 мая*
пришел ответ на моё старое письмо, где я сообщал про глюки battletoads:
"Regarding Battletoads. This is probably not something I can fix unless
someone actually reverse engineers the Dendy and document the hardware
differences. Since I'm focusing on doing faithfull emulation of the real NES
and Famicom consoles, some games will most likely fail in Dendy mode because
some NES/Famicom hardware quirks aren't present there. The reason it appears
to work in NNesterJ is because it's innacurate and doesn't properly emulate
some aspect of the original hardware including the special-case behaviour."

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 23 май 2008, 07:41
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Врет. Все там в пределах нормы. Просто CPU+APU+DMA работают на таймингах NTSC60, а PPU на таймингах PAL. Но! Есть одно но. Общий кварц у денди 26.60МГц, в то время как у NTSC он отличается. Поэтому, режим денди, это: PAL PPU + NTSC CPU+APU+DMA но на задающей частоте PAL. Касаемо звука: отличие задающих частот не большое (в пределах 1%-5%) , поэтому изменение тона не сильно заметно, но оно есть - я заметил на капельной консоли, имеющей джампер PAL/NTSC). Напиши ему это.

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 23 май 2008, 22:17
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
HardWareMan, напишу. Но я кое-что не понял. 26.60 Мгц это задающая частота PAL или чисто специфичная величина только для "Денди"?
Тон у NTSC и PAL отличается на слух, причем заметно. В данный момент тон нестопии (clone, замедленный NTSC) абсолютно идентичен дендям, как капельным, так и старым микросхемным.

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 24 май 2008, 08:24
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Flamer писал(а):
HardWareMan, напишу. Но я кое-что не понял. 26.60 Мгц это задающая частота PAL или чисто специфичная величина только для "Денди"?

Да, это частота PAL. Так как потом, эта частота делится до частоты несущей: 26.601712МГц:6=4.4336МГц. А вот частота NTSC получается другая: 3.579545МГц, поэтому и кварц должен быть 21.47727МГц:6=3.579545МГц. Чуствуешь разницу? Кстати, изменение получается заметное.
Далее. У NTSC процессор работает на частоте: 21.47727МГц:12=1.789772МГц, а у PAL: 26.601712МГц:16=1.662607МГц. Получается, у клона должна быть пропорционально увеличена частота. Правда, по расчетам должно быть примерно так: 26.601712МГц:12=2.216809МГц, но это что-то быстровато как-то. Ээх, как бы измерить производительность проца в денди? Например, сделать круговую прогу из 3 команд дергания лапкой порта и измерить частоту на лапке....
Комментарий Санча будет уместен. Он как-то пытался в своем моде FCEU поправить DPCM для "Денди" режима (точнее, он изучал тогда PAL изучал, и думал что моя приставка честная PAL).

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 230 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB