![](https://habrastorage.org/webt/x_/ko/kc/x_kokcrafcdpaauws2voygzfeee.jpeg)
Сегодня никому не нужно объяснять, что такое эмуляторы старых компьютеров и игровых устройств. Будучи однажды предметом интереса немногочисленных энтузиастов, они давно уже перешли в мейнстрим и теперь доступны повсюду: на компьютерах и консолях, в смартфонах и браузерах, в коммерческих переизданиях старых игр и самостоятельных устройствах.
Однако, позволяя запускать программы и игры прошлого на компьютерах современности, большинство эмуляторов всё же не воспроизводит полностью аутентичный пользовательский опыт, так или иначе приукрашая историческую действительность. Где-то из-за технического несовершенства, а где-то и целенаправленно, чтобы подтянуть разработки прошлых лет к современным стандартам. Об этом и поговорим.
▍ Вводные
Эмулятор — это виртуальная машина, программно воспроизводящая архитектуру устройства и позволяющая выполнять программы для него на любой другой, возможно, совершенно иной архитектуре. По своей природе точность воспроизведения зависит в основном от глубины понимания этой архитектуры разработчиком эмулятора. В том числе эмуляция позволяет отступать от истины, опуская некоторые детали или применяя радикально иную внутреннюю реализацию отдельных элементов, как бы модифицируя исходную платформу, сохраняя при этом совместимость с её ПО.
Цели, которые преследуют разработчики эмуляторов, могут быть разными. Кто-то просто хочет поиграть в старые игрушки, которые, возможно, долгое время были труднодоступными из-за редкости оригинального железа (например, 3DO и PC-FX) и не беспокоится о возможных небольших отличиях. Другие ставят высокие цели максимально точного сохранения истории вычислительной техники, документируя таким образом архитектуру и архивируя её цифровое наследие. Третьи хотят эту историю улучшить и дополнить, или же творчески переосмыслить.
![](https://habrastorage.org/webt/lq/jz/kf/lqjzkfpvtx4dhxdqs2uqkdmmrcs.jpeg)
Сразу же, на момент своего появления эмуляторы компьютеров и консолей выдавали идеализированную картинку: каждый пиксель экрана эмулируемого устройства отображался непосредственно в пиксель экрана исполняющего компьютера. Это, однако, было далеко от истинной внешности игр, предназначенных для специфических устройств отображения, обладающих множеством нюансов в геометрии, чёткости, цветопередаче, послесвечении и так далее. Вспомните ламповый телевизор своей бабушки — его экран мало похож на экран современного ноутбука.
Лично я предпочитаю играть в режиме максимально чётких, несглаженных пикселей, без коррекции соотношения сторон, который позволяет разглядеть все детали и тонкую работу пиксельных художников — но и это определённо не то же самое визуальное представление игры, которое наблюдали её разработчики или игроки прошлого.
![](https://habrastorage.org/webt/eb/lu/wp/ebluwpzmweucjlbkurn5qxzqiqu.jpeg)
Разработчики же при создании игр рассчитывали именно на такое качество изображения, и учитывали особенности, в том числе применяя их для создания визуальных эффектов. Например, для имитации полупрозрачности с помощью чередования прозрачных и непрозрачных пикселей.
Воспроизведение аутентичного изображения до сих пор остаётся достаточно сложной задачей, а само оно не очень-то соответствует современным ожиданиям: как правило, или слишком размытое, или слишком квадратное. Поэтому одновременно с попытками имитации оригинальной внешности игр разработчики начали внедрять и функции для улучшения качества изображения и звука, а также некоторых других потребительских качеств.
Эта группа нововведений в целом обозначается сленговым словечком «улучшайзеры» — очень интересное явление, открывающее новые возможности для старых игр. К тому же, касается оно далеко не только графики, но и множества других аспектов.
▍ Зарождение
Сама технология эмуляции (виртуализации), конечно, существовала и раньше и применялась для специальных целей в узких кругах профессионалов. Но первые эмуляторы разнообразной популярной компьютерной техники прошлых лет начали становиться доступными широким слоям населения в начале 1990-х годов. Поначалу это были эмуляторы бытовых компьютеров, таких как ZX Spectrum и Commodore 64 — вероятно, в силу их изначальной хорошей документированности.
Широкие слои населения распробовали новую технологию к середине 1990-х, когда явление набрало обороты: появились первые и уже довольно неплохие эмуляторы NES, Sega Genesis, SNES и других игровых консолей. Создать их было сложнее, так как документация по устройству этих платформ не была доступна посторонним людям. Но энтузиасты быстро смогли расколоть эти крепкие орешки методом обратной разработки, и всего за несколько лет был пройден путь до первых эмуляторов Sony PlayStation и Nintendo 64, которые появились ещё до завершения коммерческой жизни этих консолей.
В те же годы появилось такое явление, как коммерческие эмуляторы — полулегальный Bleem! (2001), позволяющий запускать игры PlayStation на более мощной Sega Dreamcast, или совершенно легальная обратная аппаратная совместимость PlayStation 2 с её предшественницей, которая использует программную эмуляцию для графической подсистемы (подробнее об этом уже рассказано на Хабре).
И уже во всех этих первых популярных эмуляторах внедрялись различные отступления от максимальной достоверности с целью улучшения различных характеристик, чтобы подтянуть их до современных стандартов. Прежде всего, конечно, это касалось графики.
▍ 2D Графика
Первые эмуляторы появились во времена MS-DOS и видеорежима VGA с разрешением 320 на 200 пикселей, и поэтому ни о каких улучшениях в них речи не шло — мощностей тогдашних ПК только-только хватало на минимально достаточную, не очень точную эмуляцию. На излишества ресурсов просто не было.
Однако компьютеры быстро развивались, и с приходом Windows и более высоких разрешений, не менее 640 на 480 пикселей, ситуация изменилась. Компьютерные мониторы обладали значительно большей чёткостью изображения, чем экраны телевизоров, и о края пикселей невиданной прежде квадратности в полноэкранном режиме уже вполне можно было порезаться. А в многозадачной и многооконной операционной системе хотелось иметь возможность работать в окне удобного размера.
![](https://habrastorage.org/webt/yp/l_/6h/ypl_6h736u5eapyolfcvvqko-5g.png)
Первые улучшения в этой области были достаточно простыми: простое увеличение экрана вдвое и втрое, или до произвольного размера окна, совсем без сглаживания или с билинейной интерполяцией, дававшей мутную картинку. Появилась и возможность настройки коррекции соотношения сторон (пиксели реальных устройств обычно не квадратные, и графика в играх учитывает этот факт), возможность кратных увеличений для избежания артефактов при растягивании окна эмулятора в произвольный размер, когда итоговые пиксели получаются разной ширины.
Далее наступила продолжительная эпоха хитроумных HD-фильтров, превращающих каждый пиксель в группу из четырёх, девяти или шестнадцати пикселей таким образом, чтобы сгладить границы между ними, не сильно теряя в чёткости. Было придумано немало подобных фильтров для решения конкретной этой задачи, дающих неплохие результаты именно для пиксельной графики. Наиболее известные среди них, реализованные во множестве эмуляторов — xSaI, Super Eagle, HQx, xBR и xBRZ.
![](https://habrastorage.org/webt/84/vc/qo/84vcqoaaseuxu6ppcdeyaijsszk.png)
Всё более продвинутые фильтры требовали всё больше вычислительных ресурсов и появлялись по мере роста мощностей ПК. Самые сложные фильтры дают довольно интересную и гладкую картинку, впрочем, довольно сильно отличающуюся по эстетике от пиксельного оригинала и больше напоминающую векторный клипарт.
![](https://habrastorage.org/webt/_f/jr/la/_fjrlawkc6jlo6xwbk2ucdv9mve.png)
Наконец, растущие мощности компьютеров, и в особенности появление пиксельных шейдеров, позволили имитировать особенности оригинальных устройств отображения: ограниченную полосу пропускания композитного видео и радиоканала, понижающую чёткость и вносящую цветовые артефакты в изображение, искажения растра на выпуклом экране, имитацию теневой маски ЭЛТ. Или же, в случае с портативными игровыми консолями — имитацию специфической структуры их ЖК-экранов.
![](https://habrastorage.org/webt/ic/sy/c4/icsyc44lmswy4y49s1yj4f5dxp8.png)
Менее очевидное улучшение, моментально ставшее стандартным — преобразование изображения высокого разрешения из чересстрочной развёртки в прогрессивную. Эта проблема наиболее актуальна для игровых консолей Sony PlayStation и Sega Saturn, на которых есть некоторое количество игр, работающих в высоком разрешении.
![](https://habrastorage.org/webt/jh/wv/qy/jhwvqyf3srmwqltaymwua_9nmtu.png)
Дело в том, что все устройства, ориентированные на работу с бытовым телевизором, способны отображать графику только в двух вертикальных разрешениях: примерно 240 или 480 строк по вертикали. При этом режимы с низким вертикальным разрешением всегда прогрессивные, а режимы с высоким разрешением — чересстрочные. При точном воспроизведении внутренней архитектуры подобных устройств в эмуляторе строки в режиме высокого разрешения будут подвержены характерному эффекту «гребёнки». Для устранения подобного эффекта требуется некоторое отступление от исторической правды, позволяющее повысить внутреннее разрешение системы и избежать подобного артефакта.
Также существуют совсем специфические улучшения, характерные для отдельных платформ.
![](https://habrastorage.org/webt/by/5g/b5/by5gb58btcj7-nsu-sqbk-txohs.gif)
Например, все 8-битные и 16-битные игровые консоли имеют аппаратное ограничение на количество одновременно отображаемых в строке растра спрайтов: если их выводится слишком много, лишние спрайты пропадают. Для компенсации этой проблемы применяется чередование порядка спрайтов, чтобы в разных кадрах исчезали разные спрайты, и в целом составленный из них объект оставался более-менее виден. В наибольшей степени этой проблеме подвержены игры на нашей любимой Денди.
Некоторые эмуляторы позволяют исключить подобное ограничение, полностью устраняя или снижая мерцание объектов. Правда, это может сломать некоторые игры, которые целенаправленно отслеживают превышение лимита по специальному аппаратному флагу, поэтому такая возможность всегда представлена опцией.
Другой пример специфического для конкретной платформы улучшения — Mode 7 в эмуляторах SNES. Этот особый видеорежим позволяет масштабировать и вращать слой фона, а также реализовать интересные эффекты псевдотрёхмерности. Работает он в низком разрешении, соответствующем стандартному разрешению экрана, а внутренняя математика имеет точность вычислений, достаточную для такого выходного разрешения. Изменения в эмуляторе позволяют значительно увеличить оба этих параметра, устраняя артефакты алиасинга и повышая детализацию.
▍ 3D графика
Если в случае с 2D играми улучшения были умеренными, в эмуляторах консолей пятого и последующих поколений они постепенно стали более значительными, радикально меняющими внешний вид игр.
Улучшения для 3D графики появились в эмуляторах натуральным образом. Для эмуляции консолей предыдущего поколения у ПК не было никаких особых средств, и всю логику работы видеосистемы приходилось воспроизводить на самом низком уровне, формируя итоговое растровое изображение полностью программно, ко времени начала эмуляции таких платформ, как Sony PlayStation и Nintendo 64, на ПК уже появились первые 3D-ускорители. И конечно, авторы эмуляторов попытались как-то приспособить их для своих задач.
Первые эмуляторы PlayStation сначала шли тем же путём, что и эмуляторы консолей предыдущего поколения: программно воспроизводили устройство графического процессора, имитируя все его особенности, и таким образом получая изображение с точно такими же артефактами, какими славится оригинальная консоль — «плывущими» текстурами, дрожащими полигонами, повсеместным дитерингом.
Однако, так как во всех эмуляторах PlayStation исторически оказалась заложена система плагинов, реализующих различные компоненты системы, быстро появились альтернативные решения, транслирующие работу с графикой на имеющийся на ПК 3D-ускоритель. Это позволило поднять разрешение графики, применить фильтрацию текстур, а также устранить артефакты аффинного текстурирования. Так началась современная эпоха графических улучшений в эмуляторах.
Последующие улучшения графики в эмуляторах для ПК позволили применять те же самые хитрые алгоритмы фильтрации, ранее использовавшиеся для сглаживания выходного пиксельного изображения на экране, но уже для исходных текстур в видеопамяти.
Новые разработки в эмуляторах PlayStation также позволили устранить вторую крупную проблему местной графики — дрожание полигонов, возникающее вследствие целочисленных вычислений для вершин. Повышенная точность вычислений в GTE и сохранение субпиксельной точности для передачи рендереру существенно улучшили стабильность изображения, что особенно важно при повышении разрешения.
![](https://habrastorage.org/webt/ab/wy/j2/abwyj2rik3lyx5yjkc3t3znzgmg.jpeg)
Что касается Nintendo 64, из-за сложности её архитектуры полноценная низкоуровневая эмуляция на ПК тех лет была попросту невозможна. Однако уже в январе 1999 появился эмулятор UltraHLE, позволяющий запустить некоторые коммерческие игры с отличным качеством и достаточной скоростью, при условии наличия на ПК 3D-ускорителя.
Дело в том, что игры для Nintendo 64 в основном разрабатывались с использованием официального SDK от SGI и Nintendo, а в эмуляторе оказалось возможным перехватить вызовы библиотечных функций, связанных с визуализацией. Таким образом, для этих игр было достаточно преобразовать полученные на раннем этапе графического конвейера данные и перенаправить их на имеющийся на ПК схожий по возможностям растеризатор. Это, конечно, работало не во всех играх, а также несколько изменило их визуальную составляющую.
![](https://habrastorage.org/webt/f-/gf/kz/f-gfkze--ivbkwofzcfkuedn_mu.jpeg)
Одновременно с этим аналогичная история произошла на PlayStation 2. Её режим обратной совместимости с первой PlayStation был реализован добавлением доброй половины всего необходимого железа из оригинальной консоли, включая процессор, память, даже звуковую подсистему, и даже интерфейс джойстика и карт памяти — код игр выполняется нативно, и для него никакой разницы в окружении нет.
Однако старый растеризатор графики, занимавшийся отрисовкой текстурированных полигонов, в эту систему включён не был. Старый GPU подменяет местный новый Graphics Synthesizer, а команды для рендеринга примитивов перехватываются основным процессором Emotion Engine и преобразуются на лету в команды для нового графического процессора.
Этим занимается программа PS1DRV, загружаемая при запуске игры от PS1. При этом предусмотрено два режима отображения: оригинальный и со сглаживанием, применяющим билинейную интерполяцию к текстурам. Удивительно, но в обоих режимах сохраняются визуальные артефакты, свойственные оригинальной PlayStation, включая характерные искажения текстур, даже сглаженных.
Относительно недавно энтузиасты разобрали устройство PS1DRV и разработали его значительно улучшенную альтернативу, DKWDRV, обладающую лучшей совместимостью с играми и расширенными настройками для выборочного улучшения графических элементов.
▍ Раскраска и подмена
Конечно, никакие фильтры не способны добавить в графику те детали, которых в ней просто нет. Поэтому отдельная группа улучшайзеров в области графики занимается не фильтрацией существующей графики, а полной её заменой: заменяет оригинальную малоцветную графику низкого разрешения на заново нарисованную более цветную или более чёткую.
Технически такая подмена может быть реализована различными способами, но, как правило, сама исходная игра при этом остаётся совершенно неизменной и нетронутой, а новая графика подключается к ней с помощью особого эмулятора и пакета ресурсов, созданного для конкретной игры. Эмулятор отслеживает обращения к оригинальным ресурсам по адресам и прочим признакам, и подменяет их новыми на лету.
![](https://habrastorage.org/webt/6j/f2/6d/6jf26dr7yk_imtudq9dso1uma1c.png)
Первым эмулятором такого рода, по всей вероятности, стал Spec256 для MS-DOS, вышедший в 1999 году и эмулирующий 8-битный компьютер ZX Spectrum. Данная платформа известна своей довольно специфической, не очень-то и цветной графикой — многие игры на ней монохромные. Spec256 был призван решить эту проблему и раскрасить игры до неузнаваемости, практически до уровня
В 2014 году аналогичная идея была реализована и в HDNes, эмуляторе игровой консоли NES (Famicom, Денди). Главным его предназначением является четырёхкратное повышение разрешения, но он также позволяет раскрашивать игры в 24-битном цвете, без каких-либо ограничений по палитрам. Было перерисовано около десятка игр, а совместимый режим реализован и в эмуляторе Mesen.
Аналогичные решения есть и для Game Boy и Sega Master System. К сожалению, они не пользуются большой популярностью из-за высокой сложности раскраски и перерисовки игр — ведь от качества выполнения этой работы зависит, можно ли считать изменения улучшением. А так как занимаются этим энтузиасты, а не профессиональные художники, во многих случаях ответ — едва ли.
Пожалуй, самый успешный проект подобного рода, 3DNes, нашумевший в 2016 году, сделал следующий шаг в том же направлении. Вместо цветности и разрешения он добавляет в игры для NES третье измерение. Пиксельные тайлы графики подменяются их нарисованными заново или предварительно сгенерированными из оригинальных изображений воксельными альтернативами. Вместе с изменяемым углом обзора камеры это позволяет преобразовать пространство экрана в некое подобие пиксельной диорамы. В некоторых играх это выглядит весьма эффектно. В 2016 году проект сам решил перейти в иное измерение, и под новым названием 3DSen стал коммерческим эмулятором, ориентированным на VR-очки.
В области же консолей с 3D графикой концепция в формате подмены текстур реализована в некоторых эмуляторах PlayStation, PlayStation 2, PlayStation Portable, Nintendo 64, Gamecube и даже Switch. Для каждой из этих платформ уже перерисовано некоторое количество игр. В силу специфики трёхмерной графики, особенно олдскульной, это действительно идёт им на пользу, и в целом идея имеет успех.
▍ Звук и музыка
Можно подумать, что улучшения в эмуляторах в основном касаются графики. И действительно, это буквально самое заметное (невооружённому глазу) проявление работы улучшайзеров. Но это далеко не единственно, что улучшают эмуляторы. Следующий аспект, часто подвергающийся улучшению — звук. В ход идут всё те же принципы: повышение технических характеристик, фильтры, подмена ресурсов.
Началось всё тоже натуральным образом. Мощностей ПК времён появления первых эмуляторов совершенно не хватало для низкоуровневой эмуляции звуковой системы. В первых эмуляторах данные для звуковых чипов просто перехватывались и с переменным успехом транслировались в то, что было под рукой: в MIDI и в команды для набортного FM-синтезатора. Звучало это абсолютно непохоже на оригинал, но было значительно лучше полной тишины. Подобные рудименты можно найти в первых версиях эмулятора iNES (1996), собственно, одного из первых эмуляторов NES, а также в некогда широко известном эмуляторе Шалаева для MS-DOS (1997), поддерживающем ZX Spectrum 128K, а также в японском эмуляторе G-NES родом из ранних 2000-х.
![](https://habrastorage.org/webt/7l/ia/xh/7liaxhwsh6nnjuho59ebfsbiue8.png)
Когда ПК обзавелись достаточными мощностями и начали эмулировать звуковые чипы на низком уровне, производя на выходе поток цифрового звука, улучшения не заставили себя ждать. Прежде всего, это было повышение частоты дискретизации, в том числе внутренней частоты дискретизации звуковой системы таких игровых консолей, как SNES и PlayStation. Далее последовали лучшие алгоритмы интерполяции, подменяющие собой штатно используемые в подобных системах — своего рода альтернатива пиксельным фильтрам для графики.
Появились и более интересные улучшения, преображающие сам характер звучания. Из простого — разделение каналов в стерео, в том числе с surround-эффектом. Подобные дополнения применялись для платформ, изначально обладавших монофоническим звуком: NES, Master System и оригинальный ZX Spectrum 128K.
Авторы некоторых эмуляторов попытались пойти дальше. Так, эмулятор Dega имел опцию подмены обычной формы волны штатного звукового чипа Sega Master System более продвинутыми тембрами в зависимости от частоты звука: басовый инструмент для низких нот, солирующие тембры для средних и высоких частот. Это существенно разнообразило довольно бедное исходное звучание, хотя и сделало его совершенно непохожим на оригинал. К сожалению, дальнейших разработок в этом направлении не велось.
Наконец, существует немало эмуляторов, применяющих концепцию подмены оригинальных ресурсов. Вместо имитации работы штатной звуковой системы, они перехватывают вызовы в конкретных играх, начинающие воспроизведение того или иного звука или мелодии, и проигрывают заранее записанные цифровые файлы с новыми аранжировками игровых мелодий, порой довольно спорного качества. Первым подобным эмулятором стал MetalMAME (2004), эмулирующий аркадные автоматы. Впоследствии аналогичный функционал появился в ранее упомянутом HDNes и эмуляторах других, более продвинутых платформ, в дополнение к HD-пакам текстур.
▍ И др.
Многие прочие улучшения стали настолько привычными, что мы даже не задумываемся об их существовании: это стандарт «де факто» для эмуляторов. Однако подобные возможности совершенно не свойственны оригинальным платформам, а некоторые и вовсе невозможны. Иные же улучшения доступны очень давно, но мало кто знает об их существовании и активно ими пользуется.
![](https://habrastorage.org/webt/ng/jx/sz/ngjxszqquzafm_qboriamidg-ic.jpeg)
Прежде всего, это возможность быстрого сохранения и загрузки состояния игры в любой момент времени. Она крайне полезна и сама по себе, но также она позволила реализовать невиданную ранее возможность перемотки действия назад, реализованную в некоторых эмуляторах. Прямо-таки пески времени Принца Персии, но совершенно в любой игре.
Также быстрые сохранения пригодились на эмулирующих карманных консолях, подобных популярным в прошлом Dingoo или современным Anbernic. С их помощью стало возможным автоматически продолжить игру с того же самого момента после выключения и включения консоли, а также организовать список недавно запущенных игр с возможностью моментального переключения между ними, опять же с возвратом в точно тот же момент.
Следующая группа возможностей связана с изменением скорости работы игры. Эмулятор можно поставить на паузу: удивительно, но не в каждой игре предусмотрена пауза, ускорить действие в разы или даже сотни раз, что может быть полезно, например, для ускоренной прокачки в играх жанра RPG, или наоборот, игру можно продвигать буквально покадрово. Это открывает целый пласт возможностей, вершиной которых является Tool-Assisted Speedruns, экстремально идеальные прохождения игр, эксплуатирующие все мельчайшие особенности их устройства, недоработки и ошибки в коде (смотрите безумие в видео выше) — подробнее об этом, впрочем, как-нибудь в другой раз.
Возможность, не очень часто используемая на практике, но, тем не менее, предусмотренная в ряде эмуляторов — возможность разгона процессора эмулируемой системы. Это помогает устранить некоторые просадки в скорости игрового процесса, например, в игре Contra Force для Денди. Однако далеко не в каждой игре подобный разгон даёт заметное улучшение, а в других играх он даже мешает, излишне ускоряя всё действие. Также он может повредить совместимости, поэтому по умолчанию подобная опция обычно отключена.
![](https://habrastorage.org/webt/v8/kk/bh/v8kkbhikua0gq8g1ra46hlb1wj0.png)
Другое улучшение, чаще присутствующее в эмуляторах домашних компьютеров, хранящих игры на магнитной ленте и дискетах — ускоренная загрузка. В зависимости от платформы это может быть или полное исключение процесса загрузки, или значительное его ускорение. Особенно актуально это для платформ, подобных ZX Spectrum и Commodore Amiga. Впрочем, ускорение загрузки также может вредить совместимости, а то и вовсе быть неприменимо к некоторым играм. Возможность ускоренной загрузки, также отключаемая, предусмотрена и в ранее упомянутом режиме обратной совместимости Sony PlayStation 2.
▍ За пределы
Как бы ни продвинулись улучшайзеры в эмуляторах на сегодняшний момент, есть ряд вещей, которые им не под силу — их никак нельзя изменить на уровне эмулятора, не затрагивая код самой игры. А очень хочется.
Прежде всего, в современных реалиях высок запрос на изменение формата изображения. Ведь за прошедшие десятилетия помимо смены технологии с ЭЛТ, изменилось и стандартное соотношение сторон: раньше экраны придерживались форм-фактора 4:3 (или 3:4 на некоторых аркадах), теперь же повсеместно применяется соотношение 16:9, и современному игроку почти квадратный экран доставляет дискомфорт. К сожалению, раскрыть поля только средствами эмулятора, без модификации самих игр, для большинства платформ (за исключением Sega Saturn) не представляется возможным — игры просто-напросто не рисуют ничего за пределами видимой области.
Другая проблема — частота кадров и плавность работы игры. Хотя эмулятор позволяет разогнать эмулируемый процессор, код самих игр ничего не знает про такую возможность. В результате разгона может или слишком ускоряться игровой процесс, причиняя неудобство и не добавляя плавности, или же игра может принудительно работать на какой-то фиксированной частоте кадров — как, например, игровой процесс оригинального Doom 1993 года был строго привязан к 35 кадрам в секунду.
Наконец, средствами только лишь эмулятора нельзя добавить в трёхмерные игры прошлого современные технологии: тесселяцию, попиксельное освещение и нормал маппинг, или новомодный рейтрейсинг в конце концов. Нельзя даже просто подменить 3D-модели на более качественные. Дело в том, что на уровне графической подсистемы этих платформ информация о 3D пространстве, отдельных объектах и источниках света уже утрачена. Есть только набор спроецированных в пространство экрана треугольников, и с ними одними можно сделать немногое.
Тем не менее, добавить и такие улучшения возможно за счёт доработки самих игр. Игры можно обучить рисовать за границами экрана, работать с повышенной производительностью процессора, передавать наружу необходимую дополнительную информацию, и делать многое другое. Однако дорабатывать игры очень сложно. Требуется глубокое понимание и устройства их исходной платформы, и устройства самих этих игр. Способных на подобные свершения людей на нашей планете не так уж много.
В последнее время в этой области был совершён прорыв, появилась концепция «статической рекомпиляции» (не динамической, это другое): разборка бинарного кода игр в собираемый современным компилятором под современную платформу исходник, превращающийся обратно в работоспособную игру. Таким образом, становится гораздо проще вносить любые необходимые изменения, не обладая столь глубокой компетенцией, какая требовалась ранее.
Пока остаётся только догадываться, какие ещё крупные прорывы могут случиться в будущем, например, в области фильтрации и «обтрёхмеривания» изображения или кардинальной переработки звучания в результате развития и применения нейросетевых технологий.
▍ Заключение
Хотя сам я отношусь к улучшайзерам довольно скептически и ими не пользуюсь, я всё же думаю, что их наличие — это большой плюс. Они возводят мосты между настоящим и прошлым, помогают некоторой аудитории поддерживать интерес к играм прошлого. Главное, чтобы их применение не превратилось незаметно в обязательную опцию, и чтобы мы не забыли, какими игры были на самом деле, и какими мы их полюбили однажды — простыми, ненакрашенными, настоящими.
Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
![](https://habrastorage.org/webt/tp/sk/z-/tpskz-7w7a8e74isoowuep40xeg.png)