Eigene CD³² Compilations erstellen... |
[ 1. Teil - Version 1 von Michael Stum ] |
Vorwort |
Da ich jetzt auch ein CD32 habe will ich natürlich die ganzen Amiga Spiele auch auf dem CD32 spielen. Natürlich muss man dabei bestimmte Vorraussetzungen beachten: |
# Ein CD32 basiert auf Kickstart 3.0 Aus diesem Grunde fallen einige alte Spiele (erstmal!) raus die ja nur unter Kickstart 1.3 richtig liefen. # Ein CD32 hat weder Tastatur noch Maus! Alles muss also mit dem Joypad realisierbar sein. Glücklicherweise gibt es im CD32 Developer Paket ein Programm um die Maus per Pad zu emulieren (näheres dazu später!) # Ein CD32 hat kein Diskettenlaufwerk! DF0: existiert nicht, demzufolge wird es ein Problem Spielstände zu speichern (Hierzu auch später noch mehr) |
Ausgehend davon werde ich im folgenden 4 Spiele auf CD brennen und ein Menü einblenden in dem man per Knopfdruck wählen kann welches Spiel man will. |
Benötigte Software |
Folgende Software werde ich hier verwenden: |
# Die 4 Spiele Zak McKracken, Great Courts 2, Sensible World of Soccer, Defender of the Crown. Diese 4 Spiele wurden willkürlich ausgesucht. Das waren halt die ersten 4 Spiele die ich auf Anhieb gefunden habe (ok, erst wollte ich Turrican 1-3 nehmen, aber das sind leider NDOS Disketten :( ). # CD32 Joypad Treiber Einmal ist da das Paket "CD32goodies.lha" aus dem Aminet. Es enthält das extrem nützliche Tool "Joypad" mit dem man die Joypad Buttons abfragen kann. Zum anderen ist da das Programm "JoyMouse" aus dem CD32 Developer Paket. Es macht aus dem CD32 Joypad eine Maus! Das Steuerkreuz ist zum Bewegen, Roter und Blauer Knopf sind Linke und Rechte Maustaste. # Sonstige Tools "Assign" aus dem C: Verzeichnis einer Workbench 3.0 (oder höher) ist sehr Wichtig! |
"FreeAnim" habe ich von der FEARS CD32 Version. Dieses Programm macht im wesentlichen nur eines: freeanim.library öffnen und schliessen, also die Animation beenden. Der Vorteil gegenüber RMTM liegt darin das FreeAnim ein CD32 Tool ist und die Konsole NICHT im CDTV Modus neu bootet! |
Die Verzeichnisstruktur |
Ok, jetzt wo ich alle Programme habe kann ich mich an die Aufteilung machen. Ich habe also ein neues Verzeichnis CD32TEST angelegt und dort folgende Verzeichnisse angelegt.
|
Ins C Verzeichnis habe ich die Programme "Assign", "FreeAnim", "JoyMouse" und "Joypad" kopiert. Im S Verzeichnis liegt nur die Startup-Sequence. Im DOTC Verzeichnis sind 2 Unterverzeichnisse "Defender1" und "Defender2". Hier habe ich einfach die beiden "Defender of the Crown" Disketten reinkopiert. In die 3 anderen Verzeichnisse (SWOS, GC2 und ZAK) habe ich jeweils die 3 anderen Spiele einfach so reinkopiert - einfach alle Disketten in die Verzeichnisse kopieren und ggf. existierende Dateien überschreiben. |
Die Startup-Sequence |
In der Startup-Sequence müssen folgende Dinge abgearbeitet werden: |
Hier erstmal die Startup-Sequence, Erklärungen folgen später: |
;CD32 Startup-Sequence ;Games: ;Sensible World of Soccer ;Defender of the Crown ;zak McKracken ;Great Courts II ;Assign DF0: to the CD32 - just in case ;ASSIGN DF0: CD0: ;Display the Menu echo "-----------------------------------------" echo " CD32 Game Collection Test 1" echo "-----------------------------------------" echo "Press RED for SENSIBLE WORLD OF SOCCER" echo "Press BLUE for DEFENDER OF THE CRWON" echo "Press GREEN for GREAT COURTS II" echo "Press YELLOW for ZAK MCKRACKEN" ;FreeAnim frees the Animation freeanim ;LOOP until a Joypad Button is pressed LAB loop joypad QUIET RED ; Sensi IF WARN ASSIGN SWOS: CD0:SWOS ASSIGN SWOS2: CD0:SWOS CD SWOS: ssboot swos ENDIF joypad QUIET BLUE ;Defender IF WARN ASSIGN Defender1: CD0:DOTC/Defender1 ASSIGN Defender2: CD0:DOTC/Defender2 run <>>NIL: joymouse CD Defender1: defender ENDIF joypad QUIET GREEN ;Great Courts II IF WARN ASSIGN Great_Courts_II: CD0:GC2 CD Great_Courts_II: Great_Courts_II ENDIF joypad QUIET YELLOW ; Zak McKracken IF WARN ASSIGN "Zak 1:" CD0:zak ASSIGN "Zak 2:" CD0:zak run <>NIL: joymouse CD "Zak 1:" Zak ENDIF SKIP loop BACK |
So; sieht ja ganz nett aus :-) Von oben nach unten: Erstmal mache ich einen ASSIGN DF0: CD0: Das ist nur zur Vorsicht falls ein Spiel unbedingt auf DF0: zugreift. Dies hat aber 2 Nachteile: Dann gebe ich das Menü aus. Das geht über ECHOs ganz zweckmässig, wäre aber grafisch natürlich viel schöner :-) Anschliessend rufe ich FreeAnim auf. Das mache ich erst nach dem Menü damit man am Bildschirm nicht sieht wie das Menü ausgegeben wird sondern damit es "einfach da" ist. Anschliessend folgt eine Endlosschleife die immer nur die 4 Buttons abfragt. Joypad QUIET YELLOW gibt also Returncode 5 (WARN) wenn der Gelbe Knopf gedrückt ist. QUIET unterdrückt Bildschirmausgaben. Wenn also zum Beispiel der Gelbe Knopf gedrückt wurde (IF WARN) dann werden die beiden Zak McKracken Disketten auf mein zak Verzeichnis ASSIGNed. Anschliessend wird das Programm JoyMouse gestartet damit das CD32 Joypad wie eine Maus arbeitet. Dann geht der Spass los und wir befinden uns im Büro von Zak McKracken's Chef :-) |
Verbesserungen |
Meine Vorgehensweise hat einen Vorteil: Sie funktioniert! Aber sie hat VIELE Nachteile: Auf jedenfall wird jetzt folgendes zu tun sein: Da der Joypad Quelltext offenliegt werde ich hier Modifikationen vornehmen damit der Check SOFORT erfolgt sobald ein Joypad Knopf gedrückt wird. Dann werde ich (irgendwann!) mal versuchen, das Non-Volatile RAM des CD32 als Spielstandersatz zu nehmen. Das wird aber mit Abstand am meisten Arbeit machen. Kompatiblität zum CDTV kann ich nicht sicherstellen. (Ausser jemand schenkt mir ein unmodifiziertes CDTV zum Testen :)) |
Die CD erstellen |
So, jetzt wollen wir die CD ja Brennen. |