Author Topic: Mein Winterprojekt der letzten Jahre: U4  (Read 4134 times)

0 Members and 1 Guest are viewing this topic.

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Mein Winterprojekt der letzten Jahre: U4
« on: 15: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 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...
« Last Edit: 01:58, 06 October 15 by Fessor »

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1976
  • Likes Given: 4650
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #1 on: 02:47, 31 August 15 »
Sauber! Ich hoffe Du machst damit weiter.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #2 on: 05:08, 01 October 15 »

Nach mehreren Tagen tüftelei ist es mir gelungen den Musicplayer der Atari ST-Version von MC68k nach Z80 zu portieren. 

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... 

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...
« Last Edit: 05:31, 01 October 15 by Fessor »

Offline Ygdrazil

  • Global Moderator
  • 464 Plus
  • *****
  • Posts: 477
  • Country: dk
  • Liked: 44
  • Likes Given: 238
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #3 on: 11:18, 01 October 15 »

Hi!


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


/Ygdrazil

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 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...

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #4 on: 13:36, 01 October 15 »

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...


Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1976
  • Likes Given: 4650
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #5 on: 17: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!!!  :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #6 on: 01:39, 02 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

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #7 on: 02: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

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.





Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #8 on: 01:26, 21 October 15 »
Zur Abwechslung mal ein Screenshot als Statusupdate.
In die Siedlungen ist Leben gekommen und erste Interaktionen mit den NPCs funktionieren auch schon.

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1976
  • Likes Given: 4650
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #9 on: 21:30, 21 October 15 »
Sieht vielversprechend aus!  :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #10 on: 00:13, 24 October 15 »
Zur Abwechslung mal eine kleine Experimentierphase mit dem Tileset vom ST, Gimp und Tiled 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?)



Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #11 on: 00:57, 25 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.





Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1011
  • Likes Given: 926
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #12 on: 02: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:
[youtube]http://www.youtube.com/watch?v=cdjVdnfowR4[/youtube]
Irgendwo hab ich noch das Font und den Call...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #13 on: 15:59, 26 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.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1011
  • Likes Given: 926
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #14 on: 20: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:
Code: [Select]
ld a,0
call &bd1c
ret
« Last Edit: 20:41, 26 October 15 by Devilmarkus »
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #15 on: 21:26, 26 October 15 »
Super, der Call funktioniert.
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?

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1011
  • Likes Given: 926
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #16 on: 21:30, 26 October 15 »
Prima...
Wusste ich schon gar nicht mehr, dass ich das mal geposted hatte...
Hoffe, Du kannst damit was Anfangen ;-)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #17 on: 23: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"
FontGen - Basic Tool zum Erstellen von "Fonts"

*/edit*
« Last Edit: 23:48, 26 October 15 by Fessor »

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1011
  • Likes Given: 926
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #18 on: 00:48, 27 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...
« Last Edit: 01:17, 27 October 15 by Devilmarkus »
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #19 on: 02: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.
« Last Edit: 02:21, 27 October 15 by Fessor »

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1011
  • Likes Given: 926
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #20 on: 19: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?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #21 on: 23: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.




Offline ukmarkh

  • 6128 Plus
  • ******
  • Posts: 1.417
  • Country: england
    • Classic Replay
  • Liked: 301
  • Likes Given: 75
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #22 on: 17:49, 09 February 16 »
I'm not sure how to run those BIN, ULT, YEW and TLK files... Could you provide screenshots please? 

Offline ukmarkh

  • 6128 Plus
  • ******
  • Posts: 1.417
  • Country: england
    • Classic Replay
  • Liked: 301
  • Likes Given: 75
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #23 on: 17:51, 09 February 16 »
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!

Offline Fessor

  • CPC6128
  • ****
  • Posts: 199
  • Country: de
  • Liked: 164
  • Likes Given: 40
Re: Mein Winterprojekt der letzten Jahre: U4
« Reply #24 on: 18: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.