Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== 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:48de twolife