# Spiel läuft in VirtualBox zu schnell

## merlin2k

Hi Leute,

ich habe mir gestern Windows XP unter VirtualBox (bin) installiert. Alles läuft super, bis auf die gute alte Flippersimulation ProPinballTimeshock!

Die läuft nämlich viel zu schnell. Schon die Animationen im Hauptmenü werden ca. 10mal schneller als normal abgespielt.

Ich habe Windows XP auch parallel zu Gentoo auf diesem Rechner installiert und da läuft ProPinballTimeshock ganz normal. Nur halt unter VirtualBox nicht.

Kennt jemand solche Probleme unter VirtualBox?

----------

## mrsteven

Hmm, ich erinnere mich, dass VirtualBox unter Umständen Probleme hat, wenn du einen Kernel verwendest, der CONFIG_NOHZ gesetzt hat. Starte deinen Kernel mal mit der Option nohz=off, möglicherweise geht es dann.

----------

## merlin2k

nein, das ändert leider nichts

----------

## schmutzfinger

Virtuelle Maschinen unterscheiden sich tatsächlich in sehr vielen Punkten von realen. Gerade Zeit ist ein echtes Problem.

Ich vermute das du da auf eine schlecht programmierte Anwendung gestoßen bist. Da stecken wahrscheinlich Zeitannahmen im Code, die in der virtellen Maschine nicht so gelten.

Nutzt du Intel-VT oder AMD-V? Wenn ja dann probier mal kvm als Gegenprobe. Wenn nicht dann probier kqemu oder vmware.

Wenn meine Vermutung stimmt wird das Vergleichsprodukt den selben Fehler zeigen. Wenn nicht solltest du nen vbox bug posten.

Wenn du nicht selber vergleichen willst/kannst dann solltest du gleich nen bugreport aufmachen.

----------

## zworK

Ich vermute mal die Uhr läuft in der VM zu schnell. Schau mal ob das bei dir auch der Fall ist.

Das gleiche habe ich unter VMWare mit aktivem frequency scaling (ondemand gouvernor). Ich starte die VM bei 1GHz, beim booten steigt natürlich die CPU-Last, der (Hypervisor-)Kernel taktet hoch und schon läuft die Uhr in der VM zu schnell. Sieht man dann natürlich an der Uhrzeit, bei diversen Animationen wie bspw. Kopiervorgängen, Ladebalken, bei Downloads, wo ich angeblich doppelt so schnell sauge wie die Leitung physikalisch hergibt etc... Also bei jeder Software die einen Timer einsetzt und zeitabhängig arbeitet.

Tükisch können da dann natürlich die VM-Tools der Virtualisierer sein, die die Systemzeit der VM mit der des Hypervisors synchronisieren  :Wink: 

Ich muss daher vor dem booten der VM, das frequency scaling deaktivieren, also in meinem Fall einen festen gouvernor wähen (powersave oder performance), damit die Uhr in der VM normal läuft.

----------

## merlin2k

Das dektivieren des frequency scaling hat bei mir leider keinen Erfolg gebracht. Andere Anwendungen als ProPinballTimeshock scheinen auch korrekt zu laufen.

----------

## graubartnr

 *schmutzfinger wrote:*   

> Wenn ja dann probier mal kvm als Gegenprobe.

 

Wird (so auch aus Erfahrung) nicht klappen, Virtualbox hat sein eigenes Modul fuer die Unterstuetzung der jeweiligen CPU-Extensions, KVM kann da nicht mehr zwischen schalten.

 *schmutzfinger wrote:*   

> Andere Anwendungen als ProPinballTimeshock scheinen auch korrekt zu laufen.

 

Und die Uhr (wahrscheinlich korrekt)?

Na ja, es ist nicht direkt gewaehrleistet, dass ein Spiel in einer VM laufen muss, man weiss ja auch gar nicht wie das Spiel auf irgendwas zugreift, vielleicht irgendwas mit DirectX, man weiss es nicht.

----------

## merlin2k

Die Uhr läuft korrekt.

ProPinballTimeshock braucht DirectX. Bei der Installation fragt er auch ganz nett ob er DirectX3 installieren soll. Habe ich aber nicht gemacht, weil ich schon DirectX 9 installiert habe.

----------

## schmutzfinger

 *graubartnr wrote:*   

> 
> 
> Wird (so auch aus Erfahrung) nicht klappen, Virtualbox hat sein eigenes Modul fuer die Unterstuetzung der jeweiligen CPU-Extensions, KVM kann da nicht mehr zwischen schalten.

 

Ja klar hat kvm ein eigenes Modul, aber die beiden Module machen im Prinzip das Gleiche.

Und sie haben beide mit den Problemen von Virtualisierung zu kämpfen.

Wenn man jetzt rausfinden will ob vbox nen bug hat oder das Spiel in virtuellen Maschinen generell nicht richtig geht, dann sollte man ne Gegenprobe machen. Wenn ein anderes Projekt das Problem lösen konnte dann sollte vbox das auch können. Und dann sollte man innotek/Sun davon in Kenntnis setzen.

----------

