LINUX.ORG.RU
решено ФорумTalks

Почему на приставках(Sega и NES) в PAL и NTSC разная скорость?

 , ,


0

1

Сабж. Гуглинг привел только к списку консолей, и на каких регион влияет на скорость игр. Но почему скорость менялась, а самое главное - почему процессор работал в разных регионах на разной частоте, я так и не понял.


25 vs 30 кадров?

eR ★★★★★
()

ПАЛ - 50Гц./черестрочная
НТСЦ - 60ГЦ/чрзстр

Разница в 5 кадров, а уже скорость - того.

Были такие мультиформатные ТВ в 90 и видмафоны,
мне даже как-то попадалась кассета чиста американская, а может мне это и приснилось... не знаю.

нтсц смотрелось намного лучше.

Deleted
()
Ответ на: комментарий от Deleted

ПАЛ - 50Гц./черестрочная
НТСЦ - 60ГЦ/чрзстр

Хм... Интересно, почему нельзя было лочить на те же 50 фпс, чтобы везде шло одинаково?

ozzee
() автор топика
Ответ на: комментарий от ozzee

На самом деле - причина достаточно простая: всё дело в играх.

Приставки первых поколений (где-то до 4-го поколения) в основном имели в своей коллекции 2D игры, которые оперировали спрайтами. Практически вся анимация была спрайтовой, а не процедурной 3D\2D как сейчас. Мало того, приставки нередко имели разные аппаратные фичи для управления спрайтами, типа масштабирования, поворота, переноса, тонирования. В те времена просто не существовало сегодняшней концепции 3D графики.

Так что всё было завязано на анимации спрайтов. Все игровые тайминги в игровой логике были построены на кадрах так или иначе. Программно «растягивать» анимации состоящие из «кадров» на разный FPS было просто нереально при тех возможностях которые давали приставки того времени.

Поэтому, всё было привязано в выходной частоте кадров, в том числе и частоты процессора\памяти приставки - чтобы игра работала просто на тупо 20% быстрее. На то время это было самым оптимальным решением, чтобы получить одинаковый геймплей без тиринга и необходимости заморачиваться с синхронизацией кадров на разных регионах и vsync'ом.

Аппаратный «VSYNC» - это дополнительное усложнение консоли, которые по тем временам были и так не самыми дешевыми устройствами. Такие вещи как тройная буферизация, тогда были совсем фантастическими - аппаратная реализация такой фичи в 8\16-битной консоли подняла-бы её цену процентов на 5-10-15-20. К тому-же даже тройная буферизация не избавляет от снижения плавности анимации при реальной частоте кадров 50 фпс на мониторе с 60 герцами. Можете сами в любом эмуляторе NES попробовать поиграть в игру с регионом PAL, сами заметите дрожание при скроллинге.

А без VSYNC'а - мы сразу получаем нехилый такой тиринг. При 20% разнице в FPS и частоте монитора - он получается очень заметным.

Так что большинство разработчиков игр особо не парилось на ту тему, что игра на NTSC консолях игралась в оригинальной скорости (в основном все игры того времени разрабатывали именно на NTSC), а на PAL консолях на 20% медленнее. Всё-равно рынок PAL консолей занимал куда меньшую долю.

Справедливости ради, находились ответственные разработчики, которые в своих играх правильно синхронизировали скорости для разных регионов. Обычно изменялась скорость музыки, и реже - скорость скроллинга фонов, так чтобы они смотрелись одинаково на разных частотах кадров. Анимация спрайтов всё-равно оставалась привязана к одинаковой частоте. Но игра хотя-бы по ощущениям игралась одинаково.

DawnCaster ★★
()
Ответ на: комментарий от Deleted

нтсц смотрелось намного лучше.

На dvd-фильмах тоже лучше смотрится. Не знаю почему, может быть, просто они качественнее делаются для США

anonymous_incognito ★★★★★
()
Ответ на: комментарий от ozzee

Само-же понятие игрового FPS и его синхронизации с выходной частотой кадров начало появляться при массовом появлении 3D графики. Где-то в начале-середине 90-х, наверное. И разумеется, уже на новых консолях.

Процедурная 3D графика там всё-равно рендерилась на скоростях ниже выходной частоты кадров, и мало того, в зависимости от сложности сцены - эта скорость сильно менялась. Тогда уже и начали задумываться - как это всё отобразить без дрожания и тиринга (обычно с тирингом никто на ранних консолях с 3D графикой не боролся, даже на консолях последних поколений в некоторых играх отключен vsync).

Там уже и принципы рендера 2D спрайтов в 3D сцене были другими, тайминги для кадров спрайта расчитывались программно, и привязывались к некому реальному таймеру а не к частоте чипа и выходному ФПС. Ресурсы тех консолей это уже позволяли. Вот именно тогда и появились первые игры, которые имели одинаковую скорость на всех регионах.

DawnCaster ★★
()
Ответ на: комментарий от anonymous_incognito

На dvd-фильмах тоже лучше смотрится

А это зависит от того, с какой частотой кадров записан исходный материал на DVD. Если 29.97 + интерлейсинг, то оно будет лучше смотреться на NTSC. Если 23 или 25 кадров - то PAL.

DVD плееры тоже разные бывают. Некоторые имеют достаточно сложные алгоритмы по «размазыванию» исходной картинки на нужную выходную частоту.

DawnCaster ★★
()

Потому что тактирование проца и схемы формирования изображения от одного кварца

lenin386 ★★★★
()
Ответ на: комментарий от ozzee

Тут самое интересное - что у нас творилось на территории ex-USSR с приставкой Dendy. У нас ведь лицензионный NES\Famicom не продавался. Вместо него был китайский клон под названием Dendy, со своими пиратскими китайскими картриджами (которые не безызвестная компания Steepler продавала как «лицензионные»). С частотами и таймингами там творился полный звездец - это был не NTSC но и не европейский PAL, хотя сама приставка выдавала картинку PAL. В самой последней версии эмулятора FCEUX пару месяцев назад даже появился отдельный регион «dendy» - для эмуляции частот и скорости «нашей» пиратской консоли, специально для ностальгирующих по тем ощущениям. (попробуйте на ней запустить chip and dale японского\американского региона (J\U), и попереключаться между опциами NTSC, PAL и DENDY, поймёте о чём я говорю)

DawnCaster ★★
()
Ответ на: комментарий от lenin386

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

DawnCaster ★★
()

скоро отпишу в тех. деталях, а то тут наукаретили и ленины опять пришли

лишь потому что ты местный дурачок то получишь нормальный, технически разжеванный и понятный даже для твоего уровня ответ про famicom (то, что в останках твоего мозга именуется как nes)

только потом обящательно дай понять, что понял ответ.

n_play
()

Синхронизация игрового мира сделана по Vsync, а он для NTSC и PAL отличается почти на 5 кадров в секунду.

andreyu ★★★★★
()
Ответ на: комментарий от DawnCaster

а не процедурной 3D\2D как сейчас.

Назовите эти полторы с половиной игры, которые используют процедурную генерацию спрайтов и/или мешей.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Как раз пытаюсь вспомнить. Толи на Sega Genesis, толи на snes я видел на ютубе видос про такую игру, которая при «оверклокинге» эмулятора в разумных пределах начинала меньше тормозить и рендерить эффекты плавнее. А так выше уже все всё написали - в большинстве игр абсолютно все процессы привязываются к частоте кадров на выходе.

DawnCaster ★★
()
Ответ на: комментарий от andreyu

А вообще, игр с процедурным векторным 3d было достаточно много на 16 битных консолях. Почти все авиасимуляторы. Некоторые подстраивали скорость игрового процесса с учетом тормозов. И общий фпс игры менялся. Mig 29 fulcrum на сеге, например

DawnCaster ★★
()
Ответ на: комментарий от andreyu

Сейчас прочитал ваш коммент еще раз. Вы хотите примеров современных игр с поцедурной генерацией мешей ? Это почти любые игры допускающие процедурные деформации объектов. Есть и процедурные генерации текстур - это тоже в каждый второй игре сейчас встречается. Конечно там не полная генерация, все равно там используется образец или несколько образцов и хитрые, а дальше шейдеры с хитрыми алгоритмами уже работают. Как пример - эффекты стекающей воды по поверхностям при дожде.

DawnCaster ★★
()
Ответ на: комментарий от andreyu

Объясните тогда, что конкретно вы подразумеваете под процедурной генерацией ?

Вообще, в оригинальном комментарии, под фразой «Практически вся анимация была спрайтовой, а не процедурной 3D\2D как сейчас», я имел ввиду процедурную АНИМАЦИЮ - а именно, использование 3D моделей (и плоских 2D мешей в «типа 2D играх»), и получение из них анимаций не по заранее заготовленным «картинкам-спрайтам» привязанным к какому-то системному таймеру (который в тех приставках привязан в итоге к одному конкретному кварцу), а через современный процедурный блендинг анимаций 3D моделей, не знаю как тут правильнее эту штуку назвать - в разных игровых движках оно немного по разному называется.

DawnCaster ★★
()
Ответ на: комментарий от andreyu

И вообще-то вполне себе процедурная. Посмотрите хотя-бы примеры таких шейдеров в официальных и неофициальных доках по Unity3d.

DawnCaster ★★
()

фамикон

настоятельно советую забори привычку употреблять nes. это всё равно топить за весомые заслуги американцев в победе в вов.

архитектура фамикона очень простая. источников «событий» (прерываний) для CPU не так уж и много. чуть меньше чем пальцев на руке у гомера симпсона. никаких программируемых таймеров и источников отсчета времени тоже нету [c оговоркой, как правило нету].

такты CPU никто не считал для игорей (чай не маководы с аппл1-2), тестировали тоже абы как.

прерываний всего аж целых 3: RESET, BRK, NMI

физически это аж целых 3 лапки процессора... если кто-то снаружи «логически» дрыгнет этими лапками, то процессор отложит все свои основные дела, и запустит обработчик случившегося прерывания.

reset - это посути самая главная точка входа. случается после запуска CPU, это самое первое что цпу выполняет.

NMI привязан к выводу PPU (picture processing unit), который дает сигнал о том, что кадр выведен на экран (vertical blanking). После этого, есть небольшой период времени, пока можно дрыгать графоном, без тиринга на экране и прочих нехороших эффектов.

на некоторый бордах (PCB) игрулей маппер [Multi-memory controllers or memory management controllers (MMC)], та штука через которую можно переключать банки памяти и маппить разные регионы рома на доступное цпу окно адрессного простраства, была доп логика, которая посути «считала» такты цпу и можно было зарядить по этому поводу таймер-счетчик, чтобы он стриггерил BRK. это пользовалось для доп-графона и анимации в более продвинутых и поздних мапперах.

с точки логической и программной точки зрения фамикон генерил цветную картинку в 256x240 квадратных пукселей, внутри PPU.

кроме того, внутри PPU был встроен енкодер в нужную систему цветности. дело в том, что NTSC и PAL имеют разное кол-во точек и строк на экране, поэтому квадратные пиксели растягивались до круглых :-) у NTSC меньше пиксели округлялись, чуть больше чем в 1.1 раза, но у PAL грубо говоря аж в 1.3 раза.

собственно, из-за этого PPU разных систем цветности имели разную частоту NMI (как минимум полу-кадров). Большинство игр использовали именно этот источник в качестве измерения игрового времени и только его. Но некоторые игрули попутно использовали допы из продвинутых мапперов.

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

а тактовая частота работы PPU определялась исключетельно требованием к частоте работы цветового энкодера для заданной системы цветности.

т.е. налицо прямая зависимость всех возможных источников отсчетов «времени» от системы цветности.

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

ибо игр завязанных на тактовую частота процессора единицы... (может с десяток максимум наберется).

фактически это значит, что если ты отцепишь CPU от тактовой частоты полученной делением тактовой частоты PPU, и запихаешь туда свой тактовый сигнал скажем в 2 раза шустрее для CPU, то 99% игр не будут работать быстрее, т.к. источник сигнала времени для них по прежнему PPU. однако, появится процессить передвижения спрайтов быстрее, поэтому на «сложных сценах», где все начинает мограть и тормозить, (т.е. случается framedrop), когда цпу неуспевает подвигать и запроцессить всё в рамках одного (полу)кадра. грубо говоря - это ситуации где много врагов и прочие. можешь на ютубе глянуть видосы, кто--то уже пробовал поднимать частоту на cpu.

но несколько игр из-за этого сломаются в прямом смысле. но чуть менее половины стерпит и ничего не заметит.

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

темп останется тот же, т.к. темп отсчитывался от NMI (PPU)

есть ещё один парадокс, т.к. размеры кадра разные у NTSC и PAL, то периоды vblank (vertical blanking) у них тоже разные. У PAL период vblank длиннее, поэтому NTSC игрули на PAL системах почти без framedrop-a работали. Это даже несмотря на то, что тактовая частота CPU у PAL систем была поменьше, чем у NTSC. Единственно, всё двигалось и звучало медленнее, т.к. источник времени как ты помнишь PPU. Однако slowdown-ов на сложных сценах не было.

если когда нибудь поиграешь в знакомые игры на оригинальной NTSC системе - то будешь разочарован, что slowdown (framedrop) случается достаточно регулярно часто. но при этом темп игры гораздо шустрее.

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

поэтому даже самая известная игруля - super mario bros. местами тормозит на сложных сценах, где много врагов и обьектов движется. (на эмуляторе оно не тормозит, т.к. цпу там не эмулируется с точностью до такта.)

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

хотя есть игры, очень навороченные, которые очень жестко завязаны на тактовую частоту именно цпу, например емнип battletoads (либо оба, либо один из них). и пал-версия рома на ntsc системе не будет работать, и наоборот. но таких игр единицы и они скорее исключения...

n_play
()
Ответ на: комментарий от DawnCaster

вдарим цпу оверклокерсвом по фреймдропам!

насчет Sega Mega Drive (SMD)

котоны даже пытались таблицку вести с играми, где оверклокинг полезен http://www.sega-16.com/forum/showthread.php?22854-Overclocking-amp-68010-Anno...

куча видосов https://www.youtube.com/watch?v=zuHkq8uvnLc

https://www.youtube.com/watch?v=GvBlba9i8EI

https://www.youtube.com/watch?v=RDKOqgHrI_w

https://www.youtube.com/watch?v=SVrElANZg2M

https://www.youtube.com/watch?v=_BfdqVEoC_Y

в кратце, полезная штука, где кучи спрайтов двигаются на сложных сценах (дрыг «координат» спрайтов же программно обсчитывался), очень помогает.

n_play
()
Ответ на: комментарий от andreyu

кто сказал virtua racing...?

процедурной генерации спрайтов... такого нету и небыло наверно. там цпу совсем детский по MIPS.

может было duke, zero tolerance и ещё несколько 3д игрух что-то там генерили, но очень уж врядли.

что такое меши?

n_play
()

Воу. Вы таки отыскали эти видосы (вообще, я особо и не напрягался). Я только для viewpoint'а вроде видел. Или для zaxxon motherbase для 32x (не помню уже, дело давно было).

Заметили, кстати, что в Flashback'е - начальный «видос» на оверклокнутой приставке проигрывается быстрее, чем на оригинальной ? Не в плане тормозов, а само видео меньше времени занимает. Как раз таки та самая проблема про которую мы тут обсуждение ведём. Хотя, думаю, при желании, разрабы могли-бы нормально всё за-синхронизировать.

DawnCaster ★★
()
Ответ на: кто сказал virtua racing...? от n_play

что такое меши?

https://ru.wikipedia.org/wiki/Полигональная_сетка

Собственно, каркас 3D модели, в концепции современной 3D графики. Именно за его создание получают баблосы 3D дизайнеры, когда ваяют свои неоптимизированные модельки, из-за чего потом простейшие 3D игры тормозят на мобилках с 8-ядерными CPU и новейшими видяшками.

DawnCaster ★★
()
Ответ на: фамикон от n_play

Хм, вроде понятно.

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

Вообще самое жестокое - именно изменение скорости музыки. Я так когда-то не мог нормально играть в Sonic & Knuckles - на какой-то сеге музыка была медленной, и играть было не то чтобы невозможно, просто неприятно.

ozzee
() автор топика
Ответ на: кто сказал virtua racing...? от n_play

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

DawnCaster ★★
()
Ответ на: комментарий от ozzee

Я так когда-то не мог нормально играть в Sonic & Knuckles

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

У нас было непонятно что. Во всяком случае, на Dendy. Sega Megadrive была примерно такая-же как в европпе, а картриджи уже пиратились с европейских версий.

DawnCaster ★★
()
Ответ на: комментарий от Deleted

Разница в 5 кадров, а уже скорость - того.

да, будто раза в 1.5-2 быстрее.

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

на NTSC такое проделывать - это уже скил нужен.

n_play
()
Ответ на: комментарий от ozzee

Вообще самое жестокое - именно изменение скорости музыки. Я так когда-то не мог нормально играть в Sonic & Knuckles - на какой-то сеге музыка была медленной, и играть было не то чтобы невозможно, просто неприятно.

вообще, сега репортила регион и систему цветности («изкоробки» так сказать, без гадания на подсчитывании тактов цпу). поэтому мультирегион ром были. и всё детектилось в рантайме, т.е. можно было наживую регионы переключать и язык в игре переключался например на японский (и т.д.), если он там был заготовлен. яркий пример bare knucles/streets of rage. Там и заставка и intro текст меняется, при перескоке региона.

а на той сеге что ты играл (откуда ты её взял?), 99.95% то скорее всего был сегаклон китайский для PAL, с регион-модом (такой мелкий переключатель на днище).

а т.к. он был PAL, но какой-то умник выставил в нём регион америка-япония (где ожидается NTSC и 60полукадров), то из-за этого игруля пошла медленее. т.к. игруля думает что система работает в таймингах для ntsc

n_play
()
Ответ на: комментарий от ozzee

master/slave знакомо?

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

нужно отдельно сказать спасибо архитектуре с общей памятью для CPU и видео. в самом тупом варианте, цпу просто не лазит в память, а простаивает и ждёт, пока видеосистема переварит кадр (привет zx spectrum с его арбитром шины)

у фамикона к счастью архитектура была более кошерная, видеопамять была отдельная для ppu, поэтому цпу мог понемногу лазить в видеопамять, когда кадр вывелся и идёт vblank. но при этом, никто никогда не мешал cpu работать со своим адрессным пространством, пока работает ppu.

n_play
()
Ответ на: комментарий от DawnCaster

а через современный процедурный блендинг анимаций 3D моделей, не знаю как тут правильнее эту штуку назвать

Это сложно назвать процедурной анимацией. Иначе с таким же успехом можно линейное (или нелинейное, не важно) движение спрайта из точки А в точку Б назвать процедурной анимацией.

andreyu ★★★★★
()

В Pal версии Mario Bros. для европейского региона скорость даже немного выше, чем на NTSC для США и Японии. Просто к сведению. К нашим пираткам не относится.

sid350 ★★★★★
()

В русской розетке 50 герц, в американской - 60 герц. На русских телевизорах 25 кадров в секунду, на американских - 30.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ozzee

Оригиналов у нас не было.

у вас где?

в своём мухосранске недалеко от дома за гаражами на помойке нашел оригинал SMD2, PAL версию (не евпропейскую). с тех пор, шаблон подзатрещал.

n_play
()
Ответ на: комментарий от n_play

у вас где?

В Казахстане.

В моем мухосранске все плохо. Хотел год назад денди купить, а нигде не оказалось. И сеги - новоделы.

ozzee
() автор топика
Ответ на: комментарий от ozzee

Хотел год назад денди купить

оно тебе действительно нужно?

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

именно со слоном и dendy, раньше 1-2-3 тыщи р в зависимости от комплекта и хорошести стоило у барыг на gbx. полазь там, вполне вероятно осталось, насчет цен - не знаю.

имхо, лучше с ебая стянуть фамикон. теже самые $30-40... а может и дешевле даже.

И сеги - новоделы.

ebay и прочие места. если пороешься, то в $30-50 за комплект уложишься (кроме БП. БП тут подбери, его слать смысла нету, он тяжелый и бесполезный)

насчет smd, бери именно model1

I really would always recommend getting the original Japanese model 1 - always with «high definition» written on top and the (R) by the SEGA logo in bottom right corner.

n_play
()
Ответ на: комментарий от n_play

А зачем вообще сейчас играть в денди и сегу MD в железе ? Эмуляторы как минимум не хуже для них. Вот для более современных приставок - там да, железные лучше.

DawnCaster ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.