Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
K900
2024-11-23 15:08:40 +03:00
180 changed files with 4598 additions and 6509 deletions
+12
View File
@@ -2273,6 +2273,12 @@
githubId = 206242;
name = "Andreas Wiese";
};
axertheaxe = {
email = "axertheaxe@proton.me";
github = "axertheaxe";
githubId = 99703210;
name = "Katherine Jamison";
};
ayazhafiz = {
email = "ayaz.hafiz.1@gmail.com";
github = "hafiz";
@@ -23132,6 +23138,12 @@
githubId = 11413574;
name = "Fiona Weber";
};
vieta = {
email = "xyzVieta@gmail.com";
github = "yVieta";
githubId = 94648307;
name = "Thanh Viet Nguyen";
};
vifino = {
email = "vifino@tty.sh";
github = "vifino";
+1 -1
View File
@@ -440,7 +440,6 @@ with lib.maintainers;
hlolli
glittershark
ericdallo
thiagokokada
];
scope = "Maintain GraalVM Community Edition packages.";
shortName = "GraalVM-CE";
@@ -576,6 +575,7 @@ with lib.maintainers;
members = [
aanderse
edwtjo
hrdinka
thiagokokada
];
scope = "Maintain Libretro, RetroArch and related packages.";
+184 -4
View File
@@ -3,14 +3,20 @@ let
cfg = config.services.pgbouncer;
settingsFormat = pkgs.formats.ini { };
configFile = settingsFormat.generate "pgbouncer.ini" cfg.settings;
configFile = settingsFormat.generate "pgbouncer.ini"
(lib.filterAttrsRecursive (_: v: v != null) cfg.settings);
configPath = "pgbouncer/pgbouncer.ini";
in
{
imports = [
(lib.mkRenamedOptionModule
(lib.mkRemovedOptionModule
[ "services" "pgbouncer" "logFile" ]
[ "services" "pgbouncer" "settings" "pgbouncer" "log_file" ])
''
`services.pgbouncer.logFile` has been removed, use `services.pgbouncer.settings.pgbouncer.logfile`
instead.
Please note that the new option expects an absolute path
whereas the old option accepted paths relative to pgbouncer's home dir.
'')
(lib.mkRenamedOptionModule
[ "services" "pgbouncer" "listenAddress" ]
[ "services" "pgbouncer" "settings" "pgbouncer" "listen_addr" ])
@@ -128,7 +134,181 @@ in
};
settings = lib.mkOption {
type = settingsFormat.type;
type = lib.types.submodule {
freeformType = settingsFormat.type;
options = {
pgbouncer = {
listen_port = lib.mkOption {
type = lib.types.port;
default = 6432;
description = ''
Which port to listen on. Applies to both TCP and Unix sockets.
'';
};
listen_addr = lib.mkOption {
type = lib.types.nullOr lib.types.commas;
example = "*";
default = null;
description = ''
Specifies a list (comma-separated) of addresses where to listen for TCP connections.
You may also use * meaning listen on all addresses.
When not set, only Unix socket connections are accepted.
Addresses can be specified numerically (IPv4/IPv6) or by name.
'';
};
pool_mode = lib.mkOption {
type = lib.types.enum [ "session" "transaction" "statement" ];
default = "session";
description = ''
Specifies when a server connection can be reused by other clients.
session
Server is released back to pool after client disconnects. Default.
transaction
Server is released back to pool after transaction finishes.
statement
Server is released back to pool after query finishes.
Transactions spanning multiple statements are disallowed in this mode.
'';
};
max_client_conn = lib.mkOption {
type = lib.types.int;
default = 100;
description = ''
Maximum number of client connections allowed.
When this setting is increased, then the file descriptor limits in the operating system
might also have to be increased. Note that the number of file descriptors potentially
used is more than maxClientConn. If each user connects under its own user name to the server,
the theoretical maximum used is:
maxClientConn + (max pool_size * total databases * total users)
If a database user is specified in the connection string (all users connect under the same user name),
the theoretical maximum is:
maxClientConn + (max pool_size * total databases)
The theoretical maximum should never be reached, unless somebody deliberately crafts a special load for it.
Still, it means you should set the number of file descriptors to a safely high number.
'';
};
default_pool_size = lib.mkOption {
type = lib.types.int;
default = 20;
description = ''
How many server connections to allow per user/database pair.
Can be overridden in the per-database configuration.
'';
};
max_db_connections = lib.mkOption {
type = lib.types.int;
default = 0;
description = ''
Do not allow more than this many server connections per database (regardless of user).
This considers the PgBouncer database that the client has connected to,
not the PostgreSQL database of the outgoing connection.
This can also be set per database in the [databases] section.
Note that when you hit the limit, closing a client connection to one pool will
not immediately allow a server connection to be established for another pool,
because the server connection for the first pool is still open.
Once the server connection closes (due to idle timeout),
a new server connection will immediately be opened for the waiting pool.
0 = unlimited
'';
};
max_user_connections = lib.mkOption {
type = lib.types.int;
default = 0;
description = ''
Do not allow more than this many server connections per user (regardless of database).
This considers the PgBouncer user that is associated with a pool,
which is either the user specified for the server connection
or in absence of that the user the client has connected as.
This can also be set per user in the [users] section.
Note that when you hit the limit, closing a client connection to one pool
will not immediately allow a server connection to be established for another pool,
because the server connection for the first pool is still open.
Once the server connection closes (due to idle timeout), a new server connection
will immediately be opened for the waiting pool.
0 = unlimited
'';
};
ignore_startup_parameters = lib.mkOption {
type = lib.types.nullOr lib.types.commas;
example = "extra_float_digits";
default = null;
description = ''
By default, PgBouncer allows only parameters it can keep track of in startup packets:
client_encoding, datestyle, timezone and standard_conforming_strings.
All others parameters will raise an error.
To allow others parameters, they can be specified here, so that PgBouncer knows that
they are handled by the admin and it can ignore them.
If you need to specify multiple values, use a comma-separated list.
IMPORTANT: When using prometheus-pgbouncer-exporter, you need:
extra_float_digits
<https://github.com/prometheus-community/pgbouncer_exporter#pgbouncer-configuration>
'';
};
};
databases = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = {};
example = {
exampledb = "host=/run/postgresql/ port=5432 auth_user=exampleuser dbname=exampledb sslmode=require";
bardb = "host=localhost dbname=bazdb";
foodb = "host=host1.example.com port=5432";
};
description = ''
Detailed information about PostgreSQL database definitions:
<https://www.pgbouncer.org/config.html#section-databases>
'';
};
users = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = {};
example = {
user1 = "pool_mode=session";
};
description = ''
Optional.
Detailed information about PostgreSQL user definitions:
<https://www.pgbouncer.org/config.html#section-users>
'';
};
peers = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = {};
example = {
"1" = "host=host1.example.com";
"2" = "host=/tmp/pgbouncer-2 port=5555";
};
description = ''
Optional.
Detailed information about PostgreSQL database definitions:
<https://www.pgbouncer.org/config.html#section-peers>
'';
};
};
};
default = { };
description = ''
Configuration for PgBouncer, see <https://www.pgbouncer.org/config.html>
@@ -25,7 +25,7 @@ buildPythonApplication rec {
installFlags = [ "PREFIX=$(out)" ];
makeWrapperArgs = [
"--prefix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ libjack2 ])
"--suffix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ libjack2 ])
];
preFixup = ''
@@ -32,7 +32,7 @@ buildPythonApplication rec {
installFlags = [ "PREFIX=$(out)" ];
makeWrapperArgs = [
"--prefix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ libjack2 ])
"--suffix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ libjack2 ])
];
postFixup = ''
@@ -16236,12 +16236,12 @@ final: prev:
vim-nixhash = buildVimPlugin {
pname = "vim-nixhash";
version = "2023-01-09";
version = "2024-11-20";
src = fetchFromGitHub {
owner = "symphorien";
repo = "vim-nixhash";
rev = "71676294bcb22c52d372bd8850b1bd3d7173bfac";
sha256 = "14chq3c5dhkvllkmrrnpd8lbmlbm8ji1gqxn686bnh0d1w2r9hyk";
rev = "3b4d3f2742b168decc2281033b9c5c2c700c9ceb";
sha256 = "04208x1q846ddh61dcdgxylnqxmbkh1vh3qizwq0i5mb55pdrxpc";
};
meta.homepage = "https://github.com/symphorien/vim-nixhash/";
};
@@ -1,46 +1,16 @@
# RetroArch
# Libretro
This directory includes [RetroArch](https://www.retroarch.com/), [libretro
cores](https://docs.libretro.com/guides/core-list/) and related packages.
[libretro cores](https://docs.libretro.com/guides/core-list/) and related
packages.
## Adding new cores
The basic steps to add a new core are:
1. Add the core repository to [update_cores.py](./update_cores.py) inside the
`CORES` map.
- The minimum required parameter is `repo`
- If the repository owner is not `libretro`, set `owner` parameter
- If the core needs submodules, set `fetch_submodules` parameter to `True`
- To pin the core to a specific release, set `rev` parameter
2. Run `./pkgs/applications/emulators/retroarch/update_cores.py <emulator>` to
generate [`hashes.json`](./hashes.json) file
3. Add your new core to [`cores.nix`](./cores.nix) file, using
[`mkLibretroCore`](./mkLibretroCore.nix) function
- In general, the attribute name should be the same as the repo name, unless
there is a good reason not to
- Check the core repo and [Libretro
documentation](https://docs.libretro.com/) for the core you're trying to add
for instructions on how to build
- Also check the examples inside [`cores.nix`](./cores.nix)
- If your core is recently released, there is a good chance that you may
need to update [`libretro-core-info`](./libretro-core-info.nix) for things
to work inside RetroArch
4. Try to build your core with `nix-build -A libretro.<core>`
## Updating cores
Just run:
```console
# From the root of your nixpkgs directory
./pkgs/applications/emulators/retroarch/update_cores.nix
```
Keep in mind that because of the huge amount of cores that we package here, it
is recommended to set `GITHUB_TOKEN` to your GitHub's [Personal Access
Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
(PAT), otherwise the update will probably fail due to GitHub's API rate limit.
1. Add a new core using `mkLibretroCore` function (use one of the existing
files as an example)
2. Add your new core to [`default.nix`](./default.nix) file
3. Try to build your core with `nix-build -A libretro.<core>`
## Using RetroArch with cores
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore rec {
core = "atari800";
version = "0-unstable-2024-10-31";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-atari800";
rev = "6a18cb23cc4a7cecabd9b16143d2d7332ae8d44b";
hash = "sha256-+cZXHtaXnpU/zCwiDtjkyNMFGDahiHzqV2FoTCRnUWE=";
};
makefile = "Makefile";
makeFlags = [ "GIT_VERSION=${builtins.substring 0 7 src.rev}" ];
meta = {
description = "Port of Atari800 to libretro";
homepage = "https://github.com/libretro/libretro-atari800";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-gba";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-gba-libretro";
rev = "6cee80685f735ea6c2373db2622a1f1ee9f39d39";
hash = "sha256-a3XgExXVCUFw3GLCUkEl6now2L8qVdNOaXvrDMcT1ZE=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's GameBoy Advance core to libretro";
homepage = "https://github.com/libretro/beetle-gba-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-lynx";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-lynx-libretro";
rev = "7fead71b49e0f08be5c4d4224fea73c6174763bf";
hash = "sha256-fYBx/bjbhRXoVIGnEg4/oMVm705ivL1os+FfVQLRSyI=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's Lynx core to libretro";
homepage = "https://github.com/libretro/beetle-lynx-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-ngp";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-ngp-libretro";
rev = "139fe34c8dfc5585d6ee1793a7902bca79d544de";
hash = "sha256-ruWnCgMxfpPHTWQ7vgNUczmGRzNKKhoZTNlUcNgm4T8=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's NeoGeo Pocket core to libretro";
homepage = "https://github.com/libretro/beetle-ngp-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-pce-fast";
version = "0-unstable-2024-11-15";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-pce-fast-libretro";
rev = "931586f0512663f625a6e981d3047a6620281ab5";
hash = "sha256-9Nne4upiQNSAlTZsyXcLNIwN8MMKUO1ycahowYW1sWg=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's PC Engine fast core to libretro";
homepage = "https://github.com/libretro/beetle-pce-fast-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-pce";
version = "0-unstable-2024-11-15";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-pce-libretro";
rev = "af28fb0385d00e0292c4703b3aa7e72762b564d2";
hash = "sha256-W+74RTIidSUdviihLy926OvlSdqMECvOLEEiWMtB50w=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's PC Engine core to libretro";
homepage = "https://github.com/libretro/beetle-pce-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-pcfx";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-pcfx-libretro";
rev = "dd04cef9355286488a1d78ff18c4c848a1575540";
hash = "sha256-oFBuriCbJWjgPH9RRAM/XUvkW0gKXnvs7lmBpJpWewo=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's PCFX core to libretro";
homepage = "https://github.com/libretro/beetle-pcfx-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,38 @@
{
lib,
libGL,
libGLU,
fetchFromGitHub,
mkLibretroCore,
withHw ? false,
}:
mkLibretroCore {
core = "mednafen-psx" + lib.optionalString withHw "-hw";
version = "0-unstable-2024-11-15";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-psx-libretro";
rev = "1068cb8dbd6f312664ecf5901625cab4a6533204";
hash = "sha256-ioAnpz6OkHWPaYE0uTEvnHV+vGzq02bQ4oUP8jW6/YA=";
};
extraBuildInputs = lib.optionals withHw [
libGL
libGLU
];
makefile = "Makefile";
makeFlags = [
"HAVE_HW=${if withHw then "1" else "0"}"
"HAVE_LIGHTREC=1"
];
meta = {
description =
"Port of Mednafen's PSX Engine core to libretro"
+ lib.optionalString withHw " (with hardware acceleration support)";
homepage = "https://github.com/libretro/beetle-psx-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-saturn";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-saturn-libretro";
rev = "0a78a9a5ab0088ba19f21e028dda9f4b4d7c9e48";
hash = "sha256-WNQhtaYBg7JqPdxcD0cLRjr2pSda6Xmx/WWYzyu5u9c=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's Saturn core to libretro";
homepage = "https://github.com/libretro/beetle-saturn-libretro";
license = lib.licenses.gpl2Only;
platforms = [
"aarch64-linux"
"x86_64-linux"
];
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-supafaust";
version = "0-unstable-2024-10-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "supafaust";
rev = "e25f66765938d33f9ad5850e8d6cd597e55b7299";
hash = "sha256-ZgOXHhEHt54J2B1q6uA8v6uOK53g7idJlgoC4guTGow=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's experimental snes_faust core to libretro";
homepage = "https://github.com/libretro/supafaust";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-supergrafx";
version = "0-unstable-2024-11-15";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-supergrafx-libretro";
rev = "a776133c34ae8da5daf7d9ccb43e3e292e2b07b0";
hash = "sha256-FemWW4EPQCwhrS7YEytf6fEeimdTTfzaDdyRNDIBQyk=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's SuperGrafx core to libretro";
homepage = "https://github.com/libretro/beetle-supergrafx-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-vb";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-vb-libretro";
rev = "8f837ebc077afdd6652efb2827fd8308a07113ca";
hash = "sha256-eAnBubNhj78G4r8OHVqwFXGOSA9wEYI6ZwNyiwDW8W8=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's VirtualBoy core to libretro";
homepage = "https://github.com/libretro/beetle-vb-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mednafen-wswan";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-wswan-libretro";
rev = "440e9228592a3f603d7d09e8bee707b0163f545f";
hash = "sha256-+98gCDBYeqUlFGzX83lwTGqSezLnzWRwapZCn4T37uE=";
};
makefile = "Makefile";
meta = {
description = "Port of Mednafen's WonderSwan core to libretro";
homepage = "https://github.com/libretro/beetle-wswan-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,23 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "blastem";
version = "0-unstable-2022-07-26";
src = fetchFromGitHub {
owner = "libretro";
repo = "blastem";
rev = "277e4a62668597d4f59cadda1cbafb844f981d45";
hash = "sha256-EHvKElPw8V5Z6LnMaQXBCdM4niLIlF3aBm8dRbeYXHs=";
};
meta = {
description = "Port of BlastEm to libretro";
homepage = "https://github.com/libretro/blastem";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.x86;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "bluemsx";
version = "0-unstable-2024-10-22";
src = fetchFromGitHub {
owner = "libretro";
repo = "bluemsx-libretro";
rev = "01ce142ccb85c302420cb962d1b6e6a68a6ce076";
hash = "sha256-h3Zpv+h6CbM1pdSOXsjN0pFUjXLn5T/R5W55VZXpMVM=";
};
meta = {
description = "Port of BlueMSX to libretro";
homepage = "https://github.com/libretro/blueMSX-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
xorg,
}:
mkLibretroCore {
core = "bsnes-hd-beta";
version = "0-unstable-2023-04-26";
src = fetchFromGitHub {
owner = "DerKoun";
repo = "bsnes-hd";
rev = "f46b6d6368ea93943a30b5d4e79e8ed51c2da5e8";
hash = "sha256-Y3FhGtcz7BzwUSBy1SGMuylJdZti/JB8qQnabIkG/dI=";
};
extraBuildInputs = [
xorg.libX11
xorg.libXext
];
makefile = "GNUmakefile";
makeFlags = [
"-C"
"bsnes"
"target=libretro"
"platform=linux"
];
postBuild = "cd bsnes/out";
meta = {
description = "Port of bsnes-hd to libretro";
homepage = "https://github.com/DerKoun/bsnes-hd";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
withProfile ? "accuracy",
}:
mkLibretroCore {
core = "bsnes-mercury-${withProfile}";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "bsnes-mercury";
rev = "0f35d044bf2f2b879018a0500e676447e93a1db1";
hash = "sha256-skVREKYITZn+gKKSZmwuBCWrG0jb/pifwIgat8VyQ8U=";
};
makefile = "Makefile";
makeFlags = [ "PROFILE=${withProfile}" ];
meta = {
description = "Fork of bsnes with HLE DSP emulation restored (${withProfile} profile)";
homepage = "https://github.com/libretro/bsnes-mercury";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "bsnes";
version = "0-unstable-2024-09-06";
src = fetchFromGitHub {
owner = "libretro";
repo = "bsnes-libretro";
rev = "20c55eb6333a11395ba637df8583066483e58cb2";
hash = "sha256-IP00xtxS3wwnQSmYltrX8GEHZX/65xnx2EsmQlE1VZM=";
};
makefile = "Makefile";
meta = {
description = "Port of bsnes to libretro";
homepage = "https://github.com/libretro/bsnes-libretro";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,52 @@
{
lib,
fetchFromGitHub,
boost,
ffmpeg_6,
gcc12Stdenv,
libGL,
libGLU,
mkLibretroCore,
nasm,
}:
mkLibretroCore rec {
core = "citra";
version = "0-unstable-2024-04-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "citra";
# TODO: upstream migrated to cmake, this is the latest rev without it
rev = "36b600692905ebd457cbc9321e2f521938eced16";
hash = "sha256-ZJcsdFgLBda4xS4Z6I8Pu+6B9TYwak//0CbloDK3Yg0=";
fetchSubmodules = true;
};
makefile = "Makefile";
makeFlags = [
"HAVE_FFMPEG_STATIC=0"
# https://github.com/libretro/citra/blob/1a66174355b5ed948de48ef13c0ed508b6d6169f/Makefile#L87-L90
"GIT_REV=${src.rev}"
"GIT_DESC=${lib.substring 0 7 src.rev}"
"GIT_BRANCH=master"
"BUILD_DATE=01/01/1970_00:00"
];
extraBuildInputs = [
boost
ffmpeg_6
libGL
libGLU
nasm
];
# FIXME: build fail with GCC13:
# error: 'mic_device_name' has incomplete type
stdenv = gcc12Stdenv;
meta = {
description = "Port of Citra to libretro";
homepage = "https://github.com/libretro/citra";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
libpcap,
libGLU,
libGL,
xorg,
}:
mkLibretroCore {
core = "desmume";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "desmume";
rev = "7f05a8d447b00acd9e0798aee97b4f72eb505ef9";
hash = "sha256-BttWMunVbfPOTGx+DV+3QyOwW+55tgXKVIn99DZhbBI=";
};
extraBuildInputs = [
libpcap
libGLU
libGL
xorg.libX11
];
makeFlags =
lib.optional stdenv.hostPlatform.isAarch32 "platform=armv-unix"
++ lib.optional (!stdenv.hostPlatform.isx86) "DESMUME_JIT=0";
preBuild = "cd desmume/src/frontend/libretro";
meta = {
description = "Port of DeSmuME to libretro";
homepage = "https://github.com/libretro/desmume";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
libpcap,
libGLU,
libGL,
xorg,
}:
mkLibretroCore {
core = "desmume2015";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "desmume2015";
rev = "af397ff3d1f208c27f3922cc8f2b8e08884ba893";
hash = "sha256-kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U=";
};
extraBuildInputs = [
libpcap
libGLU
libGL
xorg.libX11
];
makeFlags =
lib.optional stdenv.hostPlatform.isAarch32 "platform=armv-unix"
++ lib.optional (!stdenv.hostPlatform.isx86) "DESMUME_JIT=0";
preBuild = "cd desmume";
meta = {
description = "Port of DeSmuME ~2015 to libretro";
homepage = "https://github.com/libretro/desmume2015";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,71 @@
{
lib,
fetchFromGitHub,
cmake,
curl,
gettext,
hidapi,
libGL,
libGLU,
libevdev,
mkLibretroCore,
pcre,
pkg-config,
sfml,
udev,
xorg,
}:
mkLibretroCore {
core = "dolphin";
version = "0-unstable-2024-04-19";
src = fetchFromGitHub {
owner = "libretro";
repo = "dolphin";
rev = "89a4df725d4eb24537728f7d655cddb1add25c18";
hash = "sha256-f9O3//EuoCSPQC7GWmf0EzAEpjoKof30kIDBCDw0dbs=";
};
extraNativeBuildInputs = [
cmake
curl
pkg-config
];
extraBuildInputs = [
gettext
hidapi
libGL
libGLU
libevdev
pcre
sfml
udev
xorg.libSM
xorg.libX11
xorg.libXext
xorg.libXi
xorg.libXinerama
xorg.libXrandr
xorg.libXxf86vm
xorg.libpthreadstubs
xorg.libxcb
xorg.xcbutil
];
makefile = "Makefile";
cmakeFlags = [
"-DLIBRETRO=ON"
"-DLIBRETRO_STATIC=1"
"-DENABLE_QT=OFF"
"-DENABLE_LTO=OFF"
"-DUSE_UPNP=OFF"
"-DUSE_DISCORD_PRESENCE=OFF"
];
dontUseCmakeBuildDir = true;
meta = {
description = "Port of Dolphin to libretro";
homepage = "https://github.com/libretro/dolphin";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "dosbox-pure";
version = "0-unstable-2024-09-28";
src = fetchFromGitHub {
owner = "schellingb";
repo = "dosbox-pure";
rev = "9b4147fd14332a7354c9b76fa72653bda2d919e9";
hash = "sha256-lzRBzBMIQ3X+VAHK8pl/HYELecTkdFlWJI7C1csmZ7I=";
};
hardeningDisable = [ "format" ];
makefile = "Makefile";
meta = {
description = "Port of DOSBox to libretro aiming for simplicity and ease of use";
homepage = "https://github.com/schellingb/dosbox-pure";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "dosbox";
version = "0-unstable-2022-07-18";
src = fetchFromGitHub {
owner = "libretro";
repo = "dosbox-libretro";
rev = "b7b24262c282c0caef2368c87323ff8c381b3102";
hash = "sha256-PG2eElenlEpu0U/NIh53p0uLqewnEdaq6Aoak5E1P3I=";
};
env.CXXFLAGS = "-std=gnu++11";
meta = {
description = "Port of DOSBox to libretro";
homepage = "https://github.com/libretro/dosbox-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,75 @@
{
lib,
fetchFromGitHub,
cmake,
fetchpatch,
fmt,
freetype,
harfbuzz,
liblcf,
libpng,
libsndfile,
libvorbis,
libxmp,
mkLibretroCore,
mpg123,
opusfile,
pcre,
pixman,
pkg-config,
speexdsp,
}:
mkLibretroCore {
core = "easyrpg";
version = "0.8-unstable-2023-04-29";
src = fetchFromGitHub {
owner = "EasyRPG";
repo = "Player";
rev = "f8e41f43b619413f95847536412b56f85307d378";
hash = "sha256-nvWM4czTv/GxY9raomBEn7dmKBeLtSA9nvjMJxc3Q8s=";
fetchSubmodules = true;
};
extraNativeBuildInputs = [
cmake
pkg-config
];
extraBuildInputs = [
fmt
freetype
harfbuzz
liblcf
libpng
libsndfile
libvorbis
libxmp
mpg123
opusfile
pcre
pixman
speexdsp
];
patches = [
# The following patch is shared with easyrpg-player.
# Update when new versions of liblcf and easyrpg-player are released.
# See easyrpg-player expression for details.
(fetchpatch {
name = "0001-Fix-building-with-fmtlib-10.patch";
url = "https://github.com/EasyRPG/Player/commit/ab6286f6d01bada649ea52d1f0881dde7db7e0cf.patch";
hash = "sha256-GdSdVFEG1OJCdf2ZIzTP+hSrz+ddhTMBvOPjvYQHy54=";
})
];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DPLAYER_TARGET_PLATFORM=libretro"
"-DCMAKE_INSTALL_DATADIR=${placeholder "out"}/share"
];
makefile = "Makefile";
meta = {
description = "EasyRPG Player libretro port";
homepage = "https://github.com/EasyRPG/Player";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "81";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "81-libretro";
rev = "ffc99f27f092addc9ddd34dd0e3a3d4d1c053cbf";
hash = "sha256-3AIXk3LJHZHWIojMeo2BJHWYDHQ17WVbkwjFhXM14ZE=";
};
meta = {
description = "Port of EightyOne to libretro";
homepage = "https://github.com/libretro/81-libretro";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "fbalpha2012";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "fbalpha2012";
rev = "77167cea72e808384c136c8c163a6b4975ce7a84";
hash = "sha256-giEV09dT/e82bmDlRkxpkW04JcsEZc/enIPecqYtg3c=";
};
makefile = "makefile.libretro";
preBuild = "cd svn-current/trunk";
meta = {
description = "Port of Final Burn Alpha ~2012 to libretro";
homepage = "https://github.com/libretro/fbalpha2012";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "fbneo";
version = "0-unstable-2024-10-03";
src = fetchFromGitHub {
owner = "libretro";
repo = "fbneo";
rev = "d72f49f4a45dbfc5a855956d1a75ce2d0601c1c5";
hash = "sha256-+T+HQo6IfY8+oE/mOg54Vn9NhasGYNCLXksFdSDT/xE=";
};
makefile = "Makefile";
preBuild = "cd src/burner/libretro";
meta = {
description = "Port of FBNeo to libretro";
homepage = "https://github.com/libretro/fbneo";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "fceumm";
version = "0-unstable-2024-09-23";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-fceumm";
rev = "e226068f979cd8fbfc3be9780d16cfb1405095b0";
hash = "sha256-2G5EzcDJkEhaN+nXi/wu3+Ejim04ZzOr+LW69cLAEuM=";
};
meta = {
description = "FCEUmm libretro port";
homepage = "https://github.com/libretro/libretro-fceumm";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
cmake,
libGL,
libGLU,
}:
mkLibretroCore {
core = "flycast";
version = "0-unstable-2024-10-05";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
rev = "d689c50e21bf956913ac607933cd4082eaedc06b";
hash = "sha256-XIe1JrKVY4ba5WnKrVofWNpJU5pcwUyDd14ZzaGcf+k=";
fetchSubmodules = true;
};
extraNativeBuildInputs = [ cmake ];
extraBuildInputs = [
libGL
libGLU
];
cmakeFlags = [ "-DLIBRETRO=ON" ];
makefile = "Makefile";
meta = {
description = "Flycast libretro port";
homepage = "https://github.com/flyinghead/flycast";
license = lib.licenses.gpl2Only;
platforms = [
"aarch64-linux"
"x86_64-linux"
];
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "fmsx";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "fmsx-libretro";
rev = "cf97a3c6da07d5f8e98c90c907ad987ffea432e0";
hash = "sha256-mPgmt05XDnB+eIWtOpBfZ37Cz24VBei1lLLaYsJNeAA=";
};
makefile = "Makefile";
meta = {
description = "FMSX libretro port";
homepage = "https://github.com/libretro/fmsx-libretro";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "freeintv";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "freeintv";
rev = "6bd91d0d83d896e66b9fd7e5e239f93f00e4ad87";
hash = "sha256-P3devj/aAa0e/QpV68kQkLAvhrVGO8O8ijkUAobgUb0=";
};
makefile = "Makefile";
meta = {
description = "FreeIntv libretro port";
homepage = "https://github.com/libretro/freeintv";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "fuse";
version = "0-unstable-2024-09-20";
src = fetchFromGitHub {
owner = "libretro";
repo = "fuse-libretro";
rev = "6fd07d90acc38a1b8835bf16539b833f21aaa38f";
hash = "sha256-q5vcFNr1RBeTaw1R2LDY9xLU1oGeWtPemTdliWR+39s=";
};
meta = {
description = "Port of the Fuse Unix Spectrum Emulator to libretro";
homepage = "https://github.com/libretro/fuse-libretro";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "gambatte";
version = "0-unstable-2024-10-04";
src = fetchFromGitHub {
owner = "libretro";
repo = "gambatte-libretro";
rev = "3eeb65e9bcf4b2a7ca24c5cebdfa7e342177ef0f";
hash = "sha256-tNGMR6GIyXen9+Ktg3IvYTcPidc+5Z8TpBQu1YgmqlY=";
};
meta = {
description = "Gambatte libretro port";
homepage = "https://github.com/libretro/gambatte-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "genesis-plus-gx";
version = "0-unstable-2024-09-18";
src = fetchFromGitHub {
owner = "libretro";
repo = "Genesis-Plus-GX";
rev = "7de0f0b6cde9bda1235b448aa607044b3f80ab3c";
hash = "sha256-W06vSrGKbXMcXIouW9/fD93sBfwREqIL8HvB3kan0tM=";
};
meta = {
description = "Enhanced Genesis Plus libretro port";
homepage = "https://github.com/libretro/Genesis-Plus-GX";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "gpsp";
version = "0-unstable-2024-09-18";
src = fetchFromGitHub {
owner = "libretro";
repo = "gpsp";
rev = "36061caf8cc5e15c3c92fb772b6b8560c7c59ec7";
hash = "sha256-o36OUdgm7p+rAMN6R2e2Lqi4oBLTyxziw7Lr20ERBg0=";
};
makefile = "Makefile";
meta = {
description = "Port of gpSP to libretro";
homepage = "https://github.com/libretro/gpsp";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "gw";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "gw-libretro";
rev = "435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd";
hash = "sha256-csaOqrZMSk9xZUlGAKgypV38q9XE7K6hLLdBC10g9Ao=";
};
makefile = "Makefile";
meta = {
description = "Port of Game and Watch to libretro";
homepage = "https://github.com/libretro/gw-libretro";
license = lib.licenses.zlib;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "handy";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-handy";
rev = "4e9e072796e5552a9d57f6ab83b3f85f27b17fb6";
hash = "sha256-ThzFEqLCX2JC06n6GZgkGzX5sFY5CxFDjkeekXRmbXY=";
};
makefile = "Makefile";
meta = {
description = "Port of Handy to libretro";
homepage = "https://github.com/libretro/libretro-handy";
license = lib.licenses.zlib;
};
}
@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
which,
}:
mkLibretroCore {
core = "hatari";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "hatari";
rev = "7008194d3f951a157997f67a820578f56f7feee0";
hash = "sha256-ZPzwUBaxs2ivE9n9cb5XB5mhixY9b6qIlq7OiVSLbqg=";
};
extraNativeBuildInputs = [ which ];
dontConfigure = true;
# zlib is already included in mkLibretroCore as buildInputs
makeFlags = [ "EXTERNAL_ZLIB=1" ];
meta = {
description = "Port of Hatari to libretro";
homepage = "https://github.com/libretro/hatari";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
python3,
alsa-lib,
libGLU,
libGL,
}:
mkLibretroCore {
core = "mame";
version = "0-unstable-2024-11-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame";
rev = "a67797ad2f7516906ed7acef87569c6f35ca8739";
hash = "sha256-MF6MWQftHBYL1Uv3ZYKFqCH24nd1+M73rhUzkdftMzk=";
fetchSubmodules = true;
};
extraNativeBuildInputs = [ python3 ];
extraBuildInputs = [
alsa-lib
libGLU
libGL
];
# Setting this is breaking compilation of src/3rdparty/genie for some reason
makeFlags = [ "ARCH=" ];
meta = {
description = "Port of MAME to libretro";
homepage = "https://github.com/libretro/mame";
license = with lib.licenses; [
bsd3
gpl2Plus
];
};
}
@@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mame2000";
version = "0-unstable-2024-11-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2000-libretro";
rev = "2ec60f6e1078cf9ba173e80432cc28fd4eea200f";
hash = "sha256-AYZj7bvO9oc7wmEBbj6DPRzpQFHl8diIcunSSpD4Vok=";
};
makefile = "Makefile";
makeFlags = lib.optional (!stdenv.hostPlatform.isx86) "IS_X86=0";
meta = {
description = "Port of MAME ~2000 to libretro, compatible with MAME 0.37b5 sets";
homepage = "https://github.com/libretro/mame2000-libretro";
# MAME license, non-commercial clause
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mame2003-plus";
version = "0-unstable-2024-11-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-plus-libretro";
rev = "b00ea1c9574126d75ae7b80c3b41e1186421fc1d";
hash = "sha256-Zq4P5UsZh3p9/zasfTC+pzWiLAo7T2qAgZw4bJ4ADdM=";
};
makefile = "Makefile";
meta = {
description = "Port of MAME ~2003+ to libretro, compatible with MAME 0.78 sets";
homepage = "https://github.com/libretro/mame2003-plus-libretro";
# MAME license, non-commercial clause
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mame2003";
version = "0-unstable-2024-11-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-libretro";
rev = "6d543115531fc96422b73c989a628600cacbea50";
hash = "sha256-jFzFQVB0uiSRa82sq1fiMEXyzzDJqRANNgq5hj/ZAl4=";
};
makefile = "Makefile";
meta = {
description = "Port of MAME ~2003 to libretro, compatible with MAME 0.78 sets";
homepage = "https://github.com/libretro/mame2003-libretro";
# MAME license, non-commercial clause
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mame2010";
version = "0-unstable-2024-10-23";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2010-libretro";
rev = "c5b413b71e0a290c57fc351562cd47ba75bac105";
hash = "sha256-p+uEhxjr/07YJxInhW7oJDr8KurD36JxnSfJo17FOxM=";
};
makefile = "Makefile";
makeFlags = lib.optionals stdenv.hostPlatform.isAarch64 [
"PTR64=1"
"ARM_ENABLED=1"
"X86_SH2DRC=0"
"FORCE_DRC_C_BACKEND=1"
];
meta = {
description = "Port of MAME ~2010 to libretro, compatible with MAME 0.139 sets";
homepage = "https://github.com/libretro/mame2010-libretro";
# MAME license, non-commercial clause
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,32 @@
{
lib,
alsa-lib,
fetchFromGitHub,
mkLibretroCore,
python3,
}:
mkLibretroCore {
core = "mame2015";
version = "0-unstable-2023-11-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2015-libretro";
rev = "316cd06349f2b34b4719f04f7c0d07569a74c764";
hash = "sha256-CBN04Jf26SIk8mKWlui5spQGokBvgFUCvFiC8NoBGw0=";
};
patches = [ ./patches/mame2015-python311.patch ];
makeFlags = [ "PYTHON=python3" ];
extraNativeBuildInputs = [ python3 ];
extraBuildInputs = [ alsa-lib ];
makefile = "Makefile";
# Build failures when this is set to a bigger number
NIX_BUILD_CORES = 8;
meta = {
description = "Port of MAME ~2015 to libretro, compatible with MAME 0.160 sets";
homepage = "https://github.com/libretro/mame2015-libretro";
# MAME license, non-commercial clause
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,36 @@
{
lib,
alsa-lib,
fetchFromGitHub,
mkLibretroCore,
python3,
}:
mkLibretroCore {
core = "mame2016";
version = "0-unstable-2024-04-06";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2016-libretro";
rev = "01058613a0109424c4e7211e49ed83ac950d3993";
hash = "sha256-IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak=";
};
patches = [ ./patches/mame2016-python311.patch ];
extraNativeBuildInputs = [ python3 ];
extraBuildInputs = [ alsa-lib ];
makeFlags = [ "PYTHON_EXECUTABLE=python3" ];
# Build failures when this is set to a bigger number
NIX_BUILD_CORES = 8;
# Fix build errors in GCC13
NIX_CFLAGS_COMPILE = "-Wno-error -fpermissive";
meta = {
description = "Port of MAME ~2016 to libretro, compatible with MAME 0.174 sets";
homepage = "https://github.com/libretro/mame2016-libretro";
license = with lib.licenses; [
bsd3
gpl2Plus
];
};
}
@@ -0,0 +1,30 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
libGLU,
libGL,
}:
mkLibretroCore {
core = "melonds";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "melonds";
rev = "7a3c11ff970cd36ca806961fae6db94b30dd5401";
hash = "sha256-YGkRdth7qdATcZpJkBd5MGOJFG1AbeJhAnyir+ssZYA=";
};
extraBuildInputs = [
libGLU
libGL
];
makefile = "Makefile";
meta = {
description = "Port of MelonDS to libretro";
homepage = "https://github.com/libretro/melonds";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mesen-s";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "mesen-s";
rev = "d4fca31a6004041d99b02199688f84c009c55967";
hash = "sha256-mGGTLBRJCsNJg57LWSFndIv/LLzEmVRnv6gNbllkV/Y=";
};
makefile = "Makefile";
preBuild = "cd Libretro";
normalizeCore = false;
meta = {
description = "Port of Mesen-S to libretro";
homepage = "https://github.com/libretro/mesen-s";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mesen";
version = "0-unstable-2024-06-09";
src = fetchFromGitHub {
owner = "libretro";
repo = "mesen";
rev = "91db6be681f70b2080525c267af6132555323ea1";
hash = "sha256-rw/bwHaeglO/DPeOCFHAWF5Y5DXVKiteO4bWZjTB4rI=";
};
makefile = "Makefile";
preBuild = "cd Libretro";
meta = {
description = "Port of Mesen to libretro";
homepage = "https://github.com/libretro/mesen";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "meteor";
version = "0-unstable-2020-12-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "meteor-libretro";
rev = "e533d300d0561564451bde55a2b73119c768453c";
hash = "sha256-zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ=";
};
makefile = "Makefile";
preBuild = "cd libretro";
meta = {
description = "Port of Meteor to libretro";
homepage = "https://github.com/libretro/meteor";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "mgba";
version = "0-unstable-2024-11-12";
src = fetchFromGitHub {
owner = "libretro";
repo = "mgba";
rev = "747362c02d2e71ee7c363e8dcb240925be8af906";
hash = "sha256-dBhdS6C1H02iwdYDVvJmkPWob81vpmQJdHUHJFAq2vo=";
};
meta = {
description = "Port of mGBA to libretro";
homepage = "https://github.com/libretro/mgba";
license = lib.licenses.mpl20;
};
}
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore rec {
core = "mrboom";
version = "0-unstable-2024-07-01";
src = fetchFromGitHub {
owner = "Javanaise";
repo = "mrboom-libretro";
rev = "22765ce7176d236d846f504318a51c448d2b469b";
hash = "sha256-hzdc4PM/EARNEtpeATo4VohXtkeBra6rCz3tdIgBfVw=";
fetchSubmodules = true;
};
makefile = "Makefile";
makeFlags = [ "GIT_VERSION=${builtins.substring 0 7 src.rev}" ];
meta = {
description = "Port of Mr.Boom to libretro";
homepage = "https://github.com/Javanaise/mrboom-libretro";
license = lib.licenses.mit;
};
}
@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
libGL,
libGLU,
libpng,
mkLibretroCore,
nasm,
xorg,
}:
mkLibretroCore {
core = "mupen64plus-next";
version = "0-unstable-2024-10-29";
src = fetchFromGitHub {
owner = "libretro";
repo = "mupen64plus-libretro-nx";
rev = "4249e39b2c200e5f0895385f76d99928785f2bea";
hash = "sha256-nII/PMYo2xLznmAcKs6jDWGRS1DC3tiDeT6KJKRnaCI=";
};
extraBuildInputs = [
libGLU
libGL
libpng
nasm
xorg.libX11
];
makefile = "Makefile";
makeFlags = [
"HAVE_PARALLEL_RDP=1"
"HAVE_PARALLEL_RSP=1"
"HAVE_THR_AL=1"
"LLE=1"
"WITH_DYNAREC=${stdenv.hostPlatform.parsed.cpu.name}"
];
meta = {
description = "Libretro port of Mupen64 Plus";
homepage = "https://github.com/libretro/mupen64plus-libretro-nx";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "neocd";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "neocd_libretro";
rev = "5eca2c8fd567b5261251c65ecafa8cf5b179d1d2";
hash = "sha256-72tmPCb7AXsamaQsMAPiYpgDR8DER2GTz4hcbN8wy7g=";
};
makefile = "Makefile";
meta = {
description = "NeoCD libretro port";
homepage = "https://github.com/libretro/neocd_libretro";
license = lib.licenses.lgpl3Only;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "nestopia";
version = "0-unstable-2024-10-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "nestopia";
rev = "b932740e8abbe2cda80d06b083fdd8115af1c5d5";
hash = "sha256-lIWk3V93vTKZM/jvfLkA06c7DDSEQtLmqRzJUi0TK/4=";
};
makefile = "Makefile";
preBuild = "cd libretro";
meta = {
description = "Nestopia libretro port";
homepage = "https://github.com/libretro/nestopia";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore rec {
core = "np2kai";
version = "0-unstable-2024-11-03";
src = fetchFromGitHub {
owner = "AZO234";
repo = "NP2kai";
rev = "4b109eaac4f79b04065ff5025319fce51537e04d";
hash = "sha256-tRFvK8d5Y/umy/b1BKN85ZSaDWyK95hII4RVng7A5uU=";
fetchSubmodules = true;
};
makeFlags = [
# See https://github.com/AZO234/NP2kai/tags
"NP2KAI_VERSION=rev.22"
"NP2KAI_HASH=${builtins.substring 0 7 src.rev}"
];
preBuild = "cd sdl";
meta = {
description = "Neko Project II kai libretro port";
homepage = "https://github.com/AZO234/NP2kai";
license = lib.licenses.mit;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "nxengine";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "nxengine-libretro";
rev = "9adc032a5f6aa913d71d22042bb72cb11cf0f4a2";
hash = "sha256-8XjZp18lQU3xFNDjIuNsSHn7Mhba8Lze/IeRsy8/U1U=";
};
makefile = "Makefile";
meta = {
description = "NXEngine libretro port";
homepage = "https://github.com/libretro/nxengine-libretro";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "o2em";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-o2em";
rev = "c8f458d035392963823fbb50db0cec0033d9315f";
hash = "sha256-riqMXm+3BG4Gz0wrmVFxtVhuMRtZHZqCViAupp/Q42U=";
};
makefile = "Makefile";
meta = {
description = "Port of O2EM to libretro";
homepage = "https://github.com/libretro/libretro-o2em";
license = lib.licenses.artistic1;
};
}
@@ -0,0 +1,26 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "opera";
version = "0-unstable-2024-10-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "opera-libretro";
rev = "67a29e60a4d194b675c9272b21b61eaa022f3ba3";
hash = "sha256-8896EWNbzVyr3MS1jtWD3pLur7ZvAhhJmrwkW3ayzkU=";
};
makefile = "Makefile";
makeFlags = [ "CC_PREFIX=${stdenv.cc.targetPrefix}" ];
meta = {
description = "Opera is a port of 4DO/libfreedo to libretro";
homepage = "https://github.com/libretro/libretro-o2em";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
libGL,
libGLU,
libpng,
mkLibretroCore,
}:
mkLibretroCore {
core = "parallel-n64";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "parallel-n64";
rev = "e372c5e327dcd649e9d840ffc3d88480b6866eda";
hash = "sha256-q4octB5XDdl4PtLYVZfBgydVBNaOwzu9dPBY+Y68lVo=";
};
extraBuildInputs = [
libGLU
libGL
libpng
];
makefile = "Makefile";
makeFlags = [
"HAVE_PARALLEL=1"
"HAVE_PARALLEL_RSP=1"
"ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
];
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
sed -i -e '1 i\CPUFLAGS += -DARM_FIX -DNO_ASM -DARM_ASM -DDONT_WANT_ARM_OPTIMIZATIONS -DARM64' Makefile \
&& sed -i -e 's,CPUFLAGS :=,,g' Makefile
'';
meta = {
description = "Parallel Mupen64plus rewrite for libretro";
homepage = "https://github.com/libretro/parallel-n64";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "pcsx-rearmed";
version = "0-unstable-2024-11-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "pcsx_rearmed";
rev = "e3d7ea45c75f2752e351d5c5b54cf7e79e66d26e";
hash = "sha256-dJqomyUHYQ+vpyu7/w2S/NidgYbHiGBWjebFQAXjzI0=";
};
dontConfigure = true;
meta = {
description = "Port of PCSX ReARMed to libretro";
homepage = "https://github.com/libretro/pcsx_rearmed";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,64 @@
{
lib,
cmake,
fetchFromGitHub,
gcc12Stdenv,
gettext,
libGL,
libGLU,
libaio,
libpcap,
libpng,
libxml2,
mkLibretroCore,
pkg-config,
xxd,
xz,
}:
mkLibretroCore {
core = "pcsx2";
version = "0-unstable-2023-01-30";
src = fetchFromGitHub {
owner = "libretro";
repo = "lrps2";
rev = "f3c8743d6a42fe429f703b476fecfdb5655a98a9";
hash = "sha256-0piCNWX7QbZ58KyTlWp4h1qLxXpi1z6ML8sBHMTvCY4=";
};
extraNativeBuildInputs = [
cmake
gettext
pkg-config
];
extraBuildInputs = [
libaio
libGL
libGLU
libpcap
libpng
libxml2
xz
xxd
];
makefile = "Makefile";
cmakeFlags = [ "-DLIBRETRO=ON" ];
# remove ccache
postPatch = ''
substituteInPlace CMakeLists.txt --replace-fail "ccache" ""
'';
postBuild = "cd pcsx2";
# causes redefinition of _FORTIFY_SOURCE
hardeningDisable = [ "fortify3" ];
# FIXME: multiple build errors with GCC13.
# Unlikely to be fixed until we switch to libretro/pcsx2 that is a more
# up-to-date port (but still WIP).
stdenv = gcc12Stdenv;
meta = {
description = "Port of PCSX2 to libretro";
homepage = "https://github.com/libretro/lrps2";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.x86;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "picodrive";
version = "0-unstable-2024-10-19";
src = fetchFromGitHub {
owner = "libretro";
repo = "picodrive";
rev = "0daf92b57fba1fdbc124651573e88373eef28aa5";
hash = "sha256-rvgcGNpHhjHpg5q6qiu08lBn+Zjx87E5/Q98gPoffhE=";
fetchSubmodules = true;
};
dontConfigure = true;
meta = {
description = "Fast MegaDrive/MegaCD/32X emulator";
homepage = "https://github.com/libretro/picodrive";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,53 @@
{
lib,
boost,
bzip2,
cmake,
curl,
fetchFromGitHub,
icu,
libGL,
libGLU,
mkLibretroCore,
openssl,
xorg,
}:
mkLibretroCore {
core = "play";
version = "0-unstable-2024-10-19";
src = fetchFromGitHub {
owner = "jpd002";
repo = "Play-";
rev = "c3cba5418b4e5618befd9c2790498cf3cf88372a";
hash = "sha256-xO2Pgl1E0JFEsthTmG+Ka+NqOTWG/JeeAIa6wBWXJyc=";
fetchSubmodules = true;
};
extraBuildInputs = [
boost
bzip2
curl
openssl
icu
libGL
libGLU
xorg.libX11
];
extraNativeBuildInputs = [ cmake ];
makefile = "Makefile";
cmakeFlags = [
"-DBUILD_PLAY=OFF"
"-DBUILD_LIBRETRO_CORE=ON"
];
postBuild = "cd Source/ui_libretro";
# FIXME: workaround the following GCC 13 error:
# error: 'printf' was not declared in this scop
env.CXXFLAGS = "-include cstdio";
meta = {
description = "Port of Play! to libretro";
homepage = "https://github.com/jpd002/Play-";
license = lib.licenses.bsd2;
};
}
@@ -0,0 +1,55 @@
{
lib,
cmake,
fetchFromGitHub,
libGL,
libGLU,
libzip,
mkLibretroCore,
pkg-config,
python3,
snappy,
xorg,
}:
mkLibretroCore {
core = "ppsspp";
version = "0-unstable-2024-11-15";
src = fetchFromGitHub {
owner = "hrydgard";
repo = "ppsspp";
rev = "2402eea4b16908ad59079bcf3fab06ba63531a3c";
hash = "sha256-bpeiZdcXkGWLFZOsxTGuVmo4xAiUb9v5Wf6pWkt5JV0=";
fetchSubmodules = true;
};
extraNativeBuildInputs = [
cmake
pkg-config
python3
];
extraBuildInputs = [
libGLU
libGL
libzip
snappy
xorg.libX11
];
makefile = "Makefile";
cmakeFlags = [
"-DLIBRETRO=ON"
# USE_SYSTEM_FFMPEG=ON causes several glitches during video playback
# See: https://github.com/NixOS/nixpkgs/issues/304616
"-DUSE_SYSTEM_FFMPEG=OFF"
"-DUSE_SYSTEM_SNAPPY=ON"
"-DUSE_SYSTEM_LIBZIP=ON"
"-DOpenGL_GL_PREFERENCE=GLVND"
];
postBuild = "cd lib";
meta = {
description = "PPSSPP libretro port";
homepage = "https://github.com/hrydgard/ppsspp";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "prboom";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-prboom";
rev = "d25ccfb9739069824d8fff99e3ae78a58a09df01";
hash = "sha256-IaMreS2MSkFdZ3Jff2FOZBvKIIa4KIkp41LIg3PLl44=";
};
makefile = "Makefile";
meta = {
description = "Prboom libretro port";
homepage = "https://github.com/libretro/libretro-prboom";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "prosystem";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "prosystem-libretro";
rev = "acae250da8d98b8b9707cd499e2a0bf6d8500652";
hash = "sha256-AGF3K3meZEEsnzHmMTCsFXBGNvWVELH8a8qET07kP0o=";
};
makefile = "Makefile";
meta = {
description = "Port of ProSystem to libretro";
homepage = "https://github.com/libretro/prosystem-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "puae";
version = "0-unstable-2024-10-19";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-uae";
rev = "c60e42ef9ad474518d4be859b7c1da2c0c7e1d6f";
hash = "sha256-WCkz7BUgYaI+yRhPmNuOKGJC/GxV+n2aeJVn8vhx0Ng=";
};
makefile = "Makefile";
meta = {
description = "Amiga emulator based on WinUAE";
homepage = "https://github.com/libretro/libretro-uae";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "quicknes";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "QuickNES_Core";
rev = "dbf19f73e3eb9701d1c7f5898f57c097e05c9fbd";
hash = "sha256-oFQUMp1imc8JCsQYCy1BtIUmTC+u0VcoYHpWzUpKNb4=";
};
makefile = "Makefile";
meta = {
description = "QuickNES libretro port";
homepage = "https://github.com/libretro/QuickNES_Core";
license = lib.licenses.lgpl21Plus;
};
}
@@ -0,0 +1,44 @@
{
lib,
alsa-lib,
fetchFromGitHub,
gcc12Stdenv,
libGL,
libGLU,
mkLibretroCore,
portaudio,
python3,
xorg,
}:
mkLibretroCore {
core = "same_cdi";
version = "0-unstable-2023-02-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "same_cdi";
rev = "54cf493c2dee4c46666059c452f8aaaa0bd7c8e0";
hash = "sha256-/+4coMzj/o82Q04Z65DQiPaykK6N56W6PRQLtyJOd8E=";
};
extraNativeBuildInputs = [ python3 ];
extraBuildInputs = [
alsa-lib
libGL
libGLU
portaudio
xorg.libX11
];
# FIXME = build fail with GCC13:
# error = 'uint8_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
stdenv = gcc12Stdenv;
meta = {
description = "SAME_CDI is a libretro core to play CD-i games";
homepage = "https://github.com/libretro/same_cdi";
license = with lib.licenses; [
bsd3
gpl2Plus
];
};
}
@@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
hexdump,
mkLibretroCore,
which,
}:
mkLibretroCore {
core = "sameboy";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "sameboy";
rev = "51433012a871a44555492273fd22f29867d12655";
hash = "sha256-vPT2uRGbXmJ62yig/yk485/TxEEKHJeWdNrM2c0IjKw=";
};
extraNativeBuildInputs = [
which
hexdump
];
preBuild = "cd libretro";
makefile = "Makefile";
meta = {
description = "QuickNES libretro port";
homepage = "https://github.com/libretro/QuickNES_Core";
license = lib.licenses.mit;
};
}
@@ -0,0 +1,42 @@
{
lib,
fetchFromGitHub,
fluidsynth,
libGL,
libGLU,
libjpeg,
libvorbis,
mkLibretroCore,
}:
mkLibretroCore {
core = "scummvm";
version = "0-unstable-2022-04-06";
# This is the old source code before they upstreamed the source code,
# so now the libretro related code lives in the scummvm/scummvm repository.
# However this broke the old way we were doing builds, so for now point
# to a mirror with the old source code until this issue is fixed.
# TODO: switch to libretro/scummvm since this is more up-to-date
src = fetchFromGitHub {
owner = "libretro-mirrors";
repo = "scummvm";
rev = "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3";
hash = "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew=";
};
extraBuildInputs = [
fluidsynth
libjpeg
libvorbis
libGLU
libGL
];
makefile = "Makefile";
preConfigure = "cd backends/platform/libretro/build";
meta = {
description = "Libretro port of ScummVM";
homepage = "https://github.com/libretro-mirrors/scummvm";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "smsplus";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "smsplus-gx";
rev = "c642bbd0680b5959180a420036108893d0aec961";
hash = "sha256-SHBrwzLyVZ4Tp/kVCnr4xj2B3pmdg+JUmZUM7hYao64=";
};
meta = {
description = "SMS Plus GX libretro port";
homepage = "https://github.com/libretro/smsplus-gx";
license = lib.licenses.gpl2Plus;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "snes9x";
version = "0-unstable-2024-10-28";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = "fd05ca7df5259a2cd0aa9204f331e0b05126c376";
hash = "sha256-o/Rb1XQ7QoI0hKROMFZ9igyH8NN3bMryvyU4oNUqtRA=";
};
makefile = "Makefile";
preBuild = "cd libretro";
meta = {
description = "Port of SNES9x git to libretro";
homepage = "https://github.com/snes9xgit/snes9x";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "snes9x2002";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "snes9x2002";
rev = "a0709ec7dcd6de2fbebb43106bd757b649e3b7cf";
hash = "sha256-rrMPhXIsQ48fVvjgZgC3xeqm9k9kwe43oZNzs2d/h1Q=";
};
makefile = "Makefile";
meta = {
description = "Optimized port/rewrite of SNES9x 1.39 to Libretro";
homepage = "https://github.com/libretro/snes9x2002";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
withBlarggAPU ? false,
}:
mkLibretroCore {
core = "snes9x2005" + lib.optionalString withBlarggAPU "-plus";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "snes9x2005";
rev = "74d871db9b4dba6dbe6c5ecebc88cbf255be5349";
hash = "sha256-YlRMjSEo9sdLVRzWGSJlnBeqg6wUhZi8l3ffzUaKQIQ=";
};
makefile = "Makefile";
makeFlags = lib.optionals withBlarggAPU [ "USE_BLARGG_APU=1" ];
meta = {
description = "Optimized port/rewrite of SNES9x 1.43 to Libretro";
homepage = "https://github.com/libretro/snes9x2005";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore rec {
core = "snes9x2010";
version = "0-unstable-2024-11-18";
src = fetchFromGitHub {
owner = "libretro";
repo = "snes9x2010";
rev = "f9ae8fd28b13070a945a829ccf41cbf90a21d0f7";
hash = "sha256-nsExAYnzDenPvXzeN60jGykRTrCGMi/mRPV+vgS8ZtE=";
};
makeFlags = [ "GIT_VERSION=${builtins.substring 0 7 src.rev}" ];
meta = {
description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
homepage = "https://github.com/libretro/snes9x2010";
license = lib.licenses.unfreeRedistributable;
};
}
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "stella";
version = "0-unstable-2024-11-17";
src = fetchFromGitHub {
owner = "stella-emu";
repo = "stella";
rev = "0e2ce2771c7d0c9b2dd5c06e3a4746738d3c9e47";
hash = "sha256-axt5wvH7WENh1ALPYc+f5XpCv2xPm5jYx26zMhLEt3E=";
};
makefile = "Makefile";
preBuild = "cd src/os/libretro";
dontConfigure = true;
meta = {
description = "Port of Stella to libretro";
homepage = "https://github.com/stella-emu/stella";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "stella2014";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "stella2014-libretro";
rev = "3cc89f0d316d6c924a5e3f4011d17421df58e615";
hash = "sha256-2gnFWau7F45SdzoqDUlqYXfXVE1EUPozHZv7BhyRRIA=";
};
makefile = "Makefile";
meta = {
description = "Port of Stella ~2014 to libretro";
homepage = "https://github.com/libretro/stella2014-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,29 @@
{
lib,
cmake,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "swanstation";
version = "0-unstable-2024-07-24";
src = fetchFromGitHub {
owner = "libretro";
repo = "swanstation";
rev = "37cd87e14ca09ac1b558e5b2c7db4ad256865bbb";
hash = "sha256-dNIxlTPoY4S6VMtTN22ti3DE4aU/8XN/XhAo3DMNR/E=";
};
extraNativeBuildInputs = [ cmake ];
makefile = "Makefile";
cmakeFlags = [
"-DBUILD_LIBRETRO_CORE=ON"
];
meta = {
description = "Port of SwanStation (a fork of DuckStation) to libretro";
homepage = "https://github.com/libretro/swanstation";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "tgbdual";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "tgbdual-libretro";
rev = "8d305769eebd67266c284558f9d3a30498894d3d";
hash = "sha256-3mlnTgp43qC3yifpr6pvtC4vslddcf6mephKA183vEk=";
};
makefile = "Makefile";
meta = {
description = "Port of TGBDual to libretro";
homepage = "https://github.com/libretro/tgbdual-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,27 @@
{
lib,
cmake,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "thepowdertoy";
version = "0-unstable-2024-10-01";
src = fetchFromGitHub {
owner = "libretro";
repo = "ThePowderToy";
rev = "5d9c749780063b87bd62ddb025dee4241f196f26";
hash = "sha256-BYeQ2WZgyvjDH5+akrVP5TlLq6Go3NKXB7zeR9oaaJ8=";
};
extraNativeBuildInputs = [ cmake ];
makefile = "Makefile";
postBuild = "cd src";
meta = {
description = "Port of The Powder Toy to libretro";
homepage = "https://github.com/libretro/ThePowderToy";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,41 @@
{
lib,
cmake,
fetchFromGitHub,
mkLibretroCore,
pkg-config,
}:
mkLibretroCore {
core = "tic80";
version = "0-unstable-2024-05-13";
src = fetchFromGitHub {
owner = "libretro";
repo = "tic-80";
rev = "6412f72d0f4725c153ce3d245729b829e713542e";
hash = "sha256-RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=";
fetchSubmodules = true;
};
extraNativeBuildInputs = [
cmake
pkg-config
];
makefile = "Makefile";
cmakeFlags = [
"-DBUILD_LIBRETRO=ON"
"-DBUILD_DEMO_CARTS=OFF"
"-DBUILD_PRO=OFF"
"-DBUILD_PLAYER=OFF"
"-DBUILD_SDL=OFF"
"-DBUILD_SOKOL=OFF"
];
preConfigure = "cd core";
postBuild = "cd lib";
meta = {
description = "Port of TIC-80 to libretro";
homepage = "https://github.com/libretro/tic-80";
license = lib.licenses.mit;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "2048";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-2048";
rev = "5474ed1ab880b3296c9860d0943d7de1970c79dd";
hash = "sha256-i6bbxsLpSicDDGYKAxTMCMioHHfvBzVokun3PNYgDsc=";
};
meta = {
description = "Port of 2048 puzzle game to libretro";
homepage = "https://github.com/libretro/libretro-2048";
license = lib.licenses.unlicense;
};
}
@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "vbam";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "vbam-libretro";
rev = "379dd97301458a51fb69dd93ba21b64f81e01ef2";
hash = "sha256-UbXSHdKfa91MpcYityo+aILbI0DfkLqZh8YfGcRx/BI=";
};
makefile = "Makefile";
preBuild = "cd src/libretro";
meta = {
description = "VBA-M libretro port";
homepage = "https://github.com/libretro/vbam-libretro";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,22 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "vba-next";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "vba-next";
rev = "2c726f25da75a5600ef5791ce904befe06c4dddd";
hash = "sha256-Elb6cOm2oO+3fNUaTXLN4kyhftoJ/oWXD571mXApybs=";
};
meta = {
description = "VBA-M libretro port with modifications for speed";
homepage = "https://github.com/libretro/vba-next";
license = lib.licenses.gpl2Only;
};
}
@@ -0,0 +1,29 @@
{
lib,
fetchFromGitHub,
libGL,
libGLU,
mkLibretroCore,
}:
mkLibretroCore {
core = "vecx";
version = "0-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-vecx";
rev = "0e48a8903bd9cc359da3f7db783f83e22722c0cf";
hash = "sha256-lB8NSaxDbN2qljhI0M/HFDuN0D/wMhFUQXhfSdGHsHU=";
};
extraBuildInputs = [
libGL
libGLU
];
meta = {
description = "VBA-M libretro port with modifications for speed";
homepage = "https://github.com/libretro/libretro-vecx";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,24 @@
{
lib,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "virtualjaguar";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "virtualjaguar-libretro";
rev = "48096c1f6f8b98cfff048a5cb4e6a86686631072";
hash = "sha256-DLBQQARHqupGGQS8YznDSSMuxQliyt5apGA4Ku2jlYo=";
};
makefile = "Makefile";
meta = {
description = "Port of VirtualJaguar to libretro";
homepage = "https://github.com/libretro/virtualjaguar-libretro";
license = lib.licenses.gpl3Only;
};
}
@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
mkLibretroCore,
}:
mkLibretroCore {
core = "yabause";
version = "0-unstable-2024-10-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "yabause";
rev = "c35712c5ed33e18d77097f2059a036e19d1d66f2";
hash = "sha256-4/gxWNPkGKBf4ti7ZF4GXgng6ZPyM9prrvK0S5tZ6V8=";
};
makefile = "Makefile";
# Disable SSE for non-x86. DYNAREC doesn't build on aarch64.
makeFlags = lib.optional (!stdenv.hostPlatform.isx86) "HAVE_SSE=0";
preBuild = "cd yabause/src/libretro";
meta = {
description = "Port of Yabause to libretro";
homepage = "https://github.com/libretro/yabause";
license = lib.licenses.gpl2Only;
};
}
@@ -1,903 +0,0 @@
{
"!comment": "Generated with update_cores.py script, do not edit!",
"2048": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-2048",
"rev": "5474ed1ab880b3296c9860d0943d7de1970c79dd",
"hash": "sha256-i6bbxsLpSicDDGYKAxTMCMioHHfvBzVokun3PNYgDsc="
},
"version": "unstable-2024-06-28"
},
"atari800": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-atari800",
"rev": "6a18cb23cc4a7cecabd9b16143d2d7332ae8d44b",
"hash": "sha256-+cZXHtaXnpU/zCwiDtjkyNMFGDahiHzqV2FoTCRnUWE="
},
"version": "unstable-2024-10-31"
},
"beetle-gba": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-gba-libretro",
"rev": "6cee80685f735ea6c2373db2622a1f1ee9f39d39",
"hash": "sha256-a3XgExXVCUFw3GLCUkEl6now2L8qVdNOaXvrDMcT1ZE="
},
"version": "unstable-2024-10-21"
},
"beetle-lynx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-lynx-libretro",
"rev": "7fead71b49e0f08be5c4d4224fea73c6174763bf",
"hash": "sha256-fYBx/bjbhRXoVIGnEg4/oMVm705ivL1os+FfVQLRSyI="
},
"version": "unstable-2024-10-21"
},
"beetle-ngp": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-ngp-libretro",
"rev": "139fe34c8dfc5585d6ee1793a7902bca79d544de",
"hash": "sha256-ruWnCgMxfpPHTWQ7vgNUczmGRzNKKhoZTNlUcNgm4T8="
},
"version": "unstable-2024-10-21"
},
"beetle-pce": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-pce-libretro",
"rev": "af28fb0385d00e0292c4703b3aa7e72762b564d2",
"hash": "sha256-W+74RTIidSUdviihLy926OvlSdqMECvOLEEiWMtB50w="
},
"version": "unstable-2024-11-15"
},
"beetle-pce-fast": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-pce-fast-libretro",
"rev": "931586f0512663f625a6e981d3047a6620281ab5",
"hash": "sha256-9Nne4upiQNSAlTZsyXcLNIwN8MMKUO1ycahowYW1sWg="
},
"version": "unstable-2024-11-15"
},
"beetle-pcfx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-pcfx-libretro",
"rev": "dd04cef9355286488a1d78ff18c4c848a1575540",
"hash": "sha256-oFBuriCbJWjgPH9RRAM/XUvkW0gKXnvs7lmBpJpWewo="
},
"version": "unstable-2024-10-21"
},
"beetle-psx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-psx-libretro",
"rev": "1068cb8dbd6f312664ecf5901625cab4a6533204",
"hash": "sha256-ioAnpz6OkHWPaYE0uTEvnHV+vGzq02bQ4oUP8jW6/YA="
},
"version": "unstable-2024-11-15"
},
"beetle-saturn": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-saturn-libretro",
"rev": "0a78a9a5ab0088ba19f21e028dda9f4b4d7c9e48",
"hash": "sha256-WNQhtaYBg7JqPdxcD0cLRjr2pSda6Xmx/WWYzyu5u9c="
},
"version": "unstable-2024-10-21"
},
"beetle-supafaust": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "supafaust",
"rev": "e25f66765938d33f9ad5850e8d6cd597e55b7299",
"hash": "sha256-ZgOXHhEHt54J2B1q6uA8v6uOK53g7idJlgoC4guTGow="
},
"version": "unstable-2024-10-01"
},
"beetle-supergrafx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-supergrafx-libretro",
"rev": "a776133c34ae8da5daf7d9ccb43e3e292e2b07b0",
"hash": "sha256-FemWW4EPQCwhrS7YEytf6fEeimdTTfzaDdyRNDIBQyk="
},
"version": "unstable-2024-11-15"
},
"beetle-vb": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-vb-libretro",
"rev": "8f837ebc077afdd6652efb2827fd8308a07113ca",
"hash": "sha256-eAnBubNhj78G4r8OHVqwFXGOSA9wEYI6ZwNyiwDW8W8="
},
"version": "unstable-2024-10-21"
},
"beetle-wswan": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "beetle-wswan-libretro",
"rev": "2aeb47d3a58bf0360c686f842d9bb5bd201306fe",
"hash": "sha256-LrF9p5tPtUamVLC41bJxcYDKvHmhVfwMieyIAdHaGmU="
},
"version": "unstable-2024-10-21"
},
"blastem": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "blastem",
"rev": "277e4a62668597d4f59cadda1cbafb844f981d45",
"hash": "sha256-EHvKElPw8V5Z6LnMaQXBCdM4niLIlF3aBm8dRbeYXHs="
},
"version": "unstable-2022-07-26"
},
"bluemsx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "bluemsx-libretro",
"rev": "01ce142ccb85c302420cb962d1b6e6a68a6ce076",
"hash": "sha256-h3Zpv+h6CbM1pdSOXsjN0pFUjXLn5T/R5W55VZXpMVM="
},
"version": "unstable-2024-10-22"
},
"bsnes": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "bsnes-libretro",
"rev": "20c55eb6333a11395ba637df8583066483e58cb2",
"hash": "sha256-IP00xtxS3wwnQSmYltrX8GEHZX/65xnx2EsmQlE1VZM="
},
"version": "unstable-2024-09-06"
},
"bsnes-hd": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "DerKoun",
"repo": "bsnes-hd",
"rev": "0bb7b8645e22ea2476cabd58f32e987b14686601",
"hash": "sha256-YzWSZMn6v5hWIHnp6KmmpevCsf35Vi2BCcmFMnrFPH0="
},
"version": "unstable-2024-10-21"
},
"bsnes-mercury": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "bsnes-mercury",
"rev": "0f35d044bf2f2b879018a0500e676447e93a1db1",
"hash": "sha256-skVREKYITZn+gKKSZmwuBCWrG0jb/pifwIgat8VyQ8U="
},
"version": "unstable-2024-10-21"
},
"citra": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "citra",
"rev": "2d67658e85de4767c0eefeb2829d710401c5c802",
"hash": "sha256-u2XwAudFgI7j/k6Bq5fk874aI6KpZawlBoIs2+M+eZY=",
"fetchSubmodules": true
},
"version": "unstable-2024-01-24"
},
"desmume": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "desmume",
"rev": "7f05a8d447b00acd9e0798aee97b4f72eb505ef9",
"hash": "sha256-BttWMunVbfPOTGx+DV+3QyOwW+55tgXKVIn99DZhbBI="
},
"version": "unstable-2024-10-21"
},
"desmume2015": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "desmume2015",
"rev": "af397ff3d1f208c27f3922cc8f2b8e08884ba893",
"hash": "sha256-kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="
},
"version": "unstable-2022-04-05"
},
"dolphin": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "dolphin",
"rev": "89a4df725d4eb24537728f7d655cddb1add25c18",
"hash": "sha256-f9O3//EuoCSPQC7GWmf0EzAEpjoKof30kIDBCDw0dbs="
},
"version": "unstable-2024-04-19"
},
"dosbox": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "dosbox-libretro",
"rev": "b7b24262c282c0caef2368c87323ff8c381b3102",
"hash": "sha256-PG2eElenlEpu0U/NIh53p0uLqewnEdaq6Aoak5E1P3I="
},
"version": "unstable-2022-07-18"
},
"dosbox-pure": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "schellingb",
"repo": "dosbox-pure",
"rev": "39dd77adff71cd2ae17d80a0e48fad8583ade8e4",
"hash": "sha256-ZC3JX4BG+FUR/lcEUupISz1s8Q0AdqkO4XVIPi1L5vg="
},
"version": "unstable-2024-11-16"
},
"easyrpg": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "EasyRPG",
"repo": "Player",
"rev": "f8e41f43b619413f95847536412b56f85307d378",
"hash": "sha256-nvWM4czTv/GxY9raomBEn7dmKBeLtSA9nvjMJxc3Q8s=",
"fetchSubmodules": true
},
"version": "unstable-2023-04-29"
},
"eightyone": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "81-libretro",
"rev": "ffc99f27f092addc9ddd34dd0e3a3d4d1c053cbf",
"hash": "sha256-3AIXk3LJHZHWIojMeo2BJHWYDHQ17WVbkwjFhXM14ZE="
},
"version": "unstable-2024-10-21"
},
"fbalpha2012": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "fbalpha2012",
"rev": "77167cea72e808384c136c8c163a6b4975ce7a84",
"hash": "sha256-giEV09dT/e82bmDlRkxpkW04JcsEZc/enIPecqYtg3c="
},
"version": "unstable-2024-10-21"
},
"fbneo": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "fbneo",
"rev": "d72f49f4a45dbfc5a855956d1a75ce2d0601c1c5",
"hash": "sha256-+T+HQo6IfY8+oE/mOg54Vn9NhasGYNCLXksFdSDT/xE="
},
"version": "unstable-2024-10-03"
},
"fceumm": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-fceumm",
"rev": "9f53af4e332476ba99d0c056668fbb35cfb527c3",
"hash": "sha256-sTzjIuEBTKt2rZfSadQa1pDLFclLL/vwjgkTMK1ZzPQ="
},
"version": "unstable-2024-10-16"
},
"flycast": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "flyinghead",
"repo": "flycast",
"rev": "d618abc3205fe185b26afe58eb5472b800ae0b42",
"hash": "sha256-hlYu1RXfzDHJh5nqBQkcwjrLtFV5AIxdBw5PZn0SUNg=",
"fetchSubmodules": true
},
"version": "unstable-2024-11-17"
},
"fmsx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "fmsx-libretro",
"rev": "9eb5f25df5397212a3e3088ca1a64db0740bbe5f",
"hash": "sha256-Pac1tQvPxYETU+fYU17moBHGfjNtzZiOsOms1uFQAmE="
},
"version": "unstable-2024-10-21"
},
"freeintv": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "freeintv",
"rev": "beab9af119fc117833d2d866d8d4ea0857ec0236",
"hash": "sha256-+3hF7OZ2OD8K3OsvzJ3+Nn3DwC7PfD+Mr3Ku2/W/fDQ="
},
"version": "unstable-2024-10-21"
},
"fuse": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "fuse-libretro",
"rev": "99df66eac096400d4d6d8fae2215192b6f03277e",
"hash": "sha256-o8FbDxke2JCUlmDZEHxMBY4f/WyHm1J76R43w+LVJfM="
},
"version": "unstable-2024-11-18"
},
"gambatte": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "gambatte-libretro",
"rev": "3eeb65e9bcf4b2a7ca24c5cebdfa7e342177ef0f",
"hash": "sha256-tNGMR6GIyXen9+Ktg3IvYTcPidc+5Z8TpBQu1YgmqlY="
},
"version": "unstable-2024-10-04"
},
"genesis-plus-gx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "Genesis-Plus-GX",
"rev": "7de0f0b6cde9bda1235b448aa607044b3f80ab3c",
"hash": "sha256-W06vSrGKbXMcXIouW9/fD93sBfwREqIL8HvB3kan0tM="
},
"version": "unstable-2024-09-18"
},
"gpsp": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "gpsp",
"rev": "36061caf8cc5e15c3c92fb772b6b8560c7c59ec7",
"hash": "sha256-o36OUdgm7p+rAMN6R2e2Lqi4oBLTyxziw7Lr20ERBg0="
},
"version": "unstable-2024-10-21"
},
"gw": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "gw-libretro",
"rev": "435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd",
"hash": "sha256-csaOqrZMSk9xZUlGAKgypV38q9XE7K6hLLdBC10g9Ao="
},
"version": "unstable-2024-10-21"
},
"handy": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-handy",
"rev": "4e9e072796e5552a9d57f6ab83b3f85f27b17fb6",
"hash": "sha256-ThzFEqLCX2JC06n6GZgkGzX5sFY5CxFDjkeekXRmbXY="
},
"version": "unstable-2024-10-21"
},
"hatari": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "hatari",
"rev": "7008194d3f951a157997f67a820578f56f7feee0",
"hash": "sha256-ZPzwUBaxs2ivE9n9cb5XB5mhixY9b6qIlq7OiVSLbqg="
},
"version": "unstable-2024-10-21"
},
"mame": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame",
"rev": "a67797ad2f7516906ed7acef87569c6f35ca8739",
"hash": "sha256-MF6MWQftHBYL1Uv3ZYKFqCH24nd1+M73rhUzkdftMzk=",
"fetchSubmodules": true
},
"version": "unstable-2024-11-01"
},
"mame2000": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2000-libretro",
"rev": "2ec60f6e1078cf9ba173e80432cc28fd4eea200f",
"hash": "sha256-AYZj7bvO9oc7wmEBbj6DPRzpQFHl8diIcunSSpD4Vok="
},
"version": "unstable-2024-07-01"
},
"mame2003": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2003-libretro",
"rev": "6d543115531fc96422b73c989a628600cacbea50",
"hash": "sha256-jFzFQVB0uiSRa82sq1fiMEXyzzDJqRANNgq5hj/ZAl4="
},
"version": "unstable-2024-11-10"
},
"mame2003-plus": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2003-plus-libretro",
"rev": "b00ea1c9574126d75ae7b80c3b41e1186421fc1d",
"hash": "sha256-Zq4P5UsZh3p9/zasfTC+pzWiLAo7T2qAgZw4bJ4ADdM="
},
"version": "unstable-2024-11-19"
},
"mame2010": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2010-libretro",
"rev": "c5b413b71e0a290c57fc351562cd47ba75bac105",
"hash": "sha256-p+uEhxjr/07YJxInhW7oJDr8KurD36JxnSfJo17FOxM="
},
"version": "unstable-2024-10-23"
},
"mame2015": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2015-libretro",
"rev": "316cd06349f2b34b4719f04f7c0d07569a74c764",
"hash": "sha256-CBN04Jf26SIk8mKWlui5spQGokBvgFUCvFiC8NoBGw0="
},
"version": "unstable-2023-11-01"
},
"mame2016": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mame2016-libretro",
"rev": "01058613a0109424c4e7211e49ed83ac950d3993",
"hash": "sha256-IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak="
},
"version": "unstable-2022-04-06"
},
"melonds": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "melonds",
"rev": "7a3c11ff970cd36ca806961fae6db94b30dd5401",
"hash": "sha256-YGkRdth7qdATcZpJkBd5MGOJFG1AbeJhAnyir+ssZYA="
},
"version": "unstable-2024-10-21"
},
"mesen": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mesen",
"rev": "791c5e8153ee6e29691d45b5df2cf1151ff416f9",
"hash": "sha256-PEEGJsyT+D/JwBxH2H9OY2MwaGt1i+1kmDZUT6zROic="
},
"version": "unstable-2024-10-21"
},
"mesen-s": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mesen-s",
"rev": "d4fca31a6004041d99b02199688f84c009c55967",
"hash": "sha256-mGGTLBRJCsNJg57LWSFndIv/LLzEmVRnv6gNbllkV/Y="
},
"version": "unstable-2024-10-21"
},
"meteor": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "meteor-libretro",
"rev": "e533d300d0561564451bde55a2b73119c768453c",
"hash": "sha256-zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ="
},
"version": "unstable-2020-12-28"
},
"mgba": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mgba",
"rev": "747362c02d2e71ee7c363e8dcb240925be8af906",
"hash": "sha256-dBhdS6C1H02iwdYDVvJmkPWob81vpmQJdHUHJFAq2vo="
},
"version": "unstable-2024-11-12"
},
"mrboom": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "Javanaise",
"repo": "mrboom-libretro",
"rev": "22765ce7176d236d846f504318a51c448d2b469b",
"hash": "sha256-hzdc4PM/EARNEtpeATo4VohXtkeBra6rCz3tdIgBfVw=",
"fetchSubmodules": true
},
"version": "unstable-2024-07-01"
},
"mupen64plus": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "mupen64plus-libretro-nx",
"rev": "4249e39b2c200e5f0895385f76d99928785f2bea",
"hash": "sha256-nII/PMYo2xLznmAcKs6jDWGRS1DC3tiDeT6KJKRnaCI="
},
"version": "unstable-2024-10-29"
},
"neocd": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "neocd_libretro",
"rev": "5eca2c8fd567b5261251c65ecafa8cf5b179d1d2",
"hash": "sha256-72tmPCb7AXsamaQsMAPiYpgDR8DER2GTz4hcbN8wy7g="
},
"version": "unstable-2024-10-21"
},
"nestopia": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "nestopia",
"rev": "b932740e8abbe2cda80d06b083fdd8115af1c5d5",
"hash": "sha256-lIWk3V93vTKZM/jvfLkA06c7DDSEQtLmqRzJUi0TK/4="
},
"version": "unstable-2024-10-17"
},
"np2kai": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "AZO234",
"repo": "NP2kai",
"rev": "4b109eaac4f79b04065ff5025319fce51537e04d",
"hash": "sha256-tRFvK8d5Y/umy/b1BKN85ZSaDWyK95hII4RVng7A5uU=",
"fetchSubmodules": true
},
"version": "unstable-2024-11-03"
},
"nxengine": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "nxengine-libretro",
"rev": "9adc032a5f6aa913d71d22042bb72cb11cf0f4a2",
"hash": "sha256-8XjZp18lQU3xFNDjIuNsSHn7Mhba8Lze/IeRsy8/U1U="
},
"version": "unstable-2024-10-21"
},
"o2em": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-o2em",
"rev": "c8f458d035392963823fbb50db0cec0033d9315f",
"hash": "sha256-riqMXm+3BG4Gz0wrmVFxtVhuMRtZHZqCViAupp/Q42U="
},
"version": "unstable-2024-06-28"
},
"opera": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "opera-libretro",
"rev": "67a29e60a4d194b675c9272b21b61eaa022f3ba3",
"hash": "sha256-8896EWNbzVyr3MS1jtWD3pLur7ZvAhhJmrwkW3ayzkU="
},
"version": "unstable-2024-10-17"
},
"parallel-n64": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "parallel-n64",
"rev": "e372c5e327dcd649e9d840ffc3d88480b6866eda",
"hash": "sha256-q4octB5XDdl4PtLYVZfBgydVBNaOwzu9dPBY+Y68lVo="
},
"version": "unstable-2024-10-21"
},
"pcsx2": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "lrps2",
"rev": "f3c8743d6a42fe429f703b476fecfdb5655a98a9",
"hash": "sha256-0piCNWX7QbZ58KyTlWp4h1qLxXpi1z6ML8sBHMTvCY4="
},
"version": "unstable-2023-01-30"
},
"pcsx_rearmed": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "pcsx_rearmed",
"rev": "e3d7ea45c75f2752e351d5c5b54cf7e79e66d26e",
"hash": "sha256-dJqomyUHYQ+vpyu7/w2S/NidgYbHiGBWjebFQAXjzI0="
},
"version": "unstable-2024-11-17"
},
"picodrive": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "picodrive",
"rev": "0daf92b57fba1fdbc124651573e88373eef28aa5",
"hash": "sha256-rvgcGNpHhjHpg5q6qiu08lBn+Zjx87E5/Q98gPoffhE=",
"fetchSubmodules": true
},
"version": "unstable-2024-10-19"
},
"play": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "jpd002",
"repo": "Play-",
"rev": "c3cba5418b4e5618befd9c2790498cf3cf88372a",
"hash": "sha256-xO2Pgl1E0JFEsthTmG+Ka+NqOTWG/JeeAIa6wBWXJyc=",
"fetchSubmodules": true
},
"version": "unstable-2024-11-14"
},
"ppsspp": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "hrydgard",
"repo": "ppsspp",
"rev": "2402eea4b16908ad59079bcf3fab06ba63531a3c",
"hash": "sha256-bpeiZdcXkGWLFZOsxTGuVmo4xAiUb9v5Wf6pWkt5JV0=",
"fetchSubmodules": true
},
"version": "unstable-2024-11-15"
},
"prboom": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-prboom",
"rev": "d25ccfb9739069824d8fff99e3ae78a58a09df01",
"hash": "sha256-IaMreS2MSkFdZ3Jff2FOZBvKIIa4KIkp41LIg3PLl44="
},
"version": "unstable-2024-10-21"
},
"prosystem": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "prosystem-libretro",
"rev": "acae250da8d98b8b9707cd499e2a0bf6d8500652",
"hash": "sha256-AGF3K3meZEEsnzHmMTCsFXBGNvWVELH8a8qET07kP0o="
},
"version": "unstable-2024-10-21"
},
"puae": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-uae",
"rev": "c60e42ef9ad474518d4be859b7c1da2c0c7e1d6f",
"hash": "sha256-WCkz7BUgYaI+yRhPmNuOKGJC/GxV+n2aeJVn8vhx0Ng="
},
"version": "unstable-2024-10-19"
},
"quicknes": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "QuickNES_Core",
"rev": "dbf19f73e3eb9701d1c7f5898f57c097e05c9fbd",
"hash": "sha256-oFQUMp1imc8JCsQYCy1BtIUmTC+u0VcoYHpWzUpKNb4="
},
"version": "unstable-2024-10-21"
},
"same_cdi": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "same_cdi",
"rev": "54cf493c2dee4c46666059c452f8aaaa0bd7c8e0",
"hash": "sha256-/+4coMzj/o82Q04Z65DQiPaykK6N56W6PRQLtyJOd8E="
},
"version": "unstable-2023-02-28"
},
"sameboy": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "sameboy",
"rev": "51433012a871a44555492273fd22f29867d12655",
"hash": "sha256-vPT2uRGbXmJ62yig/yk485/TxEEKHJeWdNrM2c0IjKw="
},
"version": "unstable-2024-06-28"
},
"scummvm": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro-mirrors",
"repo": "scummvm",
"rev": "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3",
"hash": "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew="
},
"version": "unstable-2022-04-06"
},
"smsplus-gx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "smsplus-gx",
"rev": "c642bbd0680b5959180a420036108893d0aec961",
"hash": "sha256-SHBrwzLyVZ4Tp/kVCnr4xj2B3pmdg+JUmZUM7hYao64="
},
"version": "unstable-2024-10-21"
},
"snes9x": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "snes9xgit",
"repo": "snes9x",
"rev": "fd05ca7df5259a2cd0aa9204f331e0b05126c376",
"hash": "sha256-o/Rb1XQ7QoI0hKROMFZ9igyH8NN3bMryvyU4oNUqtRA="
},
"version": "unstable-2024-10-28"
},
"snes9x2002": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "snes9x2002",
"rev": "a0709ec7dcd6de2fbebb43106bd757b649e3b7cf",
"hash": "sha256-rrMPhXIsQ48fVvjgZgC3xeqm9k9kwe43oZNzs2d/h1Q="
},
"version": "unstable-2024-10-21"
},
"snes9x2005": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "snes9x2005",
"rev": "74d871db9b4dba6dbe6c5ecebc88cbf255be5349",
"hash": "sha256-YlRMjSEo9sdLVRzWGSJlnBeqg6wUhZi8l3ffzUaKQIQ="
},
"version": "unstable-2024-10-21"
},
"snes9x2010": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "snes9x2010",
"rev": "f9ae8fd28b13070a945a829ccf41cbf90a21d0f7",
"hash": "sha256-nsExAYnzDenPvXzeN60jGykRTrCGMi/mRPV+vgS8ZtE="
},
"version": "unstable-2024-11-18"
},
"stella": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "stella-emu",
"repo": "stella",
"rev": "0e2ce2771c7d0c9b2dd5c06e3a4746738d3c9e47",
"hash": "sha256-axt5wvH7WENh1ALPYc+f5XpCv2xPm5jYx26zMhLEt3E="
},
"version": "unstable-2024-11-17"
},
"stella2014": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "stella2014-libretro",
"rev": "3cc89f0d316d6c924a5e3f4011d17421df58e615",
"hash": "sha256-2gnFWau7F45SdzoqDUlqYXfXVE1EUPozHZv7BhyRRIA="
},
"version": "unstable-2024-10-21"
},
"swanstation": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "swanstation",
"rev": "37cd87e14ca09ac1b558e5b2c7db4ad256865bbb",
"hash": "sha256-dNIxlTPoY4S6VMtTN22ti3DE4aU/8XN/XhAo3DMNR/E="
},
"version": "unstable-2024-07-24"
},
"tgbdual": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "tgbdual-libretro",
"rev": "8d305769eebd67266c284558f9d3a30498894d3d",
"hash": "sha256-3mlnTgp43qC3yifpr6pvtC4vslddcf6mephKA183vEk="
},
"version": "unstable-2024-10-21"
},
"thepowdertoy": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "ThePowderToy",
"rev": "5d9c749780063b87bd62ddb025dee4241f196f26",
"hash": "sha256-BYeQ2WZgyvjDH5+akrVP5TlLq6Go3NKXB7zeR9oaaJ8="
},
"version": "unstable-2024-10-01"
},
"tic80": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "tic-80",
"rev": "6412f72d0f4725c153ce3d245729b829e713542e",
"hash": "sha256-RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=",
"fetchSubmodules": true
},
"version": "unstable-2024-05-13"
},
"vba-m": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "vbam-libretro",
"rev": "379dd97301458a51fb69dd93ba21b64f81e01ef2",
"hash": "sha256-UbXSHdKfa91MpcYityo+aILbI0DfkLqZh8YfGcRx/BI="
},
"version": "unstable-2024-10-21"
},
"vba-next": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "vba-next",
"rev": "2c726f25da75a5600ef5791ce904befe06c4dddd",
"hash": "sha256-Elb6cOm2oO+3fNUaTXLN4kyhftoJ/oWXD571mXApybs="
},
"version": "unstable-2024-06-28"
},
"vecx": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "libretro-vecx",
"rev": "0e48a8903bd9cc359da3f7db783f83e22722c0cf",
"hash": "sha256-lB8NSaxDbN2qljhI0M/HFDuN0D/wMhFUQXhfSdGHsHU="
},
"version": "unstable-2024-06-28"
},
"virtualjaguar": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "virtualjaguar-libretro",
"rev": "48096c1f6f8b98cfff048a5cb4e6a86686631072",
"hash": "sha256-DLBQQARHqupGGQS8YznDSSMuxQliyt5apGA4Ku2jlYo="
},
"version": "unstable-2024-10-21"
},
"yabause": {
"fetcher": "fetchFromGitHub",
"src": {
"owner": "libretro",
"repo": "yabause",
"rev": "c35712c5ed33e18d77097f2059a036e19d1d66f2",
"hash": "sha256-4/gxWNPkGKBf4ti7ZF4GXgng6ZPyM9prrvK0S5tZ6V8="
},
"version": "unstable-2024-10-21"
}
}

Some files were not shown because too many files have changed in this diff Show More