+362.40
Рейтинг
1001.90
Сила
Немного еще посмотрел в то как именно работают палетризированные цвета в Saturn, ибо там сразу было видно, что дела обстоят непростым образом, но за ворохом слов было не очень понятно.
Оказалось что и с палитрами там всё очень сложно.
Во первых — при рендере текстурированного спрайта в 16-битный фреймбуфер данные о цвете его битмапа могут быть представлены непосредственно как 16-битные значения, а могут быть 4-битными слотами в 16-цветной палитре 16-битных же цветов. Но в любом случае во фреймбуфер попадает 16-битное данное у которого верхний бит контролирует является оно RGB или является цветом в палитре.
Так вот когда оно является цветом в палитре существует 8 глобально выставляемых форматов того какие биты в нём отвечают за:
а) номер цвета в палитре (до 10 бит)
б) порядок отрисовки между задними фонами (до 3-х бит)
в) номер расширенного вычисления цвета (до 3-х бит)
г) бит «тени»
Кроме того для 8-битного режима фрембуфера есть так же 8 форматов как эти же биты, но уже в урезанном количестве распределены по 8-битному данному о цвете в нём.
И там такая битовая мешанина из сотен регистров управляющих всякими этими битовыми комбинациями, что как говорится «без поллитры не разберешься».
Реально ловлю то же самое ощущение что было в похожем по духу эпохи 3DO — вся эта битово-палитрово-слоевая мехника переусложнена до жути.
Мегадрайв от той же фирмы был просто гимном лаконичности и простоты своей графической начинки — одна палитра, один палитровый режим и для спрайтов и для тайлов, но пасаран. Тут же прям им крышу сорвало на то как впихать в биты как можно большее число всяких палитр, режимов и цветов. Сомневаюсь что даже половина этих всех вещей была в реальности востребована.

А вот дальше еще на другом форуме подсказали, что была такая весьма забавная видеокарта как Diamond Edge 3D — согласно википедии первая видеокарта на пользовательском рынке ПК с аппаратным ускорением (95-ый год). Так вот это был некий синтез видео- и звуковых чипов из Sega Saturn в виде платы для IBM PC. И вот тут всё стало совсем интересно, ведь Diamond Edge 3D в сердце своём содержит чип NV1 который разработала, да, nVidia.
Похоже, что это был одна из первых попыток этой фирмы продвигать 3Д в массы.
В статье про Sega Saturn этому посвящена всего одна строчка (мой перевод):
Шеффилд сказал, что использование Сатурном четырёхугольников подорвало поддержку системы третьими сторонами, но поскольку «nVidia вложилась в четырёхугольники» в то же время есть «отдалённая возможность», что они смогут «стать стандартом вместо треугольников», если каким то образом, магически, Сатурн стал бы самой популярной консолью той эпохи".
И удивительно, но в русском википедии есть гораздо больше интересной информации, чем в английской: ru.wikipedia.org/wiki/NV1
Использование квадратичных поверхностей было элегантным и абсолютно новым решением в 3D-мире. Хотя теория была придумана давно, в железе такого до этого никто не делал. Главная идея заключалась в том, что в 1995 году реализовать операцию деления 1/z в железе была невероятно сложно и дорого, и в результате этого имплементировать перспективную проекцию было очень трудно. Классический подход, заключавшийся в линейной аппроксимации гиперболической функции, имел свою проблему аппроксимации в окрестности нуля и требовал сложного программного обеспечения. Квадратичная теория, использованная в NV1, аппроксимировала функцию 1/z параболической интерполяцией и такая интерполяция по качеству превосходила кусочно-линейную, которая была использована в решениях конкурентов.

Попытка исследовательской группы NVIDIA портировать квадратичную технологию на API Microsoft провалилась. Попытка выполнить наложения текстуры и операцию clipping приводило к уравнениям 5 степени невычислимыми в радикалах. Хотя демонстрационные примеры с квадратичными поверхностями выглядели довольно неплохо, работа с ними оказалась чрезвычайно трудной.

Дальнейшая разработка NV1 под новым названием — NV2 была остановлена, NV1 производство было свернуто. В 1996 году Nvidia начала разработку классического акселератора.
Хех, оказывается за этими квадратностями стояла никто иная, как сама nVidia и это был её первый блин комом.
  • avatar aa-dav
  • 0
Вообще там если анализировать — карты все были хорошо подстроены под эту одну только центральную точку — платформы все были очень широкими как на скриншоте и узких вертикальных мест куда бы можно было упасть просто не было. Причём были места похожие на то такие как массив из переплетённых труб под конец третьего уровня, но там всё было обложено минами, прямо таки заставляло расстреливать всё заранее и мелкие подобные косяки просто терялись еще на фоне того, что квадратики-платформы сплетающие трубы были проницаемые во всех направлениях кроме сверху-вниз, что опять таки приводило к замыливанию реальности коллизий, т.к. трубы просто воспринимались частично как задний план на который и не грех немного залезть. В общем один из тех примеров когда оглядываясь понимаешь как программные решения диктовали look&feel.
  • avatar aa-dav
  • 2
Ремейк я делать расхотел по копирайтским причинам, но возможно буду пилить самостоятельного клона без копирайтных материалов. Сплюнуть только через плечо надо. :)
Перенёс движок который накопился под GBA на SDL2 и винду/андроид и даже немного своих спрайтов нарисовал уже (человечек тут «сломанный»):

но пока только намётки. зато эксплуатируя материалы по автоматическому портированию карт из тайловых игр под свой движок чисто в рамках прикола добавил параллакс в третий уровень контры форс:
youtu.be/RBe5IZUlYnE
но это так, просто эксперименты, полноценный порт делать не вижу смысла.
  • avatar aa-dav
  • 4
Ковырялся когда над клоном Contra Force заметил одну забавную штуку — коллизии с полом в этой игре проверялись только по одной центральной точке. Заметить это можно было следующим образом:

Забавно, но заметить такую казалось бы вопиющую глючность было на самом деле практически невозможно — когда игрок двигается вперед с обрыва, то он почти наверняка скрадывает это упрощение продвинувшись вперёд. Чтобы встать так как изображено на скриншоте нужно подходить к делу осознанно. Кроме того когда я воспроизвёл это упрощение у себя, то понял что оно кроме всего прочего резко упрощает движение по наклонным полам, что тоже было в оригинальной игре — когда пол наклонный, то с этими B-D надо тоже напрягать мозг, но с одной точкой всё получается довольно просто.
  • avatar aa-dav
  • 1
«Одна из самых навороченных игр для NES»

Побежал играть. :)
  • avatar aa-dav
  • 1
вот не играл в эту игру!
вообще «имплантировать» огромного босса прямо в уровень — это был хайтек.
тут явно то же самое, но ей богу не играл в эту игру в детстве.
  • avatar aa-dav
  • 0
А всё таки — кто-нибудь знает какой нибудь форум или что где с кем нибудь из Sanchez crew можно пообщаться? Сколько ни гуглю, но как то обрываются все упоминания на просто лейбле. И даже по ФИО участников не ищется толком ничего.
  • avatar aa-dav
  • 0
«хотя cc65 очень ругают за 'плохой код' все, кому не лень»

Включая меня. :) Вот тут: gamedev.ru/flame/forum/?id=231791&page=6&m=4645435#m85 я немного хапнул о нём впечатлений рассматривая асмовыхлоп. Причём чуть дальше я его сравнивал с 8-битным компилятором на спектруме Hisoft-C и пришёл к выводу, что cc65 даже хуже по качеству асмовыхлопа, хотя hisoft-c сам работал на машине для которой и компилировал и был замкнут в своих ~20Кб кода. Хотя Hisoft C тоже в лучшем случае это просадка раз в десять, но одно только наличие аппаратного стека нормального с относительной адресацией уже хлеб.

«у неё просто какие-то компилятор-диверсант и компилятор-ниндзя»

xD
  • avatar aa-dav
  • 0
P.S.
Вообще сама мысль, что какой нибудь Donkey Kong мог быть единственной игрой на картридже для меня в детстве звучала бы кощунственно. xD
  • avatar aa-dav
  • 2
P.S.

Кстати, забавно, покопал немного еще в этом направлении и подсказали сайт с фотографиями оголённых плат картриджей для Famicom/NES: bootgod.dyndns.org:7777/
Там можно наглядно убедится, что игры первой волны действительно представляли из себя просто две микросхемы ПЗУ напрямую разведенные дорожками на шины консоли.
Например японский картридж игры первого поколения — Pac-Man выглядел так:


Ни резистора ни конденсатора лишнего — всё что есть это микросхема ПЗУ в 16Кб с кодом/данными (PRG) разведенная на левую сторону контактов (адресное пространство ЦП) и ПЗУ в 8Кб с тайлами (CHR) разведенная на правую сторону контактов (адресное пространство видеочипа). Логично, но интересно было в этом убедится, ибо я в России таких картриджей даже шанса не имел увидеть, игры первого поколения дошли до меня уже только на многоигровках где мапперы не могли не быть.
  • avatar aa-dav
  • 0
Да, годно получилось! Игра заиграла новыми красками под стать 64 слотам мегадрайвовской палитры в 512 цветов.
SGDX заинтересовал, совсем чуть-чуть поковырялся — ех, было бы время всё это изучать подробно… GCC современный наверное неплохой код должен генерировать для m86k так что по сравнению с асмом не должно быть десятикратных падений производительности как у 8-биток. С другой стороны всегда можно и инлайн-асм заюзать (и не обязательно инлайн собственно).
  • avatar aa-dav
  • 0
Спасибо за информацию!
  • avatar aa-dav
  • 1
О, я сперва подумал что это какая то сторонняя платформа, но теперь обратил внимание, что кроме игр Sanchez crew там и нет ничего. Забавно…
  • avatar aa-dav
  • 1
P.S.

И еще хотел тут на всякий случай спросить — может кто знает, а может и кто из самого Sanchez crew тут есть — контакты этих ребят, хотел бы на пиво символически поблагодарить, но чтобы меньше процентов ушло на переводы всякие по площадкам как можно более напрямую. А то я в этих кругах вообще же не вращаюсь.
  • avatar aa-dav
  • 3
Заснял даже прохождение: youtu.be/iuWp1W0oHzY
Абсолютно чумовая вещь!
Если бы такое вышло в эпоху расцвета спектрума это был бы однозначно хит продаж и вызвал бы тонны зависти и последователей самого подхода.
Очень радует, что следующий (уже не сомневаюсь что) хит будет исполнен по такому же принципу графики и геймплея.
Одно даже только то, что помимо четырёх направлений есть 3 кнопки действия которыми всеми надо пользоваться — это для спектрума весьма свежо.
Ну что сказать — просто супер! И ни разу не хардкор, как я люблю.
Игра удивительно попала прямо во все мои слабости: экшен, платформер, чужие, отсутствие лютого хардкора, плавное и отзывчивое управление, вариативный (для платформы) геймплей — всё просто на высоте! Вот 10 из 10 для своей платформы!
  • avatar aa-dav
  • 0
Ааа, точно. Тогда тем более.
  • avatar aa-dav
  • 0
Посмотрел вики — на Enterprise тоже было 32Кб ПЗУ, так что мощный бейсик тоже вполне объясним. Кроме того там paging памяти был сразу сделан с заделом на будущее и был более рациональным.
  • avatar aa-dav
  • 0
Тут дело наверное даже не в инерции, а в том, что такие ПК всегда целились на рынок школьных компьютеров, ведь тот же самый BBC Micro из статьи выиграл конкурс на то, чтобы стать общеобразовательным компьютером в Англии. Поэтому имидж бейсика как образовательного языка для начала обучения очень твёрдо закрепил его на пьедестале стараниями Microsoft. Для меня вот было открытием, что изначально бейсик был разработан как компилируемый язык.
  • avatar aa-dav
  • 0
P.S.
А, перечитал еще раз начало и дошло.
  • avatar aa-dav
  • 0
Мультиколор тут подразумевает, что на C64 они как раз выходят за рамки 4 цвета на знакоместо или что?
Для самого C64 клешинг конечно не был такой проблемой, т.к. были и аппаратные спрайты и даже наполовину аппаратный скроллинг, так что это вам не спектрум, конечно, чтобы оно лезло в глаза в почти любой игре.