← На главную

Sony пошла на texture warping в PlayStation ради скорости и цены

03.06.2026 10:24 · hackernews

Sony выбрала для PlayStation процессор на базе MIPS R3000A, но не напрямую, а через LSI Logic и её программу CoreWare. Заказчик, Sony, взял блок CW33300, кастомизировал его и получил SoC на 33,87 МГц. У CPU 32-битная шина данных, 4 КБ кэша инструкций и никакого кэша данных — вместо него 1 КБ Scratchpad, отображённый фиксированным адресом. Оперативной памяти — 2 МБ на четырёх чипах EDO RAM.

Из трёх копроцессоров один — CP0 — управляет кэшем и прерываниями. Второй, CP2, он же Geometry Transformation Engine (GTE), ускоряет матричные и векторные расчёты для 3D-графики, но оперирует только fixed-point числами. Третий — Motion Decoder (MDEC), не копроцессор, а отдельный блок для декомпрессии макроблоков вроде JPEG, позволяющий стримить FMV 320×240 при 30 fps через DMA. FPU нет — Sony не поставила CP1.

Из-за архитектуры MIPS I разработчикам приходилось вручную заполнять branch delay slots холостыми инструкциями. Конвейерный процессор без блокировок — MIPS как раз и расшифровывается как Microprocessor without Interlocked Pipelined Stages — перекладывал борьбу с hazard’ами на компилятор и программиста.

Графическая часть проще, чем у Saturn. GPU — одна микросхема. Видеопамять — 1 МБ VRAM, dual-ported. GPU рисует треугольники, линии и прямоугольники через 64-байтный FIFO. Треугольники — единственный тип с текстурами. Текстурирование — affine texture mapping, без перспективной коррекции и без фильтрации, только nearest neighbour. Из затенений — flat и Gouraud shading. Управление порядком отрисовки — через ordering table, сортируемую CPU.

Главные проблемы: из-за integer-координат и отсутствия субпиксельной точности у растровщика модели дрожат и мерцают при движении — треугольники «соревнуются» за пиксели. Affine-текстуры без учёта глубины дают texture warping, особенно на крупных полигонах. Некоторые обвиняют в этом отсутствие FPU, но на самом деле дело в integer-координатах и отсутствии perspective correction. Mipmapping тоже нет.

Sony компенсировала ограничения настраиваемыми кадровыми буферами, page flipping и смешанной глубиной цвета в VRAM. Но aliasing, фликер и текстурное дрожание — визитная карточка PS1, и это результат осознанных компромиссов в угоду скорости и цене.

Читать оригинал →