Hallo Besucher, der Thread wurde 8k mal aufgerufen und enthält 35 Antworten

letzter Beitrag von spindizzy am

Raster Colorcycler

  • Hi Kinder ;),


    ich hab mit den Rastern weiter gemacht und bin jetzt soweit Sie zu animieren bzw. als Vorstufe nen ColorCycler zu machen !
    Teilweise funzt das auch so wie ich mir das vorgestellt habe aber eben nur teilweise ;( denn die Farbe scrollt weg.
    Aber eigentlich soll sie mit jeder Farbe die unten rausscrollt oben eine neue setzen !
    Hier ist mein source :




    hoffe ihr könnt mir helfen ;) und DANKE schon mal vorab !!!
    ;)
    Spindizzy

  • Wow gerade gepostet und 5 min. später die Antwort,
    unglaublich dieses Foum ;))


    Danke Sauhund, hab ich Dich richtig verstanden meinst Du das so :


    Code
    1. lda color+1,y
    2. sta $c000
    3. .loop3 lda color,y
    4. sta color+1,y
    5. dey
    6. bpl .loop3
    7. lda $c000
    8. sta color+47


    Da kommt n bissl was seltsames raus ;)
    Danke nochmal Sauhund
    ;)
    Spindizzy

  • Zitat

    Da kommt n bissl was seltsames raus


    hehe, der sta am ende sollte nach "color", nicht nach "color+47" gehen schätze ich (vor der schleife den wert ganz am ende der farbtabelle merken und den dann nach der schleife an den anfang der tabelle schreiben)


    um sich den wert zu merken bietet sich an der stelle auch das X register an ...

  • Hi ;);


    >Sauhund
    Danke ja sollte eigentlich kein +47 da hin :rotwerd:


    Habs jetzt so gemacht :



    bis au ein Flackern links unten in den letzten beiden Bars funzt es jetzt ;)


    Ich nehm mal an das Flackern ist auf die Rasterzeit zurückzuführen und ich muss wieder Verzögerungen einbauen und diese wahrsch. unter bpl .loop3 ! ??? Stimmt das ... ???



    ;)
    Spindizzy

  • Zitat

    Ich nehm mal an das Flackern ist auf die Rasterzeit zurückzuführen und ich muss wieder Verzögerungen einbauen und diese wahrsch. unter bpl .loop3 ! ??? Stimmt das ... ???


    mmmh, neee. das ändern der farbtabelle passiert ja nachdem die rasterroutine ansich schon vorbei ist, da brauchst und willst du tunlichst keine verzögerungen drin haben, ganz im gegenteil :) ich würde vermuten das die rasterroutine einfach am ende ein wenig aus dem timing läuft und du das vorher nicht gesehen hast. mach da mal abwechselnd schwarz/weiss in die komplette farbtabelle, dann siehst du ob die rasterroutine ansich funktioniert (ohne rumscrollen der tabelle dann natürlich)

  • um zu sehen ob das timing stimmt ist es oft hilfreich das ganze so zu verschieben das die umschaltstelle im sichtbaren bereich liegt....sprich, ganz am anfang der rasterroutine ~30 cycles extra verbraten. die umschaltstellen sollten dann alle untereinander zu sehen sein und nicht langsam nach links oder rechts wandern.


    wenn du eine rasterroutine wie deine hast die nicht am anfang den raster stabilisiert reicht es oft an passender stelle irgendwo ein nop einzustreuen damit die umschaltstelle wieder im rahmen verschwindet.

  • Hi,


    >Sauhund
    hmmm die Rasters wanden nicht von rechts nach links, sonden flacken links unten einfach.
    Das Nop einfügen hab ich probiert, aber es klappt leider nicht ;(


    wenn ich

    Code
    1. lda #$00
    2. sta $d020
    3. sta $d021


    rausnehme laufen die Rasters wie am Schnüchen ohne das geringste flackern !!!. Allerdings flackert dann natürlich der hintergrund. Das heißt doch, daß die Zyklen für die o.g. 3 Zeilen zuviel sind ?


    >Roland


    Danke fürs probieren, also auf dem Echtgerät flackert es nicht hmm sonderbar !!!



    Danke für eure Hilfe
    ;)
    Spindizzy


  • ooooooh, ja vor dem setzen der beiden farben ganz am schluss musst du natürlich auch so weit verzögern das das umschalten da wieder im nicht sichtbaren bereich passiert....


    ich würde das in der art aber garnicht machen, sondern einfach den letzten wert in der farbtabelle auf eben diesen wert setzen und den dann nicht mehr ändern.

  • Hi ;),


    >Sauhund, hast Du das so gemeint ?


    klappt leider auch nicht ;(


    ;)
    Spindizzy

  • Hi ;),


    so jetzt funzt es :


    Ich blende nur noch 70 also $46 Lines auf den Screen, nicht mehr 72 $48.
    Das ist zwar nicht sehr elegant ein Problem zu lösen aber das Cycling sieht jetzt wenigstens gut aus !!! ;)


    Aber jetzt habe ich noch eine Frage, wenn ich ein clr Screen ausführen möchte mit Jsr$e544 kommts wieder zum SuperGau !
    Da stimmt doch was mit der RasterTime nicht bei der .loop3.
    Irgendwie kommt es mir so vor als ob das alles nur per Zufall funktioniert !


    ;)
    Spindizzy

  • was meinst du mit "korrekt rausspringen" ?


    jmp febc ist nichts anderes als jmp ea31, nur das dabei die tastaturabfrage und anderes nicht mehr gemacht wird....
    ich nehme am ende des irq immer febc (oder ea81, mit einer ACHT !!! nicht 3...)




    willst du die irq routine ganz beende? also wieder abschalten?
    dann musst du eben alles wieder "zurück-umbiegen"...


    oder so routinen wie: jsr ff81, jsr ff84 und jsr ff8a benutzen...

  • >Roland
    Aha, ea81 o.k.
    Was ich gemeit habe ist, wenn ich die obige Routine weitere Routinen anfügen möchte zb ein Sprite darstellen und bewegen einen clrScreen ausführen etc. Das kann ich doch nicht eifach vor jmp $ ea3/81 anhängen !?!?!?!?!
    Füge ich nur einen Befehl hinzu geht das Flackern wieder los !
    Hab ich bei der "Animation" irgendwie was falsch gemacht oder so?
    Ich hab mehr oder weniger durch rumprobieren das Flackern eliminieren können aber dasses mit der Rasterzeit zusammenhängt ist mir schon klar denn sonst würde das Hinzufügen eines weiteren Befehls nicht wieder das Flackern auslösen, oder :wand !!!???



    ich hoffe es kommt rüber was ich meine
    ;)
    Spindizzy