Spiel läuft nicht mit Java VM Parameter .jnlp starter

Hi,

ich probiere Quake1 mittels “jdosbox” http://jdosbox.sourceforge.net/ zum laufen zu bekommen. Es funzt mittlerweile ABER
die Java VM Parameter werden von der .jnlp NICHT übernommen.

Wenn ich auf meinem Rechner Java mit diesen Optionen starte lauft jdosbox deutlich schneller:
java -jar -XX:+AggressiveOpts -XX:CompileThreshold=2 jdosbox.jar

http://divinity.x10.bz/divinityshooter/q1tmp/q1start.jnlp (Achtung -startet im Vollbildmodus)

jnlp Code:

<?xml version="1.0" encoding="utf-8"?>
<jnlp
  codebase="http://www.divinity.x10.bz/divinityshooter/q1tmp/"
  href="q1start.jnlp">
  <information>
    <title>Quake1_Online</title>
    <vendor>DiViNiTY</vendor>
    <homepage href="http://www.divinity.x10.bz/"/>
    <description>Quake1Online</description>
  </information>
  <offline-allowed/>
  <security>
      <all-permissions/>
  </security>
  <resources>
	<j2se version="1.6" java-vm-args="-server -XX:+AggressiveOpts -XX:CompileThreshold=2"/>
    <jar href="quake1_r02_data.jar"/>
    <jar href="jdosbox.jar"/>    
  </resources>
  <application-desc main-class="jdos.gui.MainFrame"> 
	<argument>-fullscreen</argument>
    <argument>-conf</argument>
    <argument>jar://quake1_fc.conf</argument>
  </application-desc>
</jnlp>

Gibt es eine möglichkeit diese 2 “java-vm-args” -XX:+AggressiveOpts -XX:CompileThreshold=2 mit der jdosbox.jar Online auszuführen?

Sorry, keine konkrete Antwort (kannte jDosbox noch nicht - erstaunlich, scheint ja schon recht weit zu sein), nur eine kurze Zwischenfrage, die durch ein paar Websuchen zu dem Thema immer wichtiger zu werden schien: Hat es einen Grund, dass in der jnlp noch -server dabeisteht, aber bei der Kommandozeile nicht? (Beim JRE unter Win32 ist gar keine Server-VM dabei… aber wenn das hier ein Problem wäre, würde er vermutlich GAR nicht mehr starten… :o )

Es hat keinen speziellen Grund warum noch “-server” in der jnlp vorhanden ist. (ich habs damit probiert und vor dem Themenstart nicht mehr zurückgesetzt)
Ich bin echt am verzweifeln, es funzt einfach nicht mit den VM Parametern.

Gewebsucht wirst du vermutlich auch schon haben, aber um anderen die Mühe zu ersparen: Das hier http://sourceforge.net/p/jdosbox/discussion/1655288/thread/24b5024a/ aus den jDosBox-Forum ist ja (auch) noch unbeantwortet. Sowas wie http://www.tutorials.de/java/391217-jdosbox-java_arguments.html schien auch nicht so fruchtbar zu sein, klang aber so, als würden die Parameter übernommen. Ein anderer recht ausführlicher Thread, in dem es anscheinend um ein ähnliches Thema geht, ist um diesen Post herum: http://www.vogons.org/viewtopic.php?f=32&t=27467&sid=c51d6a58f59436cd7fdbc539ea5f7277&start=160#p286548 Dort sind ein paar jnlps verlinkt, wo anscheinend (!) zumindest der Xmx-Parameter erfolgreich an die VM übergeben wurde, aber anscheinend genau so, wie du es versucht hast. Da ist aber auch noch von einer dosbox.conf die Rede, und von irgendeiner server-.profile-Datei wo was mit “JAVA_OPTS” drinsteht, aber ich habe es mir noch nicht alles im Detail durchgelesen (das ganze nur als möglicher “Einstiegspunkt” für Leute, die (auch) versuchen wollen, eine Antwort auf diese Frage zu finden :o ).

Wenn du z.B. mal sowas wie
java-vm-args="-Xmx5m"
angibst (also dem ganzen nur 5MB Speicher gönnst), gibt es dann irgendeinen Fehler? Eigentlich sollte es ihn dann raushauen, weil 5MB kaum genug sein kann. Das wäre zumindest ein Indiz dafür, dass die Argumente zwar grundsätzlich übernommen werden, aber rumrat er vielleicht nur mit den “nicht ganz ‘offiziellen’ XX-Parametern” ein Problem hat…?

Andere Parameter übernimmt .jnlp einwandfrei. Ich vermute auch das manche XX- Optionen einfach nicht implementiert sind.

Sehe ich es richtig, dass die einzige Begründung für die Annahme, dass sie NICHT übernommen werden, die niedrigere Framerate ist? (Ich will da nicht widersprechen, nur die Möglichkeit in den Raum stellen, dass die Niedrigere Framerate noch andere mögliche Ursachen haben könnte). Auf welchem system soll das ganze denn laufen? (Bei Win32 wird mit der JRE standardmäßig nur eine Client-VM installiert…)

Die beiden Optionen kann ich hier nicht in den Listen der unterstützten finden.

Schon mit -J versucht?

javaws -J-XX:+AggressiveOpts -J-XX:CompileThreshold=2 http://divinity.x10.bz/divinioter/q1tmp/q1start.jnlp

Ich habe schon probiert mit diesen 2 Parametern „-Xmx256m -Dsun.java2d.opengl=true“ jDosbox zu starten.
OpenGL=true macht jDosbox langsamer. Und der Parameter -Xmx256m wird z.b. für ReactOS http://jdosbox.sourceforge.net/demos.html benötigt denn ansonsten startet es nicht.

Die Framerate ist auf meinem Rechner bei 8-25 FPS und mit den 2 VM Argumenten bei 35-65 FPS deutlich merkbar.

Mein OS ist XUbuntu x64 mit OpenJDK7.

Ich werde den jDosbox source code mal genauer ansehen weil nach ca. 20-40 Sekunden nach dem start läuft das ganze fast so schnell wie mit den 2 VM Argumenten. (10-15% langsamer)

edit:
@Papoy von der Kommandozeile funzt es seltsamerweise, aber nicht wenn man die .jnlp Online startet… / die 2 VM Optionen sind anscheinend nicht Online verfügbar. :frowning:

Hm, erstaunlich, ich hatte gestern schon nach Listen gesucht, wo steht, ob irgendwelche XX-Argumente vielleicht nicht unterstützt werden, aber die von Papoy aufgelisteten nicht gefunden. Wenn das Spiel eine Weile braucht, bis es schnell wird, dürfte das nicht zuletzt am CompileThreshold liegen - der ist standardmäßig AFAIK 10000 oder so. Wobei es für die Praxis wohl nicht so wichtig wäre, wenn es in den ersten 20 Sekunden etwas langsamer ist…