Fahrt 002

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

C64 StudioEin eigener Zeichensatz

Bisher haben wir unsere ‚Grafiken‚ mit Hilfe des Standardzeichensatzes erstellt. Nun wollen wir aber eine etwas detailliertere und farbenfrohere Anzeige, dazu gäbe es zum einen natürlich die Möglichkeit mit Bitmaps zu arbeiten. Da diese aber sehr viel Speicher benötigen und für ein ‘schnelles‚ Spiel zu langsam sind, wollen wir diesmal einen eigenen Zeichsatz verwenden.
Falls ihr euch für BITMAPs interessiert, könnt ihr ja mal einen Blick auf ‚VIC-II: Grafikmodes – BITMAP (Hi-Res)‚ oder ‚VIC-II: Grafikmodes – BITMAP (Multi-Color)‚ werfen.

Benutzt als Basis bitte den Dowload aus ‚Fahrt 001‚.

 

Für unser Spiel, schaut euch bitte vorher ‚VIC-II: Eigener Zeichensatz‚ an!

 

Wir werden einen Multi-Color-Zeichensatz verwenden und beginnen damit unsere Fahrtstrecke zu entwickeln. Dafür benötigen zunächst mal einen etwas unregelmäßtigen Untergrund. Dazu starten wir den Zeichsatz-Editor. Hier ist es nun eigentlich egal, welchen Editor ihr verwendet. Als Erstes bietet sich der aus dem hier verwendeten C64-Studio an (den benutzen wir auch gleich), aber man kann auch den Editor vom CBM prg Studio oder einen anderen nehmen. Wichtig ist nur, dass wir die Daten später als Binär-Datei speichern können, um diese in unser Programm einzubinden. Dabei kann es evtl. notwendig sein die binären Daten mit angepassten Funktionen zu verarbeiten.

Um jetzt einen eigenen Zeichensatz mit dem C64 Studio zu erzeugen, klickt am besten mit der rechten Maustaste im ‚Solution Explorer‚ auf den ersten Eintrag (den Projektnamen) und hangelt euch dann durch die Menüs: Add -> New -> Character Set.

Zeichensatz hinzufügen
Zeichensatz hinzufügen

Gebt anschließend im sich öffnenden Dialog den Namen für den Zeichensatz ein (ich nehme rover.charsetproject). Als Belohnung erhaltet ihr einen leeren Zeichensatz.

Der Zeichnsatzeditor
Der Zeichnsatzeditor

Wir könnten jetzt natürlich von null anfangen, aber lasst uns doch den Standardzeichensatz als Basis nehmen. Wechselt dazu im Zeichensatzeditor zum Tab Project und klickt dort, auf der rechten Seite unter Import, auf den Button Default Uppercase.

Standard-Zeichensatz laden...
Erst den Standard-Zeichensatz laden…

Kehrt ihr dann zum ersten Tab Character zurück, dann seht ihr den uns bekannten C64-Zeichensatz.

Der Standard-Zeichensatz des C64.
… und schon können wir den Standard-Zeichensatz des C64 bearbeiten.

Um möglichst einfach auf Buchstaben, Zahlen und Satzzeichen zugreifen zu können schlage ich vor, wir belassen die vorhandenen Zeichen bis zum  ? an ihrer angestammten Position und verwenden den Rest für unsere eigenen Grafikzeichen. Natürlich können wir das Aussehen der Buchstaben usw. ändern, nur sollten die Zeichen weiter an der bisherigen Stelle bleiben. Ihr könnt Buchstaben und Zahlen durchaus beliebig im Zeichensatz platzieren, müsst dann aber darauf achten, dass ihr die Zeichen im Assembler bei Verwendung von !TEXT auf die richtigen Positionen im Zeichsatz ‚mappt‚. Dazu dient beim C64-Studio bekanntlich !CONVTAB. Wir sparen uns diese Arbeit, wie eben erwähnt, aber.

Ich habe nun erstmal alle überflüssigen Zeichen gelöscht, den Multicolor-Modus aktiviert und die Farben voreingestellt. Da wir nur einen sehr einfachen Zeichsatz verwenden und die Farben später im Programm setzen, ist es hier nicht wirklich wichtig, welche ihr im Editor benutzt.

Grundeinstellungen
Grundeinstellungen

Der rot markierte Haken wirkt sich nur aufs aktuelle Zeichen aus. Damit ihr diesen nicht laufend neu setzen müsst, könnt ihr mit dem ganz unten zu findenen Button Force Multicolor alle Zeichen umschalten.

Entwickelt nun einfach einige Bauteile für die Fahrtstrecke. Diese sollten sich später zu einer längeren Strecke zusammenbauen lassen.

Macht euch nicht zuviel Mühe: Wir wollen hier erstmal nur ein Beispiel erstellen.

Die ersten Bauteile
Die ersten Bauteile

Sobald ihr mit eurer Arbeit zufrieden seid, speichert diese über den oben zusehenden Menüpunkt.

Leider bietet das C64-Studio bisher keine Möglichkeit den Zeichensatz direkt ins Programm einzubinden. Wir müssen diesen dafür extra in eine Binär-Datei exportieren.

Zeichsatz exportieren.
Zeichsatz exportieren.

Wechselt dazu zum Tab Project, klickt unter  Export auf  To File... und speichert die Datei im Projekt-Verzeichnis unter einem beliebigen Dateinamen (hier  rover.chr).

Nun wollen wir den Zeichsatz laden und eine Testausgabe vornehmen. Dazu ergänzen wir den vorhandenen Source rover.asm erstmal. Ich habe im letzten Beitrag eine Kleinigkeit vergessen! Wir wollten doch das BASIC-ROM ausblenden. Also müssen dies bei  main (am besten direkt vor dem  CLI) noch machen. Ergänzt das Programm um die folgenden drei Zeilen.

Falls ihr vergessen habt, was es mit der Speicherstelle  $01 auf sich hat, werft doch nochmal einen Blick in die ‚Kleine Hardwarekunde‚.

Jetzt machen wir hinter dem CLI und direkt vor der Endlosschleife JMP * weiter. Wir müssen den Multi-Color-Modus aktivieren und unsere Farben setzen.

Hier gibt es wohl keine Probleme.

Als vorläufig Letztes fügen wir noch den Aufruf für eine Funktion, die den Zeichensatz kopiert, hinzu.

Den Zeichensatz binden wir ganz unten ins Projekt ein. Aus Spaß fügen wir zwei Label hinzu, über die wir die Größe des Zeichensatzes berechnen.

Ihr müsst hier natürlich statt rover.chr ggf. den von euch verwendeten Namen für den Export des Zeichensatzes nehmen. Wir richten die Daten an einer Pagegrenze aus, damit unsere Kopierfunktion, wie geplant funktioniert und gleichzeitig aus Geschwindigkeitsgründen (die hier aber eigentlich zu vernachlässigen sind).

Wir kopieren hier aus Bequemlichkeit immer 256-BYTEs am Stück (dies ist auch der Grund, weshalb wir die Daten eben auf die Pagegrenze ausgerichtet haben). Selbst wenn wir nur einen 1BYTE großen Zeichensatz hätten, werden also 256-BYTEs kopiert. Wir legen im X-Register die Anzahl der 256-BYTE-Seiten ab. Diese berechnen wir einfach durch die Formel (charsetend-charsetstart)/256+1. Den Rest erledigt ein sich selbstverändernder Kopier-Block.

Startet ihr das Programm jetzt, dann hat sich die Anzeige geringfügig verändert.

Multi-Color & unser Zeichsatz.
Multi-Color & unser Zeichensatz.

Jetzt wollen wir den Bildschirm löschen, dazu fügen wir hinter jsr copycharset den Aufruf für unsere Löschroutine hinzu.

Die dazugehörige Funktion ist auch wieder sehr einfach:

Nun ist der Bildschirm zwar ‘sauber‚ aber auch langweilig. Wir wollen daher abschließend noch eine kleine Testausgabe einbauen. Dazu legen wir uns erstmal einige Steckendaten an, die wir direkt vor dem Zeichsatz einfügen.

Hier verwenden wir einfach die eben entworfenen Zeichen, um eine drei Zeilen hohe Fahrbahn zu erstellen. Macht euch auch hier nicht zuviel Arbeit, dies ist nur ein Beispiel. Das Ende der Daten kennzeichnen wir mit einer 0.

Jetzt brauchen wir natürlich noch eine Funktion, um die demoroad auf den Bildschirm zu bringen. Da auch dies nur ein kurzer Versuch ist, reicht diese Routine.

Auch hier seht ihr wieder die Vorteile, die die erweiterten Rechenmöglichkeiten des C64-Studios gegenüber dem CBM prg Studio bieten. Wir können so recht einfach unsere Ausgabe am unteren Bildschirm vornehmen. Das Kopieren sollte auch wieder selbsterklärend sein.

Jetzt noch vor JMP * den Aufruf der Testausgabe vornehmen

und schon ist das Programm startbereit.

So kann es mal aussehen.
So kann es mal aussehen.

Dies soll erstmal reichen. Wir haben hier die Grundlagen für den nächsten Schritt erarbeitet. Beim nächsten Mal legen wir endgültig unsere Strukturen fest und werden die Fahrtstrecke ‚zufällig‚ erstellen. Direkt starten könnt ihr das Programm wie gewohnt mit dem Java-Emulator (auch wenn es wenig zu sehen gibt). Außerdem gibt es wieder alles als


Schrott!!Naja...Geht so...Ganz gut...SUPER! (2 Bewertungen | Ø 5,00 von 5 | 100,00%)

Loading...


 

<<< zurück | weiter >>>

 

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

Schreibe einen Kommentar


Beachtet bitte, dass ich eure Kommentare erst manuell freigegeben muß, bevor sie auf der Seite erscheinen! Da ich nicht pausenlos am Rechner sitze, kann es schon mal etwas dauern, bis ein Kommentar für alle sichtbar ist.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam