Nochmal Zyklenzählerei. Diesmal mit Sprites!

Es gibt 4 Antworten in diesem Thema, welches 1.051 mal aufgerufen wurde. Der letzte Beitrag (30. November 2008 um 19:14) ist von Roland.

  • Na gut. Jetzt habe ich so langsam diese ganze Zählerei halbwegs auf der Kette. Horizontale Rasterbars funzen jedenfalls schonmal unter Berücksichtigung der 21 Zyklen in einer Bad Line. Vertikale Rasters leider erstmal nur im Bottom/Border, weil ich dieses Badline-Unterdrücken, bzw. forcieren [auch FLD] noch nicht ganz im Griff habe.

    Ganz dreckig wird es aber ja nochmal, wenn Sprites in einer Rasterzeile angezeigt werden. Roland hatte glaube ich irgendwo mal ne gute Übersicht gepostet, wieviel Zyklen Sprites unter welchen Vorraussetzungen verbraten. Hat da jemand noch nen Link für mich? Ich finde das irgendwie nicht mehr. Es gibt zwar ein paar Quellen im Netz, aber ich bin mir nicht sicher, inwiefern die korrekt sind. Es kam laut dieser Liste von Roland, an die ich mich meine erinnern zu können, ja auch darauf an, welche Sprites man benutzt...

    Danke!

  • Du meinst bestimmt Rolands Übersicht aus PostBitte melde dich an, um diesen Link zu sehen. in Bitte melde dich an, um diesen Link zu sehen. Thread, oder?

  • An dem Problem hab' ich mir auch ewig die Zähne ausgebissen, ich hab' das dann so gelöst...

    Bitte melde dich an, um diesen Link zu sehen.

    Auf jeder Zeile FLD, dazu einen Timer im CIA-Register, der immer wieder genau 63 Zyklen zählt. Der wird in jeder Zeile abgefragt und dann die Loop für die Rasterbars entsprechend "verkürzt". Je nachdem, welche Sprites wie viele Zyklen in der Zeile gefressen haben.

    Durch den Counter im CIA-Register ist's im Prinzip auch egal, welche Sprites da jetzt in der Zeile waren, weil der mir immer den passenden Offset für das "verkürzen" meiner Loop liefert.

    Gruß,

    der Mnemonic

    Alle alphabetisch angeordnet einem in Satz sein sollten Worte.

  • wenn man nur einfache raster mit sprites haben will, und darauf achtet, dass nie "zu viele" sprites in einer zeile sind, dann kann man auch eine ganz einfache sich selbst austimende "fli" routine nehmen (siehe folgenden pseudocode)

    Code
    ldx #zeilenanzahl
    loop lda d012
    and #07
    ora #18
    sta d011
    lda farben,x
    sta d020
    sta d021
    dex
    bne loop