Hallo Besucher, der Thread wurde 1,4k mal aufgerufen und enthält 7 Antworten

letzter Beitrag von tecM0 am

scrolling

  • Hallo, hab mal wieder ne Frage: Ich habe es endlich geschafft, eine Hard- und eine Softscroll-Routine zu schreiben. Funktioniert auch alles. Aber es ruckelt hin und wieder. Man kann fast sehen, wie der Rasterstrahl das Bild durchläuft. Aus dem C-64er Magazin weiß ich, das man das Scrolling mit dem Rasterstrahl synchronisieren muß. Darum die Frage: WIE??? Meine jetzige Routine verschiebt den ganzen Bildschirm, aber für mein eigentliches Ziel sind nur, sagen wir mal 20 Zeilen nötig, wobei die ersten 5 "ungescrollt" bleiben. Wie kopiert man hinter dem Rasterstrahl her?

  • Das technisch simpelste ist, in den VIC-Registern 53265/53266 nachzusehen. Darin findest Du die Rasterzeile als 9-Bit-Zahl. Die Bits 0-7 der Rasterzeile sind in 53266, das höchste Bit ist in Bit 7 von 53265.
    Ökonomischer ist es, sich durch Rasterinterrupte vom Erreichen einer bestimmten Zeile informieren zu lassen.

  • hir mal eine TICTAC-routine. ich habe sie glabe ich vor 15
    jahren aus der 64er abgetippt 8)


    darin ist alles zu finden was du brauchst:


    - IRQ timen
    -Softscrollen
    -Hardscrollen


    gruss,
    tecM0




    hier noch ein paar schlechte fotos des artikels aus meinem ordner:


    TICTAC_1
    TICTAC_2


    und noch einer:


    zeichensatz und scrolling_1
    zeichensatz und scrolling_2


    und der noch:


    scrolling und irq_1
    scrolling und irq_2


    wenn dir das was hilft und du etwas nicht entziffern kannst, könnte ich es dir nochmal scannen.


    viel spass :D,
    tecM0

  • Das mit dem scrolling ist so eine sache... Da so eine routine ja viel zeit frisst, ist es immer fraglich wie man es macht.


    Wenn du die routine für ein spiel brauchts wäre eine alternative dir nen speed code generator zu schreiben der die schleifen ausrollt um dir die inx cpx bne oder bcc scheisse zu sparen.


    Oder halt ueber nen blitter aber das habe ich zum screenscrollen auch noch nicht gemacht ;)


    @Tecmo:Ja die 64ér das waren noch zeiten ;) es gab da ja einige gruppen die hatten in ihren neuen demos dann immer auch die neuen effekte die gerade im proficorner standen...


    War natürlich zufall... ISt ja klar :D

  • Zitat

    Original von 1582908
    Meine jetzige Routine verschiebt den ganzen Bildschirm, aber für mein eigentliches Ziel sind nur, sagen wir mal 20 Zeilen nötig, wobei die ersten 5 "ungescrollt" bleiben. Wie kopiert man hinter dem Rasterstrahl her?


    "#" ist der border deines screens und das dazwischen der screen.
    die "+" sind der bereich den du scrollen willst...oben ist was frei.
    bei "(1)" ist der stahl an diesem bereich vorbei und du kopierst los.
    da sollte nicht länger dauern als bis an die stelle an der der strahl beginnt deinen scrollbereich darzustellen. (ansonsten musst du "double buffering" anwenden).
    bei "(2)" machst du dein softscrolling und hast jetzt bis der staht wieder bei "(1)" ist zeit...für musik und andere sachen.


    gruss,
    tecM0