From be42faf8c6fd5b81f1068427047b1f89ab50566b Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sun, 30 Oct 2011 18:11:41 -0500 Subject: [PATCH] games/pentagram: Added (an Ultima 8 engine) Signed-off-by: Erik Hanson --- games/pentagram/README | 24 ++++ games/pentagram/doinst.sh | 9 ++ games/pentagram/pentagram.1 | 186 ++++++++++++++++++++++++++ games/pentagram/pentagram.SlackBuild | 116 ++++++++++++++++ games/pentagram/pentagram.desktop | 8 ++ games/pentagram/pentagram.info | 10 ++ games/pentagram/pentagram.ini.default | 65 +++++++++ games/pentagram/pentagram.sh | 13 ++ games/pentagram/slack-desc | 19 +++ 9 files changed, 450 insertions(+) create mode 100644 games/pentagram/README create mode 100644 games/pentagram/doinst.sh create mode 100644 games/pentagram/pentagram.1 create mode 100644 games/pentagram/pentagram.SlackBuild create mode 100644 games/pentagram/pentagram.desktop create mode 100644 games/pentagram/pentagram.info create mode 100644 games/pentagram/pentagram.ini.default create mode 100644 games/pentagram/pentagram.sh create mode 100644 games/pentagram/slack-desc diff --git a/games/pentagram/README b/games/pentagram/README new file mode 100644 index 0000000000..34ffcdded7 --- /dev/null +++ b/games/pentagram/README @@ -0,0 +1,24 @@ +Pentagram is a project aiming to create an Ultima 8 engine for use on +modern operating systems, including Linux, Mac OS X and Windows. + +While it is currently possible to finish Ultima 8 using Pentagram, +not everything is fully working yet. (Save regularly!) In the game +itself, most notably, the combat AI of monsters is still very limited, +and there are still quite a few minor things which are not working as +well as they should. + +Optionally, pentagram can use TiMidity++ or fluidsynth for in-game music +(detected at compile time, must be enabled in pentagram.ini or in-game +menu). + +Pentagram is only an engine. To actually play the game, you will +need an installed copy of "Ultima VIII: Pagan". Either copy the +game directory (the one containing u8.exe) to /usr/share/pentagram +(so that /usr/share/pentagram/u8.exe exists), or edit the 'path=' in +~/.pentagram/pentagram.ini to point to your existing game directory. +Pentagram is smart enough to ignore the case of filenames, so U8.exe or +U8.EXE would also be OK. + +YOU MUST OWN THE GAME in order to play it with pentagram. Do not contact +pentagram's authors or the author of this SlackBuild asking for illegal +copies of Ultima 8: such requests will be ignored, at best. diff --git a/games/pentagram/doinst.sh b/games/pentagram/doinst.sh new file mode 100644 index 0000000000..3e5691a052 --- /dev/null +++ b/games/pentagram/doinst.sh @@ -0,0 +1,9 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/games/pentagram/pentagram.1 b/games/pentagram/pentagram.1 new file mode 100644 index 0000000000..c1f23fa6aa --- /dev/null +++ b/games/pentagram/pentagram.1 @@ -0,0 +1,186 @@ +.TH pentagram 1 "29 Oct 2011" "20110229_svn" "Pentagram" + +.SH NAME +\fBpentagram\fR \- A reimplemented engine for the game +.B Ultima VIII: Pagan + +.SH SYNOPSIS +.B pentagram +.RI [ options ] + +.SH DESCRIPTION +.B pentagram +is an engine for playing the game +.B Ultima 8 +on modern operating systems. +The files from the original game are required for +.B pentagram +to work. Since +.B Ultima 8 +is a commercial work, this means you must own a +copy of the original game to legally play it with +\fBpentagram\fR. +.SH OPTIONS +.TP +.B \-h, \-\-help +Shows command\-line option help +.TP +.B \-q +Silence general logging messages. +.TP +.B \-qq +Silence general logging messages and non\-critical +warnings/errors. +.TP +.B \-\-game [gamename] +Select a game. This option is currently useless, since only Ultima 8 is supported. +.SH FILES +.TP +.B ~/.pentagram/ +Config and savegame data. +.TP +.B ~/.pentagram/pentagram.ini +Configuration. Specifies the path to the game data, among other things. +The SlackBuilds.org build of pentagram uses a shell script wrapper to +create a default \fBpentagram.ini\fR if the user doesn't have one already. +See \fI/usr/doc/pentagram\-@VERSION@/README\fR for full details of the options +available in the config file. +.TP +.B ~/.pentagram/u8\-save/ +Saved games. Not compatible with the original Ultima 8. +.TP +.B /usr/share/pentagram +This is the default location where +.B pentagram +looks for the Ultima 8 data files. This directory should contain +a complete installation of the game, including the file +.B U8.exe +(case\-insensitive; +.B u8.exe +or +.B U8.EXE +are also OK). This location can be changed by editing +.B ~/.pentagram/pentagram.ini +.SH CONTROLS +.SS Movement +Double\-click with the right mouse button will make the Avatar find a path to the selected spot. +.br +Left\-click on NPCs or objects to identify them. +.br +Double\-left\-click on NPCs or objects to initiate conversations or use the item. +.br +On pressing the right mouse button down the Avatar walks or runs (depending on distance between cursor and Avatar). +.br +Pressing right and left mouse button, makes the Avatar jump or while running a running jump. +.br +You can also move the Avatar with the keypad. Details are in the keycommands table below. +.SS Keyboard Commands +These are the default keyboard commands; they can be changed from the +options menu in the game, or by creating/editing +the file \fI~/.pentagram/u8bindings.ini\fR. +.TP +.B ~ +hides/restores console. See \fI/usr/doc/pentagram\-@VERSION@/README\fR for +available console commands. +.TP +.B arrow keys +moves Avatar around the map (no walking) +.TP +.B home,end +moves Avatar vertically +.TP +.B Keypad +Avatar walks (one animation cycle) +.TP +.B Shift+Keypad +Avatar runs (one animation cycle) +.TP +.B Ctrl+Keypad +Avatar makes a little step (one animation cycle) +.TP +.B Alt+Keypad +Avatar jumps long (one animation cycle) +.TP +.B s +toggles "avatarInStasis" +.TP +.B t +outputs kernel/usecode/world/location stats to the console +.TP +.B e +toggles editor items +.TP +.B h +highlights any item you are "hitting", colliding with +.TP +.B i +open backpack +.TP +.B z +open paperdoll/status +.TP +.B r +recall +.TP +.B c +switches combat mode on/off +.TP +.B ESC +main menu +.TP +.B alt+x +quit +.TP +.B ctrl+q +quits without confirmation +.TP +.B backspace +close all open containers +.TP +.B F7 +Quicksave (savegames are not yet stable!) +.TP +.B F8 +Quickload +.TP +.B F11 +Shapeviewer +.TP +.B F12 +toggles frame by frame +.TP +.B shift +quarter speed mode. needs to be held down +.TP +.B [ +clears the screen, multiple presses show the paint order +.TP +.B ] +Same as above, backwards +.SH AUTHORS +The +.B +Ultima +games were created by Richard Garriott, AKA Lord British, +and are copyrighted by Electronic Arts. +.PP +.B pentagram +written by +The Pentagram Team: +.br +Willem Jan Palenstijn +.br +Patrick Burke +.br +Max Horn +.br +Ryan Nunn +.br +Dominik Reichardt +.br +Matthew Jimenez +.br +Brian Tietz +.PP +Man page created by B. Watson, for the SlackBuilds.org +project. Permission hereby granted to use this man page anywhere, for any purpose. diff --git a/games/pentagram/pentagram.SlackBuild b/games/pentagram/pentagram.SlackBuild new file mode 100644 index 0000000000..fbb49e2ac6 --- /dev/null +++ b/games/pentagram/pentagram.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Slackware build script for pentagram + +# Written by B. Watson (yalhcru@gmail.com) + +PRGNAM=pentagram +VERSION=${VERSION:-20110229_svn} +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 + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz +cd $PRGNAM-$VERSION +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 {} \; + +./bootstrap + +# The extra scalers make the binary about 50% bigger (not enough +# to matter). They aren't used by default (user has to enable them +# via in-game menu or .ini file). + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-hq2x \ + --enable-gc-scalers \ + --enable-all-bilinear \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux + +make +mkdir -p $PKG/usr/bin +install -s -m0755 $PRGNAM $PKG/usr/bin/$PRGNAM-bin +install -m0755 $CWD/$PRGNAM.sh $PKG/usr/bin/$PRGNAM + +mkdir -p $PKG/usr/share/pixmaps +cat ./system/desktop/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png +mkdir -p $PKG/usr/share/applications +cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop + +# man page written for this build. +mkdir -p $PKG/usr/man/man1 +sed "s/@VERSION@/$VERSION/g" $CWD/$PRGNAM.1 | gzip -9c > $PKG/usr/man/man1/$PRGNAM.1.gz + +# default config file contains all the options, commented out, plus +# the default options for this build. + +# The default path= assumes the user has extracted or copied the Ultima 8 +# game directory to /usr/share/pentagram (so the file +# /usr/share/pentagram/U8.exe should exist, possibly as u8.exe or U8.EXE). + +# The default MIDI driver, at least on the author's system, crashes X and +# panics the kernel for some reason. It wants to use the OSS sequencer, +# and the call trace after X dies shows the error happened in the snd_seq_oss +# module. Removing this module causes pentagram to fall back to "fmopl" +# midi, which works fine and doesn't cause any problems (probably doesn't +# sound as nice, since it seems to be emulating an old AdLib card). +# Setting midi_driver=fmopl in the default config will avoid any problems +# and users won't have to troubleshoot OSS sequencer crap themselves. + +mkdir -p $PKG/usr/share/$PRGNAM +cat $CWD/$PRGNAM.ini.default > $PKG/usr/share/$PRGNAM/$PRGNAM.ini.default + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS COPYING ChangeLog FAQ README $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/pentagram/pentagram.desktop b/games/pentagram/pentagram.desktop new file mode 100644 index 0000000000..905ff61074 --- /dev/null +++ b/games/pentagram/pentagram.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Pentagram +Comment=Ultima 8 Engine +Exec=pentagram +Icon=pentagram +Terminal=false +Type=Application +Categories=Game;RolePlaying; diff --git a/games/pentagram/pentagram.info b/games/pentagram/pentagram.info new file mode 100644 index 0000000000..e798e67108 --- /dev/null +++ b/games/pentagram/pentagram.info @@ -0,0 +1,10 @@ +PRGNAM="pentagram" +VERSION="20110229_svn" +HOMEPAGE="http://pentagram.sourceforge.net/" +DOWNLOAD="http://urchlay.naptime.net/slackstuff/src/pentagram-20110229_svn.tar.xz" +DOWNLOAD_x86_64="" +MD5SUM="b665aec67ed7bceb97581cdb90675521" +MD5SUM_x86_64="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" +APPROVED="Erik Hanson" diff --git a/games/pentagram/pentagram.ini.default b/games/pentagram/pentagram.ini.default new file mode 100644 index 0000000000..6f552dcba7 --- /dev/null +++ b/games/pentagram/pentagram.ini.default @@ -0,0 +1,65 @@ + + +# These are the default options. Feel free to uncomment and change them. + +[pentagram] +# Default game. No useful value other than "u8" as only +# Ultima 8 is supported. +## defaultgame=u8 + +# Run fullscreen? Disabled by default as it might cause problems on +# misconfigured X servers. +## fullscreen=no + +# Width of the game resolution. +## scalex=320 + +# height of the game resolution. +## scaley=240 + +# Select the scaler you want to use. Currently you can choose between +# point, bilinear, scale2x, 2xSaI, hq2x. +## scaler=point + +# The game resolution is scaled to this width. +## width=640 + +# The game resolution is scaled to this height. +## height=480 + +# Bits per pixel probably doesn't need to be changed. +## bpp=32 + +# Enable this to use the BitStream Vera font for conversations and object descriptions. +## ttf=no + +# If you don't specify midi_driver, Pentagram will automatically select one, +# based on your platform. + +# (Note: Windows will only work on Windows. CoreAudio only on Mac OS X. +# Alsa is Linux-only and UnixSeq will only work on Unix variants.) +# See further down for more options on Linux. +## midi_driver=disabled/windows/fmopl/timidity/alsa/unixseq/coreaudio + +# SBo default option: +midi_driver=fmopl + +# Enable this to skip the intro of U8 and initial conversation with Devon. +## skipstart=no + +# Conversation speed. Higher is slower. +## textdelay=8 + +[u8] +# replace 'path to U8 directory' with the directory containing 'u8.exe' +## path=path to U8 directory + +# SBo default option: +path=/usr/share/pentagram + +# replace with the directory you want Pentagram to save games to. + +# (no, loading of the original's savegames is not supported) +## save=path to U8 savegames directory + + diff --git a/games/pentagram/pentagram.sh b/games/pentagram/pentagram.sh new file mode 100644 index 0000000000..5b468d4350 --- /dev/null +++ b/games/pentagram/pentagram.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Wrapper script for pentagram, creates initial ~/.pentagram/pentagram.ini +# file, which pentagram won't create for itself. + +set -e + +if [ ! -e ~/.pentagram/pentagram.ini ]; then + mkdir -p ~/.pentagram + cat /usr/share/pentagram/pentagram.ini.default > ~/.pentagram/pentagram.ini +fi + +exec /usr/bin/pentagram-bin "$@" diff --git a/games/pentagram/slack-desc b/games/pentagram/slack-desc new file mode 100644 index 0000000000..653f457dc6 --- /dev/null +++ b/games/pentagram/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------------------------------------------------------| +pentagram: pentagram (an Ultima 8 engine) +pentagram: +pentagram: Pentagram is a project aiming to create an Ultima 8 engine for use +pentagram: on modern operating systems, including Linux, Mac OS X and Windows. +pentagram: +pentagram: While it is currently possible to finish Ultima 8 using Pentagram, +pentagram: not everything is fully working yet. (Save regularly!) In the game +pentagram: itself, most notably, the combat AI of monsters is still very limited, +pentagram: and there are still quite a few minor things which are not working +pentagram: as well as they should. +pentagram: