Wie den Zsnes aufnehmen? Mehrere Möglichkeiten zum Ergebnis.

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Wie den Zsnes aufnehmen? Mehrere Möglichkeiten zum Ergebnis.

      Anzeige
      Einige Windows 8 User unter euch werden es gewiss schon mitbekommen haben das der Zsnes nicht hookbar ist von Aufnahmeprogrammen, da Triple Buffering nicht seine Funktion erfüllt. Und einige andere Windows User wie Win7, WinVista und WinXP werden gemerkt haben das Triple Buffering den Emulator etwas ausbremsen tut.

      Ich zeige euch hier nun mehrere mögliche Alternativen, mitunter auch Triple Buffering als auch ohne, die Spiele im Emulator aufzuzeichnen.


      Weg #1: Triple Buffering (Nicht Nativ):

      Triple Buffering (deu. Dreifach Puffer/Speicher) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer
      des Video-RAM bei Grafikkarten in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei gleichzeitiger Verwendung von VSync (vertikale Synchronisation) und Doppelpufferung (double buffering) auftretenden Nachteile während des Bildaufbaus zu kompensieren.
      Der Unterschied zwischen Doppel- und Dreifachpufferung liegt in der Einteilung des Framebuffers. Während bei der Doppelpufferung der Framebuffer aus zwei Pufferspeichern (Front- und Backbuffer) besteht, sind es derer drei bei der Dreifachpufferung (ein Frontbuffer und zwei Backbuffer).

      Also funktioniert hier der Hook von Aufnahmeprogramm deshalb da er hier den Backbuffer abgreifen kann, der vorher nicht vorhanden war. Im nun befindlichen 2ten Backbuffer kann nun gehookt und die Frames abgegriffen werden.

      Funktionieren tut dies im Zsnes nur wenn man eine Auflösung wählt wo Filter nutzbar sind.

      Dabei gibt es beim Zsnes mehrere Abkürzungen:
      D - Allow Filter / Lasse Filter zu
      S - Stretch / Strecken
      R - Keep 8:7 Ratio / Behalte 8:7 Verhältnis bei
      W - Windowed / Im Windows Fenster
      F - Fullscreen / Im Vollbild

      Passend für jeden User sind die Custom Auflösungen die ganz unten in der Liste bei Video zu finden sind.

      Wichtig halt ist für Triple Buffering die Nutzung der Filter. Da die Filter bei einer Custom Auflösung nur bei Vollbild nutzbar sind, wird automatisch halt auch eine Vollbildauflösung notwendig sein.

      Eine 8:7 Ratio (Seitenverhältnis) ist ein typisches Standard Seitenverhältnis für Snes Games (Original). (Muss jeder für sich wissen ^^)

      Unter Filter ist dann Triple Biffering zu finden und kann dann aktiviert werden.

      Nun sollten Aufnahmeprogramme wie Fraps, DXTory, MSI Afterburner und Co. den Znes aufnehmen können.




      Weg #2 Desktopaufnahme (Nicht Nativ):

      Klar, Weg Nummer 2 ist die Aufnahme via Desktop. Sprich ohne Hooking. Auch hierbei darf der Zsnes im Vollbild laufen und mit Filter arbeiten.

      Desktopaufnahmen gehen z.B. mit:
      MSI Afterburner (Riva Tuner = Application Detection Level auf None stellen)
      Fraps (Nur via Windows Aero = DWM Mode)
      Virtual Dub (Screen Capture)
      Camtasia Screen Recorder (Bitte hier geeigneten Codec verwenden dann)


      Weg #3 Intern via Mencoder und FFV1 [BGR32] (Lossless) (Nativ):

      Weg Nummer 3 ist schon kniffliger, dafür aber absolut Nativ. Was mein ich mit Nativ? Nativ ist wenn in der Auflösung aufgenommen wird den die Romgrafiken hergeben. Nativ ist, wenn es im Original Seitenverhältnis auch ist. Und es ist auch die FPS damit gemeint die bei Snes Games bei 60/1,001 FPS liegt. Sprich 59,94 FPS.

      Wenn diese native Auflösung auch noch Lossless in der Farbunterabtastung 4:4:4 aufzunehmen ist, dann hat man im Endeffekt ein hübsches Video was man sehr sehr schön hochpolieren kann und die Qualität somit der ersten beiden genannten Wege in den Schatten stellt.

      ACHTUNG!!! Leider hat dieser Weg nur einen Nachteil. Die Spiele müssten für ein Let's Play nachkommentiert werden, da es bei dieser Art der Aufnahme keine Framedrops geben wird.

      Was ist zu tun?
      Als erstes werdet ihr ein paar Tools brauchen:
      • Mencoder (Zur interner Video-Aufzeichnung) [ACHTUNG: Es darf keine neuere Version sein]
        Download
      • [lexicon]AVISynth[/lexicon] (Entweder via dem [lexicon]SSM[/lexicon] installieren lassen oder auf avisynth.nl/index.php/Main_Page#Official_builds sich die passende Version runterladen und installieren)
      • [lexicon]MeGUI[/lexicon] wäre schön zu besitzen, da hier alle [lexicon]AVISynth[/lexicon] Filter dabei sind die gebraucht werden. (BassVideo und FFMS2)
      Ihr entpackt die mencoder.7z mit WinRar oder 7zip und kopiert die beiden Datein "mencoder.exe" und "pthreadGC2.dll" direkt in euer ZSnes Verzechnis.



      Sind beide Files im Zsnes Verzeichnis, so startet und beendet ihr den ZSnes um folgende Datein erzeugen zu lassen:



      Hier öffnen wir nun mit dem normalen Windows Editor die Datei "zmovie.cfg" und ändern die Zeile
      md_ffv1="-ovc lavc -lavcopts vcodec=ffv1:vstrict=-2:aspect=4/3"
      in
      md_ffv1="-ovc lavc -lavcopts vcodec=ffv1:vstrict=-2:format=bgr32"




      Damit wird mencoder angeordnet, das er die Frames nicht in 4:3 strecken soll wie vorher angegeben war, sondern Original Seitenverhältnis beibehält und er speichert FFV1 nicht in YV12 ab, sondern in BGR32 alias RGB32. RGB24 gibt es leider nicht als Auswahlformat bei Mencoder.

      Nun öffnet ihr euren ZSnes und stellt ihn wie gewohnt ein wie ihr es haben wollt.

      Als nächstes müsst ihr ein Spiel starten/laden um dann unter "Misc" in die "Movie Opt" zu gelangen





      Jetzt wirds interessant.
      Links (siehe letztes Bild oben) seht ihr den Tab "Control" und rechts den Tab "Dumping". Beides gehört zusammen, aber beides baut aufeinander auf.

      Im Tab "Control" könnt ihr für ein Spiel bis zu 10 Filme aufnehmen. Dies entspricht aber einer Makroaufzeichnung des Spieles. Das bedeutet: Sobald ihr unter Control ein Movie recorden tut, wird dies Makromäßig im Verzeichnis der Rom als zmv aufgezeichnet. Sprich die zmv wird am Ende der Aufnahme nur wenige KB besitzen. Beendet die Makroaufzeichnung, sobald ihr mit dem Dumpen beginnen wollt.

      Ist die Makroaufnahme erfolgt, könnt ihr diese Aufzeichnungen als richtiges Video dumpen lassen. Dafür ist dann der Tab "Dumping" da. Hier wählt ihr eure Makroaufzeichnung die ihr bei Control angelegt habt aus (0 - 9) und könnt dann das Video dumpen lassen.

      Da wir nun FFV1 eingestellt haben in der CFG, nutzen wir auch gleich die FFV1 Auswahl und lassen Audio nur an sich dumpen. (VORSICHT: Nicht mit Video mergen lassen, weil Mencoder dann eine MP3 daraus machen wird.)
      Stellt es am besten so ein wie auf dem rechten Bild gezeigt wird.

      Die Dumping Length sollte am besten so lang sein wie die Makroaufnahme der zmv Datei.

      Habt ihr alles so, könnt ihr das Video dumpen lassen. Dies kann dann einige Minuten in Anspruch nehmen, da die Makroaufzeichnung dann noch mal durchlaufen wird.
      Es sollten zwei Datein danach entstehen. Einmal die "Video.avi" und einmal die "Audio.wav".

      - Ab hier kann auch ein Tool verwendet werden was ganz unten dieses Tutorials als Anhang zu finden ist -

      Nun müssen diese beiden Files noch entsprechend angepasst und zusammengesetzt werden. Weil ich glaube kaum das NLEs was mit FFV1 anfangen können. ^^ Darum machen wir nun aus dem Video ein UTVideo und reparieren auch gleich noch die falsch geschriebene WAV Datei (32bit float).

      Das können wir mit AVISynth und den Filtern von MeGUI erledigen.

      Dazu erstellen wir uns ein AVS Skript:
      FFV1_merged.avs

      Quellcode

      1. LoadPlugin("D:\MeGUI\Tools\ffms\ffms2.dll")
      2. LoadPlugin("D:\MeGUI\Tools\bassaudio\BassAudio.dll")
      3. File = "video.avi"
      4. FFIndex(File)
      5. AudioDub(FFVideoSource(File, threads=1).ConvertToRGB24(), BassAudioSource("audio.wav"))


      Dieses Skript kann dann mit FFMpeg in UTVideo und pcm signed 16Bit little Endian gespeichert werden.
      FFMpeg Befehl dazu:
      ffmpeg.exe -i FFV1_merged.avs -c:v utvideo -c:a pcm_s16le -map 0 FFV1_to_UTVideo_merged.avi

      Damit hättet ihr ein natives komprimiertes Lossless RGB24 UtVideo Zsnes Aufnahme.


      Weg #4 Intern via Mencoder und RAWVideo [BGR24] (Lossless) (Nativ):

      Die Aufnahme geschieht auf gleichen Weg wie der beschriebene Weg #3, nur das man jetzt statt FFV1, RAWVideo wählt.



      Dies erzeugt dann eine "rawvideo.bin", sowie eine "audio.wav"

      Die rawvideo.bin ist nun so kodiert, das man Spezifische Angaben machen muss die zur Auslesung der Bildinformationen dienen. Diese RAW (deu. Roh) Speicherung erfolgt beim Zsnes absolut unkomprimiert Lossless statt.

      Aufgabe ist es nun dieses Video zu dekodieren. Auch hier hilft uns AVISynth wieder weiter.

      - Ab hier kann auch ein Tool verwendet werden was ganz unten dieses Tutorials als Anhang zu finden ist -

      Um die zu dekodierenden spezifischen Informationen zu finden brauchen wir ledeglich nur die "zmovie.cfg" zu öffnen und werden dort fündig.



      Die spezifischen Angaben sind halt:
      Breite: 256
      Höhe: 224
      FPS: NTSC: 59649/995 und PAL: 50/1 (Sehr Wichtig, da dies Nachjustiert werden muss)

      Ein zusätzliches AVISynth Plugin wird nun Notwendig

      Das folgende AVISynth Skript sieht dann so aus:

      NTSC Version:
      RAW_merged.avs

      Quellcode

      1. LoadPlugin("D:\AVISynth\Plugins\rawsource.dll")
      2. LoadPlugin("D:\MeGUI\Tools\bassaudio\BassAudio.dll")
      3. RawSource("rawvideo.bin",256,224,"BGR").FlipVertical().AssumeFPS(59649, 995)
      4. AudioDub(BassAudioSource("audio.wav"))


      PAL Version:
      RAW_merged.avs

      Quellcode

      1. LoadPlugin("D:\AVISynth\Plugins\rawsource.dll")
      2. LoadPlugin("D:\MeGUI\Tools\bassaudio\BassAudio.dll")
      3. RawSource("rawvideo.bin",256,224,"BGR").FlipVertical().AssumeFPS(50, 1)
      4. AudioDub(BassAudioSource("audio.wav"))


      Dieses Skript kann dann mit FFMpeg in UTVideo und pcm signed 16Bit little Endian gespeichert werden.
      FFMpeg Befehl dazu:
      ffmpeg.exe -i RAW_merged.avs -c:v utvideo -c:a pcm_s16le -map 0 FFV1_to_UTVideo_merged.avi


      PS: Wenn ihr die FFV1 Methode und die RAWMethode mit den gleichen Makrovideo austestet, werdet ihr zum Schlussstrich bei dem UTVideo absolut identische Files haben.


      Tools:

      Eine bereits fertig konfiguriertes zmovie.cfg + Mencoder + AVISynth Plugins + FFMpeg + Batchdatein die automatisch dann via ffmpeg ein Video erstellen habe ich mal samt Emulator zusammengefasst und hochgeladen.

      HINWEIS: Bitte die Ordnerstrucktur des ZSnes Verzeichnis so belassen nach dem entpacken, da sonst die Batchdatein nicht mehr funktionieren!
      • [lexicon]ZSnes[/lexicon] v1.5.1 MovieMod: Download
      Sobald in FFV1 oder RAWVideo aufgenommen wurde, kann mit den Batchdatein im Unterordner die Videos encodiert werden mit UTVideo.





      Wie ihr dann aufnehmen wollt, liegt ganz bei euch.

      Ein paar Beispiele die man dann mit den Nativen Videos dann anstellen kann mit den richtigen Resizern ^^ :


      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sagaras ()

    • Nutze persönlich zwar lieber Snes9x da er eine hübschere GUI hat aber ein (wie immer) sehr umfangreiches Tutorial...

      Evtl. wär eine kurze Zusammenfassung für Leute die nicht die Hintergründe interessiert nützlich? So in etwa "5 Schritte zur fertigen AVI"?

      // EDiT: Zudem sehe ich gerade, ZSNES ist extrem ungenau was die Emulation angeht, snes9x erreicht fast 90% Genauigkeit... Quelle
      ——YouTube————————————————————————————————————————————
      — Endlos-Projekte: Minecraft (SinglePlayer), Craft The World, Banished, Besiege, Sims4
      — ..Abgeschlossen: Leisure Suit Larry 6+7, Dishonored, Surface 2+3, Mirrors Edge, uvm
      — . Kurz- Projekte: The Tower, Fighting Is Magic, Euro Truck Simulator 2, uvm
      — ......Retro-Ecke: Day Of The Tentacle, Flight Of The Amazon Queen, NFS: HP2, uvm
      ————————————————————————————————————————————TbMzockt.de—

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TbMzockt ()

    • @TbMzockt
      Der Snes9x steht hier aber nicht zur Diskusion. Ich hab den ZSnes deswegen ausführlich beschrieben, weil jedesmal im Forum die gleichen blöden Fragen kommen wie z.B. "DxTory erkennt zsnes nicht? Was tun?", "Wieso geht Triplebuffering nicht, hab Win8?", "Wie kann ich den ZSnes am besten aufnehmen?", "Problem beim aufnehmen von ZSNES mit FRAPS", usw.

      Somit kann man sich das Gerede darum sparen und die Geschichte mit diesem Emulator abkürzen.

      Finde den Snes9x an sich auch besser, vor allem deshalb da ich da kein Mencoder brauche und die Games gleich mit einem geeigneten VFW Codec intern capturen kann. Auch das andere Aufnahmeprogramme das Ding hooken können dank der Direct3D oder OpenGL Geschichte. Auch das ich Pixel Shader verwenden kann intern und auch die Möglichkeit für Netzwerkgames habe.

      Und trotzdem gibt es noch bessere Emulatoren für Famicom Games als den Snes9x und ZSnes. Die beiden bereits genannten sind ja nur die bekanntesten wo sogar die gleichen Entwickler beteiligt waren auch.

      TbMzockt schrieb:

      Evtl. wär eine kurze Zusammenfassung für Leute die nicht die Hintergründe interessiert nützlich? So in etwa "5 Schritte zur fertigen AVI"?


      5 Schritte? ^^ Und dann noch kurz? xD

      Hmm...
      1. Beigefügten Emulator downloaden
      2. Emulator + Spiel starten
      3. Makro aufzeichnen
      4. Makro Aufzechnung als Video dumpen
      5. Gedumptes Video und Audio via beigefügter [lexicon]Batch[/lexicon] zusammensetzen lassen und in UTVideo und [lexicon]PCM[/lexicon] signed 16bit little endian encoden
      Reicht das schon? ^^ Kurz und Bündig. Weiß nur nicht ob damit jemand was anfangen kann xD
    • Decane schrieb:

      Den ganzen Aufwand kannst du dir auch sparen indem du einfach den Emulator snes9x statt zsnes benutzt. Funktioniert einwandfrei und lässt sich einwandfrei aufnehmen.


      Sagaras schrieb:

      Der Snes9x steht hier aber nicht zur Diskusion. Ich hab den ZSnes deswegen ausführlich beschrieben, weil jedesmal im Forum die gleichen blöden Fragen kommen wie z.B. "DxTory erkennt zsnes nicht? Was tun?", "Wieso geht Triplebuffering nicht, hab Win8?", "Wie kann ich den ZSnes am besten aufnehmen?", "Problem beim aufnehmen von ZSNES mit FRAPS", usw.

      Somit kann man sich das Gerede darum sparen und die Geschichte mit diesem Emulator abkürzen.

      Finde den Snes9x an sich auch besser, vor allem deshalb da ich da kein Mencoder brauche und die Games gleich mit einem geeigneten VFW Codec intern capturen kann. Auch das andere Aufnahmeprogramme das Ding hooken können dank der Direct3D oder OpenGL Geschichte. Auch das ich Pixel Shader verwenden kann intern und auch die Möglichkeit für Netzwerkgames habe.


      Ohne Worte.

      Edit:
      Und vor allem sollteste mal an deine eigene Nase fassen: DxTory erkennt zsnes nicht? Was tun?

      Weil ich nutz den Snes9x schon seit Jahren. Damals war der sogar noch in Entwicklung gewesen.

      Aber wie gesagt... Dieses Tutorial hier gilt für Leute die hier im Forum Threads eröffnen mit ZSnes Emulator Aufnahmeproblemen kommen (so wie du z.B.) und biete somit Alternativen an Spiele an diesen Emulator dennoch aufnehmen zu können. Und genau das haste nicht gerafft wo du dein Beitrag geschrieben hast ;D Bzw. warst zu faul mal weiter zu lesen, weil dann hätteste dir dein Beitrag sogar sparen können ^^

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sagaras ()

    • Naja aufnehmen lassen sich beide..
      Aktuelle Projekte/Videos




      Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
      Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7
    • Kannste auch machen. Aber ein Emulator innerhalb eines emulierten Systems abzuspielen ist nicht grad optimal. Zumal der Zsnes ja nun wirklich aus der Steinzeit kommt.

      Kannst es gerne so machen, wenn du denkst das es so für dich in Ordnung ist. Ich würde das für mich persönlich so nicht machen wollen. Einfach auch aus der Sicht das oftmals der Ton nicht richtig hinhaut und Virtuelle Maschienen oftmals nur mit DirectDraw arbeiten können statt Direct3D bzw. OpenGL.

      Performanter wäre es wirklich den Snes9x zu verwenden. Der ist sein Zsnes Vorgänger deutlich weiter voraus. Zumal auch die gleichen Entwickler beteiligt waren.
    • Sagaras schrieb:

      Kannste auch machen. Aber ein Emulator innerhalb eines emulierten Systems abzuspielen ist nicht grad optimal. Zumal der Zsnes ja nun wirklich aus der Steinzeit kommt.

      Kannst es gerne so machen, wenn du denkst das es so für dich in Ordnung ist. Ich würde das für mich persönlich so nicht machen wollen. Einfach auch aus der Sicht das oftmals der Ton nicht richtig hinhaut und Virtuelle Maschienen oftmals nur mit DirectDraw arbeiten können statt Direct3D bzw. OpenGL.

      Performanter wäre es wirklich den Snes9x zu verwenden. Der ist sein Zsnes Vorgänger deutlich weiter voraus. Zumal auch die gleichen Entwickler beteiligt waren.


      Den Snes9x benutze ich selber auf dem Handy und würde ihn auch fürs Aufnehmen verwenden. Aber mir kam grade der Gedanke und wollt mal nachfragen ^^
    • BloggingLP schrieb:

      Den Snes9x benutze ich selber auf dem Handy und würde ihn auch fürs Aufnehmen verwenden. Aber mir kam grade der Gedanke und wollt mal nachfragen


      Wie gesagt, kannste gerne machen. Wäre aber zum einen nicht grad Optimal, zum anderen auch mit viel Umständen verbunden.

      Machst dir das halt somit komplizierter als es ist, weil es gibt ja durchaus bessere Mittel und Wege. Man muss ja nun nicht ein emuliertes System in einen emulierten System starten.
      Meist haste halt dann viele Schererein mit Ton und Bild und das muss ja nicht sein sich damit noch rumzuärgern. Dann lieber ein passenden Emulator nutzen. ^^