Инструкция по добавлению RetroArch в Hakchi2
Установка:
1. Перейти по ссылке
https://github.com/pcm720/retroarch-clover/releases/tag/0.4-extra и скачать release.zip
2. Распаковать архив в произвольную папку.
3. Скопировать retroarch.hmod и интересующие ядра из папок cores и extra_cores в папку user_mods, что в директории Hakchi2. Папки целиком копировать нельзя, только сами .hmod
4. Открыть Hakchi2, найти сверху "Модули", нажать "Установить модули" и поставить галочки на интересующих модулях. Нажать "ОК" и следовать инструкциям.
5. Добавить игры как обычно.
Примечания для Hakchi 2.12 (в новых версиях всё будет по-другому):
Некоторые определятся сами, у некоторых в параметрах командной строки будет /bin/path-to-your-app. В таком случае path-to-your-app нужно будет заменить на файл для запуска соответствующего игре ядра, которые можно подсмотреть в "какие аргументы можно использовать в параметрах командной строки". В случае игр Mega Drive лучше перед добавлением поменять расширение .bin на .md или .gen.
6. Синхронизировать и играть.
Примечания:
1. Если нужен ярлык для запуска интерфейса RetroArch, нужно добавить CloverApp.zip как игру (перетягиванием в Hakchi2). Всё должно подхватиться само, а в меню NES Mini появится иконка RetroArch.
2. Можно создавать свои модули для ядер. Для этого использовать шаблон в libretro_core_template.zip и уже существующие ядра в качестве примера (.hmod — это на самом деле .tgz, который можно распаковать любым относительно современным архиватором)
3. Скрипт, запускающий игры для NES, сам определяет тип игры (FDS или NES) и её маппер. Чтобы принудительно запускать игры для NES с RetroArch, нужно в параметры командной строки игры добавить флаг "--retroarch" (без кавычек). Если же игру нужно запустить не только принудительно, но и с определённым ядром, то тогда нужно вместо "--retroarch" добавить "--retroarch --core fceumm" для запуска игры с FCEUmm или "--retroarch --core nestopia" для запуска игры с Nestopia.
4. Игры для FDS по умолчанию запускаются в родном эмуляторе. При добавлении флага "--retroarch" игра будет запускаться через Nestopia.
5. Что касается дополнительных ядер:
— Среди модулей доступны некие use_nestopia.hmod, use_picodrive.hmod и use_snes9x2005.hmod.
Эти модули переключают поведение соответствующих играм скриптов запуска:
— Если установить use_nestopia, то все игры (неподдерживаемые и с флагом "--retroarch") вместо FCEUmm будут использовать Nestopia.
— Если установить use_picodrive, то все игры Mega Drive, Game Gear и Master System будут использовать PicoDrive. Перед этим, конечно, нужно установить модуль с PicoDrive (picodrive.hmod)
— Если установить use_snes9x2005, то все игры будут по умолчанию использовать SNES9x2005. Аналогично, перед этим нужно установить модуль с SNES9x2005 (snes9x2005.hmod)
Зачем добавлены аж два ядра для SNES: как обнаружили наши заграничные друзья, большинство игр идут быстрее и стабильнее (пусть и с неточностями) на SNES9x2005.
Эти модули советую устанавливать отдельно, после установки остальных.
Для того, чтобы использовать оба ядра одновременно, помимо /bin/snes сделаны ещё два скрипта для запуска — /bin/snes05 и /bin/snes10. Второй установится вместе с use_snes9x2005. Для их использования нужно менять параметры командной строки игры.
6. Для открытия меню RetroArch во время игры нужно нажать Select+Start на контроллере. Если такое поведение не устраивает, его можно поменять в настройках ввода RetroArch. Опция находится по адресу Settings —> Input —> Menu Toggle Gamepad Combo. После этого нужно сохранить конфиг, для чего нужно перейти в Configurations —> Save Current Configuration.
7. Чтобы включить сглаживание (если пиксели сильно раздражают), нужно открыть RetroArch и перейти в Settings —> Video —> Bilinear Filtering.
8. Скрипты Hakchi автоматически меняют настройки соотношения сторон RetroArch в зависимости от настроек NES Mini. При настройке ЭЛТ в некоторых ядрах будут видны линии развёртки (scanlines), при 4:3 будет картинка с соотношением сторон, которое предлагает ядро, при третьей будет 1:1. Конфиг RetroArch обновляется каждый раз при запуске игры через меню. Возможно, в будущем такое поведение будет исправлено, так как из-за него соотношения вроде 16:9 нужно выставлять при каждом запуске.
В сам модуль RetroArch включены только два модуля:
fceumm (Famicom/Nintendo Entertainment System, поддерживает кучу мапперов)
nestopia (Famicom/Nintendo Entertainment System, Famicom Disk System)
Если вас кроме NES ничего не интересует, то можно больше ничего не ставить.
Какие ядра доступны:
В папке cores доступны следующие модули:
snes9x2010 (Super Famicom/Super Nintendo)
gambatte_libretro (Game Boy, Game Boy Color)
mgba (Game Boy Advance)
glupen64 (Nintendo 64)
genesis_plus_gx (Sega Master System, Genesis/Mega Drive, Game Gear)
stella (Atari 2600)
mednafen_pce_fast (PC Engine/Turbografx 16)
fb_alpha and fb_alpha_cps2 (аркадные автоматы Neo-Geo и CP System II)
picodrive (Sega Master System, Genesis/Mega Drive, Game Gear, Sega 32X)
В папке extra_cores лежат ядра, повторяющие функционал тех, что в папке cores, а также ядра, которые меня попросили добавить (и предоставили готовый .hmod) другие пользователи:
mupen64plus (Nintendo 64) (сильно тормозит)
snes9x2005 (Super Famicom/Super Nintendo)
caprice32 (Amstrad CPC)
fbalpha2012_neogeo (Neo-Geo)
fuse (ZX Spectrum)
dosbox (MS-DOS)
mame2000 (various arcades machines)
mame2003 (various arcades machines)
mednafen_ngp (Neo Geo Pocket)
Стоит отметить, что ядра из extra_cores я не проверяю и не использую, поэтому в случае проблем с ними лучше идти в соответсвующую тему GBATemp или консультироваться со справкой libretro.
Как добавлять аркадные игры, которые идут в виде кучи файлов в ZIP-архиве (надеюсь, будет неактуально в следующих версиях Hakchi 2). Рассматриваем Final Burn Alpha (/bin/fba):
1. Закинуть архив с игрой в список игр Hakchi2, добавить из архива любой файл
2. Посмотреть, какой у игры ID, навести красоту (поставить имя правильное, добавить обложки и т. д.). Поставить галочку на игре и закрыть Hakchi2
3. Перейти в <папка Hakchi2>/games/<ID игры>
4. Закинуть туда neogeo.zip и ром-архив
5. Открыть <ID игры>.desktop в нормальном текстовом редакторе (Notepad++ или Sublime Text, например), найти линию "Exec=…" и поменять её на "Exec=/bin/fba /usr/share/games/nes/kachikachi/<ID игры>/<ром-архив с расширением>"
6. Синхронизировать.
Neo-Geo сложно, но можно.
Если очень хочется и прямо сейчас, то можно neogeo.zip и ром-архив (один, больше вряд ли влезет) закинуть в папку CLV-Z-RARCH, а саму игру запускать через интерфейс RetroArch.
Если хочется ярлыком, то тут нужно ковырять .desktop-файлы и самостоятельно присваивать игре ID.
Как вариант:
1. Закинуть архив с игрой в список игр Hakchi2, добавить из архива любой файл
2. Посмотреть, какой у игры ID, навести красоту (поставить имя правильное, добавить обложки и т. д.). Поставить галочку на игре и закрыть Hakchi2
3. Перейти в <папка Hakchi2>/games/<ID игры>
4. Закинуть туда neogeo.zip и ром-архив
5. Открыть <ID игры>.desktop в нормальном текстовом редакторе (Notepad++ или Sublime Text, например), найти линию "Exec=…" и поменять её на "Exec=/bin/fba /usr/share/games/nes/kachikachi/<ID игры>/<ром-архив с расширением>"
6. Синхронизировать.
Если нигде ничего не напутал, то должно заработать
Какие аргументы можно использовать в параметрах командной строки:
<core> — ядро
<rom> — ром
<clover_args> — аргументы родного эмулятора
- /bin/retroarch-clover <core> <rom> <clover_args>
запускает RetroArch с указанным ядром, подхватывает аргументы оригинального эмулятора и отвечает за сохранение состояний в оболочке NES
- /bin/retroarch-mini [core] [rom] [args]
запускает RetroArch напрямую
- /bin/retroarch
исполняемый файл RetroArch
- /bin/nes <rom> <clover_args>
запускает "fceumm" или "nestopia"
- /bin/gb <rom> <clover_args>
запускает "gambatte"
- /bin/gbc <rom> <clover_args>
запускает "gambatte"
- /bin/gba <rom> <clover_args>
запускает "mgba"
- /bin/md <rom> <clover_args>
запускает "genesis_plus_gx" ("picodrive" после установки use_picodrive.hmod)
- /bin/sms <rom> <clover_args>
запускает "genesis_plus_gx" ("picodrive" после установки use_picodrive.hmod)
- /bin/gg <rom> <clover_args>
запускает "genesis_plus_gx" ("picodrive" после установки use_picodrive.hmod)
- /bin/32x <rom> <clover_args>
запускает "picodrive"
- /bin/snes <rom> <clover_args>
запускает "snes9x2010" или "snes9x2005"
- /bin/snes05 <rom> <clover_args>
запускает "snes9x2005"
- /bin/snes10 <rom> <clover_args>
запускает "snes9x2010", если установлен use_snes9x2005.hmod
- /bin/n64 <rom> <clover_args>
запускает "glupen64"
- /bin/a26 <rom> <clover_args>
запускает "stella"
- /bin/pce <rom> <clover_args>
запускает "mednafen_pce_fast"
- /bin/fba <rom> <clover_args>
запускает "fb_alpha"
- /bin/cps2 <rom> <clover_args>
запускает "fb_alpha_cps2"
- /bin/neo <rom> <clover_args>
запускает "fbalpha2012_neogeo"
- /bin/cpc <rom> <clover_args>
запускает "caprice32"
- /bin/zx <rom> <clover_args>
запускает "fuse"
- /bin/dosbox <rom> <clover_args>
запускает "dosbox"
- /bin/mame2000 <rom> <clover_args>
запускает "mame2000"
- /bin/mame2003 <rom> <clover_args>
запускает "mame2003"
- /bin/ngp <rom> <clover_args>
запускает "mednafen_ngp"