Nach langer Zeit mal wieder auf was gestoßen, bei Version 7.7 und 7.8 geht kein bedingtes Assemblieren mehr, wenn darin ’!FOR !END’ vorkommt und der Code dabei nicht erzeugt wird.

C64 Studio - Entwicklungsumgebung
- Endurion
- Thread is marked as Resolved.
-
-
Hättest du das nicht ein paar Stunden vorher sagen können?
Neue Version mit Korrektur!
-
Hi Endurion,
so habe auch noch eine Frage zu deinen Sprite-Editor.
Ich bekomme es nicht gebacken eine PNG-Datei mit meine Sprites bei deinen Editor zu importieren:
Hier mal meine vorgehens weise:
ich gehe auf den Rider "Import" und stelle ich dann auf "from image file" ein. Habe vorher natürlich alles für den Mega65 eingestellt "21x16 mit 16 Farben"
Siehe Bild
Aber wenn ich dann wieder zum Sprite wechsele ist dort rein gar nichts
Was mache ich dort denn falsch das da nichts erscheint ?
-
Gab es irgendwelche Fehlermeldungen (MessageBox mit Index) oder steht im "Output" etwas?
Welches Format hat die Eingangsgrafik? 4bit, 8bit, RGB?
Edit: Falls es ein 16-Farb-PNG ist, da sehe ich gerade einige hässliche Bugs, das könnte schon das Problem sein. Bin dran!
Edit #2: Und noch viel mehr Bugs im Editor selbst (Palettenauswahl etc.)
-
Ah, Editieren ist vorbei. Ich meine, ich habe die 4-Bit-Grafik-Probleme korrigiert, bitte neue Version prüfen!
-
Ah, Editieren ist vorbei. Ich meine, ich habe die 4-Bit-Grafik-Probleme korrigiert, bitte neue Version prüfen!
Hi, vielen Dank für deine schnelle Hilfe, werde das heute oder morgen gleich Testen und dir dann mitteilen.
Fehlermeldungen habe ich nicht gesehen. Aber da ich das mit Photoshop gepixelt habe, vermute ich mal das es am Format lag.
Das nächste mal versuche ich darauf zu achten. Aber da ich diese Option sehr selten verwende, kann mein Alter das schon mal vergessen.
-
Passt schon, der Code war total verhunzt. Beim Importieren prüft C64Studio nochmal, ob keiner der Indizes >= 16 ist (bei dem 16-Farb-Modus), und wenn doch, wird der jeweilige Sprite-Block ignoriert (d.h. bleibt leer)
Dann noch Fehler bei nicht 32bit-Breite des Bildes und die Farb-Palette des Sprites hatte 256 Farben statt nur 16. Der Mega65 hat aber auch echt ein paar schräge Modi.
-
Hi Endurion,
konnte einfach nicht warten, ich habe die aktuelle Wip-Version C64-Studio 7.8 geholt.
Aber das hat nicht geholfen.
Aber da mein Windows nicht gemeckert hat, weil neues Progromm "ACHTUNG event. Virengefahr", bin ich mir nicht sicher, ob ich eine neue Wip erhalten habe.
Aber hier noch einmal ein Info von meinen Bild.
-
Uffz, ich habe das immer über Clipboard getestet. Jetzt brauche ich erstmal ein Programm, dass 4bit-PNGs speichern kann
Du kannst übrigens auch Bilder mit größerer Farbtiefe verwenden, das wird dann schon runtergebrochen bzw. gemappt.
Edit: Hmm, bei mir klappt das jetzt auch mit einem Import aus einer Bild-Datei. Kannst du mir sonst die Grafik per PN zuschicken? Du kannst gerne Teile davon ausblenden, so lange die Palette intakt bleibt und zumindest einige Pixel stehen bleiben.
-
konnte einfach nicht warten, ich habe die aktuelle Wip-Version C64-Studio 7.8 geholt.
Ich glaube, die Änderungen sind noch ins Release genommen worden.
-
Uffz, ich habe das immer über Clipboard getestet. Jetzt brauche ich erstmal ein Programm, dass 4bit-PNGs speichern kann
Du kannst übrigens auch Bilder mit größerer Farbtiefe verwenden, das wird dann schon runtergebrochen bzw. gemappt.
Edit: Hmm, bei mir klappt das jetzt auch mit einem Import aus einer Bild-Datei. Kannst du mir sonst die Grafik per PN zuschicken? Du kannst gerne Teile davon ausblenden, so lange die Palette intakt bleibt und zumindest einige Pixel stehen bleiben.
PN an dich geschickt.
-
Ah, das ist dann etwas komplexer. !to erzeugt immer neu. Das Video ist etwas kompliziert, versuch es mal so:
Geh im "Solution Explorer" in die Eigenschaften der Datei (Rechtsklick, Properties)
1)
Im Reiter "Build Events" trägst du für "Post Build" das ein:
$(MediaManager) -d64 myresult.d64 -delete <meinfile>
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto <meinfile>
Wobei du <meinfile> durch den gewünschten Dateinamen im Image ersetzt.
2)
Im Reiter "Debug" trägst du das so ein (Debug File muss das .d64-Image aus dem Post Build event sein).
Danach genügt ein Build and Run, deine Datei wird im .d64 ausgetauscht, und das aktualisierte Disk-Image wird im Emulator gestartet (das macht der Eintrag im "Debug"-Reiter)
Ich sollte das !to vielleicht mal etwas erweitern, dass man a) einen Dateinamen im Image angeben kann, und b) angeben kann, dass nur eine existierende Datei getauscht werden soll, statt alles platt gemacht.
Danke für deine Mühe... ich habe es leider nicht hinbekommen, aber nach längerer Zeit so einen "Solution Explorer" erzeugt. Den gab es nicht bei mir.
Kurz vorweg: ich ziehe aus einem Ordner auf dem Desktop meine .asm Datei auf das Icon "C64Studio 7.7". Dann startet es und meine .asm Datei kann ich nun editieren und Build und Run . Klappt alles.
Bei deinem Vorschlag (will ich gerne nochmals versuchen, habe ich leider nicht hinbekommen) muss man vorher um den "Solution Explorer" zu bekommen NEW und SOLUTION erstellen. Dann
meine .asm Datei raussuchen .
Geschafft habe ich das, das ich "Solution Explorer" und auch Reiter "Build Events" und "Post Build" hatte.
$(MediaManager) -d64 myresult.d64 -delete <meinfile>
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto <meinfile>
Für <meinfile> habe verschiedenes ausprobiert...ich weiß leider nicht was da hin muss. Kann ich da einfach "program-1" nehmen ? (wie es später auf der Diskette und load"$",8 zu sehen ist ?
$(MediaManager) -d64 myresult.d64 -delete program-1
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto program-1
oder
$(MediaManager) -d64 myresult.d64 -delete program-1.prg
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto program-1.prg
Ich habe den Namen "myresult.d64" beibehalten. Da wird meiner Meinung nach nichts erzeugt.
Dann habe ich ein myresult.d64 erzeugt. Aber nach Build und Run... ist wieder die ganz normale Autostart Diskette in Vice drin, die immer nur den alten Dateinamen drin hat, wie immer.
Was habe ich vergessen oder falsch gemacht ? Und geht das nur über Solution ?
lg Martin
PS : nun bekomme ich das gar nicht mehr hin, das ich ein Solution erstelle und da dann meine .asm Datei reinbekomme. Weiß nicht mehr wie ich das gemacht habe
um den "Solution Explorer" überhaupt wieder rechts zu haben.
-
Der Solution Explorer sollte eigentlich immer da sein, es sei denn, du hast das Fenster zugemacht. Das kannst du über Windows->Solution Explorer an/aus-machen.
Damit du im Solution Explorer etwas drin hast, brauchst du aber immer ein Projekt/Solution. Das musst du nur einmal mit File->New anlegen, dein Assembly zu dem Projekt hinzufügen (Add existing Item) und dann bauen. Danach immer über das Projekt gehen, die Einstellungen für die Events gibt es nur mit Projekten (irgendwo müssen die zusätzlichen Einstellungen ja gespeichert werden)
<meinfile> ist der Name der Datei innerhalb des Disk-Images, also irgend etwas max. 16-stelliges. Z.Bsp. "program-1"
Richtig ist dann die Variante:
$(MediaManager) -d64 myresult.d64 -delete program-1
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto program-1
Wenn das im Post-Build-Event drin ist, und du dein Assembly neu erzeugst, sollte das myresult.d64 erzeugt werden. Sieh sicherheitshalber mal im "Output"-Fenster nach, ob es Fehlermeldungen gibt.
-
Der Solution Explorer sollte eigentlich immer da sein, es sei denn, du hast das Fenster zugemacht. Das kannst du über Windows->Solution Explorer an/aus-machen.
Damit du im Solution Explorer etwas drin hast, brauchst du aber immer ein Projekt/Solution. Das musst du nur einmal mit File->New anlegen, dein Assembly zu dem Projekt hinzufügen (Add existing Item) und dann bauen. Danach immer über das Projekt gehen, die Einstellungen für die Events gibt es nur mit Projekten (irgendwo müssen die zusätzlichen Einstellungen ja gespeichert werden)
<meinfile> ist der Name der Datei innerhalb des Disk-Images, also irgend etwas max. 16-stelliges. Z.Bsp. "program-1"
Richtig ist dann die Variante:
$(MediaManager) -d64 myresult.d64 -delete program-1
$(MediaManager) -d64 myresult.d64 -import "$(BuildTargetFilename)" -renameto program-1
Wenn das im Post-Build-Event drin ist, und du dein Assembly neu erzeugst, sollte das myresult.d64 erzeugt werden. Sieh sicherheitshalber mal im "Output"-Fenster nach, ob es Fehlermeldungen gibt.
Vielen Dank. Es hat nun alles geklappt
Ich hatte gestern beim Rumspielen und rausbekommen was wo wie ist den Reiter WINDOWS Zeile "Solution Explorer" versehentlich abgeschaltet (wollte wohl was probieren)... und dann vergessen wo ich überall was verstellt hatte.
Ich habe das soweit kapiert und kann das nun immer wieder hinbekommen.
Derzeit habe ich nur noch das Problem, dass ich es noch nicht hinbekommen habe meine .asm Datei da einfach reinzuziehen. Es wird zwar gefragt ob ich das zum Projekt hinzufügen will.
Das hatte ich versehntlich gestern mehrfach mit "Nein" beantwortet, weil ich dachte das ist eines der Standartfragen die ich sonst immer mit "NEIN" beantwortet habe. (Habe diesmal dann den Text gelsen )
Aber auch mit "JA" hat es nicht geklappt. Die reingezogene .asm Datei hat dann nicht als ICON diese kleinen Linien, sondern dieses blaue Ausrufezeichen (was ich ja immer hatte wenn ich das so mit reinziehen machte)
Aber das bekomme ich schon raus was das bedeutet.
Mein derzeitiger Lösungsweg.
Derzeiit NEW ASM und dann kopiere ich den reinen TEXT aus meiner .asm Datei mit dem Notepad++ und kopiere das dann in das neue .asm im Projekt.
Und dann muss ich mit rechtsklick rechts im "Solution Explorer" die "programm-1.asm" auswählen und rechtsklick "Proberties" und dann sind auch alle Reiter da.
Hatte gestern mehrfach Rechtsklick auf dem Commodore ICON gemacht. (Da sind natürlich dann nicht alle Reiter.)
Nochmal vielen Dank. Alles kapiert. Ich spiele da nun weiter dran rum und werde einen Weg finden.
Danke für deine Mühe. Ich habe dir das nur aufgeschrieben hier, damit du siehst wie man als noop da rumstolpert.
lg Martin
PS...ich habe da nun nochmal etwas rumgespielt...aber ich bekomme es nicht hin eine .asm Datei in das Projekt zu bekommen.
Es hat immer dieses blaue Icon mit dem Ausrufezeichen.
Und wenn man bei geöffnetem Projekt NEW - PROJECT drückt, dann ist aber das ganze Project plötzlich weg, auch wenn man den Dialog oben Wegixt. (ist das ein Fehler?)
-
Zum letzten Punkt, upps, das ist nicht schön. Da sollte ich das alte Projekt noch nicht schließen. Das wird gemacht.
Eine .asm-Datei zu öffnen (File->Open oder Drag & Drop) fügt die nicht zu einem Projekt hinzu. Das musst du entweder als neue Datei mit New... machen, oder im "Solution Explorer" per Rechtsklick auf das Projekt (Add->Existing Item) oder in der Toolbar (des Solution Explorers) auf das Icon mit dem grünen Plus klicken.
Idealerweise ist die asm-Datei im Ordner des Projektes (es geht aber WIMRE auch außerhalb)
-
Hi Endurion,
erst mal vielen Dank für deine Hilfe, und das Importieren klappt jetzt auch problemlos.
Aber nun doch mal eine Frage im Bezug zu deinen Sprite-Editor.
Im Sprite-Editor gib es ja den Rider "Preview", dort kann man dann mal vorab seine Animation sehen. Womit ich etwas probleme bekomme ist das Sichtfenster.
Das quescht den Sprite jenachdem wie ich das Fenster einstelle
Bild 01
Und bei Bild 02 fehlt dann auch noch das Fenster Select .. sprites
Wirst du das im Laufe der Weiterentwicklung noch verbesseren, ober biete da die Windowsprogrammieroberfläche nichts gescheides für so ein Fenster?
Und wie bekomme ich Sprites in das Fenster "Select .. sprites" Sprites überhaupt hinein. Ich habe Sprites im Editor zwar selectier aber nichts passiert.
Und der Delay - Timer hat keine Auswirkung bei Auto-Animation. Dann vermute ich mal das der nur relevant wird wenn selectierte Sprites in dem besagten Fenster erscheinen .
Der Export für für den Mega65 S-Basic klappt soweit, nur eine Kleinigkeit, das hatte ich vergessen zu erwähnen.
es können max. 8 Sprites mit je 8 Frames erzeugt werden, leider konnte Snoopy anscheindet nicht mehr Platz bereitstellen für mehr Sprites.
CodeAlso so kommt man auf max. 64 Sprites.
Jetzt müsste man ein Schalter einbauen wie der Export von statten gehen soll, die erste Stelle für Sprites oder die zweite Stelle Frames hoichzählen.
Hoffentlich habe ich mich verständlich ausgedrückt, darin bin ich nämlich eine Niete, Sachen so nieder zu schreiben damit man es gut versteht.
Vielleicht kann Snoopy dazu noch schreiben wenn er das hier liest.
-
Danke fürs Update!
Muss noch ein bisschen durchtesten, ob "meine" Bugs noch laufen oder nun wirklich alle verschwunden sind...
Was mir aber auffällt: Am unteren Rand sind ja die beiden Reiter "Compiler Messages" und "Output". Dort habe ich normalerweise "Compiler Messages" eingestellt. Bei jedem Kompilier-Vorgang aktiviert sich nun aber "Output" immer von selbst und sprudelt da fröhlich vor sich hin... Ich hätte gerne wieder meine Compiler Messages als (Normal-)Einstellung zurück.
-
Ich meine, ich hab die Punkte korrigiert. Das "Selected .. sprites"-Label gehörte da gar nicht hin, das habe ich jetzt links neben die Spritenummer gesetzt. Das zeigt an, wieviele Sprites man in der Liste ausgewählt hat und hat nichts mit dem Preview zu tun.
Neue WIP-Version!
Für letzteres (Output-Fenster) gibt es zwei Optionen:
-
Ich meine, ich hab die Punkte korrigiert. Das "Selected .. sprites"-Label gehörte da gar nicht hin, das habe ich jetzt links neben die Spritenummer gesetzt. Das zeigt an, wieviele Sprites man in der Liste ausgewählt hat und hat nichts mit dem Preview zu tun.
Neue WIP-Version!
Nochmal vielen Dank, jetzt passt alles, auch das Preview-Fenster.
Aber einen Fehler hat die Sache noch, das beruht aber darauf, das ich es nicht richtig gelesen habe was im Handbuch steht. Und somit war das mein Versagen
Im Handbuch von S-Basic seht folgendes drinnen für den Befehl FCSPRDEF <Sprite>, <Frame>, <Zeile>, "<String>"
Handbuch :
In S-Basic können Sie für jedes FC-Sprite (0 bis 7) jeweils 16 Frames ( 1 bis 16) definieren (mit FCSPRDEF).Und nicht bis 8 Frames wie ich es gesagt habe. Und die Zählung beim Frame fängt bei 1 an und nicht bei 0.
Oh Mann bin ich aber schusselich mit dem schreiben und lesen
Aber das musst du jetzt nicht gleich korrigieren, das langt wenn du es im neuen Release mit aufnimmst. So wie es in Moment ist, recht mir das für mein Vorhaben.
-
Hab das eben korrigiert, wenn ich es nicht gleich mache, landet es auf der Vergessenen-Dinge-Liste, allgemein TODO genannt.