Raster Colorcycler

Es gibt 35 Antworten in diesem Thema, welches 9.175 mal aufgerufen wurde. Der letzte Beitrag (6. Juni 2007 um 16:51) ist von spindizzy.

  • also erstmal zu dem clrScreen...

    diese JSR $E544 ist zum löschen der Zeichen auf dem Bildschirm...und VIEL zu langsam um das innerhalb der irq routine zu machen.
    Die kannst du vielleicht EINMAL VOR dem initiallisieren deiner irq routine aufrufen,
    damit der bildschirm schön leer ist, ansonsten taugt die wären dem irq zu nix.
    Und wenn du sprites bewegen willst sowieso nicht...

    dann zu den sprites...

    DIE DARFST DU NICHT ÜBER DIE RASTERROUTINE bewegen, oder auch nur da
    platzieren, denn sprites verbrauchen auch taktzyklen in jeder rasterzeile.
    und dann ist das ganze timing von wegen 63/20 zyklen durcheinander....

    ansonsten... klar kann du vor dem jsr ea81 noch andere routinen hängen,
    wenn sie bis der rasterstrahl wieder in zeile $82 ist fertig sind.
    z.b. eine musicroutine...oder sonstiges...

  • Zitat

    DIE DARFST DU NICHT ÜBER DIE RASTERROUTINE bewegen, oder auch nur da platzieren, denn sprites verbrauchen auch taktzyklen in jeder rasterzeile. und dann ist das ganze timing von wegen 63/20 zyklen durcheinander....

    hehe, was hat mich das früher nerven gekostet das mein schöner rasterbalken total kaputt ging wenn ich meinen spritescroller da drüber gelegt hab.... und das wo das bei andren leuten ja anscheinend doch funktionierte (warum das so war hat einem ja niemand gesagt =P).

    also ja, für den anfang würde ich auch empfehlen das sein zu lassen ... ersmal mit was simpleren anfangen :) mit sprites über rasterroutinen kann man sich dann später noch genug rumärgern =)

  • ehm... bin ja Assembler Benutzer...

    was wird denn aus:

    ldx color+48

    ist das 48 hexadezimal???

    wenn ja, wie funktioniert dann die verschieberoutine?
    denn es wird ja nur von color bis color+ $Bitte melde dich an, um diesen Link zu sehen. um eins nach oben geschoben...
    d.h. auf color + #$48 kommt nie eine farbe hin...

    und wenn es dezimal ist...ist es ja noch schlimmer ;)

  • >Roland, Sauhund
    ;) gut dass ihr mirs sagt, das wäre das nächste gewesen ;) dann lass ich mal die Finger weg !

    hmmm die Sache mit dem Timing :

    wieviel darf ich überhaupt noch verbrauchen ab

    Code
    lda #$00
    sta $d020

    Bis zu dem Punkt bei dem ich Anfange zu animieren is alles im Lot 60/20!
    Dürfen ab lda#$00 noch 63 Zyklen verbraut werden ???


    ;)
    Spindizzy

  • >Roland
    ja ist Hex, hab ich gemacht um die flackernde Zeile auszublenden,
    habs anders nicht hinbekommen ;(. :nixwiss:

    Noja ...Danke für eure Hilfe
    ;)
    Spindizzy

  • vorweg, vielleicht wäre es sinnvoll, wenn du einfach mal ein "snapshot image" von der laufenden routine im VICE machst und postest (ist ja nicht sehr gross).

    zum timing....

    was du NACH der rasterroutine machst ist im normalfall VÖLLIG EGAL.
    DAS bringt dir das timing was davor war nicht mehr durcheinander...

    hier muss was anderes faul sind (drum eben das snapshot image).

  • Hi ;),

    ich hab mich fast totgesucht im Netz, habt Ihr vllt. Links zu n paar CodeSnippets die das ganze covern.
    Aber keine grossen Sachen von 50 K oder so, wenns geht was kleines !

    ;)
    Spindizzy

  • ich hab da so ein ca. 20 jahre alte routine von mir (für dich hier ein bissle abgeändert).
    damit kannst du auch noch ein weiteres register (z.b. eine multicolorfarbe) in
    jeder zeile verändern...oder border und hintergrund verschieden...)
    die routine ist recht simple aufgebaut und sollte leicht zu verstehen sein.
    zuerst die initialisierung des irq, damit er immer in zeile $82 ausgelöst wird
    dann die eigentliche irq routine...mit den üblichen wartezyklen
    und verschieden lange abschnitte (20/63) für badlines und normale rasterlines....

  • an der stelle erwähne ich mal zusammenhanglos Bitte melde dich an, um diesen Link zu sehen. ... so ein snippet wie der von roland wäre da gut aufgehoben :)

  • davor sollte man das stück code aber noch etwas aufarbeiten...
    ist nämlich hinsichtlich der anzahl an angezeigten rasterzeilen nicht so toll.
    da müsste die "end" abfrage etwas anders gestaltet werden

  • Zitat

    davor sollte man das stück code aber noch etwas aufarbeiten... ist nämlich hinsichtlich der anzahl an angezeigten rasterzeilen nicht so toll. da müsste die "end" abfrage etwas anders gestaltet werden

    aber das ist für dich doch die geringste übung oder? :)

  • Hmmm.... wie wäre es mit dieser Variante?
    Damit kann man zum Beginn einer Charzeile anfangen und auch zum End einer anderen Charzeile wieder aufhören.
    Und wenn man will geht dann auch noch ein lda Bitte melde dich an, um diesen Link zu sehen.; sta d020; sta d021 danach...

  • Hi Leute ;) ,

    >Roland, Sauhund
    Danke für die Routine und den Link (den kannte ich noch nicht) !

    Rastersachen, sowohl Bars als auch das ganze Timing sind wirklich nicht untrivial ! ;)

    Danke nochmal für eure Mühe und Hilfe !
    ;)
    Spindizzy

  • Roland: wie führe ich Dein Beispiel aus? Maschinensprachemonitor?

    :nixwiss:

    Bitte um kurze Erläuterung

  • aus dem basic mit sys 4096 oder aus dem monitor mit g 1000

    farben sind auf $1200 - $1240 (und $1300 - $1340) abzulegen....
    da biete sich zum testen solche muster wie:

    01 00 02 00 03 00 04 00 05 00 06 00 07 00 .... usw an...

  • >Roland

    Du hast ne Pn !

    ;)
    Spindizzy