1{
2 lib,
3 fetchFromGitHub,
4 mkLibretroCore,
5 runCommand,
6 zlib,
7}:
8mkLibretroCore rec {
9 core = "fbalpha2012";
10 version = "0-unstable-2024-10-21";
11
12 src = fetchFromGitHub {
13 owner = "libretro";
14 repo = "fbalpha2012";
15 rev = "77167cea72e808384c136c8c163a6b4975ce7a84";
16 hash = "sha256-giEV09dT/e82bmDlRkxpkW04JcsEZc/enIPecqYtg3c=";
17 };
18
19 sourceRoot = "${src.name}/svn-current/trunk";
20
21 # unvendor zlib and broken minizip code
22 postPatch =
23 let
24 minizip-src = runCommand "minizip-src" { } ''
25 mkdir $out
26 unpackFile ${zlib.src}
27 cp */contrib/minizip/{unzip.*,ioapi.*,crypt.h} $out/
28 '';
29 in
30 ''
31 substituteInPlace ${makefile} \
32 --replace-fail '-I$(FBA_LIB_DIR)/zlib' ""
33
34 cp ${minizip-src}/* src/burner
35 '';
36
37 buildInputs = [ zlib ];
38
39 makeFlags = [ "EXTERNAL_ZLIB=1" ];
40
41 makefile = "makefile.libretro";
42
43 meta = {
44 description = "Port of Final Burn Alpha ~2012 to libretro";
45 homepage = "https://github.com/libretro/fbalpha2012";
46 license = lib.licenses.unfreeRedistributable;
47 };
48}