summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/epsxe/README23
-rw-r--r--games/epsxe/doinst.sh19
-rw-r--r--games/epsxe/dot.epsxerc35
-rw-r--r--games/epsxe/epsxe.SlackBuild95
-rw-r--r--games/epsxe/epsxe.desktop12
-rw-r--r--games/epsxe/epsxe.info8
-rw-r--r--games/epsxe/epsxe.pngbin0 -> 1897 bytes
-rw-r--r--games/epsxe/slack-desc19
-rw-r--r--games/epsxe/wrapper.epsxe25
9 files changed, 236 insertions, 0 deletions
diff --git a/games/epsxe/README b/games/epsxe/README
new file mode 100644
index 0000000000..18e4062a50
--- /dev/null
+++ b/games/epsxe/README
@@ -0,0 +1,23 @@
+ePSXe (enhanced PSX emulator) is an emulator of the Sony PlayStation video
+game console for x86-based PC hardware. It was written by three authors,
+using the aliases "Calb", "_Demo_", and "Galtor". It has been described as
+the best freeware Playstation emulator available.
+
+ePSXe makes use of a plugin system to emulate GPU, SPU, and CD drive functions
+ * GPU: Most GPU plugins run with either Direct3D, OpenGL, or the
+ Glide API, and are available freeware or open source.
+ * SPU: The SPU plugins can emulate everything from music to sound
+ effects, with varying degrees of success depending on the plugin
+ settings, and of course the plugin being used.
+ * CD-ROM: ePSXe comes with a core CD-ROM plugin, but many others
+ are available for freeware download and many can emulate up to
+ seven different types of read modes.
+ * Input: The core plugin is sufficient, but there are others that
+ allow for more functionality. It is even possible to plug in and
+ use a DualShock controller with a USB adapter.
+
+If you want to add plugins to the epsxe, go to $HOME/.epsxe, where you
+will find the plugins directory. Note that this script installs many
+needed directories owned by root:games and writable by that group; if you
+want a user to be able to install plugins, then make sure they are in the
+games group.
diff --git a/games/epsxe/doinst.sh b/games/epsxe/doinst.sh
new file mode 100644
index 0000000000..8dbf8e2b06
--- /dev/null
+++ b/games/epsxe/doinst.sh
@@ -0,0 +1,19 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config var/games/epsxe/.epsxerc.new
+
+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/epsxe/dot.epsxerc b/games/epsxe/dot.epsxerc
new file mode 100644
index 0000000000..70585beab2
--- /dev/null
+++ b/games/epsxe/dot.epsxerc
@@ -0,0 +1,35 @@
+#
+# ePSXe config file
+#
+
+# Plugins names
+VideoPlugin = libgpuPeteXGL2.so.2.0.8
+SoundPlugin = libspuPeopsOSS.so.1.0.8
+PadPlugin = libpadJoy-0.8.so
+
+# File paths/names
+BiosPath = @INSTALLDIR@/SCPH1001.BIN
+CdromDevice = /dev/cdrom
+CdromMountPath = /mnt/cdrom
+IsoDirectory = /
+
+# Memory cards [files]
+MemcardPath1 = @INSTALLDIR@/memcards/epsxe000.mcr
+MemcardPath2 = @INSTALLDIR@/memcards/epsxe001.mcr
+
+# Sounds options [0-disabled, 1-enabled]
+SoundEnabled = 1
+SoundXA = 1
+SoundCDDA = 0
+SoundFakeSpuIrq = 0
+
+# Keys [16-keycodes]
+Keys1 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+Keys2 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+Keys3 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+Keys4 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+Multitap1 = 0
+
+# Misc options [0-NTSC, 1-PAL, 255-AUTODETECT, 0-disabled, 1-enabled]
+Country = 0
+AutoPpfLoad = 1
diff --git a/games/epsxe/epsxe.SlackBuild b/games/epsxe/epsxe.SlackBuild
new file mode 100644
index 0000000000..4eb3baf7f3
--- /dev/null
+++ b/games/epsxe/epsxe.SlackBuild
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+# Slackware build script for epsxe
+
+# Copyright (c) 2009, soyalexman, soyalexman@soyalexman.com
+# PSX Controller icon made by soyalexman.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1.- Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# NOTE:plugins,bios or cfg are not considered on this script
+
+PRGNAM=epsxe
+VERSION=1.60
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+EPSXEZIP=160lin
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $PKG/usr/games/$PRGNAM-$VERSION $OUTPUT
+unzip $CWD/$PRGNAM$EPSXEZIP.zip -d $PKG/usr/games/$PRGNAM-$VERSION
+cd $PKG/usr/games/$PRGNAM-$VERSION
+chown -R root:root .
+
+## We'll diverge from upstream a bit in locations but not functionality
+## Some of this stuff needs to be writable by users, so it can't be on the
+## /usr partition in case it's mounted readonly. Also, we don't want *all*
+## users to have write permissions on it, so we'll handle that too.
+# First, the global configuration file
+mkdir -p $PKG/var/games/$PRGNAM
+sed "s%@INSTALLDIR@%/usr/games/$PRGNAM-$VERSION%g" $CWD/dot.epsxerc > \
+ $PKG/var/games/$PRGNAM/.epsxerc.new
+cd $PKG/usr/games/$PRGNAM-$VERSION
+ # Link the config file to where it's expected
+ ln -s ../../../var/games/$PRGNAM/.epsxerc .epsxerc
+ mv bios cfg cheats memcards plugins sstates snap \
+ $PKG/var/games/$PRGNAM
+ for i in bios cfg cheats memcards plugins sstates snap ; do
+ ln -s ../../../var/games/$PRGNAM/$i . ;
+ done
+cd -
+
+# Make the plugins, bios, cfg, cheats, memcards, and snap dirs be owned by
+# root:games and mode 2775 ; also make files 0664
+chown -R root:games $PKG/var/games/$PRGNAM
+find $PKG/var/games/$PRGNAM -type f -exec chmod 0664 {} \;
+find $PKG/var/games/$PRGNAM -type d -exec chmod 2775 {} \;
+
+# Add a wrapper in PATH (/usr/games) which will run the real executable at
+# /usr/games/$PRGNAM-$VERSION/epsxe after handling some config details
+sed "s%@INSTALLDIR@%/usr/games/$PRGNAM-$VERSION%g" $CWD/wrapper.epsxe \
+ > $PKG/usr/games/epsxe
+chmod 0755 $PKG/usr/games/epsxe
+
+# Add a .desktop file and icon for good menu integration
+mkdir -p $PKG/usr/share/{applications,pixmaps}
+install -m 0644 $CWD/epsxe.desktop $PKG/usr/share/applications/epsxe.desktop
+install -m 0644 $CWD/epsxe.png $PKG/usr/share/pixmaps/epsxe.png
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mv docs/* $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+( cd $PKG/usr/games/$PRGNAM-$VERSION
+ rm -rf docs ; ln -sf ../../doc/$PRGNAM-$VERSION/ docs
+)
+
+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.tgz
diff --git a/games/epsxe/epsxe.desktop b/games/epsxe/epsxe.desktop
new file mode 100644
index 0000000000..1dbc352407
--- /dev/null
+++ b/games/epsxe/epsxe.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=EPSXE
+Comment=PSX Emulator
+Exec=epsxe
+Icon=epsxe
+Terminal=false
+Type=Application
+Categories=GNOME;GTK;Qt;KDE;Game;
+StartupNotify=false
+GenericName=PSX Emulation
+X-KDE-StartupNotify=false
+X-DCOP-ServiceType=Multi
diff --git a/games/epsxe/epsxe.info b/games/epsxe/epsxe.info
new file mode 100644
index 0000000000..4ac40455a0
--- /dev/null
+++ b/games/epsxe/epsxe.info
@@ -0,0 +1,8 @@
+PRGNAM="epsxe"
+VERSION="1.60"
+HOMEPAGE="http://www.epsxe.com"
+DOWNLOAD="http://www.epsxe.com/files/epsxe160lin.zip"
+MD5SUM="32704cfc77939b9a1bd047f22b70eca2"
+MAINTAINER="soyalexman"
+EMAIL="soyalexman@soyalexman.com"
+APPROVED="rworkman"
diff --git a/games/epsxe/epsxe.png b/games/epsxe/epsxe.png
new file mode 100644
index 0000000000..49c5295c63
--- /dev/null
+++ b/games/epsxe/epsxe.png
Binary files differ
diff --git a/games/epsxe/slack-desc b/games/epsxe/slack-desc
new file mode 100644
index 0000000000..766c2dee16
--- /dev/null
+++ b/games/epsxe/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+epsxe: EPSXE (PSX Emulator)
+epsxe:
+epsxe: ePSXe (enhanced PSX emulator) is an emulator of the Sony PlayStation
+epsxe: video game console for x86-based PC hardware. It was written by
+epsxe: three authors, using the aliases "Calb", "_Demo_", and "Galtor".
+epsxe: It has been described as the best freeware Playstation emulator
+epsxe: available. ((http://en.wikipedia.org/wiki/EPSXe)
+epsxe:
+epsxe: Homepage: http://www.epsxe.com
+epsxe:
+epsxe:
diff --git a/games/epsxe/wrapper.epsxe b/games/epsxe/wrapper.epsxe
new file mode 100644
index 0000000000..af0adb9999
--- /dev/null
+++ b/games/epsxe/wrapper.epsxe
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# This script has 2 reasons to exist.
+# 1) Run the real executable, since it looks for the plugins in the same
+# directory where it is located; therefore, the file structure given
+# by the epsxe team must be preserved.
+# 2) Check if the user's $HOME has a ".epsxe" directory. This is only a way
+# to have links to the plugins directory, that was given write permissions
+# to the games group.
+
+# Check for the $HOME/.epsxe dir.
+if [ ! -d $HOME/.epsxe ]; then
+ mkdir -p $HOME/.epsxe
+ cd $HOME/.epsxe
+ ln -s @INSTALLDIR@/cfg cfg
+ ln -s @INSTALLDIR@/bios bios
+ ln -s @INSTALLDIR@/cheats cheats
+ ln -s @INSTALLDIR@/memcards memcards
+ ln -s @INSTALLDIR@/plugins plugins
+ cd -
+fi
+
+# Run the program
+@INSTALLDIR@/epsxe
+