Hello, Guest the thread was viewed371k times and contains 2705 replies

last post from .mad. at the

Denise C64 + Amiga Emulator

  • Ich hab mir die Shader von den Seiten, die Retro-Nerd empfohlen hat, angesehen. Zum Laufen hab ich nur die mit der Endung .slangp gebracht. Am besten hat mir immer ein Shader namens CRT-GEOM-DELUXE gefallen - wie bekomme ich den in Denise?

    Ein das Libretro Shaderpack runterladen. Unzählige Retroarch Shader für jeden Geschmack.


    http://www.emu-france.com/emul…com/3677-cg-shaders-pack/

    Das ist ungünstig, denn hier sind ja auch CG und GLSL Shader, welche nicht (mehr) unterstützt werden mit dabei. Die sind Horn alt und es gibt ja für alles Wichtige einen modernen Ersatz.

    Denise unterstützt nur Slang Shader (slang oder slangp Dateien).

    Slang ist das Standard Format von der Vulkan Graphics API, so wie GLSL von openGL, HLSL von Direct3D oder MSL von Metal (macOS).

    Der Vorteil von Slang ist, das dieses Format so aufgebaut ist, dass man es in HLSL, GLSL oder MSL konvertieren kann. Das klappt nicht automatisiert mit realistischen Aufwand, wenn man die anderen Formate als Quelle nimmt.

    Mit Slang ist man erstmals vernünftig in der Lage NUR einen Shader für alle Treiber zu schreiben und diesen dann automatisch in die nativen Shader Systeme (GLSL, HLSL, MSL) zu konvertieren.

    Die Kronos Group hat das erkannt und einen Konverter gebaut. Dieser nennt sich spirV cross. RA und Denise verwenden diesen.


    Hier kommt der Link, von wo RetroArch seine Shader holt, wenn man in der RA UI "Shader aktualisieren" klickt.


    slangp Shader


    oder wie im Denise UI sichtbar auf das RA Symbol klicken. Das lädt die Shader von diesem link.

    Updates der Shader Autoren werden dann dort enthalten sein.


    RA unterstützt die Slang Shader, aber auch noch ältere GLSL Shader, welche deutlich weniger sind und kaum noch gewartet werden.

    Sie benötigen die GLSL Shader für openGL 1 und 2 Treiber. Erst openGL 3 kann vernünftig über Slang betrieben werden.

    openGL 1 und 2 wird nicht in Denise unterstützt und wird es auch nie. Das ist die Zeit vor 2006 glaube ich. Heutzutage kommt das noch auf leistungsschwächeren Geräten oder so zum Einsatz.

    Keine Ahnung wer das noch braucht, denn RA läuft ja nicht nur auf Desktop Computer.

    zeig mal ein paar Screenshots, wie das mit der Kombination funktioniert

    na warte mal. erstmal ist es vielleicht besser den Link ein paar Zeilen höher auszuprobieren und die Slang Shader durch probieren.

    Wenn du einen CRT Shader findest, der dir zusagt und schnell genug auf deiner Hardware läuft, gehen wir den nächsten Schritt.

    Die, die gefallen, kann man dann in die Favoritenliste aufnehmen. Damit man diese nicht immer im Dateisystem neu suchen muss.

    Wenn du nur eine alte Intel onboard GPU hast, werden einige Shader mit vielen Durchgängen nicht funktionieren. Das ist normal.


    Amiga:

    Vor allem für Amiga gefällt mir "/shaders_slang/bezel/koko-aio/Presets-4.1/monitor-bloom.slangp" gut.

    Zudem lohnt auch die erwähnte Kombination mit den Denise PAL Shadern beim Amiga kaum, da bei RGB keine PAL Besonderheiten gelten und der Amiga im Gegensatz zum C64 keine

    Geräte spezifischen Anomalien aufweist.

    optimal (subjektiv): nur einen RA CRT Shader verwenden.


    C64:

    CRT guest advanced z.B., hylian ist auch ganz nett.

    "guest advanced" gibt es auch als internen Shader. Ich habe ihn behalten (wird nicht gewartet), obwohl es diesen in den RA Shadern (wird gewartet) mit mehr Einstell-Möglichkeiten und Features gibt.

    Damit Leute, welche sich nicht mit RA Shadern beschäftigen wollen, die gewohnten Möglichkeiten haben.


    Der heftigste ist wohl "/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp"


    Hier ist ein Wort der Warnung angebracht: Dieser Shader hat um die 45 Durchläufe und baut sogar einen CRT Rahmen um das Bild (fancy). Eine Grafikkarte sollte der Rechner also schon haben. Ein 15 Jahre alter Rechner mit Intel onboard Grafik wird zu einem schlimmen Ende führen :-)


    Für den Anfang kannst du also die beiden internen Shader: C64 svideo light + guest advanced kombinieren. Dann bräuchtest du dich "noch" nicht mit RA Shadern beschäftigen.

  • Hab die Shader von Deinem Link geladen. Funktioniert. Ich hab zwar Anfangs nicht begriffen, warum im Shader-Menü immer „keine“ stand, aber nach drücken von „hinzufügen“ war das dann gelöst. Allerdings hab ich nicht kapiert, warum dort in aufklappbaren Ordnern „Shader“ und „ Parameter“ steht. Wie stellt man dann jeden geladenen Shader separat ein?


    Das, was ich probiert habe, war schnell genug. Verwende Denise unter MacOS auf einem M1 iMac.

  • "guest advanced" gibt es auch als internen Shader.

    verwechselt: lottes und trinitron sind die internen Shader, welche von den alten Denise Versionen übernommen wurden.

    Allerdings hab ich nicht kapiert, warum dort in aufklappbaren Ordnern „Shader“ und „ Parameter“ steht. Wie stellt man dann jeden geladenen Shader separat ein?

    Das Aufklapp Menu unter Shader ist für erfahrene Nutzer und Shader Entwickler gedacht.

    Unter Parameter werden alle Parameter gelistet, welche zum Shader gehören. Diese kannst du dann anpassen und im Emu Fenster schauen, wie es sich verändert.

    In der Regel sind die Shader schon brauchbar vor konfiguriert.

    Änderst du Parameter muss der Shader gespeichert werden. Der Speichern button ist in der Shader UI vorhanden. Am Besten man speichert in eine neue Datei ab und überschreibt nicht die Originale.

    Auf diese Weise kann man später wieder auf die Werkseinstellungen des Shader zurück greifen.

    Der veränderte Shader unter einer neuen .slangp Datei kann dann mit "Hinzufügen" zu den Favoriten ergänzt werden.

  • Huh? Da liegen Welten zwischen. Sofern du dir die Trillarden von Einstellungen mal genauer anschaust. Der interne ist ein simpler single Shader. Advanced ist eine Verkettung von insgesamt 11 Shadern, mit 14! Seiten von einstellbaren Parametern in der Denise GUI. Da kannst du nahezu alles einstellen, was denkbar ist.


    PiCiJi


    Baust du irgendwann noch HDR Support mit ein? Damit man der Abdunklung des Bildes durch die CRT Shader wieder entgegenwirken kann? Da macht einen Riesen Unterschied, besonders auf OLEDs. Ohne würde ich z.B. meine Video Scaler gar nicht mehr nutzen wollen.

  • Baust du irgendwann noch HDR Support mit ein? Damit man der Abdunklung des Bildes durch die CRT Shader wieder entgegenwirken kann? Da macht einen Riesen Unterschied, besonders auf OLEDs. Ohne würde ich z.B. meine Video Scaler gar nicht mehr nutzen wollen.

    ja wollte ich eigentlich gleich mit machen, war aber dann doch zu viel Aufwand.

    Ich habe meinen Monitor mal umgestellt aber konnte mich an die extreme Helligkeit noch nicht gewöhnen.

  • Ist wie gesagt nur sinnvoll, wenn CRT Filter aktiviert sind. Oder BFI halt (oder beides zusammen, das ist echt mal extrem dunkel). Wenn beides nicht genutzt wird macht HDR keinen Sinn für Retrospiele. Mit HDR bekommt man jedenfalls einen CRT Look hin, der auch von der Leuchtkraft einem echten CRT sehr nahe kommt.


    Was genau wäre denn daran so aufwendig? Eigentlich macht man ja nur HDR über Windows an und Denise sollte dazu die passende SDR zu HDR Farbkonvertierung machen. Oder übersehe ich da was? Wolltest du da was mit regelbaren Nits= Leuchtkraft einbauen? Würde ich natürlich auch nicht nein zu sagen. Immer volle Pulle HDR Leuchtkraft was der TV/Monitor kann ist nicht für alle Spiele pauschal geeignet.

  • Was genau wäre denn daran so aufwendig? Eigentlich macht man ja nur HDR über Windows an und Denise sollte dazu die passende SDR zu HDR Farbkonvertierung machen.

    hab mich noch nicht wirklich damit beschäftigt.

    brauch aber nen extra internen Shader für die Konvertierung, eine veränderte DXGI swap chain.

    hängt überall im Code mit drin und openGL hat wohl keinen HDR support ? zumindest sehe ich hier nix in RA.


    Wolltest du da was mit regelbaren Nits= Leuchtkraft einbauen?

    ja

    max nits, paper white nits, contrast, expand gamut

  • Ich hab einige der CRT Shader probiert. Aber auf meinem iMac bekomme ich bei doch einer gewissen Anzahl "Shader Fehler". Ist das ein Problem am Mac oder woran liegt das?

    wahrscheinlich an der Grafikeinheit (intel on board ?) + openGL.

    Ich bekomme nur unter meinem ARM Mac mit einer neueren Intel GPU auch die komplexeren Shader ans Laufen.

    Das könnte sich unter der gleichen Hardware verbessern, wenn Denise Metal unterstützt.

    Auf meinem alten PC mit einer ATI Grafikkarte (>10 Jahre) bekomme ich unter D3D11 mehr Shader ans Laufen als mit openGL.

    Mit einer unteren Mittel Klasse Geforce bekomme ich unter Windows alle Shader unter openGL und D3D11 gleichermaßen zum Laufen.

    Mein Eindruck ist also, das openGL bessere Grafikhardware benötigt als D3D11.

    Ich beginne demnächst mit Metal support. Dann bin ich gespannt in wie weit dir das hilft.

  • Was halt ein M1 für eine Grafik im Chip hat. Mich wundert nur dass CRT GEOM DELUXE unter MAME hier funktioniert, am Denise nicht

    nach einigen Tests: Stimmt leider, eine gewisse Anzahl Shader funktionieren auch auf meinem ARM MAC nicht mit openGL.

    Dabei spielt es keine Rolle, wie komplex die Shader sind.

    So wie es aussieht, ist die letzte von Apple unterstützte openGL Version 4.1. Nur auf Windows und Linux wird openGL aktuell gehalten.

    Apple hat openGL schon seit einigen Jahren als "deprecated" erklärt und setzt auf seine eigene API Metal (ähnlich D3D unter Windows)

    Problem: spirv cross wandelt bestimmte Shader Features nur in nativen GLSL Code um, welcher eine aktuellere openGL Version benötigt.

    Es ist vorstellbar, dass die spirv cross library in neueren Versionen lauffähigen Code für ältere openGL Versionen zu erstellen vermag.


    Lösung 1: die nativen GLSL Shader, welche RA ja noch bereit hält, verwenden. Das würde das Problem "vielleicht" lösen oder zumindest verbessern.

    Jedoch zielen diese Shader auf openGL 2 ab. Möglichweise sind die Shader abgespeckt und dann ist noch die Frage, in wie weit die GLSL Shader überhaupt noch gewartet werden.

    Ich halte das für eine Sackgasse.


    Lösung 2: Apples native Grafik API (Metal) einbinden, welche seit 2014 (High Sierra) verfügbar ist. und genau das ist der nächste Punkt auf der Liste

  • Cool wäre, wenn es rudimentäre Disk-Editor Funktionen unter "Software" geben würde. Sobald ein Disk-Image eingelegt ist, sieht man ja das Inhaltsverzeichnis - wenn man dort Files löschen und umbenennen könnte (z. B. File mit der rechten Maustaste anklicken, um ein Menü mit Optionen zu öffnen) und eventuell per drag & drop innerhalb des Images verschieben.


    Und was mir noch bei den neuen Shader-Technik aufgefallen ist: Wird Denise durch einen Doppelklick auf ein Diskimage gestartet, funktioniert der Shader nicht richtig - sobald das Spiel allerdings vom Diskimage geladen ist, erscheint dann der Shader so wie er soll. Also praktisch während des Ladens funktioniert er nicht richtig.

  • Und was mir noch bei den neuen Shader-Technik aufgefallen ist: Wird Denise durch einen Doppelklick auf ein Diskimage gestartet, funktioniert der Shader nicht richtig - sobald das Spiel allerdings vom Diskimage geladen ist, erscheint dann der Shader so wie er soll. Also praktisch während des Ladens funktioniert er nicht richtig.

    weiß nicht genau was du meinst. ... wenn der Emu über Doppelklick auf eine Disk im Datei System gestartet wird ? also der Emulator an sich frisch hochgefahren wird oder wenn er bereits läuft ?

    Das könnte schon gelöst sein. Bitte mal das letzte nightly probieren.


    Zudem funktionieren nun unter macOS + openGL ein paar Shader mehr. z.B. im Ordner: bezel

    Habe festgestellt, das spirv cross mehr Shader unterstützt, wenn zu openGL 4.0 anstatt zur unter macOS letzt möglichen Version 4.1 konvertiert wird.

  • Danke für die Info!


    Ich habe die letzte Nightly von vor 4 Tagen probiert - das Starten eines DiskImages per Doppelklick verursacht aber immer noch, dass der Shader bis das Laden beendet ist, nicht richtig funktioniert.


    So wie Du geschrieben hast - Doppelklick auf eine DiskImage Datei im Datei System (Finder in MacOS). Egal, ob Denise vorher schon gestartet war und noch läuft oder nicht.

  • Ein kurzes Video, damit Du siehst, wie der Shader momentan reagiert, wenn man ein DiskImage im Finder zum Starten doppelklickt.

    Wo ist das Problem ?

    Der Shader sieht nicht korrekt aus oder der Shader ist erst nach ein paar Sekunden aktiv ?

    Ist die Warte Animation (drehender Kreis oben rechts) schon durch und das Video wurde erst danach aufgenommen ?

    Der Shader benötigt eine Weile bis er einsatzbereit ist. Leider steht unter macOS openGL der Shader Cache nicht zur Verfügung.