mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-26 13:47:20 -05:00
scripts/sitediagrams.py writes the explainer, install flow, verification modes, MinUI card, pipeline and data layer diagrams as inline SVG from the registry, the platform files, the install manifests and the pipeline step list. A page asks for one with an image comment, which the decoration pass resolves. The two mermaid diagrams of the architecture page are replaced, so no page loads mermaid from unpkg. Platform logos and system icons are copied once by fetch_site_images.py with their source and owner recorded, and the build rewrites the remote links to the copies. validate_site refuses an image from another host. Three registry logos named a personal avatar instead of the project's (RomM, ROCKNIX, MiSTer FPGA) and MyMinUI's was a GitHub identicon, now dropped. One 1200x630 sharing card per section, a 404 page with search and the two entry pages, and a list of screenshots that need a real device.
1003 lines
37 KiB
YAML
1003 lines
37 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
|
|
# <home>/data/ (shell/android-studio/flycast/src/main/jni/src/Android.cpp:
|
|
# 143-159, flycast a9bd1c74), writable from Termux up to Android 10.
|
|
android:
|
|
- $EXTERNAL_STORAGE/Android/data/com.flycast.emulator/files/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
|
|
# <home>/data/ (shell/android-studio/flycast/src/main/jni/src/Android.cpp:
|
|
# 143-159, flycast a9bd1c74), writable from Termux up to Android 10.
|
|
android:
|
|
- $EXTERNAL_STORAGE/Android/data/com.flycast.emulator/files/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
|
|
# 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:
|
|
# 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/164058018
|
|
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/163176886
|
|
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
|
|
# AmberELEC's checker (batocera-systems) md5s each file under /storage/roms,
|
|
# where its list also names neogeo/neogeo.zip and neogeo/aes.zip: the pack
|
|
# is extracted there, not into bios/. EmulationStation's BIOS screen runs
|
|
# it (ApiSystem.cpp:603-613 at e3846751). The launch-failure check in
|
|
# 99-distribution.conf:320 passes --strictfilter, an argument the script
|
|
# does not handle, so that path reports nothing. No release since
|
|
# 20230203: the scraper reads the commit of the newest prerelease.
|
|
# Several device images, no per-device core list: no target file.
|
|
amberelec:
|
|
config: amberelec.yml
|
|
status: active
|
|
extract_to: /storage/roms/
|
|
logo: https://avatars.githubusercontent.com/u/102820909
|
|
scraper: amberelec
|
|
source_url: https://github.com/AmberELEC/AmberELEC/blob/dev/packages/amberelec/sources/scripts/batocera-systems
|
|
source_format: python_dict
|
|
hash_type: md5
|
|
schedule: monthly
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# AmberELEC 5a3882cb scripts/image:150-152, options:17. CHAos
|
|
# (tech4bot/AmberELEC c0a4b0c6) writes the same name. Its list is
|
|
# written against /storage/roms (bios/, ports/, neogeo/ side by side).
|
|
- os: linux
|
|
name: AmberELEC
|
|
method: os_release
|
|
match: [NAME=AmberELEC]
|
|
bios_path: /storage/roms
|
|
# 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
|
|
derives_from: AmberELEC
|
|
# EmuELEC's checker md5s each file under /storage/roms and never reads
|
|
# zippedFile: its FM Towns entries hash the whole archive against a
|
|
# member's md5 and report UNTESTED whatever the archive holds. Run by
|
|
# EmulationStation's BIOS screen and by ee_check_bios after a failed
|
|
# launch (99-emuelec.conf:261). naomi and Dinothawr are written twice in
|
|
# the dict and the later entry is the one Python keeps.
|
|
emuelec:
|
|
config: emuelec.yml
|
|
status: active
|
|
extract_to: /storage/roms/
|
|
logo: https://avatars.githubusercontent.com/u/57574835
|
|
scraper: emuelec
|
|
source_url: https://github.com/EmuELEC/EmuELEC/blob/master/packages/sx05re/emuelec/bin/batocera/batocera-systems
|
|
source_format: python_dict
|
|
hash_type: md5
|
|
schedule: monthly
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# EmuELEC d4c7b2f1 scripts/image:172-176, options:4.
|
|
- os: linux
|
|
name: EmuELEC
|
|
method: os_release
|
|
match: [NAME=EmuELEC]
|
|
bios_path: /storage/roms
|
|
# KNULLI's knulli-systems is its own fork of Batocera's list, checked the
|
|
# same way (md5, checkInsideZip, emulator/core gates) by its
|
|
# EmulationStation (knulli-cfw/batocera-emulationstation 10834d00,
|
|
# ApiSystem.cpp:764-774). Arch R (archr-linux/Arch-R dbd45d45) ships the
|
|
# same dict as archr-systems: lines 1-870 are identical, only the prefix
|
|
# (/storage/roms instead of /userdata) and the es_systems.cfg path differ.
|
|
# Many boards, no per-board core list: no target file.
|
|
knulli:
|
|
config: knulli.yml
|
|
status: active
|
|
extract_to: /userdata/bios/
|
|
logo: https://avatars.githubusercontent.com/u/166268572
|
|
scraper: knulli
|
|
source_url: https://github.com/knulli-cfw/knulli-linux/blob/knulli-main/package/system/knulli-scripts/scripts/knulli-systems
|
|
source_format: python_dict
|
|
hash_type: md5
|
|
schedule: monthly
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# 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).
|
|
- 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
|
|
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/29345272
|
|
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
|
|
minui:
|
|
config: minui.yml
|
|
status: active
|
|
# The card root: minarch hands each core SDCARD_PATH/Bios/<TAG>
|
|
# (workspace/all/minarch/minarch.c:2943).
|
|
extract_to: <SD card>/
|
|
logo: https://avatars.githubusercontent.com/u/225589
|
|
scraper: minui
|
|
# minarch hands each core a folder and names no file (workspace/all/minarch/minarch.c:2943):
|
|
# there is no BIOS list of its own to export corrected.
|
|
native_list: none
|
|
source_url: https://github.com/shauninman/MinUI
|
|
source_format: pak_launch_scripts
|
|
hash_type: sha1
|
|
# The primary card is formatted FAT32 (skeleton/BASE/README.txt:15).
|
|
case_insensitive_fs: true
|
|
schedule: null
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# The release zip holds the build's SYSTEM tree as .system/ at the card
|
|
# root with version.txt, whose first line is the release name
|
|
# (makefile:22-24, 152-157). The installer runs on the computer the
|
|
# card is mounted on and reads it from --dest.
|
|
- os: any
|
|
method: card_marker
|
|
file: .system/version.txt
|
|
first_line_prefix: MinUI-
|
|
nextui:
|
|
config: nextui.yml
|
|
status: active
|
|
# minarch hands each core SDCARD_PATH/Bios/<TAG>
|
|
# (workspace/all/minarch/ma_core.c:76).
|
|
extract_to: <SD card>/
|
|
logo: https://avatars.githubusercontent.com/u/202386615
|
|
scraper: nextui
|
|
# minarch hands each core a folder and names no file (workspace/all/minarch/ma_core.c:76):
|
|
# there is no BIOS list of its own to export corrected.
|
|
native_list: none
|
|
source_url: https://github.com/LoveRetro/NextUI
|
|
source_format: pak_launch_scripts
|
|
hash_type: sha1
|
|
# The primary card is formatted FAT32 (skeleton/BASE/README.txt:17).
|
|
case_insensitive_fs: true
|
|
schedule: null
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# makefile:33-35 and 249: version.txt in .system/, first line the
|
|
# release name.
|
|
- os: any
|
|
method: card_marker
|
|
file: .system/version.txt
|
|
first_line_prefix: NextUI-
|
|
myminui:
|
|
config: myminui.yml
|
|
status: active
|
|
# minarch hands each core SDCARD_PATH/Bios/<TAG>
|
|
# (workspace/all/minarch/minarch.c:3532).
|
|
extract_to: <SD card>/
|
|
scraper: myminui
|
|
# minarch hands each core a folder and names no file (workspace/all/minarch/minarch.c:3532):
|
|
# there is no BIOS list of its own to export corrected.
|
|
native_list: none
|
|
source_url: https://github.com/Turro75/MyMinUI
|
|
source_format: pak_launch_scripts
|
|
hash_type: sha1
|
|
# The card is formatted FAT32 (MANUAL.md:13).
|
|
case_insensitive_fs: true
|
|
schedule: null
|
|
target_scraper: null
|
|
target_source: null
|
|
install:
|
|
detect:
|
|
# makefile:16-19 and 124: version.txt in .system/, first line the
|
|
# release name.
|
|
- os: any
|
|
method: card_marker
|
|
file: .system/version.txt
|
|
first_line_prefix: MyMinUI-
|