250 lines
3.9 KiB
Nix
250 lines
3.9 KiB
Nix
# emulators.nix — single source of truth for built-in emulator metadata.
|
|
#
|
|
# Both default.nix (for romFolder/fileTypes fallbacks) and options.nix (for
|
|
# package defaults) import this file directly, preventing the two files from
|
|
# drifting out of sync.
|
|
#
|
|
# Each entry may contain:
|
|
# package — nixpkgs derivation (required)
|
|
# romFolder — sub-directory name under romsDirectory (required)
|
|
# fileTypes — list of file extensions matched by the glob parser (required)
|
|
# parserType — SRM parser type string; omit to use the default "Glob"
|
|
|
|
pkgs: {
|
|
|
|
ryujinx = {
|
|
# ryujinx was removed from nixpkgs; ryubing is the maintained community fork
|
|
package = pkgs.ryubing;
|
|
romFolder = "switch";
|
|
fileTypes = [
|
|
".nca"
|
|
".NCA"
|
|
".nro"
|
|
".NRO"
|
|
".nso"
|
|
".NSO"
|
|
".nsp"
|
|
".NSP"
|
|
".xci"
|
|
".XCI"
|
|
];
|
|
};
|
|
|
|
# yuzu was removed from nixpkgs after the Nintendo lawsuit; eden is the successor
|
|
yuzu = {
|
|
package = pkgs.eden;
|
|
romFolder = "switch";
|
|
fileTypes = [
|
|
".nsp"
|
|
".NSP"
|
|
".xci"
|
|
".XCI"
|
|
];
|
|
};
|
|
|
|
pcsx2 = {
|
|
package = pkgs.pcsx2;
|
|
romFolder = "ps2";
|
|
fileTypes = [
|
|
".iso"
|
|
".ISO"
|
|
".bin"
|
|
".BIN"
|
|
".chd"
|
|
".CHD"
|
|
];
|
|
};
|
|
|
|
rpcs3 = {
|
|
package = pkgs.rpcs3;
|
|
romFolder = "ps3";
|
|
fileTypes = [
|
|
".iso"
|
|
".ISO"
|
|
".bin"
|
|
".BIN"
|
|
".pkg"
|
|
".PKG"
|
|
];
|
|
};
|
|
|
|
dolphin-emu = {
|
|
# Use pkgs.dolphin-emu (the user-facing wrapper), not pkgs.dolphinEmu
|
|
package = pkgs.dolphin-emu;
|
|
romFolder = "gc";
|
|
fileTypes = [
|
|
".iso"
|
|
".ISO"
|
|
".gcm"
|
|
".GCM"
|
|
".ciso"
|
|
".CISO"
|
|
".rvz"
|
|
".RVZ"
|
|
".wbfs"
|
|
".WBFS"
|
|
];
|
|
};
|
|
|
|
duckstation = {
|
|
package = pkgs.duckstation;
|
|
romFolder = "psx";
|
|
fileTypes = [
|
|
".iso"
|
|
".ISO"
|
|
".bin"
|
|
".BIN"
|
|
".chd"
|
|
".CHD"
|
|
".pbp"
|
|
".PBP"
|
|
];
|
|
};
|
|
|
|
melonDS = {
|
|
package = pkgs.melonDS;
|
|
romFolder = "nds";
|
|
fileTypes = [
|
|
".nds"
|
|
".NDS"
|
|
];
|
|
};
|
|
|
|
cemu = {
|
|
package = pkgs.cemu;
|
|
romFolder = "wiiu";
|
|
fileTypes = [
|
|
".wud"
|
|
".WUD"
|
|
".wux"
|
|
".WUX"
|
|
".rpx"
|
|
".RPX"
|
|
];
|
|
};
|
|
|
|
ppsspp = {
|
|
package = pkgs.ppsspp;
|
|
romFolder = "psp";
|
|
fileTypes = [
|
|
".iso"
|
|
".ISO"
|
|
".cso"
|
|
".CSO"
|
|
".pbp"
|
|
".PBP"
|
|
];
|
|
};
|
|
|
|
mame = {
|
|
package = pkgs.mame;
|
|
romFolder = "arcade";
|
|
fileTypes = [
|
|
".zip"
|
|
".ZIP"
|
|
".7z"
|
|
".7Z"
|
|
];
|
|
};
|
|
|
|
dosbox = {
|
|
package = pkgs.dosbox;
|
|
romFolder = "dos";
|
|
fileTypes = [
|
|
".exe"
|
|
".EXE"
|
|
".bat"
|
|
".BAT"
|
|
".com"
|
|
".COM"
|
|
];
|
|
};
|
|
|
|
snes9x = {
|
|
package = pkgs.snes9x-gtk;
|
|
romFolder = "snes";
|
|
fileTypes = [
|
|
".smc"
|
|
".SMC"
|
|
".sfc"
|
|
".SFC"
|
|
".fig"
|
|
".FIG"
|
|
];
|
|
};
|
|
|
|
mgba = {
|
|
package = pkgs.mgba;
|
|
romFolder = "gba";
|
|
fileTypes = [
|
|
".gba"
|
|
".GBA"
|
|
];
|
|
};
|
|
|
|
mupen64plus = {
|
|
package = pkgs.mupen64plus;
|
|
romFolder = "n64";
|
|
fileTypes = [
|
|
".n64"
|
|
".N64"
|
|
".v64"
|
|
".V64"
|
|
".z64"
|
|
".Z64"
|
|
];
|
|
};
|
|
|
|
retroarch = {
|
|
package = pkgs.retroarch;
|
|
romFolder = "retroarch";
|
|
fileTypes = [
|
|
".zip"
|
|
".ZIP"
|
|
".7z"
|
|
".7Z"
|
|
".iso"
|
|
".ISO"
|
|
".bin"
|
|
".BIN"
|
|
".chd"
|
|
".CHD"
|
|
];
|
|
};
|
|
|
|
flycast = {
|
|
package = pkgs.flycast;
|
|
romFolder = "dreamcast";
|
|
fileTypes = [
|
|
".gdi"
|
|
".GDI"
|
|
".cdi"
|
|
".CDI"
|
|
".chd"
|
|
".CHD"
|
|
];
|
|
};
|
|
|
|
# citra-nightly was removed from nixpkgs; azahar is the maintained successor
|
|
citra = {
|
|
package = pkgs.azahar;
|
|
romFolder = "3ds";
|
|
fileTypes = [
|
|
".3ds"
|
|
".3DS"
|
|
".cia"
|
|
".CIA"
|
|
".cxi"
|
|
".CXI"
|
|
];
|
|
};
|
|
|
|
"Non-SRM Shortcuts" = {
|
|
package = pkgs.steam;
|
|
parserType = "Non-SRM Shortcuts";
|
|
romFolder = "";
|
|
fileTypes = [ ];
|
|
};
|
|
|
|
}
|