Bitte melde dich an, um diesen Anhang zu sehen.
Das ist mit GoDot gemacht, 33x33. (Ein Mailto-Link)
Arndt
Bitte melde dich an, um diesen Anhang zu sehen.
Das ist mit GoDot gemacht, 33x33. (Ein Mailto-Link)
Arndt
Hier der Link zur Beschreibung des Bitte melde dich an, um diesen Link zu sehen..
Arndt
Ist das innerhalb eines Macros?
Das ist innerhalb eines !makro-Bereichs. Ich hab die "---" mal umbenannt in Textlabels. Dann geht's problemlos.
Arndt
Was ist hier nun wieder verkehrt?
Gemeldet wird mehrfach "Could not evaluate" (E1001). Die Fehlerstellen sind innerhalb einer Include-Datei, in der Makros stehen. Ein Beispiel:
Bitte melde dich an, um diesen Anhang zu sehen.
Arndt
Warum liest denn keiner meine Dokuseiten?
Da steht, was zu tun ist (und auch *womit*!)
Ich hab hier mal Christina Apfeltor als Beispiel...
Also, damit du einen interessanteren Ausschnitt von ihr ansteuerst, liest du also unter Bitte melde dich an, um diesen Link zu sehen.:
ZitatBei großen JPG-Bildern legt man vor dem Laden den gewünschten 320×200-Ausschnitt fest, indem man die linke (Left) und obere (Top) Einrückung (in Anzahl Kacheln, also Pixel/8) dorthin angibt.
Und *nach* dem Laden holst du das JPG-Bild - genau wie darkvision sagt - mit Bitte melde dich an, um diesen Link zu sehen. in den GoDot-Speicher, was du dann mit "Display" (links unten) zur Anzeige bringst. Allerdings werden JPG-Bilder eine reine Enttäuschung sein. Die in Hires anzuzeigen ist ein Verbrechen (der Lader heißt nicht umsonst JPG*Viewer*... - nur gucken, nicht anfassen...)! Am besten zum Konvertieren sind Bilder, wenn sie als GIF-Bilder vorliegen, möglichst gleich in der Größe 320x200.
Und für GIF brauch ich dann eines der DecodeGIF, nehme ich an.
Genau, das mit "Bitte melde dich an, um diesen Link zu sehen." am Ende des Namens erzeugt 16-Farbenbilder in Hires-Auflösung (aber nicht im Hires-*Format*, pro Kachel sind mehr als zwei Farben beteiligt). Das mit "64c" erzeugt die Vorlagen für IFLI-Bilder wie oben den Piepmatz (Darks Kohlmeise). Das dritte vergiss am besten (das war der Urahn der anderen beiden). Mit den beiden kannst du aber leicht monochrome (Hires-) Ergebnisse herstellen, indem du im Lader statt "Color" die Option "Gray 16" einstellst und danach entweder Bitte melde dich an, um diesen Link zu sehen. oder Bitte melde dich an, um diesen Link zu sehen. anwendest.
Sind da noch mehrere Module daran beteiligt außer dem Lader und ConvertJPEG ?
Ja, zum Beispiel die eben genannten. Außerdem noch Bitte melde dich an, um diesen Link zu sehen. und Bitte melde dich an, um diesen Link zu sehen.. Man müsste mal Videos machen, wie das geht. Leider hab ich keinen blassen Schimmer vom Videosmachen (allerdings, einen Bitte melde dich an, um diesen Link zu sehen. hab ich mir schon mal gesichert, man weiß ja nie).
Arndt
Das Bild sieht in IFLI so aus:
Bitte melde dich an, um diesen Anhang zu sehen.
Auf Hires heruntergebrochen dann so:
Bitte melde dich an, um diesen Anhang zu sehen.
Aber es wird dann nur so gerendert (wegen der Hires-Farbbeschränkungen) und vom GeoPaint-Saver dann auch so gespeichert:
Bitte melde dich an, um diesen Anhang zu sehen.
Monochrom wäre kein Problem. Oder so ein Bild nachpixeln.
Arndt
„Copying GoDot“ ist schon mal gut… ![]()
Arndt
muffi : Wie darkvision schon sagt, du musst ein Bild nach dem Laden in GoDot zuerst (in Hires) rendern, der Saver speichert das *gerenderte* Bild. Und klar, GeoPaint ist ein Hires-Programm, da ist nix mit viel Farben pro Kachel. Wenn du merkst, das gerenderte Bild sieht schei*e aus, dann brauchst du es gar nicht erst zu saven. Und, darkvision : nach dem Saven das Bild einfach neu rendern, dann ist der Pixelmüll wieder weg (ich hatte keinen anderen Platz zum Puffern).
Arndt
Kann das sein, dass das Ram-Limit 1764 das Problem ist
Oh, ich muss mal schauen, ob ich als Ziel in der REU die Bank hartkodiert habe (ich meine aber, es ist immer die vorletzte, wo die Bilder landen, sonst ist es Bank 6). Wird denn ein JPG ordentlich geladen? (Und hast du meine Anmerkung in der Doku gelesen? -> Juddpeg - das ist im JPG-Lader am werkeln - verlangt, dass im JPG die Metadaten entfernt werden, sonst lädt es immer nur das Vorschau-Icon!) In Post Bitte melde dich an, um diesen Link zu sehen. scheint allerdings der Speicher gar nicht erst mit einem Bild gefüllt worden zu sein. Kannst du mal das entsprechende Bild hier anhängen, dann weiß ich mehr dazu zu sagen. Und ganz allgemein: Mit GIF-Vorlagen kann man weitaus mehr erreichen, siehst du ja an meinen Beispielbildern in der Doku (die Links in Post Bitte melde dich an, um diesen Link zu sehen.).
Arndt
gibt es eine Möglichkeit, ein JPG oder GIF direkt in ein GeoPaint-Image zu konvertieren (im Zweifel auch über Zwischenschritte)? Könnte da GoDot von GoDot eine Hilfe sein?
Könnte.
Bitte melde dich an, um diesen Link zu sehen.
Bitte melde dich an, um diesen Link zu sehen.
Bitte melde dich an, um diesen Link zu sehen.
Bitte melde dich an, um diesen Link zu sehen.
Arndt
Ergänzend zum letzten Post Bitte melde dich an, um diesen Link zu sehen. die Doku zu Reactor TSB.
Arndt
Es ist soweit:
Reactor TSB ist release-fertig!
Bei "Reactor TSB" handelt es sich um einen Port den Simons'-Basic-Programms "Reactor 64" aus der Homecomputer 01/85. Abgesehen vom erforderlichen Basic besteht es aus drei logischen Teilen: Der Initialisierung von Zeichensatz und Sprites, der Bedienoberfläche und dem eigentlichen Spiel. Das Spiel selbst ist ein Maschinensprache-Programm (an $7a00), das in SB bzw. TSB per SYS aufgerufen wird (im Original eingebunden als Datazeilen im Hauptprogramm selbst, in TSB als - sehr viel schnellerer einmaliger Nachlader, was auch das Hauptprogramm enorm verkürzt hat). Das Original meldet sich mit einem rundum weißen Bildschirm so:
Bitte melde dich an, um diesen Anhang zu sehen.
Das mit den zwei Minuten ist ernst gemeint! Nach also zwei Minuten erscheint dann im Original ein Arbeitsbildschirm, der verdecken soll, dass sich der eigentliche Startbildschirm (Grafik) aufbauen muss. Die Zwischenanzeige sieht im Original so aus (links), der Startbildschirm dann so (rechts):
Bitte melde dich an, um diesen Anhang zu sehen. Bitte melde dich an, um diesen Anhang zu sehen.
Die TSB-Version nutzt den Zwischenbildschirm, um die TSB-Version anzukündigen und die Urheber zu nennen (wie ich finde, auch etwas "schöner", und auch: statt des eher zusammenhanglosen "CBM-64" ein bisschen mehr Info ![]()
![]()
Bitte melde dich an, um diesen Anhang zu sehen.
Danach erscheint die Bedienoberfläche. Original wieder links (unten steht eine Heimatadresse, die hab ich hier unkenntlich gemacht), TSB rechts, gleiche Funktion unter SB und TSB:
Bitte melde dich an, um diesen Anhang zu sehen. Bitte melde dich an, um diesen Anhang zu sehen.
TSB lädt mit erheblich geringerem Zeitaufwand alles auf einmal: Das Basic, das Spiel und das Bedienprogramm. Der rote Startbildschirm erscheint hier dann ebenfalls.
Nicht nur das Spiel selbst (das Maschinenprogramm) wurde bearbeitet (bei identischer Funktion hab ich sage und schreibe 150 Bytes Code eingespart!), sondern auch das Bedienprogramm insgesamt. Die TSB-Version verwendet eine ganze Reihe von Strukturbefehlen (die aber auch schon im Original hätten angewendet werden können!) Als Beispiel will ich mal die Menüschleife zeigen (Einrückungen nur hier im Forumsbeitrag):
200 REM VORSPANN
205 EXEC SPRITES
210 EXEC VORSPANN
220 EXEC RESET
250 :
1000 REM MENUE
1004 PRINT CHR$(147):COLOUR15,15
1005 EXEC ZEICHENSATZ
1010 PRINTAT(10,0)"{black}*** REACTOR 64 ***"
1020 PRINT"{2down}{3right}{grey 1}SELECT MODE"
1030 PRINT"{down}{3right}A{black}{2space}GAME MODE"
1040 PRINT"{down}{3right}{grey 1}B{black}{2space}INSTRUCTIONS"
1042 PRINT"{down}{3right}{grey 1}C{black}{2space}SELECT STARTING LEVEL"
1045 PRINT"{down}{3right}{grey 1}D{black}{2space}END"
1050 PRINT AT(11,12)"HIGHSCORE:"HI
1060 FLASH 11,10:POKE 198,0
1070 PRINT AT(0,19)" ":CENTRE"{blue}@ 1984 BY{2space}LIPPE ENTERPRISES":PRINT""
1080 CENTRE"[C.V.D.LIPPE,ASTERNSTR.16,498BUENDE1]"
1090 FOR Z=1 TO 5000
1100 GET A$
1110 IF A$="A" THEN OFF: GOTO 10000
1120 IF A$="B" THEN OFF: EXEC ANLEITUNG
1130 IF A$="B" THEN 1000
1135 IF A$="C" THENO FF: EXEC SELECT
1136 IF A$="C" THEN 1000
1137 IF A$="D" THEN COLD
1140 NEXT Z
1150 GOTO 200
Alles anzeigen
Dies ist eine Endlosschleife zwischen Zeile 200 und Zeile 1150. Innerhalb dieser Schleife gibt es eine zweite Schleife zwischen Zeile 1090 und Zeile 1140 (eine FOR-NEXT-Schleife). Sie wird 5000 Mal durchlaufen (vor allem, wenn man gar nichts macht) und danach baut sich die Oberfläche neu auf (wie oben gezeigt), also ganz nett gemacht, damit sich auf dem Bildschirm immer wieder mal was tut, auch wenn man eine zeitlang abgelenkt sein sollte (oder bei Messe-Präsentationen). Bei der FOR-Schleife fällt auf, dass sie an drei Stellen einfach verlassen wird, ohne sie programmiertechnisch sauber abzuschließen (in den Zeilen 1110, 1130 und 1136). Das ist zwar nicht schlimm, aber eben "nicht die feine Art".
Die TSB-Version davon sieht so aus:
1000 loop
1010 sprites: vorspann: .reset
1020 repeat: z=0: x=0
1030 screen
1040 poke 198,0: pause 37: a=peek(197): unflash
1100 if a=64 then z=1
1110 if a=10 then spielen:z=1
1120 if a=28 then anleitung
1130 if a=20 then select
1140 if a=18 then really
1145 if x>0 then cls: center at(12,0)"Bye bye!":pause 5: cold
1150 until z=1: color 0,0: cls
1160 end loop
Alles anzeigen
Die Zeilen 1000 bis 1080 des Originals oben sind hier in eine Prozedur (screen) ausgelagert.
Hier stimmen die Strukturbefehle: die GOTO-Endlosschleife ist nun ein LOOP-ENDLOOP (1000..1060), die innere (ehemals FOR-) Schleife ist jetzt ein REPEAT-UNTIL, und zwar ohne Ablaufverletzungen. Die innere Schleife wird auf ein Flag (z) hin ordentlich verlassen. Die automatische Aktivität ist ebenfalls eingebaut: Der Befehl PAUSE (Zeile 1040) sorgt zusammen mit PEEK(197) genau dafür. Wurde in den ganzen 37 (wegen IRQ-Bremsen sind es dann rund 60) Sekunden bei PAUSE keine Taste gedrückt, liefert PEEK(197) eine 64, was das Flag zum Verlassen der inneren Schleife triggert. Das Flag x dient zum Beenden des Programms, und zwar mit Nachfrage, nicht abrupt wie im Original (COLD).
Ebenfalls anders als im Original kann man an allen Stellen, die mit einer langdauernden Animation etwas ankündigen (Neuer-Spiele-Level-Animation, Level-nicht-geschafft-Animation, Warten im Startbildschirm) diese Warterei per Tasten- oder Feuerknopfdruck beenden, was ganz ungeheuer zum Spielespaß beigetragen hat (ich bin doch inzwischen tatsächlich ohne Abbruch bis in Level 5 vorgedrungen!
) Hier ein Screenshot des Spiels:
Bitte melde dich an, um diesen Anhang zu sehen.
Und ebenfalls neu: Bisher wurden die Sonden (in anderen Spielen: "Leben", ganz unten rechts) nicht aufgefüllt, wenn man es in den nächsten Level geschafft hatte. Das ist nun also entschärft. Die Level ab 9 sind sowieso teuflisch, dann verfolgt dich ein "Proton". Man kann dem entkommen, indem man kurz die Feuertaste drückt (Stasis-Modus) und sich dann schnell entfernt, aber die Stasis-Energie ist schnell entladen...
Wo findet ihr das Programm? Bitte melde dich an, um diesen Link zu sehen. diesmal. Dort ist auch die Bitte melde dich an, um diesen Link zu sehen. des Spieleteils abgelegt.
Viel Spaß!
Arndt
Reactor: Maschinenprogramm analysiert, Basic-Programm aufgepeppt. Bald Weiteres.
Wer hatte mir eigentlich das D64 mit dem Spiel zukommen lassen? Ich finde den Post nicht mehr!
Arndt
Geh mal in die Eigenschaften der Hauptdatei, und stelle den Assembler explizit auf C64Studio oder ACME, nicht auf "Auto".
Sorry, dass ich erst jetzt antworte, war mit was anderem beschäftigt. Aber: ja, die Datei war auf DASM eingestellt (weiß der Teufel, wieso!)
Jetzt wirft C64Studio diesen (nun einzigen) Fehler aus, die folgende Zeile (in einem Include) wird angemäkelt mit einem "Missing opening brace". Im C64-Wiki scheint das zugehörige Beispiel (für !ifdef) mit Tippfehlern behaftet zu sein (Unterstriche fehlen?), ich komme daher nicht weiter:
!ifdef lib_cbm_c128_vdc_a !eof
Arndt
Das Reactor-Spiel besteht aus zwei Teilen, der Bedien-Ebene (Simons' Basic) und dem eigentlichen Spiel (Maschinenprogramm). Den zweiten Teil analysiere ich gerade. Am ersten Teil hab ich ein bisschen rummanipuliert (ein paar fehlende Features eingebaut). Werde dann meine Erkenntnisse zum Download bringen.
Arndt
Nanü? Hast du ein Beispiel, ich kann dir nicht ganz folgen. E1000 ist der ganz banale Syntax Error, da gibt's unzählige Möglichkeiten
Schau's dir an:
Bitte melde dich an, um diesen Anhang zu sehen.
Er meldet insgesamt 170 Errors, alle von dem Kaliber... ![]()
Arndt