Made by Sparkplay Media,
Earth Eternal is a free to play graphical massively multiplayer online RPG currently in open beta. It is installed completely from the internet, so all you need to do is go sign up
here and run this script.
Tested on
1. AMD Athlon 64 3000, 4 GB DDR RAM with nVidia FX7600GT, nVidia FX9600, nVidia GTS 250
2. Intel Core 2 Duo T6600 - 2.2ghz, 4 GB with nVidia G210M (512mb)
Also many players tested on Earth Eternal forums (see link at the bottom). Many successful.
OS
1. Ubuntu 8.10, 9.04, 9.10 and 10.4
2. Various other OS combinations have been reported to work.
Wine Version.
Patched wine. Known to work on at least wine 1.1.28 up to current 1.2-rc4. Two patches are required. These are both available on the Earth Eternal forum link below.
1. A work around for an apparent undocumented feature of Windows Socket API (hostname resolution).
2. Force the use of D3DPOOL_MANAGED, even though the game requests D3DPOOL_DEFAULT. This stops the client crashing when the window is resized by the window manager in someway. Ssomething that is pretty much essential as there is no 'proper' full screen mode no other way to set the window size.
Tested
Just about everything in the game. All works flawlessly.
Known Issues
* Game still crashes sometimes on screen resize, or switch of window manager.
* Sometimes hangs on quit
* First stage of "Updater" does not work. In practice, this is not an issue. Any problems when patches are released usually go away if you re-run the PoL script.
Links
See
here for more information on how this game was made to work with wine.
There is also the
AppDB entry, although this is a bit out of date.
I keep the most recent version of the script
here as well.
Screenshots :-
Game Icon :-
The script :-
#!/bin/bash
# Date : (2010-06-24 11-00)
# Last revision : (2010-06-24 11-00)
# Wine version used : 1.2-rc4
# Distribution used to test : Ubuntu 10.4
# Author : redmoon (akoshka)
# Licence :
# Depend :
# Based in part on script for Gothic 3 posted here
# http://www.playonmac.com/en/topic-2584-script_Gothic_3.html
#
# All other portions by akoshka (see http://www.eartheternal.com/forums/earth-eternal-chat/topics/EE-on-Linux-In-Progress)
# Based on contributions from PsyQ and others.
PREFIX=EE
TITLE="Earth Eternal"
WORKINGWINEVERSION="1.2-rc4"
EE_INSTALLER="http://static.beta.eartheternal.com/Release/Current/Platform/SparkPlayerInstall.exe"
EE_ICON="http://www.tanktarta.pwp.blueyonder.co.uk/ee/ee.png"
EE_BAR="http://www.tanktarta.pwp.blueyonder.co.uk/ee/polleftbar.jpg"
EE_DLLS="http://www.tanktarta.pwp.blueyonder.co.uk/ee/dlls/linux32-wine-${WORKINGWINEVERSION}"
EE_CONTENT="http://static.beta.eartheternal.com/Release/Current/EarthEternal.car"
EE_DLL_NAMES="amstream.dll.so devenum.dll.so qcap.dll.so wined3d.dll.so d3d9.dll.so dxdiagn.dll.so qedit.dll.so ws2_32.dll.so d3dx9_36.dll.so mciqtz32.dll.so quartz.dll.so"
if [ "$PLAYONLINUX" = "" ]; then
exit 0
fi
# Include
source "$PLAYONLINUX/lib/sources"
prepare_patched_wine() {
POL_SetupWindow_install_wine "$1"
pushd "$REPERTOIRE/WineVersions"
POL_SetupWindow_wait_next_signal "Removing old patched wine" "$TYTUL"
rm -fr "$1-$PREFIX"
POL_SetupWindow_detect_exit
POL_SetupWindow_wait_next_signal "Copying patched wine" "$TYTUL"
cp -r "$1" "$1-$PREFIX"
for i in $(echo $EE_DLL_NAMES)
do
POL_SetupWindow_download "Please wait while $i is downloaded" "Downloading..." "$EE_DLLS/$i"
mv -f "$i" "$REPERTOIRE/WineVersions/$1-$PREFIX/usr/lib/wine/$i"
done
POL_SetupWindow_detect_exit
popd
}
# Main
POL_SetupWindow_Init
# Get the left image
wget "${EE_BAR}" --output-document="$REPERTOIRE/tmp/polleftbar.jpg"
# Intro screen
POL_SetupWindow_Init "" "$REPERTOIRE/tmp/polleftbar.jpg"
POL_SetupWindow_presentation "$TITLE" "Sparkplay Media" "http://www.eartheternal.com" "Akoshka" "$TITLE"
POL_SetupWindow_prefixcreate
#asking about WineVersion
POL_SetupWindow_menu "What version of wine would you like to use?" "Wine version" "(patched)$WORKINGWINEVERSION(recommended) (patched)latest-version(not-tested) unpatched" " "
#downloading tested Wine
if [ "$APP_ANSWER" == "(patched)$WORKINGWINEVERSION(recommended)" ]
then CHOSENWINEVERSION=$WORKINGWINEVERSION-$PREFIX
prepare_patched_wine "$WORKINGWINEVERSION"
#downloading untested Wine
elif [ "$APP_ANSWER" == "(patched)latest-version(not-tested)" ]
then cd "${WINEPREFIX}/drive_c/windows/temp"
#determining which Version is the latest
wget http://mulx.playonlinux.com/wine/linux-i386/LIST
cat LIST | sed -e 's/\\.//g' | cut -d';' -f2 | sort -n | tail -n1 >& LatestVersion.txt
x=`cat LatestVersion.txt | cut -c1-1`
y=`cat LatestVersion.txt | cut -c2-2`
z=`cat LatestVersion.txt | cut -c3-4`
LATESTVERSION=$x.$y.$z
CHOSENWINEVERSION=$LATESTVERSION-$PREFIX
prepare_patched_wine "$WORKINGWINEVERSION"
else CHOSENWINEVERSION="System"
fi
Use_WineVersion "$CHOSENWINEVERSION"
# Setup the prefix
select_prefix "$REPERTOIRE/wineprefix/$PREFIX/"
mkdir -p "$REPERTOIRE/wineprefix/$PREFIX/drive_c"
cd "$REPERTOIRE/wineprefix/$PREFIX/drive_c"
# Download the client, the icon and the DLL hacks
POL_SetupWindow_download "Please wait while Earth Eternal Installer is downloaded" "Downloading..." "$EE_INSTALLER"
POL_SetupWindow_download "Please wait while winetricks are downloaded" "Downloading..." "http://www.kegel.com/wine/winetricks"
# Icons
POL_SetupWindow_download "Please wait while Earth Eternal icon is downloaded" "Downloading..." "$EE_ICON"
# Run wine tricks
POL_SetupWindow_wait_next_signal "Installing... Winetricks."
export WINETRICKS_CACHE=$(pwd)/winetrickscache
mkdir -p "${WINETRICKS_CACHE}"
bash winetricks -q sandbox d3dx9 winxp vcrun2008 vcrun2008sp1 fontfix fontsmooth-rgb corefonts tahoma
POL_SetupWindow_detect_exit
# Run the installer
POL_SetupWindow_wait_next_signal "Installing...The Earth Eternal installer should now be running."
INSTALL_DIR="users/$LOGNAME/My Documents/Sparkplay Media/Sparkplayer (Beta)"
# Install the actual client
wine SparkPlayerInstall.exe
POL_SetupWindow_detect_exit
rm -f SparkPlayerInstall.exe
# Add registry stuff
mkdir -p "windows/temp/"
pushd "windows/temp/"
echo "[HKEY_CURRENT_USER\\\\Software\\\\Wine\\\\Direct3D]" > multisampling.reg
echo "\\"OffscreenRenderingMode\\"=\\"backbuffer\\"" >> multisampling.reg
regedit multisampling.reg
POL_SetupWindow_menu_list "How much memory does your graphic card have?" "$TITLE" "32-64-128-256-384-512-768-1024-2048" "-" "256"
VMS="$APP_ANSWER"
echo "[HKEY_CURRENT_USER\\\\Software\\\\Wine\\\\Direct3D]" > vms.reg
echo "\\"VideoMemorySize\\"=\\"$VMS\\"" >> vms.reg
regedit vms.reg
rm -rf *
popd
# Create the PlayOnLinux shortcut and assign it to the chosen Wine version
POL_SetupWindow_make_shortcut "EE" "${INSTALL_DIR}" "Spark.exe" "Earth Eternal" "$TITLE" "" "${EE_CONTENT}"
Set_WineVersion_Assign "$CHOSENWINEVERSION" "$TITLE"
# I cannot get the icons to work properly, this is a work around
mkdir -p "$REPERTOIRE/icones/full_size"
mkdir -p "$REPERTOIRE/icones/32"
cp $REPERTOIRE/wineprefix/$PREFIX/drive_c/ee.png "$REPERTOIRE/icones/full_size/Earth Eternal"
convert $REPERTOIRE/wineprefix/$PREFIX/drive_c/ee.png -resize 32x32 "$REPERTOIRE/icones/32/Earth Eternal"
# This is a bit naughty really, but I want the icon to show up on desktop straight away
if [ -f "$HOME/Desktop/${TITLE}.desktop" ]
then chmod a+rx "$HOME/Desktop/${TITLE}.desktop"
fi
# Exit
POL_SetupWindow_Close
exit
Edité par redmoon