Raster Colorcycler

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

  • Quote

    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+ $#46 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
    1. lda #$00
    2. 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....


  • Quote

    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 #00; 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

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