aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2014-03-30 12:29:27 -0500
committerErik Hanson <erik@slackbuilds.org>2014-04-12 13:59:48 -0500
commit11fd7892b56d4a97cc5a93b9204562d70bbc9b21 (patch)
treed42fd296ec58c3554e75f298d1e8e38cbe375911
parentd9a8bbf2e1c9302db876e15b3459b59c5f903db4 (diff)
games/openjazz: Added (engine for Jazz Jackrabbit games)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r--games/openjazz/README31
-rw-r--r--games/openjazz/doinst.sh4
-rw-r--r--games/openjazz/openjazz-shareware.desktop8
-rw-r--r--games/openjazz/openjazz.6207
-rw-r--r--games/openjazz/openjazz.SlackBuild139
-rw-r--r--games/openjazz/openjazz.info12
-rw-r--r--games/openjazz/openjazz.pngbin0 -> 1838 bytes
-rw-r--r--games/openjazz/openjazz.pod82
-rw-r--r--games/openjazz/paths.diff132
-rw-r--r--games/openjazz/slack-desc19
10 files changed, 634 insertions, 0 deletions
diff --git a/games/openjazz/README b/games/openjazz/README
new file mode 100644
index 000000000000..60c3086e704b
--- /dev/null
+++ b/games/openjazz/README
@@ -0,0 +1,31 @@
+OpenJazz is a free, open-source version of the classic Jazz Jackrabbit
+games. OpenJazz can be compiled on a wide range of operating systems,
+including Windows 98/Me/XP and Linux. OpenJazz requires the files
+from any of the following games:
+
+- Jazz Jackrabbit Shareware Edition (included in this build)
+- Jazz Jackrabbit
+- Jazz Jackrabbit CD
+- Jazz Jackrabbit Christmas Edition
+- Jazz Jackrabbit: Holiday Hare 1995
+
+OpenJazz will not work with any of the Jazz Jackrabbit 2 games.
+
+There is no support for saving/loading the game. Multiplayer
+is supported, but not well tested. For more information, see
+http://www.alister.eu/jazz/oj/faq.php
+
+This build includes the data files from the shareware edition, installed
+in /usr/share/openjazz/shareware, and a wrapper script openjazz-shareware
+that runs them (along with a .desktop file that does the same). To run
+one of the other supported games, you'll need an installed/extracted copy
+of the game in its own directory, and you'll have to pass the directory
+path to openjazz as an argument. Example:
+
+$ openjazz /dosC/games/jazz
+
+Note that all the actual data files need to have UPPERCASE names,
+e.g. "BLOCKS.000". If yours are lowercase, you can use something
+like this:
+
+$ for i in *; do mv $i $( echo $i | tr a-z A-Z ); done
diff --git a/games/openjazz/doinst.sh b/games/openjazz/doinst.sh
new file mode 100644
index 000000000000..4e8ba7071dea
--- /dev/null
+++ b/games/openjazz/doinst.sh
@@ -0,0 +1,4 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
diff --git a/games/openjazz/openjazz-shareware.desktop b/games/openjazz/openjazz-shareware.desktop
new file mode 100644
index 000000000000..d32a47921d15
--- /dev/null
+++ b/games/openjazz/openjazz-shareware.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Jazz Jackrabbit (shareware)
+Comment=Classic DOS game (OpenJazz engine)
+Exec=openjazz
+Icon=openjazz-shareware
+Terminal=false
+Type=Application
+Categories=Game;ArcadeGame;
diff --git a/games/openjazz/openjazz.6 b/games/openjazz/openjazz.6
new file mode 100644
index 000000000000..21d4515242d3
--- /dev/null
+++ b/games/openjazz/openjazz.6
@@ -0,0 +1,207 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "OPENJAZZ 6"
+.TH OPENJAZZ 6 "2014-03-27" "160214" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+openjazz \- free/open\-source game engine for Jazz Jackrabbit
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBopenjazz\fR \fI[\-f]\fR \fI[dir] ...\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+OpenJazz is a free, open-source version of the classic Jazz Jackrabbit(tm)
+games. OpenJazz can be compiled on a wide range of operating systems,
+including Windows 98/Me/XP and Linux. OpenJazz requires the files
+from any of the following games:
+.IP "Jazz Jackrabbit" 4
+.IX Item "Jazz Jackrabbit"
+.PD 0
+.IP "Jazz Jackrabbit \s-1CD\s0" 4
+.IX Item "Jazz Jackrabbit CD"
+.IP "Jazz Jackrabbit Shareware Edition" 4
+.IX Item "Jazz Jackrabbit Shareware Edition"
+.IP "Jazz Jackrabbit Christmas Edition" 4
+.IX Item "Jazz Jackrabbit Christmas Edition"
+.IP "Jazz Jackrabbit: Holiday Hare 1995" 4
+.IX Item "Jazz Jackrabbit: Holiday Hare 1995"
+.PD
+.PP
+OpenJazz will not work with any of the Jazz Jackrabbit 2 games. Don't
+get confused: there's a \*(L"Holiday Hare 1998\*(R", which isn't supported
+(only the 1995 version is).
+.PP
+There is no support for saving/loading the game. Multiplayer
+is supported, but not well tested.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+\&\fB\-f\fR starts the game fullscreen. Any other option beginning with \- will
+be ignored. Anything else is treated as a directory to be added to the
+file search path.
+.SH "FILES"
+.IX Header "FILES"
+Game data files must be named in uppercase (e.g. \fB\s-1BLOCKS.000\s0\fR).
+.PP
+The search path for game data files includes, in order:
+.IP "the current directory" 4
+.IX Item "the current directory"
+.PD 0
+.ie n .IP "$HOME/.openjazz/" 4
+.el .IP "\f(CW$HOME\fR/.openjazz/" 4
+.IX Item "$HOME/.openjazz/"
+.IP "all paths listed on the command line \fIin reverse order\fR" 4
+.IX Item "all paths listed on the command line in reverse order"
+.PD
+.PP
+In addition, the file \fBopenjazz.000\fR (containing the OpenJazz logo,
+note the lowercase name) will be searched for in \fB/usr/share/openjazz\fR
+after all other directories (so each separate game doesn't need its
+own copy, when you've got multiple games installed).
+.PP
+\&\fB\f(CB$HOME\fB/.openjazz/\fR stores user preferences and any custom levels
+downloaded from multiplayer servers. Will be created if it doesn't
+exist.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fBhttp://www.alister.eu/jazz/oj/faq.php\fR
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+\&\fBopenjazz\fR is copyright (c) 2005\-2013 Alister Thomson.
+.PP
+This man page written by B. Watson for the SlackBuilds.org project, and may
+be used by anyone.
diff --git a/games/openjazz/openjazz.SlackBuild b/games/openjazz/openjazz.SlackBuild
new file mode 100644
index 000000000000..a159e77b316b
--- /dev/null
+++ b/games/openjazz/openjazz.SlackBuild
@@ -0,0 +1,139 @@
+#!/bin/sh
+
+# Slackware build script for openjazz
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+PRGNAM=openjazz
+VERSION=${VERSION:-160214}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+SRCNAM=OpenJazz
+ZIPFILE=$SRCNAM-src-$VERSION.zip
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+mkdir -p $PRGNAM-$VERSION
+cd $PRGNAM-$VERSION
+unzip $CWD/$ZIPFILE
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Patch does 4 things:
+
+# - Always look for openjazz.000 in /usr/share/openjazz. Saves the user
+# from having to keep copies or symlinks of it in every game dir.
+
+# - Writes config file to user's homedir, not current dir.
+
+# - For .psm (music) files, if they're not found as "blah.psm", try the
+# all-uppercase "BLAH.PSM" instead. Saves the user having to rename
+# them (and keeps things consistent, EVERYTHING ALL CAPS). In case you're
+# wondering, the lowercase psm filenames are hardcoded inside the data
+# files from the DOS game, not the source.
+
+# - Logs the full path & result of every attempted file open. I needed
+# this myself to understand WTF was going on, leaving it in case
+# users find it helpful.
+
+patch -p1 < $CWD/paths.diff
+
+autoreconf -if
+
+# HOMEDIR should be defined on *nix, for some reason it's not automatically.
+SLKCFLAGS="$SLKCFLAGS -DHOMEDIR"
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --build=$ARCH-slackware-linux
+
+make
+make install-strip DESTDIR=$PKG
+
+# icon came from windows jazz jackrabbit CD, converted with icotool
+mkdir -p $PKG/usr/share/pixmaps
+cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/shareware \
+ $PKG/usr/share/$PRGNAM/shareware
+
+cd $PKG/usr/share/$PRGNAM/shareware
+unzip $CWD/jjrabbit.zip
+ for i in *.DOC; do
+ sed 's,\r,,g' $i > $PKG/usr/doc/$PRGNAM-$VERSION/shareware/$i
+ done
+ rm -f *.EXE *.DIZ *.DOC *.PIF
+cd -
+
+# wrapper script
+mkdir -p $PKG/usr/games
+cat <<EOF >$PKG/usr/games/$PRGNAM-shareware
+#!/bin/sh
+exec $PRGNAM /usr/share/$PRGNAM/shareware "\$@"
+EOF
+chmod 755 $PKG/usr/games/$PRGNAM-shareware
+
+# man page written for this slackbuild
+mkdir -p $PKG/usr/man/man6
+gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+
+mkdir -p $PKG/usr/share/applications
+cat $CWD/$PRGNAM-shareware.desktop \
+ > $PKG/usr/share/applications/$PRGNAM-shareware.desktop
+
+for i in *.txt; do
+ sed 's,\r,,g' $i > $PKG/usr/doc/$PRGNAM-$VERSION/$i
+done
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/games/openjazz/openjazz.info b/games/openjazz/openjazz.info
new file mode 100644
index 000000000000..d49841e28016
--- /dev/null
+++ b/games/openjazz/openjazz.info
@@ -0,0 +1,12 @@
+PRGNAM="openjazz"
+VERSION="160214"
+HOMEPAGE="http://www.alister.eu/jazz/oj/"
+DOWNLOAD="http://www.alister.eu/jazz/oj/OpenJazz-src-160214.zip \
+ http://urchlay.naptime.net/~urchlay/src/jjrabbit.zip"
+MD5SUM="a570ae8b148a8b0fd7a3a121289a4721 \
+ 48bc5ae9ac3d0bb3a45a8262f68bf78c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="libmodplug"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/games/openjazz/openjazz.png b/games/openjazz/openjazz.png
new file mode 100644
index 000000000000..c96691d863ea
--- /dev/null
+++ b/games/openjazz/openjazz.png
Binary files differ
diff --git a/games/openjazz/openjazz.pod b/games/openjazz/openjazz.pod
new file mode 100644
index 000000000000..cce21dcba47c
--- /dev/null
+++ b/games/openjazz/openjazz.pod
@@ -0,0 +1,82 @@
+# pod source for openjazz man page
+# pod2man -s6 -r160214 --stderr -cSlackBuilds.org openjazz.pod > openjazz.6
+
+=pod
+
+=head1 NAME
+
+B<openjazz> - free/open-source game engine for Jazz Jackrabbit
+
+=head1 SYNOPSIS
+
+B<openjazz> I<[-f]> I<[dir] ...>
+
+=head1 DESCRIPTION
+
+OpenJazz is a free, open-source version of the classic Jazz Jackrabbit(tm)
+games. OpenJazz can be compiled on a wide range of operating systems,
+including Windows 98/Me/XP and Linux. OpenJazz requires the files
+from any of the following games:
+
+=over
+
+=item Jazz Jackrabbit
+
+=item Jazz Jackrabbit CD
+
+=item Jazz Jackrabbit Shareware Edition
+
+=item Jazz Jackrabbit Christmas Edition
+
+=item Jazz Jackrabbit: Holiday Hare 1995
+
+=back
+
+OpenJazz will not work with any of the Jazz Jackrabbit 2 games. Don't
+get confused: there's a "Holiday Hare 1998", which isn't supported
+(only the 1995 version is).
+
+There is no support for saving/loading the game. Multiplayer
+is supported, but not well tested.
+
+=head1 OPTIONS
+
+B<-f> starts the game fullscreen. Any other option beginning with - will
+be ignored. Anything else is treated as a directory to be added to the
+file search path.
+
+=head1 FILES
+
+Game data files must be named in uppercase (e.g. B<BLOCKS.000>).
+
+The search path for game data files includes, in order:
+
+=over
+
+=item the current directory
+
+=item $HOME/.openjazz/
+
+=item all paths listed on the command line I<in reverse order>
+
+=back
+
+In addition, the file B<openjazz.000> (containing the OpenJazz logo,
+note the lowercase name) will be searched for in B</usr/share/openjazz>
+after all other directories (so each separate game doesn't need its
+own copy, when you've got multiple games installed).
+
+B<$HOME/.openjazz/> stores user preferences and any custom levels
+downloaded from multiplayer servers. Will be created if it doesn't
+exist.
+
+=head1 SEE ALSO
+
+B<http://www.alister.eu/jazz/oj/faq.php>
+
+=head1 AUTHORS
+
+B<openjazz> is copyright (c) 2005-2013 Alister Thomson.
+
+This man page written by B. Watson for the SlackBuilds.org project, and may
+be used by anyone.
diff --git a/games/openjazz/paths.diff b/games/openjazz/paths.diff
new file mode 100644
index 000000000000..96a3319381bc
--- /dev/null
+++ b/games/openjazz/paths.diff
@@ -0,0 +1,132 @@
+diff -Naur orig/src/io/file.cpp patched/src/io/file.cpp
+--- orig/src/io/file.cpp 2014-02-15 22:14:10.000000000 -0500
++++ patched/src/io/file.cpp 2014-03-27 01:48:27.000000000 -0400
+@@ -32,6 +32,7 @@
+ #include "io/gfx/video.h"
+ #include "util.h"
+
++#include <stdlib.h>
+ #include <string.h>
+ #include <zlib.h>
+
+@@ -43,6 +44,16 @@
+ * @param write Whether or not the file can be written to
+ */
+ File::File (const char* name, bool write) {
++#ifdef HOMEDIR
++ if(write) {
++ char *writepath = createString(getenv("HOME"), "/.openjazz/");
++ bool ok = open(writepath, name, write);
++ delete [] writepath;
++ if(ok) return;
++ log("Could not open file for writing in $HOME", name);
++ throw E_FILE;
++ }
++#endif
+
+ Path* path;
+
+@@ -55,7 +66,7 @@
+
+ }
+
+- log("Could not open file", name);
++ log("Could not find file in path", name);
+
+ throw E_FILE;
+
+@@ -69,9 +80,7 @@
+
+ fclose(file);
+
+-#ifdef VERBOSE
+ log("Closed file", filePath);
+-#endif
+
+ delete[] filePath;
+
+@@ -117,13 +126,13 @@
+
+ if (file) {
+
+-#ifdef VERBOSE
+ log("Opened file", filePath);
+-#endif
+
+ return true;
+
+- }
++ } else {
++ log("Could not open file", filePath);
++ }
+
+ delete[] filePath;
+
+diff -Naur orig/src/io/sound.cpp patched/src/io/sound.cpp
+--- orig/src/io/sound.cpp 2013-11-23 11:54:26.000000000 -0500
++++ patched/src/io/sound.cpp 2014-03-27 01:47:03.000000000 -0400
+@@ -27,6 +27,8 @@
+ */
+
+
++#include <ctype.h>
++#include <string.h>
+ #include "file.h"
+ #include "sound.h"
+
+@@ -203,7 +205,15 @@
+
+ } catch (int e) {
+
+- return;
++ char *upperName = strdup(fileName);
++ for(char *ch = upperName; *ch; ++ch)
++ *ch = toupper(*ch);
++ try {
++ file = new File(upperName, false);
++ free(upperName);
++ } catch(int e) {
++ return;
++ }
+
+ }
+
+diff -Naur orig/src/main.cpp patched/src/main.cpp
+--- orig/src/main.cpp 2014-02-16 10:59:02.000000000 -0500
++++ patched/src/main.cpp 2014-03-27 01:51:17.000000000 -0400
+@@ -47,6 +47,8 @@
+ #include "setup.h"
+ #include "util.h"
+
++#include <sys/stat.h>
++#include <sys/types.h>
+ #include <string.h>
+
+ #if defined(CAANOO) || defined(WIZ) || defined(GP2X)
+@@ -174,7 +176,9 @@
+ #ifdef WIN32
+ firstPath = new Path(firstPath, createString(getenv("HOME"), "\\"));
+ #else
+- firstPath = new Path(firstPath, createString(getenv("HOME"), "/."));
++ char *homeSubDir = createString(getenv("HOME"), "/.openjazz/");
++ mkdir(homeSubDir, 0700); /* ignore errors */
++ firstPath = new Path(firstPath, homeSubDir);
+ #endif
+ #endif
+
+diff -Naur orig/src/menu/mainmenu.cpp patched/src/menu/mainmenu.cpp
+--- orig/src/menu/mainmenu.cpp 2013-07-20 11:46:16.000000000 -0400
++++ patched/src/menu/mainmenu.cpp 2014-03-27 01:47:03.000000000 -0400
+@@ -58,7 +58,11 @@
+
+ } catch (int e) {
+
+- throw e;
++ try {
++ file = new File("/usr/share/openjazz/" LOGO_FILE, false);
++ } catch(int e) {
++ throw e;
++ }
+
+ }
+
diff --git a/games/openjazz/slack-desc b/games/openjazz/slack-desc
new file mode 100644
index 000000000000..a257d506a25e
--- /dev/null
+++ b/games/openjazz/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+openjazz: openjazz (engine for Jazz Jackrabbit games)
+openjazz:
+openjazz: OpenJazz is a free open-source version of the classic Jazz Jackrabbit
+openjazz: games. OpenJazz requires the files from any of the following games:
+openjazz:
+openjazz: - Jazz Jackrabbit Shareware Edition (included in this build)
+openjazz: - Jazz Jackrabbit
+openjazz: - Jazz Jackrabbit CD
+openjazz: - Jazz Jackrabbit Christmas Edition
+openjazz: - Jazz Jackrabbit: Holiday Hare 1995
+openjazz: