86box: первый запуск (Часть 1)
Начать я хотел бы с небольшой предыстории. В июле у меня появилась идея из имеющегося в квартире компьютерного барахла собрать ретро-компьютер для игр и установить на него Windows 98. Нашлись две материнские платы, одна на Pentium 4, другая на Celeron 800, но у обоих были вздутые конденсаторы. В итоге нашлась мат. плата с твердотельными кондёрами на базе Intel Pentium Dual Core (а такой процессор для ретро уже "не канон"). Видеокарту планировалось установить ATI Rage 128 Pro Ultra, звук - Aureal AU8830, ну и ещё по мелочи всякий старый хлам типа винчестера, блока питания, сетевой карты и т.д. Уже и составил список старых игр, которые я хотел на нём радостно запускать. Но в итоге эту идею я так и не реализовал, даже не приступил к сборке железа в корпусе, решив, что вся эта неблагодарная возня того не стоит.
Но вот мне на глаза попался этот прекрасный эмулятор - 86box. Да, виртуальная эмулиция - совершенно не то, что реальное железо, но это компенсируется огромным ассортиментом эмулируемого. Заодно и гемора при таком варианте было значительно меньше (хотя всё равно очень много). Поэтому, было решено - настраиваю виртуалку. На первый раз я решил создать машину для игр MS-DOS и выбрал что-то попроще - 486.
Самой первой операционной системой в моей компьютерной жизни была ХР, и поэтому MS-DOS была для меня незнакомой территорией. Началось моё приключение с того, что я всё утро пытался загрузиться с дискеты MS-DOS. У меня на это ушло 2 часа, переворошил и перепробовал всё, что только можно было. Ещё когда у меня возникали какие-то проблемы, я не понимал, это баг эмулятора или наоборот, эмуляция настолько точная, что передаёт все проблемы и заморочки реального железа. И вот, когда я увидел на экране наконец заветную надпись Starting MS-DOS, я чувствовал себя словно Индиана Джонс, который нашёл сокровище. Первый шаг сделан.
Далее, я пытался попасть из MS-DOS в директорию дискеты чтобы установить с неё драйвера. Набираю cd a:... и ничего не происходит. Я несколько часов ломал голову, что я делаю не так, и когда наконец разобрался, что набирать нужно без cd - мне стало настолько стыдно за себя, что хотеть провалиться под землю это ещё очень мягко сказано. Вообще, я понимал, что по хорошему нужно было бы скачать с Интернета документацию MS-DOS и тщательно её изучить, чтобы не допускать таких элементарных ошибок, но я же подумал "по ходу разберусь, чтобы время не тратить". А в итоге времени потратил ещё больше, вот такой я дурак.
Тем не менее, мой первый опыт работы в DOS был для меня очень необычным и интересным. Мне понравился серьёзный, тёмный, грузный интерфейс с резкими цветами, мне понравилось работать через консоль и изучать новые команды, устанавливать драйвера и загружать их в память, решать возникающие проблемы. Система, как я уже описал выше, с пользователем не церемонилась и за ручку его не водила, но и в то же время была как-то проще и прозрачнее, чем привычная Windows.
Моей первой игрой стала Wolfenstein 3D. Первый запуск прошёл отлично. Затем я установил мышь, затем Sound Blaster. Смотреть, как один за другим загораются огоньки в стартовом меню игры, мне приносило огромный восторг. В результате я получил прекрасно рабочую игру, с плавным звуком и без "заиканий", в которую можно было комфортно играть. Очередная высота взята.
Окончательно закрепить свои успехи я решил установкой игры Super VGA Harrier. С этой игрой у меня возникла небольшая проблемка с отрисовкой графики. Сначала я попробовал запустить на видеокарте S3 - было играбельно, но меня смущала рябь на некоторых элементах графики. Затем я поменял её на ATI Mach - и вовсе получил чёрный экран. Cirrus Logic - игра начала работать слишком медленно. И, наконец, установив видеокарту Tseng Labs ET4000 я получил идеальный игровой опыт, неотличимый от DOSBox - никаких графических багов, стопроцентная скорость, никакой задержки ввода, звук работал идеально и не щёлкал.
Убедившись окончательно в отличной способности 86box эмулировать 486-ой процессор на такой относительно тяжеловесной экшн-игре, требующей быстрого отклика от игрока, имеющей реалистичную физику и модель (Super VGA Harrier был одним из точнейших симуляторов для своего времени), я решил завершить этот проект и двинулся дальше. Итоговый вердикт первой части: 86box успешно справляется с эмуляцией железа уровня 486 и позволяет комфортно играть в DOS игры начала 90-ых годов и более ранние.
Окончательная конфигурация:
Мат. плата ASUS PVI-486SP3C
Проц. Intel i486DX2-66
ОЗУ 4 мб
ГП Tseng Labs ET4000 Diamond Stealth 32
Звук Creative Sound Blaster 2.0
Часть 2. Запуск Pentium MMX 166 и 3dfx Voodoo 3 3000 AGP и тест в Half-Life
Шагаем вперёд. Если в первой части я ставил себе цель убедиться, что эмулятор вообще работает, то теперь, когда мы уже подтвердили работоспособность в играх начала 90-ых, открывается простор для творчества. Во второй части обзора мы попытаемся сэмулировать на порядок более мощную конфигурацию уже из середины девяностых: Pentium MMX 166, S3 Virge GX2, Creative Sound Blaster 16, 32 Мб ОЗУ, Windows 95. Игры на тестирование: Эпоха Империй, Цезарь 3, вторая Цивилизация, Command & Conquer: Red Alert, Dune 2000, и даже Half-Life.
Я был переполнен азартом. Я тщательно выбирал эту конфигурацию, чтобы реалистично соответствовать железу того времени. Давай мысленно перенесёмся в октябрь 1997 года. Ниже представлены снимки номера западного компьютерного журнала PC Computing за октябрь 1997 года:
Журнал почти полностью состоит из рекламы. Изучать конфигурации машин, представленных в журнале, это вообще отдельный вид удовольствия и отдельная тема для разговора. Но не будем сбиваться с темы. Как мы видим, подобранная мною конфигурация стоила в районе две штуки баксов. К слову, железо тогда устаревало не по годам, а по месяцам. Компьютер годовалой давности считался уже устаревшим, а двухгодовалой - морально устаревшим. То же самое касалось и системных требований игр, и операционных систем. Это не как сейчас, собрал один компьютер, поставил один раз ОС - и пользуйся им, пока не сломается.
Немало времени я лазил по PC Gaming Wiki и изучал системные требования перечисленных и других игр, с азартом прикидывая, запустится ли на этой конфигурации та или иная игра. Мой выбор пал на Windows 95 из-за желания разнообразия: она была менее заезженная, чем 98-ка, была менее популярна в России, и была менее совершенна. И что самое интересное - я решил установить 14-дискетную версию, даже без OSR2.
И вот передо мной экран установки Windows 95. Уже по тому, как выполнена установка, ощущаются фундаментальные отличия от DOS. Система уже менее уважительно разговаривает с пользователем, требуется обязательный ввод ключа, иначе же установщик на полпути просто пошлёт пользователя на три буквы, при этом нам показываются красивые промежуточные экраны с заманчивыми описаниями, чтобы втереться в наше доверие. Сам процесс установки стал очень непрозрачным, ты, в отличие от программ для DOS, не находишься в ведении, какую тёмную магию этот установщик проворачивает. Он постоянно требует от пользователя каких-то подтверждений и нажатий, ими усеян просто весь процесс установки от начала до конца - нельзя ему просто дать все нужные указания в начале и уйти пить чай, чтобы вернуться уже к окончательно готовой и установленной операционной системе. Во время установки у меня появилась ошибка SUWIN без каких-либо пояснений, чем она может быть вызвана и как её можно исправить. Это говорит о том, что в Майкрософт не тестировали операционную систему, как положено, не занимались выявлением и исправлением ошибок и тестом на самых разных конфигурациях. В то время Интернета не было, и решить эту проблему рядовому пользователю, не прибегая к помощи мастера, было невозможно. Вот вам и дружелюбное отношение к пользователю.
Тем не менее, система была мною настроена. Драйвера установлены. Установлен первый кандидат на тестирование - Эпоха Империй.
Итак, момент истины. Запуск. Меню вроде бы отзывчивое. Вход в игру... и вот мы в игре, и скорость эмуляции упала до двадцати процентов. Игровой процесс не представляется возможным.
Как затем выяснилось, проблема крылась в видеокарте. По какой-то причине, то ли потому, что эта модель такая особенная, то ли из-за шины PCI, эмуляция S3 ViRGE GX2 оказалась неподъёмной. Поменяв её на 3dfx Voodoo 3 3000 AGP, скорость эмуляции в Эпохе Империй выросла до 100%. К слову, работала игра идеально играбельно и без нареканий. Вывод из этого напрашивается следующий: не всё железо, представленное в списке 86box, можно эмулировать, свобода выбора ограничена, и это весьма печально.
Ещё такой интересный факт: эмулятор не будет исправлять пользователя, если тот выберет несовместимое железо. Можно выбрать материнскую плату без PCI-слотов и поставить на неё PCI-карту. Естественно, ни к чему хорошему это не приведёт.
Но на Эпохе Империй проблемы не заканчивались. Следующим кандидатом я решил выбрать сразу Half-Life. Продравшись через установку, захламлённую просто неприличным количеством рекламы, я столкнулся со следующей проблемой - антипиратская защита не видела диск в приводе. Вот те на.
Установив финальный патч для игры размером 88 мегабайт, выпущенный в 2002 году, в который креативщики из Valve решили впихнуть ещё и целых две мультиплеерные игры - самый известный и популярный мультиплеерный экшен, завоеваший такое количество наград "Игра года", что критики уже сбились со счёта - Ricochet, и вдовесок ещё Team Fortress Classic, у меня возникла мысль: патч, 88 мегабайт, в 2002 году, в эпоху телефонного модема, без патча игра не запускается, в Valve что, совсем кретины сидят?
Half-Life запускаться дальше главного меню отказывалась. Причиной этому было отсутствие библиотек. Изрядно устав от возни, я решил не церемониться и сразу поставить проверенную временем Windows 98 SE.
На которой игра, наконец, запустилась. Производительность вышла вполне играбельная, но при скорости эмуляции в 80% были неприятные "запинки" (а именно - дублирующиеся звуки). Не годится, поэтому я принялся перебирать железо, чтобы найти более оптимальный вариант. Если на первую часть обзора с запуском 486 у меня ушло несколько часов, то для этого мне потребовалось несколько дней. Советы в Интернете были очень разные, многие из них были написаны для старых версий эмулятора, поэтому пришлось пользоваться методом проб и ошибок.
Итого, мне удалось вывести четыре конфигурации. Первая - собственно Pentium 166 MMX, на котором игра работала в 80% скорости. Вторая - Pentium II-133 Deschutes. Процессор был очень приближён по производительности к Pentium 166 MMX, в нём также присутствовали MMX-инструкции, а недостающие 33 мегагерца компенсировались более совершенным ядром. На втором пентиуме удалось достигнуть стопроцентной скорости эмуляции. Третья - VIA Cyrix III-300, процессор, который заманивает своим высоким показателем тактовой частоты, но по производительности проигрывает Пентиуму ММХ, у которого этот показатель вдвое ниже. Скорость эмуляции болталась в районе 90-95%. Четвёртую конфигурацию я собрал уже в PCem - и там, на каноничном согласно первоначальной легенде этого обзора Pentium 166 MMX удалось достичь 100% скорости.
Самыми работоспособными из перечисленных показали себя вторая и четвертая конфигурации. И здесь можно привести небольшое сравнение эмуляторов PCem и его форка 86box. В целом, игра работает одинаково паршиво на обоих эмуляторах. На PCem "запинки" и "заикания" случаются чуть реже, но есть нюанс: на 86box они чаще, но когда они случаются, видео не пропускает кадры, а аудио проигрывается таким образом, что если это, допустим, запись речи, то не пропускается ни одна фраза и всё слышно. На PCem же видео пропускает кадры, что является критичным в экшен-играх, а аудио может пропускать целые слова. Но у PCem есть ещё одно весомое преимущество: звук приветствия Windows в нём воспроизводится без проблем, что для эстетов является немаловажным. Немало пользователей Интернета отметили, что PCem показывает более высокую производительность в сравнении со своим более обновлённым собратом, и об этой теме я поговорю в третьей части обзора.
Подводя итоги, пройти первую Half-Life целиком в эмуляторе на второй или чётвертой конфигурации было вполне возможно, при большом желании: в особо нагруженных сценах частота кадров опускалась, на глаз, в район двадцати. Не стоит забывать, что тогда не было такого понятия "ниже 60 кадров в секунду - не играбельно". Соответствие рекомендуемым требованиям зачастую обеспечивало 30-40 кадров в секунду, иногда даже с просадками до 20, что в то неискушённое время считалось вполне играбельным.
После Half-Life и Эпохи Империй, на второй конфигурации я протестировал ещё две трёхмерные игры и две двухмерные. Quake II, менее требовательная игра, чем Half-Life, шла более плавно, но всё равно временами случались дублирующиеся звуки и щелчки. GLQuake (первый) работал ещё лучше, и шёл почти идеально. Dune 2000 и вторая Цивилизация показали себя отлично и вполне играбельно. Окончательный вердикт второй части: 86box (и PCem) может использоваться для эмуляции Pentium MMX 166 и успешного запуска Win9x игр 1995-1996 годов выпуска.
Окончательная конфигурация:
Мат. плата ASUS P3B-F
Проц. Intel Pentium II (Deschutes) 133
ОЗУ 32 мб
ГП 3dfx Voodoo 3 3000 AGP 32 мб
Звук Creative Sound Blaster 16
Часть 3. Подведение итогов.
Добро пожаловать в третью часть обзора. По изначальной задумке, она должна была получиться поистине амбициозной - планировалось запустить, ни много ни мало, железо уровня Pentium II-450 и попробовать на нём уже таких "тяжеловесов" начала нулевых, как Deus Ex и третья Цива, а уже в четвёртой части я хотел подвести финальные итоги. Но, как показала вторая часть, максимум, который смогли взять оба эмулятора - Pentium MMX 166, а значит третья часть будет заключительной. Ещё, конечно, во второй части была идея испытать 166-ой в мультимедиа приложениях, установить туда старый WinAmp и попробовать послушать музыку, установить видеоплеер и попробовать посмотреть старое аниме, но для этого ещё нужно найти материал подходящего качества... в общем, я решил, что как-нибудь потом, ведь на всю эту возню у меня уже ушло около четырёх дней.
Итак, мы убедились, что эмулятор способен уверенно запускать игрушки вплоть до 1997 года, и чуть более новые с переменным успехом. Вопрос: "а для чего всё это нужно было?" Большинство игр 1995-2007 годов спокойно запускаются и играются на современных системах с патчами совместимости. Большинство, но не все. И именно для этих "не всех" игр и нужна эмуляция. Игры с капризными движками, которые ни в какую не хотят работать на современных компьютерах. Я знаю как минимум два примера таких игр: Red Alert 2 (схватка работает нормально, но кампания не идёт ни в какую) и Ex Machina (игра, на секундочку, 2005 года, которая аварийно завершается на второй локации). Почему именно такой промежуток времени? Потому, что игры до 1995 года выпускались для DOS и в большинстве случаев спокойно запускаются через DOSBox, а в 2007 году вышла Windows Vista на ядре Windows NT 6.0, которое до сих пор используют все новейшие версии Windows вплоть по одиннадцатую.
Соответственно, задача эмуляции - закрыть эту нишу, хотя бы частично. Игры 1995-1996 годов уже запускаются, теперь нужно двигаться дальше. Эмулятор PCem обладает более высокой производительностью на данный момент, чем 86box, но эта производительность достигается использованием более грязного кода, в виде "хаков" и прочих, как принято говорить, "костылей". К тому же, PCem не обновлялся уже целых два года. 86box же, хоть и является ответвлением от более старой и менее производительной версии PCem, обладает более чистым кодом, что позволяет ему эмулировать с более высокой точностью, иметь бóльшую команду разработчиков и иметь бóльший задел на будущее, который, я надеюсь, позволит эмулировать уже железо конца девяностых и начала нулевых.
Но и этими двумя эмуляторами дело не ограничивается. За эти четыре дня, побывав на большом количестве форумов, я узнал о существовании таких программ, как Dosbox-X (модификация Dosbox, эмулирующая более мощное железо для запуска Win9x игр), а также WineVDM и Boxedwine. Так что, дело эмуляции не стоит на месте, и это радует.
Если мы говорим об играх середины 2000ых, то нужна эмуляция видеокарт уровня Radeon 9800 или Geforce 9800GT. Эмуляцию видеокарты осуществляет процессор, а это значит, что даже с самой лучшей в мире оптимизацией, без колоссальной революции в мощности процессоров или методе эмуляции запустить эти видеокарты будет абсолютно невозможно.
Кое-что мне удалось узнать уже после написания этого текста. По показателю однопоточной производительности мой старый i5-3470 (2012 год) набирает в cinebench в районе 700 "попугаев", мой нынешний i3-10100F(2020) - в районе 1150, а новейший i3-13100(2022), если верить статистике, набирает уже в районе 1700 очков. Так что мои первоначальные убеждения, что у большинства нынешних процессоров производительность в однопотоке примерно одинакова, её рост находится на уровне погрешности, а поколения процессоров друг от друга отличаются только циферкой и микрооптимизациями, оказались неверными. В последние годы мы наблюдаем неожиданный для меня рост однопоточной производительности. Если верить комментариям с Reddit, процессора типа i7-i9 13-14 поколений или седьмых Райзенов седьмого поколения уже достаточно для запуска Pentium II-450 на 100% скорости. Наивно полагать, что такой резкий рост производительности обусловлен одним только желанием поиграть в игрушки.
Также очень важно отметить, что эмулятор ценность несёт далеко не столько игровую, сколько историческую. 86box - это окно в 90-ые, которое позволяет пощупать старое программное обеспечение. Даже графический интерфейс Windows 98, который тогда казался обыденностью, сегодня приносит немало эстетического удовольствия, в сравнении с осточертевшим убогим плоским и квадратичным дизайном Windows 8 и 10. Лично мне приносит небывалое удовольствие ощущение "матрицы", "компьютера в компьютере". К тому же, можно устраивать экстремальные испытания - например, месяц пользоваться только Windows 98. Этакий "компьютерный пост". Или тестировать свой сайт на Internet Explorer 4.0. Я уже не говорю, что лет через 150 такие эмуляторы можно будет использовать в музеях в целях изучения быта людей давно минувших 1990ых годов. Самый старый процессор, который по зубам 86box - IBM 8088 1981 года выпуска. В общем, идей, как можно применить этот эмулятор, не мало.
Подводя итоги, хочу сказать, что 86box - это шаг в очень верном направлении. Я надеюсь, что компьютерная эмуляция будет развиваться и дальше, и позволит в будущем запускать без исключения все игры и программы.