CPCWiki forum

Deutsches CPC-Forum => Programmierung => Topic started by: Fessor on 13:18, 30 August 15

Title: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 13:18, 30 August 15
Anbei mal, woran ich in den Wintern der letzten Jahre so rumgetüftelt habe.

Das ganze ist noch in der Phase "make in run". Gesichert ist eigentlich nur, dass es mindestens 128kb-RAM brauchen wird. Über die Speicheraufteilung bin ich noch am Grübeln. Momentan halte ich die Tiles in der Speichererweiterung, und die einzelnen Abschnitte der Welt werden bei Bedarf von der Disk gestreamt (direkter Sektorenzugriff und fest einkodierte Adressierung). Da mir das auf Original-HW nicht sehr materialschonend erscheint bin ich am überlegen, ob ich nicht die 64k-Worldmap in die Speichererweiterung lege und die Tiles in den normalen RAM. Womit mir dort allerdings schon wieder 16k blockiert wären...

Die Erfahrungen aus dem Spieleumfragethread über die Dauer etc. kann ich bestätigen, da es ein ziemlicher K(r)ampf war, die Informationen zusammenzutragen und reichlich Vorarbeit erforderte. Konvertierung der Daten von PC-CGA-Format ins CPC-Grafikformat. RLE-Decomplessor etc.

Es ist eine ziemlich fieselige Umsetzung von veröffentlichten C64-Dissassemblys von Ultima IV - Tech Info (http://paradroid.automac.se/u4/tech/files.html) mittels einer z80/6502-Vergleichstabelle der Befehle. (Wobei ich nie gedacht hätte, dass der Line-of-Sight-Alghoritmus auf Anhieb funktioniert) sowie einer Reassemblierung der Atari-ST Version (mit TT-Digger und DesertDrain). Der 68000er-Code sieht nach einem ziemlich direktem Port der 8-Bit-Versionen aus, während Ultima 5 schon in einer Hochsprache geschrieben sein muss.
Allerdings trage ich mich hier noch mit der Überlegung, da mixed-Mode-Spiele (Basic mit RSX-Erweiterung für zeitkritische Dinge) wie Pirates nicht unüblich sind, den Code umzuschmeissen und die Bildschirmdarstellung durch RSX erledigen zu lassen und die Spiellogik ansonsten durch Basic zu erledigen.

Da fehlt mir allerdings noch die zündende Idee, wie die Grafik da am laufen zu halten wäre. Die Darstellung müsste ich ja irgendwie an eine Interruptroutine auslagern, damit die Grafik animiert bleibt und trotzdem Basic nutzen zu können. Hach... das ist alles nicht so einfach... ;)
Von Sound und Musik ganz zu schweigen. An die Music der Atari-Version komme ich nicht ran, da ich den Player nicht wirklich verstehe. Ich wüsste auch nicht zu sagen, wieviel Performance der Arkos Player schlucken würde, wenn ich den einbauen würde und versuche irgendwie aus den im WWW vorhandenen Midi-Tracks  Arkos-Module zu bauen. Sound und Music liegt somit erstmal auf Eis.

So, was macht der Code, abgesehen davon, ziemlich chaotisch auszusehen (ich muss bei Gelegenheit mal Aufräumen und fertige Teile in eigene Files tun). Ein Großteil der Programmroutinen, die Leben in die Welt bringt sind umgesetzt aber noch nicht scharfgeschaltet, da noch etliches an Subroutinen fehlt. So durchläuft das Programm momentan nur eine kleine Schleife. ;)

Viel zu tun, ausser mit den Cursortasten auf der Oberwelt umherzulaufen und mit Q das Programm zu beenden gibts daher noch nicht. Aktualisiert werden eigentlich nur die Monde und Teile der Umwelt. Die Moongates werden auch schon dargestellt, haben aber noch einen Bug in der Adressermittlung weswegen sie beim Scrolling ihre Darstellungsposition verlassen. Traveling ist noch nicht möglich.

Letzte Codingschritte umfassten eigentlich nur den Einbau der Speicherverwaltungsroutinen um das Tileset aus den ersten 16KB der Speichererweiterung auszulesen.
Als nächsten Schritt wollte ich mal gucken, Routinen einzubauen um Städtefiles einzulesen und in ihnen Herumwandern zu können.

Auf der Disk habe ich daher auch Tools abgespeichert um die Speicherbuffer analysieren zu können ob die Daten auch richtig von der Disk eingelesen wurden.
TILEMAP.BAS stellt mir daher hier die vier 256-Bytes-Buffer dar für die vier 16x16-Maptiles der Oberwelt, MAP3232.BAS das gleiche bei Organisation in 32x32-Tiles für die Stadtkarten.

Mal gucken, wie sich das Projekt noch so entwickelt, da ja doch noch eine ganze Menge zu tun ist. Intro, Charaktergenerierung, Dungeons, Sound und Musik, Battlescreens, Story & Questverwaltung etc...

Hängt immer davon ab, wie ich Zeit, Lust und Laune finde...
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: TFM on 00:47, 31 August 15
Sauber! Ich hoffe Du machst damit weiter.  :)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 03:08, 01 October 15
(http://www.en.kolobok.us/smiles/artists/fool/ura1.gif)
Nach mehreren Tagen tüftelei ist es mir gelungen den Musicplayer der Atari ST-Version von MC68k nach Z80 zu portieren.  (http://www.en.kolobok.us/smiles/artists/fool/sharm.gif)

Leider noch WIP, da die Musik nach mehreren Takten aus dem Ruder läuft.
Was meine liebste Fehlerkategorie ist; irgendein schwer lokalisierbarer Wurm in der Logik. Sowas hab ich am gernsten, das mag ich am liebsten. In den Musikdateien sind Platzhalterbytes die zur Laufzeit mit Pointern für Listenverkettungen belegt werden und irgendwo im fortlaufendem abspielen scheinen da einige aus dem Ruder zu laufen...  (http://www.en.kolobok.us/smiles/artists/fool/cry2.gif)

Interessant ist, dass der Atari-Player irgendwie auf dem Apple-Original beruhen muss, da Registerdaten für einen zweiten Soundchip erstellt werden
(für Mockingboards mit zwei Soundchips) und die Musikdateien der Apple-Version verwendet werden, welche auf sechs Stimmen ausgelegt sind.
Die Frequenz-Lookuptable ist auch aufgespalten in eigene Daten für die LSB und MSB was beim 68000er eigentlich nicht nötig gewesen wäre.
Der Aufwand, Routinen für Playcity einzubauen, dürfte sich damit in sehr überschaubaren Grenzen halten.

Langsam und stetig nimmt das Projekt Formen an. Mittlerweile kann man Städte betreten und mit den Moongates umhereisen. Die "große" Programmschleife ist  scharfgeschaltet auch wenn noch kein weiteres Kommando funktioniert und nur Platzhalter aufgerufen werden. Beim Code werde ich wohl noch weiter umstrukturieren müssen, da ich befürchte, dass mir der Speicher ausgeht je weiter ich vorankomme. Der Player samt einer Datei schlucken auch schon gleich mal wieder 6kb...

Uppss... doch schon so früh... (http://www.en.kolobok.us/smiles/artists/fool/zzz.gif)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Ygdrazil on 09:18, 01 October 15

Hi!


Sounds like a real nice project.. Please continue!  :)


/Ygdrazil

Quote from: Fessor on 13:18, 30 August 15
Anbei mal, woran ich in den Wintern der letzten Jahre so rumgetüftelt habe.

Das ganze ist noch in der Phase "make in run". Gesichert ist eigentlich nur, dass es mindestens 128kb-RAM brauchen wird. Über die Speicheraufteilung bin ich noch am Grübeln. Momentan halte ich die Tiles in der Speichererweiterung, und die einzelnen Abschnitte der Welt werden bei Bedarf von der Disk gestreamt (direkter Sektorenzugriff und fest einkodierte Adressierung). Da mir das auf Original-HW nicht sehr materialschonend erscheint bin ich am überlegen, ob ich nicht die 64k-Worldmap in die Speichererweiterung lege und die Tiles in den normalen RAM. Womit mir dort allerdings schon wieder 16k blockiert wären...

Die Erfahrungen aus dem Spieleumfragethread über die Dauer etc. kann ich bestätigen, da es ein ziemlicher K(r)ampf war, die Informationen zusammenzutragen und reichlich Vorarbeit erforderte. Konvertierung der Daten von PC-CGA-Format ins CPC-Grafikformat. RLE-Decomplessor etc.

Es ist eine ziemlich fieselige Umsetzung von veröffentlichten C64-Dissassemblys von Ultima IV - Tech Info (http://paradroid.automac.se/u4/tech/files.html) mittels einer z80/6502-Vergleichstabelle der Befehle. (Wobei ich nie gedacht hätte, dass der Line-of-Sight-Alghoritmus auf Anhieb funktioniert) sowie einer Reassemblierung der Atari-ST Version (mit TT-Digger und DesertDrain). Der 68000er-Code sieht nach einem ziemlich direktem Port der 8-Bit-Versionen aus, während Ultima 5 schon in einer Hochsprache geschrieben sein muss.
Allerdings trage ich mich hier noch mit der Überlegung, da mixed-Mode-Spiele (Basic mit RSX-Erweiterung für zeitkritische Dinge) wie Pirates nicht unüblich sind, den Code umzuschmeissen und die Bildschirmdarstellung durch RSX erledigen zu lassen und die Spiellogik ansonsten durch Basic zu erledigen.

Da fehlt mir allerdings noch die zündende Idee, wie die Grafik da am laufen zu halten wäre. Die Darstellung müsste ich ja irgendwie an eine Interruptroutine auslagern, damit die Grafik animiert bleibt und trotzdem Basic nutzen zu können. Hach... das ist alles nicht so einfach... ;)
Von Sound und Musik ganz zu schweigen. An die Music der Atari-Version komme ich nicht ran, da ich den Player nicht wirklich verstehe. Ich wüsste auch nicht zu sagen, wieviel Performance der Arkos Player schlucken würde, wenn ich den einbauen würde und versuche irgendwie aus den im WWW vorhandenen Midi-Tracks  Arkos-Module zu bauen. Sound und Music liegt somit erstmal auf Eis.

So, was macht der Code, abgesehen davon, ziemlich chaotisch auszusehen (ich muss bei Gelegenheit mal Aufräumen und fertige Teile in eigene Files tun). Ein Großteil der Programmroutinen, die Leben in die Welt bringt sind umgesetzt aber noch nicht scharfgeschaltet, da noch etliches an Subroutinen fehlt. So durchläuft das Programm momentan nur eine kleine Schleife. ;)

Viel zu tun, ausser mit den Cursortasten auf der Oberwelt umherzulaufen und mit Q das Programm zu beenden gibts daher noch nicht. Aktualisiert werden eigentlich nur die Monde und Teile der Umwelt. Die Moongates werden auch schon dargestellt, haben aber noch einen Bug in der Adressermittlung weswegen sie beim Scrolling ihre Darstellungsposition verlassen. Traveling ist noch nicht möglich.

Letzte Codingschritte umfassten eigentlich nur den Einbau der Speicherverwaltungsroutinen um das Tileset aus den ersten 16KB der Speichererweiterung auszulesen.
Als nächsten Schritt wollte ich mal gucken, Routinen einzubauen um Städtefiles einzulesen und in ihnen Herumwandern zu können.

Auf der Disk habe ich daher auch Tools abgespeichert um die Speicherbuffer analysieren zu können ob die Daten auch richtig von der Disk eingelesen wurden.
TILEMAP.BAS stellt mir daher hier die vier 256-Bytes-Buffer dar für die vier 16x16-Maptiles der Oberwelt, MAP3232.BAS das gleiche bei Organisation in 32x32-Tiles für die Stadtkarten.

Mal gucken, wie sich das Projekt noch so entwickelt, da ja doch noch eine ganze Menge zu tun ist. Intro, Charaktergenerierung, Dungeons, Sound und Musik, Battlescreens, Story & Questverwaltung etc...

Hängt immer davon ab, wie ich Zeit, Lust und Laune finde...
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 11:36, 01 October 15
(http://www.en.kolobok.us/smiles/madhouse/dash2.gif)
Es ist zum verrücktwerden.
Im Simulator von Easy68k tuts der reassemblierte und extrahierte Code der ST-Fassung. Mit Devpac auf emulierter Hardware assembliert (Hatari), um zu testen, ob die Musik dort auch aus dem Ruder laufen würde, werden Variablen nicht initialisiert und der Atari schmeisst munter mit Bomben um sich (Bus-Error)...
Wär ja auch zu schön gewesen, wenns auf Anhieb klappen würde...

Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: TFM on 15:37, 01 October 15
Denk Dir nix, das ist ganz normal. Passiert mir auch hier und da. Im schlimmsten Fall mal in die Ecke stellen und eine Nacht darueber schlafen. Lass Dich nicht aergern. Das Projekt ist echt super!!!  :) :) :)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 23:39, 01 October 15

Hmmm... das wird zunehmend interessant mit diesen Musikdateien. Für Testzwecke habe ich ja einen Dump der Datei MUSO in den Code eingebaut.

vblMusic läuft, wie der Name schon andeutet beim Atari im VBL-Interrupt (bei mir momentan im endless-loop mit call &bd19 um eine Geschwindigkeitssynchronisierung hinzubekommen).
Ferngesteuert wird der Player über Statusbits (musicflag) und die Routine music_ctl die für das laden und initialisieren der Music-Daten zuständig ist.
Eingabeparameter sind:
0 - Music aus
1 .. 4, in (festgestellter) Abhängigkeit von der geladenen Datei, Nummer des Musikstückes
letzter Buchstabe des Dateinamens mit gesetztem 8 Bit (B,C,D,O,T) um die entsprechende Musikdatei zu laden. (MUSB, MUSC, MUSD, MUSO oder MUST)

Langer Rede, kurzer Sinn, das im Player aufgerufene Musikstück Nr 1 existiert in der verdrahteten Datei nicht oder nur fragmentarisch. Keine Ahnung, ob da einfach nur nicht aufgeräumt wurde oder ob da ein tieferer Sinn hintersteckt. Wird sich evtl im weiteren Verlauf der Entwicklung noch rauskristallisieren.

Eingangsparameter für call music_ctl auf ld a,4 geändert und schwupps, spielt anstandslos das Musikstück "Fanfare of Lord British", womit diagnostiziert werden kann, dass der Player in allerbester Ordnung ist und ich mich der weiterentwicklung zuwenden kann  ;D


Mockingboard Ultima Music (http://www.applevault.com/ultima/)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 00:30, 06 October 15
Hindernisse sind da um überwunden zu werden und derer gabs da reichlich.
Einen Amoklaufenden Exomizer der wild im Speicher dekomprimiert und Systemvariablen überschrieben hat,
Winapes Assembler der bei "WRITE" nicht auf den org-befehl vor angehängten Dateien achtet und die Daten im erzeugten File an anderer Stelle speichert als wo sie eigentlich hinassembliert werden sollen und dann doch noch ein vergessenes +1 bei einem Indexregister im Musikplayer und zwei fehlerhafte Zuweisungen von Quelle und Ziel. Da die Musik jetzt im Interrupt läuft wurden die eingebauten Delayvariablen auch angepasst. Die Abspielgeschwindigkeit ist nun so wie sie gehört. Die Soundfrequenzen wurden mit der Applefassung (LinApple und WinApple) verglichen und stimmen überein. Hier ist ein finaler Testplayer im ersten Post hochgeladen, bei dem man zu Programmanfang mit den Dateinamen und Stücknummern rumspielen kann, wenn man einfach nur an den Tunes interessiert ist.

Statt Exomizer verwende ich nun Demoniaks Packer von hier miscellaneous files for Amstrad computers (CPC, PCW and NC) by name (http://www.genesis8bit.fr/frontend/misc.php)

Im ersten Post im Threadanfang ist die aktuelle Fassung des Projekts hochgeladen. Ausgelegt auf Zwei-Laufwerksbetrieb. ultima4_2.dsk geht in Laufwerk A, u4_cities.dsk in Laufwerk B.
Was man in dieser Version nicht tun sollte und unweigerlich zum Crash führt: Moongate-Travel, wenn beide Monde Vollmond haben oder in Mondfinsternis sind; hier wird zu Locations gereist, die noch nicht integriert sind. Auch das Betreten von Schreinen und Dungeons führt zu Crashes, da auch hier noch die Routinen fehlen. Städte, Burgen, Dörfer etc. sind hingegen betretbar. Es werden nun alle Tasten abgefragt, von den Tastaturkommandos funktionieren bisher aber nur "E" für Enter und "Q" für Quit.




Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 23:26, 20 October 15
Zur Abwechslung mal ein Screenshot als Statusupdate.
In die Siedlungen ist Leben gekommen und erste Interaktionen mit den NPCs funktionieren auch schon.
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: TFM on 19:30, 21 October 15
Sieht vielversprechend aus!  :) :) :)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 22:13, 23 October 15
Zur Abwechslung mal eine kleine Experimentierphase mit dem Tileset vom ST, Gimp und Tiled (http://www.mapeditor.org/) eingelegt. Kommt eigentlich gar nicht mal so schlecht (Mit noch erforderlichem Feintuning hier und da) und nicht so Augenkrebsverursachend wie Mode 1-CGA...

(Eine Printroutine für Mode 0 mit 3-4 Pixel breiten Zeichen hat nicht zufällig jemand in der Schublade liegen?)


Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 22:57, 24 October 15
So, mal eine Menge Tiles im Stil von Ultima 5 überarbeitet und noch ein paar Farben ins Spiel gebracht wodurch die Grafik merklich an Tiefe gewonnen hat.




Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Devilmarkus on 00:47, 25 October 15
Man kann 40 Zeichen in Mode 0 mit einem CALL erzeugen und ein passendes Font dafür basteln.
Sieht dann so aus:

Irgendwo hab ich noch das Font und den Call...
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 14:59, 26 October 15
Quote from: Devilmarkus on 00:47, 25 October 15
Irgendwo hab ich noch das Font und den Call...
Das wäre Klasse.  :)

------------------------------------------------------------------

Anbei eine aktuelle WIP-Version mit Mode 0-Tileset und neuen Disk-Images, da sich etliche Dateinamen geändert haben. Die grobe Überarbeitung des Tilesets ist abgeschlossen und diese Version dient nun der Ermittlung bei welchen Tiles noch Detailarbeiten angebracht wären da manches erst im Live-Betrieb bei animierten Tiles auffällt.

Weitere aktivierte Kommandotasten:
V - Musik an/aus
     Der Player auf der Disk ist nicht auf neuestem Stand; beim Abschalten werden die Register des Soundchips nicht zurückgesetzt wodurch er auf dem letzten aktivem Ton hängenbleibt.
     (Ist gefixt, aber auf der Disk war kein Platz mehr)
O - Open (Momentan nur bei Türen)
      Bug: Statusbytes zum merken der letzten geöffneter Tür werden beim verlassen der Lokation nicht zurückgesetzt, so daß bei betreten einer anderen Lokation eine Türgrafik an der
      letztgemerkten Position dargestellt wird

T - Talk
     Ist Unvollständig und in Teilen buggy.
     - Von den Händlern lässt sich nur der Healer ansprechen, kaufen etc. lässt sich aber nix, da noch keine Playerrecords vorhanden sind. In der Adressierung
      der Lookuptable auf die Händler- und Shopnamen steckt auch noch ein Fehler.
         
     Bei Beantwortung von NPC-Fragen an den Player besteht Absturzgefahr. Aggressive NPCs, wie Nate in Magincia, kommen auf einen zugerannt und triggern den Combat-Mode (fehlt noch, ist aber
     ein zuverlässiger Einsprungpunkt für die Entwicklung ;) )
     Die Sonderbehandlung für Castle British fehlt, weswegen hier niemand mit einem sabbeln will.
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Devilmarkus on 19:38, 26 October 15
Auf die Schnelle:
MODE 1:CALL &BD1C
Gibt MODE 0 wieder, aber mit 40 Zeichen.
Font muss ich noch suchen...

In Assembler müsste das in Etwa so aussehen:
ld a,0
call &bd1c
ret
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 20:26, 26 October 15
Super, der Call funktioniert.
Quote from: Devilmarkus on 19:38, 26 October 15
Font muss ich noch suchen...
Hab ich wohl schon gefunden, beim Googeln nach dem Call ;)
Workshop: How to make a 3 coloured Font for BASIC? (http://www.cpcwiki.eu/forum/programming/workshop-how-to-make-a-3-coloured-font-for-basic/)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Devilmarkus on 20:30, 26 October 15
Prima...
Wusste ich schon gar nicht mehr, dass ich das mal geposted hatte...
Hoffe, Du kannst damit was Anfangen ;-)
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 22:36, 26 October 15
Ich denke schon. Die Attachments sind zwar nicht mehr vorhanden, aber vom Grundsätzlichen her... die Werte der Screenbitmap werden in die Zeichenmatrix reinkopiert.

*edit*
In nem anderen Thread ist es aber vorhanden
FontGen - Basic Tool zum Erstellen von "Fonts" (http://www.cpcwiki.eu/forum/listings/fontgen-basic-tool-zum-erstellen-von-'fonts'/)

*/edit*
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Devilmarkus on 23:48, 26 October 15
Also ich hab das DSK da eben runtergeladen... Das Beispiel DSK mit dem Font drauf?!?

Edit: Achnee, hatte nur den BASIC Code schnell geprüft...
Nimm den doch, kannst ja dann aus dem RAM als Binary speichern...
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 01:10, 27 October 15
Mit Fonterstellung bin ich fertig, das hat super geklappt. :)

Ich liebe es, wenn eine Arbeit eine andere nach sich zieht. Dieser Mode-Trick hat wirklich seine Tücken, da die PENs weiterhin die Einschränkungen von Mode 1 haben.
Da ist dann die Wahl zwischen Pest und Cholera. Entweder mache ich mir die Arbeit, die Farbpalette etc umzusortieren, damit ich die abgerundeten Ecken aus dem Zeichensatz heraus mit der richtigen Farbe printen kann (und auch die Monde) oder, ich "Poke" das direkt in den Bildschirmspeicher (wozu ich mir natürlich erstmal die Bytes erstellen muss). Arbeit oder Arbeit...
Da das Tileset eh noch nicht ganz fertig ist und seit dem Upload etliche Tiles überarbeitet worden sind bietet sich erste Variante an. Für zumindest die abgerundeten Ecken ist das die einfachere Lösung. Die Monde stehen mir jetzt viel zu dicht beieinander, da werde ich die Daten künftig direkt in den Bildschirmspeicher schreiben um da ein bischen Abstand zwischen die beiden zu bekommen.

Irritierender ist die Draw-Funktion, da ist ja alles durcheinander. Das hat ja schon fast was vom Apple 2 bei dem die Position des Bildschirmpunktes seinen Farbwert bestimmt. Da werd ich mir wohl mal ne Linedraw-Routine runterladen müssen. Oder ich muß bei den waagerechten Linien eine, noch auszutüftelnde, Maske auf die Linie legen.
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Devilmarkus on 18:31, 28 October 15
Wieso erstellst Du Dir nicht da auch die Symbole für die Linien?
Dann kannst Du sie ja mit PRINT CHR$(xxx) relativ schnell Zeichnen?
Und Du kannst, auf den PENs von MODE 1 basierend, auch mehrfarbige "Tiles" als Chars ablegen.
Dürfte sogar schneller klappen, als mit PLOT und DRAW zu Arbeiten?
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 22:11, 28 October 15
Das mit dem Multicolor muss ich geflissentlich übersehen oder verdrängt haben; auf diese Idee war ich gar nicht gekommen. ;)

Da ich die Rahmen schon mit scr_flood_box zeichnete, habe ich für die Maskenlinien weitere Koordinatensätze in der Koordinatentabelle angelegt. Aber deine Methode dürfte die einfachere sein, da man sich das Errechnen der Speicherzelle und das austüfteln der Kodierung spart.

Da das Multicolor schon für die abgerundeten Ecken draufging und mir die Monde "geprintet" zu dicht beieinander standen, habe ich diesen Darstellungsteil geändert und die Mondgrafiken werden nun direkt in den Bildschirmspeicher geschrieben. Dürfte auch nicht unwesentlich ein paar Takte Prozessorzeit sparen, da die Bitmaske vorher in die Zeichenmatrix kopiert wurde und die Monde dann mit Print an die Stelle gebracht worden sind.
Da ich für den Multicolor-Zeichensatz Farben verschieben musste habe ich auch ein aktuelles Tileset eingespielt. Mit dem grafischen Teil bin ich hochzufrieden. Da ich fürs weitere vorgehen unbedingt einen "Charakter" brauche werde ich mich als nächste mal ans Intro+Charaktergenerierung ranmachen.



Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: ukmarkh on 16:49, 09 February 16
I'm not sure how to run those BIN, ULT, YEW and TLK files... Could you provide screenshots please? 
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: ukmarkh on 16:51, 09 February 16
Quote from: Fessor on 23:26, 20 October 15
Zur Abwechslung mal ein Screenshot als Statusupdate.
In die Siedlungen ist Leben gekommen und erste Interaktionen mit den NPCs funktionieren auch schon.


Please don't use this crappy resolution unless your life depends on it...  ;)  Mode 0 is our only hope!
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 17:44, 09 February 16
In Post #13 is an (outdated) Version which marked the begin of the Transition to Mode 0.

The actual assembled binary doesn't fit onto the disk and i wasnt in the mood to reorganize the files on the diskimages so there is no download for the actual version as shown in the screenshot three posts above.
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: SRS on 20:36, 13 February 16
Gefällt mir :)

Sieht auch so aus, als wäre CPCTELERA da gut für geeignet, oder irre ich mich ?
Title: Re: Mein Winterprojekt der letzten Jahre: U4
Post by: Fessor on 01:01, 14 February 16
Als ich damit angefangen habe gabs CPCTelera noch nicht. Momentan ist alles 100% Assembler; wollte eigentlich nur mal meine Z80-Kenntnisse auffrischen und erweitern und so fing das damit an ein Tile aus dem Speicher in den Bildspeicher zu kopieren, aus dem Tile wurde ein Tileset und auslesen aus einer Map und animierter Darstellung und dann kam irgendwie eines zum anderen... ;)

Mit CPCTelera habe ich mich noch nicht weiter beschäftigt, da es aber gute Funktionen für Tilemaps hat scheint es für derartige Programme gut geeignet zu sein.

Powered by SMFPacks Menu Editor Mod