2023-11-19 13:33:48 +00:00
{ lib
# infrastructure
2023-11-21 04:15:37 +00:00
, isVersionAtLeast
2023-11-19 13:33:48 +00:00
, replaceDotWithUnderscore
, fetchFromGitHub
, fetchFromGitLab
, mkNugetDeps
# makedeps
, dotnet-sdk_5
, dotnet-sdk_6
2024-02-12 20:38:03 +00:00
, dotnet-sdk_8
2023-11-19 13:33:48 +00:00
} : let
/* *
* updating ? make sure to hit the rest of this file , the hand-written deps ` /Dist/deps-historical.nix ` ,
* the shell script for CI ` /Dist/nix_expr_check_attrs.sh ` , and the docs ` /Dist/nix_expr_usage_docs.md `
* /
2023-11-21 04:15:37 +00:00
releases = [
" 2 . 9 . 1 " " 2 . 9 " " 2 . 8 " " 2 . 7 " " 2 . 6 . 3 " " 2 . 6 . 2 " " 2 . 6 . 1 " " 2 . 6 "
" 2 . 5 . 2 " " 2 . 5 . 1 " " 2 . 5 " " 2 . 4 . 2 " " 2 . 4 . 1 " " 2 . 4 " " 2 . 3 . 3 " " 2 . 3 . 2 "
] ;
2023-11-19 13:33:48 +00:00
releaseCount = lib . length releases ;
releaseFrags = builtins . map replaceDotWithUnderscore releases ;
releaseOffsetLookup = lib . listToAttrs ( lib . imap0 ( lib . flip lib . nameValuePair ) releaseFrags ) ;
depsForHistoricalRelease = releaseFrag : fetchNuGet : let
file = import ./deps-historical.nix ;
2023-11-21 04:15:37 +00:00
windows = builtins . map ( s : file . " s i n c e - ${ s } " or [ ] ) releaseFrags ++ builtins . map ( s : file . " u n t i l - ${ s } " or [ ] ) releaseFrags ;
extras = builtins . map ( s : file . " o n l y - ${ s } " or [ ] ) releaseFrags ;
2023-11-19 13:33:48 +00:00
i = releaseOffsetLookup . ${ releaseFrag } ;
in builtins . map fetchNuGet ( lib . elemAt extras i ++ lib . concatLists ( lib . sublist i releaseCount windows ) ) ;
releaseTagSourceInfos = let
f = { hashPostPatching , rev , version , postFetch ? " " , dotnet-sdk ? null }: let
shortHash = lib . substring 0 9 rev ;
fetcherArgs = {
inherit rev ;
repo = " B i z H a w k " ;
hash = hashPostPatching ;
postFetch = ''
shortHash = $ { shortHash }
'' + p o s t F e t c h ;
} ;
in ( lib . optionalAttrs ( dotnet-sdk != null ) { inherit dotnet-sdk ; } ) // {
inherit shortHash version ;
2023-11-21 04:15:37 +00:00
src = fetchFromGitHub ( fetcherArgs // { owner = " T A S E m u l a t o r s " ; } ) ;
2023-11-19 13:33:48 +00:00
#TODO can use `srcs` w/ `buildDotnetModule`?
# verified hashes match for 2.7 through 2.9, but 2.9.1 rev (745efb1dd) was missing (force-push nonsense IIRC)
2023-11-21 04:15:37 +00:00
src1 = fetchFromGitLab ( fetcherArgs // { owner = " T A S V i d e o s " ; } ) ;
2023-11-19 13:33:48 +00:00
nugetDeps = let
releaseFrag = replaceDotWithUnderscore version ;
in mkNugetDeps {
name = " B i z H a w k - ${ releaseFrag } - d e p s " ;
nugetDeps = { fetchNuGet }: depsForHistoricalRelease releaseFrag fetchNuGet ;
} ;
} ;
/* *
* ` $ ( . . . ) ` is literal here--these scripts invoke Git in subshells ,
* and we need to run them during the build without ` nativeBuildInputs = [ git ] ; `
* /
from-2_6_2-through-2_9-no-git-patch = ''
sed ' s / $ ( git rev-parse - - verify HEAD ) / ' " $ s h o r t H a s h " ' / ' - i $ out/Dist/.InvokeCLIOnMainSln.sh
'' ;
/* * d i t t o */
pre-2_9_1-no-git-patch = ''
sed - e ' s / $ ( git rev-parse - - abbrev-ref HEAD ) /master / ' \
- e ' s / $ ( git log -1 - - format = " % h " ) / ' " $ s h o r t H a s h " ' / ' \
- i $ out/Build/standin.sh
sed ' s / $ ( git rev-list HEAD - - count ) / ' " $ c o m m i t C o u n t " ' / ' - i $ out/Build/standin.sh
'' ;
in lib . mapAttrs ( _ : f ) {
info-2_9_1 = {
version = " 2 . 9 . 1 " ;
rev = " 7 4 5 e f b 1 d d 8 e b 8 2 f 3 1 b a 9 2 0 1 a 7 9 c d f c 5 b c a f 1 f 5 d 1 " ;
/* *
* ` $ ( . . . ) ` is literal here--this script invokes Git in a subshell ,
* and we need to run it during the build without ` nativeBuildInputs = [ git ] ; `
* ( though in this case the build would continue with the dummy value after printing an error )
* /
postFetch = ''
sed ' s / $ ( git rev-parse - - verify HEAD || printf " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " ) / ' " $ s h o r t H a s h " ' / ' \
- i $ out/Dist/.InvokeCLIOnMainSln.sh
'' ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - 7 / u v l k R + O x w x E r r p 0 B K + B 7 Z U R p 5 8 p 8 B 5 8 1 l v 5 i A Z g O 3 L r 6 e 9 2 k T p t y p L t 7 p m q Z d Z r r s S m u C p h N u R f H u 0 B Z e g 0 A = = " ;
2024-02-12 20:38:03 +00:00
dotnet-sdk = dotnet-sdk_6 ;
2023-11-19 13:33:48 +00:00
} ;
info-2_9 = {
version = " 2 . 9 " ;
rev = " a c 3 a 8 c 7 e 5 f 0 7 1 1 b 5 1 d e f d b 3 f 1 2 1 d 1 a 6 3 c 4 4 8 1 8 c 3 " ;
postFetch = ''
commitCount = 20208
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h + f r o m - 2 _ 6 _ 2 - t h r o u g h - 2 _ 9 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - K J v z p L y z o q L b Q s G v W e C 2 g T W g 7 8 7 1 j U T o A V M L k I 1 z m 2 J u 5 + 5 K 5 s q h r z w j K / O x w g 8 H M C e g q I v M 9 q e M 2 T d Y Y u w c 6 g = = " ;
2024-02-12 20:38:03 +00:00
dotnet-sdk = dotnet-sdk_6 ;
2023-11-19 13:33:48 +00:00
} ;
info-2_8 = {
version = " 2 . 8 " ;
rev = " e 7 3 1 e 0 f 3 2 9 0 3 c d 4 0 b 8 3 e d 7 5 b b a 3 b 1 e 3 7 5 3 1 0 5 c e 2 " ;
postFetch = ''
commitCount = 19337
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h + f r o m - 2 _ 6 _ 2 - t h r o u g h - 2 _ 9 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - k u m q 3 r M 8 6 v D T / 4 W 9 G i o O J 6 j 2 S A E A n y N B 7 e H 2 T c P o Q G S y x k C m n g I y G / y R R Y 4 z Y z R L u k g E c q M / P i T z B u Z x J T N K c Q = = " ;
2024-02-12 20:38:03 +00:00
dotnet-sdk = dotnet-sdk_6 ;
2023-11-19 13:33:48 +00:00
} ;
info-2_7 = {
version = " 2 . 7 " ;
rev = " d b a f 2 5 9 5 6 2 5 f 7 9 0 9 3 e e e c 3 7 d 2 d 4 a 7 a 9 a 4 d 3 7 f 3 7 0 " ;
postFetch = ''
commitCount = 19020
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h + f r o m - 2 _ 6 _ 2 - t h r o u g h - 2 _ 9 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - 2 4 / 2 z M d + Y 0 2 j O 5 X q Q L q I Z G 5 p A q O 1 T C + 1 Z M u h s O 6 x Y Q R T c D F H u 2 R q 6 k 0 f i C i a o M p a c 1 y m w O S / 5 b Y / x / 2 e 8 E q c / A = = " ;
2023-11-19 13:33:48 +00:00
dotnet-sdk = dotnet-sdk_5 ;
} ;
info-2_6_3 = {
version = " 2 . 6 . 3 " ;
rev = " 1 6 7 b f e b 4 c 0 8 2 1 a c 0 6 6 a 0 0 6 2 3 3 1 4 9 e 2 e 3 c 5 b 0 d b e 0 " ;
postFetch = ''
commitCount = 18925
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h + f r o m - 2 _ 6 _ 2 - t h r o u g h - 2 _ 9 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - o S x a z A 8 c j N 6 C k V a h y e 3 S E x E i V + y v k h s k D N J A + + + f T Q c R W a i P l b B b 1 L t L j H + Y u y C y L q g J 2 5 W i 3 8 V g y P w h O 4 Q K O A = = " ;
2023-11-19 13:33:48 +00:00
dotnet-sdk = dotnet-sdk_5 ;
} ;
info-2_6_2 = {
version = " 2 . 6 . 2 " ;
rev = " c 5 e 6 a a d b 0 e 4 c f 6 9 7 3 8 5 d 2 9 c 2 a 4 8 1 a 3 a e 0 0 1 7 1 4 5 e " ;
postFetch = ''
commitCount = 18704
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h + f r o m - 2 _ 6 _ 2 - t h r o u g h - 2 _ 9 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - W 7 9 F B X h b o U P w U r e e I i T J 3 8 g r d c N u p h z M F D K v V 5 S t P j 8 k w w f / R o S w 7 k y K + / h X N 5 w F c o b d 4 8 T n b R F V m 3 6 U p f u v m g = = " ;
2023-11-19 13:33:48 +00:00
dotnet-sdk = dotnet-sdk_5 ;
} ;
info-2_6_1 = {
version = " 2 . 6 . 1 " ;
rev = " b d 3 1 7 7 3 d 9 e 4 4 e 6 9 8 f d 5 c 0 3 5 6 a 6 0 0 e 5 3 2 b 0 a 9 2 5 1 f " ;
postFetch = ''
commitCount = 18467
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - q Z j d I S A x X m O S U Q 3 h 7 N V O v A 2 N 7 e z C 7 i o 8 N G U W P N p o U V M + Y z k H a / a B d x N 5 V n i W i d 2 N 7 m / n m f e Q A 6 9 n m J i 7 H t k Y + w = = " ;
2023-11-19 13:33:48 +00:00
dotnet-sdk = dotnet-sdk_5 ;
} ;
info-2_6 = {
version = " 2 . 6 " ;
rev = " 7 7 4 9 d 0 2 3 8 2 d 1 c 9 e 6 8 2 c b d 2 8 f f 3 d d 3 2 4 0 e 5 b 9 1 2 2 7 " ;
postFetch = ''
commitCount = 18376
'' + p r e - 2 _ 9 _ 1 - n o - g i t - p a t c h ;
2024-06-02 00:41:05 +00:00
hashPostPatching = " s h a 5 1 2 - K 1 X a f g h D r 6 4 M W 0 f n w 5 u u j s H L r J h x N M c j 4 P t i n 4 H T 4 + c E H g 6 W N 5 9 o N c I 5 H s m l 6 x n 5 u 6 c R B q H m c u g I f Y X E K 1 / g 5 g = = " ;
2023-11-19 13:33:48 +00:00
dotnet-sdk = dotnet-sdk_5 ;
} ;
2023-11-21 04:15:37 +00:00
# if you want to get these building from source, start by changing `releasesEmuHawkInstallables` in `default.nix` so the attrs are actually exposed
info-2_5_2 = {
version = " 2 . 5 . 2 " ;
rev = " 2 1 a 4 7 6 2 0 0 e 7 6 e f 8 1 5 d 2 b b 6 6 d f f c 1 6 7 f 9 7 2 0 a 4 e b 9 " ;
hashPostPatching = " " ;
} ;
info-2_5_1 = {
version = " 2 . 5 . 1 " ;
rev = " f 1 0 4 8 0 7 1 9 3 b d 5 a 4 b f f d d 6 7 d 5 2 9 6 7 a b 8 4 4 0 3 8 7 7 5 e " ;
hashPostPatching = " " ;
} ;
info-2_5 = {
version = " 2 . 5 " ;
rev = " 5 b 9 3 e f 1 4 d c 6 1 3 4 1 7 e b 9 3 7 c 1 f 7 9 3 d d 2 d f b 8 5 1 d 7 1 7 " ;
hashPostPatching = " " ;
} ;
info-2_4_2 = {
version = " 2 . 4 . 2 " ;
rev = " 5 4 6 c c d a 9 1 8 9 e 3 4 6 8 4 0 9 0 9 3 5 0 e c a 8 b 1 f d c a d a d 0 8 1 " ;
hashPostPatching = " " ;
} ;
info-2_4_1 = {
version = " 2 . 4 . 1 " ;
rev = " 6 0 a 1 d d e a 5 e 4 7 7 5 f 3 b e 4 b d 4 1 7 d 5 3 c a c f 0 e b a 9 7 8 c 4 " ;
hashPostPatching = " " ;
} ;
info-2_4 = {
version = " 2 . 4 " ;
rev = " 1 6 f 5 d a 9 f 9 c 2 e 5 7 a c 7 a 8 b b 7 0 b 2 0 2 8 e 3 a 9 5 0 1 1 2 7 b 8 " ;
hashPostPatching = " " ;
} ;
info-2_3_3 = {
version = " 2 . 3 . 3 " ;
rev = " c 3 3 0 5 4 1 c 3 5 e 9 7 c 6 6 d f 3 1 d 1 6 1 6 a 6 9 9 2 7 c f 6 5 b f 3 1 8 " ;
hashPostPatching = " " ;
} ;
info-2_3_2 = {
version = " 2 . 3 . 2 " ;
rev = " 9 2 8 4 7 b 1 d 1 d 5 3 4 1 0 8 1 4 3 c f b f f 1 e 2 6 6 0 3 6 3 3 2 c 0 5 7 3 " ;
hashPostPatching = " " ;
} ;
2023-11-19 13:33:48 +00:00
} ;
in {
inherit depsForHistoricalRelease releaseFrags releaseTagSourceInfos ;
/* * c a l l e d b y ` b u i l d A s s e m b l i e s F o r ` i . e . i m m e d i a t e l y b e f o r e u s e o f a ` h a w k S o u r c e I n f o ` */
populateHawkSourceInfo = hawkSourceInfo : let
inherit ( hawkSourceInfo ) version ;
neededExtraManagedDepsApprox = [ " v i r t u " ]
2023-11-21 04:15:37 +00:00
++ lib . optionals ( isVersionAtLeast " 2 . 6 " version ) [ " h a w k Q u a n t i z e r " " i s o P a r s e r " ]
++ lib . optionals ( isVersionAtLeast " 2 . 6 . 2 " version ) [ " f l a t B u f f e r s G e n O u t p u t " " s r c G e n R e f l e c t i o n C a c h e " ]
++ lib . optionals ( ! isVersionAtLeast " 2 . 9 " version ) [ " f l a t B u f f e r s C o r e " " g o n g S h e l l " ]
++ lib . optionals ( isVersionAtLeast " 2 . 9 " version ) [ " b i z h a w k A n a l y z e r " " n l u a " ]
++ lib . optional ( isVersionAtLeast " 2 . 9 . 1 " version ) " s r c G e n V e r s i o n I n f o "
++ lib . optionals ( ! isVersionAtLeast " 2 . 9 . 2 " version ) [ " s l i m D X " " s y s t e m D a t a S q l i t e D r o p I n " ]
++ lib . optional ( isVersionAtLeast " 2 . 9 . 2 " version ) " s r c G e n S e t t i n g s U t i l "
2023-11-19 13:33:48 +00:00
;
in {
inherit neededExtraManagedDepsApprox ;
__contentAddressed = false ; #TODO try w/ CA
2023-11-21 04:15:37 +00:00
copyingAssetsInEmuHawkProj = isVersionAtLeast " 2 . 6 . 3 " version ;
2024-02-12 20:38:03 +00:00
dotnet-sdk = dotnet-sdk_8 ;
2023-11-21 04:15:37 +00:00
exePathRespectsEnvVar = isVersionAtLeast " 2 . 9 . 2 " version ;
hasAssemblyResolveHandler = isVersionAtLeast " 2 . 3 . 3 " version ;
hasAssetsInOutput = ! isVersionAtLeast " 2 . 6 . 1 " version ;
hasFFmpegPatch_e68a49aa5 = isVersionAtLeast " 2 . 9 . 2 " version ; # with e68a49aa5, downloading *and running* FFmpeg finally works; TODO use FFmpeg from Nixpkgs since it's a stable version (4.4.1)
hasMiscTypeCheckerPatch_6afb3be98 = isVersionAtLeast " 2 . 6 . 2 " version ;
2024-07-29 12:24:57 +00:00
mainAppFilename = " E m u H a w k . e x e " ; # for emuhawk-mono-wrapper launch script
2023-11-19 13:33:48 +00:00
neededExtraManagedDeps = neededExtraManagedDepsApprox ;
2023-12-02 18:40:22 +00:00
needsLibGLVND = false ; # true iff not using nixGL (i.e. on NixOS) AND using the OpenGL renderer (the default option)
2023-11-21 04:15:37 +00:00
needsSDL = isVersionAtLeast " 2 . 9 . 2 " version ;
2023-11-19 13:33:48 +00:00
nugetDeps = ./deps.nix ;
2023-11-21 04:15:37 +00:00
packageScriptNeeds7Zip = ! isVersionAtLeast " 2 . 6 . 3 " version ;
packageScriptRemovesWinFilesFromLinux = isVersionAtLeast " 2 . 9 . 2 " version ;
pathConfigNeedsOrdinal = ! isVersionAtLeast " 2 . 7 . 1 " version ;
2023-11-19 13:33:48 +00:00
releaseArtifactHasRogueOTKAsmConfig = version == " 2 . 9 . 1 " ;
2023-11-21 04:15:37 +00:00
releaseArtifactNeedsLowercaseAsms = ! isVersionAtLeast " 2 . 3 . 3 " version ;
releaseArtifactNeedsOTKAsmConfig = isVersionAtLeast " 2 . 3 . 3 " version && ! isVersionAtLeast " 2 . 5 " version ; # see a1b501fe5
releaseArtifactNeedsVBDotnetReference = ! isVersionAtLeast " 2 . 5 . 1 " version ;
2023-11-25 14:56:06 +00:00
testProjectNeedsCIEnvVar = ! isVersionAtLeast " 2 . 8 " version ; # platform-specific tests don't run "in CI" because they assume Arch filesystem conventions (on Linux)--before 908d4519c, `-p:ContinuousIntegrationBuild=true` wasn't respected but `GITLAB_CI` was
2023-11-21 04:15:37 +00:00
versionProjNeedsDoubleBuild = ! isVersionAtLeast " 2 . 9 . 1 " version ;
2023-11-19 13:33:48 +00:00
#TODO warn about missing/broken features when eval'ing older releases
2024-07-29 11:00:59 +00:00
} // hawkSourceInfo // {
frontendPackageFlavour = if ( hawkSourceInfo . frontendPackageFlavour or null ) == null
then " N i x H a w k "
else hawkSourceInfo . frontendPackageFlavour ;
} ;
2023-11-19 13:33:48 +00:00
/* * t o b e p a s s e d t o ` s p l i t R e l e a s e A r t i f a c t ` */
releaseArtifactInfos = lib . mapAttrs'
( releaseFrag : value : {
name = " b i z h a w k A s s e m b l i e s - ${ releaseFrag } - b i n " ;
2023-11-21 04:15:37 +00:00
value = let
hawkSourceInfo = releaseTagSourceInfos . " i n f o - ${ releaseFrag } " // value . hawkSourceInfo or { } ;
in {
inherit hawkSourceInfo ;
$ { if isVersionAtLeast " 2 . 6 " hawkSourceInfo . version
then if isVersionAtLeast " 2 . 6 . 3 " hawkSourceInfo . version
then null
else " z i p p e d T a r b a l l "
else " c r o s s P l a t f o r m A r t i f a c t " } = true ;
} // lib . optionalAttrs ( ! isVersionAtLeast " 2 . 6 " hawkSourceInfo . version ) { stripRoot = false ; } // value ;
2023-11-19 13:33:48 +00:00
} )
{
" 2 _ 9 _ 1 " = {
stripRoot = false ;
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - V X + T l Q o C W C N j 7 6 H p C X m D s S 7 S Q l y + / Q e Y C n u 1 7 0 + 8 k F 6 Y 6 c Z k j M m I L Q x a C 9 X f T c h V b / z F G M r / 8 g f g c Z T o O F Z U e Q = = " ; # NAR checksum; gzip archive is SHA512:BEC7E558963416B3749EF558BC682D1A874A43DF8FE3083224EC7C4C0326CDFEA662EF5C604EEA7C1743D2EEB13656CCF749F0CDB3A413F4985C4B305A95E742
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 9 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - h y w O v K q y g Q M 4 C T E R 4 D F f t X u N D 1 e N s u x 4 6 K u G / Q W c E E w z J Z 5 0 M S O F H D j 5 9 Y R + M a l W A Z 6 C v t K 4 Y G 5 J V E N l p X W E d A = = " ; # NAR checksum; gzip archive is SHA512:A501F7A7DF2B75B00AD242D2DD8246B3B6CC165A2F903A7F1345DD900B30F3C6E0E9DA09DF2565402E8B1F34F3DBC432D3B4569282394C72C46AA348D0D439C2
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 8 " = {
stripRoot = false ;
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - T 1 s n C N q 0 Z f p 2 y K j o I H 1 n Q J W x A 1 V e 5 A W Y W l 7 i z P J N G 3 B e s x I v r T s P M w q t C F d q m s s 9 j j E 3 a K n P V d j c e u 1 x X D N U Y w = = " ; # NAR checksum; gzip archive is SHA512:A9FFBCD914CA1843372F50DE7C022107E65B8DED3BC61F04D584A7C5342AD83321A22B9F066A8872431181BCC8DE605827911B0C67511C5A2D4E75910C85D1A6
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 7 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - t v l d U o a Z N V 2 L a u d r G m S L y 6 V J E u G W L J j R j E Y N T u Y z 8 A g L Y 6 0 0 6 Y m a R A j X R I c e C 0 4 k k P b l R G b J 7 o 4 N q A c F d o J 5 a Q = = " ; # NAR checksum; gzip archive is SHA512:9436264AA9CF44AE580A14570EE5B7C39A252A76363118633942D410EE2E5B47F81E1BF5F16030651F9EF63EE503F58AB8F434997F9A43669DFE30D0BD215F47
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 6 _ 3 " = {
stripRoot = false ;
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - X 4 f y i t 9 A 9 r 1 7 2 l y B t F G j f R 2 g F Q I K U 1 o R h y u p S K u G Q n U u j k 9 h Y A h U f L 6 u u Q I R u + 0 8 o J 7 / p Q G w l K o j M B b C 3 Q a E M g = = " ; # NAR checksum; gzip archive is SHA512:E16289170DC6013456EB8BCA82B6B911A92732F8DD06B096023B90B4902AA0B99606DD7F652164D5746914414D4C7A9CCE54C2888226BF77CC9887A39BA0D08D
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 6 _ 2 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - n f N C o A a 1 b u u g 4 p v l t a y z M E C 8 b t j t x 8 0 s Z Z 1 2 7 5 L 4 B q y 3 N 9 r 1 Z E G n x 6 p 1 M / U Z P b p N t U d 0 j d U 0 Z a w l A d T n x a M v V g = = " ; # NAR checksum; zip archive is SHA512:8751A2229D9E500A3F3A283CE24AE62F8F911507F5FDBE25AA41F31AC5026CF89433C89DC766864439A17531543829E4B43BC4D3B311F5A80B4DF0605BBD9627
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 6 _ 1 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - 8 V D j p f B H P I z 1 8 T + Y y m r q Q k Q U w 2 5 m v y U d U S Q A w l s L S 4 Z D k g 3 F 3 q Q P v S z T I a v a k v 3 1 g J e I w e Z N 8 P c n w 0 c A k W F y t w = = " ; # NAR checksum; zip archive is SHA512:84F0D14F8BA3AEFFE1E8A8F34BA3955629C12C6B39D34E939B14A1A30362B1BE8C7C3A29E3C75072A2D1661926607C058364ECC4E7C8F2D25EDB110182BA901C
2023-11-19 13:33:48 +00:00
} ;
" 2 _ 6 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - D s D k I O h s Y z / X H I M C o l 0 c L g 8 a P D L x o 5 t w B f E F h k p s D V S Y 2 d h q p + V Z 5 w E x k z 7 t b y p a q O 5 2 K e P Q l a V t G m E 7 m P k I 9 g = = " ; # NAR checksum; zip archive is SHA512:6F3760E71103681A0F05845D0ADADD7B55C10A57D0AC44606A5B2B88E0435DAE70129F3FFCEF9AC3794FB471196ADE78CCEE7E304DF6447EFC0D271D51ED10AB
2023-11-19 13:33:48 +00:00
} ;
2023-11-21 04:15:37 +00:00
" 2 _ 5 _ 2 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - Y T G C 1 x K 7 f Y h y I c o F / 4 w q l o s s f R m N g Q y G l X x q z n 6 7 z p T i q i i d Q c W 5 N + X X B 6 m a Z 7 Y v 2 T O A r Z J m B l R p Q N I P x A i l d g = = " ; # NAR checksum; zip archive is SHA512:9E4CDF5E2E311CA5AD5750B91EA5163D8E727813F9A88200D80013657C45B33B0A51112FD5816DEBE264B99B1244B8555C0F8B9ECCFC6F87C45E67BBD1C28B06
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 5 _ 1 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - D S t L g w H D a H p e 3 d d K S H C h U 6 i 7 0 g f Z i V a A Y m + a R r o v 7 B v L n d G a m Y G D 2 A M 7 7 s V 9 u S g Q 0 D J l f Y T H 2 T T r p 2 u h D 7 u P k g = = " ; # NAR checksum; zip archive is SHA512:8DDE88D72704027AD810E1B41AB6950AA5BF4A2FA93AAB7F06CDFF878CC65EE7673E1691AFEB8385F37D2035DFCBC686674EB7AF4AC279F934C46131DA56F721
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 5 " = {
url = " h t t p s : / / g i t h u b . c o m / T A S E m u l a t o r s / B i z H a w k / r e l e a s e s / d o w n l o a d / 2 . 5 / B i z H a w k - 2 . 5 . 0 . z i p " ;
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - + l M z q h C Z H k 3 S q L e X G X v b u D U R r n 5 n w n w 9 p 7 9 k q H 2 y w x b 4 t 6 K V J P c S v o P i 9 0 B y e U g x m o o g 1 H 2 p W A k u f J P N 5 c 6 k Q w = = " ; # NAR checksum; zip archive is SHA512:CB35924402932F13F3ED7159BD5991C58790287C856DB6958F41B631A36C345C5DDEA5249D75560AE608C2900C939579FB395989939F99BF11B4B3B9E2E671AE
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 4 _ 2 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - w a q b T S d E 4 s j D t Z c 0 h 6 1 C g z l J 9 A U j 5 R x v k p P n h g J m 8 V / R Y u W k a E 6 K v g 0 i 7 u l 1 q 4 6 s F T n 3 n I / + c f W t 9 A f 0 s 4 4 E z A = = " ; # NAR checksum; zip archive is SHA512:EA4B8451E461B11BFC1962333ABE7FBB38F3D10CBE0BBF30AB250798FC281CC2C43807AEFFD352AB61DCF889B761AC8394BD095F37F5F22506B634FA529E4DE0
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 4 _ 1 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - q 8 O t 2 o T S U 3 a d w e T B B D Z r W E r e 5 F F E K M d W R R G 3 9 M b i c J F N 5 z R 1 g p g 3 d u R g E + A W 3 6 P U L 8 K X t N D e L y p D n H Q j x W m k L A = = " ; # NAR checksum; zip archive is SHA512:B0DEB73C155D60487F6E77F29B247B15F441E01782820DD42D22916CCF24F73B5AA95AF6A1BFED9B982984CDD06E83AEC2A21D61584EDADF4E8C8B763CD8BD27
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 4 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - U q + 0 z z M T 8 W b g Z e r i M O f Q r i W X 5 J Y w 2 u 7 y y c z e / h 6 m E 3 O f c 3 1 + v b h r I B X Z r k K / Z D X R l 5 b G E p i B T d I t s w F S e z 6 I G Q = = " ; # NAR checksum; zip archive is SHA512:34CB1E7FB300391341BA9C0BDEB87FCE93800A5B90EC971850F88B72C408E0C97AC62BD12DC1BAFBF7A5A15566BEA6726445C167832987477654BB535B69F408
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 3 _ 3 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - V 2 y Y s j G s U k C d L T J 6 q d s m C b e 1 M m g k j d A 3 y I z b 9 J E 1 C a h n 9 A 3 2 K e k / t 5 c q D w m S A 8 2 c h p f f s B X k 3 q M L f U f s R T a L g g = = " ; # NAR checksum; zip archive is SHA512:CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E
2023-11-21 04:15:37 +00:00
} ;
" 2 _ 3 _ 2 " = {
2024-06-02 00:41:05 +00:00
hashPrePatching = " s h a 5 1 2 - W Q p o K 0 M + e w 4 4 J E 6 8 8 w 7 O 8 g U f Y d z T i s J h y 2 d n 7 o 3 1 m N L A 6 + C m P n F Y 5 h 9 1 f p i p B 5 0 Z O L z f J L S S E H 5 v 1 l b u j K 3 n Z A = = " ; # NAR checksum; zip archive is SHA512:67E8C7E57E735E7319647A35FB09C504240D7BC885EB8D753554FC3E4A2A61AF6A91C07DCF8BF45006F5044DF6E98A8073BA61F14B4C7BCB1B25D5A9B630D817
2023-11-21 04:15:37 +00:00
} ;
# older releases won't pass prereq checker w/o WINE libs, relevant change was https://github.com/TASEmulators/BizHawk/commit/27a4062ea22e5cb4a81628580ce47fec7a2709a5#diff-aff17d6fcf6169cad48e9c8d08145b0de360e874aa8ffee0ea66e636cccda39f
2023-11-19 13:33:48 +00:00
} ;
2023-11-20 02:22:33 +00:00
}