Posts by WebFritzi

    Wenn Du von Anfang an sicher bist, dass es bei einem simplen Klang bleibt, dann ist das schon gut so.

    Hmm, na gut. Da bin ich mir definitiv sicher. Hätte gedacht, es gibt vielleicht ein Standard-Format, an das man sich halten kann und dann einfach eine Tabelle runterrattern lässt. Also eigentlich so, wie du es mit dem Sequencer beschreibst. Nur, dass man sich nicht nochmal selber Gedanken machen muss, wie man den baut. Ich bin nämlich absolut kein SID-Experte.

    Ich möchte gerne eine kleine Fanfare in meinem Spiel abspielen lassen, wenn der Spieler gewinnt. Der Ton ist der Folgende:

    Der soll einmal kurz angespielt werden, gefolgt von einer kurzen Pause und dann etwas länger, so halt:

    Was ist die Standard-Programmiertechnik für sowas? Ich würde jetzt zwei Counter im IRQ laufen lassen. Einer, der immer bis 10 hoch zählt. So bekomme ich einen 6 Beats per Second-Takt. Der zweite zählt von 0 bis z.B. 5. Bei 0 spielt er den Ton, bei 1 nicht, und bei 2-5 spielt er ihn wieder. Das ist aber sehr spezifisch auf diesen Effekt zugeschnitten. Gibt es für sowas eine allgemeine Methode?

    Yes. Im "Breakpoint"-Fenster eine Speicheradresse eingeben (oder Label auswählen), Statt "Exec" "Store" auswählen, und der Breakpoint springt an, wenn in die Adresse geschrieben wird.

    Daaanke!!! Ich hab's rausgefunden. Da stand direkt vor dem Screen Table:

    Code
    1. Numbers !byte 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
    2. !byte 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35

    So, und die freie Stelle des Puzzles steht bei 6x6 auf 36. So habe ich immer das erste Byte des Screen Tables für meine Zahlen verwendet. :wand Oh Mann.


    Dank euch habe ich den Fehler gefunden. Vielen Dank!!!

    Gibt es im Debugger evtl. die Möglichkeit, auf das Ändern einer bestimmten Speicherstelle zu warten, so dass ich weiß, wo der Mist passiert?

    Tipp im Vice-Monitor mal "help bk" ein.

    Der schließt sich bei mir leider gleich wieder. Zuletzt hatte ich das Problem gelöst, indem ich in der Sektion "Machine->Monitor" das Häkchen bei "Enable Remote Monitor" rausgenommen habe. Das funktioniert jetzt nicht mehr. Ich verwende GTKVICE 3.5.

    Vielleicht verhaut Dir irgendwas bei 6*6 die Tabellen, mit denen Du $fc/fd setzt?

    Das ist es!!! Ich habe mir mal den Speicher angeschaut. Und tatsächlich - nach dem Umschalten von 6x6 auf 4x4 steht da nicht mehr 00, sondern 1E im Speicher. Alles andere scheint so geblieben zu sein. Verrückt. Ich hasse solche Bugs. Gibt es im Debugger evtl. die Möglichkeit, auf das Ändern einer bestimmten Speicherstelle zu warten, so dass ich weiß, wo der Mist passiert?

    - Probier mal, statt der Extra-Löschroutine das Clearscreen durch ein SEI/CLI zu schützen, um auszuschließen, dass es nicht doch am Raster liegt.

    Auf die Idee war ich auch schon gekommen. Gleiches Problem.

    - Mach das Clearscreen absichtlich langsamer, paar Nops sollten ja reichen. Wird das Problem dadurch größer?

    Kann ich leider im Moment nicht sagen, denn ob mit oder ohne NOPs zeichnet er den Strich (meistens) durch.

    - Das Farbram hat aber die korrekten Werte bekommen? Bau mal noch eine kleine Schleife vor das Clearscreen, das das Farbram oben auf eine absichtlich falsche Farbe stellt.

    Gute Idee. Das sieht dann wie in den angehängten Bildern aus.

    - Im Vice einen Haltepunkt am Ende des Clearcreens setzen und prüfen, ob &fb/fc und die REgister die erwarteten Werte haben.

    Wie mach ich das? Hab von sowas im Vice keine Ahnung.

    Statt $fb/$fc zwei andere Zeropage-Locations verwenden (z. B. $50/$51, wird sonst nur für die Stringverarbeitung temporär gebraucht). Dann kann man mal ausschließen, dass der Interrupt in $fb/$fc reinspielt.

    Hab ich mal gemacht. Danke für diesen Ansatz zum Testen. Das Problem bleibt jedoch. An $fb/$fc kann es also definitiv nicht liegen.


    Dann habe ich mal deine "Standard-Routine" genommen, und der Strich geht weg. Ich finde das äußerst merkwürdig.

    Ausserdem kann inner_loop zwei Zeilen weiter runter. $fc sollte sich nicht ändern innerhalb der Schleife, also muss man es nicht jedesmal neu setzen.

    Doch, weil ich ja nicht nur den Screen, sondern auch die Farbe setze. Aber dein Kommentar hat mich jetzt darauf gebracht, dass ich für die Farbe ja auch $fd/$fe nutzen kann. Danke also. :-)

    Hallo ihr. Könnte sich jemand mal bitte den Code im angehängten zip-File anschauen? Es geht vor allem um die folgende Routine (befindet sich in !zone Graphics):

    In dieser kleistere ich den Bildschirm voll mit dem Char No #42 (Multicolor 1, alle Pixel gesetzt). Relativ am Anfang des Programms rufe ich diese auf, und es funktioniert auch. Ich sehe auch nicht, was daran falsch sein soll. Wenn ich im Programm aber die 6x6-Button-Größe wähle, wird in der obersten Zeile des Bildschirms gemalt (weiße Linie), und das macht er bei einem erneuten Wechsel (z.B. auf 4x4) nicht weg. Naja, jedenfalls teilweise nicht. Manchmal schafft er es bis zur Hälfte der Linie und lässt es dann.


    Wegen dieses Verhaltens muss das irgendwas mit dem installierten Raster-IRQ zu tun haben, aber ich verstehe nicht, was. Der feuert schließlich erst acht Zeilen später. Mit folgendem Code, der einfach nochmal die oberste Zeile überpinselt und den ich oben direkt vor rts schreibe, kann ich das Problem beheben, aber ich verstehe nicht, wieso:

    Code
    1. lda #42
    2. ldy #39
    3. huhu sta $0400,y
    4. dey
    5. bpl huhu

    Kommt jemand von euch dahinter?

    Files

    Ich glaube, Blau wär schöner.

    Danke für deine Meinung. Hmm, das hatte ich auch erst. Und beim Markieren Symbol und Text weiß. Aber dann fand ich es cool, wenn das Symbol bei der Markierung ne andere Farbe hat als der Text. Glaub aber, das Gelb sticht ein wenig in den Augen. Also werde ich wohl wieder zurück schwenken.

    So, Leute. Für die, die es interessiert: anbei eine erste spielbare Version des Spiels mit 3 wählbaren Größen (3x3, 4x4, 5x5). Die Option 6x6 ist in Planung, solange genügend Chars für die Darstellung übrig bleiben. Aber im Moment sieht es diesbezüglich gut aus.


    Wenn ihr Designverbesserungen (oder Vorschläge anderer Art) habt, dann immer her damit. Wie seht ihr z.B die gelbe Farbe der Menu-Icons? Ich bin mir nicht ganz sicher, ob das designtechnisch ideal ist.

    Files

    Hallo @All. Es gibt ja im C64Studio einen Debugger mit Breakpoints und so weiter, und ich kapiere nicht, wie das Ganze läuft. Ich habe in meinem ganzen Leben noch nie einen Debugger benutzt, und würde gerne wissen, wie das funktioniert. Bisher mache ich es immer so, dass ich an einer gewissen Stelle testweise ein lda #1 sta $0400 einfüge, um zu sehen, ob er überhaupt bis dahin kommt. Ich denke, der Debugger wäre da komfortabler - nur habe ich halt leider keine Ahnung, wie das Ding funktioniert. Wäre jemand von euch bitte so freundlich, das einem Noob zu erklären?