Merge pull request #88821 from IvarWithoutBones/sm64
sm64ex: init at unstable-2020-06-19
This commit is contained in:
commit
f2e290e9e9
69
pkgs/games/sm64ex/default.nix
Normal file
69
pkgs/games/sm64ex/default.nix
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, python3
|
||||||
|
, pkg-config
|
||||||
|
, audiofile
|
||||||
|
, SDL2
|
||||||
|
, hexdump
|
||||||
|
, requireFile
|
||||||
|
, compileFlags ? [ ]
|
||||||
|
, region ? "us"
|
||||||
|
, baseRom ? requireFile {
|
||||||
|
name = "baserom.${region}.z64";
|
||||||
|
message = ''
|
||||||
|
This nix expression requires that baserom.${region}.z64 is
|
||||||
|
already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
|
||||||
|
and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
|
||||||
|
Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
|
||||||
|
'';
|
||||||
|
sha256 = {
|
||||||
|
"us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
|
||||||
|
"eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
|
||||||
|
"jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
|
||||||
|
}.${region};
|
||||||
|
}
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "sm64ex";
|
||||||
|
version = "unstable-2020-06-19";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "sm64pc";
|
||||||
|
repo = "sm64ex";
|
||||||
|
rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273";
|
||||||
|
sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ python3 pkg-config ];
|
||||||
|
buildInputs = [ audiofile SDL2 hexdump ];
|
||||||
|
|
||||||
|
makeFlags = [ "VERSION=${region}" ] ++ compileFlags
|
||||||
|
++ stdenv.lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ];
|
||||||
|
|
||||||
|
inherit baseRom;
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
patchShebangs extract_assets.py
|
||||||
|
cp $baseRom ./baserom.${region}.z64
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/sm64pc/sm64ex";
|
||||||
|
description = "Super Mario 64 port based off of decompilation";
|
||||||
|
longDescription = ''
|
||||||
|
Super Mario 64 port based off of decompilation.
|
||||||
|
Note that you must supply a baserom yourself to extract assets from.
|
||||||
|
If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
|
||||||
|
If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
|
||||||
|
'';
|
||||||
|
license = licenses.unfree;
|
||||||
|
maintainers = with maintainers; [ ivar ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
@ -6898,6 +6898,8 @@ in
|
|||||||
conf = config.slstatus.conf or null;
|
conf = config.slstatus.conf or null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sm64ex = callPackage ../games/sm64ex { };
|
||||||
|
|
||||||
smartdns = callPackage ../tools/networking/smartdns { };
|
smartdns = callPackage ../tools/networking/smartdns { };
|
||||||
|
|
||||||
smartmontools = callPackage ../tools/system/smartmontools {
|
smartmontools = callPackage ../tools/system/smartmontools {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user