aboutsummaryrefslogtreecommitdiff
path: root/games/higan
diff options
context:
space:
mode:
Diffstat (limited to 'games/higan')
-rw-r--r--games/higan/README27
-rw-r--r--games/higan/doinst.sh4
-rw-r--r--games/higan/higan-v092.patch50
-rw-r--r--games/higan/higan.SlackBuild108
-rw-r--r--games/higan/higan.info10
-rw-r--r--games/higan/slack-desc19
6 files changed, 218 insertions, 0 deletions
diff --git a/games/higan/README b/games/higan/README
new file mode 100644
index 0000000000000..ac7acb1323e15
--- /dev/null
+++ b/games/higan/README
@@ -0,0 +1,27 @@
+higan (formerly known as bsnes) is an emulator that began development
+on 2004-10-14. The purpose of this emulator is a bit different from
+others: it focuses on accuracy, debugging functionality, and clean
+code. The emulator does not focus on things that would hinder accuracy.
+This includes speed and game-specific hacks for compatibility. As a
+result, the minimum system requirements for higan are very high.
+
+It currently supports the following systems: Famicom (NES), Super
+Famicom (SNES), Game Boy, Game Boy Color, Game Boy Advance and
+Nintendo DS. It also supports the following subsystems: Super Game
+Boy, BS-X Satellaview and Sufami Turbo.
+
+Options:
+1) higan has 2 interfaces to choose from. The default is QT
+and the other is GTK. If you'd like to choose the GTK interface,
+then pass INTERFACE=gtk to the slackbuild.
+
+2) There are 3 modes that higan can be built. There can only be one
+mode chosen at build time. The 3 modes are accuracy, balanced (default),
+and performance. To choose accuracy mode pass PROFILE=accuracy to
+the slackbuild. For performance mode pass PROFILE=performance to the
+slackbuild.
+
+Configuration:
+Once installed, you will need to copy /usr/share/higan/profile/*
+into ~/.config/higan/ before running. If you want to use shaders,
+select OpenGL as the video driver.
diff --git a/games/higan/doinst.sh b/games/higan/doinst.sh
new file mode 100644
index 0000000000000..4e8ba7071dea7
--- /dev/null
+++ b/games/higan/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/higan/higan-v092.patch b/games/higan/higan-v092.patch
new file mode 100644
index 0000000000000..dcd3604b4a35e
--- /dev/null
+++ b/games/higan/higan-v092.patch
@@ -0,0 +1,50 @@
+diff -Nur higan_v092-source.orig/ananke/Makefile higan_v092-source/ananke/Makefile
+--- higan_v092-source.orig/ananke/Makefile 2013-01-12 17:18:14.000000000 -0600
++++ higan_v092-source/ananke/Makefile 2013-06-03 15:46:20.887735981 -0500
+@@ -26,7 +26,6 @@
+
+ install: uninstall
+ ifeq ($(platform),x)
+- if [ ! -d ~/.config/ananke ]; then mkdir ~/.config/ananke; fi
+ sudo cp libananke.so $(path)/libananke.so.1
+ sudo ln -s $(path)/libananke.so.1 $(path)/libananke.so
+ endif
+diff -Nur higan_v092-source.orig/higan/target-ethos/Makefile higan_v092-source/higan/target-ethos/Makefile
+--- higan_v092-source.orig/higan/target-ethos/Makefile 2013-01-12 15:59:47.000000000 -0600
++++ higan_v092-source/higan/target-ethos/Makefile 2013-06-03 15:46:38.235227179 -0500
+@@ -17,7 +17,7 @@
+ # platform
+ ifeq ($(platform),x)
+ ruby := video.glx video.xv video.sdl
+- ruby += audio.alsa audio.openal audio.oss audio.pulseaudio audio.pulseaudiosimple audio.ao
++ ruby += audio.alsa audio.openal audio.oss audio.ao
+ ruby += input.sdl input.x
+ else ifeq ($(platform),osx)
+ ruby :=
+@@ -80,18 +80,14 @@
+ sourcery $(ui)/resource/resource.bml $(ui)/resource/resource.cpp $(ui)/resource/resource.hpp
+
+ install:
+-ifeq ($(USER),root)
+- @echo Please do not run make install as root.
+- @echo The installer needs to know your home directory to install important files.
+-else ifeq ($(platform),x)
+- sudo install -D -m 755 out/$(name) $(DESTDIR)$(prefix)/bin/$(name)
+- sudo install -D -m 644 data/$(name).png $(DESTDIR)$(prefix)/share/pixmaps/$(name).png
+- sudo install -D -m 644 data/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop
+-
+- mkdir -p ~/.config/$(name)
+- cp -R profile/* ~/.config/$(name)
+- cp data/cheats.bml ~/.config/$(name)/cheats.bml
+- chmod -R 777 ~/.config/$(name)
++ifeq ($(platform),x)
++ install -D -m 755 out/$(name) $(DESTDIR)$(prefix)/bin/$(name)
++ install -D -m 644 data/$(name).png $(DESTDIR)$(prefix)/share/pixmaps/$(name).png
++ install -D -m 644 data/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop
++ install -d -m 755 $(DESTDIR)$(prefix)/share/$(name)/profile
++ cp -R profile/* $(DESTDIR)$(prefix)/share/$(name)/profile
++ install -m 644 data/cheats.bml $(DESTDIR)$(prefix)/share/$(name)/profile/cheats.bml
++ chmod -R 644 $(DESTDIR)$(prefix)/share/$(name)/profile/*/*
+ endif
+
+ uninstall:
diff --git a/games/higan/higan.SlackBuild b/games/higan/higan.SlackBuild
new file mode 100644
index 0000000000000..8b39e94b8bf09
--- /dev/null
+++ b/games/higan/higan.SlackBuild
@@ -0,0 +1,108 @@
+#!/bin/sh
+
+# Slackware build script for higan
+
+# Based on bsnes SlackBuild by Erik Hanson <erik@slackbuilds.org>
+# Maintained by Gabriel Magno <gabrielmagno1[at]gmail[dot]com>
+
+PRGNAM=higan
+VERSION=${VERSION:-092}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ *) export 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
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf ${PRGNAM}_v${VERSION}-source
+tar xvf $CWD/${PRGNAM}_v${VERSION}-source.tar.xz
+cd ${PRGNAM}_v${VERSION}-source
+find . -type d -exec chmod -R 0755 {} \;
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# apply the patch to allow proper install on slackware as root (from hackedhead)
+# tweaked a bit by rworkman to fix ananke issues too
+patch -p1 -i $CWD/higan-v092.patch
+
+cd $PRGNAM
+ moc -i -Iphoenix/qt/ -o phoenix/qt/platform.moc phoenix/qt/platform.moc.hpp
+
+ # Choose whether a qt or gtk interface is built.
+ INTERFACE=${INTERFACE:-qt}
+
+ # Determine which mode to build higan.
+ # Possible values for PROFILE: accuracy, balanced, and performance.
+ PROFILE=${PROFILE:-balanced}
+
+ CXXFLAGS="$SLKCFLAGS" \
+ make \
+ platform=x \
+ compiler=gcc \
+ prefix=/usr \
+ phoenix="$INTERFACE" \
+ profile="$PROFILE"
+
+ make install profile=$PROFILE DESTDIR=$PKG prefix=/usr
+cd ..
+
+# Compile ananke.
+cd ananke
+ # Fix building with QT >= 4.8.0.
+ moc -i -Iphoenix/qt/ -o phoenix/qt/platform.moc phoenix/qt/platform.moc.hpp
+
+ make \
+ compiler=gcc \
+ platform=x \
+ phoenix="$INTERFACE"
+
+ make install DESTDIR=$PKG prefix=/usr
+cd ..
+
+# Copy shaders
+cp -r shaders "$PKG/usr/share/higan/profile/Video Shaders"
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+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/higan/higan.info b/games/higan/higan.info
new file mode 100644
index 0000000000000..7c6cb5af29bae
--- /dev/null
+++ b/games/higan/higan.info
@@ -0,0 +1,10 @@
+PRGNAM="higan"
+VERSION="092"
+HOMEPAGE="http://byuu.org/higan/"
+DOWNLOAD="http://higan.googlecode.com/files/higan_v092-source.tar.xz"
+MD5SUM="ef6a6a9bc6861d26da01c2e03e6dfe9e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="OpenAL"
+MAINTAINER="Gabriel Magno"
+EMAIL="gabrielmagno1@gmail.com"
diff --git a/games/higan/slack-desc b/games/higan/slack-desc
new file mode 100644
index 0000000000000..4aabb32cb2469
--- /dev/null
+++ b/games/higan/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------------------------------------------------------|
+higan: higan (Nintendo multi-system emulator)
+higan:
+higan: higan is an emulator that focuses on accuracy, debug functionality,
+higan: and clean code, not on things that would hinder accuracy, like speed
+higan: and game-specific hacks for compatibility. It supports the systems
+higan: Famicom (NES), Super Famicom (SNES), Game Boy, Game Boy Color,
+higan: Game Boy Advance, and Nintendo DS. It also supports the subsystems
+higan: Super Game Boy, BS-X Satellaview, and Sufami Turbo.
+higan:
+higan: Homepage: http://byuu.org/higan/
+higan: