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!! - 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:
http://www.virtualdub.org/
http://csdb.dk/release/?id=93314 --> zumindest mufflon-1.0-win32.zip
http://csdb.dk/release/?id=100031
http://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:
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.
http://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:
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)
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:
Das jetzt noch speichern mit Monitorbefehl
und fertig ist der Lack, es sei denn man braucht noch einen SID-Header.
Den kriegt man leicht mit SIDEdit erstellt
http://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:
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.