Autor |
Nachricht |
|
Titel: Unreal Tournament 2003 Startscript...
Verfasst am: 05.06.2006, 22:05 Uhr
|
|

Anmeldung: 30. Mai 2004
Beiträge: 91
|
|
Hi,
ich habe heute UT2003 auf meinem Laptop installiert. War eigentlich kein Problem. Beim Start musste ich allerdings feststellen, daß das Spiel viel zu schnell läuft. Nach gründlicher Recherche im Net stellte sich also raus, daß dieses Verhalten mit den unterschiedlichen Taktraten des Laptops zusammenhängt.
Zitat:
...the problem is the laptop uses speedstep technology (basically steps down your processor usually to conserve battery) ... i just got a 600m and i was freaking out -- same thing was happening to me...
Beim Start des Spiels, wird einmalig die aktuelle CPU-Taktrate ermittelt und dann als Standard gesetzt. Wenn beim weiteren Laden des Spiels dann die Last steigt führt das zum Effekt, das das Spiel wie auf Steroiden rennt.
Das folgende Skript wurde empfohlen um das Problem zu lösen. Allerdings scheint es nicht zu funktionieren. Ich habe einfach keine Ahnung von Skripten vermute allerdings, das es irgendwie mit den Pfaden und Startdateien zusammenhängen muss.
Code:
#!/bin/sh
#
# Unreal Tournament startup script
#
# Modifications by Eskild Hustvedt
# The user preferences directory
UT_PREFS="${HOME}/.loki/ut"
# Function to find the real directory a program resides in.
# Feb. 17, 2000 - Sam Lantinga, Loki Entertainment Software
FindPath()
{
fullpath="`echo $1 | grep /`"
if [ "$fullpath" = "" ]; then
oIFS="$IFS"
IFS=:
for path in $PATH
do if [ -x "$path/$1" ]; then
if [ "$path" = "" ]; then
path="."
fi
fullpath="$path/$1"
break
fi
done
IFS="$oIFS"
fi
if [ "$fullpath" = "" ]; then
fullpath="$1"
fi
# Is the awk/ls magic portable?
if [ -L "$fullpath" ]; then
fullpath="`ls -l "$fullpath" | awk '{print $11}'`"
fi
dirname $fullpath
}
# Set the home if not already set.
if [ "${UT_DATA_PATH}" = "" ]; then
UT_DATA_PATH="`FindPath $0`/System"
fi
LD_LIBRARY_PATH=.:${UT_DATA_PATH}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
export UT_DATA_PATH
create_prefpath()
{
path="${UT_PREFS}/$1"
if [ ! -d "$path" ]; then
echo "Creating directory $path"
mkdir "$path"
fi
}
copy_if_needed()
{
dist="${UT_DATA_PATH}/$1"
file="${UT_PREFS}/$1"
if [ ! -f "$file" ]; then
echo "Installing default $file"
cp "$dist" "$file"
fi
}
# Hey, it's fun time!
if [ ! -d ${HOME}/.loki ]
then
mkdir ${HOME}/.loki
fi
if [ ! -d ${UT_PREFS} ]
then
echo "Creating preferences directory..."
create_prefpath
fi
create_prefpath System
# Flood the CPU for four seconds so that it is running at the currect speed
RandomFork () {
while [ "$SECONDS" -le "4" ]; do
let MYRND="$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*
$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+
$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM
*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM
+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM
/$RANDOM*$RANDOM"
done
}
RandomFork &
# Let's boogie!
if [ -x "${UT_DATA_PATH}/ut-bin" ]
then
echo -n "Sleeping for 1 second... ";sleep 1s;echo "done - launching UT"
cd "${UT_DATA_PATH}/"
exec "./ut-bin" -log $*
fi
echo "Couldn't run Unreal Tournament (ut-bin). Is UT_DATA_PATH set?"
exit 1
(Im Bereich der Random-Operationen habe ich hier im Forum Zeilenumbrüche eingefügt, damit der Code noch lesbar bleibt.)
Das Spiel habe ich unter /usr/games/ut2003 installiert. Der Start des Spiels erfolgt mittels /usr/games/ut2003/ut2003. Wie müsste das Skript modifiziert werden, damit es funktioniert?
Vielen Dank für Hilfe und Anregungen.
Esel.
Zitat:
Zitat:
|
|
|
|
|
 |
|
Titel:
Verfasst am: 05.06.2006, 23:50 Uhr
|
|

Anmeldung: 25. Mar 2005
Beiträge: 2133
|
|
Wäre es denn nicht auch möglich, speedstep (Intel-CPU?) manuell zu deaktivieren, wenn du zocken willst? Bei der Live-CD z.B. gibt es den Cheatcode "nopowernow", um den powernow-demon gar nicht erst starten zu lassen. Die Deaktivierung kommt natürlich nur dann in Betracht, wenn das Notebook nicht zu heiß wird. |
_________________ And I ain't got no worries 'cause I ain't in no hurry at all (Doobie Brothers, "Black Water").
|
|
|
|
 |
|
Titel:
Verfasst am: 06.06.2006, 08:12 Uhr
|
|
Anmeldung: 09. Jan 2006
Beiträge: 1720
|
|
Geht leider nicht das powernow(speedstep) modul abzuschalten. Dafür brauchts einen angepassten Kernel, ohne Powernow und ohne Speedstep.
Sonst mault ACPI mit den Stromsparmodi. Den einzigen Kniff für dieses Verhalten, den ich kenne, ist in der powernow.conf die Werte für das Throttleling für Volllast zu verändern.
Bei UT müßte es ebenso ein script oder eine conf geben, bei der man die Speed der CPU einstellen kann. |
|
|
|
|
 |
|
Titel:
Verfasst am: 06.06.2006, 08:39 Uhr
|
|
Anmeldung: 16. Aug 2004
Beiträge: 1905
|
|
Falsch, es genügt das jeweilige speedstep Modul aus der /etc/modules zu entfernen und update-rc.d -f powernowd remove - nur ob es das bei einem Notebook nur wegen eines fehlerhaft programmierten Spieles wert ist, sei dahingestellt. |
|
|
|
|
 |
|
Titel:
Verfasst am: 06.06.2006, 11:45 Uhr
|
|

Anmeldung: 30. Mai 2004
Beiträge: 91
|
|
O.k.,
erstmal vielen Dank für die Erläuterungen soweit. Wenn ich die Zielrichtung des Scriptes richtig verstehe geht es doch darum mittels der "Random-Anweisungen" Vollast zu erzeugen und das Spiel UT2003 dann direkt dazu im Anschluß daran zu starten.
Ich kann mit den Anweisungen zu den Pfaden nichts anfangen und auch mit dem Startbefehl. Kann man das nicht über eine Anpassung zum laufen bringen? Wie müsste diese Anpassung aussehen?
Gruß, Esel. |
|
|
|
|
 |
|