Hallo Besucher, der Thread wurde 273k mal aufgerufen und enthält 2404 Antworten

letzter Beitrag von frankyman1969 am

Denise C64 + Amiga Emulator

  • but there's a certain nostalgia about games with loaders such as those using the Ocean Loader tunes.

    I have no idea how much time I used to spend watching Tape loaders.

  • was im VICE passiert, wenn man dort sowohl "True Drive Emulation", als auch "Virtual Device Traps" aktiviert und dazu noch im Autostart-Menue die Option "Handle True Drive Emulation" einschaltet.

    im HOXS heißt das Quickload ?

    Ja. Dort hat es aber den Nachteil, dass es sich, nachdem das erste File einer nachladenden Software geladen ist, dann nicht von selbst abschaltet und dann auch versucht, die weiteren Files schneller nachzuladen. Und das bringt dann leider eine recht große Inkompatibilität in die Sache rein. Wenn technisch möglich, sollte nur immer das erste File, welches man innerhalb eines d64 startet, schneller geladen werden (oder direkt in den Speicher gesetzt werden), aber wenn es dann an's Weiterladen geht, sollte dies vollkommen ohne Schnelllader passieren. Wie ein "quickload only the first file" quasi. Eben, um die Kompatibilität nicht zu gefährden.


    Lohnen würde sich so etwas, denn wenn man sich viele Nachladespiele mal ansieht, dann ist dort oft das erste File mit Abstand das größte und oftmals ist auch noch ein Crack-Intro mit darin enthalten, was dessen Größe dann nochmal aufbläht. Die Files, die dann beim Nachladen drankommen, sind zumeist deutlich kleiner, da ist es dann nicht mehr so schlimm, wenn sie mit normalem Speed oder einem game-eigenen Loader weiterladen und den WARP Modus hat man dann ja notfalls auch noch dafür. Onefiler die sich auf einem d64 befinden, würden dann natürlich auch vom schlagartigen Laden profitieren, das wäre ein positiver Nebeneffekt. Die kann man aber auch herauskopieren aus dem Image.


    Hauptsächlich geht es deshalb um's erste File von Nachladern, bei dem die Wartezeit manchmal etwas nerven kann, vor allem ohne Jiffy-DOS. Und um das angesprochene Problem mit Tapes zu umgehen und gleichzeitig die Inkompatibilität zu einigen Demos, sollte man versuchen, wenn möglich auf Jiffy zu verzichten. Daher wäre ein "direkt in den Speicher setzen des ersten Files, bevor dann normal weitergeladen wird" eine gute Möglichkeit, dies zu erreichen. Vorausgesetzt, dass es sich technisch realisieren lässt. Im VICE etwa, nutze ich Jiffy nie, weil man das dort auf die oben angesprochene Art lösen kann.

  • Der erste Load durch den Kernal kann direkt in den Speicher geschoben werden. (als Option) Alles folgende läuft dann normal weiter. Muss mal schauen, wie sich das mit Autostartern (ohne Eingabe von Run) verbinden lässt.


    Das nächste Release kommt deutlich zeitiger, da schon mehrmals nach dem BBS support gefragt wurde. Das letzte feature dafür ist das Vorbereiten einer Vollbild Auflösung mit Frequenz.

    neues nightly (erstmal nur Windows) (den roten Streifen ignorieren, kommt nur weil Linux und Mac nicht gebaut werden konnten)


    Im globalen Video Menu unter Optionen lässt sich nun für Vollbild der Bildschirm auswählen und die dazu gehörige Auflösung + Bildwiederholrate. Diese Daten kommen direkt vom System (nicht von mir).

    Das sollten also nur Kombinationen sein, die der Bildschirm unterstützt. Eigentlich wollte ich nur Bildwiederholraten anbieten. Ich bekomme jedoch komplette Profile vom System, deswegen beides ohne extra Aufwand.


    Der Haupt Anwendungszweck für diese Option ist die normale 60Hz Frequenz im Windows Bereich zu fahren und beim Umschalten ins Vollbild auf eine vorbereitete Auflösung (in der Regel die selbe) aber mit 50 Hz zu wechseln. Beim Zurückspringen in den Fenster Modus wird das ursprüngliche Profil wieder geladen.

    Man erkennt an der längeren Wechsel Zeit gut, dass das aktuelle Profil verlassen wurde, selbst wenn nur die Bildwiederholrate geändert wird.

  • Im globalen Video Menu unter Optionen lässt sich nun für Vollbild der Bildschirm auswählen und die dazu gehörige Auflösung + Bildwiederholrate. Diese Daten kommen direkt vom System (nicht von mir).

    Das sollten also nur Kombinationen sein, die der Bildschirm unterstützt. Eigentlich wollte ich nur Bildwiederholraten anbieten. Ich bekomme jedoch komplette Profile vom System, deswegen beides ohne extra Aufwand.

    Prima daß dies nun kommt. Aber es klappt noch nicht richtig, zumindest auf meinem System nicht. Da gibt es momentan noch einige Probleme und zwar:


    - zunächst mal habe ich irgendwie alle Auflösungen samt zugehöriger Bildrate dreimal in der Liste zur Auswahl anstatt nur einmal, wie es sein sollte. Siehe Bild, etwa die drei markierten "1280x1024 - 50Hz" Felder. sollte nicht jedes immer nur einmal in der Liste sein, denn so sind es hunderte verschiedener wählbarer Auflösungen+Frequenz und jede ist mehrfach in der Liste





    - dann funktioniert bei mir die Funktion selbst auch noch nicht. Hab mal alle drei der markierten Auflösungen "1280x1024 - 50Hz" hintereinander ausprobiert und jeweils auf Vollbild umgeschaltet. Es bleibt dann aber immer bei meinen standardmäßigen eingestellten "1280x1024 - 60Hz", obwohl der Monitor mit den 50Hz ja keinerlei Probleme hat und die Umschaltung darauf, etwa mit meiner NirCMD Verknüpfung in der Windows-Startleiste, problemlos klappt.


    - dann habe ich die Frequenzkorrektur mal ausgeschaltet in den Videoeinstellungen und es dann mit einer der drei "1280x1024 - 50Hz" Auflösungen probiert. Da stürzt der Emulator dann ab, mit der Meldung "Denise funktioniert nicht mehr" und ich hab dann nur das Auswahlfeld "Programm schließen".


    - und ein weiteres Problem habe ich bemerkt. Nachdem es auf die zwei beschriebenen Arten nicht ging mit der Frequenzumschaltung, dachte ich mir dann, vielleicht muss man es einstellen, dann erstmal abspeichern und Denise erst nochmal neu starten und dann nimmt er es an. Das habe ich dann so ausprobiert, aber dann ist es so, dass Denise zwar normal startet, wenn ich dann aber auf Vollbild umschalten will, stürzt der Emu immer mit einem Blackscreen ab.


    Und eine Frage noch. Am Screenshot sieht man, daß ich die Auswahl habe aus "Intel HD Graphics \\ Display 1" was meine Onboard-Grafikkarte in Verbindung mit meinem ersten Monitor (BenQ BL912) ist und "Intel HD Graphics \\ Display 2" was wieder meine Onboard-Grafikkarte ist, diesmal in Verbindung mit meinem zweiten Monitor (Hanns-G). Was sind jetzt diese anderen drei anwählbaren Sachen dort? Wenn ich da eines auswähle, sehe ich hinten bei den Auflösungen nichts.

  • - erste Auswahlbox sind die Bildschirme

    Deren Inhalt erhalte ich vom System. Bei mir z.B. stehen dort NVIDIA Geforce GT 1030 Display 1 und NVIDIA Geforce GT 1030 Display 2. So wie erwartet.

    Bei dir wird hier einiges mehr erkannt. Anhand des Namens kann ich natürlich nicht filtern, da dieser bei jeder Hardware anders aussieht. Aus dem Grund filtere ich nun alle virtuellen Devices weg. Das sollte die Liste ausdünnen.


    - zweite Auswahlbox sind die Profile

    Hier wird bei mir jede Kombination nur einmal angezeigt. Ich habe noch einen Filter gesetzt, vielleicht bringt das was.


    Ich teste nachher mal Windows 7 und schiebe dann ein neues nightly nach.

  • neues nightly


    ok unter Windows 7 werden die virtuellen Displays angezeigt und alle Auflösung/Bildwiederholraten Kombinationen dreimal, da Windows7 auch noch 8 und 16 bit per Pixel Varianten listet.

    virtuelle Displays werden nun rausgefiltert und nur noch 32 bit per Pixel Varianten gelistet. Die beiden Listen sollten nun für Windows 7 passen.


    Das erklärt aber nicht warum er nicht umschaltet. Auch unter Windows 7 wurde bei mir umgeschaltet.

    Hmm, die Vollbild-Auflösungsauswahl funktioniert bei mir nicht. Er schaltet in Vollbild, aber Auflösung und Wiederholrate ändern sich nicht, egal was ich da einstelle.

    Das sollte auch ohne exklusives Fullscreen funktionieren. OpenGL z.B. hat kein exklusives Vollbild.

  • Da fällt mir ein du wolltest doch im Vollbild auf eine nicht native Auflösung umschalten. Wenn dem so ist, versuche doch bitte erstmal ob du in der nativen Auflösung dadurch zwischen 50 und 60 Hz umschalten kannst.


    Nachtrag: Aktuell springt die App beim Umschalten ins Vollbild nicht auf das Nachbar Display, wenn dieses für Vollbild ausgewählt wurde. also sichergehen, dass die App auf das Display gezogen wird, welches im Vollbild die Auflösung/Wiederholrate ändern soll, andernfalls wechselt zwar das angefragte Display den Modus aber die App geht im anderen Display ins Vollbild.

  • Da fällt mir ein du wolltest doch im Vollbild auf eine nicht native Auflösung umschalten. Wenn dem so ist, versuche doch bitte erstmal ob du in der nativen Auflösung dadurch zwischen 50 und 60 Hz umschalten kannst.

    Meinst du jetzt "pi64" oder mich?

    Bei mir ist es so, dass die Auflösung mit 1280x1024 bisher immer gleich blieb und ich bislang nur versuchte, zwischen 60Hz und 50Hz umzuschalten im Denise.

    Das klappt bislang aber nicht. Er schaltet nicht auf diejenige Hz-Zahl um und bleibt immer bei den normalen 60Hz, auch wenn ich beispielsweise versuche, auf "1280x1024 - 75Hz" umzuschalten im Denise. Oder muss man noch irgendeine andere Funktion umstellen im Emu, daß dies funktioniert?


    Wenn ich zunächst "1280x1024 - 50Hz" in Denise einstelle, dann erst die Settings abspeichere und den Emu dann nochmal neu starte und in's Vollbild wechseln will, dann stürzt immer der Emulator ab. Und speichere ich die Settings nicht ab, sondern schalte gleich auf Vollbild um, dann nimmt er immer den eingestellten Wert nicht an und bleibt immer bei der in Windows eingestellten Standardauflösuing samt dazugehöriger Frequenz. Hab hin und her probiert, ist aber immer das selbe.


    Ich hab dann auch mal versucht, nur die Auflösung umzuschalten im Denise und den Hz-Wert gleichzulassen, weil ich wissen wollte, ob das geht? Aber auch das klappt nicht. Stelle ich im Denise eine andere Auflösung ein, etwa "1024x768 - 60Hz", dann stürzt der Emu immer sofort ab, wenn ich danach auf's Vollbild umschalten will, mit der Bugmeldung "Denise.exe funktioniert nicht mehr".


    Zum Vergleich - nutze ich, bevor ich Denise starte, aber meine selbsterstellte "NirCMD" Verknüpfung namens "50" zum wechseln der Frequenz (Hz), die ich mir in die Startleiste gelegt habe, dann funktioniert das Umschalten problemlos. Dort in dieser Verknüpfung wird der Befehl

    "nircmdc.exe setdisplay 1280 1024 32 50"

    ausgeführt. Und mit einer zweiten Verknüpfung namens "60" kann ich dann immer wieder zurückschalten auf die 60Hz. Alles per einfachem Doppelklick.


    Wäre mal interessant zu wissen, wie es sich bei anderen Usern verhält. Vielleicht können diese neue Funktion im Denise ja mal ein paar Leute ausprobieren auf ihrer Hardware und Rückmeldung geben. Eventuell kann man daraus Rückschlüsse ziehen, warum es beim einen geht und beim anderen noch nicht?



    Ein Verdacht kam mir noch, könnte es sein, weil alle Auflösungen samt Frequenz dreimal angezeigt werden bei mir, dass es etwas mit 8bit, 16bit und 32bit Farben zutun haben könnte?

  • Ein Verdacht kam mir noch, könnte es sein, weil alle Auflösungen samt Frequenz dreimal angezeigt werden bei mir, dass es etwas mit 8bit, 16bit und 32bit Farben zutun haben könnte?

    Eben gesehen, das hattest du ja selbst schon erwähnt gehabt in Eintrag #1468, hatte ich erst überlesen.


    neues nightly


    ok unter Windows 7 werden die virtuellen Displays angezeigt und alle Auflösung/Bildwiederholraten Kombinationen dreimal, da Windows7 auch noch 8 und 16 bit per Pixel Varianten listet.

    virtuelle Displays werden nun rausgefiltert und nur noch 32 bit per Pixel Varianten gelistet. Die beiden Listen sollten nun für Windows 7 passen.

    Gerade bin ich am rumprobieren. Mit diesem neueren Nightly #435, klappt es jetzt scheinbar problemlos auf meinem Rechner. Bin gerade am Rumtesten damit und konnte noch kein Problem damit entdecken bislang. Was ich im vorigen Eintrag schrieb, bezog sich noch auf #434.


    Egal ob ich jetzt mit #435 nur die Auflösung, nur die Frequenz oder beides zugleich ändere, jetzt stürzt nichts mehr ab. Auch abspeichern und dann wieder aufrufen, passt jetzt. Problem unter Win7 32bit gelöst, wie es scheint.


    Was wurde da jetzt, ausser dass bestimmte Displays rausgefiltert wurden für Win7 noch geändert im Vergleich zur Vorversion, da nun auf einmal alles problemlos klappt? Kann ja nicht nur das Rausfiltern gewesen sein.

  • Was ich noch bemerkt habe als positiven Nebeneffekt der neuen Funktion. Wenn ich "720x576 - 50Hz" als Vollbildmodus nehme, anstatt meiner üblichen "1280x1024 - 50Hz" dann schafft mein Rechner in den meisten Games die 50FPS Fullspeed auch noch mit 3 Frames RunAhead wenn ich den zyklenakkuraten Renderer nehme, anstatt nur mit 2 Frames. Das bringt also etwas Speedzugewinn. Kann man ab und zu mal benutzen, wenn nötig. Das Bild selbst sieht auch mit 720x576 noch ganz okay aus mit Bilinear (Grafikfilter hab ich damit bislang noch nicht probiert) Es scheint dann einen etwas stärkeren Weichzeichner zu haben und die Meldungen unten am Screen sind dann natürlich größer.

  • Mal was anderes: Sehe ich das richtig, dass von der Todo-Liste "D81-Support" noch nicht angegangen wurde? Die Nutzung würde mich jetzt doch interessieren. Hintergrund: ich wollte etwas mit GEOS/MP3 machen und ich bekam unter VICE die Maus einfach nicht richtig aktiviert. Also dachte ich mir: mal wieder auf Denise gehen (ich wechsle immer so nach gusto) aber hier war dann gleich der fehlende D81-Support der Showstopper. Auf einer einzelnen 1541-Floppy bekommt man einfach kein komplettes GEOS/MP3-System zum Laufen.


    Wenn ich mir also etwas wünschen dürfte: D71/D81-Support. Wäre das ein schwieriges Unterfangen?


    Außerdem: Wie erzeuge ich eine REU bestimmter Größe mit Denise?

  • Also, ich versuche das mal so übersichtlich wie möglich zusammenzufassen.


    Der Desktop läuft bei mir mit 1920x1080 144Hz.

    Manche Auflösungen werden wohl übernommen, bei anderen scheint er zwar auch länger umzuschalten, landet dann aber wieder bei 1920x1080.


    Beispiel 1024x768 Direct3D, kein Exklusives Vollbild. Die Auswahl an möglichen Bildwiederholfrequenzen ist schon mal nicht zu dünn.

    59Hz: Schaltet um auf 1920x1080.

    60Hz: Schaltet korrekt auf 1024x768 60Hz, allerdings mit fluktuierenden FPS. Maximum liegt bei 60, er zuckelt aber runter auf bis zu 48. Fängt sich nach ein paar Sekunden bei konstant 60. Performance des Rechners sollte ausreichend sein. Bei exklusivem Vollbild geht er wieder auf 1920x1080 und zuckelt auf bis zu 144Hz...

    70Hz: Schaltet korrekt um, fluktuiert wieder eine Weile, fängt sich dann aber auf 70FPS. Stichprobe mit exklusivem Vollbild: geht auf 1920x1080.

    120Hz: Geht wieder auf 1920x1080. Einmal hat er das Bild unskaliert mit 1024x768 links oben in der Ecke des Bildes eingeblendet. FPS schwanken irgendwo um die 100.


    Ich hab erstmal abgebrochen, kann kein System entdecken, könnte mir aber vorstellen dass der Monitor Macken hat.

    Falls es was bringt kann ich alle Modi durchgehen und auflisten, da muss ich mir dann aber etwas Zeit nehmen...

  • Ach so, total vergessen: Native Auflösung 50/60Hz funktioniert in der letzten Nightly.


    Edit: Warum ich Wiederholraten über 60Hz überhaupt getestet habe ist, weil das ja FreeSync ist und der müsste sich dann doch eigentlich automatisch für die nächste passende Wiederholrate entscheiden oder? Wenn ich "normale" Spiele spiele, dann ist Refresh Rate = FPS des Spiels, solange die eingestellte Refresh Rate über den FPS liegt.

  • Was wurde da jetzt, ausser dass bestimmte Displays rausgefiltert wurden für Win7 noch geändert im Vergleich zur Vorversion, da nun auf einmal alles problemlos klappt? Kann ja nicht nur das Rausfiltern gewesen sein.

    Doch. Jedoch habe ich eine Checksumme über Weite x Höhe x Bildwiederholfrequenz generiert. Die jeweils 3 gleichen Einträge unterscheiden sich aber in Bits Per Pixel. 8, 16 oder 32. Die Checksumme ist also bei jeweils drei Einträgen gleich und er kann nicht mehr unterscheiden, also matcht der erste Eintrag (wahrscheinlich 8). Obwohl du alle 3 probiert hast, ist er immer bei 8 Bits pro Pixel hängen geblieben und das funktioniert nicht. Jetzt wo ich 8 und 16 Bits per Pixel rausfiltere, landet er natürlich immer bei den korrekten 32 Bits per Pixel.

    Das Ausdünnen hat also indirekt die generelle Funktion auf Windows 7 ermöglicht.

    Sehe ich das richtig, dass von der Todo-Liste "D81-Support" noch nicht angegangen wurde?

    Ja, D71 und D81 sind noch nicht enthalten. Im nächsten Release steht die Verbesserung der Laufwerks Emulation an. Zumindest 1571 steht mit auf dem Plan.

    Außerdem: Wie erzeuge ich eine REU bestimmter Größe mit Denise?

    Unter System / Expansionsport REU auswählen und mittels Slider darunter die Größe einstellen.

    Falls es was bringt kann ich alle Modi durchgehen und auflisten, da muss ich mir dann aber etwas Zeit nehmen...

    Ne das macht keinen Sinn. Mehr als eine Auflösung anfordern, ist eh nicht drin. Das System entscheidet dann ob es angewandt wird oder nicht. Darauf habe ich keinen Einfluss. Es ging nur darum ob es grundsätzlich funktioniert.

    Edit: Warum ich Wiederholraten über 60Hz überhaupt getestet habe ist, weil das ja FreeSync ist und der müsste sich dann doch eigentlich automatisch für die nächste passende Wiederholrate entscheiden oder? Wenn ich "normale" Spiele spiele, dann ist Refresh Rate = FPS des Spiels, solange die eingestellte Refresh Rate über den FPS liegt.

    Ich habe leider noch keinen Free Sync und muss hier erst selber Erfahrungen sammeln. Ja grundsätzlich würde ich dieses Feature zum Umstellen der Bildwiederholrate bei aktiviertem Free Sync abschalten oder ?

  • Ich habe leider noch keinen Free Sync und muss hier erst selber Erfahrungen sammeln. Ja grundsätzlich würde ich dieses Feature zum Umstellen der Bildwiederholrate bei aktiviertem Free Sync abschalten oder ?

    Wenn es denn zuverlässig so funktionieren würde wahrscheinlich ja.
    Momentan muss ich direkt die Wiederholrate ansteuern die ich will (50 bzw. 60 Hz), sonst bekomme die oben erwähnten chaotischen Resultate. Manche Games verhalten sich auch seltsam, grundsätzlich bin ich immer ein Freund der Option selbst genau Hand anlegen zu können falls es doch nicht so läuft wie es sein sollte.

  • Momentan muss ich direkt die Wiederholrate ansteuern die ich will (50 bzw. 60 Hz), sonst bekomme die oben erwähnten chaotischen Resultate.

    Ich habe die info, das FreeSync aktuell nur mit DirectX funktioniert. (wenn du das meinst)

    Hier geht's erst weiter, wenn ich mit der "grundsätzlichen" C64 Emulation durch bin. Direkt danach steht das Thema Video Treiber / Shader / FreeSync auf dem Plan.

    Das Feature zum Umschalten der Bildwiederholrate sollte nur verwendet werden, wenn der FreeSync Monitor mit deaktivierter FreeSync Funktion arbeitet, also sich wie ein normaler verhält.

  • Also unter Windows funktioniert Freesync auch mit OpenGL. Keine Probleme hier meinerseits. Unter Linux muß man wohl zwingend den Vsync aktivieren, ansonsten klappt es nicht. Sofern diese Info hier noch aktuell ist. Mitunter machen auch HDMI und Display Port Anschlüsse einen Unterschied, ob und wie gut das am eigenen Rechner funktioniert.


    https://www.amd.com/de/support…-of-AMD-FreeSync-on-Linux

  • Unter Linux muß man wohl zwingend den Vsync aktivieren, ansonsten klappt es nicht

    guter Hinweis.


    Ich kann mich erinnern, dass irgend jemand mal hier im Thread gepostet hat, dass FreeSync unter Linux mit Denise nicht funktioniert im Gegensatz zu MAME mit Freesync unter Linux.

    Möglicherweise hatte er dann Vsync in MAME aktiv aber nicht in Denise ...


    Ich hoffe ich komme bald dazu mir meinen schon seit Monaten auf der Liste stehenden Free Sync Monitor zu holen: Gigabyte Aorus FI27Q Monitor

    Mittlerweile liegt er schon unter 500 Euro.