Эмуляция платформы Nintendo GameCube в Linux


Я тут подумал, что было бы возобновить цикл статей по эмуляции различных ретро-платформ в Linux (в большинстве случаев эмуляторы кросс-платформенные и есть версии под Windpws и MacOS). Я как-то давно начинал рассматривать различные эмуляторы и делать демонстрационные видео, но в связи с недостатком времени я решил сосредоточиться, на статьях по системному администрированию. Последнее время, я понял, что этот блог не приносит ни дохода, ни морального удовлетворения и в большинстве случаев мне приходится общаться с "сильно начинающими администраторами" по их несерьезным проблемам. Исходя из этого, как вы наверное поняли, я решил полностью переделать свой сайт и вынести блог на субдомен https://blog.gita-dev.ru, а из основного домена я сделаю просто лэндинг-резюме. Естественно, что я убрал все возможные формы обратной связи т т.п., они конечно со временем появятся в виде линков на прайс-лист с главной страницы. Блог я конечно забрасывать не собираюсь, но буду писать только о том, что интересует лично меня, не особо расписывая детали реализаций того или иного внедрения.

Как вы наверное поняли из названия заметки, сегодня я расскажу вам о эмуляции платформы GameCube и Nintendo WII, причем вторая платформа эмулируется этим же эмулятором, но обладает довольно специфичным контроллером который я в нашей деревне в продаже не видел. Для эмуляции платформ GameCube и Nintendo WII слуджит эмулятор Dolphin Emu и насколько мне известно это единственный эмулятор этой платформы и он достаточно хорошо развивается (если вы посмотрите на официальный репозитарий на GitHub проект не заброшен).

Эмулятор Nintendo Game Cube для Ubuntu Linux

Установка и настройка Dolphin EMU

Проект кросс-платформенный и в дистрибутиве Ubuntu Linux представлен пакетом dolphin-emu, который можно установить простой командой:

# aptitude install dolphin-emu

В Ubuntu 18.04 стабильная версия пакета 5.0.

Эмулятор Nintendo GameCube в Linux

Честно говоря этой платформы, что называется в живую я не видел (как и многих других), ведь как наверное знают мои ровесники в лихих 90-х и нулевых официальные приставки в Россию как-то не особо поставлялись и наш рынок был завален разного рода пиратскими вариантами Dendy (клон Famicom) или консолями Sega Mega Drive 2 (тут я тоже сомниваюсь, что сильно лицензионными), поэтому едиственное, что я видел и пробовал играть из ретро-платформ это NES/Famicom и Sega.

С образами игр для этой платформы я впервые столкнулся когда хотел поиграть в Viewtiful Joe 2, а эмулятор Play Station 2 образ этой исошки как-то не очень хорошо обрабатывал. На Википедии я прочитал, что VJ2 это не эксклюзивка для PS2 и выходила еще и для Nintendo Game Cube и тут я собственно и познакомился с этим отличным эмулатором.

Обратите ваше внимание, что штатный пакет Dolphin в вашем дистрибутиве мягко говоря не сильно свежий и я рекомендовал бы вам собрать свежий пакет, так как на мой субъективный взгляд он работает гораздо стабильнее и быстрее, а официальный репозитарий на GitHub вы можете найти по адресу https://github.com/dolphin-emu/dolphin.

Если у вас есть хота-бы минимальный опыт работы с системами Linux, то вы уже наверняка хлебнули горюшка и умеете компилировать программное обеспечение. Собираем самую свежую версию Dolphin EMU самым, что ни на есть типовым способом:

# cd /usr/src/
# git clone https://github.com/dolphin-emu/dolphin.git
# cd ./dolphin/
# mkdir build
# cd build
# cmake ..
# make && make instal

Как вы увидите после запуска эмулятор как-бы той-же пятой версии, но у него уже есть ревизия 10231.

Git-версия Dolphin-emu

Вот этот эмулятор мне понравился гораздо больше чем штатный из пакета дистрибутива и в нем теперь есть даже Vulkan Backend если ваша видео-карта его поддерживает. Перед тем как начинать настраивать, нам надо знать реальные характеристики графики для того что-бы подобрать похожее разрешение при эмуляции и надо понимать как выглядит геймпад, чтобы максимально удобно расположить управление на Xbox360 геймпаде.

Графические характеристики консоли:

  • Глубина цвета: 24-бит RGB/32-бит RGBA 720 × 480 интерлейс (480i) или прогрессивная развёртка (480p) — 60 Hz, 720 × 576 интерлейс (576i) — 50 Hz

Более подробно про консоль вы можете прочитать в статье на википедии https://ru.wikipedia.org/wiki/Nintendo_GameCube

Геймпад консоли.

Геймпад консоли Xbox360

Так как используются триггеры в конфигурации xbox360drv не должно быть активной опции TRIGGER_AS_BUTTON /etc/default/xboxdrv:

# Make triggers work like buttons instead of zaxis
TRIGGER_AS_BUTTON=false

Настраиваем графическую подсистему эмулятора.

Я провел достаточно много экспериментов, чтобы подобрать оптимальные для себя настройки, они обеспечивают неплохое качество картинки, с FPS больше 30-и на моем железе, а самое главное, это минимум графических артефактов (без использования хаков).

Основные настройки.

Основные настройки графической подсистемы

Улучшения.

Улучшения графики эмулятора Nintendo GameCube

Как настроить геймпад, тут как говориться сильно на вкус и цвет и главное на что стоит ориентироваться, это вид реального джойстика консоли.

Настраиваем Gamepad.

Настройка GamePad Xbox 360 для GameCube

Устанавливаем каталог с играми.

Настройка каталога с играми для GaneCube

Все подготовительные настройки произведены и можно играть.

Запись скринкастов в Ubuntu Linux

Для записи скринкастов в Ubuntu Linux отлично подходит Simple Screen Recorder который позволяет производить запись как обычных экранных приложений, так и OpenGL-приложений перехватывая OpenGL Canvas, что получается гораздо качественнее.

Вы можете уствновить Simple Screen Recorder при помощи команды:

sudo apt-get update
sudo apt-get install simplescreenrecorder

Если в вашем дистрибутиве такого пакета нет, то возможно вам потребуется подключить дополнительный репозитарий:

sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt-get update
sudo apt-get install simplescreenrecorder

P.S. У меня есть канал на YouTube где вы можете найти мои Let's Play для различных платформ и эмуляторов: https://www.youtube.com/channel/UCV0P6iKfflsqlRytzw5rt-w