Pinned Tutorial zum Erstellen von REU Nuvies (16MB Kurzfilme) für die 1541 Ultimate Cartridges bzw. für den WinVice Emulator


  • Striker01
  • 23345 Views 151 replies

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Tutorial zum Erstellen von REU Nuvies (16MB Kurzfilme) für die 1541 Ultimate Cartridges bzw. für den WinVice Emulator

    REU Nuvie Tutorial v.1.0


    Hi Leute,

    da es sicher einige User hier im Forum gibt, die auch mal kreativ werden wollen aber nicht wissen, wie sie anfangen sollen und sich nicht stundenlang die Informationsfragmente zusammentragen wollen, habe ich hier ein Kurztutorial zum Thema REU Nuvies geschrieben. Da ich selber erst seit gestern - dank euch!! :thumbsup: - weiß wie man so ein Filmchen erstellt, erhebt mein Tutorial keinen Anspruch auf Vollständigkeit und beschreibt lediglich, wie man auf einem PC ein REU Nuvie für den C64 mit 1541 Ultimate bzw. dem VICE Emulator erstellt.


    Wenn euch wichtige Schritte auffallen sollten, die im Tutorial fehlen, bitte ich um Ergänzung!


    Zum Beginn benötigt man zumindest diese Software:
    virtualdub.org/
    csdb.dk/release/?id=93314 --> zumindest mufflon-1.0-win32.zip
    csdb.dk/release/?id=100031
    vice-emu.sourceforge.net/index.html#download


    Am Vice Emulator unter Einstellungen -> Erweiterungsmodul I/O Einstellungen -> REU Einstellungen... eine z.B. Test.reu erstellen.
    REU Größe: 16384 kB
    Häkchen bei REU Imagedatei bei Änderungen speichern setzen.
    Emulatoreinstellungen speichern

    Das gewünschte Video wird mit Hilfe von Virtual Dub gecroppt und auf 320x200 Pixel resized. Dabei auf die korrekte Ratio achten.
    Video -> Filters -> Add.. -> resize -> 320x200
    Aspect ratio: Disabled

    Video -> Frame Rate... -> Convert to fps: (z.B. 7 - je nach Länge des Videos - ideal 12.5 fps bzw. 12 fps)
    Audio -> No Audio

    Mehr als 768 Bilder (bzw. mit SID Musik max. 765 Bilder) pro NUVIE können nicht verwendet werden!!

    Ein Video mit 25fps konvertiert man, in dem man unter Framerate -> Process every other frame (decimate by 2) wählt.

    Man kann auch folgenes machen, falls es zu viele Einzelbilder werden:
    Das Video auf convert Framerate z.B. 12.5 stellen.
    Wenn ein recht langes Video konvertiert werden soll kann man auch die Framerate auf z.B. 5 konvertieren. Das sieht immer noch ganz passabel am C64 aus.
    Wichtig ist, dass man beim Nuviemaker ganz zum Schluss dann die Playlist anpasst. Dazu ein Hinweis am Ende des Tutorials.

    Jetzt unter Export die BMP's exportieren.

    File -> Export -> Image sequence... -> dort folgendes einstellen:

    Filename suffix: .bmp
    Minimum number of digits: 3
    Directory to hold: C:\nuf\bmp
    output format: Windows BMP -> OK

    Das Video wird mit Virtual Dub nun als Einzelbildsequenz im BMP Format auf die Platte exportiert.


    Dann konvertiert man die Einzelbilder mit dem Mufflon Converter und einem Batchcode in das *.nuf Format

    z.B. diesen Code unter Mufflon in eine Test.bat reinkopieren:

    Source Code

    1. @echo off
    2. for %%f in (./bmp/*.bmp) do call :muffi "%%f"
    3. goto done
    4. :muffi
    5. set Variable=%1
    6. set Variable=%Variable:.bmp=%
    7. mufflon ./bmp/%1 --flibug -o ./nuf/%Variable%.nuf
    8. :done
    9. del .\nuf\%Variable%_errormap.bmp /s /q
    10. del .\nuf\%Variable%_result.bmp /s /q
    Display All


    Hinweis: Ganz am Ende des Tutorials (unter Hinweis 3) gibt es noch eine alternative Batch Datei für noch bessere Bildqualität!


    Diese Sequenz wird dann mit dem Nuviemaker eingelesen und als Nuvie Video für den C-64 konvertiert.

    Ich verwende z.B. diese Ordnerstruktur:
    c:\nuf -> hier sind die Dateien von Mufflon drinnen.
    c:\nuf\bmp -> hier sind die eben erstellten BMP's drinnen
    c:\nuf\nuf -> hier landen die mit Mufflon konvertierten *.nuf Dateien.

    In Windows in die CMD gehen und in c:\nuf die Test.bat ausführen.
    Jetzt werden die BMPs ins nuf Format konvertiert.
    Dieser Vorgang kann je nach Einstellung und CPU Geschwindigkeit bis zu mehreren Stunden lang dauern!


    Man kann als Sound eine SID Datei verwenden.
    Achtung, es kommen nur SIDs in Frage, die als Initadresse $1000 und als Playadresse $1003 hat!
    Wo eine SID anfängt, kann man mit dem SIDplayer Sidplay2/w herausfinden.
    Hinweis: SID's mit digitalen Samples funktionieren noch nicht.

    (Es gibt tausende, die diese Vorgabe erfüllen aber noch mehr, die diese Vorgabe nicht erfüllen. Sidreloc bietet eine Möglichkeit zum Anpassen.).

    Die Sid, die verwendet werden soll, muss man mit dem Tool Sidplay2/w öffnen und auf File -> Save as. als .dat exportieren!
    Diese .dat Datei kopieren oder verschieben wir nach c:\nuf\nuf
    Ebenso kopieren wir nuviemaker0.1e.prg nach c:\nuf\nuf

    Jetzt kann man den nuviemaker0.1e.prg aufrufen welches die nuf Dateien mit der SID .dat zusammenführt und ein REU Video erstellt.
    Zu Beginn eine leere Test.reu auf c:\ angeben. Diese wird dann mit der Space Taste vom Nuviemaker formatiert und bereitgestellt.
    Die nuf Dateien und die dat von der Sid müssen im gleichen Verzeichnis sein, wie auch das Tool nuviemaker0.1e.prg damit die Dateien gefunden werden.
    Für die REU Erstellung mit WinVICE am Besten mit Alt+W = Warpspeed arbeiten.

    Wenn die Abfrage nach der Musik kommt, den Dateiname (z.B. sid.dat) der zuvor gespeicherten Datei angeben,
    bei der folgenden Frage nach Skip Frames einfach Enter drücken und bei der Frage nach
    Play Frames angeben, wie lang die Musik gespielt werden soll!
    Dabei muss man als Wert die gewünschte Zeit in Sekunden x 50 angeben!
    Soll z.B. die Musik eine Minute lang abgespielt werden, muss man also 3000 eingeben.
    Wenn alles geklappt hat, wird die Musik abgespielt und man kann mit der Taste o zum nächsten Programmschritt springen.

    Für eine Endlosschleife von der SID Musik bei der Frage:
    Resart music on video restart [y/n] ? n wählen.

    Hinweis: das ganze funktioniert nicht mit allen Sids: selbst wenn die Vorgabe Initadresse $1000 und Playadresse $1003 erfüllt ist,
    kann es passieren, dass die Musik zu schnell abgespielt wird oder Töne fehlen, kommt darauf an, wie die Musik programmiert wurde!

    Image prefix: leer lassen, mit Enter weiter
    Jetzt werden die nuf Dateien eingelesen. Dieser Vorgang geht recht schnell.
    Wrap frames: leer lassen, mit Enter weiter


    F1 = Edit Info Screen
    F7 = Quit Editing (speichert die Eingaben)
    F1 = Edit Playlist
    F7 = Quit und speichern
    Die Run Stop Taste hat man unter WinVICE auf der ESC Taste.

    Das fertige Video wird in die REU eingeladen und die Sequenz kann mit dem nuvieplayer-v1.0.prg angeschaut werden.




    Hinweis:
    Zum Anpassen der Sid Musik kann man das Tool Sidreloc 1.0 verwenden.
    csdb.dk/release/?id=109000


    Beispiel: delta.sid nach $1000 relocaten und unter delta_1000.sid speichern

    sidreloc.exe -p 10 delta.sid delta_1000.sid

    Damit ist noch nicht immer gleich INIT $1000/PLAY $1003 behoben,
    das kriegt man aber hin, indem man an diese Adressen einfach JMP $eigentliche Adresse schreibt.

    > $1000 bzw. $1003 die entsprechenden JMPs (Jumps) rein

    Man kann page(!)weise mit SIDreloc verschieben.

    Beispiel:
    Man verschiebt nach Page $10 und stellt fest, dass bei $1000 bis $1005 nichts steht, also hat man die 6 Bytes frei, die man braucht um folgendes zu ergänzen:

    Source Code

    1. $1000 ... JMP $INITADRESSE
    2. $1003 ... JMP $PLAYADRESSE


    Dann alles von $1000 bis $ENDOFRANGE als PRG dumpen und evtl. noch mit SIDEdit einen neuen SID-Header davor setzen.

    Falls GAR keine Assembklerkenntnisse vorhanden sind, erst SID-Reloc nehmen und eine Page wählen, die $1000-1005 nicht tangiert, oft geht $10, manchmal muss es $11 sein. (es sei denn der Tune liegt z.B. bei $9000/9003, dann nimmt man natürlich page $10 und hat direkt nach dem Relocaten $1000/3 und kann sich die weiteren Schritte schenken)
    Das Teil dann vom PSID Header befreien (sehr einfach, z.B. SIDPlay2/w -> Save as .DAT, Endung in PRG ändern voila)
    Laden
    Im Monitor folgendes eingeben (z.B. WinViceMon)

    Source Code

    1. >$1000 $4c
    2. >$1003 $4c


    Das ist der Befehl JMP (wie BASIC Goto)
    nun LowByte Highbyte! mäßig die echten Daten für Init und Play dahinter poken, bei Fallguy wären das z.B. nach dem Relocaten $11C0 (init) / $1075 (play), geht auch hintereinander weg
    also:

    Source Code

    1. >$1000 $4c $c0 $11 $4c $75 $10


    Das jetzt noch speichern mit Monitorbefehl

    Source Code

    1. S "FOO.PRG" 08 $1000 $????; ENDOFRANGE


    und fertig ist der Lack, es sei denn man braucht noch einen SID-Header.
    Den kriegt man leicht mit SIDEdit erstellt
    csdb.dk/release/?id=24333
    Einfach das nicht relocatetete .SID laden, dann(!) das FOO.PRG
    (Load as SID Data YES, Reset Header NO)
    NUR bei Init und Play $1000/$1003 eintragen fertig.


    Hinweis 2:
    Falls man ein Video auf nur 5fps eingestellt hat, wird das Video zu schnell ablaufen, da der Nuvieplayer mit 12.5 fps abspielt.
    Damit das Video nicht zu schnell runterläuft, kann man die Playlist einstellen.

    Unter dem Nuvie Maker muß man im letzten Schritt im Play List Editor ganz am Anfang zwei Felder mit insdel (Shift-Backspace) einfügen und folgende Werte eingeben:
    b8 00 (erscheint in violetter Schrift)
    Jetzt nur noch mit F7 raus und ESC speichert das REU ab (nicht vergessen: Häkchen bei REU Imagedatei bei Änderungen speichern setzen).

    Hinweis 3:
    Alternative Batch Datei für noch bessere Bildqualität (der Konvertierungsvorgang dauert allerdings etwas länger):
    Durch das "-p --max 0.8" sehen die Farbverläufe besser aus bzw. man erkennt mehr Kleinigkeiten.

    Diesen Inhalt in z.B. Test2.bat einfügen:

    Source Code

    1. @echo off
    2. for %%f in (./bmp/*.bmp) do call :muffi "%%f"
    3. goto done
    4. :muffi
    5. set Variable=%1
    6. set Variable=%Variable:.bmp=%
    7. mufflon ./bmp/%1 -p --max 0.8 --flibug -o ./nuf/%Variable%.nuf
    8. :done
    9. del .\nuf\%Variable%_errormap.bmp /s /q
    10. del .\nuf\%Variable%_result.bmp /s /q
    Display All



    Freue mich auf eure vielen, vielen REU Filme!

    Gruß,
    Reini


    ANHANG:
    SID Relocation

    1. mit Sidreloc Sid auf Page 11 relocaten:
    sidreloc.exe -p 11 Outrun_Europe_levels.sid sound_1100.sid

    2. sound_1100.sid mit Sidplay2/w als *.dat speichern (File -> Save as... -> Dateityp "C64 data (*.dat)" einstellen -> Speichern)

    3. in Sidplay2/w während sound_1100.sid geladen ist File -> Properties... gewählt, um das Fenster mit den Sid-Eigenschaften zu sehen (offen lassen, da man die Werte gleich braucht)

    4. Nuviemaker im Vice-Emulator starten und die *.dat-Datei als Music filename angeben

    5. Monitor öffnen und folgendes eingeben (nun brauchen wir die Werte des Sid-Eigenschaftsfensters: Init address: $1116, Play address: $26c6 - dieser Wert ist bei jedem Tune anders)

    a 1000
    jmp 1116
    jmp 26c6

    6. Monitor schließen und wie gewohnt im Nuviemaker fortfahren (Anzahl abzuspielender Frames eingeben usw.), wenn es geklappt hat, hört man dann die Musik


    Das mit dem Subtune habe ich auch ausprobiert, hier muss man beachten, dass die Zählung offenbar bei 0 beginnt (zumindest ist es beim Sid-File von Outrun Europe so), hierbei ändert sich Schritt 5 folgendermaßen, wenn man den dritten Subtune (einzugeben ist lda #2) benutzen möchte:

    a 1000
    jmp 1006
    jmp 26c6
    lda #2
    jmp 1116

    Anmerkung: die Musik wurde zwar vom Nuviemaker korrekt abgespielt und auch in die REU geschrieben, leider kam jedoch am Ende eine defekte Nuvie-Datei heraus (direkter Absturz zu beginn). Da aber die Musik und die Metadaten (insb. die Adresse für das Musikende) korrekt in die REU geschrieben wurde, kann man die Musik mit dem Nuvie-Musikripper extrahieren und mit dem Nuvie-Musikwechsler in ein korrekt funktionierendes Nuvie einfügen.

    Noch schlimmer war es beim zweiten Subtune (lda #1), da ist direkt nach Abspielen der Musik und Bestätigen mit o der Nuviemaker abgestürzt. Die Musikdaten wurden zwar bereits korrekt in die REU geschrieben, aber die Metadaten fehlten, sodass der Nuvie-Musikripper meldet, dass keine Musik gefunden wurde. Um dies zu umgehen, muss man die "Musikendeadresse" mit einem Hexeditor in die kaputte Nuvie-Datei reinpatchen, Adresse $0100F4 in der Reihenfolge Low-byte, Mid-byte, High-byte, die Musikendeadresse berechnet man so: dezimal 16777205 - Frameanzahl * 25 -> Ergebnis umrechnen nach hexadezimal, bei 9999 Frames kommt heraus: dezimal 16527230, hexadezimal $FC2F7E, also schreib man in diesem Beispiel im Hexeditor an Adresse $0100F4 den Wert 7E 2F FC und speichert die Datei, dann klappts auch mit dem Extrahieren der Musik mittels Nuvie-Musikripper.
    Files

    The post was edited 1 time, last by Tommes ().

  • Ich danke euch. :)

    Ein wichtiger Hinweis noch von war64burnout.
    Achtung, wenn man sein REU Video möglichst lange abspielen möchte und das Ausgangsvideo dafür auf ca. 5fps Abspielgeschwindigkeit konvertiert wurde, muss man wie beschrieben ganz zum Schluss die Playlist editieren.
    Das bewirkt, dass das Video langsam (am C64 trotzdem sehr cool) und lange abgespielt wird.
    Macht man das nicht läuft das Video zu schnell ab.

    Ganz wichtig:
    Man muss Shift + Backspace (löschen Taste) drücken und den Wert auf b8 00 ändern und dann nochmals Shift + Backspace drücken!!! damit die nächste Zeile ebenfalls mit b8 00 editiert wird. Dann mit F7 und schließlich ESC Taste raus.
    Macht man das nicht zwei mal (2x) bleibt das Video bei Laufender Sid hängen oder das Video stürzt sogar ab.

    Nochmals vielen Dank an war64burnout! :)
    Files
  • Alles klar. Danke :TheRyk
    Na dann zitiere ich dich mal :)

    Falls GAR keine Assembklerkenntnisse vorhanden sind, erst SID-Reloc nehmen und eine Page wählen, die $1000-1005 nicht tangiert, oft geht $10, manchmal muss es $11 sein. (es sei denn der Tune liegt z.B. bei $9000/9003, dann nimmt man natürlich page $10 und hat direkt nach dem Relocaten $1000/3 und kann sich die weiteren Schritte schenken)
    Das Teil dann vom PSID Header befreien (sehr einfach, z.B. SIDPlay2/w -> Save as .DAT, Endung in PRG ändern voila)
    Laden
    Im Monitor folgendes eingeben (z.B. WinViceMon)

    Source Code

    1. >$1000 $4c
    2. >$1003 $4c


    Das ist der Befehl JMP (wie BASIC Goto)
    nun LowByte Highbyte! mäßig die echten Daten für Init und Play dahinter poken, bei Fallguy wären das z.B. nach dem Relocaten $11C0 (init) / $1075 (play), geht auch hintereinander weg
    also:

    Source Code

    1. >$1000 $4c $c0 $11 $4c $75 $10


    Das jetzt noch speichern mit Monitorbefehl

    Source Code

    1. S "FOO.PRG" 08 $1000 $????; ENDOFRANGE


    und fertig ist der Lack, es sei denn man braucht noch einen SID-Header.
    Den kriegt man leicht mit SIDEdit erstellt
    csdb.dk/release/?id=24333
    Einfach das nicht relocatetete .SID laden, dann(!) das FOO.PRG
    (Load as SID Data YES, Reset Header NO)
    NUR bei Init und Play $1000/$1003 eintragen fertig.
  • Einfach was der TS in #6 von mir zitiert hat in #1 direkt hinter
    ...
    Dann alles von $1000 bis $ENDOFRANGE als PRG dumpen und evtl. noch mit SIDEdit einen neuen SID-Header davor setzen.

    schieben

    Ich erwarte gespannt, dass der erste Nuvie-Papst stolz berichtet, dass er seinen ersten nicht-Nuvie-fähigen SID nach dem Rezept eigenhändig erfolgreich behandelt hat :thumbup:
    Es sind keine anzeigbaren Aktivitäten vorhanden.
  • Klasse, danke für's Nachtragen im Tutorial. :thumbsup:
    Nur so wie's jetzt steht passt net. :P

    Bitte das komplette Zitat vor Hinweis 2 setzen.
    Also wo bereits schon imTut steht:
    ...Dann alles von $1000 bis $ENDOFRANGE als PRG dumpen und evtl. noch mit SIDEdit einen neuen SID-Header davor setzen.
    ---> Hier jetzt das komplette Zitat rein wie auch schon Commander Ryker geschrieben hat. :)
    Falls gar keine Assemblerkenntnisse... bla bla bla...

    Und diesen Satz, den du am Ende nochmals eingefügt hast, gehört natürlich dort wieder raus. Es geht ja nur ums Sid Relocaten und nicht um die Playlist. ;)
    Wenn du das gemacht hast, kann mein Posting gelöscht werden.

    Zum Thema Playlist anpassen, kannst du, wenn du magst, auch noch meinen deutlicheren Hinweis hier reinschreiben, dass man Shift + Backspace drücken muss b8 00 eingibt und man dann nochmals Shift + Backspace drücken muss, damit die nächste Zeile auch gleich angepasst wird. Jetzt mit F7 und ESC (Run Stop) raus.

    Wie gesagt, nur wenn du magst. ^^

    Danke HOL2001! :thumbsup:
  • Wenn ich das richtig in Erinnerung habe, dann sind das knapp über eine Minute ohne Playlist Loops. Mit eingebauten Loops und Playlist Anpassungen sowie Spielereien mit der FPS Abspielgeschwindigkeit, kann man die Spielzeit deutlich verlängern. Gutes Beispiel für eine wahnsinns Playlist Anpassung wäre das Farmsong Nuvie. :rolleyes: :anonym
  • In der Playlist kann man nur die Reienfolge der Bilder ändern.
    Man hat nur einen SID für das ganze Nuvie. Beim Sid kann man nur die Länge und den Startpunkt einstellen.
    Ein Nuvie besteht aus max. 768 einzel Bildern. Die mit max. 12.5 fps dann abgespielt werden.

    Gesendet von meinem LG-P500

    DoReCo #60 - SA, 30.03.2019 UM 10:00
    RCF im HNF - Wir alle kommen ins Museum
  • Du mußt am Anfang der Playliste folgendes einfügen:

    bf 00

    Damit werden die Bilder gaaaanz langsaaaam abgespielt.

    Ist es zu langsam, statt "f" kleinere Werte eingeben.
    Die Geschwindigkeit geht von 3 bis f.
    3 ist das schnellste und f das langsamste!
    Also 3;4;5;6;7;8;9;a;b;c;d;e;f sind möglich.

    Um am Anfang was einzufügen, muss man mit dem Cursor ganz am Anfang stehen.
    Dann drückt man 2x "SHIFT+BACKSPACE" (Im Vice)
    Dann sollte 00 00 eingefügt werden.
    Dies wird dann mit z.B. mit bf 00 überschrieben!

    DoReCo #60 - SA, 30.03.2019 UM 10:00
    RCF im HNF - Wir alle kommen ins Museum

    The post was edited 1 time, last by war64burnout ().