Eine Optimierung dieses Codes halte ich sowieso für überbewertet, weshalb ich in GoDot (und dann in Zukunft sicher auch im Saver für Pixel Perfect) einfach $AD verwende. Liegt bei meinem Namen irgendwie nahe, hehe... 
Ah, nein, mit $AD funktioniert es leider nicht. Aber ein $RE würde gehen. 
Bleiben die drei $10 am Fileanfang: Die bedeuten was, denn wenn ich sie ändere, wird das Bild nicht mehr ordentlich dargestellt.
Du sollst eine Magicnumber ja auch nicht ändern, Arndt. 
Wenn ich das richtig erkannt habe dann wird nach dem Laden eins Bildes, egal ob gepackt oder ungepackt, die folgende Routine aufgerufen (die Daten werden nach Adresse $4000 geladen):
.C:1b1d A2 02 LDX #$02
.C:1b1f BD 00 40 LDA $4000,X
.C:1b22 C9 10 CMP #$10
.C:1b24 D0 2D BNE $1B53
.C:1b26 CA DEX
.C:1b27 10 F6 BPL $1B1F
...
.C:1b53 20 47 24 JSR $2447
.C:1b56 4C A4 1A JMP $1AA4
...
; hier wird lustig im Speicher herumkopiert
.C:2447 78 SEI
.C:2448 A9 34 LDA #$34
.C:244a 85 01 STA $01
.C:244c AD 7F 83 LDA $837F
.C:244f 48 PHA
.C:2450 A2 3F LDX #$3F
.C:2452 BD 00 C3 LDA $C300,X
.C:2455 9D 00 FF STA $FF00,X
.C:2458 CA DEX
.C:2459 10 F7 BPL $2452
.C:245b A9 C2 LDA #$C2
.C:245d A2 FE LDX #$FE
.C:245f A0 3F LDY #$3F
.C:2461 20 3D 3D JSR $3D3D ; kopiere Bereich von 8400-c2ff nach c000-fe00 (oder so ähnlich...)
.C:2464 A9 40 LDA #$40
.C:2466 A2 BC LDX #$BC
.C:2468 A0 04 LDY #$04
.C:246a 20 BA 20 JSR $20BA ; kopiere Bereich von 4000-43ff nach bc00-bfff
.C:246d A9 44 LDA #$44
.C:246f A2 40 LDX #$40
.C:2471 A0 40 LDY #$40
.C:2473 20 BA 20 JSR $20BA ; kopiere Bereich von 4400-8400 nach 4000-8000
.C:2476 A9 BC LDA #$BC
.C:2478 A2 80 LDX #$80
.C:247a A0 04 LDY #$04
.C:247c 20 BA 20 JSR $20BA ; kopiere Bereich von bc00-bfff nach 8000-83ff
.C:247f 68 PLA
.C:2480 8D 7F 7F STA $7F7F
.C:2483 E6 01 INC $01
.C:2485 60 RTS
Alles anzeigen
Schaut für mich ersteinmal so aus als würde die $10 $10 $10 tatsächlich nur zur Unterscheidung von gepackten und ungepackten Bildern dienen.
Außerdem scheint das gepackte Bild seine Hintergrundfarbe irgendwo anders herzubeziehen als das ungepackte, denn im obigen Fall kriege ich immer Weiß (ich setze aber generell Schwarz...)
Hast du mal probiert ein Bild mit verschiedenen Hintergrundfarben abzuspeichern? Da müsste man im Vergleich ja herausbekommen wo die Farbe gespeichert steht.
PS: bei der Kommentierung des Packers habe ich mich bei den Kommentaren gegen Ende hin glaube ich mit Input- und Output-Buffer vertan. Und wahrscheinilch stecken da auch noch andere Fehler drin... Darauf sei ein geneigter Leser hiermit hingewiesen.