Новости

Как эмулятор GameCube / Wii Dolphin получил турбонаддув

  1. заметка об эмуляции и законности

Что-то замечательное происходит с   дельфин   ,  Эмулятор GameCube и Wii существует уже более десяти лет, а это долгое время для активной разработки эмулятора

Что-то замечательное происходит с дельфин , Эмулятор GameCube и Wii существует уже более десяти лет, а это долгое время для активной разработки эмулятора. Он родился как грубый ограниченный эмулятор GameCube, а затем превратился в шумный проект с открытым исходным кодом в 2008 году. За последние несколько лет Dolphin стал одним из самых простых в использовании эмуляторов из когда-либо созданных, а также одним из единственных эмуляторов. сделать много игр лучше. Вы не играли в Super Mario Galaxy, пока не сыграли в нее на 1440p.

Сегодня Dolphin делает то, что я никогда не видел в других проектах эмулятора. За долгие годы разработки большинство проектов эмуляторов были заброшены, но Dolphin продолжает вносить значительные, иногда огромные улучшения в совместимость и производительность. В августе Эмуляция ядра процессора Dolphin повысила производительность на 26%. В сентябре еще одно обновление принесло 16% прироста производительности во всех играх, а в некоторых играх прирост составил более 100%.

Это почти невероятные улучшения, и большинство из них связано с одним вкладчиком. Она идет за ручку Fiora Aeterna онлайн, и она только помогает Дельфину в течение двух месяцев.

«Поначалу увлекаться Дельфином было немного нервно; Я никогда раньше не участвовал в проекте с открытым исходным кодом », - написал Фиора в электронном письме, когда я протянул руку, чтобы рассказать о последних улучшениях эмулятора. «Для меня это был внутренний конфликт на протяжении многих лет; с одной стороны, было так много классных вещей с открытым исходным кодом, над которыми я хотел поработать, но с другой стороны это могло быть действительно пугающим (с соотношением полов 50: 1, безусловно, не помогало). Вдохновение испытать Дельфина на самом деле пришло от осознания того, что у них уже есть член команды женского пола (Рэйчел Брик) - я подумала, если она найдет это в порядке, может, мне стоит попробовать? Моя надежда в конечном итоге оправдалась: команда Дельфина была действительно необычайно полезна и дружелюбна, и никогда не выглядела такой, чтобы высмеивать меня за кажущиеся глупыми вопросы.

заметка об эмуляции и законности

Если вы не внимательно следите за сценой эмуляции, вы можете удивиться, почему Nintendo не закрыла проект Dolphin. Код самого эмулятора полностью легален. Он написан такими программистами, как Fiora, и ни один из этого кода не принадлежит Nintendo. Для наиболее точной эмуляции звука Dolphin требует DSP (цифровой сигнальный процессор), выгруженный из Wii; загрузка, которая является незаконной, но выгрузка ее с вашего собственного модифицированного Wii совершенно законна.
Копирование ваших собственных дисков Wii / GameCube является законным, но загрузка их определенно запрещена. Это пиратство. Не делай этого.

Фиора - программист днем, и она в свободное время помогает Дельфину. Как ни странно, она обязана своей карьерой другому эмулятору под названием NO $ GBA, который она обнаружила, когда ей было 10 лет. Она хотела играть в покемонов, но ее родители не купили бы ей Game Boy. Поэтому она нашла способ играть в нее на своем компьютере. И в процессе стало любопытно, как работают эмуляторы. Она начала больше узнавать о программировании. Четырнадцать лет спустя это ее дневная работа.

На Dolphin Fiora внесла основной вклад в ядро ​​процессора эмулятора. GameCube и Wii работают на архитектуре IBM PowerPC, в которой используется набор инструкций, отличный от процессоров x86, на которых работают практически все ПК. Эмуляция этих консолей означает преобразование инструкций PowerPC в инструкции x86. Вот почему эмуляция может быть такой сложной, как FAQ дельфина кратко объясняет: «при эмуляции каждая базовая инструкция, которую запускает игра, должна быть преобразована в то, что может выполнить ПК. В зависимости от инструкции это может занять от 2х до 100х тактовых циклов, что объясняет, почему для эмуляции GameCube требуется процессор с частотой 486 МГц ».

Fiora более подробно остановила процесс эмуляции процессора.

«Самым базовым видом эмулятора процессора является интерпретатор; он последовательно выполняет инструкции, анализирует каждую из них и вызывает соответствующую функцию для этой инструкции », - написала она. «Переводчики также очень часто используются для языков сценариев (таких как Python, Ruby, Lua и т. Д.).

«JIT-компилятор берет блоки кода и преобразует их в код x86 (перекомпиляцию), а затем выполняет его. Это намного быстрее - на порядок! Это проявляется, например, в веб-браузерах: сначала они используют интерпретатор для запуска Javascript, затем они перекомпилируют наиболее часто используемые части с помощью базового перекомпилятора, а иногда, если часть кода используется полностью, они перекомпилируют его с более медленным оптимизирующим компилятором, который генерирует более эффективный код.

«Dolphin не настолько сложен - у него есть один перекомпилятор, который выполняется на всех блоках кода. Но перекомпилятор может преобразовывать только те команды, которые он знает, как перекомпилировать; в противном случае он должен остановиться и вернуться к интерпретатору для этого. одна инструкция, и это действительно медленно. Вполне ожидаемо, что перекомпилятор должен вернуться к интерпретатору для выполнения некоторых инструкций, но в идеале этих инструкций должно быть очень мало, и это может быть далеко друг от друга. Это происходит и в других перекомпиляторах, например, производители браузеров советуют люди не используют определенные конструкции Javascript, потому что они вынуждены переходить в режим интерпретатора и сильно замедляют работу ».

После всего этого до сих пор? Августовское обновление дельфина утверждает, что работа Fiora над JIT-компилятором ускорила его на 26%. В течение одного месяца! Она уточнила, что это были общие усовершенствования с помощью компилятора, что означает «лучшие способы оптимизации блоков кода (перемещение команд, объединение команд и т. Д.) И лучшие способы реализации отдельных команд PowerPC с меньшим количеством команд x86, чем раньше».

Общие улучшения перекомпиляции улучшают базовую производительность эмулятора, но другая ее важная задача - реализация недостающих инструкций - помогает повысить эффективность работы отдельных игр. Помните, что если компилятор не распознает инструкцию, он должен использовать гораздо более медленный интерпретатор процессора. Поскольку игры состоят из миллионов инструкций процессора, существует множество возможностей для замедления. «За последние два месяца я реализовал гораздо больше [пропущенных инструкций], благодаря чему перекомпилятор x86 выполнил около 90% реализованных инструкций», - пишет Фиора. «Остальные в основном системные инструкции, которые используются редко».

Работа Fiora над Dolphin также помогла исправить некоторые давние проблемы с конкретной производительностью игры. Например, в Sega Super Monkey Ball и F-Zero GX использовался необычный фрагмент кода, который практически не используется в других играх GameCube, и в результате код не был встроен в перекомпилятор. Она исправила это. Она также основала работу другого участника, magumagu, чтобы донести свои исправления для физики и эмуляции столкновений до аппаратного JIT-компилятора и интерпретатора.

«Магумагу обнаружил, что в некоторых случаях операции умножения с плавающей точкой имеют слегка странное поведение округления», - пишет Фиора. «Исправление перекомпилятора для соответствия этому поведению стоило небольшой скорости, но эффект был огромен: он исправил привидения в Mario Kart, повторы в Brawl и F-Zero, физику в Zelda и многое другое». Как В результате теперь можно сохранять повторы игр, таких как Mario Kart Wii, на консоли, копировать файл на ПК и воспроизводить его на 100% точно. В HD.

Это видео объясняет эти ошибки и показывает, как игры работают правильно, когда они исправлены.

Другой участник, Comex, добавил две отдельные оптимизации в код Dolphin, которые увеличили производительность почти во всех играх на 8%. Каждый. Между его и Фиорой, в ряде игр наблюдался огромный скачок производительности в Dolphin всего за последний месяц:

  • Sonic Colors: на 39% быстрее
  • Звёздные войны: Разбойная эскадрилья II: Разбойный лидер: на 103% быстрее
  • F-Zero GX: 110% быстрее
  • Последняя история: на 38% быстрее
  • Xenoblade Chronicles: на 40% быстрее

Это невероятные прыжки, и в случае чрезвычайно требовательной игры, такой как The Last Story, может быть разница между стабильной частотой кадров и автостопом. Конечно, прирост производительности относительно; Например, Rogue Leader по-прежнему проблематичен из-за проблемы с кодом модуля преобразования памяти (MMU). Его увеличение на 103% во многом связано с новым способом работы с кодом MMU, который помог Fiora программировать.

Улучшения производительности благодаря вкладам Comex и Fiora. Изображение предоставлено: Dolphin-emu.org Сентябрьское обновление.

«В большинстве игр на Wii и Gamecube используется стандартное программное обеспечение для управления памятью, которое легко эмулируется, но некоторые из них выполняют свои собственные функции, что требует реализации (потенциально) всех возможностей этого аспекта аппаратного обеспечения», - объясняет Фиора. «Это мучительно медленно; До недавнего времени большинство MMU-игр испытывали проблемы со скоростью 20 кадров в секунду на быстром процессоре!

«Rogue Leader» и «Rebel Strike», в частности, уже давно символизируют неудачи Dolphin: они созданы Factor 5, легендарным разработчиком для того, чтобы довести аппаратное обеспечение до его пределов и за его пределами. В дни N64 они переписали прошивку на GPU, чтобы выдвинуть в 5 раз больше полигонов, чем предполагалось; в эпоху Gamecube они создали игры «Звездных войн», в которых использовались практически все функции книги, которые Дельфину было трудно воспроизвести. Чтобы сделать их играбельными, нужно будет не только постоянно оптимизировать ЦП, но и реализовать графические функции, которые ни одна современная карта не поддерживает в прямом эквиваленте, например ZFreeze (если он не реализован, скайбокс будет охватывать почти все в игре, и вы не сможете увидеть больше, чем несколько футов перед вами!)

Dolphin еще предстоит пройти долгий путь, прежде чем он безупречно поддержит все библиотеки GameCube и Wii - я был разочарован, узнав, что проблемы с заиканием Metroid Prime не были решены с помощью улучшений Fiora. (Тем не менее, хорошие новости: другие участники взломают эту проблему.) Но в этот момент, Dolphin поражает больше приростов производительности за месяц, чем большинство эмуляторов видят за год или два в разработке.

Если вы всегда видели потрясающие скриншоты от Dolphin и хотели попробовать их, сейчас самое время это сделать.

После всего этого до сих пор?

 

 

Клиентские игры

Реклама


Браузерные игры

 
 
Карта