2024-08-20 22:58:24 +02:00
|
|
|
{
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
|
|
|
|
}:
|
2023-03-23 19:01:42 +01:00
|
|
|
|
2024-08-20 22:58:24 +02:00
|
|
|
let
|
|
|
|
|
cfg = config.modules.media.emulators;
|
|
|
|
|
in
|
|
|
|
|
{
|
2023-03-23 19:01:42 +01:00
|
|
|
options.modules.media.emulators = {
|
2024-08-20 22:58:24 +02:00
|
|
|
psx.enable = lib.my.mkBoolOpt false; # Playstation
|
|
|
|
|
ds.enable = lib.my.mkBoolOpt false; # Nintendo DS
|
|
|
|
|
gc.enable = lib.my.mkBoolOpt false; # GameCube
|
|
|
|
|
gb.enable = lib.my.mkBoolOpt false; # GameBoy + GameBoy Color
|
|
|
|
|
gba.enable = lib.my.mkBoolOpt false; # GameBoy Advance
|
|
|
|
|
snes.enable = lib.my.mkBoolOpt false; # Super Nintendo
|
2023-03-23 19:01:42 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = {
|
2024-08-20 22:58:24 +02:00
|
|
|
user.packages = [
|
|
|
|
|
(lib.mkIf cfg.psx.enable pkgs.duckstation)
|
|
|
|
|
(lib.mkIf cfg.ds.enable pkgs.desmume)
|
|
|
|
|
(lib.mkIf cfg.gc.enable pkgs.dolphinEmu)
|
|
|
|
|
(lib.mkIf (cfg.gba.enable || cfg.gb.enable || cfg.snes.enable) pkgs.higan)
|
2023-03-23 19:01:42 +01:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
}
|