Doom source ports + Data packages (#12084)

* PrBoom+: Fluidsynth, Portmidi & Alsa music now work, SDL is still sound only.
- Made Fluidsynth default.
- updated search paths.
- engine:doom to be used with doom data packs
* Chocolate Doom: Updated to 3.1.0
- patched in search paths
- engine:doom and engine:doom_extra to be used with doom, heretic/hexen/strife data packs
* Data packages for: Doom Shareware, Freedoom+FreeDM, Hacx, Chex Quest
This commit is contained in:
Peppersawce
2025-04-10 09:27:17 +00:00
committed by GitHub
parent 721d4d8a47
commit f0206e0191
16 changed files with 953 additions and 71 deletions

View File

@@ -0,0 +1,62 @@
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = 0,
short_info = "Chex Quest",
long_info = "@LONG_INFO@"
};
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF0000B8B8B8B8B8B8B8B8B8B8B8000000FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF00B8B8B8E8E8E8E8E8E8E8E8E8E8E8E80000FFFFFFFFFFFFFF"
$"FFFFFFFFFFFF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFFFFFFFFFF"
$"FFFFFFFFFF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFFFFFFFF"
$"FFFFFFFF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFFFFFF"
$"FFFFFF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFFFF"
$"FFFF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFF"
$"FFFF00B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FFFF"
$"FF00B8B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8E800000000B8E8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8000000000000B8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E800000000FFFF00B8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E800000000000000B8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8000000FAFAFA00B8E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8000000FAFAFA00E8E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8B8000000FAFAFA00E8E8E8E8E8E8E8E8E80000FF"
$"FF00B8E8E8E8E8E8E8E8E8E8E8B8B8B800FAFAFA00E8E8E8E8E8E8E8E80000FF"
$"FF0000E8E8E8E8E8E8E8E8E8E8E8E8E8E800FAFAFA00E8E8E8E8E8E8000000FF"
$"FFFF00B8E8E8E8E8E8E8E8E8E8E8E8E80000FAFAFAFA00E8E8E8E8E8000000FF"
$"FFFF0000E8E8E8E8E8E8E8E8E8E8E800FAFAFAFAFAFAFA00E8E8E8000000FFFF"
$"FFFFFF0000E8E8E8E8E8E8E8E8E8E8E800FAFAFAFAFAFAFA00E800000000FFFF"
$"FFFFFFFF0000E8E8E8E8E8E8E8E8E8E8E800FAFAFAFA0000E800000000FFFFFF"
$"FFFFFFFFFF0000E8E8E8E8E8E8E8E8E8E8E800FAFAFA00E800000000FFFFFFFF"
$"FFFFFFFFFFFF0000E8E8E8E8E8E8E8E8E8E8E800FAFAFA00000000FFFFFFFFFF"
$"FFFFFFFFFFFFFF000000E8E8E8E8E8E8E8E8E8E800FAFAFA0000FFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF00000000000000000000000000FAFAFA00FFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF00000000000000000000000000FAFAFA00FFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FAFAFA00FFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF"
};
resource mini_icon array {
$"FFFFFFFF00E1E1E1E1E1E800FFFFFFFF"
$"FFFFFFE8B8E8E8E8E8E8E8EF00FFFFFF"
$"FFFFE8B8E8E8E8E8E8E8E8E8EF00FFFF"
$"FFE8B8E8E8E8E8E8E8E8E8E8E8EF00FF"
$"FFE1E8E8E8E8E8E8E8E8E8E8E8E8F6FF"
$"00E1E8E8E8E8E8E8E8E8E8E8E8E8EF00"
$"00E1E8E8E8E8F600E8E8E8E8E8E8EF00"
$"00E1E8E8E8EF000000E1E8E8E8E8EF00"
$"00E1E8E8E8EF006565E8E8E8E8E8EF00"
$"00E1E8E8E8E8E1E16565EFE8E8E8EF00"
$"FFE8E8E8E8E8E8E8F6FA65EFE8E80000"
$"FF00EFE8E8E8E8EF65FAFA65EFF600FF"
$"FFFF00EFE8E8E8E8EF65FAF6F600FFFF"
$"FFFFFF00EFE8E8E8E8EF656500FFFFFF"
$"FFFFFFFFFF0000000000006565FFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF658BFFFF"
};

View File

@@ -0,0 +1,96 @@
#!/bin/bash
wad="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/chex.wad"
chex2wad="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/chex2.wad"
if [ ! -e $wad ]; then
wad="$(finddir B_USER_DATA_DIRECTORY)/doomdata/chex.wad"
chex2wad="$(finddir B_USER_DATA_DIRECTORY)/doomdata/chex2.wad"
if [ ! -e $wad ]; then
alert --stop "Game data not found!"
exit 1
fi
fi
if [ "$1" = "1" ]; then
wadname="Chex Quest"
echo "$wadname selected"
elif [ "$1" = "2" ]; then
pwad="-file $chex2wad"
wadname="Chex Quest 2"
echo "$wadname selected"
fi
if [ $(command -v chocolate-doom) ]; then
port1="chocolate-doom"
port1name="Chocolate Doom"
echo "Chocolate Doom detected"
fi
if [ $(command -v GZDoom) ]; then
if [ "$port1" = "" ]; then
port1="GZDoom"
port1name=$port1
elif [ "$port2" = "" ]; then
port2="GZDoom"
port2name=$port2
fi
echo "GZDoom detected"
fi
if [ -e $(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom ]; then
if [ "$port1" = "" ]; then
port1="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port1name="GZDoom (Legacy)"
elif [ "$port2" = "" ]; then
port2="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port2name="GZDoom (Legacy)"
fi
echo "GZDoom (Legacy) detected"
fi
if [ $(command -v prboom-plus) ]; then
if [ "$port1" = "" ]; then
port1="prboom-plus"
port1name="PrBoom+"
elif [ "$port2" = "" ]; then
port2="prboom-plus"
port2name="PrBoom+"
elif [ "$port3" = "" ]; then
port3="prboom-plus"
port3name="PrBoom+"
fi
echo "PrBoom+ detected"
fi
if [ "$port1" = "" ]; then
alert --stop "No Doom source port detected!"
else
if [ "$wadname" = "" ]; then
askwad=$(alert --idea "Choose between Chex Quest and Chex Quest 2" "Chex Quest" "Chex Quest 2")
if [ "$askwad" = "Chex Quest 2" ]; then
pwad="-file $chex2wad"
fi
wadname=$askwad
echo "$wadname selected"
fi
if [ "$port2" = "" ]; then
echo "Only one port detected, running it by default"
$port1 -iwad $wad $pwad $@
else
askport="Multiple Doom source ports detected. Choose one to use with '$wadname'"
if [ "$port3" = "" ]; then
button=$(alert --idea "$askport" "$port1name" "$port2name")
else
button=$(alert --idea "$askport" "$port1name" "$port2name" "$port3name")
fi
echo "$button selected"
if [ "$button" = "$port1name" ]; then
$port1 -iwad $wad $pwad $@
elif [ "$button" = "$port2name" ]; then
$port2 -iwad $wad $pwad $@
elif [ "$button" = "$port3name" ]; then
$port3 -iwad $wad $pwad $@
fi
fi
fi

View File

@@ -0,0 +1,64 @@
SUMMARY="Non-violent cereal-based FPS game"
DESCRIPTION="Chex Quest is a non-violent shooter originally intended as a Chex cereal promotion \
and released for free in 1996, with a sequel in 1997.
This package contains the Chex Quest game data along with Chex Quest 2 and a script that will \
look for compatible Doom source ports installed. If only one is found the game will run directly, \
if there are more installed a pop-up to select the preferred one will be shown."
HOMEPAGE="https://www.chexmix.com/chexquest/"
COPYRIGHT="1996 - 1997 Digital Café, General Mills"
LICENSE="Public Domain"
REVISION="1"
SOURCE_URI="http://www.doomlegends.com/chexquest/cqdos.zip"
CHECKSUM_SHA256="dacb82e7589dd9563303aa8ff3124d8dbebac83bbf8bef7867426c5355f31699"
SOURCE_DIR=""
SOURCE_URI_2="http://www.doomlegends.com/chexquest/cq2dos.zip"
CHECKSUM_SHA256_2="9311001295aa924ea4e0e40f51b475f2c4272bba938bb336c11d03d2daea6927"
SOURCE_DIR_2="chexquest2"
SOURCE_URI_3="ftp://ftp.fu-berlin.de/pc/games/idgames/themes/chex/chexdeh.zip"
CHECKSUM_SHA256_3="eeed61747165a4a90c792cf4ae4572593ff36a8f87d365af5107f68ed4000bad"
SOURCE_DIR_3=""
ADDITIONAL_FILES="
chexquest.rdef.in
chexquest.sh
"
ARCHITECTURES="any"
DISABLE_SOURCE_PACKAGE="yes"
PROVIDES="
chexquest = $portVersion
"
REQUIRES="
engine:doom
"
INSTALL()
{
# Pack game data
mkdir -p $dataDir/doomdata && cp chex.wad $dataDir/doomdata
cp $sourceDir2/CHEX2.WAD $dataDir/doomdata/chex2.wad
cp $sourceDir3/chex.deh $dataDir/doomdata
# Pack docs
mkdir -p $docDir && cp -t $docDir $sourceDir3/chexdeh.txt
# Pack script
mkdir -p $appsDir/Chexquest && cp $portDir/additional-files/chexquest.sh $appsDir/Chexquest
chmod +x $appsDir/Chexquest/chexquest.sh
# Generate the rdef
local MAJOR="`echo "$portVersion" | cut -b1`"
local MIDDLE="`echo "$portVersion" | cut -b3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/chexquest.rdef.in > chexquest.rdef
# Iconize & link script
rc chexquest.rdef
resattr -o $appsDir/Chexquest/chexquest.sh chexquest.rsrc
addAppDeskbarSymlink $appsDir/Chexquest/chexquest.sh "Chex Quest"
}

View File

@@ -1,27 +1,34 @@
SUMMARY="Doom source port that accurately reproduces the experience of Doom"
DESCRIPTION="Chocolate Doom is a source port of the game Doom, by id Software. \
The purpose of Chocolate Doom is to be as compatible as possible with the \
original DOS version of Doom."
original DOS version of Doom.
Chocolate Doom also provides Chocolate Heretic, Hexen and Strife, accurate \
source ports of their respective games.
The binaries will look for .wad files in:
* ~/config/non-packaged/data/chocolate-doom
* ~/config/non-packaged/data/doomdata
* ~/config/non-packaged/data/doom
* ~/config/non-packaged/data/games/doom
* ~/doom
* /boot/system/non-packaged/data/doomdata
* Any compatible game data package
The binaries can be also used via command-line with the -iwad command.
Example: 'chocolate-doom -iwad /path/to/doom.wad'"
HOMEPAGE="https://www.chocolate-doom.org/"
COPYRIGHT="Id Software Inc. 1993-1996
Simon Howard
James Haley
Samuel Villarreal"
LICENSE="GNU GPL v2"
REVISION="3"
SOURCE_URI="https://www.chocolate-doom.org/downloads/$portVersion/chocolate-doom-$portVersion.tar.gz"
CHECKSUM_SHA256="d435d6177423491d60be706da9f07d3ab4fabf3e077ec2a3fc216e394fcfc8c7"
SOURCE_DIR="chocolate-doom-$portVersion"
REVISION="1"
SOURCE_URI="https://github.com/chocolate-doom/chocolate-doom/archive/refs/tags/chocolate-doom-$portVersion.tar.gz"
CHECKSUM_SHA256="f2c64843dcec312032b180c3b2f34b4cb26c4dcdaa7375a1601a3b1df11ef84d"
SOURCE_DIR="chocolate-doom-chocolate-doom-$portVersion"
ARCHITECTURES="all !x86_gcc2"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ $targetArchitecture == x86_gcc2 ]; then
SECONDARY_ARCHITECTURES="x86"
commandSuffix=
commandBinDir=$prefix/bin
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
chocolate_doom$secondaryArchSuffix = $portVersion
@@ -34,6 +41,8 @@ PROVIDES="
cmd:chocolate_server = $portVersion
cmd:chocolate_strife = $portVersion
cmd:chocolate_strife_setup = $portVersion
engine:doom
engine:doom_extra
"
REQUIRES="
haiku$secondaryArchSuffix
@@ -47,6 +56,7 @@ REQUIRES="
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
#devel:libfluidsynth$secondaryArchSuffix # Optional, isn't found during build
devel:libpng16$secondaryArchSuffix
devel:libsamplerate$secondaryArchSuffix
devel:libsdl2_2.0$secondaryArchSuffix
@@ -55,55 +65,41 @@ BUILD_REQUIRES="
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoreconf
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:install
cmd:ld$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
# Uncomment when updating to chocolate_doom > 3.0.1
# cmd:python3
cmd:sed
cmd:python3
"
defineDebugInfoPackage chocolate_doom$secondaryArchSuffix \
$commandBinDir/chocolate-doom \
$commandBinDir/chocolate-doom-setup \
$commandBinDir/chocolate-hexen \
$commandBinDir/chocolate-hexen-setup \
$commandBinDir/chocolate-heretic \
$commandBinDir/chocolate-heretic-setup \
$commandBinDir/chocolate-server \
$commandBinDir/chocolate-strife-setup \
$commandBinDir/chocolate-strife
BUILD()
{
nonpackdatadir=$(finddir B_USER_NONPACKAGED_DATA_DIRECTORY)
homedir=$(finddir B_USER_DIRECTORY)
# Avoid "multiple definition" linker errors under "src/hexen/"
export LDFLAGS="-z muldefs"
# Add specific paths via DOOMWADPATH
export DOOMWADPATH="$nonpackdatadir/doom:$nonpackdatadir/chocolate-doom:$homedir/doom:$(findpaths -c : B_FIND_PATH_DATA_DIRECTORY doomdata)"
# "__dummy__" is just a placeholder, because the makefiles use "$docdir/../chocolate_xxx"
docdir=$prefix/documentation/packages/chocolate_doom/__dummy__
autogen.sh
runConfigure --omit-dirs "binDir docDir" ./configure \
--bindir=$commandBinDir \
--bindir=$prefix/bin \
--docdir=$docdir
# Option available only on versions > 3.0.1, and with cmd:python3 available
# --with-bashcompletiondir=$dataDir/bash-completion/completions
make $jobArgs
}
INSTALL()
{
# Other install targets are: install-man install-data. Recheck when updating to > 3.0.1
make install install-exec
# For now, let's manually install unprocessed man pages (better than nothing):
mkdir -p $manDir/man5 $manDir/man6
cp man/*.5 $manDir/man5
cp man/*.6 $manDir/man6
# Unused install targets are: install-data (contains icons)
make install install-exec install-man
# clean-up
rm -rf $prefix/share

View File

@@ -0,0 +1,109 @@
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = 0,
short_info = "Doom - Shareware version",
long_info = "@LONG_INFO@"
};
resource vector_icon {
$"6E6369660203F05B6C031F212B170607FF1FC310C092C310C092C28EC0E4C188"
$"C188C20BC136C188C03CC188BDA4C188BEF0C188BD27C188BC2EC188BCAAC20B"
$"BC2EC310BC2EC28EBC2EC310BDA4C310C092C310BF1BC310C092C0920607FF1F"
$"BCF1BDA4BCF1BDA4BCF1BEF0BCF1C188BCF1C03CBC6FC136BB6AC092BBECC0E4"
$"BB6ABF1BBB6ABC2EBB6ABDA4BBECBC2EBCF1BC2EBC6FBC2EBCF1BCAABCF1BDA4"
$"BCF1BD27BCF1BDA4BDA40607FF1FB797C092B797C092B714C0FAB60FC1CAB691"
$"C162B60FC068B60FBDA4B60FBF06B60FBD27B60FBC2EB60FBCAAB691BC2EB797"
$"BC2EB714BC2EB797BDA4B797C092B797BF1BB797C092C092021AC92FB9A1C92F"
$"B9A1C8D8BA7AC82ABC2EC881BB54C7D3BB54C725B9A1C77CBA7AC67BB9A1C527"
$"B9A1C5D1B9A1C527B9A1C527B9A1C527B9A1C13AB9A130B9A1BD4DB9A130B9F8"
$"30BAA630BA4FB908BA4FB85AB9A1B8B1B9F8B6A7B9A1B341B9A1B4F4B9A1B382"
$"B9F8B405BAA6B3C3BA4FB405BEBAB405C6E3B405C2CFB5CEC57130C28EB797C3"
$"FFBAA6C351BD33C4D9BBECC415BDE1C457BF3DC351BE8FC3D4BFEBC3D4C147C4"
$"D9C099C457C28EC415C51AC28EC3D4C351C5C8C2FAC725C3D4C677C367C725C2"
$"FAC725C147C725C221C77CC1DFC82AC310C7D3C278C881C278C92FC147C8D8C1"
$"DFC92FC2A3C92FC55CC92FC3FFC9F3C5DECB7AC6E3CAB7C661CB7AC2CFCB7ABA"
$"A6CB7ABEBACBBCBA4FCC3EB9A1CBFDB9F8CB39B9A1C92FB9A1CA34B9A1C92FB9"
$"A1C92FB9A1C92FB9A1C92FB9A10225C970C539C970C539CA08C59ECB39C669CA"
$"A1C604CB39C27ECB39BAA6CB39BE92CB39BA98CB46BA7FCB3EBA8ACB6DBA4BCB"
$"BCB9E2CB94BA16CAF1B9E2C95BB9E2CA26B9E2C909BAAEC866BC46C8B8BB7AC8"
$"5CBC5FC82ABC6FC844BC6FC80FBC6FC7EDBC46C7F7BC5FC79CBB7AC6F8B9E2C7"
$"4ABAAEC286B9E2B9A1B9E2BE13B9E2B9A1BA23B9A1BAA6B9A1BA65B9A1BAC0B9"
$"79BAE2B991BAD830BAECB931BAD4B944BAE7B8E1BA83B83FB9E2B890BA33B6C1"
$"B9E2B3C3B9E2B542B9E2B3EBBA16B439BA7FB412BA4BB441BA8AB446BAA6B446"
$"BA98B446BE8DB446C65BB446C274B5EBC505B936C25BB791C3B0B94CC24AB981"
$"C256B96AC248BABBC312BD2FC48BBBF5C3CEBDD1C411BF16C31DBE73C397BF2D"
$"C30CBF64C31DBF4DC30CC006C397C14BC48BC0A9C411C285C3CEC4F9C256C3BF"
$"C312C50EC249C53DC256C528C249C5CAC2AEC6E3C35EC657C306C6E3C2ACC6E3"
$"C147C6E3C1FAC6E3C12AC714C108C6F7C110C731C100C75DC127C74FC10DC7A1"
$"C19EC82AC28DC7E6C215C86EC215C8F6C127C8B2C19EC905C10DC940C108C923"
$"C100C95CC110C970C147C970C12AC970C298C970C539C970C3E8C970C539C970"
$"C539C970C539C970C539022BB405C725B405C725B3FBC725B3E8C71EB3F1C723"
$"B3D2C713B3C3C6E3B3C3C6FCB3C3C2D6B3C3BABCB3C3BEC9B386BA6AB30DB9C8"
$"B349BA19B2FEB9B4B306B984B2FBB99AB311B96DB34130B32830B4F430B85A30"
$"B6A730B86C30B889B973B87CB966B8BAB9A5B91EBA08B8ECB9D6B91EB9E6B91E"
$"B9A1B91EB9C3B91EB97D3030B93B30BDF730C72530C28E30C73F30C761B988C7"
$"57B970C7A4BA30C82ABB7EC7E7BAD7C86DBAD7C8F2B989C8AFBA30C8FCB970C9"
$"2F30C91430CA3430CC3E30CB3930CC5730CC79B984CC6EB96DCC84B99ACC72B9"
$"C8CC81B9B4CC36BA19CBBCBABCCBF9BA6ACBBCBEC9CBBCC6E3CBBCC2D6CBBCC6"
$"FBCB99C71DCBAEC712CB84C728CB56C71ACB6AC727CA92C697C90BC592C9CFC6"
$"15C8F8C586C8EEC55CC8EEC571C8EEC451C8EEC23DC8EEC347C8BFC28EC862C3"
$"31C891C2DFC84BC359C7F1C331C808C359C7C3C2DFC766C23DC794C28EC766C2"
$"C5C766C3D4C766C34CC766C3ECC744C40DC759C402C730C419C702C40BC716C4"
$"18C65FC3A6C51AC2DAC5BCC340C3DFC397C169C511C2A4C454C152C51FC120C5"
$"0DC135C51DC07FC495BF3DC3A3BFDEC41CBE9CC41CBD5AC50DBDFBC495BD45C5"
$"1DBD11C511BD28C51FBBD8C455B965C2DDBA9EC399B7A8C445B42EC716B5EBC5"
$"AEB422C720B405C725B413C725B405C725B405C725B405C725B405C7250606FF"
$"0728BC4E28BC4E28BE0328C16C28BFB7B69CC11EB776C082B709C0D0B776BF1C"
$"B776BC4EB776BDB5B709BC4E28BC4EB69CBC4E28BC4EBC4E020CB5EEC22CB5EE"
$"C22CB5E4C22CB5D046B5DAC229B5BBC219B5ADC1EAB5ADC203B5ADBFF6B5ADBC"
$"0DB5ADBE01B5ADBBE9B5EEBBCC27BBCCB687BBCCB7B7BBCCB71FBBCCB7DBBBCC"
$"B7F8BC0DB7F8BBE9B7F8BD95B7F8C0A4B7F8BF1CB7F8C0B9B7DDC0D9B7EEC0CD"
$"B745C146B614C220B6ACC1B3B609C228B5EEC22CB5FCC22CB5EEC22CB5EEC22C"
$"B5EEC22CB5EEC22C06047FC331C0A4C331C0A4C331C0A4C331C0A4C331C0A4C3"
$"31C0A4C331C0A4C331C0A4C331C0A4C0A40606FF07C1A9BC4EC1A9BC4EC1A9BD"
$"F2C1A9C139C1A9BF95C216C0FA48C07EC283C0BC48BF1948BC4E48BDB4C283BC"
$"4EC1A9BC4EC216BC4EC1A9BC4EBC4E020CC168C1EAC168C1EAC15DC1EAC147C1"
$"E2C151C1E7C133C1D6C127C1A9C127C1C0C127BFCAC127BC0DC127BDECC127BB"
$"E9C168BBCCC144BBCCC200BBCCC331BBCCC298BBCCC355BBCCC372BC0DC372BB"
$"E9C372BD95C372C0A4C372BF1CC372C0BBC351C0DDC366C0D1C2B9C134C188C1"
$"E2C221C18BC17EC1E8C168C1EAC173C1EAC168C1EAC168C1EAC168C1EAC168C1"
$"EA0608FF7FB980C001B980C001B96EC00130BFE030BFF230BE2D30BAC730BC7A"
$"30BAB5B980BAA6B96EBAA6B992BAA6B9A1BAC7B9A1BAB5B9A1BC7AB9A1BFE0B9"
$"A1BE2DB9A1BFF2B980C001B992C001B980C001C0010608FF7FB980C28EB980C2"
$"8EB96EC28E30C26D30C27F30C21630C16830C1BF30C156B980C147B96EC147B9"
$"92C147B9A1C168B9A1C156B9A1C1BFB9A1C26DB9A1C216B9A1C27FB980C28EB9"
$"92C28EB980C28EC28E0608FF7FB980C0E5B980C0E5B96EC0E530C0C530C0D730"
$"C0AF30C08330C09930C071B980C063B96EC063B992C063B9A1C083B9A1C071B9"
$"A1C099B9A1C0C5B9A1C0AFB9A1C0D7B980C0E5B992C0E5B980C0E5C0E50606FF"
$"07BB8AC07EBB8AC07EBBF7C0BCBCD1C139BC64C0FABCD1BF95BCD1BC4EBCD1BD"
$"F2BC64BC4EBB8ABC4EBBF7BC4EBB8ABDB4BB8AC07EBB8ABF19BB8AC07EC07E02"
$"0CBD12C1EABD12C1EABD07C1EABCF2C1E2BCFCC1E8BC59C18BBB29C0DDBBC1C1"
$"34BB14C0D1BB08C0A4BB08C0BBBB08BF1CBB08BC0DBB08BD95BB08BBE9BB49BB"
$"CCBB25BBCCBBE1BBCCBD12BBCCBC7ABBCCBD36BBCCBD53BC0DBD53BBE9BD53BD"
$"ECBD53C1A9BD53BFCABD53C1C0BD33C1E2BD47C1D6BD29C1E7BD12C1EABD1DC1"
$"EABD12C1EABD12C1EABD12C1EABD12C1EA0608FF7FBF5EBFE0BF5EBFE0BF4CBF"
$"E0BF3D40BF3DBFD2BF3DBDCBBF3DB9E2BF3DBBD7BF3DB9D0BF5EB9C1BF4CB9C1"
$"BF70B9C1BF7EB9E2BF7EB9D0BF7EBBD7BF7E40BF7EBDCBBF7EBFD2BF5EBFE0BF"
$"70BFE0BF5EBFE0BFE00608FF7FBF5EC351BF5EC351BF4CC351BF3DC331BF3DC3"
$"43BF3DC310BF3DC2CFBF3D48BF3DC2BDBF5EC2AEBF4CC2AEBF70C2AEBF7EC2CF"
$"BF7EC2BDBF7E48BF7EC331BF7EC310BF7EC343BF5EC351BF70C351BF5EC351C3"
$"510608FF7FBF5EC0C5BF5EC0C5BF4CC0C5BF3DC0A4BF3DC0B6BF3DC08EBF3DC0"
$"63BF3DC078BF3DC051BF5EC042BF4CC042BF70C042BF7EC063BF7EC051BF7EC0"
$"78BF7EC0A4BF7EC08EBF7EC0B6BF5EC0C5BF70C0C5BF5EC0C5C0C50608FF7FBF"
$"5EC228BF5EC228BF4CC228BF3DC208BF3DC21ABF3DC1D2BF3DC168BF3DC19DBF"
$"3DC156BF5EC147BF4CC147BF70C147BF7EC168BF7EC156BF7EC19DBF7EC208BF"
$"7EC1D2BF7EC21ABF5EC228BF70C228BF5EC228C2280608FF7FC538C2AEC538C2"
$"AEC526C2AEC517C28EC517C2A0C517C04BC517BBC7C517BE09C517BBB5C538BB"
$"A6C526BBA6C54ABBA6C558BBC7C558BBB5C558BE09C558C28EC558C04BC558C2"
$"A0C538C2AEC54AC2AEC538C2AEC2AE0608FF7FC538BB44C538BB44C526BB44C5"
$"17BB24C517BB36C517BB05C517BAC7C517BAE6C517BAB5C538BAA6C526BAA6C5"
$"4ABAA6C558BAC7C558BAB5C558BAE6C558BB24C558BB05C558BB36C538BB44C5"
$"4ABB44C538BB44BB440608FF7FC538BA3FC538BA3FC526BA3FC517BA1FC517BA"
$"31C517B9E9C517B97FC517B9B4C517B96DC538B95EC526B95EC54AB95EC558B9"
$"7FC558B96DC558B9B4C558BA1FC558B9E9C558BA31C538BA3FC54ABA3FC538BA"
$"3FBA3F0F0A000400010203000A01020405000A01020607000A010308090A000A"
$"01010B000A01010C000A01010D000A01020E0F000A010110000A010111000A01"
$"0112000A010113000A010114000A010115000A01011600"
};

View File

@@ -0,0 +1,76 @@
#!/bin/bash
wad="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/doom1.wad"
wadname="Doom - Shareware version"
if [ ! -e $wad ]; then
wad="$(finddir B_USER_DATA_DIRECTORY)/doomdata/doom1.wad"
if [ ! -e $wad ]; then
alert --stop "Game data not found!"
exit 1
fi
fi
if [ $(command -v chocolate-doom) ]; then
port1="chocolate-doom"
port1name="Chocolate Doom"
echo "Chocolate Doom detected"
fi
if [ $(command -v GZDoom) ]; then
if [ "$port1" = "" ]; then
port1="GZDoom"
port1name=$port1
elif [ "$port2" = "" ]; then
port2="GZDoom"
port2name=$port2
fi
echo "GZDoom detected"
fi
if [ -e $(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom ]; then
if [ "$port1" = "" ]; then
port1="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port1name="GZDoom (Legacy)"
elif [ "$port2" = "" ]; then
port2="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port2name="GZDoom (Legacy)"
fi
echo "GZDoom (Legacy) detected"
fi
if [ $(command -v prboom-plus) ]; then
if [ "$port1" = "" ]; then
port1="prboom-plus"
port1name="PrBoom+"
elif [ "$port2" = "" ]; then
port2="prboom-plus"
port2name="PrBoom+"
elif [ "$port3" = "" ]; then
port3="prboom-plus"
port3name="PrBoom+"
fi
echo "PrBoom+ detected"
fi
if [ "$port1" = "" ]; then
alert --stop "No Doom source port detected!"
elif [ "$port2" = "" ]; then
echo "Only one port detected, running it by default"
$port1 -iwad $wad $@
else
askport="Multiple Doom source ports detected. Choose one to use with '$wadname'"
if [ "$port3" = "" ]; then
button=$(alert --idea "$askport" "$port1name" "$port2name")
else
button=$(alert --idea "$askport" "$port1name" "$port2name" "$port3name")
fi
echo "$button selected"
if [ "$button" = "$port1name" ]; then
$port1 -iwad $wad $@
elif [ "$button" = "$port2name" ]; then
$port2 -iwad $wad $@
elif [ "$button" = "$port3name" ]; then
$port3 -iwad $wad $@
fi
fi

View File

@@ -0,0 +1,53 @@
SUMMARY="Shareware version of the classic FPS game"
DESCRIPTION="This is the latest release of Doom in its shareware form, which allows players to experience \
the first episode of the game in its entirety since 1993.
This package contains the Doom shareware game data along with a script that will look for \
compatible Doom source ports installed. If only one is found the game will run directly, \
if there are more installed a pop-up to select the preferred one will be shown."
HOMEPAGE="https://www.doomworld.com/classicdoom/"
COPYRIGHT="1993 - 1995 Id Software"
LICENSE="Public Domain"
REVISION="1"
SOURCE_URI="https://www.doomworld.com/3ddownloads/ports/shareware_doom_iwad.zip"
CHECKSUM_SHA256="845f4f3a449343b068a4e178f9cb018cb1f5b7d5ef09db292864ed554f612276"
SOURCE_DIR=""
ADDITIONAL_FILES="
doom_shareware.rdef.in
doom_shareware.sh
"
ARCHITECTURES="any"
DISABLE_SOURCE_PACKAGE="yes"
PROVIDES="
doom_shareware = $portVersion
"
REQUIRES="
engine:doom
"
INSTALL()
{
# Pack game data
mkdir -p $dataDir/doomdata && cp DOOM1.WAD $dataDir/doomdata/doom1.wad
# Pack script
mkdir -p $appsDir/Doom-shareware && cp $portDir/additional-files/doom_shareware.sh $appsDir/Doom-shareware
chmod +x $appsDir/Doom-shareware/doom_shareware.sh
# Generate the rdef
local MAJOR="`echo "$portVersion" | cut -b1`"
local MIDDLE="`echo "$portVersion" | cut -b3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/doom_shareware.rdef.in > doom_shareware.rdef
# Iconize & link script
rc doom_shareware.rdef
resattr -o $appsDir/Doom-shareware/doom_shareware.sh doom_shareware.rsrc
addAppDeskbarSymlink $appsDir/Doom-shareware/doom_shareware.sh "Doom - Shareware"
}

View File

@@ -0,0 +1,62 @@
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
short_info = "Freedoom",
long_info = "@LONG_INFO@"
};
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF0000000202D702D703020200000000000000FFFFFFFFFFFFFF"
$"FFFFFFFFFF000000D1D1D0D0AAD1000300000000000000000000FFFFFFFFFFFF"
$"FFFFFFFF000003D7D0AAAAAAD1D1D1D1D7D1000000030000000000FFFFFFFFFF"
$"FFFFFFFFFF00AAAAD1D1D7D7D1D1D1D702D1D7D703000000000000FFFFFFFFFF"
$"FFFFFFFFFF00D103D1D103030003000000000002000000000000FF00FFFFFFFF"
$"FFFFFFFF02030002000000000000000000000000000000000000FFFFFFFFFFFF"
$"FFFFFFFF0000000000000000000000000000000000000000000000FFFFFFFFFF"
$"FFFFFFFFFF0000000000000000000300000000000003000000000000FFFFFFFF"
$"FFFFFFFFFF000000000000000003D103030003000000030000000000FFFFFFFF"
$"FFFFFFFF000000000000030300D0A4A4D103D0AA00D0D103000000FFFFFFFFFF"
$"FFFFFFFF000000000003D1D1AAD08383A4D1D0AAD0D1D1D1030300FFFFFFFFFF"
$"FFFFFFFFD100030000D1D1AAAAA45A5A5AA4D0D0D1D0D0D103000000FFFFFFFF"
$"FFFFFFFF8302D10000AAAA83AAA4838383AAAA8383AAAAAAD1020000FFFFFFFF"
$"FFFFFFFF83D7AA00D00303AA8383A4AAA48383AAD703D1AAAA0300AAFFFFFFFF"
$"FFFFFFFFA4D7AAD0AA000000D7D05A5A83AAD702AAD1D7AAAAD7D083FFFFFFFF"
$"FFFFFFFFD0D7AAAAAA31A302CAAA835AA4CAA302CAAAAAAAAAD183D0FFFFFFFF"
$"FFFFFFFFD1D7CAA483AAA35A83AAA483AAAA835AA3AA83A4AAD1AAFFFFFFFFFF"
$"FFFFFFFFFFD731CA5A5A8383AAAAA483AAAA8383835A5A83AAD1FFFFFFFFFFFF"
$"FFFFFFFFFFD7F130A3A4A4AAAAA4835AAAA4AAA4A4A45A83D0D1FFFFFFFFFFFF"
$"FFFFFFFFFFFFF1A4CAD0D1AAD0D183A4AAD131AAD1D0AAA4D0D7FFFFFFFFFFFF"
$"FFFFFFFFFFFFF1D0AAD107AAD030D0D0D130313107D1D0D0D1D7FFFFFFFFFFFF"
$"FFFFFFFFFFFF31D1D0D0AA0A31CA835A83CA3007AAD0D0D1D7FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFD7D1D0D0AA0C12171717120931D0D0D1D703FFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF03D7D1D0D0CA0F1215120FCA30D0D1D703FFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFF03D7D0AACAA35A5A5AA3CA31D0D703FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF03D7D0CACAAAD0AACACA31D703FFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF03D7CAA35A5A5AA3303103FFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFF3131D7D7D73131FFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};
resource mini_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFF0202030302000000FFFFFFFF"
$"FFFF00D7D0AAD0D7D700020000FFFFFF"
$"FFFF02D0D1D7D7D7030302000000FFFF"
$"FFFF0202000000000000000000FFFFFF"
$"FFFF0000000002D7020302020000FFFF"
$"FFFF000002D7D0A4AAAAD0D10200FFFF"
$"FFFFAA03D0AAAA8383AAAAAAD702FFFF"
$"FFFFAAD0D0D0AA83A4AAD0D0D0AAFFFF"
$"FFFFD0AAAAA3AA83AAA3AAAAD0AAFFFF"
$"FFFFD7CA83A4AA83AAA48383D0FFFFFF"
$"FFFFFFD0AAAAD0AAD0D0D0AAD1FFFFFF"
$"FFFFFFD7D0AA0C5A12D0D0D1D7FFFFFF"
$"FFFFFFFFD7D0A35AA3CAD0D7FFFFFFFF"
$"FFFFFFFFFFD7CA83A330D7FFFFFFFFFF"
$"FFFFFFFFFFFFFFD0D0FFFFFFFFFFFFFF"
};

View File

@@ -0,0 +1,100 @@
#!/bin/bash
wad1="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/freedoom1.wad"
wad2="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/freedoom2.wad"
if [ ! -e $wad1 ]; then
wad1="$(finddir B_USER_DATA_DIRECTORY)/doomdata/freedoom1.wad"
wad2="$(finddir B_USER_DATA_DIRECTORY)/doomdata/freedoom2.wad"
if [ ! -e $wad1 ]; then
alert --stop "Game data not found!"
exit 1
fi
fi
if [ "$1" = "1" ]; then
wad=$wad1
wadname="Freedoom: Phase 1"
echo "$wadname selected"
elif [ "$1" = "2" ]; then
wad=$wad2
wadname="Freedoom: Phase 2"
echo "$wadname selected"
fi
if [ $(command -v chocolate-doom) ]; then
port1="chocolate-doom"
port1name="Chocolate Doom"
echo "Chocolate Doom detected"
fi
if [ $(command -v GZDoom) ]; then
if [ "$port1" = "" ]; then
port1="GZDoom"
port1name=$port1
elif [ "$port2" = "" ]; then
port2="GZDoom"
port2name=$port2
fi
echo "GZDoom detected"
fi
if [ -e $(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom ]; then
if [ "$port1" = "" ]; then
port1="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port1name="GZDoom (Legacy)"
elif [ "$port2" = "" ]; then
port2="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port2name="GZDoom (Legacy)"
fi
echo "GZDoom (Legacy) detected"
fi
if [ $(command -v prboom-plus) ]; then
if [ "$port1" = "" ]; then
port1="prboom-plus"
port1name="PrBoom+"
elif [ "$port2" = "" ]; then
port2="prboom-plus"
port2name="PrBoom+"
elif [ "$port3" = "" ]; then
port3="prboom-plus"
port3name="PrBoom+"
fi
echo "PrBoom+ detected"
fi
if [ "$port1" = "" ]; then
alert --stop "No Doom source port detected!"
else
if [ "$wadname" = "" ]; then
askwad=$(alert --idea "Choose between Freedoom Phase 1 and Phase 2" "Phase 1" "Phase 2")
if [ "$askwad" = "Phase 1" ]; then
wad=$wad1
elif [ "$askwad" = "Phase 2" ]; then
wad=$wad2
fi
wadname="Freedoom: $askwad"
echo "$wadname selected"
fi
if [ "$port2" = "" ]; then
echo "Only one port detected, running it by default"
$port1 -iwad $wad $@
else
askport="Multiple Doom source ports detected. Choose one to use with '$wadname'"
if [ "$port3" = "" ]; then
button=$(alert --idea "$askport" "$port1name" "$port2name")
else
button=$(alert --idea "$askport" "$port1name" "$port2name" "$port3name")
fi
echo "$button selected"
if [ "$button" = "$port1name" ]; then
$port1 -iwad $wad $@
elif [ "$button" = "$port2name" ]; then
$port2 -iwad $wad $@
elif [ "$button" = "$port3name" ]; then
$port3 -iwad $wad $@
fi
fi
fi

View File

@@ -0,0 +1,62 @@
SUMMARY="Free Doom I/II game data replacement"
DESCRIPTION="The Freedoom project aims to provide all the content needed to form a complete, entirely free/libre game \
for the Doom engine. It is designed to be compatible with most custom levels, music, graphics \
and other modifications (“mods”) made for the original Doom games by Doom fans and artists over the decades.
This package contains the Freedoom game data along with a script that will look for compatible Doom source \
ports installed to run the single player data with. If only one is found the game will run directly, if there \
are more installed a pop-up to select the preferred one will be shown."
HOMEPAGE="https://freedoom.github.io/"
COPYRIGHT="2001 - 2024 the Freedoom project"
LICENSE="BSD (3-clause)"
REVISION="1"
SOURCE_URI="https://github.com/freedoom/freedoom/releases/download/v$portVersion/freedoom-$portVersion.zip"
CHECKSUM_SHA256="3f9b264f3e3ce503b4fb7f6bdcb1f419d93c7b546f4df3e874dd878db9688f59"
SOURCE_URI_2="https://github.com/freedoom/freedoom/releases/download/v$portVersion/freedm-$portVersion.zip"
CHECKSUM_SHA256_2="b420f13508ef745d7b38e83d15e55e0fc0b09d9a503c96741cddd9773d43f7c9"
SOURCE_DIR_2="freedm-$portVersion"
ADDITIONAL_FILES="
freedoom.rdef.in
freedoom.sh
"
ARCHITECTURES="any"
DISABLE_SOURCE_PACKAGE="yes"
PROVIDES="
freedoom = $portVersion
"
REQUIRES="
engine:doom
"
INSTALL()
{
# Pack game data
mkdir -p $dataDir/doomdata && cp -t $dataDir/doomdata *.wad $sourceDir2/freedm.wad
# Pack docs
mkdir -p $docDir && cp -t $docDir COPYING.txt CREDITS.txt CREDITS-MUSIC.txt \
freedoom-manual-fr.pdf freedoom-manual-en.pdf freedoom-manual-es.pdf NEWS.html README.html
# Pack script
mkdir -p $appsDir/Freedoom && cp $portDir/additional-files/freedoom.sh $appsDir/Freedoom
chmod +x $appsDir/Freedoom/freedoom.sh
# Generate the rdef
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/freedoom.rdef.in > freedoom.rdef
# Iconize & link script
rc freedoom.rdef
resattr -o $appsDir/Freedoom/freedoom.sh freedoom.rsrc
addAppDeskbarSymlink $appsDir/Freedoom/freedoom.sh "Freedoom"
}

View File

@@ -0,0 +1,62 @@
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = 0,
short_info = "Hacx: Twitch 'n Kill",
long_info = "@LONG_INFO@"
};
resource large_icon array {
$"D0B0AAAAA98383835AD9D9D95A5AD9D95A5A83835AD9D95A5A838383A9AAD007"
$"D0B0AAAA898383835AD9D9D95A5AD95AD9D95A5AD9D9D9D95A838383A9AAB007"
$"0709B0AA838383835AD9D9D95A835A5AD9D95AD9D9D9D9D95A838383A9AAB007"
$"0707D0AA898383835A5AD9D95A835A83D9835AD9D9D9D9D95A838383A9AAB007"
$"D602D7B0A90C0F115A5A5A83838383835A835AD9D9D9D95A5A11100D0CAAB000"
$"0605080A0907090989131383838389898383835A5A821313890B0907090B0804"
$"04040808050000000C0F0EA98989AAAA83A9838383830D0D0C04010306080504"
$"00000000000000000000000B1111B0B0B0B0AA0F100C00000000030606030000"
$"0000000000000000000003060605080F13100904000000000004080B0B090600"
$"05020000000001030708090B0B090709100A050200010406070AAF0C09060300"
$"D005D705030104070AB00CAF0B0909AA83D0050202040709B0AF0E0B08D0D005"
$"D0B0B0B0D703080AB00E0EB007D6AA5AD9AAD00504080AB0AF0EAF08B0AAAAB0"
$"B0AA83A9AAD601040A0A0A0706B0A95AD983AAD0D70205070A0A0809898383B0"
$"D0AA838383AAD0D6050509B0B0AA8383D983A9AAAAB0D0070808B089838383AA"
$"D0AA83838389AAB0D0D0AAA9A9838383D98383898389AAD0D0B0AA835A8383AA"
$"07B0AA89838383AAAAAA838383838383D98383838383AAB0B0AA8383838383AA"
$"D6B0B0AAA9838383835AD95A83838383D9838383835AD98383838383A9AAAAB0"
$"03D0B0B0AAA9A983835AD98283838383D983838383835A8383A9A9A9AAAAB008"
$"000508D0B0AAA9898382628383838383D98383838382828289A9AAAAAAB00905"
$"0000D707D0AAA910131482838383835AD9D9838383161682100EAAAAB0D0D600"
$"D7D009D0090C891315821689AAAAAA8383A9AAAA8962168289100CB009070707"
$"D0D00B0AB00D89138213828289B0B0AAAAB0B0AA8916161489A90CB009D0D0D0"
$"D0B00EA90B0D89891413138212AFD0D0D0D0B0AA8982828910A90D0B0AB0B009"
$"D0A910100E0D1089121212131310D0D6D6D0AAAA89898910A9A9A9A9AFA9B00B"
$"0AAFA910A90E10A9090BAF1089890CD6CACAAAA9A9A9A9A9A9A989A9A9A9AF0B"
$"09B0A910A9A913A9D0B0B0B0AF0CB0D1D030D0AACACAD0D00CAF89A9A90E0CB0"
$"FF0AA9A90EA91410D0B0AFA9A9A9B0D0B0AAA9AACAD1D0D0D0A989A9AFAF0BD0"
$"FFFF0AA9A9A98912B0A989131312891010891289AAD0B00BCAA989A9AFB00BFF"
$"FFFFFFD0B00D8910A9121482161616828282828215131210CAA9A9A9B00AFFFF"
$"FFFFFFFFD0AF10A989141582161615110F111314141413A9AAA9A90C0BFFFFFF"
$"FFFFFFFF080BA9A9A91482828215820C0C0C1213131389A9AAA9A9B009FFFFFF"
$"FFFFFFFF03D6B0AAA9898989128215070F0B14828989A9CAAAA9B0D0D7FFFFFF"
};
resource mini_icon array {
$"D0AA83835AD95AD9D95AD9D95A83AAD0"
$"D0AA83835AD95A5AD95AD9D95A83AAB0"
$"05090B0D82828383835AD982890B0BD6"
$"030602000A0C10AAAA89890A07040603"
$"030000010508080A10060003D60B0903"
$"D0D00407B0AF09A989D705090C0CB0D0"
$"B083AA060809B0835AAAD00709B083A9"
$"B08383AAB08383835A8383B0B08383A9"
$"D6B0A983835A83835A8383838383AAB0"
$"02D0B089828283835A838282A9AAB0D6"
$"D0B00B898282A9AAA9AA8282100B08D0"
$"B0A90D89131389D0D0AA8989A9A9B00A"
$"0BA9A910D0AFA9D0D0AAA9B0AF10A90B"
$"FFA9A912B01089A9A9A9CAD0AA890C0A"
$"FFFFB0898915168213828289A9A90BFF"
$"FFFF08A9891382100D1389A9AAB0FFFF"
};

View File

@@ -0,0 +1,76 @@
#!/bin/bash
wad="$(finddir B_SYSTEM_DATA_DIRECTORY)/doomdata/hacx.wad"
wadname="Hacx: Twitch 'n Kill"
if [ ! -e $wad ]; then
wad="$(finddir B_USER_DATA_DIRECTORY)/doomdata/hacx.wad"
if [ ! -e $wad ]; then
alert --stop "Game data not found!"
exit 1
fi
fi
if [ $(command -v chocolate-doom) ]; then
port1="chocolate-doom"
port1name="Chocolate Doom"
echo "Chocolate Doom detected"
fi
if [ $(command -v GZDoom) ]; then
if [ "$port1" = "" ]; then
port1="GZDoom"
port1name=$port1
elif [ "$port2" = "" ]; then
port2="GZDoom"
port2name=$port2
fi
echo "GZDoom detected"
fi
if [ -e $(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom ]; then
if [ "$port1" = "" ]; then
port1="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port1name="GZDoom (Legacy)"
elif [ "$port2" = "" ]; then
port2="$(finddir B_SYSTEM_APPS_DIRECTORY)/GZDoom/GZDoom"
port2name="GZDoom (Legacy)"
fi
echo "GZDoom (Legacy) detected"
fi
if [ $(command -v prboom-plus) ]; then
if [ "$port1" = "" ]; then
port1="prboom-plus"
port1name="PrBoom+"
elif [ "$port2" = "" ]; then
port2="prboom-plus"
port2name="PrBoom+"
elif [ "$port3" = "" ]; then
port3="prboom-plus"
port3name="PrBoom+"
fi
echo "PrBoom+ detected"
fi
if [ "$port1" = "" ]; then
alert --stop "No Doom source port detected!"
elif [ "$port2" = "" ]; then
echo "Only one port detected, running it by default"
$port1 -iwad $wad $@
else
askport="Multiple Doom source ports detected. Choose one to use with '$wadname'"
if [ "$port3" = "" ]; then
button=$(alert --idea "$askport" "$port1name" "$port2name")
else
button=$(alert --idea "$askport" "$port1name" "$port2name" "$port3name")
fi
echo "$button selected"
if [ "$button" = "$port1name" ]; then
$port1 -iwad $wad $@
elif [ "$button" = "$port2name" ]; then
$port2 -iwad $wad $@
elif [ "$button" = "$port3name" ]; then
$port3 -iwad $wad $@
fi
fi

View File

@@ -0,0 +1,58 @@
SUMMARY="Old-school FPS game for the Doom engine"
DESCRIPTION="Hacx is an action filled Doom Engine game commercially released in 1997 then re-released in 2000 as freeware.
The story is set in the near future, where you'll find yourself engrossed in an international blastfest.
Wield weapons of mass destruction from China to Paris to combat a devilish artificial intelligence and its hordes of loyal fanatics.
Can you handle it, hacker?
This package contains the Hacx game data along with a script that will look for compatible \
Doom source ports installed. If only one is found the game will run directly, \
if there are more installed a pop-up to select the preferred one will be shown."
HOMEPAGE="http://drnostromo.com/hacx/"
COPYRIGHT="1997 - 2010 Banjo Software Inc. & contributors"
LICENSE="Public Domain"
REVISION="1"
SOURCE_URI="http://drnostromo.com/hacx/files/hacx12.zip"
CHECKSUM_SHA256="70d25e8f4b48906759db32213927859a99b3b045d3291d468357b225d64cbf8b"
SOURCE_DIR=""
ADDITIONAL_FILES="
hacx.rdef.in
hacx.sh
"
ARCHITECTURES="any"
DISABLE_SOURCE_PACKAGE="yes"
PROVIDES="
hacx = $portVersion
"
REQUIRES="
engine:doom
"
INSTALL()
{
# Pack game data
mkdir -p $dataDir/doomdata && cp HACX.WAD $dataDir/doomdata/hacx.wad
# Pack docs
mkdir -p $docDir && cp HACX.TXT $docDir/hacx.txt
# Pack script
mkdir -p $appsDir/Hacx && cp $portDir/additional-files/hacx.sh $appsDir/Hacx
chmod +x $appsDir/Hacx/hacx.sh
# Generate the rdef
local MAJOR="`echo "$portVersion" | cut -b1`"
local MIDDLE="`echo "$portVersion" | cut -b3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/hacx.rdef.in > hacx.rdef
# Iconize & link script
rc hacx.rdef
resattr -o $appsDir/Hacx/hacx.sh hacx.rsrc
addAppDeskbarSymlink $appsDir/Hacx/hacx.sh "Hacx: Twitch 'n Kill"
}

View File

@@ -1,4 +1,4 @@
resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY;
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = @MAJOR@,

View File

@@ -1,7 +1,7 @@
From 9af8b16bfbb4bb2c96201671d6add490313c4bb6 Mon Sep 17 00:00:00 2001
From e82109d5f948601b6577b163dc7621b70864b41e Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Thu, 31 Oct 2024 23:41:45 +0100
Subject: Change default midi + soundfont paths for 2.6.66 + better path lookup
Subject: Change default midi + soundfont paths for 2.6.66
diff --git a/prboom2/src/m_misc.c b/prboom2/src/m_misc.c
@@ -14,19 +14,26 @@ index dc35ac9..6b62fca 100644
#else
- {"snd_midiplayer",{NULL, &snd_midiplayer},{0,"sdl"},UL,UL,def_str,ss_none},
- {"snd_soundfont",{NULL, &snd_soundfont},{0,"/usr/share/sounds/sf3/default-GM.sf3"},UL,UL,def_str,ss_none}, // soundfont name for synths that support it
+ {"snd_midiplayer",{NULL, &snd_midiplayer},{0,"opl2"},UL,UL,def_str,ss_none},
+ {"snd_midiplayer",{NULL, &snd_midiplayer},{0,"fluidsynth"},UL,UL,def_str,ss_none},
+ {"snd_soundfont",{NULL, &snd_soundfont},{0,"/boot/system/data/synth/TimGM6mb.sf2"},UL,UL,def_str,ss_none}, // soundfont name for synths that support it
#endif
{"snd_mididev",{NULL, &snd_mididev},{0,""},UL,UL,def_str,ss_none}, // midi device to use for portmidiplayer and alsaplayer
{"lowpass_filter",{&lowpass_filter},{0},0,1,
--
2.45.2
2.48.1
From e609c3f15996cd15368d5f2ca25ebb79779046f3 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Tue, 1 Apr 2025 22:45:28 +0200
Subject: Better path lookup, look for installed doom data packages
diff --git a/prboom2/src/SDL/i_system.c b/prboom2/src/SDL/i_system.c
index 2094647..c0e9163 100644
index 2094647..f2850bd 100644
--- a/prboom2/src/SDL/i_system.c
+++ b/prboom2/src/SDL/i_system.c
@@ -442,10 +442,8 @@ char* I_FindFileInternal(const char* wfname, const char* ext, dboolean isStatic)
@@ -442,10 +442,11 @@ char* I_FindFileInternal(const char* wfname, const char* ext, dboolean isStatic)
{DOOMWADDIR}, // build-time configured DOOMWADDIR
{NULL, "doom", "HOME"}, // ~/doom
{NULL, NULL, "HOME"}, // ~
@@ -34,11 +41,14 @@ index 2094647..c0e9163 100644
- {"/usr/share/games/doom"},
- {"/usr/local/share/doom"},
- {"/usr/share/doom"},
+ {"/boot/home/config/non-packaged/data/doom"},
+ {"/boot/home/config/non-packaged/data/doomdata"},
+ {NULL, "config/non-packaged/data/doom", "HOME"},
+ {NULL, "config/non-packaged/data/doomdata", "HOME"},
+ {"/boot/system/non-packaged/data/doomdata"},
+ {"/boot/system/data/doomdata"}, // Doom data packages
+ {NULL, "config/data/doomdata", "HOME"}, // Doom data (user) packages)
}, *search;
static size_t num_search;
--
2.45.2
2.48.1

View File

@@ -1,18 +1,20 @@
SUMMARY="Enhanced clone of the classic first-person shooter Doom"
DESCRIPTION="PrBoom+ is a Doom source port developed from the original PrBoom project by Andrey Budko.
The binaries will look for .wad files (in lowercase) in:
The binaries will look for .wad files in:
* ~/config/non-packaged/data/prboom-plus
* ~/config/non-packaged/data/doomdata
* ~/config/non-packaged/data/doom
* ~/config/settings/prboom-plus
* ~/doom
* /boot/system/non-packaged/data/doomdata
* Any compatible game data package
The binaries can be also used via command-line with the -iwad command.
Example: 'prboom-plus -iwad ~/config/non-packaged/data/doom/doom.wad'"
Example: 'prboom-plus -iwad /path/to/doom/doom.wad'"
HOMEPAGE="https://github.com/coelckers/prboom-plus"
COPYRIGHT="2016-2023 Andrey Budko et al."
LICENSE="GNU GPL v2"
REVISION="3"
REVISION="4"
SOURCE_URI="https://github.com/coelckers/prboom-plus/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="4b647b4b14c3fac00711e6bf19f996bbfe37754a3b9bb5be6791f0c3fd993438"
SOURCE_DIR="prboom-plus-$portVersion"
@@ -26,14 +28,15 @@ PROVIDES="
prboom_plus$secondaryArchSuffix = $portVersion
cmd:prboom_plus = $portVersion
cmd:prboom_plus_game_server = $portVersion
engine:doom
"
REQUIRES="
haiku$secondaryArchSuffix
# lib:libdumb_0.9.3$secondaryArchSuffix # Optional, required by portmidi?
# lib:libfluidsynth$secondaryArchSuffix # Optional, for Fluidsynth MIDI
lib:libdumb_0.9.3$secondaryArchSuffix # Optional, used with portmidi
lib:libfluidsynth$secondaryArchSuffix # Optional, for Fluidsynth MIDI
lib:libmad$secondaryArchSuffix
lib:libpcreposix$secondaryArchSuffix
# lib:libportmidi$secondaryArchSuffix # Optional, related MIDI player doesn't seem to work
lib:libportmidi$secondaryArchSuffix # Optional, MIDI player
lib:libSDL2_2.0$secondaryArchSuffix
lib:libSDL2_image_2.0$secondaryArchSuffix
lib:libSDL2_mixer_2.0$secondaryArchSuffix
@@ -44,12 +47,12 @@ REQUIRES="
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
# devel:libdumb$secondaryArchSuffix # Optional, required by portmidi?
# devel:libfluidsynth$secondaryArchSuffix # Optional, for Fluidsynth MIDI, not working in-game
# devel:libGL$secondaryArchSuffix # Optional? Seems unused
devel:libmad$secondaryArchSuffix # Seems to not work, makes non-opl2 MIDI fail
devel:libdumb$secondaryArchSuffix # Optional, used with portmidi
devel:libfluidsynth$secondaryArchSuffix # Optional, for Fluidsynth MIDI
devel:libGL$secondaryArchSuffix # Optional, used during build, unsure if it affects the binary in any way
devel:libmad$secondaryArchSuffix
devel:libpcreposix$secondaryArchSuffix
# devel:libportmidi$secondaryArchSuffix # Optional, MIDI player, not working in-game
devel:libportmidi$secondaryArchSuffix # Optional, MIDI player
devel:libSDL2$secondaryArchSuffix
devel:libSDL2_image$secondaryArchSuffix
devel:libSDL2_mixer$secondaryArchSuffix
@@ -65,29 +68,22 @@ BUILD_PREREQUIRES="
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage prboom_plus$secondaryArchSuffix \
$prefix/bin/prboom-plus \
$prefix/bin/prboom-plus-game-server
BUILD()
{
nonpackdatadir=$(finddir B_USER_NONPACKAGED_DATA_DIRECTORY)
mkdir -p build && cd build
cmake ../prboom2 $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
cmake -Bbuild -S./prboom2 $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_BINDIR="$prefix/bin" \
-DPRBOOMDATADIR="$dataDir/prboom-plus" \
-DDOOMWADDIR="$nonpackdatadir/prboom-plus"
make $jobArgs
make -C build $jobArgs
}
INSTALL()
{
cd build
make install
make -C build install
# Generate the rdef
local MAJOR="`echo "$portVersion" | cut -b1`"