snes9x - super-nintendo emulator - update


WA1972

Well-Known Member
Joined
Nov 14, 2009
Messages
1,362
wie ich soeben gesehen habe, gibt es ein update zum snes9x-emulator fürs dingoo :-D
siehe hier: http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,71,180
hab es auch gleich mal getestet und ich muss sagen, daß dieses update einen wirklich deutlichen geschwindigkeits-vorteil gegenüber der alten version bietet.
so laufen nun zum beispiel einige spiele mit fullspeed ohne jeglichen frameskip (wenn man den dingoo auf 432 MHz laufen lässt), wie z.b. SUPER DROPZONE oder SUPER R-Type. bei anderen games merkt man es auch deutlich, PRINCE OF PERSIA läuft nun ohne frameskip mit durchschnittlich 43 frames per second.
nochmal so eine speed-verbesserung wie bei diesem update und man braucht keinen frameskip mehr beim snes9x. im moment brauchen die meisten games ihn allerdings noch um auf 50 oder 60fps zu kommen, lassen sich aber schon prima spielen.
nun hoffe ich, daß die kompatibilität mal verbessert wird, damit man STREET FIGHTER ALPHA, KIRBYS DREAM LAND 3 oder STUNT RACE FX endlich zocken kann.

-- Do Dez 24, 2009 01:42 --

jetzt habe ich gerade bemerkt, daß man über meinen oben angegebenen link wieder zur snes9x-version vom 24.11.09 kommt, obwohl vorher eine neuere angegeben ist.

deshalb hier jetzt ein funktionierender link zum snes9x-update vom 19.12.09

http://www.mediafire.com/?3imvj25dznl
das zip-file am besten mit "7zip" entpacken (dann funktioniert es perfekt), denn wenn ich es mit dem "power-archiver" entpacke fehlen komischerweise einige files.

das update wird wie folgt beschrieben:

1◆qbQD4T5Z0949 hat den Dingux Port des SNES Emulators Snes9x mit eltas Linux Toolchain kompiliert, was zu einer generellen Performanceverbesserung führt.
 
Ist das die hier http://boards.dingoonity.org/dingoonity-news/snes9x-1-39-recompiled-with-elta%27s-custom-toolchain/

bzw. die selbe version?
 
ja max7777, das ist die.

es gibt jetzt noch eine andere neuartige version, mit der einige games mehr laufen als zuvor, wie zb. streetfighter alpha, secret of mana, star ocean usw.

siehe hier: http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,71,289

einziger nachteil - diese version basiert auf der ur-version, also ohne den geschwindigkeits-schub den die elta`s toolchains bringen. verstehe ich nicht, dass da nicht alle vorteile in einer version kombiniert werden bei den snes9x-updates.

man muss sich also nun entscheiden, entweder mehr speed und weniger kompatibilität mit der toolchain-version oder andersherum mit der allerneuesten hier.

ich habe beide auf meinen dingoo kopiert und nehme für spezialchip-games dann die allerneueste und für den rest die schnellere toolchain-version von snes9x, da sie im schnitt so zwischen 5 und 10 frames pro sekunde mehr bringt.
 
@WA1972: Du schreibst Schwachsinn! Elta's Toolchain bringt keinen Geschwindigkeits zuwachs. Das einzige was im Eltas Toolchain anders ist, als im original ist ne SDL Änderung. Desweiteren ist die Snes9x4D Version genauso schnell, wenn Du High-Res unterstützung für Games abschaltest. In der neusten ist das auch sogar abgeschaltet, da die HighRes Games wie Secret of Mana automatisch erkannt werden. Auch ist Snes9x4D mit dem Elta kompiliert ;-).

Achja vielleicht auch mal bei Problemen das Dingoo Wiki konsultieren. Im Crank Gaming Blog steht auch bissl was.

http://dingoowiki.com/index.php/Snes9x

Grüße
 
ach, ich schreib schwachsinn? warum hat man dann in der älteren elta toolchain version vom 19.12.09 bei genau dieser einstellung:

dingoo auf 432 Mhz (im Emu eingestellt)
fullscreen: false
frameskip: kann man in der alten version ja nicht einstellen, ist immer auf AUTO

zum beispiel im game PRINCE OF PERSIA durchschnittlich 43 FPS (im ersten level).

bei der neueren version SNES9x4D vom 07.04.2010 mit den gleichen einstellungen (soweit man sie genauso einstellen kann):

dingoo auf 430 MHz (im dingux eingestellt, emu selbst hat diese option ja leider nicht mehr)
fullscreen: false
frameskip: auto (was ja dem entsprechen müsste, was in der alten version standardmässig eingestellt ist)

habe ich im ersten level des gleichen spiels durchschnittlich 38 FPS. bei vielen anderen games ist es das gleiche.

das kann ja jeder selbst mal nachprüfen, dann sieht man den unterschied. ist die high-res unterstützung in der version vom 07.04.2010 standardmässig bei ALLEN games aktiviert? liegt das dann daran? ich sehe zumindest keinen menue-punkt um sie zu deaktivieren, falls es so wäre. die neueste version vom 29.04.2010 habe ich noch nicht probiert, der eintrag war ja vom 30.03.2010, da gabs die ja noch nicht. ich werde diese aber in den nächsten tagen mal auf den dingoo kopieren und ausprobieren. wäre ja erfreulich wenn diese genauso schnell wäre wie die alte version, dann würde ich die version vom 19.12.09 auf dem dingoo nicht mehr benötigen und könnte sie löschen.

und was meinst du mit "BRINGT KEINEN GESCHWINDIGKEITSZUWACHS". als die version am 19.12. erschien, stand doch in den readme`s: "1◆qbQD4T5Z0949 hat den Dingux Port des SNES Emulators Snes9x mit eltas Linux Toolchain kompiliert, was zu einer generellen Performanceverbesserung führt." und es war ja auch ein deutlicher geschwindigkeitsschub zu spüren gegenüber der version davor.

wenn also auch die neuen versionen mit elta kompiliert sind (du als author musst es ja wissen), dann liegt der geschwindigkeitsverlust bei der version vom 07.04.2010 entweder an der standardmässig eingeschalteten high-res unterstützung oder aber an zusätzlichen erweiterungen die der emulator seitdem bekommen hat. was ja auch sein könnte. umso komplexer der emu wird, umso langsamer könnte er ja auch werden, vor allem da der dingoo (nur) max. mit 432 MHz läuft. viele alte versionen von emu`s auf dem pc begnügen sich auch mit langsameren rechnern als die neuesten, und dies muss nicht an später zusätzlich integrierten grafikfiltern usw. liegen.

was mir noch aufgefallen ist bei der version vom 07.04.2010: manche spiele laufen zu schnell, wenn man den auto-frameskip ausschaltet und zum beispiel 60/2 (also die anzeige von 30 fps) einstellt. wurde daran was geändert in der neuesten version?

-- Sa Mai 22, 2010 15:52 --

SCIENCE, heute habe ich die neueste snes9x4d version (vom 29.04.2010) ausprobiert und es stimmt, diese läuft wieder flotter als die vom 07.04.2010. der unterschied zur version vom 19.12.09 ist nur noch ca. 2 bis 3 frames per second, aber trotzdem noch nicht ganz verschwunden, sofern die fps-angaben hundertprozentig korrekt wiedergegeben werden.
ich habe alles so eingestellt, wie oben beschrieben, PRINCE OF PERSIA geladen und bin im dritten screen des spiels immer den gang links und rechts entlang gelaufen um einen genauen fps-vergleichswert zu bekommen. alte version 44 fps, neueste 41fps. kann ja jeder der bock hat selbst mal probieren.
naja, dieser geringe unterschied ist fast vernachlässigbar. also lag es zum teil an der standardmässig aktivierten high-res unterstützung der version vom 07.04., wie du geschrieben hattest, aber anscheinend auch noch an der zunehmenden komplexität des emu`s, er ist doch ein bisschen langsamer geworden, aber minimal. dafür laufen halt mehr games. ich lasse trotzdem mal beide versionen auf meinem dingoo.
 
Sorry das ich das so drastisch formuliert hab.

Hier noch paar Erklärungen.

Also erstmal hat der ganz alte Port einen Hack, der ein wenig mehr fps bringt. Naja also es scheint so ;), weil der ein paar Frames mehr skipped. Den hab ich aber ausgebaut, da er manchmal die falschen Frames skipped und es einfach unschön ist. Dafür haste bei Snes9x4D jetzt Frameskip im Menü.

Nen richtigen Vergleich des Speed kannste eh erst machen, wenn du Frameskip auf 0 setzt. bei Snes9x4D wäre das 60/1=60fps.

Beim anderen kannste das nich machen, da standard auf Auto ist. Ergo kannste die beiden nicht so die beiden nicht so direkt vergleichen. Auch sind paar if abfragen mehr drinn...die verarbeitet werden müssen, aber im Grunde sollten die special chip implementationen nur zum tragen kommen, wenn wirklich ein special chip rom ausgeführt wird. Darauf hab ich geachtet.

Ich hab auch beide Emus auf meinem Dingoo...aber den alten halt nur als vergleich.

ps: nich SCIENCE sondern SiENcE :)
 
ach ja, SiENcE statt SCIENCE stimmt :-D

bei den frameskips scheint der emu aber zu schnell zu laufen, ist dir das schon aufgefallen? nutzt man zum beispiel 60/2 (also 30fps) sollte er ja bei einigen games eigentlich flüssiger laufen als mit AUTO (zumindest ist das bei mir bei vielen pc-emu`s so, da nutze ich NIE auto-frameskip, weil das scrolling damit oft ruckartiger aussieht), aber dann scheint das timing nicht mehr zu passen. das wäre gut, wenn es noch angepasst wird. komischerweise laufen mit 60/2 nicht alle games zu schnell, aber zum beispiel PRINCE OF PERSIA (um wieder auf dieses game zurückzukommen - übrigens eines meiner lieblings-spiele :) ) läuft mit der 60/2 einstellung klar zu schnell.

wie sieht es eigentlich speed-mässig aus beim snes9x? ist da noch eine verbesserung drin? ich nehme an, es wird wohl nie möglich sein, das super-nes komplett ohne frameskip auf dem dingoo emulieren zu können, oder? vielleicht kommt ja auch mal ein zsnes-port für den dingoo, wäre auch nicht schlecht.
 
ZSnes wirst Du nie sehen. Der code ist vollständig auf x86 ausgelegt. Viel x86 assembler code. Der Dingoo ist Mips.

Das mit dem Frameskip ist so eine Sache. So richtig wird das nie überall Funktionieren. Dh. man überspringt bei der berechnung der Emulation die ein oder andere Sache. Alles kann man nicht überspringen da es sonst andere Probleme gibt. Siehe Dein Kommentar zu dem "ruckartigem scrolling" in anderen emus).

Ums mal genau zu erklären was Snes9x da macht.

Bei AUTO erhält der Sound die höchste Priorität so das der Fullspeed laufen soll. Der Rest der Rechenleistung wird in die Frames gepackt. Deshalb variiert die Framerate. Frameskip=AUTO eignet sich eigentlich immer als Standard Einstellung.

Frameskip=60/1=60fps eignet sich, wenn man mal sehen will, wie das Game mit allen Frames läuft. Leider schafft das der Dingoo nur bei wenigen Spielen in Fullspeed. Der Sound wird hier vernachlässigt, weshalb der immer sehr langsam ist und immer hinterher hinkt.

Wenn Du erhöchst also auf
Frameskip=60/2=30fps dann hast Du die halbe Framerate und der Sound hat genügend Speed um fast Fullspeed zu laufen. Nur kann man das dann nicht Synchronisieren...weshalb einige Games zu schnell laufen (die die keine eigene Synchronisation eingebaut haben).

Frameskip=60/3=20fps usw. bis 60/9=~7fps ... naja die Modies eignen sich nur zum experimentieren zm Beispiel für StarFox.

DU kannst auch den Sound ganz abschalten (commandline option -ns) und AUTO auswählen. Dann hast Du fast die Perfekte Emulation, weil dann alle Rechenzeit in die Frames fließt weil kein Sound berechnet werden muss :).

Weiteren Speed ...uhm das wird schwer. Höchstens wenn ich nen super dollen in MIPS MXU Assembler geschriebenen Scaler von irgendwem erhalte ;-).
 
schade mit dem zsnes, ist auf dem pc mein lieblings-snes-emu.

ist das nur bei dem snes9x emu so, dass bei der AUTO einstellung der sound höchste priorität bekommt, oder gilt dies generell für alle emu`s die einen auto-frameskip-modus haben, also auch für emulatoren am pc? würde mich mal interessieren.

eigentlich hasse ich die auto-frameskip einstellung, kein pc-emu läuft bei mir in diesem modus . sollte wider erwarten mal ein spiel, zum beispiel im nintendo64-emu PROJEKT64 kein fullspeed auf meinem (doch schon etwas älteren PC) erreichen, dann wird eben "skip every second frame" benutzt.

wie synchronisieren die pc-emu`s dann die games, wenn zum beispiel auf "skip every second frame" (also 60/2) gestellt wird? denn dort läuft dann nichts zu schnell, das timing scheint trotz natürlich nicht mehr ganz so flüssigem scrolling wie ohne skipping, trotzdem zu passen, auch bei games die keine eigene synchronisation haben. und das machen sie AUCH, wenn man NICHT für pal-games - 100 Hz am monitor und vsync und für ntsc-games 120 Hz am monitor mit vsync on - verwendet. obwohl natürlich das perfekt flüssige scrolling nur mit teilbaren Hz-monitor-einstellungen geht (wie oben genannte werte zum beispiel) und ohne frameskip.
wo ist da dann der unterschied zum dingoo?

die sache mit dem sound abstellen, war mir schon klar.

noch eine letzte frage. ist noch eine verbesserung bei "kirbys dreamland 3" zu erwarten in zukünftigen versionen? ist nämlich auch eines meiner super-nintendo-favoriten. aufgrund spezialchips benötigt es ja noch einen sehr grossen frameskip momentan im snes9x.

wenn die herstellerfirma jetzt dem neuen dingoo A330 zumindest eine 600MHz cpu verpasst hätte, dann würden wohl ca. die hälfte aller super-nes games im snes9x komplett ohne frameskipping laufen. gleiches würde wohl auch für den mega-drive-emu picodrive gelten. schade, dass die ausser dem gehäuse kaum was verändert haben, wäre doch der ideale zeitpunkt dafür gewesen.
 
Back
Top