Instabile Rasterbalken?

Es gibt 8 Antworten in diesem Thema, welches 1.532 mal aufgerufen wurde. Der letzte Beitrag (9. Dezember 2014 um 22:25) ist von CeriX.

  • Hallo erstmal!
    Nach fast zwei Wochen ohne zu posten, trau' ich mich jetzt dochmal ein Frage zu stellen! ;)


    Nach ungefähr 25 Jahren versuche ich nun auch endlich eine cooles Demo zu basteln!
    Hab' mich auch schon wieder per Code-Schnipsel an Rasterbars, Scrolltext, Musik abspielen und so weiter herangetastet.
    Jetzt hab' ich's dann auch endlich geschafft ein CharPad Logo richtig darzustellen.


    :?: Was ich aber nicht ganz verstehe: Einer meiner beiden 10 Pixel hohen Rasterbalken fängt an, in einer Zeile instabil zu werden, sobald ich den Logo-Code einbaue.
    Dieser Code baut nur einmal ganz am Anfang (bevor noch die Interrupts initialisiert sind) das Logo aus der Map und den Tiles zusammen sonst nichts!


    Kann es sein, dass der Compiler möglicherweise Code wegoptimiert, wenn er nicht notwendig ist?
    (Zum Beispiel das Umschalten in den Multicolor-Textmode nach dem ersten Rasterbalken, wenn kein Logo dargestellt wird? Wobei der Compiler das eigentlich gar nicht wissen kann...)


    Oder braucht die Darstellung des Logos in Char-Form auch Rasterzeit?
    (Ich dachte mir, einmal hingeschrieben und passt schon. Zumindest bis ich mich dran versuche, es hin und her schwingen zu lassen! ;) )


    Danke schonmal für eine Aufklärung

  • Ich hatte so einen Effekt beim cc65 Compiler mit Inline-Assembler-Optimierungen. Beim KickAss Assembler kenne ich mich leider nicht aus... :(

  • KickAss ist ein _Assembler_ - kein "Compiler". Der optimiert da auch nichts weg.

    Bitte melde dich an, um diesen Link zu sehen. hilft vlt.

  • :?: Was ich aber nicht ganz verstehe: Einer meiner beiden 10 Pixel hohen Rasterbalken fängt an, in einer Zeile instabil zu werden, sobald ich den Logo-Code einbaue.
    Dieser Code baut nur einmal ganz am Anfang (bevor noch die Interrupts initialisiert sind) das Logo aus der Map und den Tiles zusammen sonst nichts!

    Könnte es vielleicht sein, daß durch das Einbauen dieses Codes der nachfolgende Code über eine Pagegrenze geschoben wird, so daß ein Sprung jetzt einen Taktzyklus mehr benötigt? Wie ist denn deine Speicheraufteilung?


  • KickAss ist ein _Assembler_ - kein "Compiler". Der optimiert da auch nichts weg.

    Bitte melde dich an, um diesen Link zu sehen. hilft vlt.

    Ok... Da haben mich dann wohl die Macros und die mehrfachen Flex-Passes verwirrt...

    Ja, die Seite kenn' ich...
    Und wie gesagt: Ohne Logo sind die Balken ja stabil!
    Erst sobald ich den Logo-Aufbau allerdings einkommentiere, sind sie nicht mehr stabil.

  • braucht die Darstellung des Logos in Char-Form auch Rasterzeit?


    Nö, das gilt eher für Sprites.

    Pagegrenze ist ein heißer Tipp, aber ohne Source können wir nur orakeln oder dich an Codebase verweisen.

    Das Problem müsste sich aber durch Cyclewaster (NOP NOP NOPpedi NOP) irgendwie dreckig beheben lassen.

  • KickAss ist ein _Assembler_ - kein "Compiler". Der optimiert da auch nichts weg.

    Bitte melde dich an, um diesen Link zu sehen. hilft vlt.

    Könnte es vielleicht sein, daß durch das Einbauen dieses Codes der nachfolgende Code über eine Pagegrenze geschoben wird, so daß ein Sprung jetzt einen Taktzyklus mehr benötigt? Wie ist denn deine Speicheraufteilung?

    Das klingt gut!

    Memory Map mit Logo
    $0801-$080c Basic
    $080e-$080d Basic End
    $0810-$0df3 main program <-
    $3800-$3b67 logofont

    und ohne Logo
    $0810-$0985 main program <-

    Und nach ein wenig herumverschieben ist der Rasterbalken wieder flackerfrei!

    Danke! Da wär' ich alleine nicht draufgekommen!
    :thumbsup: