2x2-Charset -> Sprites... geht das kürzer?

Es gibt 6 Antworten in diesem Thema, welches 1.303 mal aufgerufen wurde. Der letzte Beitrag (24. November 2008 um 19:47) ist von Mnemonic.

  • Hallo mal wieder,

    ich hab' mir die Tage eine kleine Routine gebastelt, um einen kompletten 2x2-Charset á 40 Zeichen in Sprites zu konvertieren.

    Läuft auch, aber da ich das ja nur einmal bei der Initialisierung meines Codes machen will, sollte die Routine bytetechnisch so kurz wie irgend möglich sein. Geschwindigkeit ist dabei also völlige Nebensache.

    Kürzer als im Anhang hab' ich es aber leider nicht hinbekommen... was meint Ihr, geht da noch was?

    Ach so, das ganze hat den Zweck, dass ich nur einmal den Charset in meinem Programm brauche, und ihn trotzdem für Sprites UND Textscreen verwenden kann... ich versuche mich nämlich an einem Sinusscroller aus 16 Sprites mit bissel Multiplexing. Mal schauen, ob's was wird... ;)

    Gruß,

    der Mnemonic

  • Hi,

    mir sind da noch zwei Flüchtigkeitsfehler aufgefallen: Zum einen sollte der Zeichensatz nicht bei $1800 liegen (kann der VIC ja nicht darstellen), und zum anderen müsste bei zeichen_limit und zeichen_zaehler ein $3f hin (nicht $39).

    Aber anstatt mit den ganzen Flags für links und rechts zu hantieren kann man die Routine eigentlich auch direkter schreiben.

    Sind $4f Bytes, aber das geht sicher noch kürzer. Wer bietet weniger? :)

  • :@1@: ... also DA wäre ich wohl so schnell nicht drauf gekommen, besonders das mit dem DEC auf den SBC-Befehl, um die Pages nur einmal in der Routine zu erhöhen!!!

    Hihi, ja die Flüchtigkeitsfehler... da hab' ich gestern wohl ein bisschen zu "dezimal" gedacht. Klar, der Charset bei $1800 geht natürlich auch nicht, war aber auch nur zum testen, ob die Routine an sich auch läuft.

    Aber Deine Version... :respect: !!!

    Ich mach's mir wohl manchmal unnötig kompliziert...

    Gruß,

    der Mnemonic

    Alle alphabetisch angeordnet einem in Satz sein sollten Worte.

  • Ich hab hier auch eine Version mit einem etwas anderem Durchlauf durch den Charset...

    Start auf $1000 und Ende ist dann ab $1037...
    (wenn der Start nicht am Anfang des Codeschnipsels sein muss, gehts auch noch durch Umstellung 2 Bytes kürzer)

    Charset auf $2000-$2800 und die Sprites sind dann auf $3000-$4000
    (wenn man das ändern will, muss man den Code halt etwas anpassen)


    und so 2 Bytes kürzer wenn der Start auf $1020 ist... (Ende ist dann auf $1035)

  • Hier nochmal 1 Byte kürzer... ;)
    Start nun auf $101f...

  • Ah, o.k. ... 8|

    Die Offsets für die Startadresse der Sprites über die Opcodes direkt im Code, passend zum Y-Register... da muss man erstmal drauf kommen, und das dann auch noch so umsetzen zu können!

    Hab das erstmal im Monitor Schritt für Schritt verfolgen müssen, bis ich da endlich komplett dahintergestiegen bin!

    Also echt... :respect:

    Wenn ich mir dagegen mein gecode so anschaue... so ähnlich muss es sich angefühlt haben, als den Menschen im Mittelalter klar geworden ist, dass die Erde keine Scheibe ist und man am Horizont net runterfällt! :gruebel

    Gruß,

    der Mnemonic

    Alle alphabetisch angeordnet einem in Satz sein sollten Worte.