Outils pour utilisateurs

Outils du site


lokigames:shogo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
lokigames:shogo [2024/04/22 17:47] twolifelokigames:shogo [2024/04/22 17:48] (Version actuelle) twolife
Ligne 1: Ligne 1:
 +======  Shogo: Mobile Armor Division ======
 +
 +===== Install the game =====
 +
 +To install the required util :
 +<code>
 +# apt-get install patchelf
 +</code>
 +
 +To install the game, mount your CD & run the installer with ''linux32'' from the ''util-linux'' package :
 +<code>
 +# mount /dev/cdrom /media/cdrom
 +$ cd /media/cdrom
 +$ linux32 ./setup.data/bin/Linux/x86/setup
 +</code>
 +
 +===== Register the game =====
 +The file ''client'' is "//encrypted//" (I didn't spend time on this, maybe it's trivial to bypass, maybe not) ; and we need to combine the provided tool with our cdkey to get a usable binary.
 +
 +The hard part in today's world is to get the required libraries to run that tool. We need GTK1.2 compiled for i386.
 +
 +After that it's easy:
 +<code>
 +./registergui client
 +</code>
 +
 +===== Hack hack hack =====
 +
 +Patch the binaries to use (system provided) SDL1.2 instead of the bundled SDL1.1 
 +<code>
 +patchelf --replace-needed libSDL-1.1.so.0 libSDL-1.2.so.0 cdaudio.dll
 +patchelf --replace-needed libSDL-1.1.so.0 libSDL-1.2.so.0 client
 +patchelf --replace-needed libSDL-1.1.so.0 libSDL-1.2.so.0 shogolauncher
 +rm libsmpeg-0.4.so.0 libfreetype.so.6 libSDL-1.1.so.0
 +</code>
 +
 +Bypass the anti-copy protection:
 +<code>
 +mkdir custom files
 +truncate -s 207618048 files/data.tgz
 +</code>
 +
 +===== Replace the startup script =====
 +Replace the provided startup script ''shogo'' with this one:
 +<code>
 +#!/bin/sh
 +export SHOGODIR="$PWD"
 +export SHOGO_MOVIEPATH="$PWD/Movies"
 +export SHOGO_CDROM="$PWD"
 +
 +if ! test -d ~/.hyperion ; then
 +    echo Creating directory ~/.hyperion
 +    mkdir ~/.hyperion
 +fi
 +
 +if ! test -d ~/.hyperion/Shogo ; then
 +    echo Creating directory ~/.hyperion/Shogo
 +    mkdir ~/.hyperion/Shogo
 +fi
 +
 +if ! test -e ~/.hyperion/Shogo/autoexec.cfg ; then
 +    echo Creating default autoexec.cfg file
 +    echo '"MaxFPS" "30"' > ~/.hyperion/Shogo/autoexec.cfg
 +    cat $SHOGODIR/autoexec.cfg >> ~/.hyperion/Shogo/autoexec.cfg
 +fi
 +
 +if ! test -e ~/.hyperion/Shogo/ShogoLauncher.ini ; then
 +    echo Creating default settings file
 +    cp $SHOGODIR/ShogoLauncher.ini ~/.hyperion/Shogo
 +fi
 +
 +if ! test -d ~/.hyperion/Shogo/Save ; then
 +    echo "Creating Save directory"
 +    mkdir ~/.hyperion/Shogo/Save
 +fi
 +
 +cd $SHOGODIR
 +
 +if ! test -e $SHOGO_CDROM/files/data.tgz ; then
 +    ./messagebox "  Please mount the Shogo CD-ROM  " "OK"
 +    exit
 +fi
 +
 +cmdline=`./shogolauncher --inidir ~/.hyperion/Shogo --shogodir $SHOGODIR $@`
 +
 +if test -z "$cmdline" ; then
 +    exit
 +fi
 +
 +export MESA_EXTENSION_MAX_YEAR=2002
 +export _ _GL_ExtensionStringVersion=17700
 +
 +eval "$cmdline"
 +
 +unset LD_PRELOAD
 +unset _ _GL_ExtensionStringVersion
 +unset MESA_EXTENSION_MAX_YEAR
 +
 +rm >/dev/null -f /tmp/*.dll /tmp/*.lto
 +</code>
 +
 +
 +
 +===== Prevent a game crash =====
 +''./client: symbol lookup error: ./client: undefined symbol: set_new_handler__FPFv_v''
 +
 +This is due to a change in ''libgcc'' that broke some binaries that where compiled with gcc 2.95 in an unusual way (like compiling C++ code with ''gcc'' instead of ''g++'').
 +
 +==== Option a ====
 +You can use a little [[https://github.com/twolife/lokishim|shim]] that add back functions required by a bunch of old games like this one. 
 +
 +<code>LD_PRELOAD="/path/to/lokishim.so" shogo</code>
 +
 +==== Option b ====
 +The missing function can be found in a //very// old ''libstdc++'', and you can use ''libstdc++-3-libc6.2-2-2.10.0.so'' from [[https://www.improbability.net/loki/loki_compat_libs-1.5.tar.bz2|https://www.improbability.net/loki/]]
 +
 +<code>LD_PRELOAD="./libstdc++-3-libc6.2-2-2.10.0.so" shogo</code>
  
lokigames/shogo.txt · Dernière modification : 2024/04/22 17:48 de twolife

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki