Files
libretro/platforms/_registry.yml
T
Abdessamad Derraz e27a583975 feat: detect handheld systems by their own files
AmberELEC, EmuELEC, JELOS, KOLOS, UnofficialOS, ArchR, PAN4ELEC, dArkOS,
RetroOZ, spruceOS, CrossMix-OS, Onion, Allium, Koriki, MiyooCFW and plumOS
are found by what their builds write, named as they name themselves, and
installed to the system_directory of their RetroArch config, which follows
ArkOS and dArkOS to a second card. TrimUI stock, MinUI and a plumOS build
without a known folder are named and not installed to. Two unrelated
systems matching stop a run without a terminal.
2026-10-22 03:29:41 +02:00

860 lines
31 KiB
YAML

# Shared by every platform below: same files, same destinations.
_standalone_copies: &standalone_copies
# Switch emulators (keys)
- file: prod.keys
targets:
linux:
- $HOME/.local/share/yuzu/keys
- $HOME/.local/share/eden/keys
- $HOME/.local/share/citron/keys
- $HOME/.local/share/suyu/keys
- $HOME/.var/app/dev.eden_emu.eden/data/eden/keys
- $HOME/.config/Ryujinx/system
- $HOME/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/system
windows:
- '%APPDATA%\yuzu\keys'
- '%APPDATA%\eden\keys'
- '%APPDATA%\citron\keys'
- '%APPDATA%\suyu\keys'
- '%APPDATA%\Ryujinx\system'
darwin:
- $HOME/Library/Application Support/yuzu/keys
- $HOME/Library/Application Support/Ryujinx/system
- file: title.keys
targets:
linux:
- $HOME/.local/share/yuzu/keys
- $HOME/.local/share/eden/keys
- $HOME/.local/share/citron/keys
- $HOME/.local/share/suyu/keys
- $HOME/.var/app/dev.eden_emu.eden/data/eden/keys
windows:
- '%APPDATA%\yuzu\keys'
- '%APPDATA%\eden\keys'
- '%APPDATA%\citron\keys'
- '%APPDATA%\suyu\keys'
darwin:
- $HOME/Library/Application Support/yuzu/keys
# 3DS emulators
- file: Citra/sysdata/aes_keys.txt
targets:
linux:
- $HOME/.local/share/azahar-emu/sysdata
- $HOME/.var/app/org.azahar_emu.Azahar/data/azahar-emu/sysdata
windows:
- '%APPDATA%\Azahar\sysdata'
# common_paths.h:36,61 (azahar 987f1840).
darwin:
- $HOME/Library/Application Support/Azahar/sysdata
- file: Citra/sysdata/boot9.bin
targets:
linux:
- $HOME/.local/share/azahar-emu/sysdata
- $HOME/.var/app/org.azahar_emu.Azahar/data/azahar-emu/sysdata
windows:
- '%APPDATA%\Azahar\sysdata'
# common_paths.h:36,61 (azahar 987f1840).
darwin:
- $HOME/Library/Application Support/Azahar/sysdata
# DuckStation (PS1)
- pattern: 'scph*.bin'
targets:
linux:
- $HOME/.local/share/duckstation/bios
- $HOME/.var/app/org.duckstation.DuckStation/config/duckstation/bios
windows:
- '%LOCALAPPDATA%\DuckStation\bios'
- '%USERPROFILE%\Documents\DuckStation\bios'
darwin:
- $HOME/Library/Application Support/DuckStation/bios
# PCSX2 (PS2)
- pattern: 'ps2-*.bin'
emulator: pcsx2
targets:
linux:
- $HOME/.config/PCSX2/bios
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
windows:
- '%USERPROFILE%\Documents\PCSX2\bios'
darwin:
- $HOME/Library/Application Support/PCSX2/bios
# RPCS3 (PS3) - needs menu install
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
detect:
linux:
- $HOME/.config/rpcs3
- $HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3
windows:
- '%APPDATA%\rpcs3'
# Dolphin (GameCube)
- file: GC/USA/IPL.bin
emulator: dolphin
targets:
linux:
- $HOME/.local/share/dolphin-emu/GC/USA
- $HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC/USA
windows:
- '%APPDATA%\Dolphin Emulator\GC\USA'
darwin:
- $HOME/Library/Application Support/Dolphin/GC/USA
- file: GC/EUR/IPL.bin
emulator: dolphin
targets:
linux:
- $HOME/.local/share/dolphin-emu/GC/EUR
- $HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC/EUR
windows:
- '%APPDATA%\Dolphin Emulator\GC\EUR'
darwin:
- $HOME/Library/Application Support/Dolphin/GC/EUR
- file: GC/JAP/IPL.bin
emulator: dolphin
targets:
linux:
- $HOME/.local/share/dolphin-emu/GC/JAP
- $HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC/JAP
windows:
- '%APPDATA%\Dolphin Emulator\GC\JAP'
darwin:
- $HOME/Library/Application Support/Dolphin/GC/JAP
- file: dsp_rom.bin
emulator: dolphin
targets:
linux:
- $HOME/.local/share/dolphin-emu
- $HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu
windows:
- '%APPDATA%\Dolphin Emulator'
darwin:
- $HOME/Library/Application Support/Dolphin
- file: dsp_coef.bin
emulator: dolphin
targets:
linux:
- $HOME/.local/share/dolphin-emu
- $HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu
windows:
- '%APPDATA%\Dolphin Emulator'
darwin:
- $HOME/Library/Application Support/Dolphin
# PPSSPP
- file: PPSSPP/ppge_atlas.zim
targets:
linux:
- $HOME/.config/ppsspp/PSP/SYSTEM
- $HOME/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SYSTEM
windows:
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
darwin:
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
# Flycast (Dreamcast)
- file: dc/dc_boot.bin
targets:
linux:
- $HOME/.local/share/flycast/data
- $HOME/.var/app/org.flycast.Flycast/data/flycast
windows:
- '%APPDATA%\flycast\data'
# shell/apple/emulator-osx/emulator-osx/osx-main.mm:83-101 (flycast 6bb0fc3e).
darwin:
- $HOME/Library/Application Support/Flycast/data
- file: dc/dc_nvmem.bin
targets:
linux:
- $HOME/.local/share/flycast/data
- $HOME/.var/app/org.flycast.Flycast/data/flycast
windows:
- '%APPDATA%\flycast\data'
# shell/apple/emulator-osx/emulator-osx/osx-main.mm:83-101 (flycast 6bb0fc3e).
darwin:
- $HOME/Library/Application Support/Flycast/data
platforms:
retroarch:
config: retroarch.yml
status: active
extract_to: system/
logo: https://raw.githubusercontent.com/libretro/RetroArch/master/media/retroarch-vector_invader-only.svg
scraper: libretro
source_url: https://raw.githubusercontent.com/libretro/libretro-database/master/dat/System.dat
source_format: clrmamepro_dat
hash_type: sha1
verification_mode: existence
base_destination: system
case_insensitive_fs: true
schedule: weekly
cores: all_libretro
target_scraper: retroarch_targets
target_source: https://buildbot.libretro.com/nightly/
install:
detect:
- os: linux
method: config_file
config: $HOME/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg
parse_key: system_directory
- os: linux
method: config_file
config: $HOME/snap/retroarch/current/.config/retroarch/retroarch.cfg
parse_key: system_directory
- os: linux
method: config_file
config: $HOME/.config/retroarch/retroarch.cfg
parse_key: system_directory
# configuration.c reads <Application Support>/RetroArch/config, and a value
# left at default is ~/Documents/RetroArch/system (platform_darwin.m).
# Older builds kept the file one level up.
- os: darwin
method: config_file
config: $HOME/Library/Application Support/RetroArch/config/retroarch.cfg
parse_key: system_directory
bios_path: $HOME/Documents/RetroArch/system
- os: darwin
method: config_file
config: $HOME/Library/Application Support/RetroArch/retroarch.cfg
parse_key: system_directory
bios_path: $HOME/Documents/RetroArch/system
# Beside retroarch.exe first, then %APPDATA%; default <exe folder>\system.
# The folders its installers, Steam and ES-DE put it in.
- os: windows
method: config_file
config: 'C:\RetroArch-Win64\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: 'C:\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles%\RetroArch-Win64\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles%\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles%\ES-DE\Emulators\RetroArch-Win64\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles%\ES-DE\Emulators\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles(x86)%\RetroArch-Win64\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles(x86)%\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles(x86)%\ES-DE\Emulators\RetroArch-Win64\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles(x86)%\ES-DE\Emulators\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%APPDATA%\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles(x86)%\Steam\steamapps\common\RetroArch\retroarch.cfg'
parse_key: system_directory
- os: windows
method: config_file
config: '%ProgramFiles%\Steam\steamapps\common\RetroArch\retroarch.cfg'
parse_key: system_directory
# Handheld systems that run RetroArch as their frontend, each found by
# what its own build writes. A system built on another (derives_from)
# matches both and is the one meant.
# muOS: MustardOS/internal f41f4a89: retroarch.sh:8-20, bind.sh:4,116-150,
# retroarch.default.cfg:2806,3151. /mnt/mmc/MUOS is the older layout.
- os: linux
name: muOS
method: file_exists
file: /opt/muos
bios_path: /run/muos/storage/bios
config: [/opt/muos/share/info/config/retroarch.cfg, /opt/muos/share/emulator/retroarch/retroarch.default.cfg]
- os: linux
name: muOS
method: file_exists
file: /mnt/mmc/MUOS
bios_path: /mnt/mmc/MUOS/bios
# AmberELEC: AmberELEC 5a3882cb scripts/image:150-152, options:17, runemu.py:22,
# retroarch.cfg:611 ("~/roms/bios"), emustation.service:6 (HOME). CHAos
# (tech4bot/AmberELEC c0a4b0c6) writes the same name. Served by RetroArch's
# file list until its own platform is published.
- os: linux
name: AmberELEC
method: os_release
match: [NAME=AmberELEC]
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
# PAN4ELEC: Kegg1701/P4ELEC 9c19bfb2, AmberELEC/usr/bin/batocera-info:101.
- os: linux
name: PAN4ELEC
method: file_matches
file: /usr/bin/batocera-info
pattern: 'OPERATING SYSTEM: PAN4ELEC'
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
derives_from: AmberELEC
# EmuELEC: EmuELEC d4c7b2f1 scripts/image:172-176, options:4, setsettings.sh:22,
# libretro_base/retroarch/package.mk:117. Served by RetroArch's file list
# until its own platform is published.
- os: linux
name: EmuELEC
method: os_release
match: [NAME=EmuELEC]
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
# JELOS: JustEnoughLinuxOS/distribution 7b2e116c scripts/image:118-120,
# options:17, runemu.sh:37, RK3566/retroarch.cfg:716.
- os: linux
name: JELOS
method: os_release
match: [OS_NAME=JELOS]
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
# KOLOS: AnonLinuxOS/KOLOS 7daf5950: OS_NAME=JELOS kept, jelos-ready.service
# ("KOLOS system ready script") installed by scripts/install:100-102.
- os: linux
name: KOLOS
method: file_exists
file: /usr/lib/systemd/system/jelos-ready.service
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
derives_from: JELOS
# UnofficialOS: RetroGFX/UnofficialOS 22635796 scripts/image:119-120, options:17,
# packages/unofficialos/sources/scripts/runemu.sh:37.
- os: linux
name: UnofficialOS
method: os_release
match: [OS_NAME=UnofficialOS]
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
# ArchR: archr-linux/Arch-R dbd45d45 scripts/image:164-177, options:17,
# factoryreset:9-10, RK3326/retroarch.cfg:718.
- os: linux
name: ArchR
method: os_release
match: [OS_NAME=ArchR]
bios_path: /storage/roms/bios
config: [/storage/.config/retroarch/retroarch.cfg]
home: /storage
# ArkOS: christianhaitian/arkos dedf4278 Update-RGB10.sh:76 (splash title).
# Both configs move to /roms2 with "Switch to SD2 for Roms" (darkos
# daecf488, scripts/Switch to SD2 for Roms.sh:91-92).
- os: linux
name: ArkOS
method: file_exists
file: [/home/ark, /opt/system]
bios_path: /roms/bios
config: [/home/ark/.config/retroarch/retroarch.cfg, /home/ark/.config/retroarch32/retroarch.cfg]
- os: linux
name: ArkOS
method: file_matches
file: /usr/share/plymouth/themes/text.plymouth
pattern: '^title=\s*ArkOS\b'
bios_path: /roms/bios
config: [/home/ark/.config/retroarch/retroarch.cfg, /home/ark/.config/retroarch32/retroarch.cfg]
# dArkOS: christianhaitian/darkos daecf488 finishing_touches.sh:359-361,
# retroarch.cfg.rgb10:3043. The dArkOSRE, dArkOSen and ArkOS4Clone overlays
# keep the title.
- os: linux
name: dArkOS
method: file_matches
file: /usr/share/plymouth/themes/text.plymouth
pattern: '^title=\s*dArkOS'
bios_path: /roms/bios
config: [/home/ark/.config/retroarch/retroarch.cfg, /home/ark/.config/retroarch32/retroarch.cfg]
derives_from: ArkOS
# RetroOZ: RetroOZ 0.60 image: splash title, /opt/.retrooz/version,
# retroarch32/retroarch.cfg:3046. /etc/retrooz_version is the file PortMaster
# reads (PortMaster-GUI ccea6b74, PortMaster/device_info.txt:95).
- os: linux
name: RetroOZ
method: file_matches
file: /usr/share/plymouth/themes/text.plymouth
pattern: '^title=\s*RetroOZ'
bios_path: /roms/bios
config: [/home/odroid/.config/retroarch/retroarch.cfg, /home/odroid/.config/retroarch32/retroarch.cfg]
- os: linux
name: RetroOZ
method: file_exists
file: /opt/.retrooz
bios_path: /roms/bios
config: [/home/odroid/.config/retroarch/retroarch.cfg, /home/odroid/.config/retroarch32/retroarch.cfg]
- os: linux
name: RetroOZ
method: file_exists
file: /etc/retrooz_version
bios_path: /roms/bios
config: [/home/odroid/.config/retroarch/retroarch.cfg, /home/odroid/.config/retroarch32/retroarch.cfg]
# spruceOS: spruceOS 824b1aae spruce/scripts/helperFunctions.sh:157-165,
# RetroArch/platform/retroarch-Brick.cfg.bak:3279.
- os: linux
name: spruceOS
method: file_exists
file: /mnt/SDCARD/spruce
bios_path: /mnt/SDCARD/BIOS
config: ['/mnt/SDCARD/Saves/ra-configs/retroarch-*.cfg']
derives_from: TrimUI
# CrossMix-OS: cizia64/CrossMix-OS 206d612f System/usr/trimui/scripts/
# update_common.sh:20, patch_ra_cfg.sh:5, RetroArch/retroarch.cfg:3202.
- os: linux
name: CrossMix-OS
method: file_exists
file: /mnt/SDCARD/System/usr/trimui/crossmix-version.txt
bios_path: /mnt/SDCARD/BIOS
config: [/mnt/SDCARD/RetroArch/retroarch.cfg]
derives_from: TrimUI
# Onion: OnionUI/Onion 07505ea5 Makefile:75-76,
# .tmp_update/script/patch_ra_cfg.sh:6, retroarch.cfg:3009.
- os: linux
name: Onion
method: file_exists
file: /mnt/SDCARD/.tmp_update/onionVersion/version.txt
bios_path: /mnt/SDCARD/BIOS
config: [/mnt/SDCARD/RetroArch/.retroarch/retroarch.cfg]
# Allium: goweiwen/Allium ee0dda97 crates/common/src/constants.rs:19-34,
# launch_without_savestate_auto_load.sh:2-7. Its RetroArch patch makes
# $ROOT/BIOS the default system folder.
- os: linux
name: Allium
method: file_exists
file: /mnt/SDCARD/.allium
bios_path: /mnt/SDCARD/BIOS
config: [/mnt/SDCARD/RetroArch/.retroarch/retroarch.cfg]
# Koriki: Rparadise-Team/Koriki 8513071c src/systemInfo/main.c:106,
# .tmp_update/runtime.sh:271, RetroArch/.retroarch/retroarch.cfg:3191.
- os: linux
name: Koriki
method: file_exists
file: /mnt/SDCARD/Koriki/version.txt
bios_path: /mnt/SDCARD/BIOS
config: [/mnt/SDCARD/RetroArch/.retroarch/retroarch.cfg]
# MiyooCFW: MiyooCFW buildroot d5912eeb board/miyoo/rootfs/etc/main:4 (HOME),
# package/miyoo/miyoo-ctl/miyoo-ctl.mk:12. DINGUX RetroArch defaults to
# $HOME/.retroarch/system.
- os: linux
name: MiyooCFW
method: file_exists
file: [/etc/main, /usr/bin/miyooctl]
bios_path: /mnt/.retroarch/system
config: [/mnt/.retroarch/retroarch.cfg]
home: /mnt
# plumOS: game-de-it/plumOS-pixel2_v2 dec872c0 rootfs/pixel2/etc/os-release:2,
# sbin/init:29, plumos-retroarch-launch:342. Other plumOS builds append a
# folder of their own at launch (plumOS-MF 0095017c,
# plumos-retroarch-launch:15): found, not installed to.
- os: linux
name: plumOS
method: file_exists
file: /mnt/plumos-user
bios_path: /mnt/plumos-user/bios
- os: linux
name: plumOS
method: os_release
match: [ID=plumos]
# TrimUI: the stock firmware publishes no source naming its BIOS folder.
# /usr/trimui is where PortMaster finds its libraries
# (trimui/launch_hooks.txt:37). Found so that what runs on it is told
# apart, never installed to.
- os: linux
name: TrimUI
method: file_exists
file: /usr/trimui
installs: false
# MinUI: MinUI dbf89435 workspace/all/common/defines.h:14-16, minarch.c:2942.
# One Bios/<tag>/ folder per core, not written by the installer.
- os: linux
name: MinUI
method: file_exists
file: /mnt/SDCARD/.system/res
installs: false
derives_from: TrimUI
- os: linux
name: MinUI
method: file_exists
file: /mnt/sdcard/.system/res
installs: false
derives_from: TrimUI
# Anbernic stock firmware: the stock Linux of Anbernic devices.
- os: linux
name: 'Anbernic stock firmware'
method: file_exists
file: /mnt/vendor/bin/dmenu.bin
bios_path: /mnt/mmc/bios
standalone_copies: *standalone_copies
batocera:
config: batocera.yml
status: active
extract_to: /userdata/bios/
logo: https://raw.githubusercontent.com/batocera-linux/batocera-emulationstation/master/resources/splash_batocera.svg
scraper: batocera
source_url: https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems
source_format: python_dict
hash_type: md5
schedule: weekly
target_scraper: batocera_targets
target_source: https://github.com/batocera-linux/batocera.linux
install:
detect:
# Knulli, a Batocera derivative (knulli-cfw/knulli-linux 57afa662):
# OS_NAME in os-release (board/scripts/post-build-script.sh:233-236),
# and knulli.version (package/system/knulli-system/knulli-system.mk:98-102).
# Served by Batocera's file list until its own platform is published.
- os: linux
name: KNULLI
method: os_release
match: [OS_NAME=knulli]
bios_path: /userdata/bios
derives_from: Batocera
- os: linux
name: KNULLI
method: file_exists
file: /usr/share/knulli/knulli.version
bios_path: /userdata/bios
derives_from: Batocera
# batocera.linux 38845725, package/batocera/core/batocera-system/
# batocera-system.mk:21-22 writes batocera.arch and batocera.version.
- os: linux
name: Batocera
method: file_exists
file: /usr/share/batocera/batocera.version
bios_path: /userdata/bios
standalone_copies: *standalone_copies
recalbox:
config: recalbox.yml
status: active
extract_to: /recalbox/share/bios/
logo: https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/recalbox.svg
scraper: recalbox
source_url: https://gitlab.com/recalbox/recalbox/-/raw/master/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml
source_format: xml
hash_type: md5
# Bios.cpp:64-68 hashes a .zip with Zip::Md5Composite, never its bytes
zip_digest: composite
schedule: monthly
target_scraper: recalbox_targets
target_source: https://gitlab.com/recalbox/recalbox/-/tree/master/configs
install:
detect:
- os: linux
name: Recalbox
method: file_exists
file: /recalbox/recalbox.version
bios_path: /recalbox/share/bios
- os: linux
name: Recalbox
method: file_exists
file: /usr/bin/recalbox-settings
bios_path: /recalbox/share/bios
standalone_copies: *standalone_copies
retrobat:
config: retrobat.yml
status: active
extract_to: bios/
logo: https://raw.githubusercontent.com/RetroBat-Official/retrobat/main/system/resources/retrobat_logo_notext.png
scraper: retrobat
source_url: https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json
source_format: json
hash_type: md5
# Windows: names differing only by case land on one file.
case_insensitive_fs: true
schedule: weekly
target_scraper: null
target_source: null
install:
detect:
# RetroBat.exe writes its own folder there on every start, wherever it
# was installed (retrobat-executable 702da66a,
# RetroBat/RetroBat/Program.cs:57 and 99, RegistryTools.cs:15-50).
- os: windows
method: registry
key: 'HKCU\SOFTWARE\RetroBat'
value: LatestKnownInstallPath
bios_subdir: bios
# installer.iss: DefaultDirName=C:\RetroBat, the first place to look.
- os: windows
method: path_exists
path: 'C:\RetroBat\bios'
- os: windows
method: path_exists
path: '%USERPROFILE%\RetroBat\bios'
standalone_copies: *standalone_copies
emudeck:
config: emudeck.yml
status: active
extract_to: ~/Emulation/bios/
logo: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/icons/EmuDeck.png
scraper: emudeck
source_url: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/functions/checkBIOS.sh
source_wiki: https://raw.githubusercontent.com/EmuDeck/emudeck.github.io/main/docs/tables/
source_format: bash_script+csv
hash_type: md5
# Windows: names differing only by case land on one file.
case_insensitive_fs: true
schedule: weekly
target_scraper: emudeck_targets
target_source: https://github.com/dragoonDorise/EmuDeck
install:
detect:
- os: linux
method: config_file
config: $HOME/.config/EmuDeck/settings.sh
parse_key: emulationPath
bios_subdir: bios
- os: linux
method: path_exists
path: $HOME/Emulation/bios
# functions/all.sh:3-4,24 and vars.sh:2 (EmuDeck dddb3022): the macOS
# build reads the same settings.sh, emulationPath=~/Emulation by
# default (settings.sh:79).
- os: darwin
method: config_file
config: $HOME/.config/EmuDeck/settings.sh
parse_key: emulationPath
bios_subdir: bios
- os: darwin
method: path_exists
path: $HOME/Emulation/bios
# functions/all.ps1:4-14 (emudeck-we 037460ef): the APPDATA settings,
# else the profile ones, and C:\Emulation when neither names a folder.
- os: windows
method: config_file
config: '%APPDATA%\EmuDeck\settings.ps1'
parse_key: $emulationPath
bios_subdir: bios
- os: windows
method: config_file
config: '%USERPROFILE%\EmuDeck\settings.ps1'
parse_key: $emulationPath
bios_subdir: bios
standalone_copies: *standalone_copies
lakka:
config: lakka.yml
status: active
extract_to: /storage/system/
logo: https://raw.githubusercontent.com/libretro/retroarch-assets/master/src/xmb/flatui/lakka.svg
scraper: libretro
inherits_from: retroarch
cores: all_libretro
# Lakka is a Linux distribution: two names that differ by case are two
# files there, not the one RetroArch's Windows and macOS builds see.
case_insensitive_fs: false
schedule: weekly
# Lakka builds its cores per device image: libretro_cores/package.mk
# excludes cores by PROJECT, DEVICE and OpenGL ES.
target_scraper: lakka_targets
target_source: https://github.com/libretro/Lakka-LibreELEC/blob/master/packages/lakka/libretro_cores/package.mk
install:
detect:
- os: linux
name: Lakka
method: os_release
match: [ID=lakka]
bios_path: /storage/system
retrodeck:
config: retrodeck.yml
status: active
extract_to: ~/retrodeck/
logo: https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/res/icon.svg
scraper: retrodeck
source_url: https://github.com/RetroDECK/components
source_format: github_component_manifests
hash_type: md5
schedule: monthly
contributed_by:
- username: monster-penguin
contribution: platform support
pr: 36
target_scraper: null
target_source: null
install:
detect:
# retrodeck.json since the cfg-to-json migration (global.sh:149-153),
# retrodeck.cfg before it. A home moved to an SD card lives only there.
- os: linux
method: config_file
config: $HOME/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.json
parse_key: paths.rd_home_path
bios_path: $HOME/retrodeck
- os: linux
method: config_file
config: $HOME/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg
parse_key: rdhome
bios_path: $HOME/retrodeck
- os: linux
method: path_exists
path: $HOME/.var/app/net.retrodeck.retrodeck
bios_path: $HOME/retrodeck
standalone_copies: *standalone_copies
romm:
config: romm.yml
status: active
extract_to: library/bios/
logo: https://avatars.githubusercontent.com/u/168586850
scraper: romm
source_url: https://raw.githubusercontent.com/rommapp/romm/master/backend/models/fixtures/known_bios_files.json
source_format: json
hash_type: sha1
schedule: monthly
contributed_by:
- username: PixNyb
contribution: platform support
pr: 37
inherits_from: emulatorjs
# RomM lists a firmware folder without descending into it
# (backend/handler/filesystem/base_handler.py:1002, recursive=False), and
# EmulatorJS writes the chosen file, or each member of a zip, under its
# bare name (data/src/emulator.js:713-722). A file below the platform
# folder never reaches a core.
firmware_folder_flat: true
target_scraper: null
target_source: null
install:
detect:
- os: linux
method: path_exists
path: /romm/library/bios
# RomM 5.4 places firmware by filesystem.structure.firmware in this
# file, relative to /romm/library (rommapp/romm 5.4.0,
# backend/config/config_manager.py:58,101-109,264-265,564-568): a
# {platform}/bios library has no library/bios to find.
- os: linux
method: path_exists
path: /romm/config/config.yml
bios_path: /romm/library/bios
cores:
- atari800
- clk
- directxbox
- dolphin
- dolphin_launcher
- ecwolf
- ep128emu
- ep128emu_core
- freej2me
- hatari
- ishiiruka
- lrps2
- minivmac
- nekop2
- np2kai
- o2em
- pcsx2
- play
- pokemini
- primehack
- px68k
- scummvm
- squirreljme
- x1
- xemu
rocknix:
config: rocknix.yml
status: active
extract_to: /storage/roms/bios/
logo: https://avatars.githubusercontent.com/u/152618023
scraper: rocknix
schedule: weekly
target_scraper: rocknix_targets
target_source: https://github.com/ROCKNIX/distribution/blob/next/projects/ROCKNIX/packages/virtual/emulators/package.mk
install:
detect:
- os: linux
name: ROCKNIX
method: os_release
match: [OS_NAME=rocknix, ID=rocknix]
bios_path: /storage/roms/bios
retropie:
config: retropie.yml
status: archived
extract_to: ~/RetroPie/BIOS/
logo: https://avatars.githubusercontent.com/u/11378204
scraper: retropie
source: https://github.com/RetroPie/RetroPie-Setup
# No cores here: the registry overrides the config, and RetroPie's own
# scriptmodules are what say which packages it ships.
# RetroPie runs on Linux, where case tells two files apart.
case_insensitive_fs: false
schedule: null
target_scraper: retropie_targets
target_source: https://retropie.org.uk/stats/pkgflags/
install:
detect:
- os: linux
method: path_exists
path: $HOME/RetroPie/BIOS
bizhawk:
config: bizhawk.yml
status: active
extract_to: Firmware/
logo: https://avatars.githubusercontent.com/u/11743303
scraper: bizhawk
source_url: https://raw.githubusercontent.com/TASEmulators/BizHawk/master/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs
source_format: csharp_firmware_database
hash_type: sha1
# Windows: names differing only by case land on one file.
case_insensitive_fs: true
schedule: monthly
# EmuHawk finds firmware by SHA1 against FirmwareDatabase.FirmwareRecords
# and its cores are its own builds (CoreNames.cs): no libretro profile
# describes what it reads, so the database alone decides, as MiSTer's
# BiosDB does.
cores: []
target_scraper: null
target_source: null
install:
detect:
# A portable archive reading <EmuHawk folder>/Firmware wherever it was
# extracted (PathExtensions.cs DataDirectoryPath): found by its
# executable in the home folder or one level down, the newest first.
- os: windows
method: path_exists
path: '%USERPROFILE%\BizHawk\Firmware'
- os: linux
method: executable
file: [$HOME/BizHawk*/EmuHawkMono.sh, $HOME/*/BizHawk*/EmuHawkMono.sh]
bios_subdir: Firmware
- os: windows
method: executable
file: ['%USERPROFILE%\BizHawk*\EmuHawk.exe', '%USERPROFILE%\*\BizHawk*\EmuHawk.exe']
bios_subdir: Firmware
misterfpga:
config: misterfpga.yml
status: active
extract_to: /media/fat/games/
logo: https://avatars.githubusercontent.com/u/47264183
scraper: misterfpga
source_url: https://raw.githubusercontent.com/ajgowans/BiosDB_MiSTer/db/bios_db.json.zip
source_format: mister_downloader_db
hash_type: md5
schedule: weekly
cores: []
target_scraper: null
target_source: null
contributed_by:
- username: Takiiiiiiii
contribution: platform support
pr: 50
install:
detect:
# Main_MiSTer mounts the SD card at /media/fat (file_io.cpp:1150-1156)
# and reads game data from GAMES_DIR (file_io.h:168)
- os: linux
method: path_exists
path: /media/fat/MiSTer
bios_path: /media/fat/games