Введение

UltraHLE — это прекращённый эмулятор для Nintendo 64. Эмуляция Nintendo 64 (которой на тот момент было всего три года) сделала его первым эмулятором N64, способным запускать коммерческие игры с приемлемой частотой кадров на доступном в то время оборудовании, а также первым эмулятором для консоли, которая всё ещё продавалась, что побудило Nintendo предпринять юридические действия против разработчиков.

Техника сверхвысокого уровня (UHLE)

Ранние эмуляторы стремились точно эмулировать все операции низкого уровня целевой машины; это хорошо работало для консолей, таких как Super NES и Genesis, которые были значительно проще, чем компьютер, запускающий эмулятор. HLE использовался еще до эмулятора UltraHLE (для эмуляции BIOS и чипов расширения SNES). Но UltraHLE внедрил агрессивную оптимизацию и средства ускорения, которые выходят за рамки традиционного HLE. Соавторы Epsilon и RealityMan поняли, что поскольку игры для N64 были написаны на C, они могли перехватывать (гораздо меньшее количество) вызовов библиотек C, а не операций на уровне машины, и просто перереализовывать эти библиотеки. Таким образом, UltraHLE – это эмулятор, частично реализованный как симулятор, в отличие от проектов, таких как MAME. Однако он проложил путь к созданию играбельных эмуляторов современных консолей, требующих значительной графической вычислительной мощности, которую можно было легко смоделировать с помощью доступных графических карт ПК. Окончательная реализация была написана на C и использовала Glide API, предназначенный для адаптеров 3dfx. Благодаря популярности эмулятора, для UltraHLE и видеокарт, не являющихся 3dfx, было создано несколько утилит для преобразования Glide в DirectX. Высокоуровневая эмуляция UltraHLE имела свои недостатки; на момент выпуска он мог эмулировать лишь около 20 игр до играбельного состояния, поскольку эмулировал и моделировал только те вызовы, которые требовались конкретным играм; для игр, использующих различные части аппаратного обеспечения N64, требовалась адаптация эмулятора. Тем не менее, он поддерживал гораздо больше игр, чем другие современные проекты эмуляции N64, такие как Project Unreality. Эта техника была перенята эмулятором Cxbx Reloaded, который эмулирует Microsoft Xbox и использует HLE для перереализации видео- и аудио-DSP. Другие эмуляторы, помимо UltraHLE, в конечном итоге также стали использовать варианты высокоуровневой эмуляции. Например, эмулятор Dolphin, эмулирующий GameCube и Wii, использует HLE для перереализации операционной системы IOS Wii, а также имеет опцию HLE для аудио-DSP GameCube.

Ответ Nintendo и прекращение производства UltraHLE

Также примечательно для своего времени, что UltraHLE мог запускать коммерческие игры, пока консоль оставалась коммерчески востребованной, что в конечном итоге привлекло внимание Nintendo. В феврале 1999 года Nintendo начала судебное преследование авторов эмулятора и сайта, на котором он размещался. В интервью PC Zone представитель Nintendo, Бет Льюэллвин, заявила: «Nintendo крайне обеспокоена тем, что RealityMan и Epsilon распространили продукт, предназначенный исключительно для запуска нелегальных копий игр, разработанных Nintendo и её сторонними разработчиками. Мы принимаем меры для защиты и обеспечения наших прав интеллектуальной собственности, включая обращение в суд». Тем не менее, UltraHLE вышел из-под контроля как его создателей, так и Nintendo. Впоследствии Epsilon и RealityMan отказались от своих псевдонимов и перестали выходить на связь. После утечки исходного кода в 2002 году была выпущена OpenGL-версия UltraHLE под названием UltraHLE 2064, однако она не получила широкого признания, поскольку к тому времени появилось несколько более мощных эмуляторов. UltraHLE 2064 был доступен на официальном сайте до момента его закрытия.