Это вторая статья из серии «3D-карты конца 90-х, на которых работал Quake». В первой части мы рассмотрели Rendition Verite 1000 конца 1996 года и специальный порт игры для неё под названием vQuake. Rendition удалось победить всех на рынке Quake. На короткий промежуток времени она оставалась единственной платой, способной запускать блокбастер id Software с аппаратным ускорением.
Но всё изменилось в январе 1997 года, когда id Software выпустила новую версию Quake под названием GLQuake. Так как порт был создан с помощью miniGL (подмножества стандарта OpenGL 1.1), любой производитель аппаратных ускорителей мог написать драйвера miniGL и принять участие в гонке 3D-карт. С этого момента возможность конкуренции была открыта каждому. Цель заключалась в генерации как можно большего количества кадров в секунду. Наградой была слава и деньги покупателей. Вкратце изучив историю, можно понять, что два авторитета того времени без сомнений считали царями горы двух производителей.
Пока что в этом нет никаких сомнений: миром Quake правит Voodoo. А так как Quake правит миром игр, то покупка 3Dfx Voodoo почти неизбежна для геймеров.
— Tom's Hardware, 30 ноября 1997 года
3DFX Voodoo 1
— Эталон, по которому меряются все остальные карты.
— Файл .plan Джона Кармака. 12 февраля 1998 года[2]
Только взглянув на спецификации[3], в которых заявлялось о скорости заполнения в 50 мегапикселей/с, я сразу же захотел изучить эту карту и понять, что же сделала 3dfx, чтобы создать настолько мощный продукт.
3dfx Interactive
Росс Смит, Скотт Селлерс и Гари Таролли познакомились, когда вместе работали в SGI[4]. Поработав немного в Pellucid, где они пытались продавать платы IrisVision для PC (в 1994 году такие платы стоили по 4000 долларов за штуку), коллеги основали собственную компанию при поддержке компании Горди Кэмпбелла TechFarm. 3dfx Interactive, головной офис которой находился в Сан-Хосе (Калифорния), была основана в 1994 году.
Изначально компания намеревалась создавать мощные аппаратные системы для аркадных автоматов, но изменила свой курс, занявшись разработкой плат для PC. На то было три причины.
- Достаточно низкая цена ОЗУ.
- Начиная с FastPage RAM, а затем и EDO RAM, задержки в ОЗУ снизились на 30%. Теперь память могла работать с частотой до 50 МГц.
- Игры в 3D (или в псевдо-3D) становились всё более и более популярными. Успех таких игр, как DOOM, Descent и Wing Commander III показал, что скоро должен возникнуть рынок для 3D-ускорителей.
Основатели компании поняли, что им нужно создать нечто мощное, предназначенное для игр и с розничной ценой в пределах 300-400 долларов. В 1996 году компания объявила о создании архитектуры SST1 (названной в честь основателей — Sellers-Smith-Tarolli-1), которую вскоре лицензировали несколько OEM, такие как Diamond, Canopus, Innovision и ColorMAX. Для их творения придумали маркетинговое название «Voodoo1», подчёркивающее его волшебную производительность.
Как и в случае с V1000, при создании карт производители могли менять только выбранный тип ОЗУ (EDO или DRAM), цвет плат и физическое расположение чипов. Почти всё остальное было стандартизировано.
Diamond Monster 3D, изображение взято с vgamuseum.info.
Canopus Pure3D, изображение взято с vgamuseum.info.
BIOSTAR Venus 3D, изображение взято с vgamuseum.info.
ORCHID Righteous 3D, изображение взято с vgamuseum.info.
При взгляде на плату SST1 поражало то, насколько она отличается от своих конкурентов — Rendition Verite 1000 и NVidia NV1.
Во-первых, 3dfx сделала смелый шаг, отказавшись от поддержки 2D-рендеринга. У Voodoo1 было два VGA-порта, один использовался как выход, а другой — как вход. Карта разрабатывалась как дополнение, она брала в качестве входных данных выходные из двухмерной VGA-карты, уже установленной в компьютере. Когда пользователь работал с операционной системой (DOS или Windows), то Voodoo1 просто перенаправляла сигнал со своего VGA-входа на VGA-выход. При переключении в 3D-режим Voodoo1 брала контроль над VGA-выходом и игнорировала сигнал со своего VGA-входа. У некоторых плат был механический переключатель, производивший щелчок при переключении между режимами 2D и 3D. Такое решение означало, что карту можно использовать только для полноэкранного рендеринга, «оконного» режима не было.
Вторым примечательным аспектом SST1 было то, что она была сделана не из одного ЦП, а из двух непрограммируемых ASIC (Application-Specific Integrated Circuit, интегральных схем специального назначения). Если пройти по дорожкам шин, то можно увидеть, что у каждого из чипов, помеченных как «TMU» и «FBI», есть собственная ОЗУ. На карте с памятью 4 мебибайта ОЗУ было разделено поровну: 2 мебибайта TMU для хранения текстур и 2 мебибайта FBI для хранения буфера цветов и z-буфера, при этом значения хранились соответственно как 16-битные RGBA и 16-битные integer/half-float. Карта с памятью 4 мебибайта поддерживала разрешение до 640x480 (2 буфера цветов (640x480x2) для двойной буферизации + 1 буфер глубин (640x480x2) = 1 843 200). Более поздние модели с 4 мебибайтами ОЗУ FBI позволяли использовать разрешение до 800x600 (2x800x600x2 + 800x600x2 = 2 880 000).
Конвейер рендеринга SST1
Конвейер в спецификациях подробно не описан. Согласно моей интерпретации, жизнь треугольника состояла из пяти этапов.
- Треугольник создаётся и преобразуется в основном процессоре компьютера (обычно Pentium). Такие операции включают в себя умножение на матрицу пространства модели/проецирования, усечение, повершинное перспективное деление, отсечение однородных координат и преобразования поля видимости. В конце этого процесса остаются только видимые треугольники пространства экрана (из-за отсечения один треугольник может оказаться двумя).
- Командой triangleCMD треугольники передаются по шине PCI в интерфейс буфера кадров (Frame Buffer Interface, FBI). Они преобразуются в запросы растровых строк, создаваемые Texture Mapping Unit. Для каждого элемента растровой строки (называемого фрагментом) TMU выполняет до четырёх запросов поиска на пиксель, если разработчику требуется билинейная фильтрация. Пофрагментное перспективное деление тоже выполняется в TMU.
- TMU отправляет фрагменты в FBI в виде текстурированного 16-битного значения цвета RGBA + 16-битного z-значения.
- FBI выполняет тесты фрагментов в z-буфере, сравнивая их с выделенной ОЗУ. хранящей значения RGBA и z-значения буфера кадра.
- Наконец, к фрагменту применяется освещение на основании его атрибута цвета и поиска в таблице тумана из 64 элементов. Если требуется смешение, то FBI комбинирует получаемый фрагмент с тем, что уже находится в буфере цвета.
Интересный факт: если вы любитель 3D, то, вероятно, знаете о коде быстрого обратного квадратного корня, получившем известность благодаря исходному коду Quake 3:
float Q_rsqrt(float number) {
long i;
float x2, y;
const float threehalfs = 1.5f;
x2 = number * 0.5f;
y = number;
i = * (long*) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
return y;
}
В поисках [5] первоисточника Q_rsqrt Rys for Software связался c Гари Таролли, который сообщил, что использовал этот код, ещё работая в SGI. Так что справедливо будет предположить, что он применялся и в конвейере SST1.
Что-то не совпадает
Познакомившись с конвейером и зная, что каждый компонент (TMU, FBI, EDO RAM) работает с частотой 50 МГц, мы можем понять, что в расчётах есть какая-то ошибка и карта не может достичь скорости в 50 мегапикселей/с. Здесь нужно было решить две проблемы.
Во-первых, устройство TMU должно было считывать четыре тексела для выполнения билинейной фильтрации текстур. Это означает, что необходимы четыре цикла обращения к ОЗУ, что привело бы к нехватке данных для TMU и скорости заполнения 50/4 = 12,5 мегапикселя/с.
Есть и другое узкое место на уровне FBI. Если включена проверка z-буфера, то перед записью или отбрасыванием входящее z-значение фрагмента должно сравниваться с тем, что уже находится в z-буфере. Если проверка прошла успешно, то значение нужно записать. Это две операции с ОЗУ, которые привели к снижению скорости заполнения вдвое: 50/2= 25 мегапикселей/с.
Четырёхстороннее чередование TMU
Решение проблемы четырёх сэмплов на этапе TMU упомянуто в спецификации SST1.
В пути данных памяти текстур реализовано полное чередование, что позволяет отдельному банку выполнять доступ к данным вне зависимости от адреса, использованного для доступа к данным в других банках.
— Спецификация SST1
В ней не указано, используется ли в шине мультиплексирование адресов, или общие шины данных и адресов. Проще разобраться, если нарисовать их без мультиплексирования и без разделения.
Вне зависимости от подробностей, архитектура TMU позволяла за такт получать 4 x 16-битных текселов. Если входные данные поступают с правильной частотой, то TMU может выполнять пофрагментное деление на w, а затем генерировать z-значение фрагмента (16-битное) и цвет фрагмента (16-битный), которые передавались в FBI.
Двухстороннее чередование FBI
Решение проблемы двух операций доступа к ОЗУ на этапе FBI тоже не описано в спецификации. Однако в документе упоминается скорость заполнения 100 мегапикселей/с, достигаемая с помощью glClear благодаря возможности записывать два пикселя за такт, и это даёт нам понять, что здесь использовалось двухстороннее чередование.
FBI читал и записывал по два пикселя за раз (2 x 1 пикселя, состоящих из 16-битного цвета и 16-битный z = 64 бита). Для этого 21-битный адрес генерирует два 20-битных, в которых наименее значимый бит отбрасывается для чтения/записи двух идущих по порядку пикселей. Так как алгоритм растровых линий, необходимый для записи/чтения в горизонтальных линиях, двигается слева направо, чтение двух порядковых пикселей за раз срабатывало очень хорошо.
64-битная шина TMU->FBI
Последний фрагмент головоломки — это 64-битная шина FBI-TMU. О ней в спецификации практически ничего не написано, но в её поведении можно разобраться по тем данным, которые потребляет FBI. Так как FBI обрабатывает по два пикселя за раз, разумно предположить, что TMU не отправляет текселы как можно быстрее, а объединяет их по два как два 16-битных цвета + 16-битное z-значение.
Программирование Voodoo1
На самом низком уровне программирование Voodoo1 выполнялось с помощью регистров с отображением в памяти. API состоит из удивительно малого количества команд, их всего пять: TRIANGLECMD (с фиксированной запятой), FTRIANGLECMD (с плавающей запятой), NOPCMD (no-op), FASTFILLCMD (очистка буфера) и SWAPBUFFERCMD, связанная с загрузкой регистров данных для настройки смешения, z-теста, загрузки цветов тумана и многого другого. Загрузка текстур во VRAM выполнялась через 8 мебибайт write-only ОЗУ PCI с отображением в память.
(Настоящее) программирование Voodoo1
Разработчики программировали Voodoo1 через Glide API[6]. Логика дизайна API была вдохновлена IRIS GL/OpenGL, в нём использовался конечный автомат и префиксы для всего (только вместо «gl» применялся «gr», и программистам нужно было управлять VRAM, как это сейчас делается в Vulkan.)
#include <glide.h>
void main( void ) {
GrHwConfiguration hwconfig;
grGlideInit(void);
grSstSelect( 0 );
grSstQueryHardware(&hwconfig);
grSstSelect(0);
grSstWinOpen(null, GR_RESOLUTION_640x480, GR_REFRESH_60HZ,
GR_COLORFORMAT_RGBA, GR_ORIGIN_LOWER_LEFT, 2, 0);
grBufferClear(0, 0, 0);
GrVertex A, B, C;
... // Init A, B, and C.
guColorCombineFunction( GR_COLORCOMBINE_ITRGB );
grDrawTriangle(&A, &B, &C);
grBufferSwap( 1 );
grGlideShutdown();
}
«Стандарт» MiniGL
Хоть MiniGL и был подмножеством стандарта OpenGL 1.1, для него никогда не выпускали спецификацию. MiniGL был «только теми функциями, что использует Quake». Запустив objdump для двоичного файла quake.exe, легко построить «официальный» список.
$ objdump -p glquake.exe | grep " gl" glAlphaFunc glDepthMask glLoadIdentity glShadeModel glBegin glDepthRange glLoadMatrixf glTexCoord2f glBlendFunc glDisable glMatrixMode glTexEnvf glClear glDrawBuffer glOrtho glTexImage2D glClearColor glEnable glPolygonMode glTexParameterf glColor3f glEnd glPopMatrix glTexSubImage2D glColor3ubv glFinish glPushMatrix glTranslatef glColor4f glFrustum glReadBuffer glVertex2f glColor4fv glGetFloatv glReadPixels glVertex3f glCullFace glGetString glRotatef glVertex3fv glDepthFunc glHint glScalef glViewport
Если вы начинали учить OpenGL недавно, то вас должны заинтриговать такие названия функций, как glColor3f, glTexCoord2f, glVertex3f, glTranslatef, glBegin и glEnd. Они использовались для режима под названием «Immediate mode», в котором координата вершины, координата текстуры, манипуляции с матрицами и цвет указывались одним вызовом функции за раз.
Вот как «в те времена» отрисовывался один текстурированный и затенённый по Гуро треугольник.
void Render {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glBindTexture(GL_TEXTURE_2D, 1); // Assume a texture was loaded in textureId=1
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.0f,-0.25f,0.0f);
glColor3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.5f,-0.25f,0.0f);
glColor3f(0.5f, 0.5f, 0.5f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.75f,0.25f,0.0f);
glEnd();
GLQuake
Теоретический максимум скорости заполнения в 50 мегапикселей/с должен был обеспечивать почти 50 кадров в секунду в разрешении 640x480. Однако поскольку Quake комбинировал по два слоя текстур на поверхность (одну для цвета, другую для карты освещения), карте SST1 приходилось отрисовывать каждый кадр дважды с дополнительным смешением во втором проходе. В результате на P166Mhz Quake работал со скоростью 26 fps.
Снизив на той же машине разрешение до 512x384, можно было добиться плавных 41 fps[7], которых в то время не мог обеспечить ни один конкурент.
Программный рендеринг
GLQUAKE VOODOO1
Интересный факт: SST1 была не для всех. Некоторым людям нравились пиксели и они находили билинейную фильтрацию «размытой». Других раздражала потеря гамма-коррекции.
Glquake выглядит отстойно. Думаю, кто-то может с этим поспорить, но давайте признаемся — он выглядит ужасно, особенно на картах NVidia. На платах 3dfx всё не так плохо… но цвета всё равно размыты. На TNT2 картинка отвратительна; она слишком тёмная и мрачная.
— @Frib, Unofficial Glquake & QW Guide[8]
3fdx Voodoo2
Если бы я сказал, что 3dfx правила на рынке с 1996 до 1998 года, то это было бы преуменьшением. После SST1 технология Voodoo2 подняла планку производительности ещё выше благодаря 100-мегагерцовой EDO RAM, ASIC с частотой 90 МГц, и не одним, а двумя TMU, позволяющими отрисовывать многотекстурный кадр Quake (цвет + освещение) за один проход[9]. Эта технология была настоящим монстром, и даже сами графические карты выглядели роскошно.
Скорость заполнения в Voodoo2 почти удвоилась, достигнув 90 мегапикселей/с. Бенчмарки Quake взлетели до потрясающих 80 fps на Pentium II 266 MMX (по сравнению с 56 fps с Voodoo1), по сути, дойдя до пределов игровой логики и возможностей мониторов.
Super Voodoo 2 12MB, изображение взято с vgamuseum.info.
К сожалению, после выпуска в 1999 году Voodoo3 история 3dfx совершила резкий поворот. Она начала стремиться к разработке собственных универсальных карт и прекратила продавать OEM свои технологии, столкнувшись с нарастающей конкуренцией.
Этот переход завершился не так, как ожидалось, и производительность Voodoo3 разочаровывала по сравнению с GeForce 256 компании NVidia, способной обеспечивать аппаратную тесселяцию и освещение (эту часть в конвейере выполнял Pentium).
В качестве ответа NVidia компания 3dfx отменила разработку Voodoo4, чтобы приступить к созданию Voodoo5 с технологией VSA-100 (Voodoo Scalable Architecture). Результат оказался неожиданным: после выхода «Napalm» (кодовое имя карты) она столкнулась с более мощными картами NVidia GeForce 2 и ATI Radeon. В конце концов 28 марта 2000 года 3dfx заявила о своём банкротстве и была куплена NVidia.
Для тех, кто жил в конце 90-х и имел удовольствие играть на Voodoo1 или Voodoo2, 3dfx остаётся знаковой компанией, символизирующей превосходство. Она стала одой заслуженному успеху, достигнутому благодаря смелости, выдающемуся таланту и упорной работе. Спасибо, вам, ребята!
Справочные материалы
[1] Источник: The story of the Rendition Verite 1000
[2] Источник: John Carmack .plan. Feb 12, 1998
[3] Источник: SST-1, HIGH PERFORMANCE GRAPHICS ENGINE FOR 3D GAME ACCELERATION
[4] Источник: 3dfx Oral History Panel
[5] Источник: Origin of Quake3's Fast InvSqrt()
[6] Источник: Glide Programming Guide
[7] Источник: Comparison of Frame-rates in GLQuake Using Voodoo & Voodoo 2 3D Cards
[8] Источник: Frib, Unofficial Glquake & QW Guide
[9] Источник: VOODOO2 GRAPHICS HIGH PERFORMANCE GRAPHICS ENGINE FOR 3D GAME ACCELERATION
Комментарии (79)
ElvenSailor
05.04.2019 18:34+5шутка тех годов:
2 админа выходят на улицу покурить, глаза красные-красные. Один другому: " Посмотри, какая красота!" Второй: «ага, снежок лежит, фонари светят… и без всякого #%$#^$-го OpenGL'а! „
olegshutov
05.04.2019 19:16Да, раньше на коробках для рекламы писали именно fillrate — скорость заполнения экрана в мегапикселах в секунду. Сейчас нафиг никому такое не интересно
rkfg
06.04.2019 12:54Ну, с популяризацией всяких 4k мониторов вполне может снова стать интересно. В тестах падение FPS с ростом разрешения становится заметно.
Aberro
06.04.2019 13:13Ну а кому будет интересна неинформативная характеристика, полностью зависимая от особенностей использования? Ведь скорость заполнения экрана сейчас зависит от применяемых эффектов, сложности шейдеров, количества их параллельных блоков и от особенностей работы графического движка, в особенности его способности грамотно работать с синхронизацией.
olegshutov
06.04.2019 14:12+1Да это просто прикольный исторический момент, непонятный современному поколению. Например, раньше жевачка постепенно растворялась по мере жевания и потом распадалась на куски. И цена на нее была распечатана прямо на самой обертке как часть дизайна оформления. Прикольно? прикольно
Igor_O
08.04.2019 02:11Wrigley и Stimorol — не рападались почти никогда. Trident — бывало. Был еще какой-то бренд — он распадался примерно всегда. Не помню, кто там тогда был со вкусом черной смородины, мало того, что очень противный вкус, так еще и распадаться начинал минут через 15-20… Были еще всякие бубль-гумы, которые привозились после командировок в ЗГВ. Эти не распадались. Их, бывало, неделями жевали…
Zalechi
08.04.2019 20:41Наверно про советские жвачки шла речь. А так то да, жовку в холодильник, поел прополоскал рот и снова жевать. Так да пару дней чавкали)
Igor_O
09.04.2019 00:08Наверно про советские жвачки шла речь
Для «советских» — покупали очень неплохой gum base у кого-то из крупных производителей. Проблема была больше со вкусом и с хранением на каких-то складах годами перед попаданием в продажу. А живучесть (по крайней мере у тех вариантов, которые встречал я) была как у военной техники — с трехкратным запасом.
ElvenSailor
08.04.2019 11:14Не то чтобы совсем уж «никому», просто раньше:
1 рынок комплектухи был реально больше, и более ориентирован на гиков;
2 при тех частотах нужно было изворачиваться для достижения большого филлрейта, в том числе как здесь.
А сейчас видюшки
1 берут «штоб танки не тормозили»;
2 с GDDR 5-6 филлрейт уходит в космос даже в средне-нижнем ценовом диапазоне, т.е. он по умолчанию не является «бутылочным горлышком» (исключения — монструозные конфигурации из 2-3 4к мониторов у отбитых авиасимщиков и им подобных). Не повод для гордости.
pda0
05.04.2019 20:26+1Некоторым людям нравились пиксели и они находили билинейную фильтрацию «размытой».
Читал, что проблемы glQuake были в том числе и в том, что движок и игра в первую очередь разрабатывалась для программного рендеринга. Текстуры там были не кратны степени двойки, т.е. размывались ещё на этапе загрузки, а потом билинейная фильтрация мылила картинку ещё сильнее.mistergrim
07.04.2019 17:36Что интересно, в Quake II та же проблема, хотя он разрабатывался уже изначально с учётом ускорителей.
pda0
07.04.2019 19:34Ну, ничего удивительного, если учесть, что и на момент выходя Q2, 3D-ускорители были далеко не обязательным компонентом компа.
Igor_O
08.04.2019 02:17В те времена ускорители брали другим. На мыльность текстур никто тогда не смотрел. Там уже сам факт, что можно в 640х480 играть — уже было очень круто. А еще, помню, как мне знакомый, первым купивший даймонд-чего-то-там, показывал, как на программном рендеринге в Квэйке арки состоят из прямых сегментов, а та же арка при включенном ускорителе — идеально круглая! Вот это — это было реально нереально круто!
aik
08.04.2019 10:23арка при включенном ускорителе — идеально круглая
Чего не было — того не было.
Если при софтверном рендеринге колёса у вас были квадратные, то с ускорением они становились восьмиугольные, но не более. :)
daggert
05.04.2019 22:11-1Карта разрабатывалась как дополнение, она брала в качестве входных данных выходные из двухмерной VGA-карты, уже установленной в компьютере.
А может кто объяснить доступными для… ну назовем это существо гуманитарием… языком?
VBKesha
05.04.2019 22:59+7Это был чисто 3D ускоритель и 2D рисовать не мог. Поэтому она ставилась как дополнение к обычной 2D карте. А дальше хитро соеденялась, из 2D карты провод шел в 3dfx, а уже к нему подключался монитор. Вот так
PS. Такие были времена…daggert
06.04.2019 00:11+1Вы немного не так поняли: у меня есть вуда которой я пользуюсь. Я не понимаю как видео идущее через выход VGA обрабатывалось вудой
amphasis
06.04.2019 00:15+1Видео никак не обрабатывалось. Когда 3D ускоритель работал в пассивном режиме видеосигнал с обычной видеокарты без какой-либо обработки шел на монитор. Как только включалось 3D ускорение, сигнал на монитор начинал идти уже с ускорителя, при этом сигнал с обычной видеокарты терялся.
aik
06.04.2019 03:32+1Никак не обрабатывалось, просто пропускалось. Но с некоторым ухудшением качества.
Потому любители хорошей картинки нередко имели монитор с двумя входами, где на один была подключена видеокарта, на второй — ускоритель. Ну и при запуске игрушек переключали входы.
ToSHiC
05.04.2019 23:46В комплекте с 3dfx шёл «хвостик», который соединял vga порт родной видеокарты с 3dfx, а монитор уже в 3dfx подключался. Если, например, поставить в винде разрешение 800х600 и запустить игру с 3dfx и разрешением 640х480, а потом сделать скриншот — то на нём будет только чёрный квадрат в левом верхнем углу, а на мониторе в полный экран будет отображаться только игра.
Zavtramen
06.04.2019 03:01+1Помню брат купил voodoo2 чтобы можно было поглазеть на крутую графику в blood 2. Несколько дней мы с ним плясали над ней, перепробовали десятки драйверов скачанных через dialup с поминутной оплатой. Потом поменяли на riva tnt, с той никаких проблем не возникло. Нашел щас на торрентах blood 2, говорят на 10й винде нормально запустить с патчами можно. Помню там божественная музыка была на уровне где все в зеленых тонах, переиграю свою молодость пожалуй.
batman12345
06.04.2019 23:39То что было в детстве — всё кажется божественным. Новизна ощущений, и т.п.
ZX-Forever!Igor_O
08.04.2019 02:23У кого что… У меня MSX2, Zanac 2, Aleste… Самым подлым образом все из эмуляторов MSX, которые я пробовал, или не умеют запускать Zanac и Aleste в принципе, или запускают, но одновременное нажатие клавиш направлений никак не обрабатывается. Нажав вверх и вправо, получаешь или вверх, или вправо. Как повезет…
batman12345
08.04.2019 09:29О, да. MSX оставил неизгладимый след в моей памяти (в пионерлагерь на одну смену нам завезли класс этих машинок) своими фееричными игрушками. Скачав эмулятор, обнаружил что теперь я не могу пройти ни одну — то ли реакция уже не та, то ли азарта нет, то ли эмулятор слишком быстро эмулирует (хотя вряд ли).
Но вот только Спектрум смог выполнить поставленную конкурсом BBC задачу — стать учебным компьютером. Ну на какой ещё платформе можно было расширять память, турбировать, подключать перефирию путём напайки микросхем и километров МГТФ прямо сверху; ломать загрузчики, писать интро… Простое добавление de- к Bill Gilbert на заставке вызывало щенячий восторг. А ведь чтобы это проделать, нужно было ПОНЯТЬaik
08.04.2019 10:21Тут рядом где-то писали про input lag в эмуляторах.
Из игрушек MSX у меня в памяти остался только wiz, сокобан («мудрый кролик»), payload (хотя мы эту игрушку звали «япония») да квест «адам и ева».
Больше влияния оказали встроенный basic, logo да кумир с роботом и чертежником.
На счёт того, кто мог стать «учебным компьютером» — тут вопрос в том, чему именно учить задумано было. Если тому, как что-то нашаманить — то да, спектрум в этом плане впереди всех. А если компьютер планировалось использовать как инструмент в изучении какого-то другого предмета, то тут сам компьютер не важен. И даже не уверен, что спектрумы в учебных заведениях как-то массово использовались.
aik
06.04.2019 03:30+5В актуальное время не было возможности сразу две вуды2 заиметь, потому играюсь со SLI сегодня. Правда, чтобы не тратить 10 баксов на SLI-перемычку, сделал её при помощи ножниц и молотка из дисководного кабеля. :)
Две вуду2 позволяют играть в 1024х768 (в отличие от 800х600 у одной карты) и, теоретически, должны увеличивать производительность в 800х600. Но я этого не заметил — в 3dmark прибавилось что-то порядка 50 попугаев (1650->1700). Скорее всего, процессора не хватает — p3-450. Но зато в 1024х768 имел те же 1700 попугаев.
VBKesha
06.04.2019 11:26Вот я могу ошибаться но почему то мне кажется, что я видел варианты до 4 Vodoo.
aik
06.04.2019 11:39+2В мэйнстриме не было.
Но у обсидиана была куча всяких страшных конструкций.
Самая страшная, пожалуй, была Mercury — это четыре платы в SLI-режиме по два voodoo2 на плату. То есть в итоге восемь voodoo2 получается, для каких-то спецрасчётов использовалось. Правда полноценно в играх это не использовать — картинку всё равно только одна карта считала, а остальные сглаживанием занимались.
beduin747
06.04.2019 08:30Сборник отмерших вариантов развития (я имею ввиду комп) — слотовый проц, отдельный видеоускоритель, звуковая карта с собственными банками памяти (AWE32?)
aik
06.04.2019 09:34Формально это аутентичный конфиг 1999 года. Процессор, конечно, мог бы и пошустрее быть — но что есть.
А так-то да, вскоре оно всё померло.
Слот ушел, хотя материнки ещё некоторе время держались за счёт переходников. У меня есть идея воткнуть в слотовую мать туалатин, оборвав ему лишние ноги.
Видеокартой тут стоит tnt2 ultra — которая и нанесла первый серьёзный удар 3dfx, особенно после того, как появилась куча дешевых вариантов (vanta, m64) от всяких китайцев, а 3dfx наоборот, стала сама делать voodoo3.
Звук да, awe32. В досе других вариантов добавить памяти не было, кроме как иметь на звуковушке. А в windows уже даже дешевые платы смогли оперативку под банки использовать.ledinhome
06.04.2019 10:11«2D» ускоритель в 3D быстрее чем сам 3D-ускоритель :)
Меня это доканало, когда китайская поделка работает быстрее, зачем эта аутентичность? Вот если бы вирдж какой воткнуть… (Это я про свой олд-комп).aik
06.04.2019 10:25+1Это тестовая сборка, наиграюсь — разберу. Мне в том числе хотелось самому сравнить тнт2 и вуду2 на одинаковом железе. Пока что могу сказать только то, что вуду2 даже в сли завелось с полпинка, а тнт2 при переходе в 3д плющит и как ускоритель она отваливается до перезагрузки. Либо плата сама дурная, либо драйвера перебирать надо.
Если системник на базе этого буду собирать вдруг, то matrox G400 есть. А тнт2 (если рабочая) пойдёт на к6-2, там материнка не позволяет две вуды воткнуть.VBKesha
06.04.2019 11:29+1Что за система?
Что за версия дров для TNT2?
Вроде с нормальными дровами она была без проблемна, из того на чем у меня работала были 1280/2188/2880aik
06.04.2019 11:40+1Я пока всерьёз не разбирался с этим.
ОС — 98SE, драйвера последние, что на сайте nvidia предлагают, версию сейчас не скажу.VBKesha
06.04.2019 11:43— del — Упс у меня только под 2K остались.
aik
06.04.2019 15:38Да я знаю, где можно взять — на vogonsdrivers.com хорошая подборка для старого железа. Просто время найти надо.
R7R
06.04.2019 12:27слотовый проц, отдельный видеоускоритель, звуковая карта с собственными банками памяти (AWE32?)
Слотовый проц уже в момент появления казался мертворожденным монстром.
Отдельный видеоускоритель, по существу — и сейчас живее всех живых (практически в каждом компе есть встроенное видео, дискретная карта — фактический аналог «видеоускорителя»)
Звуковые карты, как таковые, практически уже вымерли (кроме внешних) — и не важно уже, с собственным они банком памяти или нет :)Aberro
06.04.2019 13:27Помню, у меня знакомый имел переходник, в котором что-то вручную перепаивал, и ставил Pentium 3 в слот для Pentium 2. Но поскольку тогда я был ещё школьником, то не знаю как это всё работало.
R7R
06.04.2019 14:43и ставил Pentium 3 в слот для Pentium 2
Там и у родных процессоров были проблемы, например слотовые селероны могли болтаться в слоте как известно что в проруби.
Это внешне давало очень интересные, но совершенно непредсказуемые эффекты во время работы — что-то вроде русской рулетки.
Материнки на тот момент были уже дешевы — благодаря поделкам разных китайских фирм типа «томато боард», и игра с перепайкой просто не стоила свеч.beduin747
06.04.2019 15:41Некоторые платы были с нормальным крепежом на защёлках. А были просто со слотом. Т.е. проц вообще не крепился. Самая тема — сокетный проц вставленный в китайский переходник и всё это заправлено в слот без крепежа. С учётом радиатора получалось э..., короче не очень. =)
aik
06.04.2019 15:56Защёлок не помню, обычно были складные направляющие, чтобы процессор не болтался. Но они нормально держали только картриджные процессоры. А целероны и переходники из себя представляли просто голую плату, которая этих направляющих не касалась и могли там шататься, если производитель переходника не подумал о дополнительной фиксации.
У меня слотового целерона нет, есть только парочка переходников. У одного есть небольшие «ушки», которые опору дают на направляющие. У второго ничего подобного нет.
aik
06.04.2019 15:40Были переделки для поддержки коппермайнов старыми материнками. А потом — для поддержки туалатинов ими же. Заключались в отрезании и замыкании разных ног. Можно было поиздеваться над процессором, а можно — надо сокетом.
R7R
06.04.2019 20:12Можно было поиздеваться над процессором, а можно — надо сокетом.
Только материнку можно было найти и за $50, а, например, свой проц Р-2 /266 я брал за $220.
Р-3 не стоили дешевле. Я бы не рискнул…aik
06.04.2019 20:25А сейчас наоборот, процессор найти проще, чем живую материнку. Потому, когда всё же доберусь до втыкания туалатина в мать на чипсете BX, то курочить буду проц, а не переходник.
aik
06.04.2019 15:36Интелу очень сильно хотелось уйти от сокет7 на что-то несовместимое, а то его там всякие амд и сайриксы задолбали. Правда продержался недолго, выпустив сокет370 — под который амд уже ничего не сделал — был свой слотА, потом сокетА, но via свои процессоры под 370 делала.
Дискретная видюшка — всё же не ускоритель технически. Хотя идеологически можно считать, да.
Дискретные звуковушки остались для желающих странного.
FForth
06.04.2019 13:24Уже тогда (1997) были Пентиум процессоры с интегрированным видео, звуком
Cyrix MediaGXm
из внешних микросхем — только чип ввода/вывода и интерфейсный к PCI + RAM на плате.
P.S. Оказывается, что у меня осталась плата с данным процессором. :)aik
06.04.2019 15:48С медиагэиксами сайрикс пытался в бюджетные компьютеры пробиться — частично получилось — были конфиги за 500 баксов, в то время, как всякие пентиумы стоили к 1000.
Но получилось ненадолго, очень быстро и амд с интелом цены опустили настолько, что разница в цене стала очень небольшой. А вот в производительности… Старший Cyrix MediaGXm на 266 в играх работал примерно так же, как пентиум 100-133.
Потому cyrix ушел во всякие встроенные системы и тонкие клиенты, потом дважды продался, но ADM Geode, основанный на технологиях Cyrix, вроде как ещё даже производится — для этих же целей.
DimPal
06.04.2019 11:00*del
vikarti
06.04.2019 11:19По мнению товарищей в Международной электротехнической комиссии и ISO, которые выпускают стандарты, в мегабайте — 1000 килобайт, а если вам хочется иметь 1024 — то это называется мебибайт (и писать надо MiB а не Mb) а то, что для большинства в мегабайте таки 1024 килобайта… ну это проблемы тех кто стандарты не читал -:)
khim
06.04.2019 20:27А для тех, кто начинает возмущаться — контрольный вопрос с выстрелом в голову: на знаменитой 1.44MB дискете сколько байт? 1440000 (маленькие мегабайты) или 1509950 байт (большие мегабайты)?
Правильный отпетНа самом деле там ровно 1474560 байт ибо там особые «дискетные» двоично-десятичные мегабайты в 1024000 байт… и на округление не спишешь — будет либо 1.47MB, либо 1.41MB, но никак не то, что на шктрке написано...aik
06.04.2019 22:14Мебибайты раздражают. И пофиг на стандарты, если они заставляют менять привычки. Может лет через пятнадцать они и приживутся, но пока что ими пользуются только зануды. :)
Zalechi
06.04.2019 22:25Больше того. Зачем было изначально вводить в заблуждение!? Сколько лет мы общаемся и имеем виду одно, а тут нам глаза открыть решили?
И ещё кое что: Мега(миллион — М), байт(8 бит — б) = Мегабайт — миллион байт(1 Мб). В чем проблема то? То что это не миллион бит — так мы не дураки и изначально это понимали и умножали, когда считали.
Чего я последнее время вижу люди носятся с этими поправками?aik
06.04.2019 23:35Мегабайт — миллион байт(1 Мб). В чем проблема то? То что это не миллион бит
Причем тут биты?
Мегабайт — это либо 1 000 000 байт, либо 1 048 576 байт. В зависимости от контекста. Кто в теме, контекст понимал и не путался. Кто не в теме, покупал жесткий диск на терабайт (который 1 000 000 000 000 байт) и плакал, когда Windows ему говорил «а у вас диск на 900 гигабайт».
Вот и придумали эти меби для того, чтобы разделить маркетинговые мегабайты и двоичные.
Другое дело, что строгое употребление «меби» сегодня колышет только зануд, остальные либо нормально видят контекст, либо им просто пофиг.khim
07.04.2019 01:10Мегабайт — это либо 1 000 000 байт, либо 1 048 576 байт
Неправда.
Кто в теме, контекст понимал и не путался.
Уже сам тот факт, что вы забыли третьем варианте (не 1 000 000 байт и не 1 048 576 байт) прекрасно показывает то, что это не так.
Другое дело, что строгое употребление «меби» сегодня колышет только зануд, остальные либо нормально видят контекст, либо им просто пофиг.
Это нормально:
«Обычно новые научные истины побеждают не так, что их противников убеждают, но чаще так, что их противники постепенно вымирают, а новые поколения усваивают эту истину сразу и полностью».
Макс Планкaik
07.04.2019 06:01Уже сам тот факт, что вы забыли третьем варианте
Если забыл, то значит он ещё в более редком контексте употребляется.
Вы про сменные носители?khim
07.04.2019 15:17Вы про сменные носители?
Я выше уже писал.
Если забыл, то значит он ещё в более редком контексте употребляется.
Что, собственно, и доказывает, что рассказы «про тех, кто в теме» не работает. Ибо вроде как и производители дисков (и жёстких и гибких) и производители OS, должны быть «в теме», однако договориться… не смогли.
khim
07.04.2019 01:07Чего я последнее время вижу люди носятся с этими поправками?
Объёмы выросли, разница в объёмах — тоже. 1MiB отличается от 1MB на 2.5%. А вот 1PiB от 1PB — уже на 12.6%.
Zalechi
07.04.2019 13:04Вот это интересное объяснение. Когда мне по работе или непонимающему приятелю надо будет объяснить, я прибегну к методологии, нов остальное время, пока, не буду занудой.
vikarti
07.04.2019 15:55Зачем было изначально вводить в заблуждение!?
А зачем вы столько лет нарушали правила формирования приставок, и вообще комитет по стандартизации лучше знает -:)
p.s.
Вспоминается одно фантастическое произведение, там значительная часть измерения времени — килосекунды/мегасекунды и так далее. Часть окружающих — слегка фигеет и задается вопросами зачем так сделано? Есть же стандартные земные часы минуты сутки.
R7R
06.04.2019 12:22и производительность Voodoo3 разочаровывала по сравнению с GeForce 256 компании NVidia,
У GeForce 256 еще больше разочаровывала цена.
Не помню уже сейчас точные цифры, но Voodoo3 я себе мог позволить, а GeForce 256 — уже нет.
Так что причины проигрыша 3dfx в чем-то другом.axe_chita
06.04.2019 17:03Там у 3dfx все в кучу свалилось, Voodoo3 с отсутствующим ускорение в truecolor, только Hicolor только хардкор только 16бит (правда на коробке было написано что внутри он 22 битный), отсутствие полноценной поддержки agp (по факту её использовали только как быструю pci), покупка основного производителя STB на чипах 3dfx, фактический уход с рынка oem, проблемы с выпуском voodoo4 и voodoo5, ошибки бизнес планирования руководства.
Вот в wikipedia подробный разбор полетов.aik
06.04.2019 17:13Зато за счёт того, что не использовались фичи AGP, на ранних материнках с AGP вуду3 мог работать стабильней, чем другие видеокарты.
Ещё из забавного — был ускоритель voodoo2 на AGP. Требовал для работы PCI-видеокарты.axe_chita
08.04.2019 02:07Точнее на материнках с чипсетами Intel AGP работал стабильнее, а вот на VIA и иже с ними часто был цирк, подбор драйверов и тд и тп. Поэтому тогда и сложилось такое лобби «играть — только на Интел»
А без фич (текстурирование из памяти и тд) AGP это PCI на 66 мегагерц.aik
08.04.2019 10:24А уж какое веселье начиналось, когда сталкивались виашный чипсет (или вообще Ali) и какой-нибудь s3 savage…
sborisov
06.04.2019 21:493dfx был вожделенной мечтой всех геймеров.
Как красивы и заманчивы были коробки с этими картами в компьютерных магазинах…
Увы, финансовый кризис 1998 года, навсегда развёл наши судьбы в разные стороны, скопить на эту карту студенту после стремительного обвала рубля стало невозможно.
andersong
08.04.2019 08:23Эх, помню, вернулся из командировки и на сэкономленные купил первую вуду за 120 баксов!
Из особенно запомнившихся игрушек были Carmageddon и Unreal.
AndreyYu
Ох, сколько мата и нервов было потрачено на запуск Quake 2 на PII-350 в 3dfx opengl в начале нулевых!
aik
3dfx как раз самыми беспроблемными картами были, даже в сравнении с нвидией (молчу про атишки и всякие там саважи). Хотя начало нулевых — это уже эпоха заката тнт2 и рассвет geforce2 и радеонов. Вуду уже не котировалась.