kanotix.com

Scripte - Unreal Tournament 2003 Startscript...

Esel - 05.06.2006, 22:05 Uhr
Titel: Unreal Tournament 2003 Startscript...
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:

ockham23 - 05.06.2006, 23:50 Uhr
Titel:
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.
schnorrer - 06.06.2006, 08:12 Uhr
Titel:
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.
slh - 06.06.2006, 08:39 Uhr
Titel:
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.
Esel - 06.06.2006, 11:45 Uhr
Titel:
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.
Alle Zeiten sind GMT + 1 Stunde
PNphpBB2 © 2003-2007