Pull to refresh

Comments 13

Отлично. В своей статье я упомянул современный вариант 6502 от WDC, а в 90-е был от Hudson Soft, это уже по сути гибриды на стыке 8-16 по некоторым параметрам, так что да, битность не показатель, но я бы не стал её убирать с позиции ориентира.

Ещё очень интересный вариант - SPC700 от Sony. Он называется иначе, и по официальным мнемоникам сразу не понять, но если записать их в похожем на 6502 виде, оказывается, что это довольно крутая вариация на тему, очень похоже, но с множеством дополнительных возможностей.

SPC700 от Sony

Это же он использовался в качестве звукового процессора в SNES?

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

но на это долго намекало наличие флага полупереноса: в основе архитектуры Z80 лежало 4-битное АЛУ

Полуперенос был уже в 8080 и никаким боком к битности АЛУ не относится. Если АЛУ >4битное, то он просто выковыривается из нужного места.

Мне, как перфекционисту, жаль Мегадрайв, а вернее её память. Все адреса её процессора 32-х битные, но игры не весили больше 4-х мегабайт, поэтому в адресе всегда остаётся пустым старший неиспользуемый байт. Т.е. в памяти (и в роме) куча дыр в виде пустых байт и их не использовать.
Авторы Zero Tolerance поступили хитро - код игры относителен от адреса в одном регистре, отчего код выходит более компактным и к тому же эта проблема с неиспользуемыми старшими байтами пропадает.

Мегадрайв весь чуть-чуть недожат, в разнообразных мелочах. Например, у YM2612 есть таймеры с генерацией прерывания, у Z80 есть входы для прерываний - нужен был всего лишь один проводок, чтобы получить прерывания с программируемой частотой. Но не сделали, в результате приходится синхронизироваться исключительно по тактам. Система переключения банков Z80 в виде 9-битного последовательного регистра опять же - очень мешает делать многоканальный цифровой звук. 3 бита на RGB выход, в формате 4:4:4 с нулями в младших разрядах - были бы реальные 4 бита на канал, была бы палитра в 4096 цветов - значительно лучше 512. Вероятно Sega спешила выйти на рынок пораньше, и решила, что лучшее враг хорошего.

В погоне за битностью создатели Nintendo 64 забыли самое главное. Носителем они выбрали всё тот же картридж со смехотворным объёмом памяти. Посему игры на этой платформе были весьма ограничены, в сравнении с той же PlayStation. Примером тут может служить, например, игра Quake II. Порт на PlayStation почти столь же полон, как и оригинал на PC. Версия для Nintendo64 - игра с набором своих очень небольших уровней, без оригинальной музыки и с урезанным набором врагов.

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

...ибо в видеопамять можно было запихнуть только одну текстуру разрешением 32x32.

Оо?! Это как так? О чем думали архитекторы консоли?

Трудно сказать, что думали. Вполне возможно, что думали, что 4кб текстурного кеша хватит всем. На небольшие текстуры то его хватает. А большие разбивали на отдельные тайлы.

В принципе то при желании можно было ограничение обойти. Вон, сейчас уже даже мегатекстуру реализовали со страницами в эти самые 4 киолбайта https://www.youtube.com/watch?v=Sf036fO-ZUk.

Это вот так

The RDP relies on 4 KB of TMEM (Texture memory) as a single source to load textures. Unfortunately, in practice 4 KB happened to be insufficient for high-resolution textures. Furthermore, if mipmapping is used, the available amount of memory is then reduced to half.

Они думали вполне нормально для тех лет. Это же система эпохи до-3Dfx, её разработка началась примерно в 1993 году на основе лучших существующих технологий. Тогда по сравнению с предыдущей SNES это было огромным, невероятным прорывом, и заметно лучше, чем у конкурентов - перспективно-корректное текстурирование, фильтрация, антиаласинг, Z-буфер.

Видеопамять у N64 огромная - она общая с основной, и растеризатор (RDP) очень быстрый. Но ради скорости он сделан таким образом, что текстура должна быть загружена в его особую память, TMEM - типа текстурного кэша. И этой памяти всего 4 килобайта, и к тому же смена текстур довольно накладная, при каждой смене надо закидывать в TMEM новые данные через DMA. Можно вообще не пользоваться RDP и рисовать программно текстуры любого размера, но это будет очень медленно и печально.

В общем, это издержки переходного периода, когда ещё не было понятно, какой должна быть видеосистема консоли для 3D графики. У Saturn вообще нет нормальных полигонов, у PS1 дрожащая трясучка (но получилось самый оптимальный компромисс), у 3DO растеризатор может рисовать дырки при определённом положении вершин, и вообще работает наоборот, из пространства полигона в пространство экрана, тратя кучу филлрейта.

Sign up to leave a comment.