diff options
author | Gabriel Magno <gabrielmagno1@gmail.com> | 2013-06-03 15:59:39 -0500 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2013-06-04 00:11:32 -0500 |
commit | 7f4cf98d3ff326335b9bdf5a52f2a6a567c4f465 (patch) | |
tree | 270daa9c16481800aa345a7d25265a9200ad5fb7 | |
parent | f17ecd0783d08d658be2afb38a35ae228d7423ac (diff) |
games/higan: Added (Nintendo multi-system emulator)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r-- | games/higan/README | 27 | ||||
-rw-r--r-- | games/higan/doinst.sh | 4 | ||||
-rw-r--r-- | games/higan/higan-v092.patch | 50 | ||||
-rw-r--r-- | games/higan/higan.SlackBuild | 108 | ||||
-rw-r--r-- | games/higan/higan.info | 10 | ||||
-rw-r--r-- | games/higan/slack-desc | 19 |
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: |