mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-06 01:53:56 -06:00
feat: scrape the rom folders of each setup
This commit is contained in:
1 parent
249b189ec9
commit
1aa36258b2
102 files changed
+49969
No files matched your search
@@ -0,0 +1,45 @@
|
||||
name: Allium
|
||||
platform: retroarch
|
||||
format: allium
|
||||
params:
|
||||
source: os
|
||||
consoles: static/.allium/config/consoles.toml
|
||||
cores: static/.allium/config/cores.toml
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/goweiwen/Allium
|
||||
commit: ee0dda979bc02649fdda48b277eaa60938273465
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os crates/common/src/constants.rs:19-34
|
||||
case_sensitive: false
|
||||
case_ref: os crates/allium-launcher/src/consoles.rs:120-185
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: _*
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- name: gamelist.xml
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- name: miyoogamelist.xml
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- name: neogeo.zip
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: '*.db'
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: '*.sbi'
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: '*.nfo'
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: '*.msu'
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- pattern: '*.pcm'
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
- name: Guides
|
||||
source_ref: os crates/allium-launcher/src/entry/mod.rs:31-62
|
||||
notes:
|
||||
- A file maps by its exact name, then by any dotted extension a console lists, then by the folder patterns walking up the path (os crates/allium-launcher/src/consoles.rs:138-185). A console with no folder pattern is matched by extension only and has no row.
|
||||
@@ -0,0 +1,49 @@
|
||||
name: AmberELEC
|
||||
platform: amberelec
|
||||
format: es-xml
|
||||
params:
|
||||
file: packages/ui/emulationstation/config/es_systems.cfg
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
default: flagged
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/AmberELEC/AmberELEC
|
||||
commit: 5a3882cbb755dcd614aea8952ff20f5a4151505b
|
||||
es:
|
||||
repo: https://github.com/AmberELEC/emulationstation
|
||||
commit: e3846751ce50fdced1f2bbd7a5bb51f4da2e7007
|
||||
note: EmulationStation pinned by packages/ui/emulationstation/package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/games/tools/retroarch/sources/retroarch.cfg:550,611
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: RetroArch's system directory
|
||||
source_ref: os packages/games/tools/retroarch/sources/retroarch.cfg:611
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:264
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:294
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:275).
|
||||
- 'Default core: the core marked default, else the first emulator''s first core (es es-app/src/SystemData.cpp:1829-1860).'
|
||||
@@ -0,0 +1,64 @@
|
||||
name: ArchR
|
||||
platform: retroarch
|
||||
format: elec-conf
|
||||
params:
|
||||
package: projects/ArchR/packages/virtual/emulators/package.mk
|
||||
conf_dir: config/emulators
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/archr-linux/Arch-R
|
||||
commit: dbd45d454f0fea1e61c0b35e429f6be18f3e997e
|
||||
es:
|
||||
repo: https://github.com/archr-linux/emulationstation-next
|
||||
commit: f25c4475a348f534de8ff724e9e42808b7a80a12
|
||||
note: EmulationStation pinned by the ui/emulationstation package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:130
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bezels
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:127
|
||||
- name: bios
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:130
|
||||
- name: music
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:133
|
||||
- name: savestates
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:136
|
||||
- name: themes
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ArchR/packages/virtual/emulators/package.mk:139
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- pattern: ._*
|
||||
source_ref: es es-app/src/SystemData.cpp:266-268
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:302
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:323
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:283).
|
||||
- Each folder comes from SYSTEM_PATH of config/emulators/<system>.conf, written by add_es_system for every
|
||||
system the emulators package adds.
|
||||
@@ -0,0 +1,47 @@
|
||||
name: ArkOS
|
||||
platform: retroarch
|
||||
format: es-xml
|
||||
params:
|
||||
file: rootfs/ArkOS/etc/emulationstation/es_systems.cfg
|
||||
path_prefixes:
|
||||
- /roms/
|
||||
default: first
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/lcdyk0517/arkos4clone
|
||||
commit: c90db18361b53fbb6c66aca892819827e4ae0180
|
||||
note: third-party copy of an ArkOS image's /etc, the only full es_systems.cfg published
|
||||
arkos:
|
||||
repo: https://github.com/christianhaitian/arkos
|
||||
commit: dedf42784e4e3646413c029f0efdedc093cb4b86
|
||||
es:
|
||||
repo: https://github.com/christianhaitian/EmulationStation-fcamod
|
||||
commit: c4809d8ef33159385a2d516b4b3aec832f4ce2e8
|
||||
roms_root:
|
||||
path: /roms
|
||||
from_bios: ..
|
||||
source_ref: os rootfs/ArkOS/etc/emulationstation/es_systems.cfg:6; arkos Update-RG351MP.sh:339,2215
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: BIOS folder the updates write to
|
||||
source_ref: arkos Update-RG351MP.sh:339,2215
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:145-146,180
|
||||
media:
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: ppsspp
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
notes:
|
||||
- 'ArkOS publishes no image build source: the system list is the arkos4clone copy, which may carry overlay
|
||||
edits.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:151).
|
||||
- 'Default core: the user''s saved choice, else the first emulator and its first core (es es-app/src/SystemData.h:101-131).'
|
||||
@@ -0,0 +1,47 @@
|
||||
name: Batocera
|
||||
platform: batocera
|
||||
format: batocera-es
|
||||
params:
|
||||
es_systems: package/batocera/emulationstation/batocera-es-system/es_systems.yml
|
||||
configgen_dir: package/batocera/core/batocera-configgen/configs
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/batocera-linux/batocera.linux
|
||||
commit: 155c2d8d304cbb53db52e9479dcf683392821d5c
|
||||
tag: batocera-43.1
|
||||
es:
|
||||
repo: https://github.com/batocera-linux/batocera-emulationstation
|
||||
commit: 2c29a330e487210a7d51ad2650bb7b280ea44c86
|
||||
note: pinned by package/batocera/emulationstation/batocera-emulationstation/batocera-emulationstation.mk
|
||||
roms_root:
|
||||
path: /userdata/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os python-src/batocera-es-system/batocera_es_system/es_systems.py:27,76-80
|
||||
case_sensitive: null
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-core/src/utils/FileSystemUtil.cpp:418; es es-app/src/SystemData.cpp:325
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:355
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: bezels
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- name: screenshots
|
||||
source_ref: es es-app/src/SystemData.cpp:375
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:378
|
||||
notes:
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:330-336).
|
||||
- The default core is configgen's, the board file before configgen-defaults.yml (os python-src/batocera-es-system/batocera_es_system/shared.py:193-198).
|
||||
@@ -0,0 +1,23 @@
|
||||
name: BizHawk
|
||||
platform: bizhawk
|
||||
format: bizhawk
|
||||
params:
|
||||
source: os
|
||||
paths: src/BizHawk.Client.Common/config/PathEntryCollection.cs
|
||||
rom_loader: src/BizHawk.Client.Common/RomLoader.cs
|
||||
config: src/BizHawk.Client.Common/config/Config.cs
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/TASEmulators/BizHawk
|
||||
commit: bdddf4a58aa1a022afb11dc73294a81a5aa7bbd5
|
||||
tag: 2.11.1
|
||||
roms_root:
|
||||
path: <BizHawk>
|
||||
from_bios: ..
|
||||
source_ref: os src/BizHawk.Client.Common/config/PathEntryCollection.cs:96-97,179
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- Each system has a base folder under the BizHawk folder, and its ROM path is "." inside it (os src/BizHawk.Client.Common/config/PathEntryCollection.cs:77-85,96-97). Firmware sits in Firmware beside those bases, the folder the installer fills.
|
||||
- BizHawk never scans a folder. The user opens one file, the open dialog filters by the RomFileExtensions lists, and the system follows from the extension and the game database (os src/BizHawk.Client.Common/RomLoader.cs:1143-1183).
|
||||
- A row's extensions are the RomFileExtensions list named like its system. Systems whose list carries another name (32X, Game Gear, SG-1000) or none (Saturn, PC-FX, 3DO, Amstrad CPC, Channel F) have none here.
|
||||
- The cores are BizHawk's own. The default named in a note is CoreNames[0] of CorePickerUIData (os src/BizHawk.Client.Common/config/Config.cs:20-50).
|
||||
@@ -0,0 +1,49 @@
|
||||
name: CHAos
|
||||
platform: amberelec
|
||||
format: es-xml
|
||||
params:
|
||||
file: packages/ui/emulationstation/config/es_systems.cfg
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
default: flagged
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/tech4bot/AmberELEC
|
||||
commit: c0a4b0c6c4860ab1b48d3282a57e75d00748135d
|
||||
es:
|
||||
repo: https://github.com/AmberELEC/emulationstation
|
||||
commit: c34e9cf3f6a22afbb47266fe89db4379513d1f03
|
||||
note: EmulationStation pinned by packages/ui/emulationstation/package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/games/tools/retroarch/sources/retroarch.cfg:550,611
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: RetroArch's system directory
|
||||
source_ref: os packages/games/tools/retroarch/sources/retroarch.cfg:611
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:264
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:294
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:275).
|
||||
- 'Default core: the core marked default, else the first emulator''s first core (es es-app/src/SystemData.cpp:1829-1860).'
|
||||
@@ -0,0 +1,19 @@
|
||||
name: CrossMix-OS
|
||||
platform: retroarch
|
||||
format: crossmix
|
||||
params:
|
||||
source: os
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/cizia64/CrossMix-OS
|
||||
commit: 206d612fdef83972ed54a17de955125d0c0b3528
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os RetroArch/retroarch.cfg:3202
|
||||
case_sensitive: false
|
||||
case_ref: os System/usr/trimui/scripts/load_launcher.sh:23-41
|
||||
notes:
|
||||
- Each Emus/<SYS>/config.json points rompath at ../../Roms/<SYS>. Box art lives in /mnt/SDCARD/Imgs/<SYS>, outside Roms.
|
||||
- The stock TrimUI MainUI that lists the games is closed source. It reads extlist and hidebios from config.json.
|
||||
- The default core is the first launchlist entry with a launch script, unless a per-game or per-system preset exists (os System/usr/trimui/scripts/load_launcher.sh:23-41).
|
||||
@@ -0,0 +1,47 @@
|
||||
name: dArkOS
|
||||
platform: retroarch
|
||||
format: es-xml
|
||||
params:
|
||||
file: Emulationstation/es_systems.cfg.rk3566
|
||||
path_prefixes:
|
||||
- /roms/
|
||||
default: first
|
||||
boards:
|
||||
rk3326: Emulationstation/es_systems.cfg.rk3326
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/christianhaitian/darkos
|
||||
commit: daecf488075f0194c164578b90617fa7002ce8bd
|
||||
es:
|
||||
repo: https://github.com/christianhaitian/EmulationStation-fcamod
|
||||
commit: c4809d8ef33159385a2d516b4b3aec832f4ce2e8
|
||||
note: the branch build_emulationstation.sh builds
|
||||
roms_root:
|
||||
path: /roms
|
||||
from_bios: ..
|
||||
source_ref: os retroarch/configs/retroarch.cfg.rgb10:3043; os build_emulationstation.sh:73
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: RetroArch's system directory
|
||||
source_ref: os retroarch/configs/retroarch.cfg.rgb10:3043
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:145-146,180
|
||||
media:
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- name: ppsspp
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:180,184
|
||||
notes:
|
||||
- 'The BIOS folder is /roms/bios, inside the roms root: the scan skips it.'
|
||||
- Folders are read from the RK3566 list, build_emulationstation.sh copies es_systems.cfg.<chipset> (os
|
||||
build_emulationstation.sh:73-75). The RK3326 defaults that differ are board_defaults.
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:151).
|
||||
- 'Default core: the user''s saved choice, else the first emulator and its first core (es es-app/src/SystemData.h:101-131).'
|
||||
@@ -0,0 +1,38 @@
|
||||
name: EmuDeck (Windows)
|
||||
platform: emudeck
|
||||
format: esde
|
||||
params:
|
||||
systems:
|
||||
source: esde
|
||||
path: resources/systems/windows/es_systems.xml
|
||||
custom:
|
||||
- source: os
|
||||
path: configs/emulationstation/custom_systems/es_systems.xml
|
||||
alternatives:
|
||||
source: os
|
||||
path: functions/ToolScripts/emuDeckESDE.ps1
|
||||
function: ESDE_setDefaultEmulators
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/EmuDeck/emudeck-we
|
||||
commit: 037460efc88c1ab70256ab0833f8f10e7f2904b2
|
||||
esde:
|
||||
repo: https://gitlab.com/es-de/emulationstation-de
|
||||
commit: 50e4b600ae533d772bae3ff880d11a09b05dbe84
|
||||
tag: v3.5.0
|
||||
note: EmuDeck installs the newest ES-DE release at run time; the list is read at this tag
|
||||
roms_root:
|
||||
path: <drive>:\Emulation\roms
|
||||
from_bios: ../roms
|
||||
source_ref: os functions/JSONtoPS1.ps1:173,175,195,197
|
||||
case_sensitive: false
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: esde es-app/src/SystemData.cpp:657
|
||||
notes:
|
||||
- Windows folders are case-insensitive.
|
||||
- 'ES-DE matches the extension as written (esde es-app/src/SystemData.cpp:666): its lists carry both cases,
|
||||
kept here lowercased.'
|
||||
- A system folder holding noload.txt is not loaded (esde es-app/src/SystemData.cpp:629-631).
|
||||
- 'Default emulator: the alternativeEmulator label written for the system, else the first <command>.'
|
||||
- Some alternative emulators are set only when the standalone is installed (os functions/ToolScripts/emuDeckESDE.ps1:306-309).
|
||||
@@ -0,0 +1,38 @@
|
||||
name: EmuDeck (Linux / SteamOS)
|
||||
platform: emudeck
|
||||
format: esde
|
||||
params:
|
||||
systems:
|
||||
source: esde
|
||||
path: resources/systems/linux/es_systems.xml
|
||||
custom:
|
||||
- source: os
|
||||
path: configs/emulationstation/custom_systems/es_systems.xml
|
||||
alternatives:
|
||||
source: os
|
||||
path: functions/ToolScripts/emuDeckESDE.sh
|
||||
function: ESDE_setDefaultEmulators
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/dragoonDorise/EmuDeck
|
||||
commit: dddb30229adbbd54d5ff7283cfd70e11c4322c26
|
||||
esde:
|
||||
repo: https://gitlab.com/es-de/emulationstation-de
|
||||
commit: 50e4b600ae533d772bae3ff880d11a09b05dbe84
|
||||
tag: v3.5.0
|
||||
note: EmuDeck installs the newest ES-DE release at run time; the list is read at this tag
|
||||
roms_root:
|
||||
path: $HOME/Emulation/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os functions/helperFunctions.sh:345,347
|
||||
case_sensitive: true
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: esde es-app/src/SystemData.cpp:657
|
||||
notes:
|
||||
- 'The emulation path is a setting: roms and bios stay siblings under it.'
|
||||
- 'ES-DE matches the extension as written (esde es-app/src/SystemData.cpp:666): its lists carry both cases,
|
||||
kept here lowercased.'
|
||||
- A system folder holding noload.txt is not loaded (esde es-app/src/SystemData.cpp:629-631).
|
||||
- 'Default emulator: the alternativeEmulator label written for the system, else the first <command>.'
|
||||
- Some alternative emulators are set only when the standalone is installed (os functions/ToolScripts/emuDeckESDE.sh:316-318).
|
||||
@@ -0,0 +1,50 @@
|
||||
name: EmuELEC
|
||||
platform: emuelec
|
||||
format: es-json
|
||||
params:
|
||||
file: packages/sx05re/emuelec-emulationstation/config/es_systems.json
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
default: flagged
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/EmuELEC/EmuELEC
|
||||
commit: d4c7b2f143029e4e4d922a077d89eed42c9e37b9
|
||||
es:
|
||||
repo: https://github.com/EmuELEC/emuelec-emulationstation
|
||||
commit: 3de652c69481de5fad2178ceebb9470950b3e683
|
||||
note: pinned by packages/sx05re/emuelec-emulationstation/package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/sx05re/libretro_base/retroarch/package.mk:112,117
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: RetroArch's system directory
|
||||
source_ref: os packages/sx05re/libretro_base/retroarch/package.mk:117
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:264
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:294
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:275).
|
||||
- Systems whose command or platform is 'ignore' (screenshots, music) are no game folder.
|
||||
- 'Default core: the core marked default, else the first emulator''s first core (es es-app/src/SystemData.cpp:1828-1860).'
|
||||
@@ -0,0 +1,54 @@
|
||||
name: JELOS
|
||||
platform: retroarch
|
||||
format: elec-conf
|
||||
params:
|
||||
package: packages/virtual/emulators/package.mk
|
||||
conf_dir: config/emulators
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/JustEnoughLinuxOS/distribution
|
||||
commit: 7b2e116ce6996d56e642a0e2a07288c926db926b
|
||||
es:
|
||||
repo: https://github.com/JustEnoughLinuxOS/emulationstation
|
||||
commit: 2532471157e7df15ca70e0881e2411b81a1d2daa
|
||||
note: EmulationStation pinned by the ui/emulationstation package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/virtual/emulators/package.mk:112
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:112
|
||||
- name: music
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:115
|
||||
- name: savestates
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:118
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:225
|
||||
media:
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:236).
|
||||
- Each folder comes from SYSTEM_PATH of config/emulators/<system>.conf, written by add_es_system for every
|
||||
system the emulators package adds.
|
||||
@@ -0,0 +1,45 @@
|
||||
name: KNULLI
|
||||
platform: knulli
|
||||
format: batocera-es
|
||||
params:
|
||||
es_systems: package/emulationstation/knulli-es-system/es_systems.yml
|
||||
configgen_dir: package/system/knulli-configgen/configs
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/knulli-cfw/knulli-linux
|
||||
commit: c1c7de479e56691c6665723046d9f25500e5ee74
|
||||
tag: '20260511'
|
||||
es:
|
||||
repo: https://github.com/knulli-cfw/batocera-emulationstation
|
||||
commit: 4041b56a714265de81de8165b34fbd10f313a891
|
||||
note: pinned by package/emulationstation/knulli-emulationstation/knulli-emulationstation.mk
|
||||
roms_root:
|
||||
path: /userdata/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os package/emulationstation/knulli-es-system/knulli-es-system.py:31,163-173
|
||||
case_sensitive: null
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-core/src/utils/FileSystemUtil.cpp:410; es es-app/src/SystemData.cpp:279
|
||||
- pattern: ._*
|
||||
source_ref: es es-app/src/SystemData.cpp:273-275
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:314
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:335
|
||||
notes:
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:284-290).
|
||||
- The default core is configgen's, the board file before configgen-defaults.yml (os package/emulationstation/knulli-es-system/knulli-es-system.py:53-64).
|
||||
@@ -0,0 +1,54 @@
|
||||
name: KOLOS
|
||||
platform: retroarch
|
||||
format: elec-conf
|
||||
params:
|
||||
package: packages/virtual/emulators/package.mk
|
||||
conf_dir: config/emulators
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/AnonLinuxOS/KOLOS
|
||||
commit: 7daf5950ae79bb8775f129468164f730dbc32298
|
||||
es:
|
||||
repo: https://github.com/JustEnoughLinuxOS/emulationstation
|
||||
commit: b298647ee7988cf2a34fedd4442f357f63c66597
|
||||
note: EmulationStation pinned by the ui/emulationstation package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/virtual/emulators/package.mk:111
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:111
|
||||
- name: music
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:114
|
||||
- name: savestates
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:117
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:225
|
||||
media:
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:236).
|
||||
- Each folder comes from SYSTEM_PATH of config/emulators/<system>.conf, written by add_es_system for every
|
||||
system the emulators package adds.
|
||||
@@ -0,0 +1,26 @@
|
||||
name: Koriki
|
||||
platform: retroarch
|
||||
format: koriki
|
||||
params:
|
||||
source: os
|
||||
sections: base/.simplemenu/section_groups/apps and games.ini
|
||||
launchers: base/.simplemenu/launchers
|
||||
roms_prefix: /mnt/SDCARD/Roms/
|
||||
skip: [CONSOLES, APPS, GAMES, OVERLAYS]
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/Rparadise-Team/Koriki
|
||||
commit: 8513071c9bcffe9603ec3b3b760ad9385906a6a5
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os base/.simplemenu/section_groups/apps%20and%20games.ini:4
|
||||
case_sensitive: false
|
||||
case_ref: os src/simplemenu-beta/src/logic/logic.c:566-575
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: os src/simplemenu-beta/src/logic/logic.c:760-775
|
||||
notes:
|
||||
- SimpleMenu lists only files whose extension is in romExts, compared case-insensitively (os src/simplemenu-beta/src/logic/logic.c:990-1005).
|
||||
- The first launcher of execs is the active one (os src/simplemenu-beta/src/logic/config.c:1127).
|
||||
- The shipped SimpleMenu binary is built from a submodule this tree does not hold. The in-tree copy src/simplemenu-beta was read.
|
||||
@@ -0,0 +1,16 @@
|
||||
name: Lakka
|
||||
platform: lakka
|
||||
allow_empty: true
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/libretro/Lakka-LibreELEC
|
||||
commit: ad1a27aac8e37e0cf810b243b2bdf9f798e45dd4
|
||||
tag: v6.1
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os packages/lakka/retroarch_base/retroarch/tmpfiles.d/retroarch-userdirs.conf:12; os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:3143
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- Lakka keeps no folder per system. Games reach the menu through RetroArch playlists built by scanning against the content databases (os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:98,3085), so a folder name says nothing about the system and the game itself has to.
|
||||
- /storage/roms is the file browser's start, with hidden files not shown (os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:3143,3202). /storage/roms/downloads holds core assets (os packages/lakka/retroarch_base/retroarch/tmpfiles.d/retroarch-userdirs.conf:13).
|
||||
@@ -0,0 +1,27 @@
|
||||
name: MinUI
|
||||
platform: minui
|
||||
format: minui
|
||||
params:
|
||||
source: os
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/shauninman/MinUI
|
||||
commit: dbf89435a5179788418ff3573042cf9c7e75d9e0
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: os workspace/all/common/defines.h:13; os workspace/miyoomini/platform/platform.h:122
|
||||
case_sensitive: null
|
||||
case_ref: os workspace/all/common/utils.c:74-96
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os workspace/all/common/utils.c:32-34
|
||||
- pattern: '*.disabled'
|
||||
source_ref: os workspace/all/common/utils.c:32-34
|
||||
- name: map.txt
|
||||
source_ref: os workspace/all/common/utils.c:32-34
|
||||
notes:
|
||||
- MinUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game (os workspace/all/minui/minui.c:475-535,615-680), so the rows carry no extensions.
|
||||
- A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without parentheses (getEmuName, os workspace/all/common/utils.c:74-96). The pak is found at .system/<PLATFORM>/paks/Emus/<TAG>.pak then Emus/<PLATFORM>/<TAG>.pak.
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
- SDCARD_PATH differs per device (/mnt/SDCARD, /mnt/sdcard, /storage/roms, /sdcard, /media/roms, /storage/TF2). Roms sits under it.
|
||||
@@ -0,0 +1,31 @@
|
||||
name: MiSTer FPGA
|
||||
platform: misterfpga
|
||||
format: mister
|
||||
params:
|
||||
source: dist
|
||||
arcade: [mame, hbmame]
|
||||
arcade_note: ROM archives of the .mra files in _Arcade. The loader looks in games/mame, then beside the .mra (main support/arcade/mra_loader.cpp:168-187)
|
||||
sources:
|
||||
main:
|
||||
repo: https://github.com/MiSTer-devel/Main_MiSTer
|
||||
commit: a8ed7e9d4468f7a703af6e81ce42521e21e34f48
|
||||
dist:
|
||||
repo: https://github.com/MiSTer-devel/Distribution_MiSTer
|
||||
commit: ab7a78093e95ac61696559a3403204a92a16fa30
|
||||
roms_root:
|
||||
path: /media/fat/games
|
||||
from_bios: .
|
||||
source_ref: main file_io.h:171; main file_io.cpp:1150-1170
|
||||
case_sensitive: false
|
||||
case_ref: main file_io.cpp:1715-1790
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: main file_io.cpp:1714-1715,1748-1749,1760-1761
|
||||
- name: boot.rom
|
||||
source_ref: main file_io.cpp:1765-1772
|
||||
- pattern: boot[0-9].rom
|
||||
source_ref: main file_io.cpp:1765-1772
|
||||
notes:
|
||||
- Games and BIOS share games/<core>/, so the roms root is the BIOS folder's own parent and every row is that core's folder. The folder is the core's name (main user_io.cpp:196-211). The rows are the folders the distribution ships.
|
||||
- Only files whose extension is in the core's CONF_STR filter are listed, and a .zip is browsed as a folder (main file_io.cpp:1774-1785). Each core sets its filter in its own repository, so the rows carry no extensions.
|
||||
- USB drives, network and CIFS mounts are searched for a games folder before /media/fat (main file_io.cpp:1060-1145).
|
||||
@@ -0,0 +1,31 @@
|
||||
name: MiyooCFW
|
||||
platform: retroarch
|
||||
format: gmenu2x
|
||||
params:
|
||||
source: os
|
||||
shipped_roms: board/miyoo/roms
|
||||
link_roms_prefix: /mnt/roms
|
||||
links:
|
||||
- source: gpsp
|
||||
path: miyoo/opkg_assets/gpsp.lnk
|
||||
core: gpsp
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/MiyooCFW/buildroot
|
||||
commit: d5912eeb7b636810bafaa34eb0517fd599a0fc71
|
||||
gpsp:
|
||||
repo: https://github.com/Apaczer/gpsp
|
||||
commit: df382f476ffea69f2ff57376b27eac11b15dcf81
|
||||
tag: 1.2.3
|
||||
note: the gpsp.ipk release package/miyoo/ipk-gpsp/ipk-gpsp.mk installs
|
||||
roms_root:
|
||||
path: /roms
|
||||
from_bios: null
|
||||
source_ref: os board/miyoo/rootfs/etc/inittab:24-25; os board/miyoo/rootfs/etc/main:4-5
|
||||
case_sensitive: true
|
||||
case_ref: os board/miyoo/scripts/genimage.sh:94-98
|
||||
notes:
|
||||
- The ROMS partition (mmcblk0p5) mounts on /roms and is built as ext4, where folder case matters. etc/main also accepts a FAT32 ROMS partition (os board/miyoo/rootfs/etc/main:181-186).
|
||||
- The bundled emulator links point at /mnt/roms/<SYS> while the partition mounts on /roms. Nothing in the buildroot tree joins the two.
|
||||
- The image installs seven emulator packages as release .ipk files (os package/miyoo/ipk-drpocketsnes/ipk-drpocketsnes.mk:1-3 and the six beside it). Their gmenu2x links live inside those packages. Only the gpSP link is also kept in its source repository, the other folders are the ones the image ships.
|
||||
- BIOS sits in /mnt/.retroarch/system on the main partition, another partition than the games, so no relative path joins them.
|
||||
@@ -0,0 +1,63 @@
|
||||
name: muOS
|
||||
platform: retroarch
|
||||
format: muos
|
||||
params:
|
||||
source: os
|
||||
path: share/info/manifest/core.json
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/MustardOS/internal
|
||||
commit: f41f4a89334feecf91a81c7736d4f2c80b1ae10c
|
||||
fe:
|
||||
repo: https://github.com/MustardOS/frontend
|
||||
commit: c128dfc13bd60cb8af66e7562bc8e8e5505e1f60
|
||||
note: newest frontend commit at or before the internal pin date
|
||||
roms_root:
|
||||
path: /mnt/mmc/ROMS
|
||||
from_bios: ../../ROMS
|
||||
source_ref: fe common/content/content.c:522; fe common/base/options.h:101
|
||||
case_sensitive: false
|
||||
case_ref: fe common/content/core/common.c:396-398
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os share/info/skip.ini:1
|
||||
- pattern: _*
|
||||
source_ref: os share/info/skip.ini:2
|
||||
- pattern: /img*
|
||||
source_ref: os share/info/skip.ini:3
|
||||
- name: control.txt
|
||||
source_ref: os share/info/skip.ini:4
|
||||
- name: neogeo.zip
|
||||
source_ref: os share/info/skip.ini:5
|
||||
- name: pgm.zip
|
||||
source_ref: os share/info/skip.ini:6
|
||||
- name: midssio.zip
|
||||
source_ref: os share/info/skip.ini:7
|
||||
- pattern: '*.bps*'
|
||||
source_ref: os share/info/skip.ini:8
|
||||
- pattern: '*.dat*'
|
||||
source_ref: os share/info/skip.ini:9
|
||||
- pattern: '*.ips*'
|
||||
source_ref: os share/info/skip.ini:10
|
||||
- pattern: '*.log*'
|
||||
source_ref: os share/info/skip.ini:11
|
||||
- pattern: '*.msu*'
|
||||
source_ref: os share/info/skip.ini:12
|
||||
- pattern: '*.pcm*'
|
||||
source_ref: os share/info/skip.ini:13
|
||||
- pattern: '*.sav*'
|
||||
source_ref: os share/info/skip.ini:14
|
||||
- pattern: '*.sbi*'
|
||||
source_ref: os share/info/skip.ini:15
|
||||
- pattern: '*.srm*'
|
||||
source_ref: os share/info/skip.ini:16
|
||||
- pattern: '*.state*'
|
||||
source_ref: os share/info/skip.ini:17
|
||||
- pattern: '*.ups*'
|
||||
source_ref: os share/info/skip.ini:18
|
||||
- pattern: '*.xml*'
|
||||
source_ref: os share/info/skip.ini:19
|
||||
notes:
|
||||
- core.json lists no extensions. The skip.ini globs are matched lowercased with fnmatch (fe common/base/strutil.c:31-104), and every other file is listed.
|
||||
- A folder gets its core when its name, lowercased without space, '-', '_' and '+', is one of a system's friendly names (fe common/content/core/common.c:396-398). assign.json is built from every friendly name (os script/system/assign.sh:65-80).
|
||||
- The roms root is ROMS on the card that holds MUOS/bios, or /mnt/sdcard/ROMS on the second card. RetroArch sees the BIOS folder as /run/muos/storage/bios.
|
||||
@@ -0,0 +1,28 @@
|
||||
name: MyMinUI
|
||||
platform: myminui
|
||||
format: minui
|
||||
params:
|
||||
source: os
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/Turro75/MyMinUI
|
||||
commit: 72ed4f3dd80d96646c11bf9363242565320d9566
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: os workspace/all/common/defines.h:13
|
||||
case_sensitive: null
|
||||
case_ref: os workspace/all/common/utils.c:130-157
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os workspace/all/common/utils.c:30-35
|
||||
- pattern: '*.disabled'
|
||||
source_ref: os workspace/all/common/utils.c:30-35
|
||||
- name: map.txt
|
||||
source_ref: os workspace/all/common/utils.c:30-35
|
||||
- name: Imgs
|
||||
source_ref: os workspace/all/common/utils.c:30-35
|
||||
notes:
|
||||
- MyMinUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game (os workspace/all/minui/minui.c:660-667), so the rows carry no extensions.
|
||||
- A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without parentheses (getEmuName, os workspace/all/common/utils.c:130-157).
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
@@ -0,0 +1,29 @@
|
||||
name: NextUI
|
||||
platform: nextui
|
||||
format: minui
|
||||
params:
|
||||
source: os
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/LoveRetro/NextUI
|
||||
commit: 5291344b3aceae5fa197437a70824afb41e2d338
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: os workspace/all/common/defines.h:16; os workspace/tg5040/platform/platform.h:156
|
||||
case_sensitive: null
|
||||
case_ref: os workspace/all/common/utils.c:352-379
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os workspace/all/common/utils.c:36-38
|
||||
- pattern: '*.disabled'
|
||||
source_ref: os workspace/all/common/utils.c:36-38
|
||||
- name: map.txt
|
||||
source_ref: os workspace/all/common/utils.c:36-38
|
||||
media:
|
||||
- name: .media
|
||||
source_ref: os workspace/all/nextui/nextui.c:3011-3034
|
||||
notes:
|
||||
- NextUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game (os workspace/all/nextui/nextui.c:535-547), so the rows carry no extensions.
|
||||
- A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without parentheses (getEmuName, os workspace/all/common/utils.c:352-379).
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
@@ -0,0 +1,25 @@
|
||||
name: Onion
|
||||
platform: retroarch
|
||||
format: onion
|
||||
params:
|
||||
source: os
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/OnionUI/Onion
|
||||
commit: 07505ea58c7bba698d6b9220ff43946a43cac76b
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os static/packages/Emu/Commodore%20-%20Amiga%20(PUAE%202021)/Emu/AMIGA/config.json:3
|
||||
case_sensitive: false
|
||||
case_ref: os src/packageManager/fileActions.h:96-118
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os src/packageManager/fileActions.h:130
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: os static/packages/Emu/Commodore%20-%20Amiga%20(PUAE%202021)/Emu/AMIGA/config.json:1-13
|
||||
notes:
|
||||
- Each Emu/<SYS>/config.json points rompath at ../../Roms/<SYS> from /mnt/SDCARD/Emu/<SYS>. Emu packages are optional and PackageManager installs them.
|
||||
- The stock MainUI that lists the games is closed source. It reads extlist and hidebios from config.json. Only Onion's PackageManager rule is readable (os src/packageManager/fileActions.h:120-189).
|
||||
- The gpSP package names its core through default_core in launch.sh and switches to mGBA only after a save migration (os static/packages/Emu/Nintendo%20-%20GBA%20(gpSP)/Emu/GBA/launch.sh:25-30).
|
||||
@@ -0,0 +1,49 @@
|
||||
name: PAN4ELEC
|
||||
platform: amberelec
|
||||
format: es-xml
|
||||
params:
|
||||
file: AmberELEC/usr/config/emulationstation/es_systems.cfg
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
default: flagged
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/Kegg1701/P4ELEC
|
||||
commit: 9c19bfb2717a8790d96ee6104090e575966d5d00
|
||||
es:
|
||||
repo: https://github.com/AmberELEC/emulationstation
|
||||
commit: e3846751ce50fdced1f2bbd7a5bb51f4da2e7007
|
||||
note: 'PAN4ELEC overlays an AmberELEC image and ships no EmulationStation source: AmberELEC''s'
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os AmberELEC/usr/config/retroarch/retroarch.cfg:3055,3119
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: RetroArch's system directory
|
||||
source_ref: os AmberELEC/usr/config/retroarch/retroarch.cfg:3119
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:264
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:294
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:315
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:275).
|
||||
- 'Default core: the core marked default, else the first emulator''s first core (es es-app/src/SystemData.cpp:1829-1860).'
|
||||
@@ -0,0 +1,18 @@
|
||||
name: plumOS (MF build)
|
||||
platform: retroarch
|
||||
format: plumos
|
||||
params:
|
||||
source: os
|
||||
path: package/frontend-mf/plumos/config/frontend/systems.json
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/game-de-it/plumOS-MF
|
||||
commit: 0095017c39226ad1c22bf8df852202673075936d
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os package/frontend-mf/plumos/bin/plumos-retroarch-launch:12-15
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- Each system lists its folders in directory_aliases by priority, upper case Miyoo spellings and lower case ROCKNIX ones. The frontend that resolves them is built from a separate component this repository does not hold, so its case and hidden-file rules are unread.
|
||||
- A folder marked shared serves several systems (FC for NES and FDS). The row goes to the first system, the later ones list it among their aliases.
|
||||
@@ -0,0 +1,19 @@
|
||||
name: plumOS (Pixel 2 build)
|
||||
platform: retroarch
|
||||
format: plumos
|
||||
params:
|
||||
source: os
|
||||
path: package/frontend-pixel2/systems.json
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/game-de-it/plumOS-pixel2_v2
|
||||
commit: dec872c042229c1d38443f7e8e3fe962fc369e81
|
||||
roms_root:
|
||||
path: /mnt/plumos-user/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os package/app-layer-pixel2/bin/plumos-retroarch-launch:6-7,66-73
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- Each system lists its folders in directory_aliases by priority, upper case Miyoo spellings and lower case ROCKNIX ones. The frontend that resolves them is built from a separate component this repository does not hold, so its case and hidden-file rules are unread.
|
||||
- A folder marked shared serves several systems (FC for NES and FDS). The row goes to the first system, the later ones list it among their aliases.
|
||||
- Artwork is looked up in Images/<id> at the card root, outside roms.
|
||||
@@ -0,0 +1,22 @@
|
||||
name: Recalbox
|
||||
platform: recalbox
|
||||
format: recalbox
|
||||
params:
|
||||
systems_dir: package/recalbox-romfs2/systems
|
||||
sources:
|
||||
os:
|
||||
repo: https://gitlab.com/recalbox/recalbox
|
||||
commit: a264d628ead7074b3c523c8b3311543fe2d3f972
|
||||
tag: 10.1.1
|
||||
roms_root:
|
||||
path: /recalbox/share/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os projects/frontend/es-app/src/systems/SystemManager.h:114-119
|
||||
case_sensitive: null
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os projects/frontend/es-app/src/systems/SystemManager.cpp:1801-1803
|
||||
notes:
|
||||
- "%ROOT% in roms.folder is /recalbox/share/roms (os projects/frontend/es-app/src/systems/SystemManager.h:114-117)."
|
||||
- A folder holds games when a file's lowercased extension is in the system's list (os projects/frontend/es-app/src/systems/SystemManager.cpp:1790-1805).
|
||||
- The default core is the lowest priority, the last listed on a tie, and priority.<board> applies on that board (os projects/frontend/es-app/src/emulators/EmulatorManager.cpp:94-111).
|
||||
@@ -0,0 +1,16 @@
|
||||
name: RetroArch
|
||||
platform: retroarch
|
||||
allow_empty: true
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/libretro/RetroArch
|
||||
commit: 69a4f0ea1e8aaf442ae4858f2e7f2b31a1776576
|
||||
tag: v1.22.2
|
||||
roms_root:
|
||||
path: null
|
||||
from_bios: null
|
||||
source_ref: os configuration.c:3126,3295-3298
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- RetroArch alone defines no rom folder. rgui_browser_directory starts empty and only a platform default fills it, which no desktop driver sets (os configuration.c:3126,3295-3298).
|
||||
- Content reaches a core through playlists built by scanning against the content databases (os tasks/task_database.c), or from the file browser with a core the user picks. The system can only come from the game itself or from a folder the user names.
|
||||
@@ -0,0 +1,58 @@
|
||||
name: RetroBat
|
||||
platform: retrobat
|
||||
format: es-xml
|
||||
params:
|
||||
file: system/templates/emulationstation/es_systems.cfg
|
||||
path_prefixes:
|
||||
- ~\..\roms\
|
||||
default: flagged
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/RetroBat-Official/retrobat
|
||||
commit: ec36b1310a72c9ba5cd159525f96bbf0246170aa
|
||||
tag: 8.3.1
|
||||
es:
|
||||
repo: https://github.com/RetroBat-Official/emulationstation
|
||||
commit: 45f37fd74819ee07118ca2e7680a907b25733ac5
|
||||
note: branch retrobat-8.3
|
||||
roms_root:
|
||||
path: <RetroBat>\roms
|
||||
from_bios: ../roms
|
||||
source_ref: os system/templates/emulationstation/es_systems.cfg:10
|
||||
case_sensitive: false
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:350
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:380
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: html_arrm
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: bezels
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: fonts
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: logs
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- name: screenshots
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:400-403
|
||||
notes:
|
||||
- ~ is the EmulationStation home, <RetroBat>\emulationstation, so ~\..\roms is <RetroBat>\roms beside
|
||||
<RetroBat>\bios.
|
||||
- Windows folders are case-insensitive.
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:355).
|
||||
- 'Default core: the core marked default, else the first emulator''s first core (es es-app/src/SystemData.cpp:1923-1960).'
|
||||
@@ -0,0 +1,27 @@
|
||||
name: RetroDECK
|
||||
platform: retrodeck
|
||||
format: esde
|
||||
params:
|
||||
systems:
|
||||
source: esde
|
||||
path: resources/systems/linux/es_systems.xml
|
||||
sources:
|
||||
esde:
|
||||
repo: https://github.com/RetroDECK/ES-DE
|
||||
commit: 15e1b236eafd2864bd99ffcc9853d2efa2a3916c
|
||||
note: branch retrodeck-main at release retrodeck-main-20260926-172324
|
||||
os:
|
||||
repo: https://github.com/RetroDECK/RetroDECK
|
||||
commit: 7786a849179eb2ca94e8ca413259e28adbcb1e39
|
||||
roms_root:
|
||||
path: ~/retrodeck/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os config/retrodeck/retrodeck.json:5,9
|
||||
case_sensitive: true
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: esde es-app/src/SystemData.cpp:657
|
||||
notes:
|
||||
- 'roms_path and bios_path are settings: their defaults are siblings.'
|
||||
- Extensions are matched as written (esde es-app/src/SystemData.cpp:666), kept here lowercased.
|
||||
- 'Default emulator: the first <command> of each system.'
|
||||
@@ -0,0 +1,29 @@
|
||||
name: RetroPie
|
||||
platform: retropie
|
||||
format: retropie
|
||||
params:
|
||||
platforms_cfg: platforms.cfg
|
||||
module_dirs: [emulators, libretrocores]
|
||||
install_sections: [core, main, opt, exp]
|
||||
platform_flags: [native, 64bit, gl, vulkan, x11, x86]
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/RetroPie/RetroPie-Setup
|
||||
commit: 46128cd252cdecae852a4d0bafa2aaf9d03ab563
|
||||
es:
|
||||
repo: https://github.com/RetroPie/EmulationStation
|
||||
commit: a31c36a77b385a6ea3f6667e75ef468ff79678a6
|
||||
note: branch stable, the one scriptmodules/supplementary/emulationstation.sh builds
|
||||
roms_root:
|
||||
path: ~/RetroPie/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os retropie_packages.sh:47-49; os scriptmodules/helpers.sh:1412
|
||||
case_sensitive: true
|
||||
case_ref: os scriptmodules/helpers.sh:1435-1437
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:102-104
|
||||
notes:
|
||||
- addSystem appends the upper-case form of each extension because EmulationStation compares them as written (os scriptmodules/helpers.sh:1435-1437).
|
||||
- Each folder is <romdir>/<system> for a system platforms.cfg lists (os scriptmodules/helpers.sh:1406-1413). A folder appears only once a module calls addSystem for it.
|
||||
- The default is the first module installed that calls addEmulator with 1 (os scriptmodules/helpers.sh:1565-1570). Rows give it for a basic install on x86_64, the core section then the main one, in registration order (os scriptmodules/admin/setup.sh:606-611; os scriptmodules/packages.sh:1037-1038; flags from os scriptmodules/system.sh:537,673-683). A system no basic-install module serves takes the first optional (opt, then exp) module.
|
||||
@@ -0,0 +1,65 @@
|
||||
name: ROCKNIX
|
||||
platform: rocknix
|
||||
format: elec-conf
|
||||
params:
|
||||
package: projects/ROCKNIX/packages/virtual/emulators/package.mk
|
||||
conf_dir: config/emulators
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/ROCKNIX/distribution
|
||||
commit: c445081a59518f37d9776e5412dd7b14910696f7
|
||||
tag: '20261001'
|
||||
es:
|
||||
repo: https://github.com/ROCKNIX/emulationstation-next
|
||||
commit: cada856d86e3115fbbf0bce09dd761b0ee8fa9fd
|
||||
note: EmulationStation pinned by the ui/emulationstation package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:152
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bezels
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:149
|
||||
- name: bios
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:152
|
||||
- name: music
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:155
|
||||
- name: savestates
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:158
|
||||
- name: themes
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os projects/ROCKNIX/packages/virtual/emulators/package.mk:161
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:340
|
||||
- pattern: ._*
|
||||
source_ref: es es-app/src/SystemData.cpp:334-336
|
||||
media:
|
||||
- name: artwork
|
||||
source_ref: es es-app/src/SystemData.cpp:370
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:390-393
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:351).
|
||||
- Each folder comes from SYSTEM_PATH of config/emulators/<system>.conf, written by add_es_system for every
|
||||
system the emulators package adds.
|
||||
@@ -0,0 +1,60 @@
|
||||
name: RomM
|
||||
platform: romm
|
||||
format: romm
|
||||
params:
|
||||
source: os
|
||||
cores_map: frontend/src/utils/index.ts
|
||||
bios_fixture: backend/models/fixtures/known_bios_files.json
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/rommapp/romm
|
||||
commit: 68f71259f7c6de39fbeedff9cc9ac114c18ee250
|
||||
tag: 5.4.0
|
||||
roms_root:
|
||||
path: /romm/library/roms
|
||||
from_bios: ../roms
|
||||
source_ref: os backend/config/__init__.py:46-48; os backend/config/config_manager.py:57-58
|
||||
case_sensitive: true
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os backend/handler/filesystem/roms_handler.py:530-545
|
||||
- pattern: '*.db'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.tmp'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.bak'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.lock'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.log'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.cache'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- pattern: '*.crdownload'
|
||||
source_ref: os backend/config/config_manager.py:267-276
|
||||
- name: gamelist.xml
|
||||
source_ref: os backend/config/config_manager.py:277-286
|
||||
- name: metadata.pegasus.txt
|
||||
source_ref: os backend/config/config_manager.py:277-286
|
||||
skip:
|
||||
- name: assets
|
||||
source_ref: os backend/config/config_manager.py:288-300
|
||||
- name: __MACOSX
|
||||
source_ref: os backend/config/config_manager.py:288-300
|
||||
- name: System Volume Information
|
||||
source_ref: os backend/config/config_manager.py:288-300
|
||||
media:
|
||||
- name: images
|
||||
source_ref: os backend/config/config_manager.py:303-324
|
||||
- name: covers
|
||||
source_ref: os backend/config/config_manager.py:303-324
|
||||
- name: manuals
|
||||
source_ref: os backend/config/config_manager.py:303-324
|
||||
- name: screenshots
|
||||
source_ref: os backend/config/config_manager.py:303-324
|
||||
- name: videos
|
||||
source_ref: os backend/config/config_manager.py:303-324
|
||||
notes:
|
||||
- The default layout is roms/{platform}/{game} and bios/{platform} under /romm/library (os backend/config/config_manager.py:57-58). config.yml can switch to {platform}/roms and {platform}/bios (os backend/config/config_manager.py:1121-1122).
|
||||
- RomM has no extension allow-list. Every file is a ROM except the excluded extensions and names, and config.yml extends both lists.
|
||||
- A folder is any IGDB or RomM platform slug. The rows are the slugs RomM plays in the browser (_EJS_CORES_MAP) or keeps BIOS for (known_bios_files.json), and the core is the first EmulatorJS core listed.
|
||||
@@ -0,0 +1,27 @@
|
||||
name: spruceOS
|
||||
platform: retroarch
|
||||
format: spruce
|
||||
params:
|
||||
source: os
|
||||
skip: [-CUSTOM-SYSTEM-]
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/spruceUI/spruceOS
|
||||
commit: 824b1aaee9e1e9979a6b04979f581e60b8c23b87
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: os App/PyUI/main-ui/games/utils/device_specific/miyoo_trim_game_system_utils.py:122-130
|
||||
case_sensitive: null
|
||||
case_ref: os App/PyUI/main-ui/games/utils/device_specific/miyoo_trim_game_system_utils.py:143-155
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: os App/PyUI/main-ui/games/utils/rom_utils.py:136-176
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: os App/PyUI/main-ui/games/utils/rom_utils.py:136-176
|
||||
notes:
|
||||
- A folder is the Emu folder name or any alternativeFolderNames entry, tested with os.path.exists, so case folds only on a FAT or exFAT card.
|
||||
- A file counts when its lowercased suffix is in extlist. With an empty extlist every file counts except .xml, .txt and .db. Names in ignoreList (BIOS archives in arcade folders) are dropped (os App/PyUI/main-ui/games/utils/rom_utils.py:136-176).
|
||||
- default_emulator is the factory core. A per-device menu key overrides it (os spruce/scripts/emu/lib/general_functions.sh:135-160).
|
||||
- The second card's /media/sdcard1/Roms is read too when present.
|
||||
@@ -0,0 +1,54 @@
|
||||
name: UnofficialOS
|
||||
platform: retroarch
|
||||
format: elec-conf
|
||||
params:
|
||||
package: packages/virtual/emulators/package.mk
|
||||
conf_dir: config/emulators
|
||||
path_prefixes:
|
||||
- /storage/roms/
|
||||
sources:
|
||||
os:
|
||||
repo: https://github.com/RetroGFX/UnofficialOS
|
||||
commit: 226357964978ec6092c0759b8bac67d5ff24442b
|
||||
es:
|
||||
repo: https://github.com/RetroGFX/emulationstation
|
||||
commit: f439343ecfa5e85448fca96db9a3b64a8d685397
|
||||
note: EmulationStation pinned by the ui/emulationstation package.mk PKG_VERSION
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ..
|
||||
source_ref: os packages/virtual/emulators/package.mk:104
|
||||
case_sensitive: null
|
||||
skip:
|
||||
- name: bios
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:104
|
||||
- name: music
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:107
|
||||
- name: savestates
|
||||
reason: created by the emulators package, holds no game
|
||||
source_ref: os packages/virtual/emulators/package.mk:110
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: es es-app/src/SystemData.cpp:225
|
||||
media:
|
||||
- name: media
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: medias
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: images
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: manuals
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: videos
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- name: assets
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
- pattern: downloaded_*
|
||||
source_ref: es es-app/src/SystemData.cpp:272
|
||||
notes:
|
||||
- 'The BIOS folder is /storage/roms/bios, inside the roms root: the scan skips it.'
|
||||
- A file is a game only when its lowercased extension is in the folder's list (es es-app/src/SystemData.cpp:236).
|
||||
- Each folder comes from SYSTEM_PATH of config/emulators/<system>.conf, written by add_es_system for every
|
||||
system the emulators package adds.
|
||||
@@ -0,0 +1,916 @@
|
||||
setup: allium
|
||||
name: Allium
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/goweiwen/Allium"
|
||||
commit: ee0dda979bc02649fdda48b277eaa60938273465
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: "os crates/common/src/constants.rs:19-34"
|
||||
case_sensitive: false
|
||||
case_ref: "os crates/allium-launcher/src/consoles.rs:120-185"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: _*
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- name: gamelist.xml
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- name: miyoogamelist.xml
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- name: neogeo.zip
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: '*.db'
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: '*.sbi'
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: '*.nfo'
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: '*.msu'
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- pattern: '*.pcm'
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
- name: Guides
|
||||
source_ref: "os crates/allium-launcher/src/entry/mod.rs:31-62"
|
||||
notes:
|
||||
- "A file maps by its exact name, then by any dotted extension a console lists, then by the folder patterns\
|
||||
\ walking up the path (os crates/allium-launcher/src/consoles.rs:138-185). A console with no folder\
|
||||
\ pattern is matched by extension only and has no row."
|
||||
folders:
|
||||
- folder: AMIGA
|
||||
name: Amiga
|
||||
aliases:
|
||||
- amiga
|
||||
- amiga1200
|
||||
- amiga600
|
||||
- amigacd32
|
||||
- cdtv
|
||||
extensions:
|
||||
- .adf
|
||||
- .adz
|
||||
- .dms
|
||||
- .fdi
|
||||
- .hdf
|
||||
- .hdz
|
||||
- .info
|
||||
- .ipf
|
||||
- .lha
|
||||
- .mds
|
||||
- .nrg
|
||||
- .rp9
|
||||
- .slave
|
||||
- .uae
|
||||
core: puae2021
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:136"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ARCADE
|
||||
name: Arcade
|
||||
aliases:
|
||||
- arcade
|
||||
- fba
|
||||
- fbneo
|
||||
- mame
|
||||
core: mame2003_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:13"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ATARI
|
||||
name: Atari 2600
|
||||
aliases:
|
||||
- atari2600
|
||||
extensions:
|
||||
- .a26
|
||||
core: stella2014
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:36"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ATARIST
|
||||
name: Atari ST
|
||||
core: hatari
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:66"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: CHAILOVE
|
||||
name: ChaiLove
|
||||
core: chailove
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:443"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: COLECO
|
||||
name: ColecoVision
|
||||
aliases:
|
||||
- colecovision
|
||||
extensions:
|
||||
- .col
|
||||
- .ri
|
||||
- .sc
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:130"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: COMMODORE
|
||||
name: Commodore 64
|
||||
aliases:
|
||||
- c64
|
||||
core: vice_x64
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:157"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: CPC
|
||||
name: Amstrad CPC
|
||||
aliases:
|
||||
- amstradcpc
|
||||
extensions:
|
||||
- .kcr
|
||||
- .sna
|
||||
core: crocods
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:7"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: CPS1
|
||||
core: fbalpha2012_cps1
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:82"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: CPS2
|
||||
core: fbalpha2012_cps2
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:98"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: CPS3
|
||||
core: fbalpha2012_cps3
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:114"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: DAPHNE
|
||||
name: Daphne
|
||||
extensions:
|
||||
- .daphne
|
||||
core: daphne
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:448"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: DOOM
|
||||
name: Doom
|
||||
aliases:
|
||||
- PRBOOM
|
||||
extensions:
|
||||
- .iwad
|
||||
- .pwad
|
||||
- .wad
|
||||
core: prboom
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:491"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: DOS
|
||||
name: MS-DOS
|
||||
extensions:
|
||||
- .bat
|
||||
- .com
|
||||
- .conf
|
||||
- .dosz
|
||||
- .exe
|
||||
- .ima
|
||||
- .ins
|
||||
- .jrc
|
||||
- .m3u8
|
||||
- .tc
|
||||
- .vhd
|
||||
core: dosbox_pure
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:195"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: EASYRPG
|
||||
name: EasyRPG
|
||||
core: easyrpg
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:454"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ECWOLF
|
||||
name: Wolfenstein 3D
|
||||
core: ecwolf
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:459"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: EIGHTHUNDRED
|
||||
name: Atari - 800
|
||||
aliases:
|
||||
- atari800
|
||||
- atarixe
|
||||
extensions:
|
||||
- .xex
|
||||
core: atari800
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:30"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: FAIRCHILD
|
||||
name: Fairchild ChannelF
|
||||
aliases:
|
||||
- channelf
|
||||
extensions:
|
||||
- .chf
|
||||
core: freechaf
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:167"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: FC
|
||||
name: NES
|
||||
aliases:
|
||||
- NES
|
||||
- famicom
|
||||
extensions:
|
||||
- .nes
|
||||
- .unf
|
||||
- .unif
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:271"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: FDS
|
||||
name: Famicom Disk Syst.
|
||||
extensions:
|
||||
- .fds
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:236"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: FIFTYTWOHUNDRED
|
||||
name: Atari 5200
|
||||
aliases:
|
||||
- atari5200
|
||||
extensions:
|
||||
- .a52
|
||||
core: a5200
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:42"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: FLASHBACK
|
||||
name: Flashback
|
||||
core: reminiscence
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:507"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GAMETANK
|
||||
name: Game Tank
|
||||
extensions:
|
||||
- .gtr
|
||||
core: libgametank
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:1"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GB
|
||||
name: Game Boy
|
||||
aliases:
|
||||
- TGB_Dual
|
||||
extensions:
|
||||
- .gb
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:248"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GBA
|
||||
name: Game Boy Advance
|
||||
extensions:
|
||||
- .gba
|
||||
core: gpsp
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:260"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GBC
|
||||
name: Game Boy Color
|
||||
extensions:
|
||||
- .gbc
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:254"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GG
|
||||
name: Game Gear
|
||||
aliases:
|
||||
- gamegear
|
||||
extensions:
|
||||
- .gg
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:343"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GME
|
||||
name: Game Music Emu
|
||||
core: gme
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:464"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: GW
|
||||
name: Game & Watch
|
||||
aliases:
|
||||
- gameandwatch
|
||||
extensions:
|
||||
- .mgw
|
||||
core: gw
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:242"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: INTELLIVISION
|
||||
name: Intellivision
|
||||
extensions:
|
||||
- .int
|
||||
core: freeintv
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:184"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: JAGUAR
|
||||
name: Atari Jaguar
|
||||
aliases:
|
||||
- atarijaguar
|
||||
- atarijaguarcd
|
||||
extensions:
|
||||
- .j64
|
||||
- .jag
|
||||
core: virtualjaguar
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:54"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: LOVE
|
||||
name: LÖVE
|
||||
aliases:
|
||||
- lutro
|
||||
extensions:
|
||||
- .love
|
||||
core: lutro
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:469"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: LYNX
|
||||
name: Atari Lynx
|
||||
aliases:
|
||||
- atarilynx
|
||||
extensions:
|
||||
- .lnx
|
||||
core: handy
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:60"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MD
|
||||
name: Genesis
|
||||
aliases:
|
||||
- genesis
|
||||
- megadrive
|
||||
- megadrivejp
|
||||
extensions:
|
||||
- .gen
|
||||
- .md
|
||||
- .smd
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:349"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MEDIA
|
||||
name: Movies
|
||||
aliases:
|
||||
- Movies
|
||||
extensions:
|
||||
- .3g2
|
||||
- .3gp
|
||||
- .aac
|
||||
- .avi
|
||||
- .flv
|
||||
- .m4a
|
||||
- .mj2
|
||||
- .mkv
|
||||
- .mov
|
||||
- .mp3
|
||||
- .mp4
|
||||
- .mpeg
|
||||
- .ogg
|
||||
- .oss
|
||||
- .wav
|
||||
- .webm
|
||||
core: ffplay
|
||||
emulator: standalone
|
||||
source_ref: "os static/.allium/config/consoles.toml:548"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MEGADUCK
|
||||
name: Mega Duck
|
||||
core: sameduck
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:190"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MICROW8
|
||||
name: MicroW8
|
||||
core: uw8
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:522"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MS
|
||||
name: Master System
|
||||
aliases:
|
||||
- mark3
|
||||
- mastersystem
|
||||
extensions:
|
||||
- .sms
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:355"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: MSX
|
||||
aliases:
|
||||
- msx1
|
||||
- msx2
|
||||
- msxturbor
|
||||
extensions:
|
||||
- .mx1
|
||||
- .mx2
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:213"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: NDS
|
||||
name: Nintendo DS
|
||||
aliases:
|
||||
- DS
|
||||
extensions:
|
||||
- .nds
|
||||
core: drastic
|
||||
emulator: standalone
|
||||
source_ref: "os static/.allium/config/consoles.toml:542"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: NEOCD
|
||||
name: Neo Geo CD
|
||||
aliases:
|
||||
- neogeocd
|
||||
- neogeocdjp
|
||||
core: neocd
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:383"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: NEOGEO
|
||||
name: Neo Geo
|
||||
core: fbalpha2012_neogeo
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:378"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: NGP
|
||||
name: Neo Geo Pocket Color
|
||||
aliases:
|
||||
- NGC
|
||||
- ngpc
|
||||
extensions:
|
||||
- .ngc
|
||||
- .ngp
|
||||
core: mednafen_ngp
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:388"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: NXENGINE
|
||||
name: Cave Story
|
||||
core: nxengine
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:427"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ODYSSEY
|
||||
name: Odyssey 2
|
||||
aliases:
|
||||
- odyssey2
|
||||
core: o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:179"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PALMOS
|
||||
name: Palm OS
|
||||
aliases:
|
||||
- palm
|
||||
extensions:
|
||||
- .pqa
|
||||
- .prc
|
||||
core: mu
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:475"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PANASONIC
|
||||
name: 3DO
|
||||
aliases:
|
||||
- 3DO
|
||||
core: opera
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:486"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PC8000
|
||||
name: PC-8000
|
||||
aliases:
|
||||
- pc88
|
||||
core: quasi88
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:412"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PC98
|
||||
name: PC-98
|
||||
aliases:
|
||||
- NINETYEIGHT
|
||||
- PCNINETYEIGHT
|
||||
core: np2kai
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:417"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PCE
|
||||
name: TurboGrafx-16
|
||||
aliases:
|
||||
- pcengine
|
||||
- tg16
|
||||
extensions:
|
||||
- .pce
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:230"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PCECD
|
||||
name: TurboGrafx CD
|
||||
aliases:
|
||||
- pcenginecd
|
||||
- tg-cd
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:225"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PCFX
|
||||
name: PC-FX
|
||||
core: mednafen_pcfx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:422"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PICO
|
||||
name: PICO-8
|
||||
aliases:
|
||||
- pico8
|
||||
extensions:
|
||||
- .p8
|
||||
- .png
|
||||
core: fake08
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:314"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: POKE
|
||||
name: Pokémon Mini
|
||||
aliases:
|
||||
- PKM
|
||||
- pokemini
|
||||
extensions:
|
||||
- .min
|
||||
core: pokemini
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:277"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PORTS
|
||||
name: Ports Collection
|
||||
aliases:
|
||||
- NATIVE
|
||||
- SH
|
||||
extensions:
|
||||
- .port
|
||||
core: native
|
||||
emulator: standalone
|
||||
source_ref: "os static/.allium/config/consoles.toml:320"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: PSX
|
||||
name: PlayStation
|
||||
aliases:
|
||||
- PS
|
||||
- PS1
|
||||
extensions:
|
||||
- .cbn
|
||||
- .mdf
|
||||
- .pbp
|
||||
- .toc
|
||||
core: pcsx_rearmed
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:394"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: QUAKE
|
||||
name: Quake
|
||||
core: tyrquake
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:517"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SATELLAVIEW
|
||||
name: Satellaview
|
||||
extensions:
|
||||
- .st
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:283"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SCUMMVM
|
||||
name: ScummVM
|
||||
extensions:
|
||||
- .scummvm
|
||||
- .target
|
||||
core: scummvm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:326"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SEGACD
|
||||
name: Sega CD
|
||||
aliases:
|
||||
- megacd
|
||||
- megacdjp
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:338"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SEGASGONE
|
||||
name: SG-1000
|
||||
aliases:
|
||||
- sg-1000
|
||||
extensions:
|
||||
- .sg
|
||||
core: gearsystem
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:361"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SEVENTYEIGHTHUNDRED
|
||||
name: Atari 7800
|
||||
aliases:
|
||||
- atari7800
|
||||
extensions:
|
||||
- .a78
|
||||
core: prosystem
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:48"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SFC
|
||||
name: SNES
|
||||
aliases:
|
||||
- SNES
|
||||
- snesna
|
||||
extensions:
|
||||
- .fig
|
||||
- .sfc
|
||||
- .smc
|
||||
- .swc
|
||||
core: mednafen_supafaust
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:289"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SGB
|
||||
name: Super Game Boy
|
||||
core: mgba
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:266"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SGFX
|
||||
name: SuperGrafx
|
||||
aliases:
|
||||
- supergrafx
|
||||
extensions:
|
||||
- .sgx
|
||||
core: mednafen_supergrafx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:219"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SHARPX1
|
||||
name: Sharp X1
|
||||
aliases:
|
||||
- x1
|
||||
core: x1
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:497"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SUFAMI
|
||||
name: Sufami Turbo
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:71"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: SUPERVISION
|
||||
name: Watara Supervision
|
||||
extensions:
|
||||
- .sv
|
||||
core: potator
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:406"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: THIRTYTWOX
|
||||
name: Genesis 32X
|
||||
aliases:
|
||||
- sega32x
|
||||
- sega32xjp
|
||||
- sega32xna
|
||||
extensions:
|
||||
- .32x
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:332"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: THOMSON
|
||||
name: Thomson
|
||||
aliases:
|
||||
- moto
|
||||
- to8
|
||||
core: theodore
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:512"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: TI83
|
||||
name: Texas Instruments TI-83
|
||||
core: numero
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:481"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: TIC
|
||||
name: TIC-80
|
||||
aliases:
|
||||
- tic80
|
||||
extensions:
|
||||
- .fd
|
||||
- .k7
|
||||
- .m7
|
||||
- .sap
|
||||
- .tic
|
||||
core: tic80
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:400"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: UZEBOX
|
||||
name: Uzebox
|
||||
core: uzem
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:527"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VB
|
||||
name: Virtual Boy
|
||||
aliases:
|
||||
- virtualboy
|
||||
extensions:
|
||||
- .vb
|
||||
- .vboy
|
||||
core: mednafen_vb
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:303"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VECRTEX
|
||||
name: GCE Vectrex
|
||||
core: vecx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:532"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VECTREX
|
||||
name: Vectrex
|
||||
extensions:
|
||||
- .vec
|
||||
core: vecx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:173"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VIC20
|
||||
name: VIC-20
|
||||
core: vice_xvic
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:162"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VIDEOPAC
|
||||
name: Phillips Videopac+
|
||||
core: o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:309"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: VMU
|
||||
name: Sega VMU
|
||||
core: vemulator
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:367"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: WS
|
||||
name: WonderSwanColor
|
||||
aliases:
|
||||
- wonderswan
|
||||
- wonderswancolor
|
||||
extensions:
|
||||
- .pc2
|
||||
- .ws
|
||||
core: mednafen_wswan
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:76"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: X68000
|
||||
name: Sharp X68000
|
||||
core: px68k
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:502"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: XRICK
|
||||
name: Rick Dangerous
|
||||
core: xrick
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:537"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ZX81
|
||||
name: Sinclair ZX81
|
||||
aliases:
|
||||
- ZXEIGHTYONE
|
||||
core: zx81
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:438"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
- folder: ZXS
|
||||
name: ZX Spectrum
|
||||
aliases:
|
||||
- zxspectrum
|
||||
extensions:
|
||||
- .rzx
|
||||
- .scl
|
||||
- .trd
|
||||
- .tzx
|
||||
- .z80
|
||||
core: fuse
|
||||
emulator: retroarch
|
||||
source_ref: "os static/.allium/config/consoles.toml:372"
|
||||
note: "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension\
|
||||
\ wins over its folder"
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,352 @@
|
||||
setup: bizhawk
|
||||
name: BizHawk
|
||||
platform: bizhawk
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/TASEmulators/BizHawk"
|
||||
commit: bdddf4a58aa1a022afb11dc73294a81a5aa7bbd5
|
||||
tag: 2.11.1
|
||||
roms_root:
|
||||
path: <BizHawk>
|
||||
from_bios: ..
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:96-97,179"
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- "Each system has a base folder under the BizHawk folder, and its ROM path is \".\" inside it (os src/BizHawk.Client.Common/config/PathEntryCollection.cs:77-85,96-97).\
|
||||
\ Firmware sits in Firmware beside those bases, the folder the installer fills."
|
||||
- "BizHawk never scans a folder. The user opens one file, the open dialog filters by the RomFileExtensions\
|
||||
\ lists, and the system follows from the extension and the game database (os src/BizHawk.Client.Common/RomLoader.cs:1143-1183)."
|
||||
- "A row's extensions are the RomFileExtensions list named like its system. Systems whose list carries\
|
||||
\ another name (32X, Game Gear, SG-1000) or none (Saturn, PC-FX, 3DO, Amstrad CPC, Channel F) have none\
|
||||
\ here."
|
||||
- "The cores are BizHawk's own. The default named in a note is CoreNames[0] of CorePickerUIData (os src/BizHawk.Client.Common/config/Config.cs:20-50)."
|
||||
folders:
|
||||
- folder: 32X
|
||||
name: Sega32X
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:198"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: 3DO
|
||||
name: Panasonic3DO
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:279"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: 3DS
|
||||
name: N3DS
|
||||
extensions:
|
||||
- .3ds
|
||||
- .3dsx
|
||||
- .app
|
||||
- .axf
|
||||
- .cci
|
||||
- .cia
|
||||
- .cxi
|
||||
- .elf
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:193; os src/BizHawk.Client.Common/RomLoader.cs:1066"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Amiga
|
||||
extensions:
|
||||
- .adf
|
||||
- .adz
|
||||
- .dms
|
||||
- .fdi
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:200; os src/BizHawk.Client.Common/RomLoader.cs:1038"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: AmstradCPC
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:206"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Apple II
|
||||
name: AppleII
|
||||
extensions:
|
||||
- .do
|
||||
- .dsk
|
||||
- .po
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:208; os src/BizHawk.Client.Common/RomLoader.cs:1040"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Arcade
|
||||
extensions:
|
||||
- .7z
|
||||
- .chd
|
||||
- .zip
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:210; os src/BizHawk.Client.Common/RomLoader.cs:1042"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Atari 2600
|
||||
name: A26
|
||||
extensions:
|
||||
- .a26
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:202; os src/BizHawk.Client.Common/RomLoader.cs:1034"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Atari2600Hawk (CorePickerUIData,\
|
||||
\ CoreNames[0])"
|
||||
- folder: Atari 7800
|
||||
name: A78
|
||||
extensions:
|
||||
- .a78
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:204; os src/BizHawk.Client.Common/RomLoader.cs:1036"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: C64
|
||||
extensions:
|
||||
- .crt
|
||||
- .d64
|
||||
- .g64
|
||||
- .prg
|
||||
- .tap
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:212; os src/BizHawk.Client.Common/RomLoader.cs:1044"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Channel F
|
||||
name: ChannelF
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:214"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Coleco
|
||||
extensions:
|
||||
- .col
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:216; os src/BizHawk.Client.Common/RomLoader.cs:1046"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Doom
|
||||
extensions:
|
||||
- .wad
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:218; os src/BizHawk.Client.Common/RomLoader.cs:1048"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: DOS
|
||||
extensions:
|
||||
- .d88
|
||||
- .dmf
|
||||
- .fdd
|
||||
- .fdi
|
||||
- .hdd
|
||||
- .ima
|
||||
- .img
|
||||
- .nfd
|
||||
- .xdf
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:220; os src/BizHawk.Client.Common/RomLoader.cs:1050"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Dual Game Gear
|
||||
name: GGL
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:238"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Game Gear
|
||||
name: GG
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:236"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Gpgx (CorePickerUIData, CoreNames[0])"
|
||||
- folder: Gameboy
|
||||
name: GB
|
||||
aliases:
|
||||
- GBC
|
||||
- SGB
|
||||
extensions:
|
||||
- .gb
|
||||
- .gbc
|
||||
- .sgb
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:227; os src/BizHawk.Client.Common/RomLoader.cs:1052"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Gambatte (CorePickerUIData, CoreNames[0])"
|
||||
- folder: Gameboy Link
|
||||
name: GBL
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:222"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core GambatteLink (CorePickerUIData,\
|
||||
\ CoreNames[0])"
|
||||
- folder: GBA
|
||||
extensions:
|
||||
- .gba
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:232; os src/BizHawk.Client.Common/RomLoader.cs:1054"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Genesis
|
||||
name: GEN
|
||||
extensions:
|
||||
- .32x
|
||||
- .gen
|
||||
- .md
|
||||
- .smd
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:234; os src/BizHawk.Client.Common/RomLoader.cs:1056"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Intellivision
|
||||
name: INTV
|
||||
extensions:
|
||||
- .bin
|
||||
- .int
|
||||
- .rom
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:240; os src/BizHawk.Client.Common/RomLoader.cs:1058"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Jaguar
|
||||
extensions:
|
||||
- .j64
|
||||
- .jag
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:245; os src/BizHawk.Client.Common/RomLoader.cs:1060"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Lynx
|
||||
extensions:
|
||||
- .lnx
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:262; os src/BizHawk.Client.Common/RomLoader.cs:1062"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: MSX
|
||||
extensions:
|
||||
- .cas
|
||||
- .dsk
|
||||
- .mx1
|
||||
- .rom
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:264; os src/BizHawk.Client.Common/RomLoader.cs:1064"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: N64
|
||||
extensions:
|
||||
- .n64
|
||||
- .v64
|
||||
- .z64
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:266; os src/BizHawk.Client.Common/RomLoader.cs:1068"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Mupen64Plus (CorePickerUIData,\
|
||||
\ CoreNames[0])"
|
||||
- folder: NDS
|
||||
extensions:
|
||||
- .dsi
|
||||
- .ids
|
||||
- .nds
|
||||
- .srl
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:268; os src/BizHawk.Client.Common/RomLoader.cs:1072"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: NES
|
||||
extensions:
|
||||
- .fds
|
||||
- .nes
|
||||
- .unf
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:270; os src/BizHawk.Client.Common/RomLoader.cs:1074"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core QuickNes (CorePickerUIData, CoreNames[0])"
|
||||
- folder: NGP
|
||||
extensions:
|
||||
- .ngc
|
||||
- .ngp
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:275; os src/BizHawk.Client.Common/RomLoader.cs:1076"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: O2
|
||||
extensions:
|
||||
- .o2
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:277; os src/BizHawk.Client.Common/RomLoader.cs:1078"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: PC Engine
|
||||
name: PCE
|
||||
aliases:
|
||||
- PCECD
|
||||
- SGX
|
||||
- SGXCD
|
||||
extensions:
|
||||
- .pce
|
||||
- .sgx
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:281; os src/BizHawk.Client.Common/RomLoader.cs:1080"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core TurboNyma (CorePickerUIData, CoreNames[0])"
|
||||
- folder: PCFX
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:283"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: PSX
|
||||
extensions:
|
||||
- .exe
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:285; os src/BizHawk.Client.Common/RomLoader.cs:1082"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Nymashock (CorePickerUIData, CoreNames[0])"
|
||||
- folder: Satellaview
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:289"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Bsnes115 (CorePickerUIData, CoreNames[0])"
|
||||
- folder: Saturn
|
||||
name: SAT
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:287"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: SG-1000
|
||||
name: SG
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:291"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Gpgx (CorePickerUIData, CoreNames[0])"
|
||||
- folder: SMS
|
||||
extensions:
|
||||
- .gg
|
||||
- .sg
|
||||
- .sms
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:293; os src/BizHawk.Client.Common/RomLoader.cs:1084"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Gpgx (CorePickerUIData, CoreNames[0])"
|
||||
- folder: SNES
|
||||
extensions:
|
||||
- .bs
|
||||
- .sfc
|
||||
- .smc
|
||||
- .xml
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:295; os src/BizHawk.Client.Common/RomLoader.cs:1086"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Snes9X (CorePickerUIData, CoreNames[0])"
|
||||
- folder: TI83
|
||||
extensions:
|
||||
- .83g
|
||||
- .83l
|
||||
- .83p
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:297; os src/BizHawk.Client.Common/RomLoader.cs:1088"
|
||||
note: "the open dialog starts here, nothing is scanned. Default core Emu83 (CorePickerUIData, CoreNames[0])"
|
||||
- folder: TIC80
|
||||
extensions:
|
||||
- .tic
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:299; os src/BizHawk.Client.Common/RomLoader.cs:1090"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: Uzebox
|
||||
name: UZE
|
||||
extensions:
|
||||
- .uze
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:301; os src/BizHawk.Client.Common/RomLoader.cs:1092"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: VB
|
||||
extensions:
|
||||
- .vb
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:303; os src/BizHawk.Client.Common/RomLoader.cs:1094"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: VEC
|
||||
extensions:
|
||||
- .vec
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:305; os src/BizHawk.Client.Common/RomLoader.cs:1096"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: WonderSwan
|
||||
name: WSWAN
|
||||
extensions:
|
||||
- .pc2
|
||||
- .ws
|
||||
- .wsc
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:307; os src/BizHawk.Client.Common/RomLoader.cs:1098"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
- folder: ZXSpectrum
|
||||
extensions:
|
||||
- .dsk
|
||||
- .ipf
|
||||
- .pzx
|
||||
- .tap
|
||||
- .tzx
|
||||
emulator: EmuHawk
|
||||
source_ref: "os src/BizHawk.Client.Common/config/PathEntryCollection.cs:309; os src/BizHawk.Client.Common/RomLoader.cs:1100"
|
||||
note: the open dialog starts here, nothing is scanned
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,836 @@
|
||||
setup: crossmix-os
|
||||
name: CrossMix-OS
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/cizia64/CrossMix-OS"
|
||||
commit: 206d612fdef83972ed54a17de955125d0c0b3528
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: "os RetroArch/retroarch.cfg:3202"
|
||||
case_sensitive: false
|
||||
case_ref: "os System/usr/trimui/scripts/load_launcher.sh:23-41"
|
||||
notes:
|
||||
- Each Emus/<SYS>/config.json points rompath at ../../Roms/<SYS>. Box art lives in /mnt/SDCARD/Imgs/<SYS>,
|
||||
outside Roms.
|
||||
- The stock TrimUI MainUI that lists the games is closed source. It reads extlist and hidebios from config.json.
|
||||
- "The default core is the first launchlist entry with a launch script, unless a per-game or per-system\
|
||||
\ preset exists (os System/usr/trimui/scripts/load_launcher.sh:23-41)."
|
||||
folders:
|
||||
- folder: ADVMAME
|
||||
extensions:
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ADVMAME/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ADVMAME/default.sh), names no libretro core"
|
||||
- folder: AMIGA
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/AMIGA/config.json:9"
|
||||
note: "default launcher default.sh (Emus/AMIGA/default.sh), names no libretro core"
|
||||
- folder: AMIGACD
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/AMIGACD/config.json:7"
|
||||
note: "default launcher default.sh (Emus/AMIGACD/default.sh), names no libretro core"
|
||||
- folder: AMIGACDTV
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/AMIGACDTV/config.json:7"
|
||||
note: "default launcher default.sh (Emus/AMIGACDTV/default.sh), names no libretro core"
|
||||
- folder: ARDUBOY
|
||||
core: ardens
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/ARDUBOY/config.json:7"
|
||||
note: "default launcher Ardens (Emus/ARDUBOY/ardens.sh)"
|
||||
- folder: ATARI2600
|
||||
extensions:
|
||||
- .7z
|
||||
- .a26
|
||||
- .bin
|
||||
- .zip
|
||||
core: stella2014
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/ATARI2600/config.json:9"
|
||||
note: "default launcher Stella2014 (Emus/ATARI2600/stella2014.sh)"
|
||||
- folder: ATARI5200
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ATARI5200/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ATARI5200/default.sh), names no libretro core"
|
||||
- folder: ATARI7800
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ATARI7800/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ATARI7800/default.sh), names no libretro core"
|
||||
- folder: ATARI800
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ATARI800/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ATARI800/default.sh), names no libretro core"
|
||||
- folder: ATARIST
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ATARIST/config.json:7"
|
||||
note: "default launcher default.sh (Emus/ATARIST/default.sh), names no libretro core"
|
||||
- folder: ATOMISWAVE
|
||||
core: flycast
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/ATOMISWAVE/config.json:10"
|
||||
note: "default launcher Flycast (Libretro) (Emus/ATOMISWAVE/flycast.sh)"
|
||||
- folder: C64
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/C64/config.json:9"
|
||||
note: "default launcher default.sh (Emus/C64/default.sh), names no libretro core"
|
||||
- folder: CANNONBALL
|
||||
extensions:
|
||||
- '.88'
|
||||
- .game
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CANNONBALL/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CANNONBALL/default.sh), names no libretro core"
|
||||
- folder: CAVESTORY
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CAVESTORY/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CAVESTORY/default.sh), names no libretro core"
|
||||
- folder: CHAILOVE
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CHAILOVE/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CHAILOVE/default.sh), names no libretro core"
|
||||
- folder: CHANNELF
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CHANNELF/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CHANNELF/default.sh), names no libretro core"
|
||||
- folder: COLECO
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/COLECO/config.json:9"
|
||||
note: "default launcher default.sh (Emus/COLECO/default.sh), names no libretro core"
|
||||
- folder: COLSGM
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/COLSGM/config.json:9"
|
||||
note: "default launcher default.sh (Emus/COLSGM/default.sh), names no libretro core"
|
||||
- folder: CPC
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CPC/config.json:7"
|
||||
note: "default launcher default.sh (Emus/CPC/default.sh), names no libretro core"
|
||||
- folder: CPET
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CPET/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CPET/default.sh), names no libretro core"
|
||||
- folder: CPLUS4
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/CPLUS4/config.json:9"
|
||||
note: "default launcher default.sh (Emus/CPLUS4/default.sh), names no libretro core"
|
||||
- folder: CPS1
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/CPS1/config.json:9"
|
||||
note: "default launcher FB Alpha 2012 (Emus/CPS1/fba2012.sh)"
|
||||
- folder: CPS2
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/CPS2/config.json:10"
|
||||
note: "default launcher FB Alpha 2012 (Emus/CPS2/fba2012.sh)"
|
||||
- folder: CPS3
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/CPS3/config.json:10"
|
||||
note: "default launcher FB Alpha 2012 (Emus/CPS3/fba2012.sh)"
|
||||
- folder: DAPHNE/roms
|
||||
name: DAPHNE
|
||||
extensions:
|
||||
- .daphne
|
||||
core: km_daphne_xtreme
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/DAPHNE/config.json:5"
|
||||
note: "default launcher Daphne (Emus/DAPHNE/daphne.sh)"
|
||||
- folder: DC
|
||||
core: flycast
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/DC/config.json:10"
|
||||
note: "default launcher Flycast (Libretro) (Emus/DC/flycast.sh)"
|
||||
- folder: DINOTHAWR
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/DINOTHAWR/config.json:9"
|
||||
note: "default launcher default.sh (Emus/DINOTHAWR/default.sh), names no libretro core"
|
||||
- folder: DOOM
|
||||
extensions:
|
||||
- .7z
|
||||
- .ipk3
|
||||
- .iwad
|
||||
- .pk3
|
||||
- .pwad
|
||||
- .wad
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/DOOM/config.json:9"
|
||||
note: "default launcher default.sh (Emus/DOOM/default.sh), names no libretro core"
|
||||
- folder: DOS
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/DOS/config.json:9"
|
||||
note: "default launcher default.sh (Emus/DOS/default.sh), names no libretro core"
|
||||
- folder: EASYRPG
|
||||
extensions:
|
||||
- .easyrpg
|
||||
- .ldb
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/EASYRPG/config.json:7"
|
||||
note: "default launcher default.sh (Emus/EASYRPG/default.sh), names no libretro core"
|
||||
- folder: ENTERPRISE
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ENTERPRISE/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ENTERPRISE/default.sh), names no libretro core"
|
||||
- folder: FBNEO
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbneo
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/FBNEO/config.json:8"
|
||||
note: "default launcher FB NEO (Emus/FBNEO/FBNEO.sh)"
|
||||
- folder: FC
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .nes
|
||||
- .unf
|
||||
- .unif
|
||||
- .zip
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/FC/config.json:7"
|
||||
note: "default launcher FCEUMM (Emus/FC/fceumm.sh)"
|
||||
- folder: FDS
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .nes
|
||||
- .unf
|
||||
- .unif
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/FDS/config.json:7"
|
||||
note: "default launcher default.sh (Emus/FDS/default.sh), names no libretro core"
|
||||
- folder: FLASHBACK
|
||||
extensions:
|
||||
- .aba
|
||||
- .lev
|
||||
- .map
|
||||
- .seq
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/FLASHBACK/config.json:9"
|
||||
note: "default launcher default.sh (Emus/FLASHBACK/default.sh), names no libretro core"
|
||||
- folder: GB
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .dmg
|
||||
- .gb
|
||||
- .gbc
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/GB/config.json:7"
|
||||
note: "default launcher GAMBATTE (Emus/GB/gambatte.sh)"
|
||||
- folder: GBA
|
||||
extensions:
|
||||
- .7z
|
||||
- .agb
|
||||
- .bin
|
||||
- .gba
|
||||
- .gbz
|
||||
- .zip
|
||||
core: mgba
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/GBA/config.json:7"
|
||||
note: "default launcher mGBA (Emus/GBA/mgba.sh)"
|
||||
- folder: GBC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .dmg
|
||||
- .gb
|
||||
- .gbc
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/GBC/config.json:7"
|
||||
note: "default launcher GAMBATTE (Emus/GBC/gambatte.sh)"
|
||||
- folder: GG
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gg
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/GG/config.json:9"
|
||||
note: "default launcher PicoDrive (Emus/GG/picodrive.sh)"
|
||||
- folder: GW
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/GW/config.json:9"
|
||||
note: "default launcher default.sh (Emus/GW/default.sh), names no libretro core"
|
||||
- folder: INTELLIVISION
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/INTELLIVISION/config.json:7"
|
||||
note: "default launcher default.sh (Emus/INTELLIVISION/default.sh), names no libretro core"
|
||||
- folder: JAVA
|
||||
extensions:
|
||||
- .jar
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/JAVA/config.json:9"
|
||||
note: "default launcher Launch freej2me (Emus/JAVA/launch.sh), names no libretro core"
|
||||
- folder: LOWRESNX
|
||||
extensions:
|
||||
- .nx
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/LOWRESNX/config.json:9"
|
||||
note: "default launcher default.sh (Emus/LOWRESNX/default.sh), names no libretro core"
|
||||
- folder: LUTRO
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/LUTRO/config.json:7"
|
||||
note: "default launcher default.sh (Emus/LUTRO/default.sh), names no libretro core"
|
||||
- folder: LYNX
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/LYNX/config.json:9"
|
||||
note: "default launcher default.sh (Emus/LYNX/default.sh), names no libretro core"
|
||||
- folder: MAME
|
||||
core: mame
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MAME/config.json:7"
|
||||
note: "default launcher MAME - default(0.259) (Emus/MAME/mame.sh)"
|
||||
- folder: MAME2003PLUS
|
||||
extensions:
|
||||
- .zip
|
||||
core: mame2003_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MAME2003PLUS/config.json:9"
|
||||
note: "default launcher MAME 2003-Plus (Emus/MAME2003PLUS/MAME2003-Plus.sh)"
|
||||
- folder: MAME2010
|
||||
extensions:
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/MAME2010/config.json:9"
|
||||
note: "default launcher default.sh (Emus/MAME2010/default.sh), names no libretro core"
|
||||
- folder: MD
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MD/config.json:9"
|
||||
note: "default launcher PicoDrive (Emus/MD/picodrive.sh)"
|
||||
- folder: MDMSU
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: genesis_plus_gx
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MDMSU/config.json:9"
|
||||
note: "default launcher GenesisPlusGX (Emus/MDMSU/genplus.sh)"
|
||||
- folder: MEGADUCK
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/MEGADUCK/config.json:9"
|
||||
note: "default launcher default.sh (Emus/MEGADUCK/default.sh), names no libretro core"
|
||||
- folder: MS
|
||||
extensions:
|
||||
- .7z
|
||||
- .gg
|
||||
- .rom
|
||||
- .sg
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MS/config.json:8"
|
||||
note: "default launcher PicoDrive (Emus/MS/picodrive.sh)"
|
||||
- folder: MSX
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MSX/config.json:9"
|
||||
note: "default launcher Bluemsx (Emus/MSX/bluemsx.sh)"
|
||||
- folder: MSX2
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/MSX2/config.json:9"
|
||||
note: "default launcher Bluemsx (Emus/MSX2/bluemsx.sh)"
|
||||
- folder: MUSIC
|
||||
extensions:
|
||||
- .asf
|
||||
- .avi
|
||||
- .bmp
|
||||
- .flac
|
||||
- .jpg
|
||||
- .m3u
|
||||
- .m4v
|
||||
- .mkv
|
||||
- .mp3
|
||||
- .mp4
|
||||
- .mpeg
|
||||
- .mpg
|
||||
- .ogg
|
||||
- .png
|
||||
- .rm
|
||||
- .rmvb
|
||||
- .ts
|
||||
- .wma
|
||||
- .wmv
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/MUSIC/config.json:8"
|
||||
note: "default launcher GMU Player (Emus/MUSIC/gmu.sh), names no libretro core"
|
||||
- folder: N64
|
||||
extensions:
|
||||
- .7z
|
||||
- .n64
|
||||
- .v64
|
||||
- .z64
|
||||
- .zip
|
||||
core: parallel_n64
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/N64/config.json:9"
|
||||
note: "default launcher ParaLLEl N64 (Emus/N64/paralleln64.sh)"
|
||||
- folder: N64DD
|
||||
extensions:
|
||||
- .7z
|
||||
- .n64
|
||||
- .ndd
|
||||
- .v64
|
||||
- .z64
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/N64DD/config.json:9"
|
||||
note: "default launcher default.sh (Emus/N64DD/default.sh), names no libretro core"
|
||||
- folder: NAOMI
|
||||
core: flycast
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/NAOMI/config.json:10"
|
||||
note: "default launcher Flycast (Libretro) (Emus/NAOMI/flycast.sh)"
|
||||
- folder: NDS
|
||||
extensions:
|
||||
- .7z
|
||||
- .nds
|
||||
- .rar
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/NDS/config.json:8"
|
||||
note: "default launcher Drastic Advanced (Emus/NDS/drastic.sh), names no libretro core"
|
||||
- folder: NEOCD
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/NEOCD/config.json:9"
|
||||
note: "default launcher default.sh (Emus/NEOCD/default.sh), names no libretro core"
|
||||
- folder: NEOGEO
|
||||
extensions:
|
||||
- .7z
|
||||
- .neo
|
||||
- .zip
|
||||
core: fbneo
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/NEOGEO/config.json:9"
|
||||
note: "default launcher FBNEO (Emus/NEOGEO/fbneo.sh)"
|
||||
- folder: NGC
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngc
|
||||
- .ngp
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/NGC/config.json:7"
|
||||
note: "default launcher default.sh (Emus/NGC/default.sh), names no libretro core"
|
||||
- folder: NGP
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngc
|
||||
- .ngp
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/NGP/config.json:9"
|
||||
note: "default launcher default.sh (Emus/NGP/default.sh), names no libretro core"
|
||||
- folder: OPENBOR
|
||||
extensions:
|
||||
- .pak
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/OPENBOR/config.json:8"
|
||||
note: "default launcher default.sh (Emus/OPENBOR/default.sh), names no libretro core"
|
||||
- folder: PALMOS
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PALMOS/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PALMOS/default.sh), names no libretro core"
|
||||
- folder: PANASONIC
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PANASONIC/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PANASONIC/default.sh), names no libretro core"
|
||||
- folder: PC88
|
||||
extensions:
|
||||
- .d88
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PC88/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PC88/default.sh), names no libretro core"
|
||||
- folder: PC98
|
||||
extensions:
|
||||
- .hdi
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PC98/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PC98/default.sh), names no libretro core"
|
||||
- folder: PCE
|
||||
extensions:
|
||||
- .7z
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .pce
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PCE/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PCE/default.sh), names no libretro core"
|
||||
- folder: PCECD
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .pce
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PCECD/config.json:7"
|
||||
note: "default launcher default.sh (Emus/PCECD/default.sh), names no libretro core"
|
||||
- folder: PCFX
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PCFX/config.json:9"
|
||||
note: "default launcher default.sh (Emus/PCFX/default.sh), names no libretro core"
|
||||
- folder: PGM
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/PGM/config.json:8"
|
||||
note: "default launcher FB ALPHA 2012 (Emus/PGM/fba2012.sh)"
|
||||
- folder: PICO
|
||||
extensions:
|
||||
- .launch
|
||||
- .p8
|
||||
- .png
|
||||
core: fake08
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/PICO/config.json:7"
|
||||
note: "default launcher FAKE-08 (Emus/PICO/fake08.sh)"
|
||||
- folder: POKEMINI
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/POKEMINI/config.json:9"
|
||||
note: "default launcher default.sh (Emus/POKEMINI/default.sh), names no libretro core"
|
||||
- folder: PORTS
|
||||
extensions:
|
||||
- .sh
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PORTS/config.json:9"
|
||||
note: "default launcher Battery Saver (Emus/PORTS/launch.sh), names no libretro core"
|
||||
- folder: PS
|
||||
extensions:
|
||||
- .cbn
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .m3u
|
||||
- .mdf
|
||||
- .pbp
|
||||
- .toc
|
||||
core: pcsx_rearmed
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/PS/config.json:9"
|
||||
note: "default launcher PCSX-ReArmed (Emus/PS/pcsx.sh)"
|
||||
- folder: PSP
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PSP/config.json:9"
|
||||
note: "default launcher PPSSPP 1.17.1 - OpenGL (Emus/PSP/ppsspp_1.17.1_gl.sh), names no libretro core"
|
||||
- folder: PSPMINIS
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/PSPMINIS/config.json:8"
|
||||
note: "default launcher default.sh (Emus/PSPMINIS/default.sh), names no libretro core"
|
||||
- folder: SATELLAVIEW
|
||||
extensions:
|
||||
- .bsx
|
||||
- .dx2
|
||||
- .fig
|
||||
- .gd3
|
||||
- .gd7
|
||||
- .sfc
|
||||
- .smc
|
||||
- .swc
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SATELLAVIEW/config.json:9"
|
||||
note: "default launcher default.sh (Emus/SATELLAVIEW/default.sh), names no libretro core"
|
||||
- folder: SATURN
|
||||
extensions:
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .iso
|
||||
- .m3u
|
||||
- .mds
|
||||
- .zip
|
||||
core: yabasanshiro
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/SATURN/config.json:9"
|
||||
note: "default launcher Yabasanshiro (Emus/SATURN/yabasanshiro.sh)"
|
||||
- folder: SCUMMVM
|
||||
extensions:
|
||||
- .launch
|
||||
- .scummvm
|
||||
- .squashfs
|
||||
core: scummvm
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/SCUMMVM/config.json:7"
|
||||
note: "default launcher ScummVM 2.8 (Emus/SCUMMVM/scummvm-2.8.sh)"
|
||||
- folder: SEGA32X
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SEGA32X/config.json:7"
|
||||
note: "default launcher default.sh (Emus/SEGA32X/default.sh), names no libretro core"
|
||||
- folder: SEGACD
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .iso
|
||||
- .sub
|
||||
- .wav
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/SEGACD/config.json:9"
|
||||
note: "default launcher PicoDrive (Emus/SEGACD/picodrive.sh)"
|
||||
- folder: SFC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bs
|
||||
- .fig
|
||||
- .sfc
|
||||
- .smc
|
||||
- .st
|
||||
- .zip
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/SFC/config.json:7"
|
||||
note: "default launcher SNES9x (Emus/SFC/snes9x.sh)"
|
||||
- folder: SFCMSU
|
||||
extensions:
|
||||
- .7z
|
||||
- .bsx
|
||||
- .dx2
|
||||
- .fig
|
||||
- .gd3
|
||||
- .gd7
|
||||
- .sfc
|
||||
- .smc
|
||||
- .swc
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SFCMSU/config.json:9"
|
||||
note: "default launcher default.sh (Emus/SFCMSU/default.sh), names no libretro core"
|
||||
- folder: SFX
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SFX/config.json:9"
|
||||
note: "default launcher default.sh (Emus/SFX/default.sh), names no libretro core"
|
||||
- folder: SG1000
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gg
|
||||
- .mv
|
||||
- .rom
|
||||
- .sg
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os Emus/SG1000/config.json:7"
|
||||
note: "default launcher PicoDrive (Emus/SG1000/picodrive.sh)"
|
||||
- folder: SGB
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SGB/config.json:7"
|
||||
note: "default launcher default.sh (Emus/SGB/default.sh), names no libretro core"
|
||||
- folder: SUFAMI
|
||||
extensions:
|
||||
- .7z
|
||||
- .bsx
|
||||
- .dx2
|
||||
- .fig
|
||||
- .gd3
|
||||
- .gd7
|
||||
- .sfc
|
||||
- .smc
|
||||
- .swc
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SUFAMI/config.json:9"
|
||||
note: "default launcher default.sh (Emus/SUFAMI/default.sh), names no libretro core"
|
||||
- folder: SUPERVISION
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .sv
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/SUPERVISION/config.json:9"
|
||||
note: "default launcher default.sh (Emus/SUPERVISION/default.sh), names no libretro core"
|
||||
- folder: THOMSON
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/THOMSON/config.json:7"
|
||||
note: "default launcher default.sh (Emus/THOMSON/default.sh), names no libretro core"
|
||||
- folder: TI83
|
||||
extensions:
|
||||
- .83p
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/TI83/config.json:9"
|
||||
note: "default launcher default.sh (Emus/TI83/default.sh), names no libretro core"
|
||||
- folder: TIC
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/TIC/config.json:9"
|
||||
note: "default launcher default.sh (Emus/TIC/default.sh), names no libretro core"
|
||||
- folder: TYRQUAKE
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/TYRQUAKE/config.json:9"
|
||||
note: "default launcher default.sh (Emus/TYRQUAKE/default.sh), names no libretro core"
|
||||
- folder: UZEBOX
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/UZEBOX/config.json:7"
|
||||
note: "default launcher default.sh (Emus/UZEBOX/default.sh), names no libretro core"
|
||||
- folder: VB
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .vb
|
||||
- .vboy
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VB/config.json:9"
|
||||
note: "default launcher default.sh (Emus/VB/default.sh), names no libretro core"
|
||||
- folder: VECTREX
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VECTREX/config.json:7"
|
||||
note: "default launcher default.sh (Emus/VECTREX/default.sh), names no libretro core"
|
||||
- folder: VIC20
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VIC20/config.json:9"
|
||||
note: "default launcher default.sh (Emus/VIC20/default.sh), names no libretro core"
|
||||
- folder: VIDEOPAC
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VIDEOPAC/config.json:7"
|
||||
note: "default launcher default.sh (Emus/VIDEOPAC/default.sh), names no libretro core"
|
||||
- folder: VIDEOS
|
||||
extensions:
|
||||
- .7z
|
||||
- .asf
|
||||
- .avi
|
||||
- .bmp
|
||||
- .jpg
|
||||
- .launch
|
||||
- .m3u
|
||||
- .m3u8
|
||||
- .m4v
|
||||
- .mkv
|
||||
- .mp3
|
||||
- .mp4
|
||||
- .mpeg
|
||||
- .mpg
|
||||
- .png
|
||||
- .rm
|
||||
- .rmvb
|
||||
- .ts
|
||||
- .wma
|
||||
- .wmv
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VIDEOS/config.json:8"
|
||||
note: "default launcher mpv (Emus/VIDEOS/mpv.sh), names no libretro core"
|
||||
- folder: VIDEOTON
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VIDEOTON/config.json:9"
|
||||
note: "default launcher default.sh (Emus/VIDEOTON/default.sh), names no libretro core"
|
||||
- folder: VMAC
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/VMAC/config.json:9"
|
||||
note: "default launcher default.sh (Emus/VMAC/default.sh), names no libretro core"
|
||||
- folder: WS
|
||||
extensions:
|
||||
- .7z
|
||||
- .pc2
|
||||
- .ws
|
||||
- .wsc
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/WS/config.json:7"
|
||||
note: "default launcher default.sh (Emus/WS/default.sh), names no libretro core"
|
||||
- folder: WSC
|
||||
extensions:
|
||||
- .7z
|
||||
- .pc2
|
||||
- .ws
|
||||
- .wsc
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/WSC/config.json:9"
|
||||
note: "default launcher default.sh (Emus/WSC/default.sh), names no libretro core"
|
||||
- folder: X1
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/X1/config.json:9"
|
||||
note: "default launcher default.sh (Emus/X1/default.sh), names no libretro core"
|
||||
- folder: X68000
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/X68000/config.json:7"
|
||||
note: "default launcher default.sh (Emus/X68000/default.sh), names no libretro core"
|
||||
- folder: XRICK
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/XRICK/config.json:9"
|
||||
note: "default launcher default.sh (Emus/XRICK/default.sh), names no libretro core"
|
||||
- folder: ZQUEST
|
||||
extensions:
|
||||
- .launch
|
||||
- .qst
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ZQUEST/config.json:9"
|
||||
note: "default launcher default.sh (Emus/ZQUEST/default.sh), names no libretro core"
|
||||
- folder: ZXS
|
||||
emulator: standalone
|
||||
source_ref: "os Emus/ZXS/config.json:7"
|
||||
note: "default launcher default.sh (Emus/ZXS/default.sh), names no libretro core"
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,646 @@
|
||||
setup: koriki
|
||||
name: Koriki
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/Rparadise-Team/Koriki"
|
||||
commit: 8513071c9bcffe9603ec3b3b760ad9385906a6a5
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:4"
|
||||
case_sensitive: false
|
||||
case_ref: "os src/simplemenu-beta/src/logic/logic.c:566-575"
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: "os src/simplemenu-beta/src/logic/logic.c:760-775"
|
||||
notes:
|
||||
- "SimpleMenu lists only files whose extension is in romExts, compared case-insensitively (os src/simplemenu-beta/src/logic/logic.c:990-1005)."
|
||||
- "The first launcher of execs is the active one (os src/simplemenu-beta/src/logic/config.c:1127)."
|
||||
- The shipped SimpleMenu binary is built from a submodule this tree does not hold. The in-tree copy src/simplemenu-beta
|
||||
was read.
|
||||
folders:
|
||||
- folder: AMIGA
|
||||
extensions:
|
||||
- .7z
|
||||
- .adf
|
||||
- .adz
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .dms
|
||||
- .fdi
|
||||
- .hdf
|
||||
- .hdz
|
||||
- .info
|
||||
- .ipf
|
||||
- .iso
|
||||
- .lha
|
||||
- .m3u
|
||||
- .mds
|
||||
- .nrg
|
||||
- .rp9
|
||||
- .slave
|
||||
- .uae
|
||||
- .zip
|
||||
core: puae
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:4"
|
||||
note: launchers puae_libretro, uae4arm_libretro, puae2021_libretro
|
||||
- folder: ARCADE
|
||||
name: MAME
|
||||
extensions:
|
||||
- .zip
|
||||
core: mame2003_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:156"
|
||||
note: launchers mame2003_plus_libretro, fbneo_libretro, fbalpha2012_libretro, km_mame2003_xtreme_amped_libretro,
|
||||
km_mame2003_xtreme_libretro, mame2000_libretro, mame2010_libretro, mame2003_libretro, mame2003_xtreme_libretro
|
||||
- folder: ARDUBOY
|
||||
name: ARDUINO
|
||||
extensions:
|
||||
- .hex
|
||||
core: arduous
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:19"
|
||||
note: launchers arduous_libretro
|
||||
- folder: ATARI
|
||||
name: ATARI 2600
|
||||
extensions:
|
||||
- .7z
|
||||
- .a26
|
||||
- .bin
|
||||
- .zip
|
||||
core: stella2014
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:24"
|
||||
note: launchers stella2014_libretro
|
||||
- folder: ATARIST
|
||||
name: ATARI ST
|
||||
extensions:
|
||||
- .7z
|
||||
- .a78
|
||||
- .rom
|
||||
- .zip
|
||||
core: hatari
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:45"
|
||||
note: launchers hatari_libretro, hatari_plus_libretro
|
||||
- folder: C64
|
||||
name: COMMODORE 64
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .crt
|
||||
- .d64
|
||||
- .g64
|
||||
- .t64
|
||||
- .zip
|
||||
core: vice_x64
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:50"
|
||||
note: launchers vice_x64_libretro
|
||||
- folder: CPC
|
||||
name: AMSTRAD CPC
|
||||
extensions:
|
||||
- .7z
|
||||
- .cdt
|
||||
- .cpr
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .sna
|
||||
- .tap
|
||||
- .voc
|
||||
- .zip
|
||||
core: crocods
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:9"
|
||||
note: launchers crocods_libretro
|
||||
- folder: CPS1
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012_cps1
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:60"
|
||||
note: launchers fbalpha2012_cps1_libretro, fbneo_libretro, fbalpha_libretro, fbneo_miyoo_libretro, fbneo_standalone
|
||||
- folder: CPS2
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012_cps2
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:66"
|
||||
note: launchers fbalpha2012_cps2_libretro, fbneo_libretro, fbalpha_libretro, fbneo_miyoo_libretro, fbneo_standalone
|
||||
- folder: CPS3
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012_cps3
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:72"
|
||||
note: launchers fbalpha2012_cps3_libretro, fbneo_libretro, fbalpha_libretro, fbneo_miyoo_libretro, fbneo_standalone
|
||||
- folder: DAPHNE
|
||||
extensions:
|
||||
- .zip
|
||||
core: daphne
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:78"
|
||||
note: launchers daphne_libretro
|
||||
- folder: DOOM
|
||||
extensions:
|
||||
- .7z
|
||||
- .wad
|
||||
- .zip
|
||||
core: prboom
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:88"
|
||||
note: launchers prboom_libretro. romDirs DOOM/DOOM, DOOM/DOOM2
|
||||
- folder: DOS
|
||||
extensions:
|
||||
- .7z
|
||||
- .bat
|
||||
- .com
|
||||
- .cue
|
||||
- .dosz
|
||||
- .exe
|
||||
- .iso
|
||||
- .m3u
|
||||
- .vhd
|
||||
- .zip
|
||||
core: dosbox_pure
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:83"
|
||||
note: launchers dosbox_pure_libretro, dosbox_pure_miyoo_libretro, dosbox_standalone
|
||||
- folder: FBA
|
||||
name: FINALBURN ALPHA
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbalpha2012
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:98"
|
||||
note: launchers fbalpha2012_libretro, fbalpha_libretro, fbneo_libretro, fbneo_miyoo_libretro, fb_32b_libretro,
|
||||
fbneo_standalone
|
||||
- folder: FBNEO
|
||||
name: FINALBURN NEO
|
||||
extensions:
|
||||
- .zip
|
||||
core: fbneo
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:104"
|
||||
note: launchers fbneo_libretro, fb_32b_libretro, fbalpha_libretro, fbneo_miyoo_libretro, fbneo_standalone
|
||||
- folder: FC
|
||||
name: NES
|
||||
extensions:
|
||||
- .7z
|
||||
- .nes
|
||||
- .zip
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:184"
|
||||
note: launchers fceumm_libretro, nestopia_libretro, nestopia_miyoo_libretro
|
||||
- folder: FDS
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .zip
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:93"
|
||||
note: launchers fceumm_libretro, nestopia_libretro, nestopia_miyoo_libretro
|
||||
- folder: FIFTYTWOHUNDRED
|
||||
name: ATARI 5200
|
||||
extensions:
|
||||
- .7z
|
||||
- .a52
|
||||
- .bin
|
||||
- .zip
|
||||
core: a5200
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:29"
|
||||
note: launchers a5200_libretro, atari800_libretro
|
||||
- folder: GB
|
||||
name: GAME BOY
|
||||
extensions:
|
||||
- .7z
|
||||
- .gb
|
||||
- .gz
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:116"
|
||||
note: launchers gambatte_libretro, gearboy_libretro, sameboy_libretro, tgbdual_libretro, tgbdual_libretro_server,
|
||||
tgbdual_libretro_client, DoubleCherryGB_miyoo_libretro, DoubleCherryGB_libretro
|
||||
- folder: GBA
|
||||
name: GAME BOY ADVANCE
|
||||
extensions:
|
||||
- .7z
|
||||
- .gba
|
||||
- .zip
|
||||
core: gpsp_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:128"
|
||||
note: launchers gpsp_plus_libretro, mgba_plus_libretro, gpsp_libretro, mgba_libretro, mednafen_gba_libretro,
|
||||
meteor_libretro, vbam_libretro, vba_next_libretro
|
||||
- folder: GBC
|
||||
name: GAME BOY COLOR
|
||||
extensions:
|
||||
- .7z
|
||||
- .gbc
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:122"
|
||||
note: launchers gambatte_libretro, gearboy_libretro, sameboy_libretro, tgbdual_libretro, tgbdual_libretro_server,
|
||||
tgbdual_libretro_client, DoubleCherryGB_miyoo_libretro, DoubleCherryGB_libretro
|
||||
- folder: GG
|
||||
name: GAME GEAR
|
||||
extensions:
|
||||
- .7z
|
||||
- .gg
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:140"
|
||||
note: launchers picodrive_libretro, genesis_plus_gx_libretro, gearsystem_libretro, picodrive_standalone,
|
||||
picodrive_netplay_libretro
|
||||
- folder: GW
|
||||
name: GAME & WATCH
|
||||
extensions:
|
||||
- .7z
|
||||
- .mgw
|
||||
- .zip
|
||||
core: gw
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:110"
|
||||
note: launchers gw_libretro, gw_miyoo_libretro
|
||||
- folder: INTELLI
|
||||
name: INTELLIVISION
|
||||
extensions:
|
||||
- .bin
|
||||
- .int
|
||||
core: freeintv
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:151"
|
||||
note: launchers freeintv_libretro
|
||||
- folder: LYNX
|
||||
name: ATARI LYNX
|
||||
extensions:
|
||||
- .7z
|
||||
- .lnx
|
||||
- .zip
|
||||
core: handy
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:39"
|
||||
note: launchers handy_libretro, mednafen_lynx_libretro
|
||||
- folder: MD
|
||||
name: SEGA GENESIS
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gen
|
||||
- .md
|
||||
- .mdx
|
||||
- .smd
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:268"
|
||||
note: launchers picodrive_libretro, genesis_plus_gx_libretro, picodrive_standalone, picodrive_netplay_libretro,
|
||||
genesis_plus_gx_mod_libretro
|
||||
- folder: MS
|
||||
name: MASTER SYSTEM
|
||||
extensions:
|
||||
- .7z
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:162"
|
||||
note: launchers picodrive_libretro, genesis_plus_gx_libretro, gearsystem_libretro, picodrive_standalone,
|
||||
picodrive_netplay_libretro, smsplus_libretro
|
||||
- folder: MSU1
|
||||
name: MSU-1
|
||||
extensions:
|
||||
- .7z
|
||||
- .sfc
|
||||
- .smc
|
||||
- .zip
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:189"
|
||||
note: launchers msu1_libretro, snes9x_libretro
|
||||
- folder: MSUMD
|
||||
name: MSU-MD
|
||||
extensions:
|
||||
- .md
|
||||
core: genesis_plus_gx
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:195"
|
||||
note: launchers MSU-MD_libretro
|
||||
- folder: MSX
|
||||
extensions:
|
||||
- .7z
|
||||
- .cas
|
||||
- .col
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .mx1
|
||||
- .mx2
|
||||
- .ri
|
||||
- .rom
|
||||
- .sc
|
||||
- .sg
|
||||
- .zip
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:201"
|
||||
note: launchers bluemsx_libretro, fmsx_libretro
|
||||
- folder: NDS
|
||||
name: NINTENDO DS
|
||||
extensions:
|
||||
- .7z
|
||||
- .nds
|
||||
- .rar
|
||||
- .zip
|
||||
core: drastic_standalone
|
||||
emulator: standalone
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:134"
|
||||
note: launchers drastic_standalone
|
||||
- folder: NEOCD
|
||||
name: NEO GEO CD
|
||||
extensions:
|
||||
- .chd
|
||||
- .zip
|
||||
core: neocd
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:173"
|
||||
note: launchers neocd_libretro
|
||||
- folder: NEOGEO
|
||||
name: NEO GEO
|
||||
extensions:
|
||||
- .7z
|
||||
- .zip
|
||||
core: fbalpha2012_neogeo
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:167"
|
||||
note: launchers fbalpha2012_neogeo_libretro, fbneo_libretro, fb_32b_libretro, fbalpha2012_neogeo_miyoo_libretro,
|
||||
fbalpha_libretro, fbneo_miyoo_libretro, fbneo_standalone
|
||||
- folder: NGP
|
||||
name: NEO GEO POCKET
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngc
|
||||
- .ngp
|
||||
- .ngpc
|
||||
- .npc
|
||||
- .zip
|
||||
core: race
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:178"
|
||||
note: launchers race_libretro, mednafen_ngp_libretro
|
||||
- folder: ODYSSEY2
|
||||
extensions:
|
||||
- .bin
|
||||
- .zip
|
||||
core: o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:55"
|
||||
note: launchers o2em_libretro
|
||||
- folder: OPENBOR
|
||||
extensions:
|
||||
- .pak
|
||||
core: openbor_standalone_plus
|
||||
emulator: standalone
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:206"
|
||||
note: launchers openbor_standalone_plus, openbor_standalone, openbor_standalone_old, openbor_standalone_lns
|
||||
- folder: PC98
|
||||
extensions:
|
||||
- .fdi
|
||||
- .hdi
|
||||
core: nekop2
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:216"
|
||||
note: launchers nekop2_libretro, np2kai_libretro
|
||||
- folder: PCE
|
||||
name: PC ENGINE
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .pce
|
||||
- .tg16
|
||||
- .zip
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:221"
|
||||
note: launchers mednafen_pce_fast_libretro, mednafen_pce_libretro, mednafen_supergrafx_libretro
|
||||
- folder: PCECD
|
||||
name: PC ENGINE CD
|
||||
extensions:
|
||||
- .7z
|
||||
- .chd
|
||||
- .cue
|
||||
- .pce
|
||||
- .tg16
|
||||
- .zip
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:226"
|
||||
note: launchers mednafen_pce_fast_libretro, mednafen_pce_libretro, mednafen_supergrafx_libretro
|
||||
- folder: PICO
|
||||
name: PICO-8
|
||||
extensions:
|
||||
- .p8
|
||||
- .p8.png
|
||||
- .png
|
||||
core: pico_standalone
|
||||
emulator: standalone
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:231"
|
||||
note: launchers pico_standalone, fake08_libretro, retro8_libretro
|
||||
- folder: POKE
|
||||
name: POKEMON MINI
|
||||
extensions:
|
||||
- .7z
|
||||
- .min
|
||||
- .zip
|
||||
core: pokemini
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:242"
|
||||
note: launchers pokemini_libretro
|
||||
- folder: PS
|
||||
name: PLAYSTATION
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .m3u
|
||||
- .mdf
|
||||
- .pbp
|
||||
- .zip
|
||||
core: pcsx_standalone
|
||||
emulator: standalone
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:237"
|
||||
note: launchers pcsx_standalone, pcsx_rearmed_miyoo_libretro, pcsx_rearmed_libretro, pcsx_rearmed_libretro_old,
|
||||
pcsx_rearmed_libretro_shaun
|
||||
- folder: QUAKE
|
||||
extensions:
|
||||
- .fbl
|
||||
core: tyrquake
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:248"
|
||||
note: launchers tyrquake_libretro. romDirs QUAKE/id1, QUAKE/hipnotic, QUAKE/rogue, QUAKE/dopa
|
||||
- folder: SCUMMVM
|
||||
extensions:
|
||||
- .scummvm
|
||||
core: scummvm
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:253"
|
||||
note: launchers scummvm_libretro
|
||||
- folder: SEGACD
|
||||
name: SEGA CD
|
||||
extensions:
|
||||
- .bin
|
||||
- .chd
|
||||
- .cue
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:263"
|
||||
note: launchers picodrive_libretro, genesis_plus_gx_libretro, picodrive_standalone, picodrive_netplay_libretro
|
||||
- folder: SEGASGONE
|
||||
name: SEGA SG-1000
|
||||
extensions:
|
||||
- .7z
|
||||
- .sg
|
||||
- .zip
|
||||
core: gearsystem
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:273"
|
||||
note: launchers gearsystem_libretro, genesis_plus_gx_libretro, picodrive_libretro, picodrive_standalone,
|
||||
picodrive_netplay_libretro
|
||||
- folder: SEVENTYEIGHTHUNDRED
|
||||
name: ATARI 7800
|
||||
extensions:
|
||||
- .7z
|
||||
- .a78
|
||||
- .bin
|
||||
- .zip
|
||||
core: prosystem
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:34"
|
||||
note: launchers prosystem_libretro
|
||||
- folder: SFC
|
||||
name: SNES
|
||||
extensions:
|
||||
- .7z
|
||||
- .sfc
|
||||
- .smc
|
||||
- .zip
|
||||
core: snes9x2005_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:283"
|
||||
note: launchers snes9x2005_plus_libretro, snes9x2005_libretro, snes9x2002_libretro, snes9x2010_libretro,
|
||||
snes9x_libretro, snes9x_next_libretro, mednafen_supafaust_plus_libretro, mednafen_supafaust_libretro,
|
||||
pocketsnes_standalone
|
||||
- folder: SGB
|
||||
extensions:
|
||||
- .7z
|
||||
- .gb
|
||||
- .gbc
|
||||
- .zip
|
||||
core: msgb
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:278"
|
||||
note: launchers msgb_libretro, tgbdual_libretro
|
||||
- folder: SUPERVISION
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .sv
|
||||
- .zip
|
||||
core: potator
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:288"
|
||||
note: launchers potator_libretro
|
||||
- folder: THIRTYTWOX
|
||||
name: SEGA 32X
|
||||
extensions:
|
||||
- .32x
|
||||
- .7z
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:258"
|
||||
note: launchers picodrive_libretro, picodrive_standalone, picodrive_netplay_libretro
|
||||
- folder: TIC
|
||||
name: TIC-80
|
||||
extensions:
|
||||
- .7z
|
||||
- .tic
|
||||
core: tic80
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:294"
|
||||
note: launchers tic80_libretro
|
||||
- folder: VB
|
||||
name: VIRTUAL BOY
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .vb
|
||||
- .vboy
|
||||
- .zip
|
||||
core: mednafen_vb
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:299"
|
||||
note: launchers mednafen_vb_libretro
|
||||
- folder: WOLF3D
|
||||
extensions:
|
||||
- .ecwolf
|
||||
core: ecwolf
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:304"
|
||||
note: launchers ecwolf_libretro
|
||||
- folder: WS
|
||||
name: WONDERSWAN
|
||||
extensions:
|
||||
- .7z
|
||||
- .pc2
|
||||
- .ws
|
||||
- .wsc
|
||||
- .zip
|
||||
core: mednafen_wswan
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:309"
|
||||
note: launchers mednafen_wswan_libretro
|
||||
- folder: X68000
|
||||
extensions:
|
||||
- .2hd
|
||||
- .7z
|
||||
- .88d
|
||||
- .cmd
|
||||
- .d88
|
||||
- .dim
|
||||
- .dup
|
||||
- .hdf
|
||||
- .hdm
|
||||
- .img
|
||||
- .m3u
|
||||
- .xdf
|
||||
- .zip
|
||||
core: px68k
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:315"
|
||||
note: launchers px68k_libretro, px68k_miyoo_libretro
|
||||
- folder: ZXS
|
||||
name: ZX SPECTRUM
|
||||
extensions:
|
||||
- .7z
|
||||
- .dsk
|
||||
- .rzx
|
||||
- .scl
|
||||
- .tap
|
||||
- .trd
|
||||
- .tzx
|
||||
- .z80
|
||||
- .zip
|
||||
core: fuse
|
||||
emulator: retroarch
|
||||
source_ref: "os base/.simplemenu/section_groups/apps%20and%20games.ini:320"
|
||||
note: launchers fuse_libretro
|
||||
@@ -0,0 +1,20 @@
|
||||
setup: lakka
|
||||
name: Lakka
|
||||
platform: lakka
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/libretro/Lakka-LibreELEC"
|
||||
commit: ad1a27aac8e37e0cf810b243b2bdf9f798e45dd4
|
||||
tag: v6.1
|
||||
roms_root:
|
||||
path: /storage/roms
|
||||
from_bios: ../roms
|
||||
source_ref: "os packages/lakka/retroarch_base/retroarch/tmpfiles.d/retroarch-userdirs.conf:12; os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:3143"
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- "Lakka keeps no folder per system. Games reach the menu through RetroArch playlists built by scanning\
|
||||
\ against the content databases (os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:98,3085),\
|
||||
\ so a folder name says nothing about the system and the game itself has to."
|
||||
- "/storage/roms is the file browser's start, with hidden files not shown (os packages/lakka/retroarch_base/retroarch/config/retroarch.cfg:3143,3202).\
|
||||
\ /storage/roms/downloads holds core assets (os packages/lakka/retroarch_base/retroarch/tmpfiles.d/retroarch-userdirs.conf:13)."
|
||||
folders: []
|
||||
@@ -0,0 +1,201 @@
|
||||
setup: minui
|
||||
name: MinUI
|
||||
platform: minui
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/shauninman/MinUI"
|
||||
commit: dbf89435a5179788418ff3573042cf9c7e75d9e0
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: "os workspace/all/common/defines.h:13; os workspace/miyoomini/platform/platform.h:122"
|
||||
case_sensitive: null
|
||||
case_ref: "os workspace/all/common/utils.c:74-96"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os workspace/all/common/utils.c:32-34"
|
||||
- pattern: '*.disabled'
|
||||
source_ref: "os workspace/all/common/utils.c:32-34"
|
||||
- name: map.txt
|
||||
source_ref: "os workspace/all/common/utils.c:32-34"
|
||||
notes:
|
||||
- "MinUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game (os\
|
||||
\ workspace/all/minui/minui.c:475-535,615-680), so the rows carry no extensions."
|
||||
- "A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without\
|
||||
\ parentheses (getEmuName, os workspace/all/common/utils.c:74-96). The pak is found at .system/<PLATFORM>/paks/Emus/<TAG>.pak\
|
||||
\ then Emus/<PLATFORM>/<TAG>.pak."
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
- "SDCARD_PATH differs per device (/mnt/SDCARD, /mnt/sdcard, /storage/roms, /sdcard, /media/roms, /storage/TF2).\
|
||||
\ Roms sits under it."
|
||||
folders:
|
||||
- folder: "Game Boy (GB)"
|
||||
name: GB
|
||||
aliases:
|
||||
- GB
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/GB.pak/launch.sh:3"
|
||||
note: "any folder named GB or ending in '(GB)' starts GB.pak. Devices: gkdpixel, m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Game Boy Advance (GBA)"
|
||||
name: GBA
|
||||
aliases:
|
||||
- GBA
|
||||
core: gpsp
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/GBA.pak/launch.sh:3"
|
||||
note: "any folder named GBA or ending in '(GBA)' starts GBA.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Game Boy Advance (MGBA)"
|
||||
name: MGBA
|
||||
aliases:
|
||||
- MGBA
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/MGBA.pak/launch.sh:3"
|
||||
note: "any folder named MGBA or ending in '(MGBA)' starts MGBA.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Game Boy Color (GBC)"
|
||||
name: GBC
|
||||
aliases:
|
||||
- GBC
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/GBC.pak/launch.sh:3"
|
||||
note: "any folder named GBC or ending in '(GBC)' starts GBC.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Native Games (PAK)"
|
||||
name: PAK
|
||||
aliases:
|
||||
- PAK
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/PAK.pak/launch.sh:1"
|
||||
note: "any folder named PAK or ending in '(PAK)' starts PAK.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Neo Geo Pocket Color (NGPC)"
|
||||
name: NGPC
|
||||
aliases:
|
||||
- NGPC
|
||||
core: race
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/NGPC.pak/launch.sh:3"
|
||||
note: "any folder named NGPC or ending in '(NGPC)' starts NGPC.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: NGP
|
||||
core: race
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/NGP.pak/launch.sh:3"
|
||||
note: "any folder named NGP or ending in '(NGP)' starts NGP.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Nintendo Entertainment System (FC)"
|
||||
name: FC
|
||||
aliases:
|
||||
- FC
|
||||
core: fceumm
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/FC.pak/launch.sh:3"
|
||||
note: "any folder named FC or ending in '(FC)' starts FC.pak. Devices: gkdpixel, m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: P8-NATIVE
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/rgb30/P8-NATIVE.pak/launch.sh:1"
|
||||
note: "any folder named P8-NATIVE or ending in '(P8-NATIVE)' starts P8-NATIVE.pak. Devices: rgb30"
|
||||
- folder: "Pico-8 (P8)"
|
||||
name: P8
|
||||
aliases:
|
||||
- P8
|
||||
core: fake08
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/m17/P8.pak/launch.sh:3"
|
||||
note: "any folder named P8 or ending in '(P8)' starts P8.pak. Devices: m17, magicmini, miyoomini, my282,\
|
||||
\ my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Pokémon mini (PKM)"
|
||||
name: PKM
|
||||
aliases:
|
||||
- PKM
|
||||
core: pokemini
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/PKM.pak/launch.sh:3"
|
||||
note: "any folder named PKM or ending in '(PKM)' starts PKM.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Sega Game Gear (GG)"
|
||||
name: GG
|
||||
aliases:
|
||||
- GG
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/GG.pak/launch.sh:3"
|
||||
note: "any folder named GG or ending in '(GG)' starts GG.pak. Devices: gkdpixel, m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Sega Genesis (MD)"
|
||||
name: MD
|
||||
aliases:
|
||||
- MD
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/MD.pak/launch.sh:3"
|
||||
note: "any folder named MD or ending in '(MD)' starts MD.pak. Devices: gkdpixel, m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Sega Master System (SMS)"
|
||||
name: SMS
|
||||
aliases:
|
||||
- SMS
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/SMS.pak/launch.sh:3"
|
||||
note: "any folder named SMS or ending in '(SMS)' starts SMS.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Sony PlayStation (PS)"
|
||||
name: PS
|
||||
aliases:
|
||||
- PS
|
||||
core: pcsx_rearmed
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/PS.pak/launch.sh:3"
|
||||
note: "any folder named PS or ending in '(PS)' starts PS.pak. Devices: gkdpixel, m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Super Game Boy (SGB)"
|
||||
name: SGB
|
||||
aliases:
|
||||
- SGB
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/SGB.pak/launch.sh:3"
|
||||
note: "any folder named SGB or ending in '(SGB)' starts SGB.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Super Nintendo Entertainment System (SFC)"
|
||||
name: SFC
|
||||
aliases:
|
||||
- SFC
|
||||
core: snes9x2005_plus
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/gkdpixel/paks/Emus/SFC.pak/launch.sh:3"
|
||||
note: "any folder named SFC or ending in '(SFC)' starts SFC.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Super Nintendo Entertainment System (SUPA)"
|
||||
name: SUPA
|
||||
aliases:
|
||||
- SUPA
|
||||
core: mednafen_supafaust
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/m17/SUPA.pak/launch.sh:3"
|
||||
note: "any folder named SUPA or ending in '(SUPA)' starts SUPA.pak. Devices: m17, magicmini, miyoomini,\
|
||||
\ my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "TurboGrafx-16 (PCE)"
|
||||
name: PCE
|
||||
aliases:
|
||||
- PCE
|
||||
core: mednafen_pce_fast
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/gkdpixel/PCE.pak/launch.sh:3"
|
||||
note: "any folder named PCE or ending in '(PCE)' starts PCE.pak. Devices: gkdpixel, m17, magicmini,\
|
||||
\ miyoomini, my282, my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
- folder: "Virtual Boy (VB)"
|
||||
name: VB
|
||||
aliases:
|
||||
- VB
|
||||
core: mednafen_vb
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/m17/VB.pak/launch.sh:3"
|
||||
note: "any folder named VB or ending in '(VB)' starts VB.pak. Devices: m17, magicmini, miyoomini, my282,\
|
||||
\ my355, rg35xx, rg35xxplus, rgb30, tg5040, trimuismart, zero28"
|
||||
@@ -0,0 +1,512 @@
|
||||
setup: misterfpga
|
||||
name: MiSTer FPGA
|
||||
platform: misterfpga
|
||||
sources:
|
||||
main:
|
||||
repo: "https://github.com/MiSTer-devel/Main_MiSTer"
|
||||
commit: a8ed7e9d4468f7a703af6e81ce42521e21e34f48
|
||||
dist:
|
||||
repo: "https://github.com/MiSTer-devel/Distribution_MiSTer"
|
||||
commit: ab7a78093e95ac61696559a3403204a92a16fa30
|
||||
roms_root:
|
||||
path: /media/fat/games
|
||||
from_bios: .
|
||||
source_ref: "main file_io.h:171; main file_io.cpp:1150-1170"
|
||||
case_sensitive: false
|
||||
case_ref: "main file_io.cpp:1715-1790"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "main file_io.cpp:1714-1715,1748-1749,1760-1761"
|
||||
- name: boot.rom
|
||||
source_ref: "main file_io.cpp:1765-1772"
|
||||
- pattern: "boot[0-9].rom"
|
||||
source_ref: "main file_io.cpp:1765-1772"
|
||||
notes:
|
||||
- "Games and BIOS share games/<core>/, so the roms root is the BIOS folder's own parent and every row\
|
||||
\ is that core's folder. The folder is the core's name (main user_io.cpp:196-211). The rows are the\
|
||||
\ folders the distribution ships."
|
||||
- "Only files whose extension is in the core's CONF_STR filter are listed, and a .zip is browsed as a\
|
||||
\ folder (main file_io.cpp:1774-1785). Each core sets its filter in its own repository, so the rows\
|
||||
\ carry no extensions."
|
||||
- "USB drives, network and CIFS mounts are searched for a games folder before /media/fat (main file_io.cpp:1060-1145)."
|
||||
folders:
|
||||
- folder: 3DO
|
||||
emulator: mister-core
|
||||
source_ref: dist games/3DO/
|
||||
- folder: AcornAtom
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AcornAtom/
|
||||
- folder: AcornElectron
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AcornElectron/
|
||||
- folder: Adam
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Adam/
|
||||
- folder: AliceMC10
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AliceMC10/
|
||||
- folder: Altair8800
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Altair8800/
|
||||
- folder: Amiga
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Amiga/
|
||||
- folder: Amstrad
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Amstrad/
|
||||
- folder: Amstrad PCW
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Amstrad%20PCW/
|
||||
- folder: AO486
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AO486/
|
||||
- folder: APOGEE
|
||||
emulator: mister-core
|
||||
source_ref: dist games/APOGEE/
|
||||
- folder: APPLE-I
|
||||
emulator: mister-core
|
||||
source_ref: dist games/APPLE-I/
|
||||
- folder: Apple-II
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Apple-II/
|
||||
- folder: Apple-IIgs
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Apple-IIgs/
|
||||
- folder: Apple-III
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Apple-III/
|
||||
- folder: Apple-Lisa
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Apple-Lisa/
|
||||
- folder: AQUARIUS
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AQUARIUS/
|
||||
- folder: Arcadia
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Arcadia/
|
||||
- folder: ARCHIE
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ARCHIE/
|
||||
- folder: Astrocade
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Astrocade/
|
||||
- folder: Atari2600
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Atari2600/
|
||||
- folder: ATARI5200
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ATARI5200/
|
||||
- folder: ATARI7800
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ATARI7800/
|
||||
- folder: ATARI800
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ATARI800/
|
||||
- folder: AtariLynx
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AtariLynx/
|
||||
- folder: AtariST
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AtariST/
|
||||
- folder: AVision
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AVision/
|
||||
- folder: AY-3-8500
|
||||
emulator: mister-core
|
||||
source_ref: dist games/AY-3-8500/
|
||||
- folder: BasicMasterJr
|
||||
emulator: mister-core
|
||||
source_ref: dist games/BasicMasterJr/
|
||||
- folder: BBCBridgeCompanion
|
||||
emulator: mister-core
|
||||
source_ref: dist games/BBCBridgeCompanion/
|
||||
- folder: BBCMicro
|
||||
emulator: mister-core
|
||||
source_ref: dist games/BBCMicro/
|
||||
- folder: BK0011M
|
||||
emulator: mister-core
|
||||
source_ref: dist games/BK0011M/
|
||||
- folder: C128
|
||||
emulator: mister-core
|
||||
source_ref: dist games/C128/
|
||||
- folder: C16
|
||||
emulator: mister-core
|
||||
source_ref: dist games/C16/
|
||||
- folder: C64
|
||||
emulator: mister-core
|
||||
source_ref: dist games/C64/
|
||||
- folder: Casio_PV-1000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Casio_PV-1000/
|
||||
- folder: Casio_PV-2000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Casio_PV-2000/
|
||||
- folder: CBM-II
|
||||
emulator: mister-core
|
||||
source_ref: dist games/CBM-II/
|
||||
- folder: CD-i
|
||||
emulator: mister-core
|
||||
source_ref: dist games/CD-i/
|
||||
- folder: ChannelF
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ChannelF/
|
||||
- folder: CoCo2
|
||||
emulator: mister-core
|
||||
source_ref: dist games/CoCo2/
|
||||
- folder: COCO3
|
||||
emulator: mister-core
|
||||
source_ref: dist games/COCO3/
|
||||
- folder: Coleco
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Coleco/
|
||||
- folder: Cray-XMP
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Cray-XMP/
|
||||
- folder: CreatiVision
|
||||
emulator: mister-core
|
||||
source_ref: dist games/CreatiVision/
|
||||
- folder: EDSAC
|
||||
emulator: mister-core
|
||||
source_ref: dist games/EDSAC/
|
||||
- folder: eg2000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/eg2000/
|
||||
- folder: Enterprise
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Enterprise/
|
||||
- folder: EpochGalaxyII
|
||||
emulator: mister-core
|
||||
source_ref: dist games/EpochGalaxyII/
|
||||
- folder: FM-7
|
||||
emulator: mister-core
|
||||
source_ref: dist games/FM-7/
|
||||
- folder: Galaksija
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Galaksija/
|
||||
- folder: Gamate
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Gamate/
|
||||
- folder: Game And Watch
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Game%20And%20Watch/
|
||||
- folder: GAMEBOY
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GAMEBOY/
|
||||
- folder: GAMEBOY2P
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GAMEBOY2P/
|
||||
- folder: GameCom
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GameCom/
|
||||
- folder: GameGear
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GameGear/
|
||||
- folder: GameGear2P
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GameGear2P/
|
||||
- folder: GameKing
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GameKing/
|
||||
- folder: GameNWatch
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GameNWatch/
|
||||
- folder: GBA
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GBA/
|
||||
- folder: GBA2P
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GBA2P/
|
||||
- folder: GBC
|
||||
emulator: mister-core
|
||||
source_ref: dist games/GBC/
|
||||
- folder: hbmame
|
||||
emulator: mister-core
|
||||
source_ref: dist games/hbmame/
|
||||
arcade: true
|
||||
note: "ROM archives of the .mra files in _Arcade. The loader looks in games/mame, then beside the .mra\
|
||||
\ (main support/arcade/mra_loader.cpp:168-187)"
|
||||
- folder: Homelab
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Homelab/
|
||||
- folder: Intellivision
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Intellivision/
|
||||
- folder: Interact
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Interact/
|
||||
- folder: IQ151
|
||||
emulator: mister-core
|
||||
source_ref: dist games/IQ151/
|
||||
- folder: Jaguar
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Jaguar/
|
||||
- folder: JR100
|
||||
emulator: mister-core
|
||||
source_ref: dist games/JR100/
|
||||
- folder: Jupiter
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Jupiter/
|
||||
- folder: Laser
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Laser/
|
||||
- folder: Loopy
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Loopy/
|
||||
- folder: Lynx48
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Lynx48/
|
||||
- folder: MACIICX
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MACIICX/
|
||||
- folder: MacLC
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MacLC/
|
||||
- folder: MACPLUS
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MACPLUS/
|
||||
- folder: MacQuadra800
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MacQuadra800/
|
||||
- folder: MACSE30
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MACSE30/
|
||||
- folder: mame
|
||||
emulator: mister-core
|
||||
source_ref: dist games/mame/
|
||||
arcade: true
|
||||
note: "ROM archives of the .mra files in _Arcade. The loader looks in games/mame, then beside the .mra\
|
||||
\ (main support/arcade/mra_loader.cpp:168-187)"
|
||||
- folder: Marty
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Marty/
|
||||
- folder: MegaCD
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MegaCD/
|
||||
- folder: MegaDrive
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MegaDrive/
|
||||
- folder: MegaDuck
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MegaDuck/
|
||||
- folder: MEMTEST
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MEMTEST/
|
||||
- folder: MSX
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MSX/
|
||||
- folder: MSX1
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MSX1/
|
||||
- folder: MultiComp
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MultiComp/
|
||||
- folder: MyVision
|
||||
emulator: mister-core
|
||||
source_ref: dist games/MyVision/
|
||||
- folder: N64
|
||||
emulator: mister-core
|
||||
source_ref: dist games/N64/
|
||||
- folder: NEOGEO
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NEOGEO/
|
||||
- folder: NeoGeo-CD
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NeoGeo-CD/
|
||||
- folder: Neon
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Neon/
|
||||
- folder: NES
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NES/
|
||||
- folder: NeXT
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NeXT/
|
||||
- folder: NeXT-Color
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NeXT-Color/
|
||||
- folder: NGPC
|
||||
emulator: mister-core
|
||||
source_ref: dist games/NGPC/
|
||||
- folder: ODYSSEY2
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ODYSSEY2/
|
||||
- folder: Ondra_SPO186
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Ondra_SPO186/
|
||||
- folder: ORAO
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ORAO/
|
||||
- folder: Oric
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Oric/
|
||||
- folder: PC8801
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PC8801/
|
||||
- folder: PCjr
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PCjr/
|
||||
- folder: PCXT
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PCXT/
|
||||
- folder: PCXT-EGA
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PCXT-EGA/
|
||||
- folder: PDP1
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PDP1/
|
||||
- folder: PET2001
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PET2001/
|
||||
- folder: PMD85
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PMD85/
|
||||
- folder: PocketChallengeV2
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PocketChallengeV2/
|
||||
- folder: PocketStation
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PocketStation/
|
||||
- folder: PokemonMini
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PokemonMini/
|
||||
- folder: PSX
|
||||
emulator: mister-core
|
||||
source_ref: dist games/PSX/
|
||||
- folder: QL
|
||||
emulator: mister-core
|
||||
source_ref: dist games/QL/
|
||||
- folder: RX78
|
||||
emulator: mister-core
|
||||
source_ref: dist games/RX78/
|
||||
- folder: S32X
|
||||
emulator: mister-core
|
||||
source_ref: dist games/S32X/
|
||||
- folder: SAMCOUPE
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SAMCOUPE/
|
||||
- folder: Saturn
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Saturn/
|
||||
- folder: SCV
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SCV/
|
||||
- folder: SGB
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SGB/
|
||||
- folder: SGIIndy
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SGIIndy/
|
||||
- folder: SharpMZ
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SharpMZ/
|
||||
- folder: SMS
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SMS/
|
||||
- folder: SNES
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SNES/
|
||||
- folder: Sord M5
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Sord%20M5/
|
||||
- folder: Spectrum
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Spectrum/
|
||||
- folder: SPMX
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SPMX/
|
||||
- folder: Studio-II
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Studio-II/
|
||||
- folder: Sun-2
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Sun-2/
|
||||
- folder: Sun-3
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Sun-3/
|
||||
- folder: SunSparcStation
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SunSparcStation/
|
||||
- folder: SuperAcan
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SuperAcan/
|
||||
- folder: SuperVision
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SuperVision/
|
||||
- folder: SuperVision8000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SuperVision8000/
|
||||
- folder: SVI328
|
||||
emulator: mister-core
|
||||
source_ref: dist games/SVI328/
|
||||
- folder: Tandy1000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/Tandy1000/
|
||||
- folder: TatungEinstein
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TatungEinstein/
|
||||
- folder: TGFX16
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TGFX16/
|
||||
- folder: TGFX16-CD
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TGFX16-CD/
|
||||
- folder: TI-99_4A
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TI-99_4A/
|
||||
- folder: TK2000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TK2000/
|
||||
- folder: TomyScramble
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TomyScramble/
|
||||
- folder: TomyTutor
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TomyTutor/
|
||||
- folder: TRS-80
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TRS-80/
|
||||
- folder: TSConf
|
||||
emulator: mister-core
|
||||
source_ref: dist games/TSConf/
|
||||
- folder: UK101
|
||||
emulator: mister-core
|
||||
source_ref: dist games/UK101/
|
||||
- folder: UKNC
|
||||
emulator: mister-core
|
||||
source_ref: dist games/UKNC/
|
||||
- folder: VC4000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VC4000/
|
||||
- folder: VECTOR06
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VECTOR06/
|
||||
- folder: VECTREX
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VECTREX/
|
||||
- folder: VIC20
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VIC20/
|
||||
- folder: VideoBrain
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VideoBrain/
|
||||
- folder: VirtualBoy
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VirtualBoy/
|
||||
- folder: VT52
|
||||
emulator: mister-core
|
||||
source_ref: dist games/VT52/
|
||||
- folder: WonderSwan
|
||||
emulator: mister-core
|
||||
source_ref: dist games/WonderSwan/
|
||||
- folder: WonderSwanColor
|
||||
emulator: mister-core
|
||||
source_ref: dist games/WonderSwanColor/
|
||||
- folder: X68000
|
||||
emulator: mister-core
|
||||
source_ref: dist games/X68000/
|
||||
- folder: ZX81
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ZX81/
|
||||
- folder: ZXNext
|
||||
emulator: mister-core
|
||||
source_ref: dist games/ZXNext/
|
||||
@@ -0,0 +1,46 @@
|
||||
setup: miyoocfw
|
||||
name: MiyooCFW
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/MiyooCFW/buildroot"
|
||||
commit: d5912eeb7b636810bafaa34eb0517fd599a0fc71
|
||||
gpsp:
|
||||
repo: "https://github.com/Apaczer/gpsp"
|
||||
commit: df382f476ffea69f2ff57376b27eac11b15dcf81
|
||||
tag: 1.2.3
|
||||
note: the gpsp.ipk release package/miyoo/ipk-gpsp/ipk-gpsp.mk installs
|
||||
roms_root:
|
||||
path: /roms
|
||||
from_bios: null
|
||||
source_ref: "os board/miyoo/rootfs/etc/inittab:24-25; os board/miyoo/rootfs/etc/main:4-5"
|
||||
case_sensitive: true
|
||||
case_ref: "os board/miyoo/scripts/genimage.sh:94-98"
|
||||
notes:
|
||||
- "The ROMS partition (mmcblk0p5) mounts on /roms and is built as ext4, where folder case matters. etc/main\
|
||||
\ also accepts a FAT32 ROMS partition (os board/miyoo/rootfs/etc/main:181-186)."
|
||||
- The bundled emulator links point at /mnt/roms/<SYS> while the partition mounts on /roms. Nothing in
|
||||
the buildroot tree joins the two.
|
||||
- "The image installs seven emulator packages as release .ipk files (os package/miyoo/ipk-drpocketsnes/ipk-drpocketsnes.mk:1-3\
|
||||
\ and the six beside it). Their gmenu2x links live inside those packages. Only the gpSP link is also\
|
||||
\ kept in its source repository, the other folders are the ones the image ships."
|
||||
- BIOS sits in /mnt/.retroarch/system on the main partition, another partition than the games, so no relative
|
||||
path joins them.
|
||||
folders:
|
||||
- folder: GB
|
||||
source_ref: os board/miyoo/roms/GB
|
||||
note: folder the image ships. Its emulator link lives in a release package no repository holds
|
||||
- folder: GBA
|
||||
extensions:
|
||||
- .gba
|
||||
- .zip
|
||||
core: gpsp
|
||||
emulator: standalone
|
||||
source_ref: "gpsp miyoo/opkg_assets/gpsp.lnk:4"
|
||||
note: gmenu2x link of the gpsp package
|
||||
- folder: GBC
|
||||
source_ref: os board/miyoo/roms/GBC
|
||||
note: folder the image ships. Its emulator link lives in a release package no repository holds
|
||||
- folder: NES
|
||||
source_ref: os board/miyoo/roms/NES
|
||||
note: folder the image ships. Its emulator link lives in a release package no repository holds
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,323 @@
|
||||
setup: myminui
|
||||
name: MyMinUI
|
||||
platform: myminui
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/Turro75/MyMinUI"
|
||||
commit: 72ed4f3dd80d96646c11bf9363242565320d9566
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: "os workspace/all/common/defines.h:13"
|
||||
case_sensitive: null
|
||||
case_ref: "os workspace/all/common/utils.c:130-157"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os workspace/all/common/utils.c:30-35"
|
||||
- pattern: '*.disabled'
|
||||
source_ref: "os workspace/all/common/utils.c:30-35"
|
||||
- name: map.txt
|
||||
source_ref: "os workspace/all/common/utils.c:30-35"
|
||||
- name: Imgs
|
||||
source_ref: "os workspace/all/common/utils.c:30-35"
|
||||
notes:
|
||||
- "MyMinUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game\
|
||||
\ (os workspace/all/minui/minui.c:660-667), so the rows carry no extensions."
|
||||
- "A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without\
|
||||
\ parentheses (getEmuName, os workspace/all/common/utils.c:130-157)."
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
folders:
|
||||
- folder: A2600
|
||||
core: stella2014
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A2600.pak/launch.sh:3"
|
||||
note: "any folder named A2600 or ending in '(A2600)' starts A2600.pak. Devices: h700, m21, miyoomini,\
|
||||
\ my282, r36s, rg35xx"
|
||||
- folder: "Arcade (MAME)"
|
||||
name: MAME
|
||||
aliases:
|
||||
- MAME
|
||||
core: mame2003_plus
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/MAME.pak/launch.sh:3"
|
||||
note: "any folder named MAME or ending in '(MAME)' starts MAME.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Atari5200 (A5200)"
|
||||
name: A5200
|
||||
aliases:
|
||||
- A5200
|
||||
core: a5200
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A5200.pak/launch.sh:3"
|
||||
note: "any folder named A5200 or ending in '(A5200)' starts A5200.pak. Devices: h700, m21, miyoomini,\
|
||||
\ my282, r36s, rg35xx"
|
||||
- folder: "Atari7800 (A7800)"
|
||||
name: A7800
|
||||
aliases:
|
||||
- A7800
|
||||
core: prosystem
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A7800.pak/launch.sh:3"
|
||||
note: "any folder named A7800 or ending in '(A7800)' starts A7800.pak. Devices: h700, m21, miyoomini,\
|
||||
\ my282, r36s, rg35xx"
|
||||
- folder: DC
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/r36s/DC.pak/launch.sh:1"
|
||||
note: "any folder named DC or ending in '(DC)' starts DC.pak. Devices: r36s"
|
||||
- folder: "Doom (DOOM)"
|
||||
name: DOOM
|
||||
aliases:
|
||||
- DOOM
|
||||
core: prboom
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/DOOM.pak/launch.sh:3"
|
||||
note: "any folder named DOOM or ending in '(DOOM)' starts DOOM.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "FinalBurnNeo (FBN)"
|
||||
name: FBN
|
||||
aliases:
|
||||
- FBN
|
||||
core: fbneo
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/FBN.pak/launch.sh:3"
|
||||
note: "any folder named FBN or ending in '(FBN)' starts FBN.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Game Boy (GB)"
|
||||
name: GB
|
||||
aliases:
|
||||
- GB
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/GB.pak/launch.sh:3"
|
||||
note: "any folder named GB or ending in '(GB)' starts GB.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Game Boy Advance (GBA)"
|
||||
name: GBA
|
||||
aliases:
|
||||
- GBA
|
||||
core: gpsp
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/GBA.pak/launch.sh:3"
|
||||
note: "any folder named GBA or ending in '(GBA)' starts GBA.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Game Boy Advance (MGBA)"
|
||||
name: MGBA
|
||||
aliases:
|
||||
- MGBA
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/MGBA.pak/launch.sh:3"
|
||||
note: "any folder named MGBA or ending in '(MGBA)' starts MGBA.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Game Boy Color (GBC)"
|
||||
name: GBC
|
||||
aliases:
|
||||
- GBC
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/GBC.pak/launch.sh:3"
|
||||
note: "any folder named GBC or ending in '(GBC)' starts GBC.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "MSDOS (DOS)"
|
||||
name: DOS
|
||||
aliases:
|
||||
- DOS
|
||||
core: dosbox
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/DOS.pak/launch.sh:3"
|
||||
note: "any folder named DOS or ending in '(DOS)' starts DOS.pak. Devices: h700, m21, miyoomini, r36s,\
|
||||
\ rg35xx"
|
||||
- folder: N64
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/r36s/N64.pak/launch.sh:1"
|
||||
note: "any folder named N64 or ending in '(N64)' starts N64.pak. Devices: r36s"
|
||||
- folder: "Neo Geo Pocket Color (NGPC)"
|
||||
name: NGPC
|
||||
aliases:
|
||||
- NGPC
|
||||
core: mednafen_ngp
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NGPC.pak/launch.sh:3"
|
||||
note: "any folder named NGPC or ending in '(NGPC)' starts NGPC.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "NeoGeo (NG)"
|
||||
name: NG
|
||||
aliases:
|
||||
- NG
|
||||
core: fbneo
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NG.pak/launch.sh:3"
|
||||
note: "any folder named NG or ending in '(NG)' starts NG.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "NeoGeo CD (NGCD)"
|
||||
name: NGCD
|
||||
aliases:
|
||||
- NGCD
|
||||
core: neocd
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NGCD.pak/launch.sh:3"
|
||||
note: "any folder named NGCD or ending in '(NGCD)' starts NGCD.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: NGP
|
||||
core: mednafen_ngp
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NGP.pak/launch.sh:3"
|
||||
note: "any folder named NGP or ending in '(NGP)' starts NGP.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Nintendo DS (NDS)"
|
||||
name: NDS
|
||||
aliases:
|
||||
- NDS
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/miyoomini/NDS.pak/launch.sh:1"
|
||||
note: "any folder named NDS or ending in '(NDS)' starts NDS.pak. Devices: miyoomini, my282, r36s"
|
||||
- folder: "Nintendo Entertainment System (FC)"
|
||||
name: FC
|
||||
aliases:
|
||||
- FC
|
||||
core: fceumm
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/FC.pak/launch.sh:3"
|
||||
note: "any folder named FC or ending in '(FC)' starts FC.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Pico-8 (P8)"
|
||||
name: P8
|
||||
aliases:
|
||||
- P8
|
||||
core: fake08
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/P8.pak/launch.sh:3"
|
||||
note: "any folder named P8 or ending in '(P8)' starts P8.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Pico-8 Native (P8N)"
|
||||
name: P8N
|
||||
aliases:
|
||||
- P8N
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/P8N.pak/launch.sh:1"
|
||||
note: "any folder named P8N or ending in '(P8N)' starts P8N.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Pokémon mini (PKM)"
|
||||
name: PKM
|
||||
aliases:
|
||||
- PKM
|
||||
core: pokemini
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PKM.pak/launch.sh:3"
|
||||
note: "any folder named PKM or ending in '(PKM)' starts PKM.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: PSP
|
||||
emulator: standalone
|
||||
source_ref: "os skeleton/EXTRAS/Emus/r36s/PSP.pak/launch.sh:1"
|
||||
note: "any folder named PSP or ending in '(PSP)' starts PSP.pak. Devices: r36s"
|
||||
- folder: PUAE
|
||||
core: puae2021
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PUAE.pak/launch.sh:3"
|
||||
note: "any folder named PUAE or ending in '(PUAE)' starts PUAE.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Quake (QUAKE)"
|
||||
name: QUAKE
|
||||
aliases:
|
||||
- QUAKE
|
||||
core: tyrquake
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/QUAKE.pak/launch.sh:3"
|
||||
note: "any folder named QUAKE or ending in '(QUAKE)' starts QUAKE.pak. Devices: h700, m21, miyoomini,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Sega Game Gear (GG)"
|
||||
name: GG
|
||||
aliases:
|
||||
- GG
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/GG.pak/launch.sh:3"
|
||||
note: "any folder named GG or ending in '(GG)' starts GG.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Sega Genesis (MD)"
|
||||
name: MD
|
||||
aliases:
|
||||
- MD
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/MD.pak/launch.sh:3"
|
||||
note: "any folder named MD or ending in '(MD)' starts MD.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Sega Master System (SMS)"
|
||||
name: SMS
|
||||
aliases:
|
||||
- SMS
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SMS.pak/launch.sh:3"
|
||||
note: "any folder named SMS or ending in '(SMS)' starts SMS.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Sony PlayStation (PS)"
|
||||
name: PS
|
||||
aliases:
|
||||
- PS
|
||||
core: pcsx_rearmed
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PS.pak/launch.sh:3"
|
||||
note: "any folder named PS or ending in '(PS)' starts PS.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Super Game Boy (SGB)"
|
||||
name: SGB
|
||||
aliases:
|
||||
- SGB
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SGB.pak/launch.sh:3"
|
||||
note: "any folder named SGB or ending in '(SGB)' starts SGB.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Super Nintendo Entertainment System (SFC)"
|
||||
name: SFC
|
||||
aliases:
|
||||
- SFC
|
||||
core: snes9x2005_plus
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SFC.pak/launch.sh:3"
|
||||
note: "any folder named SFC or ending in '(SFC)' starts SFC.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Super Nintendo Entertainment System (SUPA)"
|
||||
name: SUPA
|
||||
aliases:
|
||||
- SUPA
|
||||
core: mednafen_supafaust
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SUPA.pak/launch.sh:3"
|
||||
note: "any folder named SUPA or ending in '(SUPA)' starts SUPA.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "TurboGrafx-16 (PCE)"
|
||||
name: PCE
|
||||
aliases:
|
||||
- PCE
|
||||
core: mednafen_pce_fast
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PCE.pak/launch.sh:3"
|
||||
note: "any folder named PCE or ending in '(PCE)' starts PCE.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "Virtual Boy (VB)"
|
||||
name: VB
|
||||
aliases:
|
||||
- VB
|
||||
core: mednafen_vb
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/VB.pak/launch.sh:3"
|
||||
note: "any folder named VB or ending in '(VB)' starts VB.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: WS
|
||||
core: mednafen_wswan
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/WS.pak/launch.sh:3"
|
||||
note: "any folder named WS or ending in '(WS)' starts WS.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
- folder: "ZX Spectrum (ZXS)"
|
||||
name: ZXS
|
||||
aliases:
|
||||
- ZXS
|
||||
core: fuse
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/ZXS.pak/launch.sh:3"
|
||||
note: "any folder named ZXS or ending in '(ZXS)' starts ZXS.pak. Devices: h700, m21, miyoomini, my282,\
|
||||
\ r36s, rg35xx"
|
||||
@@ -0,0 +1,326 @@
|
||||
setup: nextui
|
||||
name: NextUI
|
||||
platform: nextui
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/LoveRetro/NextUI"
|
||||
commit: 5291344b3aceae5fa197437a70824afb41e2d338
|
||||
roms_root:
|
||||
path: <SD>/Roms
|
||||
from_bios: ../../Roms
|
||||
source_ref: "os workspace/all/common/defines.h:16; os workspace/tg5040/platform/platform.h:156"
|
||||
case_sensitive: null
|
||||
case_ref: "os workspace/all/common/utils.c:352-379"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os workspace/all/common/utils.c:36-38"
|
||||
- pattern: '*.disabled'
|
||||
source_ref: "os workspace/all/common/utils.c:36-38"
|
||||
- name: map.txt
|
||||
source_ref: "os workspace/all/common/utils.c:36-38"
|
||||
media:
|
||||
- name: .media
|
||||
source_ref: "os workspace/all/nextui/nextui.c:3011-3034"
|
||||
notes:
|
||||
- "NextUI has no extension filter. Every file of a Roms folder that is not hidden is listed as a game\
|
||||
\ (os workspace/all/nextui/nextui.c:535-547), so the rows carry no extensions."
|
||||
- "A Roms folder starts the pak named by the text inside its last parentheses, or by its whole name without\
|
||||
\ parentheses (getEmuName, os workspace/all/common/utils.c:352-379)."
|
||||
- BIOS sits in Bios/<TAG>/, two levels under the card root, so the roms root is ../../Roms from it.
|
||||
folders:
|
||||
- folder: "Amiga (PUAE)"
|
||||
name: PUAE
|
||||
aliases:
|
||||
- PUAE
|
||||
core: puae2021
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PUAE.pak/launch.sh:3"
|
||||
note: "any folder named PUAE or ending in '(PUAE)' starts PUAE.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Amstrad CPC (CPC)"
|
||||
name: CPC
|
||||
aliases:
|
||||
- CPC
|
||||
core: cap32
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/CPC.pak/launch.sh:3"
|
||||
note: "any folder named CPC or ending in '(CPC)' starts CPC.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Arcade (FBN)"
|
||||
name: FBN
|
||||
aliases:
|
||||
- FBN
|
||||
core: fbneo
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/FBN.pak/launch.sh:3"
|
||||
note: "any folder named FBN or ending in '(FBN)' starts FBN.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Atari 2600 (A2600)"
|
||||
name: A2600
|
||||
aliases:
|
||||
- A2600
|
||||
core: stella2014
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A2600.pak/launch.sh:3"
|
||||
note: "any folder named A2600 or ending in '(A2600)' starts A2600.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Atari 5200 (A5200)"
|
||||
name: A5200
|
||||
aliases:
|
||||
- A5200
|
||||
core: a5200
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A5200.pak/launch.sh:3"
|
||||
note: "any folder named A5200 or ending in '(A5200)' starts A5200.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Atari 7800 (A7800)"
|
||||
name: A7800
|
||||
aliases:
|
||||
- A7800
|
||||
core: prosystem
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/A7800.pak/launch.sh:3"
|
||||
note: "any folder named A7800 or ending in '(A7800)' starts A7800.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Atari Lynx (LYNX)"
|
||||
name: LYNX
|
||||
aliases:
|
||||
- LYNX
|
||||
core: handy
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/LYNX.pak/launch.sh:3"
|
||||
note: "any folder named LYNX or ending in '(LYNX)' starts LYNX.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Colecovision (COLECO)"
|
||||
name: COLECO
|
||||
aliases:
|
||||
- COLECO
|
||||
core: gearcoleco
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/COLECO.pak/launch.sh:3"
|
||||
note: "any folder named COLECO or ending in '(COLECO)' starts COLECO.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Commodore 128 (C128)"
|
||||
name: C128
|
||||
aliases:
|
||||
- C128
|
||||
core: vice_x128
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/C128.pak/launch.sh:3"
|
||||
note: "any folder named C128 or ending in '(C128)' starts C128.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Commodore 64 (C64)"
|
||||
name: C64
|
||||
aliases:
|
||||
- C64
|
||||
core: vice_x64
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/C64.pak/launch.sh:3"
|
||||
note: "any folder named C64 or ending in '(C64)' starts C64.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Commodore PET (PET)"
|
||||
name: PET
|
||||
aliases:
|
||||
- PET
|
||||
core: vice_xpet
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PET.pak/launch.sh:3"
|
||||
note: "any folder named PET or ending in '(PET)' starts PET.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Commodore Plus4 (PLUS4)"
|
||||
name: PLUS4
|
||||
aliases:
|
||||
- PLUS4
|
||||
core: vice_xplus4
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PLUS4.pak/launch.sh:3"
|
||||
note: "any folder named PLUS4 or ending in '(PLUS4)' starts PLUS4.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Commodore VIC20 (VIC)"
|
||||
name: VIC
|
||||
aliases:
|
||||
- VIC
|
||||
core: vice_xvic
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/VIC.pak/launch.sh:3"
|
||||
note: "any folder named VIC or ending in '(VIC)' starts VIC.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Doom (PRBOOM)"
|
||||
name: PRBOOM
|
||||
aliases:
|
||||
- PRBOOM
|
||||
core: prboom
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PRBOOM.pak/launch.sh:7"
|
||||
note: "any folder named PRBOOM or ending in '(PRBOOM)' starts PRBOOM.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Famicom Disk System (FDS)"
|
||||
name: FDS
|
||||
aliases:
|
||||
- FDS
|
||||
core: fceumm
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/FDS.pak/launch.sh:3"
|
||||
note: "any folder named FDS or ending in '(FDS)' starts FDS.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Game Boy (GB)"
|
||||
name: GB
|
||||
aliases:
|
||||
- GB
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/GB.pak/launch.sh:3"
|
||||
note: "any folder named GB or ending in '(GB)' starts GB.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Game Boy Advance (GBA)"
|
||||
name: GBA
|
||||
aliases:
|
||||
- GBA
|
||||
core: gpsp
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/GBA.pak/launch.sh:3"
|
||||
note: "any folder named GBA or ending in '(GBA)' starts GBA.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Game Boy Advance (MGBA)"
|
||||
name: MGBA
|
||||
aliases:
|
||||
- MGBA
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/MGBA.pak/launch.sh:3"
|
||||
note: "any folder named MGBA or ending in '(MGBA)' starts MGBA.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Game Boy Color (GBC)"
|
||||
name: GBC
|
||||
aliases:
|
||||
- GBC
|
||||
core: gambatte
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/GBC.pak/launch.sh:3"
|
||||
note: "any folder named GBC or ending in '(GBC)' starts GBC.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Microsoft MSX (MSX)"
|
||||
name: MSX
|
||||
aliases:
|
||||
- MSX
|
||||
core: bluemsx
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/MSX.pak/launch.sh:3"
|
||||
note: "any folder named MSX or ending in '(MSX)' starts MSX.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Neo Geo Pocket (NGP)"
|
||||
name: NGP
|
||||
aliases:
|
||||
- NGP
|
||||
core: race
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NGP.pak/launch.sh:3"
|
||||
note: "any folder named NGP or ending in '(NGP)' starts NGP.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Neo Geo Pocket Color (NGPC)"
|
||||
name: NGPC
|
||||
aliases:
|
||||
- NGPC
|
||||
core: race
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/NGPC.pak/launch.sh:3"
|
||||
note: "any folder named NGPC or ending in '(NGPC)' starts NGPC.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Nintendo Entertainment System (FC)"
|
||||
name: FC
|
||||
aliases:
|
||||
- FC
|
||||
core: fceumm
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/FC.pak/launch.sh:3"
|
||||
note: "any folder named FC or ending in '(FC)' starts FC.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Pico-8 (P8)"
|
||||
name: P8
|
||||
aliases:
|
||||
- P8
|
||||
core: fake08
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/P8.pak/launch.sh:3"
|
||||
note: "any folder named P8 or ending in '(P8)' starts P8.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Pokémon mini (PKM)"
|
||||
name: PKM
|
||||
aliases:
|
||||
- PKM
|
||||
core: pokemini
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PKM.pak/launch.sh:3"
|
||||
note: "any folder named PKM or ending in '(PKM)' starts PKM.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sega 32X (32X)"
|
||||
name: 32X
|
||||
aliases:
|
||||
- 32X
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/32X.pak/launch.sh:3"
|
||||
note: "any folder named 32X or ending in '(32X)' starts 32X.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sega CD (SEGACD)"
|
||||
name: SEGACD
|
||||
aliases:
|
||||
- SEGACD
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SEGACD.pak/launch.sh:3"
|
||||
note: "any folder named SEGACD or ending in '(SEGACD)' starts SEGACD.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sega Game Gear (GG)"
|
||||
name: GG
|
||||
aliases:
|
||||
- GG
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/GG.pak/launch.sh:3"
|
||||
note: "any folder named GG or ending in '(GG)' starts GG.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sega Genesis (MD)"
|
||||
name: MD
|
||||
aliases:
|
||||
- MD
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/MD.pak/launch.sh:3"
|
||||
note: "any folder named MD or ending in '(MD)' starts MD.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Sega Master System (SMS)"
|
||||
name: SMS
|
||||
aliases:
|
||||
- SMS
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SMS.pak/launch.sh:3"
|
||||
note: "any folder named SMS or ending in '(SMS)' starts SMS.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sega SG-1000 (SG1000)"
|
||||
name: SG1000
|
||||
aliases:
|
||||
- SG1000
|
||||
core: picodrive
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SG1000.pak/launch.sh:3"
|
||||
note: "any folder named SG1000 or ending in '(SG1000)' starts SG1000.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Sony PlayStation (PS)"
|
||||
name: PS
|
||||
aliases:
|
||||
- PS
|
||||
core: pcsx_rearmed
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/PS.pak/launch.sh:3"
|
||||
note: "any folder named PS or ending in '(PS)' starts PS.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Super Game Boy (SGB)"
|
||||
name: SGB
|
||||
aliases:
|
||||
- SGB
|
||||
core: mgba
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SGB.pak/launch.sh:3"
|
||||
note: "any folder named SGB or ending in '(SGB)' starts SGB.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Super Nintendo Entertainment System (SFC)"
|
||||
name: SFC
|
||||
aliases:
|
||||
- SFC
|
||||
core: snes9x
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/SYSTEM/desktop/paks/Emus/SFC.pak/launch.sh:3"
|
||||
note: "any folder named SFC or ending in '(SFC)' starts SFC.pak. Devices: desktop, h700, tg5040, tg5050"
|
||||
- folder: "Super Nintendo Entertainment System (SUPA)"
|
||||
name: SUPA
|
||||
aliases:
|
||||
- SUPA
|
||||
core: mednafen_supafaust
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/SUPA.pak/launch.sh:3"
|
||||
note: "any folder named SUPA or ending in '(SUPA)' starts SUPA.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "TurboGrafx-16 (PCE)"
|
||||
name: PCE
|
||||
aliases:
|
||||
- PCE
|
||||
core: mednafen_pce_fast
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/PCE.pak/launch.sh:3"
|
||||
note: "any folder named PCE or ending in '(PCE)' starts PCE.pak. Devices: h700, tg5040, tg5050"
|
||||
- folder: "Virtual Boy (VB)"
|
||||
name: VB
|
||||
aliases:
|
||||
- VB
|
||||
core: mednafen_vb
|
||||
emulator: minarch
|
||||
source_ref: "os skeleton/EXTRAS/Emus/h700/VB.pak/launch.sh:3"
|
||||
note: "any folder named VB or ending in '(VB)' starts VB.pak. Devices: h700, tg5040, tg5050"
|
||||
@@ -0,0 +1,865 @@
|
||||
setup: onion
|
||||
name: Onion
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/OnionUI/Onion"
|
||||
commit: 07505ea58c7bba698d6b9220ff43946a43cac76b
|
||||
roms_root:
|
||||
path: /mnt/SDCARD/Roms
|
||||
from_bios: ../Roms
|
||||
source_ref: "os static/packages/Emu/Commodore%20-%20Amiga%20(PUAE%202021)/Emu/AMIGA/config.json:3"
|
||||
case_sensitive: false
|
||||
case_ref: "os src/packageManager/fileActions.h:96-118"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os src/packageManager/fileActions.h:130"
|
||||
media:
|
||||
- name: Imgs
|
||||
source_ref: "os static/packages/Emu/Commodore%20-%20Amiga%20(PUAE%202021)/Emu/AMIGA/config.json:1-13"
|
||||
notes:
|
||||
- Each Emu/<SYS>/config.json points rompath at ../../Roms/<SYS> from /mnt/SDCARD/Emu/<SYS>. Emu packages
|
||||
are optional and PackageManager installs them.
|
||||
- "The stock MainUI that lists the games is closed source. It reads extlist and hidebios from config.json.\
|
||||
\ Only Onion's PackageManager rule is readable (os src/packageManager/fileActions.h:120-189)."
|
||||
- "The gpSP package names its core through default_core in launch.sh and switches to mGBA only after a\
|
||||
\ save migration (os static/packages/Emu/Nintendo%20-%20GBA%20(gpSP)/Emu/GBA/launch.sh:25-30)."
|
||||
folders:
|
||||
- folder: ADVMAME
|
||||
extensions:
|
||||
- .7z
|
||||
- .chd
|
||||
- .miyoocmd
|
||||
- .zip
|
||||
source_ref: "os static/packages/RApp/Arcade%20(AdvanceMame)/RApp/advancemame/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: AMIGA
|
||||
extensions:
|
||||
- .7z
|
||||
- .adf
|
||||
- .adz
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .dms
|
||||
- .fdi
|
||||
- .hdf
|
||||
- .hdz
|
||||
- .info
|
||||
- .ipf
|
||||
- .iso
|
||||
- .lha
|
||||
- .m3u
|
||||
- .mds
|
||||
- .nrg
|
||||
- .rp9
|
||||
- .slave
|
||||
- .uae
|
||||
- .zip
|
||||
core: puae2021
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Commodore%20-%20Amiga%20(PUAE%202021)/Emu/AMIGA/config.json:6"
|
||||
note: "package 'Commodore - Amiga (PUAE 2021)' (Emu/, the stock menu entry). Other packages on this\
|
||||
\ folder: Commodore - Amiga (PUAE 2021 xtreme), Commodore - Amiga (uae4arm)"
|
||||
- folder: AMIGACD
|
||||
source_ref: "os static/packages/RApp/Commodore%20-%20Amiga%20CD32%20(uae4arm)/RApp/uae4arm_cd32/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: ARCADE
|
||||
extensions:
|
||||
- .zip
|
||||
core: mame2003_plus
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Arcade%20(MAME%202003-Plus)/Emu/ARCADE/config.json:6"
|
||||
note: "package 'Arcade (MAME 2003-Plus)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Arcade (MAME 2003-xtreme)"
|
||||
- folder: ARDUBOY
|
||||
source_ref: "os static/packages/RApp/Arduboy%20(Arduous)/RApp/arduous/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: ATARI
|
||||
extensions:
|
||||
- .7z
|
||||
- .a26
|
||||
- .bin
|
||||
- .zip
|
||||
core: stella2014
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Atari%20-%202600%20(Stella%202014)/Emu/ATARI/config.json:6"
|
||||
note: "package 'Atari - 2600 (Stella 2014)' (Emu/, the stock menu entry)"
|
||||
- folder: ATARIST
|
||||
source_ref: "os static/packages/RApp/Atari%20-%20ST%20(hatari)/RApp/ATARIST/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: CHAI
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20ChaiLove%20(ChaiLove)/RApp/chai/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: COLECO
|
||||
extensions:
|
||||
- .7z
|
||||
- .cas
|
||||
- .col
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .mx1
|
||||
- .mx2
|
||||
- .ri
|
||||
- .rom
|
||||
- .sc
|
||||
- .sg
|
||||
- .zip
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Coleco%20-%20ColecoVision%20(blueMSX)/Emu/COLECO/config.json:6"
|
||||
note: "package 'Coleco - ColecoVision (blueMSX)' (Emu/, the stock menu entry)"
|
||||
- folder: COMMODORE
|
||||
extensions:
|
||||
- .7z
|
||||
- .crt
|
||||
- .d64
|
||||
- .nib
|
||||
- .prg
|
||||
- .t64
|
||||
- .tap
|
||||
- .zip
|
||||
core: vice_x64
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Commodore%20-%20C64%20(VICE%20x64)/Emu/COMMODORE/config.json:6"
|
||||
note: "package 'Commodore - C64 (VICE x64)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Commodore - C64 (Frodo)"
|
||||
- folder: CPC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .dsk
|
||||
- .kcr
|
||||
- .sna
|
||||
- .zip
|
||||
core: crocods
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Amstrad%20-%20CPC%20(CrocoDS)/Emu/CPC/config.json:6"
|
||||
note: "package 'Amstrad - CPC (CrocoDS)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Amstrad - CPC (Caprice32)"
|
||||
- folder: CPS1
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .zip
|
||||
core: fbalpha2012_cps1
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Capcom%20-%20CPS1%20(FB%20Alpha%202012%20CPS-1)/Emu/CPS1/config.json:6"
|
||||
note: "package 'Capcom - CPS1 (FB Alpha 2012 CPS-1)' (Emu/, the stock menu entry)"
|
||||
- folder: CPS2
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .zip
|
||||
core: fbalpha2012_cps2
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Capcom%20-%20CPS2%20(FB%20Alpha%202012%20CPS-2)/Emu/CPS2/config.json:6"
|
||||
note: "package 'Capcom - CPS2 (FB Alpha 2012 CPS-2)' (Emu/, the stock menu entry)"
|
||||
- folder: CPS3
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .zip
|
||||
core: fbalpha2012_cps3
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Capcom%20-%20CPS3%20(FB%20Alpha%202012%20CPS-3)/Emu/CPS3/config.json:6"
|
||||
note: "package 'Capcom - CPS3 (FB Alpha 2012 CPS-3)' (Emu/, the stock menu entry)"
|
||||
- folder: DAPHNE
|
||||
source_ref: "os static/packages/RApp/Arcade%20-%20LaserDisk%20(Daphne)/RApp/DAPHNE/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: DOS
|
||||
extensions:
|
||||
- .bat
|
||||
- .com
|
||||
- .conf
|
||||
- .dosz
|
||||
- .exe
|
||||
- .ima
|
||||
- .img
|
||||
- .ins
|
||||
- .iso
|
||||
- .jrc
|
||||
- .m3u
|
||||
- .m3u8
|
||||
- .tc
|
||||
- .vhd
|
||||
- .zip
|
||||
core: dosbox_pure
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Microsoft%20-%20DOS%20(DOSBox-Pure)/Emu/DOS/config.json:6"
|
||||
note: "package 'Microsoft - DOS (DOSBox-Pure)' (Emu/, the stock menu entry). Other packages on this\
|
||||
\ folder: Microsoft - DOS (DOSBox-Pure 0.9.7)"
|
||||
- folder: EASYRPG
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20EasyRPG%20(EasyRPG)/RApp/easyrpg/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: EBK
|
||||
source_ref: "os static/packages/RApp/BK%20-%200010%20(BK)/RApp/bk/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: EIGHTHUNDRED
|
||||
source_ref: "os static/packages/RApp/Atari%20-%20800%20(atari800)/RApp/atari800/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: FAIRCHILD
|
||||
extensions:
|
||||
- .bin
|
||||
- .chf
|
||||
- .rom
|
||||
- .zip
|
||||
core: freechaf
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Fairchild%20-%20ChannelF%20(FreeChaF)/Emu/FAIRCHILD/config.json:6"
|
||||
note: "package 'Fairchild - ChannelF (FreeChaF)' (Emu/, the stock menu entry)"
|
||||
- folder: FBA2012
|
||||
source_ref: "os static/packages/RApp/Arcade%20(FB%20Alpha%202012)/RApp/FBA2012/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: FBALPHA
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .zip
|
||||
source_ref: "os static/packages/RApp/.Arcade%20(Final%20Burn%20Alpha)/RApp/ARCADE/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: FBNEO
|
||||
extensions:
|
||||
- .zip
|
||||
source_ref: "os static/packages/RApp/Arcade%20(Final%20Burn%20Neo)/RApp/fbneo/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: FC
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .nes
|
||||
- .unf
|
||||
- .unif
|
||||
- .zip
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20NES%20(FCEUmm)/Emu/FC/config.json:6"
|
||||
note: "package 'Nintendo - NES (FCEUmm)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Nintendo - NES (Nestopia)"
|
||||
- folder: FDS
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .nes
|
||||
- .unf
|
||||
- .unif
|
||||
- .zip
|
||||
core: fceumm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Famicom%20Disk%20Syst.%20(FCEUmm)/Emu/FDS/config.json:6"
|
||||
note: "package 'Nintendo - Famicom Disk Syst. (FCEUmm)' (Emu/, the stock menu entry)"
|
||||
- folder: FIFTYTWOHUNDRED
|
||||
extensions:
|
||||
- .7z
|
||||
- .a52
|
||||
- .bin
|
||||
- .zip
|
||||
core: a5200
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Atari%20-%205200%20(a5200)/Emu/FIFTYTWOHUNDRED/config.json:6"
|
||||
note: "package 'Atari - 5200 (a5200)' (Emu/, the stock menu entry). Other packages on this folder: Atari\
|
||||
\ - 5200 (atari800)"
|
||||
- folder: GB
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .dmg
|
||||
- .gb
|
||||
- .gbc
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Game%20Boy%20(Gambatte)/Emu/GB/config.json:6"
|
||||
note: "package 'Nintendo - Game Boy (Gambatte)' (Emu/, the stock menu entry). Other packages on this\
|
||||
\ folder: Nintendo - GB (Gearboy), Nintendo - GB (TGB Dual)"
|
||||
- folder: GBA
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gba
|
||||
- .zip
|
||||
core: gpsp
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20GBA%20(gpSP)/Emu/GBA/config.json:6"
|
||||
note: "package 'Nintendo - GBA (gpSP)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Nintendo - GBA (Mednafen GBA), Nintendo - GBA (Meteor), Nintendo - GBA (VBA Next), Nintendo - GBA\
|
||||
\ (VBA-M)"
|
||||
- folder: GBC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .dmg
|
||||
- .gb
|
||||
- .gbc
|
||||
- .zip
|
||||
core: gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Game%20Boy%20Color%20(Gambatte)/Emu/GBC/config.json:6"
|
||||
note: "package 'Nintendo - Game Boy Color (Gambatte)' (Emu/, the stock menu entry). Other packages on\
|
||||
\ this folder: Nintendo - GBC (Gearboy), Nintendo - GBC (TGB Dual)"
|
||||
- folder: GG
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gg
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%20Game%20Gear%20(PicoDrive)/Emu/GG/config.json:6"
|
||||
note: "package 'Sega - Game Gear (PicoDrive)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Sega - Game Gear (Gearsystem), Sega - Game Gear (Genesis Plus GX)"
|
||||
- folder: GME
|
||||
source_ref: "os static/packages/RApp/Game%20Music%20Emu%20(GME)/RApp/gme/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: GNGEO
|
||||
extensions:
|
||||
- .gno
|
||||
source_ref: "os static/packages/RApp/SNK%20-%20Neo%20Geo%20(GnGeo)/RApp/gngeo/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: GW
|
||||
extensions:
|
||||
- .7z
|
||||
- .mgw
|
||||
- .zip
|
||||
core: gw
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Game%20&%20Watch%20(gw)/Emu/GW/config.json:6"
|
||||
note: "package 'Nintendo - Game & Watch (gw)' (Emu/, the stock menu entry)"
|
||||
- folder: INTELLIVISION
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .int
|
||||
- .zip
|
||||
core: freeintv
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Mattel%20-%20Intellivision%20(FreeIntv)/Emu/INTELLIVISION/config.json:6"
|
||||
note: "package 'Mattel - Intellivision (FreeIntv)' (Emu/, the stock menu entry)"
|
||||
- folder: JAGUAR
|
||||
source_ref: "os static/packages/RApp/Atari%20-%20Jaguar%20(Virtual%20Jaguar)/RApp/JAGUAR/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: JAVA
|
||||
source_ref: "os static/packages/RApp/.Java%20-%20J2ME%20(SquirrelJME)/RApp/sqirreljme/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: LOWRESNX
|
||||
extensions:
|
||||
- .7z
|
||||
- .nx
|
||||
- .zip
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20LowRes%20NX%20(LowRes%20NX)/RApp/lowresnx/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: LUTRO
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20LÖVE%20(Lutro)/RApp/lutro/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: LYNX
|
||||
extensions:
|
||||
- .7z
|
||||
- .lnx
|
||||
- .zip
|
||||
core: handy
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Atari%20-%20Lynx%20(Handy)/Emu/LYNX/config.json:6"
|
||||
note: "package 'Atari - Lynx (Handy)' (Emu/, the stock menu entry). Other packages on this folder: Atari\
|
||||
\ - Lynx (Mednafen Lynx)"
|
||||
- folder: MAME2000
|
||||
source_ref: "os static/packages/RApp/Arcade%20(MAME%202000)/RApp/mame2000/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: MAME2003
|
||||
extensions:
|
||||
- .zip
|
||||
source_ref: "os static/packages/RApp/.Arcade%20(MAME%202003)/RApp/mame2003/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: MBA
|
||||
source_ref: "os static/packages/RApp/Arcade%20(M.B.A-mini)/RApp/mba-mini/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: MD
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%20Genesis%20(PicoDrive)/Emu/MD/config.json:6"
|
||||
note: "package 'Sega - Genesis (PicoDrive)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Sega - Genesis (Genesis Plus GX)"
|
||||
- folder: MDHACKS
|
||||
source_ref: "os static/packages/RApp/Sega%20-%20Roms%20Hacks%20(Genesis%20Plus%20GX)/RApp/genesis_plus_gx_hacks/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: MEGADUCK
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .zip
|
||||
core: sameduck
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Mega%20Duck%20(SameDuck)/Emu/MEGADUCK/config.json:6"
|
||||
note: "package 'Mega Duck (SameDuck)' (Emu/, the stock menu entry)"
|
||||
- folder: MICROW8
|
||||
extensions:
|
||||
- .uw8
|
||||
- .wasm
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20MicroW8%20(Uw8)/RApp/UW8/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: MS
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%20Master%20System%20(PicoDrive)/Emu/MS/config.json:6"
|
||||
note: "package 'Sega - Master System (PicoDrive)' (Emu/, the stock menu entry). Other packages on this\
|
||||
\ folder: Sega - Master System (Gearsystem), Sega - Master System (Genesis Plus GX)"
|
||||
- folder: MSX
|
||||
extensions:
|
||||
- .7z
|
||||
- .cas
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .mx1
|
||||
- .mx2
|
||||
- .rom
|
||||
- .zip
|
||||
core: bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Microsoft%20-%20MSX%20(blueMSX)/Emu/MSX/config.json:6"
|
||||
note: "package 'Microsoft - MSX (blueMSX)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ .Microsoft - MSX (blueMSX), Microsoft - MSX (fMSX)"
|
||||
- folder: NDS
|
||||
extensions:
|
||||
- .7z
|
||||
- .nds
|
||||
- .rar
|
||||
- .zip
|
||||
emulator: standalone
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20DS%20(Drastic)/Emu/NDS/config.json:5"
|
||||
note: "package 'Nintendo - DS (Drastic)' (Emu/, the stock menu entry), launches static/packages/Emu/Nintendo\
|
||||
\ - DS (Drastic)/Emu/NDS/launch.sh"
|
||||
- folder: NEOCD
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .m3u
|
||||
core: neocd
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/SNK%20-%20Neo%20Geo%20CD%20(NeoCD)/Emu/NEOCD/config.json:6"
|
||||
note: "package 'SNK - Neo Geo CD (NeoCD)' (Emu/, the stock menu entry)"
|
||||
- folder: NEOGEO
|
||||
extensions:
|
||||
- .7z
|
||||
- .zip
|
||||
core: fbalpha2012_neogeo
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/SNK%20-%20Neo%20Geo%20(fbalpha2012%20neogeo)/Emu/NEOGEO/config.json:6"
|
||||
note: "package 'SNK - Neo Geo (fbalpha2012 neogeo)' (Emu/, the stock menu entry)"
|
||||
- folder: NGP
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngc
|
||||
- .ngp
|
||||
- .zip
|
||||
core: mednafen_ngp
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/SNK%20-%20Neo%20Geo%20Pocket%20Color%20(B.%20NeoPop)/Emu/NGP/config.json:6"
|
||||
note: "package 'SNK - Neo Geo Pocket Color (B. NeoPop)' (Emu/, the stock menu entry)"
|
||||
- folder: ODYSSEY
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .zip
|
||||
core: o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Magnavox%20-%20Odyssey2%20(O2EM)/Emu/ODYSSEY/config.json:6"
|
||||
note: "package 'Magnavox - Odyssey2 (O2EM)' (Emu/, the stock menu entry)"
|
||||
- folder: OPENBOR
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20Open%20Beats%20of%20Rage/RApp/OpenBOR/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: PALM
|
||||
source_ref: "os static/packages/RApp/Palm%20OS%20-%20m515%20(mu)/RApp/mu/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: PANASONIC
|
||||
source_ref: "os static/packages/RApp/3DO%20(Opera)/RApp/opera/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: PCE
|
||||
extensions:
|
||||
- .7z
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .pce
|
||||
- .zip
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/NEC%20-%20TurboGrafx-16%20(Beetle%20PCE%20FAST)/Emu/PCE/config.json:6"
|
||||
note: "package 'NEC - TurboGrafx-16 (Beetle PCE FAST)' (Emu/, the stock menu entry). Other packages\
|
||||
\ on this folder: NEC - TurboGrafx-16 (Beetle PCE)"
|
||||
- folder: PCECD
|
||||
extensions:
|
||||
- .7z
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .pce
|
||||
- .zip
|
||||
core: mednafen_pce_fast
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/NEC%20-%20TurboGrafx%20CD%20(Beetle%20PCE%20FAST)/Emu/PCECD/config.json:6"
|
||||
note: "package 'NEC - TurboGrafx CD (Beetle PCE FAST)' (Emu/, the stock menu entry)"
|
||||
- folder: PCEIGHTYEIGHT
|
||||
source_ref: "os static/packages/RApp/NEC%20-%20PC-8000%20(Quasi88)/RApp/quasi88/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: PCFX
|
||||
source_ref: "os static/packages/RApp/NEC%20-%20PC-FX%20(Mednafen%20PC-FX)/RApp/mednafen_pcfx/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: PCNINETYEIGHT
|
||||
source_ref: "os static/packages/RApp/NEC%20-%20PC-98%20(Neko%20Project%20II%20Kai)/RApp/nekop2kai/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core. Other packages on this folder:\
|
||||
\ NEC - PC-98 (Neko Project II)"
|
||||
- folder: PICO
|
||||
extensions:
|
||||
- .p8
|
||||
- .png
|
||||
core: fake08
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/PICO-8%20(Fake8)/Emu/PICO/config.json:6"
|
||||
note: "package 'PICO-8 (Fake8)' (Emu/, the stock menu entry). Other packages on this folder: PICO-8\
|
||||
\ (Fake8 standalone), PICO-8 (PICO-8 standalone)"
|
||||
- folder: POKE
|
||||
extensions:
|
||||
- .min
|
||||
- .zip
|
||||
core: pokemini
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Pokemon%20Mini%20(PokeMini)/Emu/POKE/config.json:6"
|
||||
note: "package 'Nintendo - Pokemon Mini (PokeMini)' (Emu/, the stock menu entry)"
|
||||
- folder: PORTS/Shortcuts
|
||||
extensions:
|
||||
- .miyoocmd
|
||||
- .port
|
||||
emulator: standalone
|
||||
source_ref: "os static/packages/Emu/Ports%20Collection/Emu/PORTS/config.json:6"
|
||||
note: "package 'Ports Collection' (Emu/, the stock menu entry), launches static/packages/Emu/Ports Collection/Emu/PORTS/launch.sh"
|
||||
- folder: PS
|
||||
extensions:
|
||||
- .cbn
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .m3u
|
||||
- .mdf
|
||||
- .pbp
|
||||
- .toc
|
||||
core: pcsx_rearmed
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sony%20-%20PlayStation%20(PCSX%20ReARMed)/Emu/PSX/config.json:6"
|
||||
note: "package 'Sony - PlayStation (PCSX ReARMed)' (Emu/, the stock menu entry). Other packages on this\
|
||||
\ folder: Sony - PlayStation (PCSX standalone), Sony - PlayStation (SwanStation)"
|
||||
- folder: PUZZLE
|
||||
extensions:
|
||||
- .pz
|
||||
source_ref: "os static/packages/RApp/Game%20engine%20-%20PuzzleScript%20(PuzzleScript)/RApp/PuzzleScript/config.json:5"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: SATELLAVIEW
|
||||
extensions:
|
||||
- .7z
|
||||
- .bs
|
||||
- .fig
|
||||
- .sfc
|
||||
- .smc
|
||||
- .st
|
||||
- .swc
|
||||
- .zip
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Satellaview%20(Snes9x)/Emu/SATELLAVIEW/config.json:6"
|
||||
note: "package 'Nintendo - Satellaview (Snes9x)' (Emu/, the stock menu entry)"
|
||||
- folder: SCUMMVM/Shortcuts
|
||||
extensions:
|
||||
- .miyoocmd
|
||||
- .scummvm
|
||||
- .target
|
||||
core: scummvm
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/SCUMM%20(ScummVM)/Emu/SCUMMVM/config.json:6"
|
||||
note: "package 'SCUMM (ScummVM)' (Emu/, the stock menu entry)"
|
||||
- folder: SCUMMVM/Shortcuts_Standalone
|
||||
extensions:
|
||||
- .miyoocmd
|
||||
- .scummvm
|
||||
source_ref: "os static/packages/RApp/SCUMM%20(ScummVM%20standalone)/RApp/scummvm/config.json:5"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: SEGACD
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .chd
|
||||
- .cue
|
||||
- .gen
|
||||
- .iso
|
||||
- .m3u
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%20CD%20(PicoDrive)/Emu/SEGACD/config.json:6"
|
||||
note: "package 'Sega - CD (PicoDrive)' (Emu/, the stock menu entry). Other packages on this folder:\
|
||||
\ Sega - Sega CD (Genesis Plus GX)"
|
||||
- folder: SEGASGONE
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gg
|
||||
- .mv
|
||||
- .rom
|
||||
- .sg
|
||||
- .sms
|
||||
- .zip
|
||||
core: gearsystem
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%20SG-1000%20(Gearsystem)/Emu/SEGASGONE/config.json:6"
|
||||
note: "package 'Sega - SG-1000 (Gearsystem)' (Emu/, the stock menu entry)"
|
||||
- folder: SEVENTYEIGHTHUNDRED
|
||||
extensions:
|
||||
- .a78
|
||||
- .zip
|
||||
core: prosystem
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Atari%20-%207800%20(ProSystem)/Emu/SEVENTYEIGHTHUNDRED/config.json:6"
|
||||
note: "package 'Atari - 7800 (ProSystem)' (Emu/, the stock menu entry)"
|
||||
- folder: SFC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bs
|
||||
- .fig
|
||||
- .sfc
|
||||
- .smc
|
||||
- .st
|
||||
- .zip
|
||||
core: mednafen_supafaust
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20SNES%20(Beetle%20Supafaust)/Emu/SFC/config.json:6"
|
||||
note: "package 'Nintendo - SNES (Beetle Supafaust)' (Emu/, the stock menu entry). Other packages on\
|
||||
\ this folder: Nintendo - SNES (ChimeraSNES), Nintendo - SNES (Snes9x 2002), Nintendo - SNES (Snes9x\
|
||||
\ 2005 Plus), Nintendo - SNES (Snes9x 2005), Nintendo - SNES (Snes9x 2010), Nintendo - SNES (Snes9x)"
|
||||
- folder: SGB
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gb
|
||||
- .gba
|
||||
- .gbc
|
||||
- .zip
|
||||
core: mgba
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Super%20Game%20Boy%20(mGBA)/Emu/SGB/config.json:6"
|
||||
note: "package 'Nintendo - Super Game Boy (mGBA)' (Emu/, the stock menu entry)"
|
||||
- folder: SGFX
|
||||
extensions:
|
||||
- .7z
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .pce
|
||||
- .sgx
|
||||
- .zip
|
||||
core: mednafen_supergrafx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/NEC%20-%20SuperGrafx%20(Beetle%20SuperGrafx)/Emu/SGFX/config.json:6"
|
||||
note: "package 'NEC - SuperGrafx (Beetle SuperGrafx)' (Emu/, the stock menu entry)"
|
||||
- folder: SUFAMI
|
||||
extensions:
|
||||
- .7z
|
||||
- .smc
|
||||
- .zip
|
||||
core: snes9x
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Bandai%20-%20Sufami%20Turbo%20(snes9x)/Emu/SUFAMI/config.json:6"
|
||||
note: "package 'Bandai - Sufami Turbo (snes9x)' (Emu/, the stock menu entry)"
|
||||
- folder: SUPERVISION
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .sv
|
||||
- .zip
|
||||
core: potator
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Watara%20-%20Supervision%20(Potator)/Emu/SUPERVISION/config.json:6"
|
||||
note: "package 'Watara - Supervision (Potator)' (Emu/, the stock menu entry)"
|
||||
- folder: THIRTYTWOX
|
||||
extensions:
|
||||
- .32x
|
||||
- .68k
|
||||
- .7z
|
||||
- .bin
|
||||
- .chd
|
||||
- .gen
|
||||
- .iso
|
||||
- .md
|
||||
- .smd
|
||||
- .sms
|
||||
- .zip
|
||||
core: picodrive
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sega%20-%2032X%20(PicoDrive)/Emu/THIRTYTWOX/config.json:6"
|
||||
note: "package 'Sega - 32X (PicoDrive)' (Emu/, the stock menu entry)"
|
||||
- folder: THOMSON
|
||||
source_ref: "os static/packages/RApp/Thomson%20-%20MOTO%20(Theodore)/RApp/theodore/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: TI83
|
||||
extensions:
|
||||
- .8xg
|
||||
- .8xk
|
||||
- .8xp
|
||||
source_ref: "os static/packages/RApp/Texas%20Instruments%20TI-83%20(Numero)/RApp/TI-83/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: TIC
|
||||
extensions:
|
||||
- .7z
|
||||
- .fd
|
||||
- .k7
|
||||
- .m7
|
||||
- .rom
|
||||
- .sap
|
||||
- .tic
|
||||
- .zip
|
||||
core: tic80
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/TIC-80%20(TIC-80)/Emu/TIC/config.json:6"
|
||||
note: "package 'TIC-80 (TIC-80)' (Emu/, the stock menu entry)"
|
||||
- folder: UZEBOX
|
||||
source_ref: "os static/packages/RApp/Uzebox%20(Uzem)/RApp/uzem/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: VB
|
||||
extensions:
|
||||
- .7z
|
||||
- .vb
|
||||
- .vboy
|
||||
- .zip
|
||||
core: mednafen_vb
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Nintendo%20-%20Virtual%20Boy%20(Beetle%20VB)/Emu/VB/config.json:6"
|
||||
note: "package 'Nintendo - Virtual Boy (Beetle VB)' (Emu/, the stock menu entry)"
|
||||
- folder: VECTREX
|
||||
extensions:
|
||||
- .7z
|
||||
- .vec
|
||||
- .zip
|
||||
core: vecx
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/GCE%20-%20Vectrex%20(vecx)/Emu/VECTREX/config.json:6"
|
||||
note: "package 'GCE - Vectrex (vecx)' (Emu/, the stock menu entry)"
|
||||
- folder: VIC20
|
||||
extensions:
|
||||
- '.20'
|
||||
- '.40'
|
||||
- '.60'
|
||||
- .7z
|
||||
- .a0
|
||||
- .b0
|
||||
- .bin
|
||||
- .cmd
|
||||
- .crt
|
||||
- .d2m
|
||||
- .d4m
|
||||
- .d64
|
||||
- .d6z
|
||||
- .d71
|
||||
- .d7z
|
||||
- .d80
|
||||
- .d81
|
||||
- .d82
|
||||
- .d8z
|
||||
- .g41
|
||||
- .g4z
|
||||
- .g64
|
||||
- .g6z
|
||||
- .gz
|
||||
- .m3u
|
||||
- .nbz
|
||||
- .nib
|
||||
- .p00
|
||||
- .prg
|
||||
- .rom
|
||||
- .t64
|
||||
- .tap
|
||||
- .tcrt
|
||||
- .vfl
|
||||
- .vsf
|
||||
- .x64
|
||||
- .x6z
|
||||
- .zip
|
||||
core: vice_xvic
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Commodore%20-%20VIC-20%20(VICE%20xvic)/Emu/VIC20/config.json:6"
|
||||
note: "package 'Commodore - VIC-20 (VICE xvic)' (Emu/, the stock menu entry)"
|
||||
- folder: VIDEOPAC
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .zip
|
||||
core: o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Phillips%20-%20Videopac+%20(O2EM)/Emu/VIDEOPAC/config.json:6"
|
||||
note: "package 'Phillips - Videopac+ (O2EM)' (Emu/, the stock menu entry)"
|
||||
- folder: VMU
|
||||
source_ref: "os static/packages/RApp/Sega%20-%20Visual%20Memory%20Unit%20(VeMUlator)/RApp/vemulator/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: WS
|
||||
extensions:
|
||||
- .7z
|
||||
- .pc2
|
||||
- .ws
|
||||
- .wsc
|
||||
- .zip
|
||||
core: mednafen_wswan
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Bandai%20-%20WonderSwanColor%20(B.%20Cygne)/Emu/WS/config.json:6"
|
||||
note: "package 'Bandai - WonderSwanColor (B. Cygne)' (Emu/, the stock menu entry)"
|
||||
- folder: X68000
|
||||
source_ref: "os static/packages/RApp/Sharp%20-%20X68000%20(PX68k)/RApp/X68000/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: XONE
|
||||
source_ref: "os static/packages/RApp/Commodore%20-%20Sharp%20X1%20(x1)/RApp/x1/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: ZXEIGHTYONE
|
||||
source_ref: "os static/packages/RApp/Sinclair%20-%20ZX81%20(81)/RApp/zx81/config.json:6"
|
||||
note: "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
- folder: ZXS
|
||||
extensions:
|
||||
- .7z
|
||||
- .rzx
|
||||
- .scl
|
||||
- .tap
|
||||
- .trd
|
||||
- .tzx
|
||||
- .z80
|
||||
- .zip
|
||||
core: fuse
|
||||
emulator: retroarch
|
||||
source_ref: "os static/packages/Emu/Sinclair%20-%20ZX%20Spectrum%20(Fuse)/Emu/ZXS/config.json:6"
|
||||
note: "package 'Sinclair - ZX Spectrum (Fuse)' (Emu/, the stock menu entry)"
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,20 @@
|
||||
setup: retroarch
|
||||
name: RetroArch
|
||||
platform: retroarch
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/libretro/RetroArch"
|
||||
commit: 69a4f0ea1e8aaf442ae4858f2e7f2b31a1776576
|
||||
tag: v1.22.2
|
||||
roms_root:
|
||||
path: none
|
||||
from_bios: null
|
||||
source_ref: "os configuration.c:3126,3295-3298"
|
||||
case_sensitive: null
|
||||
notes:
|
||||
- "RetroArch alone defines no rom folder. rgui_browser_directory starts empty and only a platform default\
|
||||
\ fills it, which no desktop driver sets (os configuration.c:3126,3295-3298). The path none says so."
|
||||
- "Content reaches a core through playlists built by scanning against the content databases (os tasks/task_database.c),\
|
||||
\ or from the file browser with a core the user picks. The system can only come from the game itself\
|
||||
\ or from a folder the user names."
|
||||
folders: []
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,863 @@
|
||||
setup: retropie
|
||||
name: RetroPie
|
||||
platform: retropie
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/RetroPie/RetroPie-Setup"
|
||||
commit: 46128cd252cdecae852a4d0bafa2aaf9d03ab563
|
||||
es:
|
||||
repo: "https://github.com/RetroPie/EmulationStation"
|
||||
commit: a31c36a77b385a6ea3f6667e75ef468ff79678a6
|
||||
note: branch stable, the one scriptmodules/supplementary/emulationstation.sh builds
|
||||
roms_root:
|
||||
path: ~/RetroPie/roms
|
||||
from_bios: ../roms
|
||||
source_ref: "os retropie_packages.sh:47-49; os scriptmodules/helpers.sh:1412"
|
||||
case_sensitive: true
|
||||
case_ref: "os scriptmodules/helpers.sh:1435-1437"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "es es-app/src/SystemData.cpp:102-104"
|
||||
notes:
|
||||
- "addSystem appends the upper-case form of each extension because EmulationStation compares them as written\
|
||||
\ (os scriptmodules/helpers.sh:1435-1437)."
|
||||
- "Each folder is <romdir>/<system> for a system platforms.cfg lists (os scriptmodules/helpers.sh:1406-1413).\
|
||||
\ A folder appears only once a module calls addSystem for it."
|
||||
- "The default is the first module installed that calls addEmulator with 1 (os scriptmodules/helpers.sh:1565-1570).\
|
||||
\ Rows give it for a basic install on x86_64, the core section then the main one, in registration order\
|
||||
\ (os scriptmodules/admin/setup.sh:606-611; os scriptmodules/packages.sh:1037-1038; flags from os scriptmodules/system.sh:537,673-683).\
|
||||
\ A system no basic-install module serves takes the first optional (opt, then exp) module."
|
||||
folders:
|
||||
- folder: 3do
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .iso
|
||||
- .zip
|
||||
core: lr-opera
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:1; os scriptmodules/libretrocores/lr-opera.sh:43"
|
||||
- folder: ags
|
||||
extensions:
|
||||
- .exe
|
||||
core: ags
|
||||
emulator: ags
|
||||
source_ref: "os platforms.cfg:4; os scriptmodules/emulators/ags.sh:54"
|
||||
- folder: amiga
|
||||
extensions:
|
||||
- .adf
|
||||
- .adz
|
||||
- .chd
|
||||
- .cue
|
||||
- .dms
|
||||
- .hdf
|
||||
- .hdz
|
||||
- .ipf
|
||||
- .lha
|
||||
- .m3u
|
||||
- .sh
|
||||
- .uae
|
||||
- .zip
|
||||
core: amiberry
|
||||
emulator: amiberry
|
||||
source_ref: "os platforms.cfg:7; os scriptmodules/emulators/amiberry.sh:111"
|
||||
- folder: amstradcpc
|
||||
extensions:
|
||||
- .cdt
|
||||
- .cpc
|
||||
- .cpr
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .tap
|
||||
- .zip
|
||||
core: lr-caprice32
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:10; os scriptmodules/libretrocores/lr-caprice32.sh:44"
|
||||
- folder: apple2
|
||||
extensions:
|
||||
- .dsk
|
||||
- .nib
|
||||
- .po
|
||||
core: linapple
|
||||
emulator: linapple
|
||||
source_ref: "os platforms.cfg:13; os scriptmodules/emulators/linapple.sh:51"
|
||||
- folder: arcade
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .fba
|
||||
- .iso
|
||||
- .zip
|
||||
core: advmame
|
||||
emulator: advmame
|
||||
source_ref: "os platforms.cfg:16; os scriptmodules/emulators/advmame.sh:144"
|
||||
- folder: arcadia
|
||||
extensions:
|
||||
- .bin
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:19"
|
||||
- folder: atari2600
|
||||
extensions:
|
||||
- .7z
|
||||
- .a26
|
||||
- .bin
|
||||
- .gz
|
||||
- .rom
|
||||
- .zip
|
||||
core: lr-stella2014
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:22; os scriptmodules/libretrocores/lr-stella2014.sh:41"
|
||||
- folder: atari5200
|
||||
extensions:
|
||||
- .7z
|
||||
- .a52
|
||||
- .bin
|
||||
- .car
|
||||
- .zip
|
||||
core: lr-atari800
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:25; os scriptmodules/libretrocores/lr-atari800.sh:47"
|
||||
- folder: atari7800
|
||||
extensions:
|
||||
- .7z
|
||||
- .a78
|
||||
- .bin
|
||||
- .zip
|
||||
core: lr-prosystem
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:28; os scriptmodules/libretrocores/lr-prosystem.sh:41"
|
||||
- folder: atari800
|
||||
extensions:
|
||||
- .7z
|
||||
- .atr
|
||||
- .atr.gz
|
||||
- .atx
|
||||
- .bas
|
||||
- .bin
|
||||
- .car
|
||||
- .cas
|
||||
- .com
|
||||
- .dcm
|
||||
- .rom
|
||||
- .xex
|
||||
- .xfd
|
||||
- .xfd.gz
|
||||
- .zip
|
||||
core: lr-atari800
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:31; os scriptmodules/libretrocores/lr-atari800.sh:46"
|
||||
- folder: atarijaguar
|
||||
extensions:
|
||||
- .j64
|
||||
- .jag
|
||||
- .zip
|
||||
core: lr-virtualjaguar
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:34; os scriptmodules/libretrocores/lr-virtualjaguar.sh:43"
|
||||
- folder: atarilynx
|
||||
extensions:
|
||||
- .7z
|
||||
- .lnx
|
||||
- .zip
|
||||
core: lr-handy
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:37; os scriptmodules/libretrocores/lr-handy.sh:40"
|
||||
- folder: atarist
|
||||
extensions:
|
||||
- .ctr
|
||||
- .img
|
||||
- .ipf
|
||||
- .m3u
|
||||
- .raw
|
||||
- .rom
|
||||
- .st
|
||||
- .stx
|
||||
- .zip
|
||||
core: hatari-fast
|
||||
emulator: hatari-fast
|
||||
source_ref: "os platforms.cfg:40; os scriptmodules/emulators/hatari.sh:88"
|
||||
- folder: c64
|
||||
extensions:
|
||||
- .cmd
|
||||
- .crt
|
||||
- .d64
|
||||
- .d71
|
||||
- .d80
|
||||
- .d81
|
||||
- .g64
|
||||
- .m3u
|
||||
- .prg
|
||||
- .t64
|
||||
- .tap
|
||||
- .vsf
|
||||
- .x64
|
||||
- .zip
|
||||
core: vice-x64
|
||||
emulator: vice-x64
|
||||
source_ref: "os platforms.cfg:43; os scriptmodules/emulators/vice.sh:76"
|
||||
- folder: channelf
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .rom
|
||||
- .zip
|
||||
core: lr-freechaf
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:46; os scriptmodules/libretrocores/lr-freechaf.sh:41"
|
||||
- folder: coco
|
||||
extensions:
|
||||
- .asc
|
||||
- .bas
|
||||
- .bin
|
||||
- .cas
|
||||
- .ccc
|
||||
- .dmk
|
||||
- .dsk
|
||||
- .jvc
|
||||
- .os9
|
||||
- .rom
|
||||
- .sna
|
||||
- .vdk
|
||||
- .wav
|
||||
core: xroar-cocous
|
||||
emulator: xroar-cocous
|
||||
source_ref: "os platforms.cfg:49; os scriptmodules/emulators/xroar.sh:59"
|
||||
- folder: coleco
|
||||
extensions:
|
||||
- .bin
|
||||
- .col
|
||||
- .rom
|
||||
- .zip
|
||||
core: lr-bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:52; os scriptmodules/libretrocores/lr-bluemsx.sh:42"
|
||||
- folder: crvision
|
||||
extensions:
|
||||
- .rom
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:57"
|
||||
- folder: daphne
|
||||
extensions:
|
||||
- .daphne
|
||||
- .ogv
|
||||
source_ref: "os platforms.cfg:60"
|
||||
- folder: dragon32
|
||||
extensions:
|
||||
- .asc
|
||||
- .bas
|
||||
- .bin
|
||||
- .cas
|
||||
- .ccc
|
||||
- .dmk
|
||||
- .dsk
|
||||
- .jvc
|
||||
- .os9
|
||||
- .rom
|
||||
- .sna
|
||||
- .vdk
|
||||
- .wav
|
||||
core: xroar-dragon32
|
||||
emulator: xroar-dragon32
|
||||
source_ref: "os platforms.cfg:63; os scriptmodules/emulators/xroar.sh:58"
|
||||
- folder: dreamcast
|
||||
extensions:
|
||||
- .cdi
|
||||
- .chd
|
||||
- .cue
|
||||
- .gdi
|
||||
- .m3u
|
||||
- .sh
|
||||
- .zip
|
||||
core: "reicast-audio-${backend}"
|
||||
emulator: "reicast-audio-${backend}"
|
||||
source_ref: "os platforms.cfg:66; os scriptmodules/emulators/reicast.sh:143"
|
||||
- folder: enterprise
|
||||
extensions:
|
||||
- '.128'
|
||||
- .bas
|
||||
- .com
|
||||
- .dsk
|
||||
- .dtf
|
||||
- .img
|
||||
- .tap
|
||||
- .trn
|
||||
- .wav
|
||||
core: lr-ep128emu
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:69; os scriptmodules/libretrocores/lr-ep128emu.sh:41"
|
||||
- folder: fba
|
||||
extensions:
|
||||
- .7z
|
||||
- .cue
|
||||
- .fba
|
||||
- .iso
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:72"
|
||||
- folder: fds
|
||||
extensions:
|
||||
- .7z
|
||||
- .fds
|
||||
- .nes
|
||||
- .zip
|
||||
core: lr-nestopia
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:76; os scriptmodules/libretrocores/lr-nestopia.sh:46"
|
||||
- folder: fm7
|
||||
extensions:
|
||||
- .2d
|
||||
- .d77
|
||||
- .d88
|
||||
- .t77
|
||||
core: xm7
|
||||
emulator: xm7
|
||||
source_ref: "os platforms.cfg:79; os scriptmodules/emulators/xm7.sh:66"
|
||||
- folder: gameandwatch
|
||||
extensions:
|
||||
- .mgw
|
||||
core: lr-gw
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:82; os scriptmodules/libretrocores/lr-gw.sh:41"
|
||||
- folder: gamegear
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gg
|
||||
- .sms
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:85"
|
||||
- folder: gb
|
||||
extensions:
|
||||
- .7z
|
||||
- .gb
|
||||
- .zip
|
||||
core: lr-gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:91; os scriptmodules/libretrocores/lr-gambatte.sh:49"
|
||||
- folder: gba
|
||||
extensions:
|
||||
- .7z
|
||||
- .gba
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:88"
|
||||
- folder: gbc
|
||||
extensions:
|
||||
- .7z
|
||||
- .gbc
|
||||
- .zip
|
||||
core: lr-gambatte
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:94; os scriptmodules/libretrocores/lr-gambatte.sh:50"
|
||||
- folder: gc
|
||||
extensions:
|
||||
- .ciso
|
||||
- .gcm
|
||||
- .gcz
|
||||
- .iso
|
||||
- .m3u
|
||||
- .rvz
|
||||
core: dolphin-gui
|
||||
emulator: dolphin-gui
|
||||
source_ref: "os platforms.cfg:97; os scriptmodules/emulators/dolphin.sh:83"
|
||||
- folder: intellivision
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .int
|
||||
- .itv
|
||||
- .rom
|
||||
- .zip
|
||||
core: jzintv
|
||||
emulator: jzintv
|
||||
source_ref: "os platforms.cfg:100; os scriptmodules/emulators/jzintv.sh:123"
|
||||
- folder: love
|
||||
extensions:
|
||||
- .love
|
||||
source_ref: "os platforms.cfg:103"
|
||||
- folder: macintosh
|
||||
extensions:
|
||||
- .dsk
|
||||
- .txt
|
||||
core: basilisk
|
||||
emulator: basilisk
|
||||
source_ref: "os platforms.cfg:106; os scriptmodules/emulators/basilisk.sh:56"
|
||||
- folder: mame
|
||||
extensions:
|
||||
- .7z
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:109"
|
||||
- folder: mame-advmame
|
||||
extensions:
|
||||
- .zip
|
||||
core: advmame
|
||||
emulator: advmame
|
||||
source_ref: "os platforms.cfg:114; os scriptmodules/emulators/advmame.sh:145"
|
||||
- folder: mame-libretro
|
||||
extensions:
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:119"
|
||||
- folder: mame-mame4all
|
||||
extensions:
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:124"
|
||||
- folder: mastersystem
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .sms
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:129"
|
||||
- folder: megadrive
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gen
|
||||
- .md
|
||||
- .sg
|
||||
- .smd
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:132"
|
||||
- folder: moto
|
||||
extensions:
|
||||
- .fd
|
||||
- .k7
|
||||
- .m5
|
||||
- .m7
|
||||
- .rom
|
||||
- .sap
|
||||
core: lr-theodore
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:140; os scriptmodules/libretrocores/lr-theodore.sh:43"
|
||||
- folder: msx
|
||||
extensions:
|
||||
- .cas
|
||||
- .col
|
||||
- .dsk
|
||||
- .m3u
|
||||
- .mx1
|
||||
- .mx2
|
||||
- .rom
|
||||
- .zip
|
||||
core: lr-bluemsx
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:137; os scriptmodules/libretrocores/lr-bluemsx.sh:39"
|
||||
- folder: n64
|
||||
extensions:
|
||||
- .n64
|
||||
- .v64
|
||||
- .z64
|
||||
- .zip
|
||||
core: mupen64plus-auto
|
||||
emulator: mupen64plus-auto
|
||||
source_ref: "os platforms.cfg:143; os scriptmodules/emulators/mupen64plus.sh:297"
|
||||
- folder: nds
|
||||
extensions:
|
||||
- .nds
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:146"
|
||||
- folder: neogeo
|
||||
extensions:
|
||||
- .7z
|
||||
- .chd
|
||||
- .cue
|
||||
- .fba
|
||||
- .iso
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:149"
|
||||
- folder: nes
|
||||
extensions:
|
||||
- .7z
|
||||
- .nes
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:152"
|
||||
- folder: ngp
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngp
|
||||
- .zip
|
||||
core: lr-beetle-ngp
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:155; os scriptmodules/libretrocores/lr-beetle-ngp.sh:45"
|
||||
- folder: ngpc
|
||||
extensions:
|
||||
- .7z
|
||||
- .ngc
|
||||
- .zip
|
||||
core: lr-beetle-ngp
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:158; os scriptmodules/libretrocores/lr-beetle-ngp.sh:45"
|
||||
- folder: np2pi
|
||||
extensions:
|
||||
- .2hd
|
||||
- .88d
|
||||
- .98d
|
||||
- .d88
|
||||
- .d98
|
||||
- .dup
|
||||
- .fdi
|
||||
- .hdd
|
||||
- .hdi
|
||||
- .hdm
|
||||
- .nhd
|
||||
- .tfd
|
||||
- .thd
|
||||
- .xdf
|
||||
source_ref: "os platforms.cfg:161"
|
||||
- folder: oric
|
||||
extensions:
|
||||
- .dsk
|
||||
- .tap
|
||||
source_ref: "os platforms.cfg:164"
|
||||
- folder: pc
|
||||
extensions:
|
||||
- .bat
|
||||
- .com
|
||||
- .conf
|
||||
- .cue
|
||||
- .dosz
|
||||
- .exe
|
||||
- .ima
|
||||
- .img
|
||||
- .ins
|
||||
- .iso
|
||||
- .m3u
|
||||
- .m3u8
|
||||
- .sh
|
||||
- .vhd
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:173"
|
||||
- folder: pc88
|
||||
extensions:
|
||||
- .cmt
|
||||
- .d88
|
||||
- .m3u
|
||||
- .t88
|
||||
core: quasi88
|
||||
emulator: quasi88
|
||||
source_ref: "os platforms.cfg:167; os scriptmodules/emulators/quasi88.sh:52"
|
||||
- folder: pc98
|
||||
extensions:
|
||||
- .2hd
|
||||
- .88d
|
||||
- .98d
|
||||
- .cmd
|
||||
- .d88
|
||||
- .d98
|
||||
- .dup
|
||||
- .fdd
|
||||
- .fdi
|
||||
- .hdd
|
||||
- .hdi
|
||||
- .hdm
|
||||
- .nhd
|
||||
- .tfd
|
||||
- .thd
|
||||
- .xdf
|
||||
- .zip
|
||||
core: lr-np2kai
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:170; os scriptmodules/libretrocores/lr-np2kai.sh:40"
|
||||
- folder: pcengine
|
||||
extensions:
|
||||
- .7z
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .pce
|
||||
- .zip
|
||||
core: lr-beetle-pce-fast
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:176; os scriptmodules/libretrocores/lr-beetle-pce-fast.sh:46"
|
||||
- folder: pcfx
|
||||
extensions:
|
||||
- .ccd
|
||||
- .chd
|
||||
- .cue
|
||||
- .iso
|
||||
- .pce
|
||||
core: lr-beetle-pcfx
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:180; os scriptmodules/libretrocores/lr-beetle-pcfx.sh:39"
|
||||
- folder: pico8
|
||||
extensions:
|
||||
- .p8
|
||||
- .png
|
||||
- .zip
|
||||
core: lr-retro8
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:183; os scriptmodules/libretrocores/lr-retro8.sh:40"
|
||||
- folder: pokemini
|
||||
extensions:
|
||||
- .min
|
||||
- .zip
|
||||
core: lr-pokemini
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:186; os scriptmodules/libretrocores/lr-pokemini.sh:39"
|
||||
- folder: ports
|
||||
extensions:
|
||||
- .sh
|
||||
source_ref: "os platforms.cfg:189"
|
||||
- folder: ps2
|
||||
extensions:
|
||||
- .bin
|
||||
- .bz2
|
||||
- .chd
|
||||
- .cso
|
||||
- .dump
|
||||
- .gz
|
||||
- .ima
|
||||
- .img
|
||||
- .iso
|
||||
- .mdf
|
||||
- .z
|
||||
- .z2
|
||||
core: pcsx2-nogui
|
||||
emulator: pcsx2-nogui
|
||||
source_ref: "os platforms.cfg:193; os scriptmodules/emulators/pcsx2.sh:78"
|
||||
- folder: psp
|
||||
extensions:
|
||||
- .chd
|
||||
- .cso
|
||||
- .iso
|
||||
- .pbp
|
||||
core: lr-ppsspp
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:196; os scriptmodules/libretrocores/lr-ppsspp.sh:65"
|
||||
- folder: psx
|
||||
extensions:
|
||||
- .cbn
|
||||
- .chd
|
||||
- .cue
|
||||
- .img
|
||||
- .iso
|
||||
- .m3u
|
||||
- .mdf
|
||||
- .pbp
|
||||
- .toc
|
||||
- .z
|
||||
- .znx
|
||||
source_ref: "os platforms.cfg:199"
|
||||
- folder: samcoupe
|
||||
extensions:
|
||||
- .dsk
|
||||
- .mgt
|
||||
- .sad
|
||||
- .sbt
|
||||
core: simcoupe
|
||||
emulator: simcoupe
|
||||
source_ref: "os platforms.cfg:202; os scriptmodules/emulators/simcoupe.sh:64"
|
||||
- folder: saturn
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .m3u
|
||||
- .mdf
|
||||
- .zip
|
||||
core: lr-beetle-saturn
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:205; os scriptmodules/libretrocores/lr-beetle-saturn.sh:40"
|
||||
- folder: scummvm
|
||||
extensions:
|
||||
- .sh
|
||||
- .svm
|
||||
core: scummvm
|
||||
emulator: scummvm
|
||||
source_ref: "os platforms.cfg:208; os scriptmodules/emulators/scummvm.sh:97"
|
||||
- folder: sega32x
|
||||
extensions:
|
||||
- .32x
|
||||
- .7z
|
||||
- .bin
|
||||
- .md
|
||||
- .smd
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:211"
|
||||
- folder: segacd
|
||||
extensions:
|
||||
- .chd
|
||||
- .cue
|
||||
- .iso
|
||||
- .m3u
|
||||
source_ref: "os platforms.cfg:214"
|
||||
- folder: sg-1000
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .sg
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:217"
|
||||
- folder: snes
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .bs
|
||||
- .fig
|
||||
- .mgd
|
||||
- .sfc
|
||||
- .smc
|
||||
- .swc
|
||||
- .zip
|
||||
core: lr-bsnes
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:220; os scriptmodules/libretrocores/lr-bsnes.sh:45"
|
||||
- folder: solarus
|
||||
extensions:
|
||||
- .solarus
|
||||
- .zip
|
||||
source_ref: "os platforms.cfg:223"
|
||||
- folder: ti99
|
||||
extensions:
|
||||
- .ctg
|
||||
core: ti99sim
|
||||
emulator: ti99sim
|
||||
source_ref: "os platforms.cfg:226; os scriptmodules/emulators/ti99sim.sh:53"
|
||||
- folder: tic80
|
||||
extensions:
|
||||
- .tic
|
||||
- .zip
|
||||
core: lr-tic80
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:229; os scriptmodules/libretrocores/lr-tic80.sh:48"
|
||||
- folder: trs-80
|
||||
extensions:
|
||||
- .dsk
|
||||
core: sdltrs-model1
|
||||
emulator: sdltrs-model1
|
||||
source_ref: "os platforms.cfg:232; os scriptmodules/emulators/sdltrs.sh:49"
|
||||
- folder: tvc
|
||||
extensions:
|
||||
- .cas
|
||||
- .dsk
|
||||
- .img
|
||||
- .tvcwav
|
||||
core: lr-ep128emu
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:235; os scriptmodules/libretrocores/lr-ep128emu.sh:41"
|
||||
- folder: vectrex
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .gam
|
||||
- .vec
|
||||
- .zip
|
||||
core: lr-vecx
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:238; os scriptmodules/libretrocores/lr-vecx.sh:61"
|
||||
- folder: videopac
|
||||
extensions:
|
||||
- .7z
|
||||
- .bin
|
||||
- .zip
|
||||
core: lr-o2em
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:241; os scriptmodules/libretrocores/lr-o2em.sh:40"
|
||||
- folder: virtualboy
|
||||
extensions:
|
||||
- .7z
|
||||
- .vb
|
||||
- .zip
|
||||
core: lr-beetle-vb
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:244; os scriptmodules/libretrocores/lr-beetle-vb.sh:42"
|
||||
- folder: wii
|
||||
extensions:
|
||||
- .ciso
|
||||
- .gcm
|
||||
- .gcz
|
||||
- .iso
|
||||
- .m3u
|
||||
- .rvz
|
||||
- .wad
|
||||
- .wbfs
|
||||
core: dolphin-gui
|
||||
emulator: dolphin-gui
|
||||
source_ref: "os platforms.cfg:247; os scriptmodules/emulators/dolphin.sh:85"
|
||||
- folder: wonderswan
|
||||
extensions:
|
||||
- .7z
|
||||
- .ws
|
||||
- .zip
|
||||
core: lr-beetle-wswan
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:250; os scriptmodules/libretrocores/lr-beetle-wswan.sh:46"
|
||||
- folder: wonderswancolor
|
||||
extensions:
|
||||
- .7z
|
||||
- .wsc
|
||||
- .zip
|
||||
core: lr-beetle-wswan
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:253; os scriptmodules/libretrocores/lr-beetle-wswan.sh:47"
|
||||
- folder: x1
|
||||
extensions:
|
||||
- .2d
|
||||
- .2hd
|
||||
- .88d
|
||||
- .cmd
|
||||
- .d88
|
||||
- .dup
|
||||
- .dx1
|
||||
- .hdm
|
||||
- .tfd
|
||||
- .xdf
|
||||
- .zip
|
||||
core: lr-x1
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:256; os scriptmodules/libretrocores/lr-x1.sh:40"
|
||||
- folder: x68000
|
||||
extensions:
|
||||
- .2hd
|
||||
- .d88
|
||||
- .dim
|
||||
- .hdf
|
||||
- .hdm
|
||||
- .m3u
|
||||
- .xdf
|
||||
core: px68k
|
||||
emulator: px68k
|
||||
source_ref: "os platforms.cfg:259; os scriptmodules/emulators/px68k.sh:61"
|
||||
- folder: zmachine
|
||||
extensions:
|
||||
- .dat
|
||||
- .z1
|
||||
- .z2
|
||||
- .z3
|
||||
- .z4
|
||||
- .z5
|
||||
- .z6
|
||||
- .z7
|
||||
- .z8
|
||||
- .zip
|
||||
core: frotz
|
||||
emulator: frotz
|
||||
source_ref: "os platforms.cfg:262; os scriptmodules/emulators/frotz.sh:52"
|
||||
- folder: zx81
|
||||
extensions:
|
||||
- .7z
|
||||
- .p
|
||||
- .t81
|
||||
- .tzx
|
||||
- .zip
|
||||
core: lr-81
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:265; os scriptmodules/libretrocores/lr-81.sh:40"
|
||||
- folder: zxspectrum
|
||||
extensions:
|
||||
- .7z
|
||||
- .dsk
|
||||
- .gz
|
||||
- .img
|
||||
- .mgt
|
||||
- .rzx
|
||||
- .scl
|
||||
- .sh
|
||||
- .sna
|
||||
- .szx
|
||||
- .tap
|
||||
- .trd
|
||||
- .tzx
|
||||
- .udi
|
||||
- .z80
|
||||
- .zip
|
||||
core: lr-fuse
|
||||
emulator: retroarch
|
||||
source_ref: "os platforms.cfg:268; os scriptmodules/libretrocores/lr-fuse.sh:44"
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,465 @@
|
||||
setup: romm
|
||||
name: RomM
|
||||
platform: romm
|
||||
sources:
|
||||
os:
|
||||
repo: "https://github.com/rommapp/romm"
|
||||
commit: 68f71259f7c6de39fbeedff9cc9ac114c18ee250
|
||||
tag: 5.4.0
|
||||
roms_root:
|
||||
path: /romm/library/roms
|
||||
from_bios: ../roms
|
||||
source_ref: "os backend/config/__init__.py:46-48; os backend/config/config_manager.py:57-58"
|
||||
case_sensitive: true
|
||||
skip:
|
||||
- name: assets
|
||||
source_ref: "os backend/config/config_manager.py:288-300"
|
||||
- name: __MACOSX
|
||||
source_ref: "os backend/config/config_manager.py:288-300"
|
||||
- name: System Volume Information
|
||||
source_ref: "os backend/config/config_manager.py:288-300"
|
||||
hidden:
|
||||
- pattern: .*
|
||||
source_ref: "os backend/handler/filesystem/roms_handler.py:530-545"
|
||||
- pattern: '*.db'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.tmp'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.bak'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.lock'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.log'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.cache'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- pattern: '*.crdownload'
|
||||
source_ref: "os backend/config/config_manager.py:267-276"
|
||||
- name: gamelist.xml
|
||||
source_ref: "os backend/config/config_manager.py:277-286"
|
||||
- name: metadata.pegasus.txt
|
||||
source_ref: "os backend/config/config_manager.py:277-286"
|
||||
media:
|
||||
- name: images
|
||||
source_ref: "os backend/config/config_manager.py:303-324"
|
||||
- name: covers
|
||||
source_ref: "os backend/config/config_manager.py:303-324"
|
||||
- name: manuals
|
||||
source_ref: "os backend/config/config_manager.py:303-324"
|
||||
- name: screenshots
|
||||
source_ref: "os backend/config/config_manager.py:303-324"
|
||||
- name: videos
|
||||
source_ref: "os backend/config/config_manager.py:303-324"
|
||||
notes:
|
||||
- "The default layout is roms/{platform}/{game} and bios/{platform} under /romm/library (os backend/config/config_manager.py:57-58).\
|
||||
\ config.yml can switch to {platform}/roms and {platform}/bios (os backend/config/config_manager.py:1121-1122)."
|
||||
- RomM has no extension allow-list. Every file is a ROM except the excluded extensions and names, and
|
||||
config.yml extends both lists.
|
||||
- "A folder is any IGDB or RomM platform slug. The rows are the slugs RomM plays in the browser (_EJS_CORES_MAP)\
|
||||
\ or keeps BIOS for (known_bios_files.json), and the core is the first EmulatorJS core listed."
|
||||
folders:
|
||||
- folder: 3do
|
||||
core: opera
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:406"
|
||||
- folder: 3ds
|
||||
core: azahar
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:494"
|
||||
note: core only with EmulatorJS nightly cores
|
||||
- folder: 64dd
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: acpc
|
||||
core: cap32
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:407"
|
||||
- folder: amiga
|
||||
core: puae
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:408"
|
||||
- folder: amiga-cd32
|
||||
core: puae
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:409"
|
||||
- folder: arcade
|
||||
core: mame2003_plus
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:410"
|
||||
- folder: atari-2600-plus
|
||||
core: stella2014
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:420"
|
||||
- folder: atari-lynx-mkii
|
||||
core: handy
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:434"
|
||||
- folder: atari-st
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: atari2600
|
||||
core: stella2014
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:419"
|
||||
- folder: atari5200
|
||||
core: a5200
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:421"
|
||||
- folder: atari7800
|
||||
core: prosystem
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:422"
|
||||
- folder: atari8bit
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: c-plus-4
|
||||
core: vice_xplus4
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:423"
|
||||
- folder: c128
|
||||
core: vice_x128
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:427"
|
||||
- folder: c64
|
||||
core: vice_x64sc
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:424"
|
||||
- folder: colecovision
|
||||
core: gearcoleco
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:429"
|
||||
- folder: commmodore-128
|
||||
core: vice_x128
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:428"
|
||||
- folder: commodore-64c
|
||||
core: vice_x64sc
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:426"
|
||||
- folder: cpet
|
||||
core: vice_xpet
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:425"
|
||||
- folder: dc
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: doom
|
||||
core: prboom
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:430"
|
||||
- folder: dos
|
||||
core: dosbox_pure
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:431"
|
||||
- folder: enterprise
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: fairchild-channel-f
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: famicom
|
||||
core: fceumm
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:438"
|
||||
- folder: fds
|
||||
core: fceumm
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:439"
|
||||
- folder: game-boy-adavance-sp
|
||||
core: mgba
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:452"
|
||||
- folder: game-boy-light
|
||||
core: gambatte
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:450"
|
||||
- folder: game-boy-micro
|
||||
core: mgba
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:453"
|
||||
- folder: game-boy-pocket
|
||||
core: gambatte
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:449"
|
||||
- folder: game-televisison
|
||||
core: fceumm
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:440"
|
||||
- folder: gamegear
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:461"
|
||||
- folder: gb
|
||||
core: gambatte
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:448"
|
||||
- folder: gba
|
||||
core: mgba
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:451"
|
||||
- folder: gbc
|
||||
core: gambatte
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:454"
|
||||
- folder: genesis
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:468"
|
||||
- folder: intellivision
|
||||
core: freeintv
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:496"
|
||||
note: core only with EmulatorJS nightly cores
|
||||
- folder: ique-player
|
||||
core: mupen64plus_next
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:443"
|
||||
- folder: j2me
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: jaguar
|
||||
core: virtualjaguar
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:432"
|
||||
- folder: lynx
|
||||
core: handy
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:433"
|
||||
- folder: mac
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: master-system-girl
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:467"
|
||||
- folder: master-system-super-compact
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:466"
|
||||
- folder: mega-pc
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:471"
|
||||
- folder: msx
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: msx2
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: n64
|
||||
core: mupen64plus_next
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:442"
|
||||
- folder: nds
|
||||
core: melonds
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:444"
|
||||
- folder: neo-geo-cd
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: neo-geo-pocket
|
||||
core: mednafen_ngp
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:435"
|
||||
- folder: neo-geo-pocket-color
|
||||
core: mednafen_ngp
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:436"
|
||||
- folder: neogeoaes
|
||||
core: fbneo
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:417"
|
||||
- folder: neogeomvs
|
||||
core: fbneo
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:418"
|
||||
- folder: nes
|
||||
core: fceumm
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:437"
|
||||
- folder: new-nintendo-3ds
|
||||
core: azahar
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:495"
|
||||
note: core only with EmulatorJS nightly cores
|
||||
- folder: new-style-nes
|
||||
core: fceumm
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:441"
|
||||
- folder: new-style-super-nes-model-sns-101
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:480"
|
||||
- folder: ngc
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: nintendo-ds-lite
|
||||
core: melonds
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:445"
|
||||
- folder: nintendo-dsi
|
||||
core: melonds
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:446"
|
||||
- folder: nintendo-dsi-xl
|
||||
core: melonds
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:447"
|
||||
- folder: odyssey-2-slash-videopac-g7000
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: pc-9800-series
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: pc-fx
|
||||
core: mednafen_pcfx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:455"
|
||||
- folder: philips-cd-i
|
||||
core: same_cdi
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:457"
|
||||
- folder: pokemon-mini
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: ps2
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: psp
|
||||
core: ppsspp
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:458"
|
||||
- folder: psx
|
||||
core: pcsx_rearmed
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:456"
|
||||
- folder: satellaview
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: saturn
|
||||
core: yabause
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:474"
|
||||
- folder: scummvm
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: sega-game-box-9
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:464"
|
||||
- folder: sega-mark-iii
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:463"
|
||||
- folder: sega-master-system-ii
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:465"
|
||||
- folder: sega-mega-drive-2-slash-genesis
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:469"
|
||||
- folder: sega-mega-jet
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:470"
|
||||
- folder: sega-nomad
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:473"
|
||||
- folder: sega32
|
||||
core: picodrive
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:460"
|
||||
- folder: segacd
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:459"
|
||||
- folder: sfam
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:476"
|
||||
- folder: sharp-x68000
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: sms
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:462"
|
||||
- folder: snes
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:475"
|
||||
- folder: sufami-turbo
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: super-famicom-jr-model-shvc-101
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:479"
|
||||
- folder: super-famicom-shvc-001
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:478"
|
||||
- folder: super-gb
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: super-nintendo-original-european-version
|
||||
core: snes9x
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:477"
|
||||
- folder: supergrafx
|
||||
core: mednafen_pce
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:483"
|
||||
- folder: swancrystal
|
||||
core: mednafen_wswan
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:487"
|
||||
- folder: tera-drive
|
||||
core: genesis_plus_gx
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:472"
|
||||
- folder: tg16
|
||||
core: mednafen_pce
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:481"
|
||||
- folder: turbografx-cd
|
||||
core: mednafen_pce
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:482"
|
||||
- folder: tvc
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: vic-20
|
||||
core: vice_xvic
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:484"
|
||||
- folder: videopac-g7400
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: virtualboy
|
||||
core: beetle_vb
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:485"
|
||||
- folder: wolfenstein
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: wonderswan
|
||||
core: mednafen_wswan
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:486"
|
||||
- folder: wonderswan-color
|
||||
core: mednafen_wswan
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:488"
|
||||
- folder: x1
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: xbox
|
||||
source_ref: os backend/models/fixtures/known_bios_files.json
|
||||
note: no EmulatorJS core, RomM keeps BIOS for it
|
||||
- folder: zxs
|
||||
core: fuse
|
||||
emulator: emulatorjs
|
||||
source_ref: "os frontend/src/utils/index.ts:489"
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://abdess.github.io/retrobios/api/v1/schemas/romfolders.schema.json",
|
||||
"title": "RetroBIOS rom folders of one setup",
|
||||
"description": "What a frontend's own source says about its game folders, read at pinned revisions (platforms/romfolders/<setup>.yml, written by python -m scripts.scraper.romfolders). Names are the OS's own: scripts/romfolders.py resolves them to repository systems and profiles.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["setup", "name", "platform", "sources", "roms_root", "case_sensitive", "folders"],
|
||||
"$defs": {
|
||||
"ref": {
|
||||
"type": "string",
|
||||
"description": "'<source key> <path>:<line>[-<line>]', several joined by '; '. The key names an entry of sources.",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]* \\S+(?:; [a-z0-9][a-z0-9-]* \\S+)*$"
|
||||
},
|
||||
"named_rule": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["source_ref"],
|
||||
"properties": {
|
||||
"name": { "type": "string", "minLength": 1 },
|
||||
"pattern": { "type": "string", "minLength": 1 },
|
||||
"reason": { "type": "string", "minLength": 1 },
|
||||
"source_ref": { "$ref": "#/$defs/ref" }
|
||||
},
|
||||
"oneOf": [{ "required": ["name"] }, { "required": ["pattern"] }]
|
||||
},
|
||||
"board_default": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["core", "source_ref"],
|
||||
"properties": {
|
||||
"core": { "type": "string", "minLength": 1 },
|
||||
"emulator": { "type": "string", "minLength": 1 },
|
||||
"source_ref": { "$ref": "#/$defs/ref" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"setup": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
|
||||
"name": { "type": "string", "minLength": 1 },
|
||||
"platform": {
|
||||
"type": "string",
|
||||
"description": "The install manifest (install/<platform>.json) the installer uses on this setup, as install.py's OS rules choose it. Empty for a setup the installer lays out with no manifest."
|
||||
},
|
||||
"sources": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["repo", "commit"],
|
||||
"properties": {
|
||||
"repo": { "type": "string", "pattern": "^https://" },
|
||||
"commit": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
|
||||
"tag": { "type": "string" },
|
||||
"note": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"roms_root": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["path", "from_bios", "source_ref"],
|
||||
"properties": {
|
||||
"path": { "type": ["string", "null"], "minLength": 1, "description": "Null for a setup with no rom folder of its own." },
|
||||
"from_bios": {
|
||||
"type": ["string", "null"],
|
||||
"description": "The roms root relative to the BIOS folder the installer already knows. Null when no fixed relation exists."
|
||||
},
|
||||
"source_ref": { "$ref": "#/$defs/ref" }
|
||||
}
|
||||
},
|
||||
"case_sensitive": {
|
||||
"type": ["boolean", "null"],
|
||||
"description": "Whether the OS opens a folder only under the spelling it lists. Null when the source does not settle it (filesystem dependent)."
|
||||
},
|
||||
"case_ref": { "$ref": "#/$defs/ref" },
|
||||
"skip": {
|
||||
"type": "array",
|
||||
"description": "Folders under the roms root the scan never enters (the ELEC family's bios folder, the OS's own data).",
|
||||
"items": { "$ref": "#/$defs/named_rule" }
|
||||
},
|
||||
"hidden": {
|
||||
"type": "array",
|
||||
"description": "File and folder name patterns (fnmatch, case-insensitive) the OS hides from its game list.",
|
||||
"items": { "$ref": "#/$defs/named_rule" }
|
||||
},
|
||||
"media": {
|
||||
"type": "array",
|
||||
"description": "Folders inside a system folder that hold artwork, never games.",
|
||||
"items": { "$ref": "#/$defs/named_rule" }
|
||||
},
|
||||
"notes": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
||||
"folders": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["folder", "source_ref"],
|
||||
"properties": {
|
||||
"folder": { "type": "string", "minLength": 1, "description": "Path under the roms root, as the OS writes it." },
|
||||
"name": { "type": "string", "minLength": 1, "description": "The OS's own system id when it differs from the folder." },
|
||||
"aliases": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true },
|
||||
"extensions": {
|
||||
"type": "array",
|
||||
"description": "Lowercased, with the dot. Absent when the OS lists every file.",
|
||||
"items": { "type": "string", "pattern": "^\\.[^A-Z\\s]+$" },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"core": { "type": "string", "minLength": 1, "description": "The core or emulator the OS starts by default, in its own spelling." },
|
||||
"emulator": { "type": "string", "minLength": 1 },
|
||||
"source_ref": { "$ref": "#/$defs/ref" },
|
||||
"board_defaults": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "$ref": "#/$defs/board_default" }
|
||||
},
|
||||
"arcade": { "type": "boolean" },
|
||||
"note": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2677,6 +2677,75 @@ SYSTEM_ALIASES: dict[str, str] = {
|
||||
"cps2": "capcom-cps2",
|
||||
"cps3": "capcom-cps3",
|
||||
"pgm": "igs-pgm",
|
||||
# Rom folder names the setups of platforms/romfolders/ give a machine,
|
||||
# each proven by the source_ref of the folder row that names it: the
|
||||
# short tags of Onion, CrossMix-OS, Koriki and the MinUI family, the
|
||||
# number words of Koriki and plumOS, the region and hack folders of
|
||||
# ES-DE, the MSU-1 folders of the ES family, the arcade cores named as
|
||||
# folders.
|
||||
"a2600": "atari-2600",
|
||||
"atari2600": "atari-2600",
|
||||
"fiftytwohundred": "atari-5200",
|
||||
"seventyeighthundred": "atari-7800",
|
||||
"atarixegs": "xegs",
|
||||
"atarijaguarcd": "atari-jaguarcd",
|
||||
"fc": "nintendo-nes",
|
||||
"nesh": "nintendo-nes",
|
||||
"sfc": "nintendo-snes",
|
||||
"supa": "nintendo-snes",
|
||||
"snesh": "nintendo-snes",
|
||||
"snesna": "nintendo-snes",
|
||||
"snesmsu1": "nintendo-snes",
|
||||
"snes-msu1": "nintendo-snes",
|
||||
"msu1": "nintendo-snes",
|
||||
"vb": "nintendo-virtualboy",
|
||||
"gc": "nintendo-gamecube",
|
||||
"gbh": "nintendo-gb",
|
||||
"gb2players": "nintendo-gb",
|
||||
"gbch": "nintendo-gbc",
|
||||
"gbc2players": "nintendo-gbc",
|
||||
"gbah": "nintendo-gba",
|
||||
"mgba": "nintendo-gba",
|
||||
"poke": "nintendo-pokemon-mini",
|
||||
"pkm": "nintendo-pokemon-mini",
|
||||
"md": "sega-megadrive",
|
||||
"genh": "sega-megadrive",
|
||||
"megadriveh": "sega-megadrive",
|
||||
"megadrivejp": "sega-megadrive",
|
||||
"megadrive-japan": "sega-megadrive",
|
||||
"msumd": "sega-megadrive",
|
||||
"mdmsu": "sega-megadrive",
|
||||
"ms": "sega-mastersystem",
|
||||
"mark3": "sega-mastersystem",
|
||||
"gamegearh": "sega-gamegear",
|
||||
"megacdjp": "sega-megacd",
|
||||
"saturnjp": "sega-saturn",
|
||||
"sega32xjp": "sega-32x",
|
||||
"sega32xna": "sega-32x",
|
||||
"thirtytwox": "sega-32x",
|
||||
"segasgone": "sega-sg1000",
|
||||
"ps": "sony-playstation",
|
||||
"pce": "nec-pc-engine",
|
||||
"tg16cd": "nec-pc-engine-cd",
|
||||
"tg-cd": "nec-pc-engine-cd",
|
||||
"turbografxcd": "nec-pc-engine-cd",
|
||||
"neocd": "snk-neogeo-cd",
|
||||
"ngcd": "snk-neogeo-cd",
|
||||
"neogeocdjp": "snk-neogeo-cd",
|
||||
"supervision": "watara-supervision",
|
||||
"cplus4": "commodore-plus4",
|
||||
"cpet": "commodore-pet",
|
||||
"cpc": "amstrad-cpc",
|
||||
"to8": "thomson-to8",
|
||||
"tic": "tic80",
|
||||
"fba": "arcade",
|
||||
"hbmame": "arcade",
|
||||
"advmame": "arcade",
|
||||
"mame-advmame": "arcade",
|
||||
"mame2000": "arcade",
|
||||
"mame2003": "arcade",
|
||||
"mame2003plus": "arcade",
|
||||
"mame2010": "arcade",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
"""Rom folders of each setup: where its games live and what each folder holds.
|
||||
|
||||
`platforms/romfolders/<setup>.yml` records what a frontend's own source says
|
||||
about its game folders, read at a pinned revision: the roms root relative to
|
||||
the BIOS folder, each folder with the system name the OS gives it, the
|
||||
extensions it lists and the core it starts by default. Those files hold the
|
||||
OS's facts only. Which repository system a folder is, and which profile its
|
||||
core is, is decided here, through the one alias table in common.py
|
||||
(`SYSTEM_ALIASES`, `_norm_system_id`) and the profiles' `cores:` lists, so a
|
||||
change to either reaches every setup without a rescrape.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
|
||||
from common import (
|
||||
_norm_system_id,
|
||||
list_registered_platforms,
|
||||
load_emulator_profiles,
|
||||
load_platform_config,
|
||||
native_layer,
|
||||
preferred_profile,
|
||||
upstream_profile_index,
|
||||
)
|
||||
from safeparse import yaml_load
|
||||
|
||||
ROMFOLDERS_DIR = Path("platforms") / "romfolders"
|
||||
SOURCES_DIR = ROMFOLDERS_DIR / "_sources"
|
||||
|
||||
# "<source key> <path>:<line>[-<line>]", several joined by "; ".
|
||||
_REF_PART = re.compile(r"^(?P<key>[a-z0-9][a-z0-9-]*) (?P<path>\S+?)(?::(?P<lines>\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*))?$")
|
||||
|
||||
|
||||
def split_refs(source_ref: str) -> list[tuple[str, str, str | None]]:
|
||||
"""Each (source key, path, lines) a source_ref names, or ValueError."""
|
||||
parts: list[tuple[str, str, str | None]] = []
|
||||
for raw in source_ref.split("; "):
|
||||
match = _REF_PART.match(raw.strip())
|
||||
if not match:
|
||||
raise ValueError(f"source_ref part {raw!r} is not '<source> <path>:<line>'")
|
||||
parts.append((match["key"], match["path"], match["lines"]))
|
||||
return parts
|
||||
|
||||
|
||||
def setup_paths(directory: Path = ROMFOLDERS_DIR) -> list[Path]:
|
||||
"""The setup files of a directory, without the sources file."""
|
||||
return sorted(p for p in Path(directory).glob("*.yml") if not p.name.startswith("_"))
|
||||
|
||||
|
||||
def load_setup(path: Path) -> dict:
|
||||
with Path(path).open(encoding="utf-8") as handle:
|
||||
return yaml_load(handle)
|
||||
|
||||
|
||||
def load_setups(directory: Path = ROMFOLDERS_DIR) -> dict[str, dict]:
|
||||
"""Every setup document of a directory, keyed by its `setup:` id."""
|
||||
return {doc["setup"]: doc for doc in (load_setup(p) for p in setup_paths(directory))}
|
||||
|
||||
|
||||
@dataclass
|
||||
class Resolution:
|
||||
"""What a folder resolved to, and how."""
|
||||
|
||||
systems: list[str]
|
||||
basis: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class SystemResolver:
|
||||
"""Folder and system names to repository system ids.
|
||||
|
||||
The universe is every system a profile or a platform file names. A name
|
||||
resolves, in this order, as one of those ids, as a name a platform's own
|
||||
file gives a system (`native_system`, the folder Batocera calls `psx`),
|
||||
or through `_norm_system_id`, which applies SYSTEM_ALIASES then drops the
|
||||
maker prefix and separators. A name nothing matches stays unresolved:
|
||||
a new abbreviation goes into SYSTEM_ALIASES, never into a table here.
|
||||
|
||||
Ids that normalize alike are one machine spelled several ways
|
||||
(`sega-megadrive`, `sega-mega-drive`, `mega-drive`). Each class answers
|
||||
with one canonical id, the spelling most profiles use, and
|
||||
`equivalents()` gives the whole class back to whoever matches a
|
||||
profile's `systems:` or a manifest's `systems`.
|
||||
"""
|
||||
|
||||
ids: set[str]
|
||||
profile_use: dict[str, int]
|
||||
native: dict[str, dict[str, set[str]]]
|
||||
by_norm: dict[str, set[str]] = field(default_factory=dict)
|
||||
canonical_of: dict[str, str] = field(default_factory=dict)
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
for sid in self.ids:
|
||||
self.by_norm.setdefault(_norm_system_id(sid), set()).add(sid)
|
||||
for members in self.by_norm.values():
|
||||
best = min(members, key=lambda s: (-self.profile_use.get(s, 0), -len(s), s))
|
||||
for sid in members:
|
||||
self.canonical_of[sid] = best
|
||||
|
||||
@classmethod
|
||||
def from_repo(
|
||||
cls, emulators_dir: str = "emulators", platforms_dir: str = "platforms"
|
||||
) -> SystemResolver:
|
||||
profiles = load_emulator_profiles(emulators_dir)
|
||||
use: dict[str, int] = {}
|
||||
for profile in profiles.values():
|
||||
for sid in profile.get("systems") or []:
|
||||
use[str(sid)] = use.get(str(sid), 0) + 1
|
||||
ids = set(use)
|
||||
native: dict[str, dict[str, set[str]]] = {}
|
||||
for platform in list_registered_platforms(platforms_dir, include_archived=True):
|
||||
config = load_platform_config(platform, platforms_dir)
|
||||
ids.update(config.get("systems", {}))
|
||||
names: dict[str, set[str]] = {}
|
||||
for sys_id, system in (native_layer(config) or {}).get("systems", {}).items():
|
||||
for entry in system.get("files", []):
|
||||
name = entry.get("native_system")
|
||||
if isinstance(name, str) and name.strip():
|
||||
names.setdefault(name.strip().lower(), set()).add(sys_id)
|
||||
native[platform] = names
|
||||
return cls(ids=ids, profile_use=use, native=native)
|
||||
|
||||
def canonical(self, sid: str) -> str:
|
||||
return self.canonical_of.get(sid, sid)
|
||||
|
||||
def equivalents(self, sid: str) -> set[str]:
|
||||
"""Every id spelling the same machine as sid, sid included."""
|
||||
return set(self.by_norm.get(_norm_system_id(sid), ())) | {sid}
|
||||
|
||||
def _answer(self, found: set[str], basis: str) -> Resolution:
|
||||
return Resolution(sorted({self.canonical(s) for s in found}), basis)
|
||||
|
||||
def resolve(self, names: list[str], platform: str = "") -> Resolution:
|
||||
"""The systems the first name that resolves designates."""
|
||||
for name in names:
|
||||
if not name:
|
||||
continue
|
||||
lowered = name.strip().lower()
|
||||
if lowered in self.ids:
|
||||
return self._answer({lowered}, "id")
|
||||
own = self.native.get(platform, {}).get(lowered)
|
||||
if own and len(own) == 1:
|
||||
return self._answer(own, f"native name of {platform}")
|
||||
norm = self.by_norm.get(_norm_system_id(lowered))
|
||||
if norm:
|
||||
return self._answer(norm, "normalized id")
|
||||
claimed = [
|
||||
(plat, owners) for plat, table in sorted(self.native.items())
|
||||
if (owners := table.get(lowered)) and len(owners) == 1
|
||||
]
|
||||
if claimed:
|
||||
plat, owners = claimed[0]
|
||||
return self._answer(owners, f"native name of {plat}")
|
||||
return Resolution([], "unresolved")
|
||||
|
||||
|
||||
@dataclass
|
||||
class ProfileResolver:
|
||||
"""An OS's core name to the repository profile that documents it."""
|
||||
|
||||
index: dict[str, set[str]]
|
||||
|
||||
@classmethod
|
||||
def from_repo(cls, emulators_dir: str = "emulators") -> ProfileResolver:
|
||||
return cls(upstream_profile_index(load_emulator_profiles(emulators_dir)))
|
||||
|
||||
def resolve(self, core: str | None) -> str | None:
|
||||
if not core:
|
||||
return None
|
||||
# RetroPie names a libretro package lr-<core> (scriptmodules/libretrocores).
|
||||
bare = core.removeprefix("lr-")
|
||||
spellings = (core, core.lower(), bare, bare.replace("-", "_"), bare.lower().replace("-", "_"))
|
||||
for name in dict.fromkeys(spellings):
|
||||
found = preferred_profile(self.index, name)
|
||||
if found:
|
||||
return found
|
||||
return None
|
||||
|
||||
|
||||
_TAG = re.compile(r"\(([^()]+)\)\s*$")
|
||||
|
||||
|
||||
def folder_names(row: dict) -> list[str]:
|
||||
"""The names a folder row is known by, the OS's system name first.
|
||||
|
||||
A folder named for people and tagged for the frontend, `Sony PlayStation
|
||||
(PS)` on CrossMix-OS, is also known by its tag.
|
||||
"""
|
||||
names = [row.get("name") or "", row["folder"], *(row.get("aliases") or [])]
|
||||
names += [m.group(1).strip() for n in list(names) if (m := _TAG.search(n))]
|
||||
return [n for n in dict.fromkeys(names) if n]
|
||||
@@ -0,0 +1,193 @@
|
||||
"""Scrape each setup's rom folders from its own source, at a pinned revision.
|
||||
|
||||
`platforms/romfolders/_sources/<setup>.yml` names the repositories and
|
||||
the commits to read, the format of the system list, and the facts a parser
|
||||
cannot read from a table (roms root, case rule, folders the OS never scans),
|
||||
each with its `source_ref`. A format parser reads the system list and returns
|
||||
one row per folder. The setup file it writes carries the OS's own names only:
|
||||
`scripts/romfolders.py` resolves them to repository systems and profiles.
|
||||
|
||||
Every fetch goes through `upstream.fetch_file`, cached by revision, so a
|
||||
second run reads nothing from the network and writes the same bytes.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib
|
||||
import pkgutil
|
||||
import sys
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
_SCRIPTS_DIR = str(Path(__file__).resolve().parents[2])
|
||||
if _SCRIPTS_DIR not in sys.path:
|
||||
sys.path.insert(0, _SCRIPTS_DIR)
|
||||
|
||||
import upstream # noqa: E402
|
||||
from safeparse import yaml_load # noqa: E402
|
||||
|
||||
CACHE_DIR = upstream.CACHE_DIR
|
||||
|
||||
# Keys a setup file carries, in the order they are written.
|
||||
SETUP_KEYS = (
|
||||
"setup", "name", "platform", "sources", "roms_root", "case_sensitive",
|
||||
"case_ref", "skip", "hidden", "media", "notes", "folders",
|
||||
)
|
||||
ROW_KEYS = (
|
||||
"folder", "name", "aliases", "extensions", "core", "emulator", "source_ref",
|
||||
"board_defaults", "arcade", "note",
|
||||
)
|
||||
|
||||
|
||||
class SourceError(RuntimeError):
|
||||
"""A pinned file is absent, or its content no longer has the shape read."""
|
||||
|
||||
|
||||
@dataclass
|
||||
class Fetcher:
|
||||
"""Reads pinned files of one setup's declared sources."""
|
||||
|
||||
sources: dict[str, dict]
|
||||
cache_dir: str = CACHE_DIR
|
||||
offline: bool = False
|
||||
|
||||
def _repo(self, key: str) -> tuple[upstream.Repo, str]:
|
||||
if key not in self.sources:
|
||||
raise SourceError(f"source {key!r} is not declared")
|
||||
spec = self.sources[key]
|
||||
repo = upstream.parse_repo(spec["repo"])
|
||||
if repo is None:
|
||||
raise SourceError(f"source {key!r}: unsupported forge {spec['repo']}")
|
||||
return repo, spec["commit"]
|
||||
|
||||
def text(self, key: str, path: str) -> str:
|
||||
"""One file at the pinned commit, or SourceError when absent."""
|
||||
repo, sha = self._repo(key)
|
||||
lines = upstream.fetch_file(repo, sha, path, self.cache_dir, self.offline)
|
||||
if lines is None:
|
||||
raise SourceError(f"{repo.slug}@{sha[:8]}:{path} does not exist")
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
def optional_text(self, key: str, path: str) -> str | None:
|
||||
repo, sha = self._repo(key)
|
||||
lines = upstream.fetch_file(repo, sha, path, self.cache_dir, self.offline)
|
||||
return None if lines is None else "\n".join(lines) + "\n"
|
||||
|
||||
def tree(self, key: str, prefix: str = "") -> list[str]:
|
||||
"""Every blob path under a prefix at the pinned commit."""
|
||||
repo, sha = self._repo(key)
|
||||
if repo.family == "gitlab" and prefix.strip("/"):
|
||||
return self._gitlab_subtree(repo, sha, prefix)
|
||||
paths, truncated = upstream.list_tree(repo, sha, self.cache_dir, self.offline)
|
||||
if truncated:
|
||||
raise SourceError(f"{repo.slug}@{sha[:8]}: the forge truncated the tree")
|
||||
return sorted(p for p in paths if p.startswith(prefix))
|
||||
|
||||
def entries(self, key: str, directory: str) -> list[str]:
|
||||
"""Paths of the files and folders directly under one directory."""
|
||||
repo, sha = self._repo(key)
|
||||
if repo.family != "gitlab":
|
||||
prefix = directory.strip("/") + "/"
|
||||
return sorted({prefix + p[len(prefix):].split("/", 1)[0] for p in self.tree(key, prefix)})
|
||||
return self._gitlab_listing(repo, sha, directory, recursive=False, blobs=False)
|
||||
|
||||
def _gitlab_subtree(self, repo: upstream.Repo, sha: str, prefix: str) -> list[str]:
|
||||
"""GitLab pages its tree 100 entries at a time and Recalbox's whole
|
||||
tree outruns the page cap: list only the directory asked for."""
|
||||
paths = self._gitlab_listing(repo, sha, prefix, recursive=True, blobs=True)
|
||||
return sorted(p for p in paths if p.startswith(prefix))
|
||||
|
||||
def _gitlab_listing(
|
||||
self, repo: upstream.Repo, sha: str, directory: str, *, recursive: bool, blobs: bool
|
||||
) -> list[str]:
|
||||
directory = directory.strip("/")
|
||||
paths: list[str] = []
|
||||
for page in range(1, upstream.MAX_TREE_PAGES + 1):
|
||||
url = (
|
||||
f"{repo.api_base}/projects/{upstream._project(repo)}/repository/tree"
|
||||
f"?ref={sha}&path={directory}&recursive={'true' if recursive else 'false'}"
|
||||
f"&per_page={upstream.TREE_PAGE_SIZE}&page={page}"
|
||||
)
|
||||
payload = upstream._api(url, self.cache_dir, self.offline)
|
||||
if not isinstance(payload, list):
|
||||
raise SourceError(f"{repo.slug}@{sha[:8]}: {directory} could not be listed")
|
||||
paths.extend(
|
||||
entry["path"] for entry in payload
|
||||
if isinstance(entry, dict) and entry.get("path")
|
||||
and (entry.get("type") == "blob" or not blobs)
|
||||
)
|
||||
if len(payload) < upstream.TREE_PAGE_SIZE:
|
||||
return sorted(paths)
|
||||
raise SourceError(f"{repo.slug}@{sha[:8]}: {directory} outruns the page cap")
|
||||
|
||||
|
||||
Parser = Callable[[dict, Fetcher], list[dict]]
|
||||
FORMATS: dict[str, Parser] = {}
|
||||
|
||||
|
||||
def register(name: str) -> Callable[[Parser], Parser]:
|
||||
def wrap(func: Parser) -> Parser:
|
||||
if name in FORMATS:
|
||||
raise ValueError(f"format {name!r} registered twice")
|
||||
FORMATS[name] = func
|
||||
return func
|
||||
|
||||
return wrap
|
||||
|
||||
|
||||
def load_formats() -> dict[str, Parser]:
|
||||
"""Import every parser module of this package once."""
|
||||
if not FORMATS:
|
||||
for info in pkgutil.iter_modules([str(Path(__file__).parent)]):
|
||||
if not info.name.startswith("_"):
|
||||
importlib.import_module(f"{__name__}.{info.name}")
|
||||
return FORMATS
|
||||
|
||||
|
||||
def load_sources(directory: Path) -> dict[str, dict]:
|
||||
"""Each setup's declared sources and facts, keyed by its file name."""
|
||||
out: dict[str, dict] = {}
|
||||
for path in sorted(Path(directory).glob("*.yml")):
|
||||
with path.open(encoding="utf-8") as handle:
|
||||
out[path.stem] = yaml_load(handle) or {}
|
||||
return out
|
||||
|
||||
|
||||
def _clean_row(row: dict) -> dict:
|
||||
unknown = set(row) - set(ROW_KEYS)
|
||||
if unknown:
|
||||
raise ValueError(f"folder {row.get('folder')!r}: unknown keys {sorted(unknown)}")
|
||||
out = {key: row[key] for key in ROW_KEYS if row.get(key) not in (None, [], {}, "")}
|
||||
if out.get("name") == out["folder"]:
|
||||
del out["name"]
|
||||
if "extensions" in out:
|
||||
out["extensions"] = sorted({e.lower() for e in out["extensions"]})
|
||||
if "aliases" in out:
|
||||
out["aliases"] = sorted(set(out["aliases"]) - {out["folder"]})
|
||||
if not out["aliases"]:
|
||||
del out["aliases"]
|
||||
return out
|
||||
|
||||
|
||||
def scrape_setup(setup: str, spec: dict, fetcher: Fetcher) -> dict:
|
||||
"""The setup document: declared facts, then the parsed folders."""
|
||||
formats = load_formats()
|
||||
fmt = spec.get("format")
|
||||
rows: list[dict] = []
|
||||
if fmt:
|
||||
if fmt not in formats:
|
||||
raise SourceError(f"{setup}: no parser for format {fmt!r}")
|
||||
rows = formats[fmt](spec, fetcher)
|
||||
if not rows and not spec.get("allow_empty"):
|
||||
raise SourceError(f"{setup}: format {fmt} read no folder")
|
||||
folders: dict[str, dict] = {}
|
||||
for row in rows:
|
||||
clean = _clean_row(row)
|
||||
key = clean["folder"]
|
||||
if key in folders:
|
||||
raise SourceError(f"{setup}: folder {key!r} read twice")
|
||||
folders[key] = clean
|
||||
doc = {"setup": setup, **{k: spec[k] for k in SETUP_KEYS[1:-1] if k in spec}}
|
||||
doc["folders"] = [folders[k] for k in sorted(folders, key=lambda f: (f.lower(), f))]
|
||||
return doc
|
||||
@@ -0,0 +1,71 @@
|
||||
"""Write platforms/romfolders/<setup>.yml from each setup's pinned source.
|
||||
|
||||
python -m scripts.scraper.romfolders --all
|
||||
python -m scripts.scraper.romfolders --setup batocera --dry-run
|
||||
python -m scripts.scraper.romfolders --all --offline # cache only
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
|
||||
from . import Fetcher, SourceError, load_sources, scrape_setup
|
||||
from ..base_scraper import _PlatformDumper
|
||||
|
||||
DEFAULT_DIR = Path("platforms") / "romfolders"
|
||||
|
||||
|
||||
def dump_setup(doc: dict) -> str:
|
||||
return yaml.dump(
|
||||
doc, Dumper=_PlatformDumper, sort_keys=False, allow_unicode=True, width=100
|
||||
)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(allow_abbrev=False, description=__doc__.splitlines()[0])
|
||||
which = parser.add_mutually_exclusive_group(required=True)
|
||||
which.add_argument("--setup", action="append", help="setup id (repeatable)")
|
||||
which.add_argument("--all", action="store_true", help="every setup of the sources file")
|
||||
which.add_argument("--list", action="store_true", help="list the setups and their format")
|
||||
parser.add_argument("--sources", type=Path, default=DEFAULT_DIR / "_sources")
|
||||
parser.add_argument("--output-dir", type=Path, default=DEFAULT_DIR)
|
||||
parser.add_argument("--offline", action="store_true", help="read the revision cache only")
|
||||
parser.add_argument("--dry-run", action="store_true", help="print counts, write nothing")
|
||||
args = parser.parse_args()
|
||||
|
||||
sources = load_sources(args.sources)
|
||||
if args.list:
|
||||
for setup, spec in sources.items():
|
||||
print(f"{setup:16} {spec.get('format') or '-':14} {spec.get('name', '')}")
|
||||
return 0
|
||||
wanted = list(sources) if args.all else args.setup
|
||||
unknown = [s for s in wanted if s not in sources]
|
||||
if unknown:
|
||||
print(f"Error: unknown setup(s): {', '.join(unknown)}", file=sys.stderr)
|
||||
return 2
|
||||
failed = 0
|
||||
for setup in wanted:
|
||||
spec = sources[setup]
|
||||
fetcher = Fetcher(spec.get("sources", {}), offline=args.offline)
|
||||
try:
|
||||
doc = scrape_setup(setup, spec, fetcher)
|
||||
except (SourceError, ValueError, KeyError, OSError) as exc:
|
||||
print(f"FAIL {setup}: {exc}", file=sys.stderr)
|
||||
failed += 1
|
||||
continue
|
||||
print(f"{setup}: {len(doc['folders'])} folders")
|
||||
if not args.dry_run:
|
||||
args.output_dir.mkdir(parents=True, exist_ok=True)
|
||||
target = args.output_dir / f"{setup}.yml"
|
||||
text = dump_setup(doc)
|
||||
if not target.exists() or target.read_text(encoding="utf-8") != text:
|
||||
target.write_text(text, encoding="utf-8")
|
||||
return 1 if failed else 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,628 @@
|
||||
"""Rom folder parsers for handheld card OSes and the frontends without a menu.
|
||||
|
||||
Each parser reads the system list the OS ships at the pinned commit and
|
||||
returns one row per folder, in the OS's own spelling:
|
||||
|
||||
- `onion`: Onion's optional packages, `Emu/<SYS>/config.json` and the
|
||||
`launch.sh` beside it. RetroArch-section packages (`RApp/`) add cores on the
|
||||
same folder, the stock menu starts the `Emu/` one.
|
||||
- `spruce`: spruceOS `Emu/<SYS>/config.json`, `default_emulator`.
|
||||
- `crossmix`: CrossMix-OS `Emus/<SYS>/config.json`, first `launchlist` entry
|
||||
with a script, as `load_launcher.sh` picks it.
|
||||
- `koriki`: SimpleMenu section groups, first launcher of `execs`.
|
||||
- `allium`: Allium `consoles.toml`, first entry of `cores`.
|
||||
- `minui`: MinUI, MyMinUI and NextUI paks. A Roms folder starts the pak named
|
||||
by the text in its last parentheses (`getEmuName`), so the folder of a row
|
||||
is the one the skeleton ships, else the tag alone.
|
||||
- `plumos`: plumOS `systems.json`, `directory_aliases` by priority.
|
||||
- `muos`: muOS `core.json`, every `friendly` name of a system.
|
||||
- `gmenu2x`: MiyooCFW, the folders its image ships and the gmenu2x links
|
||||
whose text a repository holds.
|
||||
- `mister`: MiSTer, one `games/<core>/` folder per core the distribution ships.
|
||||
- `romm`: RomM, one library folder per platform slug it plays or keeps BIOS for.
|
||||
- `bizhawk`: BizHawk's per-system base folders.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
from collections.abc import Iterable
|
||||
from configparser import ConfigParser
|
||||
from pathlib import PurePosixPath
|
||||
|
||||
from . import Fetcher, SourceError, register
|
||||
|
||||
_LIBRETRO = re.compile(r"([A-Za-z0-9_+.\-${}]+?)_libretro\.so")
|
||||
_EMU_EXE = re.compile(r"^\s*EMU_EXE=[\"']?([A-Za-z0-9_+.\-]+)", re.M)
|
||||
|
||||
|
||||
def line_of(text: str, needle: str, start: int = 0) -> int:
|
||||
"""1-based line of the first needle at or after start, 0 when absent."""
|
||||
idx = text.find(needle, start)
|
||||
return text.count("\n", 0, idx) + 1 if idx >= 0 else 0
|
||||
|
||||
|
||||
def ref(key: str, path: str, line: int | str | None = None) -> str:
|
||||
"""A source_ref part. A space in a path is written %20, as in a URL:
|
||||
the ref grammar ends a path at the first space."""
|
||||
path = path.replace("%", "%25").replace(" ", "%20")
|
||||
return f"{key} {path}:{line}" if line else f"{key} {path}"
|
||||
|
||||
|
||||
def extensions(raw: str | Iterable[str] | None) -> list[str]:
|
||||
"""Lowercased extensions with the dot, from a list or a `|`/`,` string."""
|
||||
items = re.split(r"[|,]", raw) if isinstance(raw, str) else list(raw or [])
|
||||
out: list[str] = []
|
||||
for item in items:
|
||||
ext = str(item).strip().lower().lstrip(".")
|
||||
if ext and f".{ext}" not in out:
|
||||
out.append(f".{ext}")
|
||||
return out
|
||||
|
||||
|
||||
def _shell_value(script: str, name: str) -> str | None:
|
||||
match = re.search(rf"^\s*{re.escape(name)}=[\"']?([A-Za-z0-9_+.\-]+)", script, re.M)
|
||||
return match.group(1) if match else None
|
||||
|
||||
|
||||
def libretro_core(script: str) -> str | None:
|
||||
"""The core a launch script names: `<core>_libretro.so`, a shell variable
|
||||
assigned in the same script, or `EMU_EXE=`."""
|
||||
for match in _LIBRETRO.finditer(script):
|
||||
name = match.group(1).split("/")[-1]
|
||||
if "$" not in name:
|
||||
return name
|
||||
var = re.fullmatch(r"\$\{?(\w+)\}?", name)
|
||||
if var:
|
||||
value = _shell_value(script, var.group(1))
|
||||
if value:
|
||||
return value
|
||||
exe = _EMU_EXE.search(script)
|
||||
return exe.group(1) if exe else None
|
||||
|
||||
|
||||
def _json(fetcher: Fetcher, key: str, path: str) -> tuple[dict, str]:
|
||||
text = fetcher.text(key, path)
|
||||
try:
|
||||
return json.loads(text), text
|
||||
except ValueError as exc:
|
||||
raise SourceError(f"{path}: {exc}") from exc
|
||||
|
||||
|
||||
def _rompath_folder(rompath: str) -> str:
|
||||
"""The folder under Roms/ a stock-menu config.json points at."""
|
||||
path = rompath.strip().replace("\\", "/")
|
||||
for prefix in ("../../Roms/", "/mnt/SDCARD/Roms/"):
|
||||
if path.startswith(prefix):
|
||||
return path[len(prefix):].strip("/")
|
||||
raise SourceError(f"rompath {rompath!r} is not under Roms/")
|
||||
|
||||
|
||||
# Onion
|
||||
|
||||
@register("onion")
|
||||
def parse_onion(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
pattern = re.compile(r"^static/packages/(Emu|RApp)/([^/]+)/\1/([^/]+)/config\.json$")
|
||||
packages: dict[str, list[dict]] = {}
|
||||
for path in fetcher.tree(key, "static/packages/"):
|
||||
match = pattern.match(path)
|
||||
if not match:
|
||||
continue
|
||||
layer, package = match.group(1), match.group(2)
|
||||
config, text = _json(fetcher, key, path)
|
||||
script_path = f"{path.rsplit('/', 1)[0]}/{config.get('launch', 'launch.sh')}"
|
||||
script = fetcher.optional_text(key, script_path) or ""
|
||||
packages.setdefault(_rompath_folder(config.get("rompath", "")), []).append({
|
||||
"layer": layer, "package": package, "config": config,
|
||||
"core": libretro_core(script), "ref": ref(key, path, line_of(text, '"rompath"')),
|
||||
"script": script_path,
|
||||
})
|
||||
rows = []
|
||||
for folder, found in packages.items():
|
||||
found.sort(key=lambda p: (p["layer"] != "Emu", p["package"]))
|
||||
emu = [p for p in found if p["layer"] == "Emu"]
|
||||
first = emu[0] if emu else found[0]
|
||||
others = [p["package"] for p in found if p is not first]
|
||||
row = {
|
||||
"folder": folder,
|
||||
"extensions": extensions(first["config"].get("extlist")),
|
||||
"source_ref": first["ref"],
|
||||
}
|
||||
if emu:
|
||||
row["core"] = first["core"]
|
||||
row["emulator"] = "retroarch" if first["core"] else "standalone"
|
||||
note = f"package '{first['package']}' (Emu/, the stock menu entry)"
|
||||
if not first["core"]:
|
||||
note += f", launches {first['script']}"
|
||||
else:
|
||||
note = "only RetroArch-section packages (RApp/), the user picks the core"
|
||||
if others:
|
||||
note += f". Other packages on this folder: {', '.join(others)}"
|
||||
row["note"] = note
|
||||
rows.append(row)
|
||||
return rows
|
||||
|
||||
|
||||
# spruceOS
|
||||
|
||||
@register("spruce")
|
||||
def parse_spruce(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
skip = set(params.get("skip", []))
|
||||
rows = []
|
||||
for path in fetcher.tree(key, "Emu/"):
|
||||
parts = path.split("/")
|
||||
if len(parts) != 3 or parts[2] != "config.json" or parts[1] in skip:
|
||||
continue
|
||||
config, text = _json(fetcher, key, path)
|
||||
notes = []
|
||||
if config.get("devices"):
|
||||
notes.append(f"only on devices {', '.join(map(str, config['devices']))}")
|
||||
if config.get("ignoreList"):
|
||||
notes.append(f"ignoreList {', '.join(map(str, config['ignoreList']))}")
|
||||
rows.append({
|
||||
"folder": parts[1],
|
||||
"aliases": [str(a) for a in config.get("alternativeFolderNames") or []],
|
||||
"extensions": extensions(config.get("extlist")),
|
||||
"core": config.get("default_emulator"),
|
||||
"source_ref": ref(key, path, line_of(text, '"default_emulator"') or 1),
|
||||
"note": ". ".join(notes),
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# CrossMix-OS
|
||||
|
||||
@register("crossmix")
|
||||
def parse_crossmix(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
rows = []
|
||||
for path in fetcher.tree(key, "Emus/"):
|
||||
parts = path.split("/")
|
||||
if len(parts) != 3 or parts[2] != "config.json" or parts[1].startswith("_"):
|
||||
continue
|
||||
config, text = _json(fetcher, key, path)
|
||||
launchers = [e for e in config.get("launchlist") or [] if e.get("launch")]
|
||||
script_name = launchers[0]["launch"] if launchers else config.get("launch", "launch.sh")
|
||||
script_path = f"Emus/{parts[1]}/{script_name}"
|
||||
script = fetcher.optional_text(key, script_path) or ""
|
||||
core = libretro_core(script)
|
||||
note = f"default launcher {launchers[0].get('name') if launchers else script_name} ({script_path})"
|
||||
folder = _rompath_folder(config.get("rompath", ""))
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": parts[1] if parts[1] != folder else None,
|
||||
"extensions": extensions(config.get("extlist")),
|
||||
"core": core,
|
||||
"emulator": "retroarch" if core else "standalone",
|
||||
"source_ref": ref(key, path, line_of(text, '"rompath"') or 1),
|
||||
"note": note if core else f"{note}, names no libretro core",
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# Koriki
|
||||
|
||||
@register("koriki")
|
||||
def parse_koriki(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
path = params["sections"]
|
||||
text = fetcher.text(key, path)
|
||||
parser = ConfigParser(interpolation=None, strict=False)
|
||||
parser.optionxform = str # type: ignore[assignment]
|
||||
parser.read_string(text)
|
||||
skip = set(params.get("skip", []))
|
||||
rows = []
|
||||
for section in parser.sections():
|
||||
if section in skip:
|
||||
continue
|
||||
body = parser[section]
|
||||
dirs = [d.strip() for d in body.get("romDirs", "").split(",") if d.strip()]
|
||||
if not dirs:
|
||||
continue
|
||||
rel = [d.replace(params["roms_prefix"], "").strip("/") for d in dirs]
|
||||
execs = [PurePosixPath(e.strip()).name for e in body.get("execs", "").split(",") if e.strip()]
|
||||
core = None
|
||||
if execs:
|
||||
launcher = fetcher.optional_text(key, f"{params['launchers']}/{execs[0]}")
|
||||
core = libretro_core(launcher or "")
|
||||
note = f"launchers {', '.join(execs)}"
|
||||
if len(rel) > 1 or "/" in rel[0]:
|
||||
note += f". romDirs {', '.join(rel)}"
|
||||
rows.append({
|
||||
"folder": rel[0].split("/")[0],
|
||||
"name": section,
|
||||
"extensions": extensions(body.get("romExts")),
|
||||
"core": core or (execs[0] if execs else None),
|
||||
"emulator": "retroarch" if core else "standalone",
|
||||
"source_ref": ref(key, path, line_of(text, f"[{section}]")),
|
||||
"note": note,
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# Allium
|
||||
|
||||
_TOML_KEY = r'(?:"[^"]*"|[A-Za-z0-9_\-]+)'
|
||||
|
||||
|
||||
def _toml_value(raw: str) -> object:
|
||||
raw = raw.strip()
|
||||
if raw.startswith('"') and raw.endswith('"'):
|
||||
return raw[1:-1]
|
||||
if raw.startswith("["):
|
||||
return re.findall(r'"([^"]*)"', raw)
|
||||
if raw in ("true", "false"):
|
||||
return raw == "true"
|
||||
if re.fullmatch(r"-?\d+", raw):
|
||||
return int(raw)
|
||||
raise SourceError(f"TOML value {raw!r} is outside the subset Allium's files use")
|
||||
|
||||
|
||||
def parse_toml_subset(text: str) -> dict:
|
||||
"""The TOML Allium writes: `[[array]]`, `[a.b]` tables, string, integer,
|
||||
boolean and string-array values, arrays that may span lines. Anything
|
||||
else is refused rather than guessed. Each table records the line it
|
||||
starts on under `__line__`."""
|
||||
root: dict = {}
|
||||
current: dict = root
|
||||
lines = text.splitlines()
|
||||
i = 0
|
||||
while i < len(lines):
|
||||
line = lines[i].split("#", 1)[0].strip() if '"' not in lines[i] else lines[i].strip()
|
||||
i += 1
|
||||
if not line or line.startswith("#"):
|
||||
continue
|
||||
if line.startswith("[["):
|
||||
name = line.strip("[]").strip()
|
||||
current = {"__line__": i}
|
||||
root.setdefault(name, []).append(current)
|
||||
continue
|
||||
if line.startswith("["):
|
||||
current = root
|
||||
for part in re.findall(_TOML_KEY, line.strip("[]")):
|
||||
current = current.setdefault(part.strip('"'), {})
|
||||
current["__line__"] = i
|
||||
continue
|
||||
match = re.match(rf"({_TOML_KEY})\s*=\s*(.*)$", line)
|
||||
if not match:
|
||||
raise SourceError(f"TOML line {i}: {line!r} is outside the subset Allium's files use")
|
||||
value = match.group(2)
|
||||
while value.count("[") > value.count("]") and i < len(lines):
|
||||
value += lines[i].strip()
|
||||
i += 1
|
||||
current[match.group(1).strip('"')] = _toml_value(value)
|
||||
return root
|
||||
|
||||
|
||||
@register("allium")
|
||||
def parse_allium(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
consoles = parse_toml_subset(fetcher.text(key, params["consoles"]))["consoles"]
|
||||
cores = parse_toml_subset(fetcher.text(key, params["cores"])).get("cores", {})
|
||||
rows = []
|
||||
for console in consoles:
|
||||
patterns = [str(p) for p in console.get("patterns") or []]
|
||||
if not patterns:
|
||||
continue
|
||||
first = (console.get("cores") or [None])[0]
|
||||
core_def = cores.get(first, {}) if first else {}
|
||||
core = core_def.get("retroarch") if isinstance(core_def, dict) else None
|
||||
rows.append({
|
||||
"folder": patterns[0],
|
||||
"name": console["name"],
|
||||
"aliases": patterns[1:],
|
||||
"extensions": extensions(console.get("extensions")),
|
||||
"core": core or first,
|
||||
"emulator": "retroarch" if core else "standalone",
|
||||
"source_ref": ref(key, params["consoles"], console["__line__"]),
|
||||
"note": "a folder named any pattern, or ending in '(<pattern>)', is this console. A file's own extension wins over its folder",
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# MinUI, MyMinUI, NextUI
|
||||
|
||||
_PAK = re.compile(r"^skeleton/(?:[^/]+/)+(?:Emus|paks/Emus)/(?:[^/]+/)?([^/]+)\.pak/launch\.sh$")
|
||||
|
||||
|
||||
def _pak_device(path: str) -> str:
|
||||
"""The device directory a pak sits under (`Emus/<device>/X.pak`,
|
||||
`SYSTEM/<device>/paks/Emus/X.pak`)."""
|
||||
parts = path.split("/")
|
||||
if "paks" in parts:
|
||||
return parts[parts.index("paks") - 1]
|
||||
idx = parts.index("Emus")
|
||||
return parts[idx + 1] if not parts[idx + 1].endswith(".pak") else parts[1]
|
||||
|
||||
|
||||
@register("minui")
|
||||
def parse_minui(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
tree = fetcher.tree(key, "skeleton/")
|
||||
shipped: dict[str, str] = {}
|
||||
for path in tree:
|
||||
match = re.match(r"^skeleton/[^/]+/Roms/([^/]+)/", path)
|
||||
if match:
|
||||
name = match.group(1)
|
||||
tag = re.search(r"\(([^()]*)\)\s*$", name)
|
||||
shipped.setdefault(tag.group(1) if tag else name, name)
|
||||
paks: dict[str, dict[str, tuple[str, str]]] = {}
|
||||
for path in tree:
|
||||
match = _PAK.match(path)
|
||||
if not match:
|
||||
continue
|
||||
script = fetcher.text(key, path)
|
||||
core = libretro_core(script)
|
||||
line = line_of(script, "EMU_EXE=") or line_of(script, "_libretro.so") or 1
|
||||
paks.setdefault(match.group(1), {})[_pak_device(path)] = (core or "", ref(key, path, line))
|
||||
rows = []
|
||||
for tag, devices in sorted(paks.items()):
|
||||
counts: dict[str, int] = {}
|
||||
for core, _ in devices.values():
|
||||
counts[core] = counts.get(core, 0) + 1
|
||||
core = min(counts, key=lambda c: (-counts[c], c == "", c))
|
||||
default_ref = next(r for c, r in sorted(devices.values()) if c == core)
|
||||
boards = {
|
||||
device: {"core": c, "source_ref": r}
|
||||
for device, (c, r) in sorted(devices.items()) if c != core and c
|
||||
}
|
||||
folder = shipped.get(tag, tag)
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": tag,
|
||||
"aliases": [tag] if folder != tag else [],
|
||||
"core": core or None,
|
||||
"emulator": "minarch" if core else "standalone",
|
||||
"source_ref": default_ref,
|
||||
"board_defaults": boards,
|
||||
"note": (f"any folder named {tag} or ending in '({tag})' starts {tag}.pak. "
|
||||
f"Devices: {', '.join(sorted(devices))}"),
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# plumOS
|
||||
|
||||
@register("plumos")
|
||||
def parse_plumos(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
text = fetcher.text(key, params["path"])
|
||||
systems = json.loads(text)["systems"]
|
||||
taken: dict[str, str] = {}
|
||||
rows = []
|
||||
pos = 0
|
||||
for system in systems:
|
||||
needle = f'"id": "{system["id"]}"'
|
||||
line = line_of(text, needle, pos)
|
||||
pos = max(pos, text.find(needle, pos) + 1)
|
||||
aliases = [a["name"] for a in sorted(system.get("directory_aliases") or [],
|
||||
key=lambda a: a.get("priority", 0))]
|
||||
free = [a for a in aliases if a not in taken]
|
||||
if not free:
|
||||
continue
|
||||
folder = free[0]
|
||||
taken[folder] = system["id"]
|
||||
kind, _, core = (system.get("default_launch_profile") or "").partition(":")
|
||||
notes = [] if system.get("enabled") else ["disabled by default"]
|
||||
shared = [f"{a} (also {taken[a]})" for a in aliases if a in taken and taken[a] != system["id"]]
|
||||
if shared:
|
||||
notes.append(f"shares {', '.join(shared)}, the extension decides")
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": system["id"],
|
||||
"aliases": [a for a in aliases if a != folder],
|
||||
"extensions": extensions(system.get("extensions")),
|
||||
"core": core or None,
|
||||
"emulator": kind or None,
|
||||
"source_ref": ref(key, params["path"], line),
|
||||
"note": ". ".join(notes),
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# muOS
|
||||
|
||||
def _muos_norm(name: str) -> str:
|
||||
"""The key muOS looks a folder up by (common.c: lowercase, drop ' -_+')."""
|
||||
return re.sub(r"[ \-_+]", "", name.lower())
|
||||
|
||||
|
||||
@register("muos")
|
||||
def parse_muos(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
text = fetcher.text(key, params["path"])
|
||||
data = json.loads(text)
|
||||
rows = []
|
||||
for system, entry in data.items():
|
||||
friendly = [str(f) for f in entry.get("friendly") or []]
|
||||
if not friendly:
|
||||
continue
|
||||
want = _muos_norm(entry.get("catalogue") or system)
|
||||
folder = next((f for f in friendly if f == want), friendly[0])
|
||||
default = entry.get("default")
|
||||
libretro = entry.get("libretro") or {}
|
||||
so = (libretro.get(default) or {}).get("core") if default in libretro else None
|
||||
core = so[: -len("_libretro.so")] if so and so.endswith("_libretro.so") else default
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": system,
|
||||
"aliases": friendly,
|
||||
"core": core,
|
||||
"emulator": "retroarch" if so else "external",
|
||||
"source_ref": ref(key, params["path"], line_of(text, json.dumps(system) + ":")),
|
||||
"note": "a folder matches when its name, lowercased without ' -_+', is one of the friendly names",
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# MiyooCFW
|
||||
|
||||
@register("gmenu2x")
|
||||
def parse_gmenu2x(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
rows: dict[str, dict] = {}
|
||||
for link in params.get("links", []):
|
||||
text = fetcher.text(link["source"], link["path"])
|
||||
fields = dict(
|
||||
line.split("=", 1) for line in text.splitlines() if "=" in line
|
||||
)
|
||||
selector = fields.get("selectordir", "").rstrip("/")
|
||||
prefix = params["link_roms_prefix"]
|
||||
if not selector.startswith(prefix):
|
||||
raise SourceError(f"{link['path']}: selectordir {selector!r} is not under {prefix}")
|
||||
folder = selector[len(prefix):].strip("/")
|
||||
rows[folder] = {
|
||||
"folder": folder,
|
||||
"extensions": extensions(fields.get("selectorfilter")),
|
||||
"core": link["core"],
|
||||
"emulator": "standalone",
|
||||
"source_ref": ref(link["source"], link["path"], line_of(text, "selectordir=")),
|
||||
"note": f"gmenu2x link of the {link['core']} package",
|
||||
}
|
||||
key = params["source"]
|
||||
for path in fetcher.tree(key, params["shipped_roms"] + "/"):
|
||||
folder = path[len(params["shipped_roms"]) + 1:].split("/")
|
||||
if len(folder) < 2 or folder[0] in rows:
|
||||
continue
|
||||
rows[folder[0]] = {
|
||||
"folder": folder[0],
|
||||
"source_ref": ref(key, f"{params['shipped_roms']}/{folder[0]}"),
|
||||
"note": "folder the image ships. Its emulator link lives in a release package no repository holds",
|
||||
}
|
||||
return list(rows.values())
|
||||
|
||||
|
||||
# MiSTer
|
||||
|
||||
@register("mister")
|
||||
def parse_mister(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
arcade = set(params.get("arcade", []))
|
||||
folders = sorted({p.split("/")[1] for p in fetcher.tree(key, "games/") if p.count("/") >= 2})
|
||||
return [
|
||||
{
|
||||
"folder": folder,
|
||||
"emulator": "mister-core",
|
||||
"source_ref": ref(key, f"games/{folder}/"),
|
||||
"arcade": folder in arcade or None,
|
||||
"note": params["arcade_note"] if folder in arcade else None,
|
||||
}
|
||||
for folder in folders
|
||||
if folder not in params.get("skip", [])
|
||||
]
|
||||
|
||||
|
||||
# RomM
|
||||
|
||||
@register("romm")
|
||||
def parse_romm(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
text = fetcher.text(key, params["cores_map"])
|
||||
lines = text.splitlines()
|
||||
maps: dict[str, dict[str, tuple[list[str], int]]] = {}
|
||||
block = None
|
||||
entry = None
|
||||
for number, line in enumerate(lines, 1):
|
||||
start = re.match(r"const (_EJS_(?:NIGHTLY_)?CORES_MAP)\b", line)
|
||||
if start:
|
||||
block = start.group(1)
|
||||
continue
|
||||
if block and line.startswith("}"):
|
||||
block = None
|
||||
continue
|
||||
if not block:
|
||||
continue
|
||||
head = re.match(r'\s+"?([\w-]+)"?:\s*\[(.*)$', line)
|
||||
if head:
|
||||
entry = (head.group(1), number)
|
||||
maps.setdefault(block, {})[entry[0]] = (re.findall(r'"([\w-]+)"', head.group(2)), number)
|
||||
if "]" in head.group(2):
|
||||
entry = None
|
||||
elif entry:
|
||||
maps[block][entry[0]][0].extend(re.findall(r'"([\w-]+)"', line))
|
||||
if "]" in line:
|
||||
entry = None
|
||||
stable = maps.get("_EJS_CORES_MAP", {})
|
||||
nightly = maps.get("_EJS_NIGHTLY_CORES_MAP", {})
|
||||
if not stable:
|
||||
raise SourceError(f"{params['cores_map']}: _EJS_CORES_MAP not found")
|
||||
bios = json.loads(fetcher.text(key, params["bios_fixture"]))
|
||||
bios_slugs = {name.split(":", 1)[0] for name in bios}
|
||||
rows = []
|
||||
for slug in sorted(set(stable) | set(nightly) | bios_slugs):
|
||||
found = stable.get(slug) or nightly.get(slug)
|
||||
if found:
|
||||
note = None if slug in stable else "core only with EmulatorJS nightly cores"
|
||||
rows.append({"folder": slug, "core": found[0][0], "emulator": "emulatorjs",
|
||||
"source_ref": ref(key, params["cores_map"], found[1]), "note": note})
|
||||
else:
|
||||
rows.append({"folder": slug, "source_ref": ref(key, params["bios_fixture"]),
|
||||
"note": "no EmulatorJS core, RomM keeps BIOS for it"})
|
||||
return rows
|
||||
|
||||
|
||||
# BizHawk
|
||||
|
||||
@register("bizhawk")
|
||||
def parse_bizhawk(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params["source"]
|
||||
entries = fetcher.text(key, params["paths"])
|
||||
loader = fetcher.text(key, params["rom_loader"])
|
||||
config = fetcher.text(key, params["config"])
|
||||
combined = {
|
||||
m.group(1): re.findall(r"VSystemID\.Raw\.(\w+)", m.group(2))
|
||||
for m in re.finditer(r"string (COMBINED_SYSIDS_\w+) = string\.Join\(\"_\", ([^)]*)\)", entries)
|
||||
}
|
||||
ext_fields: dict[str, tuple[list[str], int]] = {}
|
||||
for number, line in enumerate(loader.splitlines(), 1):
|
||||
clean = re.sub(r"/\*.*?\*/", "", line)
|
||||
match = re.search(r"IReadOnlyCollection<string> (\w+) = new\[\] \{ (.*?) \}", clean)
|
||||
if match:
|
||||
ext_fields[match.group(1)] = (re.findall(r'"([^"]+)"', match.group(2)), number)
|
||||
preferred: dict[str, str] = {}
|
||||
picker = config[config.find("CorePickerUIData"):]
|
||||
for match in re.finditer(r"\(\[([^\]]+)\],\s*\[\s*CoreNames\.(\w+)", picker):
|
||||
for sid in re.findall(r"VSystemID\.Raw\.(\w+)", match.group(1)):
|
||||
preferred.setdefault(sid, match.group(2))
|
||||
rows = []
|
||||
for number, line in enumerate(entries.splitlines(), 1):
|
||||
match = re.search(
|
||||
r"CommonEntriesFor\((?:VSystemID\.Raw\.(\w+)|(COMBINED_SYSIDS_\w+)), "
|
||||
r"basePath: Path\.Combine\(\"\.\", \"([^\"]+)\"\)", line)
|
||||
if not match:
|
||||
continue
|
||||
sids = [match.group(1)] if match.group(1) else combined.get(match.group(2), [])
|
||||
exts: list[str] = []
|
||||
refs = [ref(key, params["paths"], number)]
|
||||
for sid in sids:
|
||||
if sid in ext_fields:
|
||||
exts.extend(ext_fields[sid][0])
|
||||
refs.append(ref(key, params["rom_loader"], ext_fields[sid][1]))
|
||||
cores = [preferred[s] for s in sids if s in preferred]
|
||||
note = "the open dialog starts here, nothing is scanned"
|
||||
if cores:
|
||||
note += f". Default core {cores[0]} (CorePickerUIData, CoreNames[0])"
|
||||
rows.append({
|
||||
"folder": match.group(3),
|
||||
"name": sids[0] if sids else None,
|
||||
"aliases": sids[1:],
|
||||
"extensions": extensions(exts),
|
||||
"emulator": "EmuHawk",
|
||||
"source_ref": "; ".join(refs),
|
||||
"note": note,
|
||||
})
|
||||
return rows
|
||||
@@ -0,0 +1,781 @@
|
||||
"""EmulationStation family: the system lists each OS builds its menu from.
|
||||
|
||||
Every parser returns one row per folder under the roms root, with the
|
||||
extensions the list accepts, the core the OS starts by default and the
|
||||
line of the list that says so. Systems the list keeps outside the roms root
|
||||
(an absolute path elsewhere) or marks as no game system are left out: the
|
||||
installer never scans them.
|
||||
|
||||
Formats, by the shape of the source:
|
||||
|
||||
- `batocera-es`: es_systems.yml plus configgen-defaults.yml and its per-board
|
||||
files (Batocera, KNULLI).
|
||||
- `es-xml`: a static es_systems.cfg (AmberELEC, CHAos, PAN4ELEC, ArkOS,
|
||||
dArkOS, RetroBat).
|
||||
- `es-json`: EmuELEC's es_systems.json, turned into the XML at build time.
|
||||
- `elec-conf`: config/emulators/<system>.conf plus the add_emu_core and
|
||||
add_es_system calls of the emulators package (ROCKNIX, JELOS, KOLOS,
|
||||
UnofficialOS, ArchR).
|
||||
- `esde`: ES-DE's es_systems.xml, with the alternative emulators and custom
|
||||
systems an installer writes over it (EmuDeck, RetroDECK).
|
||||
- `recalbox`: one system.ini per system (Recalbox).
|
||||
- `retropie`: platforms.cfg and the addEmulator calls of the scriptmodules.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import shlex
|
||||
from collections.abc import Iterator
|
||||
|
||||
from safeparse import parse_untrusted_xml, yaml_load_upstream
|
||||
|
||||
from . import Fetcher, SourceError, register
|
||||
|
||||
|
||||
def _ref(key: str, path: str, *lines: int | str | None) -> str:
|
||||
kept = [str(n) for n in lines if n not in (None, "")]
|
||||
return f"{key} {path}:{','.join(kept)}" if kept else f"{key} {path}"
|
||||
|
||||
|
||||
def _board(core: str | None, emulator: str | None, source_ref: str) -> dict:
|
||||
out = {"core": core or emulator, "emulator": emulator, "source_ref": source_ref}
|
||||
return {k: str(v) for k, v in out.items() if v}
|
||||
|
||||
|
||||
def _top_key_lines(text: str) -> dict[str, int]:
|
||||
"""First line of each top-level YAML key."""
|
||||
out: dict[str, int] = {}
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
match = re.match(r"^([A-Za-z0-9_+.\-]+):", line)
|
||||
if match:
|
||||
out.setdefault(match.group(1), number)
|
||||
return out
|
||||
|
||||
|
||||
def _strip_prefix(path: str, prefixes: list[str]) -> str | None:
|
||||
"""The folder under the roms root, or None for a path outside it."""
|
||||
for prefix in prefixes:
|
||||
if path.startswith(prefix):
|
||||
rest = path[len(prefix):].strip("/\\")
|
||||
return rest.replace("\\", "/") or None
|
||||
return None
|
||||
|
||||
|
||||
def _extensions(raw: str | list | None) -> list[str]:
|
||||
words = raw.split() if isinstance(raw, str) else [str(w) for w in raw or []]
|
||||
return [w if w.startswith(".") else f".{w}" for w in words if w]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Batocera and KNULLI
|
||||
|
||||
|
||||
def _yaml_or_link(fetcher: Fetcher, key: str, directory: str, name: str) -> tuple[dict, str, str]:
|
||||
"""A configgen file, following a git symlink the raw route serves as text."""
|
||||
path = f"{directory}/{name}"
|
||||
text = fetcher.text(key, path)
|
||||
data = yaml_load_upstream(text)
|
||||
if isinstance(data, str) and data.strip().endswith(".yml"):
|
||||
path = f"{directory}/{data.strip()}"
|
||||
text = fetcher.text(key, path)
|
||||
data = yaml_load_upstream(text)
|
||||
if not isinstance(data, dict):
|
||||
raise SourceError(f"{path} is not a mapping")
|
||||
return data, text, path
|
||||
|
||||
|
||||
@register("batocera-es")
|
||||
def batocera_es(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""es_systems.yml read the way batocera-es-system writes the XML.
|
||||
|
||||
A system with no emulator and no `force` is never written
|
||||
(es_systems.py `_system_dict_to_xml`), `path` defaults to the key and an
|
||||
absolute path leaves the roms root. The default core is configgen's:
|
||||
the board file first, then configgen-defaults.yml (shared.py
|
||||
ConfiggenDefaults.get).
|
||||
"""
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
es_path = params["es_systems"]
|
||||
es_text = fetcher.text(key, es_path)
|
||||
systems = yaml_load_upstream(es_text)
|
||||
if not isinstance(systems, dict):
|
||||
raise SourceError(f"{es_path} is not a mapping")
|
||||
es_lines = _top_key_lines(es_text)
|
||||
directory = params["configgen_dir"]
|
||||
defaults, def_text, def_path = _yaml_or_link(fetcher, key, directory, "configgen-defaults.yml")
|
||||
def_lines = _top_key_lines(def_text)
|
||||
boards: dict[str, tuple[dict, dict[str, int], str]] = {}
|
||||
for path in fetcher.tree(key, f"{directory}/configgen-defaults-"):
|
||||
name = path.rsplit("/", 1)[-1]
|
||||
if not name.endswith(".yml"):
|
||||
continue
|
||||
data, text, real = _yaml_or_link(fetcher, key, directory, name)
|
||||
boards[name[len("configgen-defaults-"):-len(".yml")]] = (data, _top_key_lines(text), real)
|
||||
rows: list[dict] = []
|
||||
for name, system in systems.items():
|
||||
if not isinstance(system, dict):
|
||||
continue
|
||||
if not system.get("emulators") and not system.get("force"):
|
||||
continue
|
||||
path = system.get("path", name)
|
||||
if not path or str(path).startswith("/"):
|
||||
continue
|
||||
base = defaults.get(name) or {}
|
||||
emulator, core = base.get("emulator"), base.get("core")
|
||||
board_defaults: dict[str, dict] = {}
|
||||
for board, (data, lines, real) in sorted(boards.items()):
|
||||
override = data.get(name) or {}
|
||||
b_emu, b_core = override.get("emulator", emulator), override.get("core", core)
|
||||
if (b_emu, b_core) != (emulator, core) and b_core:
|
||||
board_defaults[board] = _board(b_core, b_emu, _ref(key, real, lines.get(name)))
|
||||
refs = [_ref(key, es_path, es_lines.get(name))]
|
||||
if name in def_lines:
|
||||
refs.append(_ref(key, def_path, def_lines[name]))
|
||||
rows.append({
|
||||
"folder": str(path),
|
||||
"name": name,
|
||||
"extensions": _extensions(system.get("extensions")),
|
||||
"core": str(core) if core else None,
|
||||
"emulator": str(emulator) if emulator else None,
|
||||
"source_ref": "; ".join(refs),
|
||||
"board_defaults": board_defaults,
|
||||
"arcade": system.get("hardware") == "arcade" or None,
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Static es_systems.cfg (XML) and EmuELEC's es_systems.json
|
||||
|
||||
|
||||
def _first_lines(text: str, pattern: str) -> dict[str, int]:
|
||||
out: dict[str, int] = {}
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
match = re.search(pattern, line)
|
||||
if match:
|
||||
out.setdefault(match.group(1).strip(), number)
|
||||
return out
|
||||
|
||||
|
||||
def _all_lines(text: str, pattern: str) -> dict[str, list[int]]:
|
||||
"""Every line each name is declared on, in file order."""
|
||||
out: dict[str, list[int]] = {}
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
match = re.search(pattern, line)
|
||||
if match:
|
||||
out.setdefault(match.group(1).strip(), []).append(number)
|
||||
return out
|
||||
|
||||
|
||||
def _name_once(row: dict, lines: dict[str, list[int]], seen: dict[str, int]) -> dict:
|
||||
"""A system name the list gives twice designates neither: the row keeps
|
||||
its folder and the line of its own occurrence."""
|
||||
name = row["name"]
|
||||
index = seen.get(name, 0)
|
||||
seen[name] = index + 1
|
||||
found = lines.get(name, [])
|
||||
row["line"] = found[index] if index < len(found) else None
|
||||
if len(found) > 1:
|
||||
row["note"] = "; ".join(filter(None, [row.get("note"), f"the list names {len(found)} systems {name}"]))
|
||||
row["name"] = None
|
||||
return row
|
||||
|
||||
|
||||
def _pick_default(emulators: list[tuple[str, list[tuple[str, bool]]]], rule: str) -> tuple[str | None, str | None]:
|
||||
"""The emulator and core the frontend starts when the user chose none.
|
||||
|
||||
`flagged`: the core marked default, else the first emulator's first
|
||||
core. `first`: the first emulator's first core, whatever is flagged.
|
||||
"""
|
||||
if rule == "flagged":
|
||||
for emulator, cores in emulators:
|
||||
for core, default in cores:
|
||||
if default:
|
||||
return emulator, core
|
||||
for emulator, cores in emulators:
|
||||
if cores:
|
||||
return emulator, cores[0][0]
|
||||
return emulator, None
|
||||
return None, None
|
||||
|
||||
|
||||
_LIBRETRO_SO = re.compile(r"-L\s+\S*?[/\\]([\w.+-]+?)_libretro\.(?:so|dll|dylib)")
|
||||
|
||||
|
||||
def _libretro_in_command(command: str) -> tuple[str | None, str | None]:
|
||||
match = _LIBRETRO_SO.search(command)
|
||||
return ("retroarch", match.group(1)) if match else (None, None)
|
||||
|
||||
|
||||
def _is_arcade(hardware: str | None, platform: str | None) -> bool | None:
|
||||
words = set(re.split(r"[\s,]+", (platform or "").lower()))
|
||||
return (hardware or "").lower() == "arcade" or "arcade" in words or None
|
||||
|
||||
|
||||
@register("es-xml")
|
||||
def es_xml(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""A static es_systems.cfg. `boards` names the file another build
|
||||
installs instead (dArkOS copies es_systems.cfg.<chipset>): a system whose
|
||||
default differs there gets that board's default."""
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
rows = _xml_rows(fetcher.text(key, params["file"]), key, params["file"], params)
|
||||
for board, path in sorted((params.get("boards") or {}).items()):
|
||||
other = {r["name"]: r for r in _xml_rows(fetcher.text(key, path), key, path, params)}
|
||||
for row in rows:
|
||||
alt = other.get(row["name"])
|
||||
if alt and alt["core"] and (alt["core"], alt["emulator"]) != (row["core"], row["emulator"]):
|
||||
row.setdefault("board_defaults", {})[board] = _board(
|
||||
alt["core"], alt["emulator"], alt["source_ref"])
|
||||
return rows
|
||||
|
||||
|
||||
_BARE_AMPERSAND = re.compile(r"&(?!(?:[A-Za-z]+|#\d+|#x[0-9A-Fa-f]+);)")
|
||||
_COMMENT = re.compile(r"<!--.*?-->", re.DOTALL)
|
||||
|
||||
|
||||
def _lenient_xml(text: str) -> str:
|
||||
"""The list as EmulationStation's pugixml reads it, lines kept in place.
|
||||
|
||||
pugixml keeps a bare `&` as text (ArkOS ships `2>&1` in a command) and
|
||||
accepts `--` inside a comment (EmuDeck comments out a command holding
|
||||
`--no-gui`). A comment is blanked to its newlines, so a system left in
|
||||
a comment neither parses nor lends its line to a citation.
|
||||
"""
|
||||
text = _COMMENT.sub(lambda m: "\n" * m.group(0).count("\n"), text)
|
||||
return _BARE_AMPERSAND.sub("&", text)
|
||||
|
||||
|
||||
def _xml_rows(text: str, key: str, path: str, params: dict) -> list[dict]:
|
||||
text = _lenient_xml(text)
|
||||
root = parse_untrusted_xml(text, path)
|
||||
lines = _all_lines(text, r"<name>([^<]+)</name>")
|
||||
seen: dict[str, int] = {}
|
||||
rule = params.get("default", "flagged")
|
||||
rows: list[dict] = []
|
||||
for system in root.iter("system"):
|
||||
name = (system.findtext("name") or "").strip()
|
||||
command = (system.findtext("command") or "").strip()
|
||||
platform = (system.findtext("platform") or "").strip()
|
||||
row = _name_once({"name": name}, lines, seen)
|
||||
if not name or "ignore" in (command, platform):
|
||||
continue
|
||||
folder = _strip_prefix((system.findtext("path") or "").strip(), params["path_prefixes"])
|
||||
if not folder:
|
||||
continue
|
||||
emulators = [
|
||||
(emulator.get("name") or "",
|
||||
[((core.text or "").strip(), core.get("default") == "true")
|
||||
for core in emulator.iter("core") if (core.text or "").strip()])
|
||||
for emulator in system.iter("emulator")
|
||||
]
|
||||
emulator, core = _pick_default(emulators, rule)
|
||||
if not emulators:
|
||||
# No <emulators>: the command starts the core itself (ArkOS
|
||||
# `retroarch -L .../mess_libretro.so %ROM%`).
|
||||
emulator, core = _libretro_in_command(command)
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": row["name"],
|
||||
"extensions": _extensions(system.findtext("extension")),
|
||||
"core": core or emulator,
|
||||
"emulator": emulator,
|
||||
"source_ref": _ref(key, path, row["line"]),
|
||||
"arcade": _is_arcade(system.findtext("hardware"), platform),
|
||||
"note": row.get("note"),
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
@register("es-json")
|
||||
def es_json(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
path = params["file"]
|
||||
text = fetcher.text(key, path)
|
||||
lines = _all_lines(text, r'^\s{4,6}"name":\s*"([^"]+)"')
|
||||
seen: dict[str, int] = {}
|
||||
rows: list[dict] = []
|
||||
for system in json.loads(text).get("systems", []):
|
||||
name = system.get("name") or ""
|
||||
row = _name_once({"name": name}, lines, seen)
|
||||
if "ignore" in (system.get("command"), system.get("platform")):
|
||||
continue
|
||||
folder = _strip_prefix(system.get("path") or "", params["path_prefixes"])
|
||||
if not name or not folder:
|
||||
continue
|
||||
emulators = [
|
||||
(emulator.get("name") or "",
|
||||
[(c.get("name") or "", bool(c.get("default"))) for c in emulator.get("cores") or []])
|
||||
for emulator in system.get("emulators") or []
|
||||
]
|
||||
emulator, core = _pick_default(emulators, params.get("default", "flagged"))
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": row["name"],
|
||||
"extensions": _extensions(system.get("extensions")),
|
||||
"core": core or emulator,
|
||||
"emulator": emulator,
|
||||
"source_ref": _ref(key, path, row["line"]),
|
||||
"arcade": _is_arcade(system.get("hardware"), system.get("platform")),
|
||||
"note": row.get("note"),
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# ROCKNIX family: config/emulators/<system>.conf and the emulators package
|
||||
|
||||
|
||||
def _conf_values(text: str) -> tuple[dict[str, str], dict[str, int]]:
|
||||
values: dict[str, str] = {}
|
||||
lines: dict[str, int] = {}
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
match = re.match(r"^\s*(SYSTEM_[A-Z_]+)=(.*)$", line)
|
||||
if not match:
|
||||
continue
|
||||
raw = match.group(2).strip()
|
||||
try:
|
||||
value = " ".join(shlex.split(raw))
|
||||
except ValueError:
|
||||
value = raw.strip('"')
|
||||
values[match.group(1)] = value
|
||||
lines[match.group(1)] = number
|
||||
return values, lines
|
||||
|
||||
|
||||
def _package_calls(text: str) -> tuple[list[dict], dict[str, list[int]]]:
|
||||
"""add_emu_core and add_es_system calls of makeinstall_target, each
|
||||
with the `case` branches it sits under as (variable, pattern) pairs.
|
||||
An `if` block nests a condition whose truth the build decides: its
|
||||
calls carry it as a branch the default choice does not count as
|
||||
unconditional."""
|
||||
cores: list[dict] = []
|
||||
systems: dict[str, list[int]] = {}
|
||||
stack: list[list[str]] = []
|
||||
inside = False
|
||||
for number, raw in enumerate(text.splitlines(), 1):
|
||||
line = raw.split("#", 1)[0].strip()
|
||||
if raw.startswith("makeinstall_target()"):
|
||||
inside = True
|
||||
continue
|
||||
if not inside or not line:
|
||||
continue
|
||||
if raw.startswith("}"):
|
||||
break
|
||||
match = re.match(r'case\s+"?\$\{?(\w+)\}?"?\s+in', line)
|
||||
if match:
|
||||
stack.append(["case", match.group(1), ""])
|
||||
continue
|
||||
if line == "esac":
|
||||
stack.pop()
|
||||
continue
|
||||
if line.startswith("if ") or line.startswith("[") and "&&" not in line and line.endswith("then"):
|
||||
stack.append(["if", line, ""])
|
||||
continue
|
||||
if line in ("fi",):
|
||||
if stack and stack[-1][0] == "if":
|
||||
stack.pop()
|
||||
continue
|
||||
if line in ("then", "else") or line.startswith("elif "):
|
||||
continue
|
||||
ends = line.endswith(";;")
|
||||
if ends:
|
||||
line = line[:-2].strip()
|
||||
if stack and stack[-1][0] == "case":
|
||||
match = re.match(r"^([^()\s][^()]*)\)\s*(.*)$", line)
|
||||
if match and not line.startswith(("add_", "[", "sed", "cp", "mkdir")):
|
||||
stack[-1][2] = match.group(1).strip()
|
||||
line = match.group(2).strip()
|
||||
words = line.split()
|
||||
branches = [(s[1], s[2]) for s in stack]
|
||||
if words[:1] == ["add_emu_core"] and len(words) >= 4:
|
||||
cores.append({
|
||||
"system": words[1], "emulator": words[2], "core": words[3],
|
||||
"default": len(words) > 4 and words[4] == "true",
|
||||
"branches": branches, "line": number,
|
||||
})
|
||||
elif words[:1] == ["add_es_system"] and len(words) >= 2:
|
||||
systems.setdefault(words[1], []).append(number)
|
||||
if ends and stack and stack[-1][0] == "case":
|
||||
stack[-1][2] = ""
|
||||
return cores, systems
|
||||
|
||||
|
||||
def _board_key(branches: list[tuple[str, str]]) -> str | None:
|
||||
"""A default chosen under one `case` on the device names that device."""
|
||||
if len(branches) == 1 and branches[0][1] and branches[0][1] != "*":
|
||||
variable, pattern = branches[0]
|
||||
if not variable.startswith("["):
|
||||
return f"{variable}={pattern}"
|
||||
return None
|
||||
|
||||
|
||||
@register("elec-conf")
|
||||
def elec_conf(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""A system ES lists is one add_es_system writes from its conf file
|
||||
(SYSTEM_PATH, SYSTEM_EXTENSION). The default is the core whose
|
||||
add_emu_core says true: unconditional, else the `*)` branch of a
|
||||
device case, the branches for named devices going to board_defaults."""
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
package = params["package"]
|
||||
cores, systems = _package_calls(fetcher.text(key, package))
|
||||
if not systems:
|
||||
raise SourceError(f"{package}: no add_es_system call")
|
||||
conf_dir = params["conf_dir"]
|
||||
rows: list[dict] = []
|
||||
for name, lines in systems.items():
|
||||
conf_path = f"{conf_dir}/{name}.conf"
|
||||
conf_text = fetcher.optional_text(key, conf_path)
|
||||
if conf_text is None:
|
||||
continue
|
||||
values, value_lines = _conf_values(conf_text)
|
||||
folder = _strip_prefix(values.get("SYSTEM_PATH", ""), params["path_prefixes"])
|
||||
if not folder:
|
||||
continue
|
||||
mine = [c for c in cores if c["system"] == name]
|
||||
flagged = [c for c in mine if c["default"]]
|
||||
plain = [c for c in flagged if not c["branches"]]
|
||||
star = [c for c in flagged if c["branches"] and c["branches"][-1][1] == "*"]
|
||||
pick = (plain or star or flagged or [None])[0]
|
||||
if pick is None:
|
||||
pick = next((c for c in mine if not c["branches"]), mine[0] if mine else None)
|
||||
board_defaults = {}
|
||||
for c in flagged:
|
||||
board = _board_key(c["branches"])
|
||||
if c is not pick and board and (c["emulator"], c["core"]) != (
|
||||
pick and pick["emulator"], pick and pick["core"]):
|
||||
board_defaults[board] = _board(c["core"], c["emulator"], _ref(key, package, c["line"]))
|
||||
refs = [
|
||||
_ref(key, conf_path, value_lines.get("SYSTEM_PATH"), value_lines.get("SYSTEM_EXTENSION")),
|
||||
_ref(key, package, *lines),
|
||||
]
|
||||
if pick:
|
||||
refs.append(_ref(key, package, pick["line"]))
|
||||
note = None
|
||||
if pick and pick["branches"] and not _board_key(pick["branches"]) and pick["branches"][-1][1] != "*":
|
||||
note = "default core chosen under a build condition: " + ", ".join(
|
||||
f"{v} {p}".strip() for v, p in pick["branches"])
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": name,
|
||||
"extensions": _extensions(values.get("SYSTEM_EXTENSION")),
|
||||
"core": pick["core"] if pick else None,
|
||||
"emulator": pick["emulator"] if pick else None,
|
||||
"source_ref": "; ".join(refs),
|
||||
"board_defaults": board_defaults,
|
||||
"arcade": values.get("SYSTEM_HARDWARE") == "arcade" or None,
|
||||
"note": note,
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# ES-DE (EmuDeck, RetroDECK)
|
||||
|
||||
|
||||
_RA_CORE = re.compile(r"%CORE_RETROARCH%[/\\]([\w.+-]+?)_libretro")
|
||||
_EMULATOR = re.compile(r"%EMULATOR_([A-Za-z0-9_-]+)%")
|
||||
|
||||
|
||||
def _command_core(command: str) -> tuple[str | None, str | None]:
|
||||
match = _RA_CORE.search(command)
|
||||
if match:
|
||||
return "retroarch", match.group(1)
|
||||
match = _EMULATOR.search(command)
|
||||
if match:
|
||||
name = match.group(1).lower()
|
||||
return name, name
|
||||
return None, None
|
||||
|
||||
|
||||
def _esde_systems(text: str, path: str) -> Iterator[tuple[str, str, list[str], list[tuple[str, str]]]]:
|
||||
root = parse_untrusted_xml(_lenient_xml(text), path)
|
||||
for system in root.iter("system"):
|
||||
name = (system.findtext("name") or "").strip()
|
||||
rom_path = (system.findtext("path") or "").strip()
|
||||
commands = [((c.get("label") or "").strip(), (c.text or "").strip())
|
||||
for c in system.findall("command")]
|
||||
yield name, rom_path, _extensions(system.findtext("extension")), commands
|
||||
|
||||
|
||||
def _alternative_emulators(text: str, function: str) -> dict[str, tuple[str, int]]:
|
||||
"""`ESDE_setEmu '<label>' <system>` calls inside one function."""
|
||||
out: dict[str, tuple[str, int]] = {}
|
||||
inside = False
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
if re.search(rf"\b{re.escape(function)}\b\s*\(\)|function\s+{re.escape(function)}\b", line):
|
||||
inside = True
|
||||
continue
|
||||
if not inside:
|
||||
continue
|
||||
if line.rstrip() == "}":
|
||||
break
|
||||
match = re.search(r"ESDE_setEmu\s+['\"]([^'\"]+)['\"]\s+([\w.-]+)", line)
|
||||
if match:
|
||||
out[match.group(2)] = (match.group(1), number)
|
||||
return out
|
||||
|
||||
|
||||
@register("esde")
|
||||
def esde(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""Each system of ES-DE's list whose path is %ROMPATH%/<folder>.
|
||||
|
||||
The default emulator is the first <command> (FileData.cpp), unless an
|
||||
alternativeEmulator label is written for the system: an installer that
|
||||
sets one names a command of that system by its label. A custom system
|
||||
file replaces the bundled definition of the same name.
|
||||
"""
|
||||
params = spec["params"]
|
||||
systems: dict[str, dict] = {}
|
||||
for item in [params["systems"], *params.get("custom", [])]:
|
||||
key, path = item["source"], item["path"]
|
||||
text = _lenient_xml(fetcher.text(key, path))
|
||||
lines = _first_lines(text, r"<name>([^<]+)</name>")
|
||||
for name, rom_path, extensions, commands in _esde_systems(text, path):
|
||||
folder = _strip_prefix(rom_path, ["%ROMPATH%/", "%ROMPATH%\\"])
|
||||
if not name or not folder:
|
||||
continue
|
||||
systems[name] = {
|
||||
"folder": folder, "extensions": extensions, "commands": commands,
|
||||
"ref": _ref(key, path, lines.get(name)),
|
||||
}
|
||||
alternatives: dict[str, tuple[str, int]] = {}
|
||||
alt = params.get("alternatives")
|
||||
if alt:
|
||||
alternatives = _alternative_emulators(fetcher.text(alt["source"], alt["path"]), alt["function"])
|
||||
if not alternatives:
|
||||
raise SourceError(f"{alt['path']}: no ESDE_setEmu call in {alt['function']}")
|
||||
rows: list[dict] = []
|
||||
for name, system in systems.items():
|
||||
commands = system["commands"]
|
||||
refs = [system["ref"]]
|
||||
chosen = commands[0] if commands else ("", "")
|
||||
note = None
|
||||
if name in alternatives:
|
||||
label, line = alternatives[name]
|
||||
match = next((c for c in commands if c[0] == label), None)
|
||||
refs.append(_ref(alt["source"], alt["path"], line))
|
||||
if match:
|
||||
chosen = match
|
||||
else:
|
||||
note = f"alternative emulator '{label}' names no command of this system"
|
||||
emulator, core = _command_core(chosen[1])
|
||||
extensions = system["extensions"]
|
||||
if "." in extensions:
|
||||
# ES-DE's "." is a file without an extension (SystemData.cpp
|
||||
# getExtension), not a suffix the schema can hold.
|
||||
extensions = [e for e in extensions if e != "."]
|
||||
note = "; ".join(filter(None, [note, "files without an extension are games too ('.' in the list)"]))
|
||||
rows.append({
|
||||
"folder": system["folder"],
|
||||
"name": name,
|
||||
"extensions": extensions,
|
||||
"core": core,
|
||||
"emulator": emulator,
|
||||
"source_ref": "; ".join(refs),
|
||||
"note": note,
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Recalbox
|
||||
|
||||
|
||||
def _ini_sections(text: str) -> tuple[dict[str, dict[str, str]], dict[str, int]]:
|
||||
sections: dict[str, dict[str, str]] = {}
|
||||
lines: dict[str, int] = {}
|
||||
current: dict[str, str] | None = None
|
||||
name = ""
|
||||
for number, raw in enumerate(text.splitlines(), 1):
|
||||
line = raw.strip()
|
||||
if not line or line.startswith((";", "#")):
|
||||
continue
|
||||
if line.startswith("[") and line.endswith("]"):
|
||||
name = line[1:-1]
|
||||
current = sections.setdefault(name, {})
|
||||
lines.setdefault(name, number)
|
||||
elif current is not None and "=" in line:
|
||||
k, v = line.split("=", 1)
|
||||
current[k.strip()] = v.strip().strip('"')
|
||||
lines.setdefault(f"{name}/{k.strip()}", number)
|
||||
return sections, lines
|
||||
|
||||
|
||||
@register("recalbox")
|
||||
def recalbox(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""One system.ini per system. The default core is the lowest
|
||||
`priority` (EmulatorManager), and `priority.<board>` changes it on that
|
||||
board. A `.ext!` extension is an archive the frontend hands over
|
||||
unopened."""
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
rows: list[dict] = []
|
||||
for entry in fetcher.entries(key, params["systems_dir"]):
|
||||
path = f"{entry}/system.ini"
|
||||
text = fetcher.optional_text(key, path)
|
||||
if text is None:
|
||||
continue
|
||||
sections, lines = _ini_sections(text)
|
||||
system = sections.get("system", {})
|
||||
folder = _strip_prefix(system.get("roms.folder", ""), ["%ROOT%/"])
|
||||
if not folder:
|
||||
continue
|
||||
cores = []
|
||||
for section, values in sections.items():
|
||||
parts = section.split(".")
|
||||
if parts[0] != "core" or len(parts) != 2:
|
||||
continue
|
||||
cores.append({
|
||||
"section": section, "emulator": values.get("emulator"), "core": values.get("core"),
|
||||
"priority": int(values.get("priority", "255")),
|
||||
"boards": {k.split(".", 1)[1]: int(v) for k, v in values.items() if k.startswith("priority.")},
|
||||
"extensions": values.get("extensions", "").split(),
|
||||
})
|
||||
if not cores:
|
||||
continue
|
||||
# EmulatorManager walks the cores from the last and keeps a strictly
|
||||
# lower priority: on a tie the last core listed wins.
|
||||
pick = min(reversed(cores), key=lambda c: c["priority"])
|
||||
board_defaults: dict[str, dict] = {}
|
||||
for board in sorted({b for c in cores for b in c["boards"]}):
|
||||
best = min(reversed(cores), key=lambda c: c["boards"].get(board, c["priority"]))
|
||||
if best is not pick:
|
||||
board_defaults[board] = _board(
|
||||
best["core"], best["emulator"],
|
||||
_ref(key, path, lines.get(f"{best['section']}/priority.{board}")))
|
||||
extensions = sorted({e for c in cores for e in c["extensions"]})
|
||||
archive = any(e.endswith("!") for e in extensions)
|
||||
rows.append({
|
||||
"folder": folder,
|
||||
"name": system.get("name"),
|
||||
"extensions": [e.rstrip("!") for e in extensions],
|
||||
"core": pick["core"],
|
||||
"emulator": pick["emulator"],
|
||||
"source_ref": "; ".join([
|
||||
_ref(key, path, lines.get("system/roms.folder")),
|
||||
_ref(key, path, lines.get(f"{pick['section']}/priority"),
|
||||
lines.get(f"{pick['section']}/core")),
|
||||
]),
|
||||
"board_defaults": board_defaults,
|
||||
"arcade": sections.get("properties", {}).get("type") == "arcade" or None,
|
||||
"note": "an extension ending in ! is an archive the frontend does not open" if archive else None,
|
||||
})
|
||||
return rows
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# RetroPie
|
||||
|
||||
|
||||
_MODULE_FIELD = re.compile(r'^rp_module_(id|section|flags)="([^"]*)"', re.MULTILINE)
|
||||
_ADD_EMULATOR = re.compile(r'^\s*addEmulator\s+(\S+)\s+("[^"]*"|\S+)\s+("[^"]*"|\S+)')
|
||||
_LIST = re.compile(r'(?:local\s+)?(\w+)=\(([^)]*)\)')
|
||||
_LOOP = re.compile(r'for (\w+) in (.+?); do')
|
||||
|
||||
|
||||
def _module_valid(flags: list[str], platform: set[str]) -> bool:
|
||||
"""packages.sh rp_registerModule: flags read in order, `!all` drops
|
||||
the module, a platform flag keeps it, `!<platform flag>` drops it."""
|
||||
valid = True
|
||||
for flag in flags:
|
||||
if flag == "!all":
|
||||
valid = False
|
||||
elif flag in platform:
|
||||
valid = True
|
||||
elif flag.startswith("!") and flag[1:] in platform:
|
||||
valid = False
|
||||
return valid
|
||||
|
||||
|
||||
def _emulator_calls(text: str) -> Iterator[tuple[int, str, str, list[str]]]:
|
||||
"""(line, default flag, emulator id, systems) of each addEmulator call,
|
||||
a system variable expanded through the loop or array that sets it."""
|
||||
lines = text.splitlines()
|
||||
arrays = {m.group(1): m.group(2).replace('"', "").split() for m in _LIST.finditer(text)}
|
||||
loops: list[tuple[int, str, list[str]]] = []
|
||||
for index, line in enumerate(lines):
|
||||
match = _LOOP.search(line)
|
||||
if match:
|
||||
items = match.group(2).strip()
|
||||
array = re.fullmatch(r'"?\$\{(\w+)\[@\]\}"?', items)
|
||||
loops.append((index, match.group(1),
|
||||
arrays.get(array.group(1), []) if array else items.replace('"', "").split()))
|
||||
for index, line in enumerate(lines):
|
||||
match = _ADD_EMULATOR.match(line)
|
||||
if not match or "function addEmulator" in line:
|
||||
continue
|
||||
flag, emu, system = match.group(1), match.group(2).strip('"'), match.group(3).strip('"')
|
||||
systems = [system]
|
||||
var = re.fullmatch(r"\$\{?(\w+)\}?", system)
|
||||
if var:
|
||||
found = [items for i, name, items in loops if i < index and name == var.group(1)]
|
||||
if found:
|
||||
systems = found[-1]
|
||||
elif var.group(1) in arrays:
|
||||
systems = arrays[var.group(1)]
|
||||
else:
|
||||
continue
|
||||
yield index + 1, flag, emu, systems
|
||||
|
||||
|
||||
@register("retropie")
|
||||
def retropie(spec: dict, fetcher: Fetcher) -> list[dict]:
|
||||
"""Folders are `<system>` under the roms root (helpers.sh addSystem),
|
||||
with `<system>_exts` from platforms.cfg. The default is set once, by
|
||||
the first installed module whose addEmulator passes 1: a basic install
|
||||
installs the core then the main section in registration order
|
||||
(setup.sh basic_install_setup, packages.sh rp_registerAllModules). A
|
||||
system no basic-install module serves gets its folder from an optional
|
||||
module, so the first opt, then exp, module stands as its default."""
|
||||
params = spec["params"]
|
||||
key = params.get("source", "os")
|
||||
cfg_path = params["platforms_cfg"]
|
||||
cfg = fetcher.text(key, cfg_path)
|
||||
exts: dict[str, tuple[str, int]] = {}
|
||||
for number, line in enumerate(cfg.splitlines(), 1):
|
||||
match = re.match(r'^([\w-]+)_exts="([^"]*)"', line)
|
||||
if match:
|
||||
exts[match.group(1)] = (match.group(2), number)
|
||||
platform = set(params["platform_flags"])
|
||||
modules: list[dict] = []
|
||||
for kind in params["module_dirs"]:
|
||||
for path in fetcher.tree(key, f"scriptmodules/{kind}/"):
|
||||
if not path.endswith(".sh") or path.count("/") != 2:
|
||||
continue
|
||||
text = fetcher.text(key, path)
|
||||
fields = dict(_MODULE_FIELD.findall(text))
|
||||
if not _module_valid(fields.get("flags", "").split(), platform):
|
||||
continue
|
||||
modules.append({"path": path, "id": fields.get("id", ""),
|
||||
"section": fields.get("section", ""), "text": text})
|
||||
order = [m for section in params["install_sections"] for m in modules if m["section"] == section]
|
||||
defaults: dict[str, tuple[str, str, int]] = {}
|
||||
for module in order:
|
||||
for line, flag, emu, systems in _emulator_calls(module["text"]):
|
||||
if flag != "1":
|
||||
continue
|
||||
emu = emu.replace("${md_id}", module["id"]).replace("$md_id", module["id"])
|
||||
for system in systems:
|
||||
defaults.setdefault(system, (emu, module["path"], line))
|
||||
rows: list[dict] = []
|
||||
for system, (raw, line) in sorted(exts.items()):
|
||||
refs = [_ref(key, cfg_path, line)]
|
||||
core = None
|
||||
if system in defaults:
|
||||
core, path, call = defaults[system]
|
||||
refs.append(_ref(key, path, call))
|
||||
emulator = "retroarch" if core and core.startswith("lr-") else core
|
||||
rows.append({
|
||||
"folder": system,
|
||||
"extensions": _extensions(raw),
|
||||
"core": core,
|
||||
"emulator": emulator,
|
||||
"source_ref": "; ".join(refs),
|
||||
})
|
||||
return rows
|
||||
@@ -0,0 +1,3 @@
|
||||
snes:
|
||||
emulator: libretro
|
||||
core: pocketsnes
|
||||
@@ -0,0 +1 @@
|
||||
configgen-defaults-bcm2835.yml
|
||||
@@ -0,0 +1,9 @@
|
||||
default:
|
||||
emulator:
|
||||
core:
|
||||
snes:
|
||||
emulator: libretro
|
||||
core: snes9x
|
||||
mame:
|
||||
emulator: libretro
|
||||
core: mame078plus
|
||||
@@ -0,0 +1,25 @@
|
||||
snes:
|
||||
name: Super Nintendo
|
||||
hardware: console
|
||||
extensions: [smc, SFC, zip]
|
||||
emulators:
|
||||
libretro:
|
||||
snes9x: { requireAnyOf: [X] }
|
||||
pocketsnes: { requireAnyOf: [Y] }
|
||||
mame:
|
||||
name: MAME
|
||||
hardware: arcade
|
||||
extensions: [zip, 7z]
|
||||
emulators:
|
||||
libretro:
|
||||
mame078plus: { requireAnyOf: [Z] }
|
||||
nogame:
|
||||
name: Has no emulator
|
||||
extensions: [txt]
|
||||
elsewhere:
|
||||
name: Outside the roms root
|
||||
path: /userdata/library
|
||||
extensions: [lnk]
|
||||
emulators:
|
||||
flatpak:
|
||||
flatpak: { requireAnyOf: [W] }
|
||||
@@ -0,0 +1,4 @@
|
||||
SYSTEM_NAME="3do"
|
||||
SYSTEM_HARDWARE="console"
|
||||
SYSTEM_PATH="/storage/roms/3do"
|
||||
SYSTEM_EXTENSION=".iso .bin .chd"
|
||||
@@ -0,0 +1,4 @@
|
||||
SYSTEM_NAME="psx"
|
||||
SYSTEM_HARDWARE="console"
|
||||
SYSTEM_PATH="/storage/roms/psx"
|
||||
SYSTEM_EXTENSION=".cue .CUE .chd"
|
||||
@@ -0,0 +1,3 @@
|
||||
SYSTEM_NAME="tools"
|
||||
SYSTEM_PATH="/storage/.config/modules"
|
||||
SYSTEM_EXTENSION=".sh"
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
PKG_NAME="emulators"
|
||||
|
||||
makeinstall_target() {
|
||||
add_system_dir /storage/roms/bios
|
||||
|
||||
add_emu_core 3do retroarch opera true
|
||||
add_es_system 3do
|
||||
|
||||
case ${DEVICE} in
|
||||
RK3326)
|
||||
add_emu_core psx retroarch pcsx_rearmed true
|
||||
add_emu_core psx retroarch swanstation false
|
||||
;;
|
||||
*)
|
||||
add_emu_core psx retroarch swanstation true
|
||||
add_emu_core psx retroarch pcsx_rearmed false
|
||||
;;
|
||||
esac
|
||||
add_es_system psx
|
||||
|
||||
add_emu_core tools ignore ignore true
|
||||
add_es_system tools
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<systemList>
|
||||
<system>
|
||||
<name>model2</name>
|
||||
<path>%ROMPATH%/model2/roms</path>
|
||||
<extension>.zip .ZIP</extension>
|
||||
<command label="Model 2 (Standalone)">%EMULATOR_MODEL-2% %BASENAME% & exit</command>
|
||||
</system>
|
||||
</systemList>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<systemList>
|
||||
<system>
|
||||
<name>psx</name>
|
||||
<path>%ROMPATH%/psx</path>
|
||||
<extension>.cue .CUE .chd .CHD</extension>
|
||||
<command label="Beetle PSX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_libretro.so %ROM%</command>
|
||||
<command label="DuckStation (Standalone)">%EMULATOR_DUCKSTATION% -batch %ROM%</command>
|
||||
</system>
|
||||
<system>
|
||||
<name>model2</name>
|
||||
<path>%ROMPATH%/model2</path>
|
||||
<extension>.zip</extension>
|
||||
<command label="MAME">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
|
||||
</system>
|
||||
</systemList>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
ESDE_setDefaultEmulators(){
|
||||
mkdir -p "$gamelists"
|
||||
ESDE_setEmu 'DuckStation (Standalone)' psx
|
||||
ESDE_setEmu 'Missing Label' model2
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"systems": [
|
||||
{
|
||||
"name": "psx",
|
||||
"path": "/storage/roms/psx",
|
||||
"extensions": [".cue", ".CUE"],
|
||||
"emulators": [
|
||||
{"name": "libretro", "cores": [{"name": "pcsx_rearmed"}, {"name": "duckstation", "default": true}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "imageviewer",
|
||||
"path": "/storage/roms/screenshots",
|
||||
"platform": "ignore",
|
||||
"command": "ignore",
|
||||
"extensions": [".png"]
|
||||
},
|
||||
{
|
||||
"name": "pico8",
|
||||
"path": "/storage/roms/pico-8",
|
||||
"extensions": [".p8"],
|
||||
"emulators": [{"name": "Pico-8", "cores": [{"name": "Pico-8", "default": true}]}]
|
||||
},
|
||||
{
|
||||
"name": "pico8",
|
||||
"path": "/storage/roms/pico",
|
||||
"extensions": [".md"],
|
||||
"emulators": [{"name": "libretro", "cores": [{"name": "genesis_plus_gx", "default": true}]}]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
[system]
|
||||
name = "mame"
|
||||
roms.folder = "%ROOT%/mame"
|
||||
|
||||
[properties]
|
||||
type = arcade
|
||||
|
||||
[core.0]
|
||||
priority = 1
|
||||
emulator = "libretro"
|
||||
core = "mame2003_plus"
|
||||
extensions = ".zip!"
|
||||
@@ -0,0 +1,25 @@
|
||||
[system]
|
||||
name = "psx"
|
||||
roms.folder = "%ROOT%/psx"
|
||||
|
||||
[properties]
|
||||
type = console
|
||||
|
||||
[core.0]
|
||||
priority = 1
|
||||
emulator = "libretro"
|
||||
core = "pcsx_rearmed"
|
||||
extensions = ".cue .chd"
|
||||
|
||||
[core.1]
|
||||
priority = 1
|
||||
emulator = "libretro"
|
||||
core = "swanstation"
|
||||
extensions = ".cue .pbp"
|
||||
|
||||
[core.2]
|
||||
priority = 2
|
||||
priority.rpi1 = 0
|
||||
emulator = "libretro"
|
||||
core = "mednafen_psx"
|
||||
extensions = ".cue"
|
||||
@@ -0,0 +1,8 @@
|
||||
psx_exts=".cue .chd"
|
||||
psx_fullname="PlayStation"
|
||||
|
||||
nes_exts=".nes .zip"
|
||||
nes_fullname="Nintendo Entertainment System"
|
||||
|
||||
vectrex_exts=".vec"
|
||||
vectrex_fullname="Vectrex"
|
||||
@@ -0,0 +1,7 @@
|
||||
rp_module_id="pcsx2"
|
||||
rp_module_section="exp"
|
||||
rp_module_flags="!all x86"
|
||||
|
||||
function configure_pcsx2() {
|
||||
addEmulator 1 "$md_id" "psx" "pcsx2 %ROM%"
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
rp_module_id="lr-fceumm"
|
||||
rp_module_section="main"
|
||||
|
||||
function configure_lr-fceumm() {
|
||||
local system
|
||||
for system in nes fds; do
|
||||
addEmulator 1 "$md_id" "$system" "$md_inst/fceumm_libretro.so"
|
||||
done
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
rp_module_id="lr-pcsx-rearmed"
|
||||
rp_module_section="main"
|
||||
rp_module_flags="!x86"
|
||||
|
||||
function configure_lr-pcsx-rearmed() {
|
||||
addEmulator 1 "$md_id" "psx" "$md_inst/pcsx_rearmed_libretro.so"
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
rp_module_id="lr-swanstation"
|
||||
rp_module_section="opt"
|
||||
|
||||
function configure_lr-swanstation() {
|
||||
addEmulator 1 "$md_id" "psx" "$md_inst/swanstation_libretro.so"
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0"?>
|
||||
<systemList>
|
||||
<system>
|
||||
<name>psx</name>
|
||||
<path>/storage/roms/psx</path>
|
||||
<extension>.cue .CUE .chd</extension>
|
||||
<command>runemu.py %ROM%</command>
|
||||
<platform>psx</platform>
|
||||
<emulators>
|
||||
<emulator name="retroarch">
|
||||
<cores>
|
||||
<core>pcsx_rearmed</core>
|
||||
<core default="true">duckstation</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
</emulators>
|
||||
</system>
|
||||
<!-- <system><name>commented</name><path>/storage/roms/commented</path> --no-gui </system> -->
|
||||
<system>
|
||||
<name>advision</name>
|
||||
<path>/storage/roms/advision/</path>
|
||||
<extension>.bin .zip</extension>
|
||||
<command>retroarch -L /cores/mess_libretro.so %ROM% 2>&1 > /dev/null</command>
|
||||
<platform>advision</platform>
|
||||
</system>
|
||||
<system>
|
||||
<name>tools</name>
|
||||
<path>/storage/.config/modules</path>
|
||||
<extension>.sh</extension>
|
||||
<command>ignore</command>
|
||||
<platform>ignore</platform>
|
||||
</system>
|
||||
<system>
|
||||
<name>mame</name>
|
||||
<path>/storage/roms/mame</path>
|
||||
<extension>.zip</extension>
|
||||
<command>runemu.py %ROM%</command>
|
||||
<platform>arcade</platform>
|
||||
<emulators>
|
||||
<emulator name="retroarch">
|
||||
<cores>
|
||||
<core>mame2003_plus</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
</emulators>
|
||||
</system>
|
||||
</systemList>
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0"?>
|
||||
<systemList>
|
||||
<system>
|
||||
<name>psx</name>
|
||||
<path>/storage/roms/psx</path>
|
||||
<extension>.cue .CUE .chd</extension>
|
||||
<command>runemu.py %ROM%</command>
|
||||
<platform>psx</platform>
|
||||
<emulators>
|
||||
<emulator name="retroarch">
|
||||
<cores>
|
||||
<core>pcsx_rearmed</core>
|
||||
<core default="true">swanstation</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
</emulators>
|
||||
</system>
|
||||
<!-- <system><name>commented</name><path>/storage/roms/commented</path> --no-gui </system> -->
|
||||
<system>
|
||||
<name>advision</name>
|
||||
<path>/storage/roms/advision/</path>
|
||||
<extension>.bin .zip</extension>
|
||||
<command>retroarch -L /cores/mess_libretro.so %ROM% 2>&1 > /dev/null</command>
|
||||
<platform>advision</platform>
|
||||
</system>
|
||||
<system>
|
||||
<name>tools</name>
|
||||
<path>/storage/.config/modules</path>
|
||||
<extension>.sh</extension>
|
||||
<command>ignore</command>
|
||||
<platform>ignore</platform>
|
||||
</system>
|
||||
<system>
|
||||
<name>mame</name>
|
||||
<path>/storage/roms/mame</path>
|
||||
<extension>.zip</extension>
|
||||
<command>runemu.py %ROM%</command>
|
||||
<platform>arcade</platform>
|
||||
<emulators>
|
||||
<emulator name="retroarch">
|
||||
<cores>
|
||||
<core>mame2003_plus</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
</emulators>
|
||||
</system>
|
||||
</systemList>
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"onion": {
|
||||
"static/packages/Emu/Nintendo - GBA (gpSP)/Emu/GBA/config.json": "{\n \"label\": \"GBA\",\n \"launch\": \"launch.sh\",\n \"rompath\": \"../../Roms/GBA\",\n \"extlist\": \"gba|GBA|zip|7z\"\n}\n",
|
||||
"static/packages/Emu/Nintendo - GBA (gpSP)/Emu/GBA/launch.sh": "#!/bin/sh\ndefault_core=gpsp\ncore=\"$default_core\"\nretroarch -L .retroarch/cores/${default_core}_libretro.so \"$1\"\n",
|
||||
"static/packages/RApp/Nintendo - GBA (VBA-M)/RApp/GBA_VBAM/config.json": "{\n \"label\": \"VBA-M\",\n \"rompath\": \"../../Roms/GBA\",\n \"extlist\": \"gba\"\n}\n",
|
||||
"static/packages/RApp/Nintendo - GBA (VBA-M)/RApp/GBA_VBAM/launch.sh": "retroarch -L .retroarch/cores/vbam_libretro.so \"$1\"\n",
|
||||
"static/packages/RApp/NEC - PC-98 (Neko Project II)/RApp/NP2/config.json": "{\n \"rompath\": \"/mnt/SDCARD/Roms/PCNINETYEIGHT\",\n \"extlist\": \"d98|hdi\"\n}\n",
|
||||
"static/packages/RApp/NEC - PC-98 (Neko Project II)/RApp/NP2/launch.sh": "retroarch -L .retroarch/cores/nekop2_libretro.so \"$1\"\n",
|
||||
"static/packages/App/Clock/App/Clock/config.json": "{\"label\": \"Clock\"}\n"
|
||||
},
|
||||
"spruce": {
|
||||
"Emu/PS/config.json": "{\n \"label\": \"PlayStation\",\n \"alternativeFolderNames\": [\"psx\", \"PS1\"],\n \"extlist\": \"bin|cue|CHD\",\n \"default_emulator\": \"pcsx_rearmed\",\n \"ignoreList\": [\"neogeo.zip\"]\n}\n",
|
||||
"Emu/-CUSTOM-SYSTEM-/config.json": "{\"label\": \"template\"}\n",
|
||||
"Emu/PS/launch.sh": "echo\n"
|
||||
},
|
||||
"crossmix": {
|
||||
"Emus/PS/config.json": "{\n \"rompath\": \"../../Roms/PS\",\n \"extlist\": \"cue|chd\",\n \"launchlist\": [\n {\"name\": \"--- libretro ---\", \"launch\": \"\"},\n {\"name\": \"PCSX ReARMed\", \"launch\": \"pcsx.sh\"}\n ]\n}\n",
|
||||
"Emus/PS/pcsx.sh": "RA_CORE=\"$HOME/cores/pcsx_rearmed_libretro.so\"\n",
|
||||
"Emus/_BootLogo/config.json": "{\"rompath\": \"../../Apps/x\"}\n"
|
||||
},
|
||||
"koriki": {
|
||||
"base/.simplemenu/section_groups/apps and games.ini": "[CONSOLES]\nexecs = none\n\n[PS]\nexecs = /mnt/SDCARD/.simplemenu/launchers/pcsx_libretro.sh,/mnt/SDCARD/.simplemenu/launchers/pcsx_standalone.sh\nromDirs = /mnt/SDCARD/Roms/PS/\nromExts = .cue,.CHD,.pbp\n",
|
||||
"base/.simplemenu/launchers/pcsx_libretro.sh": "retroarch -L /mnt/SDCARD/RetroArch/.retroarch/cores/pcsx_rearmed_libretro.so \"$1\"\n"
|
||||
},
|
||||
"allium": {
|
||||
"consoles.toml": "[[consoles]]\nname = \"Arcade\"\ncores = [\n \"mame2003_plus\",\n \"fbneo\",\n]\npatterns = [\"ARCADE\", \"mame\"]\n\n[[consoles]]\nname = \"Game Boy Advance\"\ncores = [\"gpsp\"]\npatterns = [\"GBA\"]\nextensions = [\"gba\"]\n\n[[consoles]]\nname = \"Native\"\ncores = [\"native\"]\nextensions = [\"pak\"]\n",
|
||||
"cores.toml": "[cores.native]\npath = \"/mnt/SDCARD/.allium/cores/pak/launch.sh\"\nname = \"Native\"\n\n[cores.\"dosbox_pure_0.9.7\"]\nretroarch = \"dosbox_pure_0.9.7\"\n\n[cores.mame2003_plus]\nretroarch = \"mame2003_plus\"\nname = \"MAME 2003+\"\n\n[cores.gpsp]\nretroarch = \"gpsp\"\n"
|
||||
},
|
||||
"minui": {
|
||||
"skeleton/BASE/Roms/Sony PlayStation (PS)/.keep": "",
|
||||
"skeleton/SYSTEM/rg35xx/paks/Emus/PS.pak/launch.sh": "#!/bin/sh\nEMU_EXE=pcsx_rearmed\nminarch.elf \"$CORES_PATH/${EMU_EXE}_libretro.so\" \"$1\"\n",
|
||||
"skeleton/SYSTEM/miyoomini/paks/Emus/PS.pak/launch.sh": "#!/bin/sh\nEMU_EXE=pcsx_rearmed\nminarch.elf \"$CORES_PATH/${EMU_EXE}_libretro.so\" \"$1\"\n",
|
||||
"skeleton/SYSTEM/tg5040/paks/Emus/PS.pak/launch.sh": "#!/bin/sh\nEMU_EXE=swanstation\nminarch.elf \"$CORES_PATH/${EMU_EXE}_libretro.so\" \"$1\"\n",
|
||||
"skeleton/EXTRAS/Emus/miyoomini/A2600.pak/launch.sh": "#!/bin/sh\nEMU_EXE=stella2014\nminarch.elf \"$CORES_PATH/${EMU_EXE}_libretro.so\" \"$1\"\n"
|
||||
},
|
||||
"plumos": {
|
||||
"systems.json": "{\n \"systems\": [\n {\n \"id\": \"nes\",\n \"enabled\": true,\n \"directory_aliases\": [\n {\"name\": \"nes\", \"priority\": 20},\n {\"name\": \"FC\", \"priority\": 10, \"shared\": true}\n ],\n \"extensions\": [\"nes\", \"zip\"],\n \"default_launch_profile\": \"retroarch:quicknes\"\n },\n {\n \"id\": \"fds\",\n \"enabled\": false,\n \"directory_aliases\": [\n {\"name\": \"FC\", \"priority\": 10, \"shared\": true},\n {\"name\": \"fds\", \"priority\": 20}\n ],\n \"extensions\": [\"fds\"],\n \"default_launch_profile\": \"standalone:fceux\"\n }\n ]\n}\n"
|
||||
},
|
||||
"muos": {
|
||||
"core.json": "{\n \"Sony PlayStation\": {\n \"catalogue\": \"Sony PlayStation\",\n \"default\": \"psx rearmed\",\n \"friendly\": [\"ps\", \"psx\", \"sonyplaystation\"],\n \"libretro\": {\"psx rearmed\": {\"core\": \"pcsx_rearmed_libretro.so\"}}\n },\n \"Nintendo DS\": {\n \"catalogue\": \"Nintendo DS\",\n \"default\": \"drastic\",\n \"friendly\": [\"nds\", \"nintendods\"],\n \"libretro\": {}\n }\n}\n"
|
||||
},
|
||||
"gmenu2x": {
|
||||
"board/miyoo/roms/GB/a.gb": "",
|
||||
"board/miyoo/roms/GBA/b.gba": "",
|
||||
"board/miyoo/roms/autorun.inf": ""
|
||||
},
|
||||
"gpsp": {
|
||||
"miyoo/opkg_assets/gpsp.lnk": "title=gpSP\nexec=/mnt/emus/gpsp/gpsp\nselectordir=/mnt/roms/GBA\nselectorfilter=.gba,.zip\n"
|
||||
},
|
||||
"dist": {
|
||||
"games/SNES/boot.rom": "",
|
||||
"games/mame/.keep": "",
|
||||
"games/readme.txt": ""
|
||||
},
|
||||
"romm": {
|
||||
"index.ts": "const _EJS_CORES_MAP: Record<string, string[]> = {\n \"3do\": [\"opera\"],\n arcade: [\n \"mame2003_plus\",\n \"fbneo\",\n ],\n};\n\nconst _EJS_NIGHTLY_CORES_MAP: Record<string, string[]> = {\n \"3ds\": [\"azahar\"],\n};\n",
|
||||
"known_bios_files.json": "{\"3do:panafz1.bin\": {}, \"64dd:IPL.n64\": {}}\n"
|
||||
},
|
||||
"bizhawk": {
|
||||
"PathEntryCollection.cs": "\t\tprivate static readonly string COMBINED_SYSIDS_GB = string.Join(\"_\", VSystemID.Raw.GB, VSystemID.Raw.GBC, VSystemID.Raw.SGB);\n\t\t\tCommonEntriesFor(VSystemID.Raw.Sega32X, basePath: Path.Combine(\".\", \"32X\")),\n\t\t\tCommonEntriesFor(COMBINED_SYSIDS_GB, basePath: Path.Combine(\".\", \"Gameboy\")),\n\t\t\tCommonEntriesFor(VSystemID.Raw.NES, basePath: Path.Combine(\".\", \"NES\")),\n",
|
||||
"RomLoader.cs": "\t\t\tpublic static readonly IReadOnlyCollection<string> GB = new[] { \"gb\", \"gbc\", \"sgb\" };\n\t\t\tpublic static readonly IReadOnlyCollection<string> NES = new[] { \"nes\", \"fds\", /*\"x\"*/ \"unf\" };\n",
|
||||
"Config.cs": "\t\tpublic static readonly IReadOnlyList<(string[] AppliesTo, string[] CoreNames)> CorePickerUIData = new List<(string[], string[])>\n\t\t{\n\t\t\t([ VSystemID.Raw.GB, VSystemID.Raw.GBC ],\n\t\t\t\t[ CoreNames.Gambatte, CoreNames.Sameboy ]),\n\t\t\t([ VSystemID.Raw.NES ],\n\t\t\t\t[ CoreNames.QuickNes, CoreNames.NesHawk ]),\n\t\t};\n"
|
||||
}
|
||||
}
|
||||
Loaded 100 of 102 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user