Raster Colorcycler


  • spindizzy
  • 3123 Aufrufe 35 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

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

    Quellcode

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

    Brainfuck-Quellcode

    1. 1000 sei
    2. 1001 lda #01
    3. 1003 sta d01a
    4. 1006 sta dc0d
    5. 1009 lda #1b
    6. 100b sta d011
    7. 100e lda #82
    8. 1010 sta d012
    9. 1013 lda #21
    10. 1015 sta 0314
    11. 1018 lda #10
    12. 101a sta 0315
    13. 101d cli
    14. 101e jmp 101e
    15. ------------------------------
    16. 1021 inc d019
    17. 1024 ldx #ff
    18. 1026 inx
    19. 1027 nop
    20. 1028 lda 1200,x
    21. 102b ldy 1300,x
    22. 102e sty d022
    23. 1031 sta d020
    24. 1034 sta d021
    25. 1037 lda 1201,x
    26. 103a ldy 1301,x
    27. 103d sty d022
    28. 1040 sta d020
    29. 1043 sta d021
    30. 1046 ldy #05
    31. 1048 dey
    32. 1049 bne 1048
    33. 104b nop
    34. 104c inx
    35. 104d txa
    36. 104e and #07
    37. 1050 cmp #07
    38. 1052 beq 1026
    39. 1054 cpx #40
    40. 1056 bcc 1037
    41. 1058 jmp ea81
    Alles anzeigen
  • 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...

    Brainfuck-Quellcode

    1. 1000 sei
    2. 1001 lda #01
    3. 1003 sta d01a
    4. 1006 sta dc0d
    5. 1009 lda #1b
    6. 100b sta d011
    7. 100e lda #82
    8. 1010 sta d012
    9. 1013 lda #21
    10. 1015 sta 0314
    11. 1018 lda #10
    12. 101a sta 0315
    13. 101d cli
    14. 101e jmp 101e
    15. ------------------------------
    16. 1021 inc d019
    17. 1024 nop
    18. 1025 ldx #ff
    19. 1027 inx
    20. 1028 lda 1200,x
    21. 102b ldy 1300,x
    22. 102e sty d022
    23. 1031 sta d020
    24. 1034 sta d021
    25. 1037 lda 1201,x
    26. 103a ldy 1301,x
    27. 103d sty d022
    28. 1040 sta d020
    29. 1043 sta d021
    30. 1046 ldy #05
    31. 1048 dey
    32. 1049 bne 1048
    33. 104b inx
    34. 104c cpx #3f
    35. 104e bcs 1059
    36. 1050 txa
    37. 1051 and #07
    38. 1053 cmp #07
    39. 1055 beq 1027
    40. 1057 bne 1037
    41. 1059 jmp ea81
    Alles anzeigen
  • 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
  • Benutzer online 1

    1 Besucher

  • Tags