Не бойтесь врапперов – они не кусаются

Лето уходит, впереди — долгие осенние вечера за монитором, наверняка придется много и настойчиво играть! А пока издатели медлят с выпуском долгожданных игр, от желания заполучить которые рядовые геймеры не первый месяц исходят сиропом, вполне можно вытащить замшелые компакты, сдунуть пыль и тряхнуть стариной. Помогут нам в этом деле врапперы Glide.

Сначала, конечно, разберемся с двумя насущными вопросами: что такое Glide и что такое враппер. Слова страшные, иметь дело с ними вам наверняка не хочется, а придется, и начнем мы с Glidе`а. Для этого стоит рассказать вам одну сказку. Давным-давно существовало царство-государство 3dfx, где ремесленники производили 3D-акселераторы Voodoo. Царство это долго процветало, пока не появилось еще одно, более расторопное, — nVidia. И пока в 3dfx пили чай с пряниками, в nVidia не спали и соображали козни против соседей. В конце концов 3dfx прогорело и было скуплено на корню nVidia. Тут и сказочке конец, а кто слушал — молодец! Однако после «пересадки» населения на TNT и прочие GeForce`ы оказалось, что все не так-то просто. Ведь фирмой 3dfx для своих чипов был создан специальный API (программная библиотека) Glide. И, что не менее важно, под нее было создано немалое количество игр.

За все время существования 3dfx было выпущено четыре версии Glide. Самая ранняя была написана еще под DOS, а среди написанных под нее игр самыми успешными были, пожалуй, Tomb Raider и Carmageddon. Позже была выпущена первая версия Glide под Windows, но она особого распространения не получила. Спустя еще некоторое время увидела свет вторая версия, ставшая, пожалуй, наиболее популярной. Именно под нее было написано самое большое количество Glide’овских игр, среди которых самой хитовой стала Unreal. Затем появилась третья версия Glide, но было это уже на закате 3dfx, поэтому игрушки, написанные для нее, можно сосчитать по пальцам. Самой известной из них стала Diablo 2.
Итак, прошло всего несколько лет с того момента, как закончилась история 3dfx. В эпоху GeForce и Radeon все забыли и Voodoo, и Glide, мало кому в голову сегодня придет мысль о покупке Voodoo-подобной видеокарты. А если захочется «погамить» в старые игрушки под Glide? Ситуация, казалось бы, безвыходная, никакие FX`ы и Radeon`ы здесь не помогут. Что делать? Вот тут-то на выручку и приходит второе страшное слово — враппер (wrapper). Что же за зверь такой, этот враппер? Это программная библиотека, которая переправляет вызовы из-под одного API на другой. Понятно, но не совсем? Тогда лучше так: сам по себе Glide представляет из себя простую dll’ку (например, glide2x.dll для второй версии Glide), которая, кстати, для каждого поколения Voodoo своя, уникальная. В этой dll’ке находятся различные функции, вызывая которые, игра отрисовывает трехмерное изображение на экране. Враппер — это тоже dll’ка, причем с тем же самым именем, в нем хранятся функции с теми же самыми именами, что и в оригинальном Glide, но в этих функ­циях хранится совсем другой код! В этих функциях (по логическому соответствию, естественно) находятся вызовы функций того API, который совместим с вашей видеокартой, например, Direct3D или OpenGL. Таким образом, враппер обманывает написанные под Glide приложения, заставляя их думать, что у вас Voodoo.

Что ж, теперь с тем, что такое враппер, все ясно, осталось лишь разобраться, что с ним делать. Все очень просто: как уже упоминалось, враппер — это обычная dll’ка и, как многие уже наверняка знают, ее нужно положить в папку игры или в папку Windows/System, после чего можно запускать любимую игрушку.
Итак, непонятки с Glide’ами и врапперами мы свели на нет, пришло время начать сам обзор. Сначала необходимо упомянуть о том, что некоторые врапперы совместимы не со всем железом, а мы для проверки их работоспособности пользовались системами на базе видеокарт Radeon 8500LE и GeForce FX5200 (наиболее яркие, на наш взгляд, представители современных видеоадаптеров по обе стороны баррикад). Поэтому, если у вас используется нечто другое, особенно более низкого уровня, дела могут обстоять иначе. Нельзя также забывать, что работоспособность зависит и от Windows. Мы пользовались Windows 98SE и Windows 2000SP3.

Для начала заметим, что для первой версии Glide, в связи с ее низкой распространенностью, врапперов нет, и в обзоре вы их, естественно, не найдете. Так что начнем мы сразу же со второй версии. Вот список игр, на которых проводились испытания: Quake2 (3dfxgl-режим), Myth, Die by the Sword и SuperMario64 на эмуляторе Supra (aka UltraHLE — кто не в курсе, это эмулятор Nintendo64) и тестовое приложение Envmap из примеров к Glide SDK (рисует трехмерный автомобильчик). Сначала займемся врапперами, так сказать, универсального назначения, то есть теми, в описании которых четко заявлена совместимость с некоторым набором приложений.
Первым в очереди значится враппер с хитрым названием XGL200 0.04a. Разработчик, судя по описанию, протестировал свое детище только на собственном Matrox MGA200 (отсюда, видимо, и число в названии). Тестирование выявило следующее: на Radeon'е он работал отлично (естественно, там, где вообще работал), а вот на GeForce налицо были существенные глюки с Z-буфером (такое ощущение, что он вообще отсутствовал), поэтому все, что ниже будет сказано о работоспособности без упреков, относится только к Radeon`у. Вообще, девелопер заявил о совместимости своего детища с достаточно большим количеством игр. Наша же проверка определила следующее: Quake2 не пустился; Myth пустился, но выводился только ландшафт, все остальное куда-то пропало, что сделало игрушку неиграбельной; Die by the Sword пустился и работал без нареканий; SuperMario64 работал c существенными артефактами, которые достаточно сложно описать в двух словах; Envmap пустился, но от автомобиля остались только стекла.
Теперь перейдем к eVoodoo 1.4a. Это достаточно неплохой враппер с весьма низкими требованиями (должен работать на 3D-акселераторах первого поколения, например, Riva128). Разработчик заявляет полную совместимость аж с четырьмя игрушками! Работал eVoodoo 1.4a на Radeon и GeForce одинаково, результаты таковы: Quake2 не пустился; Myth заработал сбой в ddhelp.exe, поэтому, несмотря на запуск самой игрушки, мы ничего не увидели; Die by the Sword пустился и работал идеально; SuperMaruo64 также запустился и работал; Envmap работал без проблем.

После eVoodoo 1.4a логично было бы перейти к eVoodooXP 3.2. Несмотря на похожие названия, это совершенно разные врапперы. Первое, что мы отметили при работе с eVoodooXP, — на Radeon он всегда переворачивал изображение вверх тормашками, в то время как на GeForce он работал условно нормально. Теперь пробежимся по играм: Quake2 не пустился; Myth пустился и первые секунды три выдавал абсолютно корректную картинку (правда, страшно тормозил), но потом успешно повис; Die by the Sword хотя запустился, и на вид изображение было нормальным, но тормозил и упирался всеми выступающими частями; SuperMario64 пустился c артефактами и нехилыми, надо сказать, тормозами; Envmap работал нормально.
От eVoodooXP перейдем к RadeonGlide, который также известен как GlideWrapper. Два названия тут оттого, что разработчик сначала делал враппер только для Radeon’ов и, по логике вещей, назвал свое творение RadeonGlide. Затем, видимо, осознав, что нужно поддерживать и других товаропроизводителей, исправил этот недостаток, подружившись и GeForce’ами, в связи с чем, естественно, и сменил название на более подходящее — GlideWrapper. Нужно отметить, что это единственный враппер, который эмулирует конкретное оборудование — первый Voodoo с четырьмя мегабайтами памяти на борту, а в версии GlideWrapper появилась возможность настраивать количество эмулируемой памяти от двух до восьми мегабайт. Также стоит сказать, что количество игр, совместимых с ним, по описанию разработчика наиболее обширно (несколько десятков). Насчет работы на разных видеокартах: подтверждаем, что версия RadeonGlide не работает на GeForce, с GlideWrapper же таких проблем, естественно, не наблюдалось. О совместимости с играми: Quake2 пустился и работал идеально; Myth — очень странно, но при запуске произошел сбой в самом враппере; Die by the Sword запустился и работал идеально; SuperMario64 и Envmap запускались и работали без нареканий.

Теперь перейдем к узкоспециализированным врапперам, которые, по описанию, предназначены только для одного приложения и работают только с ним (но ведь это не помешает нам проверить их и на чем-то другом, правда?), а именно — для UltraHLE (см. выше). Начнем мы с враппера gl2ide. Надо сказать, что количество его версий, выпущенных разными разработчиками, достаточно велико. Это связано с тем, что все они разработаны на базе одного и того же свободно распространяемого исходника. А так как переделки разные, то и работают они по-разному. Мы остановимся только на двух версиях: gl2idec и gl2ideal. Что касается совместимости — у обеих версий наблюдалась более высокая совместимость с GeForce, Radeon им явно пришелся не по вкусу. Все игры, кроме Envmap и SuperMario64, на этих врапперах запускаться отказались. В Envmap в случае с gl2idec мы не увидели ничего, кроме черного экрана, а в случае с gl2ideal не было видно стекол у машины. Что касает­ся SuperMario64, то на Radeon’е, несмотря на успешный запуск, картинка на том и на другом была страшно испорчена артефактами. На GeForce при использовании gl2idec единственным артефактом можно считать отсутствие бликов в интро, а на gl2ideal все, в общем-то, было нормально, изредка только появлялись лишние черные полосы на стыках полигонов.

Остальные врапперы придется отнести к полным неудачникам — на них ничего не запустилось. Но для того, чтобы вы знали об их существовании, мы раскроем их имена: boost, clide, glidegl, mglide.
Настало время перейти к врапперам третьего Glide’а. Как уже было сказано, эта версия не была слишком популярной, что, видимо, и объясняет отсутствие хороших врапперов для нее. Мы использовали в тестах три враппера: eVoodooXP, Glide3x_fast, glid3d. Для тестирования использовалась демка Virhe от Futuremark (та самая, бывшая MadOnion). Правда, написана она была задолго до первого бенчмарка этой компании. VoodooXP и Glide3x_fast отказались пустить демо, оказалось, что под силу это только glid3d, да и то исключительно в софтверном режиме с неимоверными тормозами. Так что с Glide3x пока что у разработчиков явно не ладится.

Напоследок — о врапперах Glide для DOS. Долгое время мы считали, что это невозможно — ведь в DOS нет ни Direct3D, ни OpenGL, через что эмулировать? Но так продолжалось, лишь пока нам не встретился Glidos. Это единственный на данный момент враппер для эмуляции DOS’овского Glide’а. Трудно сказать наверняка, как он это делает, но точно известно, что он подставляет свой файл Glide2x.ovl (аналог Glide2x.dll для DOS) и перенаправляет каким-то хитрым образом весь графический вывод на OpenGL. Разработчик этого чуда заявил совместимость аж с десятью играми, среди которых Tomb Raider и Carmageddon. У нас был только Carmageddon, поэтому на нем мы и провели проверку. Игра запустилась и работала вполне нормально. Хотя fps был не особенно высок, играбельность оставалась «на уровне». Качество изображения было, конечно, выше чем в оригинале, но по сегодняшним временам… Кроме того, мы испытали этот враппер с помощью примеров к Glide SDK — большая часть примеров запустилась, а некоторые показали только черный экран, это говорит о том, что разработчик заточил и проверил свое творение только под конкретными приложениями. Единственным недостатком Glidos`а можно считать лишь тот факт, что он коммерческий — $10 с копии. Незарегистрированная версия работает, но примерно через минуту на экране появляет­ся мозолящая глаз и мешающая играть надпись «Glidos».

Самое время делать выводы. Итак, для второй версии Glide однозначным лидером заплыва объявляется RadeonGlide aka GlideWrapper, весьма близко к нему приблизились xgl200 и eVoodoo 1.4a, кое на что сгодится и VoodooXP, с остальными же дело лучше не иметь, только намучаетесь. Для третьей версии Glide пока нет достойных врапперов и очень вероятно, что они никогда и не появятся — из-за отсутствия необходимости в этом. Для DOS сущест­вует только один враппер — Glidos, поэтому его можно считать незаменимым. Нам же осталось только привести ссылки, откуда вы сможете скачать все описанное выше.

www.nvworld.ru/drivers.html — большая часть всего вышеперечисленного;
www.voodoofiles.com — много-много всего;
www.glideunderground.com — XGl200;
home.t-online.de/home/zsack/ — GlideWrapper;
come.to/3dgx — eVoodoo 1.4a;
www.geocities.co.jp/SiliconValley/8346/gl2ideal/ — GL2Ideal;
www.glidos.net — Glidos.


Рекомендуем почитать: