Aktuelle Zeit: 21.07.2018 07:02

Alle Zeiten sind UTC + 1 Stunde




 Seite 1 von 1 [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Xak - The Art of Visual Stage
BeitragVerfasst: 31.01.2016 19:53 
Code Bro
Code Bro
Benutzeravatar

Registriert: 12.08.2012 20:18
Beiträge: 2662
Wohnort: ハノーファー区
+Positive Tradingpoints+: 12 von 12
Dateianhang:
1677341-___sfc.jpg
1677341-___sfc.jpg [ 49.25 KiB | 1507-mal betrachtet ]


Habe heute ein bisschen im Kot gewühlt. Keine Ahnung, ob ich das je weitermache. Wenns wer haben will.

Normale Spielansicht
BG1 - Map - Vordergrund
BG2 - Map - Böden
BG3 - Menü/Lifebar/Textbox

Dialog/Shop:
BG1 - deaktiviert
BG2 - Porträt
BG3 - Textbox

ROM:
$00/81D9 OAM-Update
$00/824D VRAM-Update via DMA
$01/B175 Positionskalkulation(?)


RAM:
7E0003-7E0004 - Temp Store(?) der globalen X-Position ($0097 + $0504)

7E0009-7E000A - Temp Store(?) der globalen Y-Position ($0099 + $0502)

7E0015-7E0017 - Standardmäßiger Speicherplatz für Adressen (bei indirekter Adressierung)

7E001C-7E001D - Pointer zum nächsten DMA-Pipeline-Slot (=#$18x0), siehe $00/824D)

7E006F        - Vergleichswert für Blickrichtung = Backup Blickrichtung im letzten Frame?

7E0097-7E0098 - X Scroll Value
7E0099-7E009A - Y Scroll Value
7E009B-7E009C - X Scroll Value (Backup?)
7E009D-7E009E - Y Scroll Value (Backup?)
7E009F        - Breite der Map in 8x8px Tiles

7E00A1        - Höhe der Map in 8x8px Tiles

7E00C8-7E00E7 - Werte für animierte BG1-Tiles - Gerader Byte: #$00 Animation an, sonst Animation aus / Ungerader Byte: Animationsschritt

7E0502-7E0503 - Y-Pos auf dem Bildschirm
7E0504-7E0505 - X-Pos auf dem Bildschirm
7E0506        - Blickrichtung (1=r, 2=l, 4=runter, 8=hoch, [10=r, 20=unsichtb., 40=glitch, 80=unsichtb.])

7E0515        - Breite der Hitbox in 8px-Schritten

7E0530        - Y-Koordinate des Tiles, auf dem man steht(?)
7E0531        - X-Koordinate des Tiles, auf dem man steht(?)

7E1800-7E18xF - VRAM-DMA-Register Buffer:
(Es werden wohl max. nur 3 Slots gleichzeitig genutzt, siehe $01/90AA)
       7E18x0 - $2115 Value (Ohne MSB; $FF = inaktiv)
       7E18x1 - $2116 Value / VRAM Adresse Lo Byte
       7E18x2 - $2117 Value / VRAM Adresse Hi Byte
       7E18x3 - $43x2 Value / WRAM Adresse Lo Byte
       7E18x4 - $43x3 Value / WRAM Adresse Lo Byte
       7E18x5 - $43x4 Value / WRAM Bank
       7E18x6 - $43x5 Value / Data Counter Lo
       7E18x7 - $43x6 Value / Data Counter Hi

7E1A00-7E1A3F - CGRAM-Buffer - Menüs (scheinen fix zu sein)
7E1A40-7E1AFF - CGRAM-Buffer - Maps / Porträts
7E1B00-7E1BFF - CGRAM-Buffer - Sprites

7E1D00        - OAM-Buffer

7E2000-7E2xxx - Map (16x16-Tiles) für BG2
7E3000-7E3xxx - Map (16x16-Tiles) für BG1
7E4000-7E4xxx - Collision Map ($80=nicht betretbar, $40=schädlich, $00=Betretbar)

7E7000-7E77FF - Je 4 x 2 Byte adressen für "Baupläne", welche 4 8x8-Tiles ein 16x16 BG-Tile ergeben
      High Byte (ungerade Adresse) Bits für Collision Map: #$C2 = #%1100.0010

7E7800-7E78xx - Animierte BG1-Grafiken: Tile-Adressen der einzelnen Animationsschritte

7E7A00-7E7BFF - Buffer für animinerte BG1-Grafiken

7E9000-7E9... - Start Buffer BG2



VRAM:
Map Tiles (Bg1/2) ab 2000
Dialog-Porträt ab 3000
Helden-Sprites ab 3600 (immer(?))
Animierte BG1-Tiles (z.B. Kirchenglocke) 3F00-3FFF
Textbox-Inhalt ab 4F00


Commendierter Kot:
versteckter Inhalt:
; Abarbeiten der VRAM-DMA-Pipeline
$00/824D A2 00 18    LDX #$1800
$00/8250 86 1C       STX $1C    [$00:001C]   ; Resette den Pointer für den nächsten Freien Slot
$00/8252 B5 00       LDA $00,x  [$00:1800]   ; Lade $43x0-Register Buffer
$00/8254 30 36       BMI $36    [$828C]      ; Beende den Loop, wenn negativ
$00/8256 09 80       ORA #$80         ; Setz Bit für 16-bit-VRAM-Transfer
$00/8258 8D 15 21    STA $2115  [$00:2115]
$00/825B B4 01       LDY $01,x  [$00:1801]
$00/825D 8C 16 21    STY $2116  [$00:2116]   ; $18x1/2 = VRAM Adresse
$00/8260 A9 01       LDA #$01
$00/8262 8D 00 43    STA $4300  [$00:4300]   ; Standard 16bit transfer
$00/8265 A9 18       LDA #$18
$00/8267 8D 01 43    STA $4301  [$00:4301]   ; Ziel: $2118 - VRAM
$00/826A B4 03       LDY $03,x  [$00:1803]   ; DMA Adresse
$00/826C 8C 02 43    STY $4302  [$00:4302]
$00/826F B5 05       LDA $05,x  [$00:1805]   ; DMA Bank (HDMA wird nicht von dieser Funktion abgedeckt(?))
$00/8271 8D 04 43    STA $4304  [$00:4304]
$00/8274 B4 06       LDY $06,x  [$00:1806]   ; Anzahl Bytes
$00/8276 8C 05 43    STY $4305  [$00:4305]
$00/8279 A9 01       LDA #$01
$00/827B 8D 0B 42    STA $420B  [$00:420B]   ; Aktivier DMA
$00/827E A9 FF       LDA #$FF
$00/8280 95 00       STA $00,x  [$00:1800]   ; Erledigten DMA-Slot als Frei markieren
$00/8282 E8          INX
$00/8283 E8          INX
$00/8284 E8          INX
$00/8285 E8          INX
$00/8286 E8          INX
$00/8287 E8          INX
$00/8288 E8          INX
$00/8289 E8          INX         ; Inkrementier X für die Adresse des nächsten DMA-Slots
$00/828A 80 C6       BRA $C6    [$8252]      ; Loop und nächsten DMA-Slot prüfen/ggf. durchführen






; Lade neue Map: Transfer der 16x16-Tile-Baupläne + Animierten BG1-Tiles
$01/869F AB          PLB                     A:FFFF X:4000 Y:0000 P:eNvmxdIzc
$01/86A0 A0 03 00    LDY #$0003              A:FFFF X:4000 Y:0000 P:envmxdIZc
$01/86A3 B1 00       LDA ($00),y[$00:90C3]   ; Lade Paletten-Adresse
$01/86A5 85 15       STA $15    [$00:0015]   ; Setz Temp Adresse in $15 auf
$01/86A7 E2 20       SEP #$20
$01/86A9 A0 05 00    LDY #$0005
$01/86AC B1 00       LDA ($00),y[$00:90C5]   ; Lade Palettenbank
$01/86AE 85 17       STA $17    [$00:0017]   ; Setz Temp Adresse in $15 auf, Teil zwo

; Transferiere Paletten in den CGRAM-Buffer
$01/86B0 A0 BF 00    LDY #$00BF         ; Counter-Setup
$01/86B3 B7 15       LDA [$15],y[$19:F773]   ; Lade Farbe
$01/86B5 99 40 1A    STA $1A40,y[$00:1AFF]   ; Speicher in CGRAM-Buffer
$01/86B8 88          DEY         ; Dekrementiere Counter
$01/86B9 10 F8       BPL $F8    [$86B3]      ; Loop


$01/86BB C2 20       REP #$20                A:F600 X:4000 Y:FFFF P:eNvMxdIzc
$01/86BD A0 06 00    LDY #$0006              A:F600 X:4000 Y:FFFF P:eNvmxdIzc
$01/86C0 B1 00       LDA ($00),y[$00:90C6]   A:F600 X:4000 Y:0006 P:envmxdIzc
$01/86C2 85 15       STA $15    [$00:0015]   A:9AAE X:4000 Y:0006 P:eNvmxdIzc
$01/86C4 C8          INY                     A:9AAE X:4000 Y:0006 P:eNvmxdIzc
$01/86C5 B1 00       LDA ($00),y[$00:90C7]   A:9AAE X:4000 Y:0007 P:envmxdIzc
$01/86C7 85 16       STA $16    [$00:0016]   A:1E9A X:4000 Y:0007 P:envmxdIzc
$01/86C9 E2 20       SEP #$20                A:1E9A X:4000 Y:0007 P:envmxdIzc
$01/86CB 8B          PHB         ; Bewahre aktuelle Bank auf
$01/86CC F4 00 7E    PEA $7E00         ; Setze Direct Bank auf $7E
$01/86CF AB          PLB
$01/86D0 AB          PLB
$01/86D1 A0 FF 08    LDY #$08FF         ; Anzahl an Bytes / von $7E78FF bis $7E7000

;Datentransfer Loop
$01/86D4 B7 15       LDA [$15],y[$1E:A3AD]   A:1E9A X:4000 Y:08FF P:envMxdIzc
$01/86D6 99 00 70    STA $7000,y[$7E:78FF]   A:1E00 X:4000 Y:08FF P:envMxdIZc
$01/86D9 88          DEY                     A:1E00 X:4000 Y:08FF P:envMxdIZc
$01/86DA B7 15       LDA [$15],y[$1E:A3AC]   A:1E00 X:4000 Y:08FE P:envMxdIzc
$01/86DC 99 00 70    STA $7000,y[$7E:78FE]   A:1E00 X:4000 Y:08FE P:envMxdIZc
$01/86DF 88          DEY                     A:1E00 X:4000 Y:08FE P:envMxdIZc
$01/86E0 10 F2       BPL $F2    [$86D4]      A:1E00 X:4000 Y:08FD P:envMxdIzc








;???
$01/86E2 AB          PLB                     A:1E00 X:4000 Y:FFFF P:eNvMxdIzc
$01/86E3 C2 20       REP #$20                A:1E00 X:4000 Y:FFFF P:envMxdIZc
$01/86E5 A0 09 00    LDY #$0009              A:1E00 X:4000 Y:FFFF P:envmxdIZc
$01/86E8 B1 00       LDA ($00),y[$00:90C9]   A:1E00 X:4000 Y:0009 P:envmxdIzc
$01/86EA 85 15       STA $15    [$00:0015]   A:8745 X:4000 Y:0009 P:eNvmxdIzc
$01/86EC C8          INY                     A:8745 X:4000 Y:0009 P:eNvmxdIzc
$01/86ED B1 00       LDA ($00),y[$00:90CA]   A:8745 X:4000 Y:000A P:envmxdIzc
$01/86EF 85 16       STA $16    [$00:0016]   A:1C87 X:4000 Y:000A P:envmxdIzc
$01/86F1 20 C6 84    JSR $84C6  [$01:84C6]   A:1C87 X:4000 Y:000A P:envmxdIzc











;???
$01/86F4 E2 20       SEP #$20                A:1C87 X:4000 Y:000A P:envmxdIzc
$01/86F6 A0 00 00    LDY #$0000              A:1C87 X:4000 Y:000A P:envMxdIzc
$01/86F9 84 15       STY $15    [$00:0015]   A:1C87 X:4000 Y:0000 P:envMxdIZc
$01/86FB A9 7F       LDA #$7F                A:1C87 X:4000 Y:0000 P:envMxdIZc
$01/86FD 85 17       STA $17    [$00:0017]   A:1C7F X:4000 Y:0000 P:envMxdIzc
$01/86FF C2 20       REP #$20                A:1C7F X:4000 Y:0000 P:envMxdIzc
$01/8701 A7 15       LDA [$15]  [$7F:0000]   A:1C7F X:4000 Y:0000 P:envmxdIzc
$01/8703 85 9F       STA $9F    [$00:009F]   A:0020 X:4000 Y:0000 P:envmxdIzc
$01/8705 A0 02 00    LDY #$0002              A:0020 X:4000 Y:0000 P:envmxdIzc
$01/8708 B7 15       LDA [$15],y[$7F:0002]   A:0020 X:4000 Y:0002 P:envmxdIzc
$01/870A 85 A1       STA $A1    [$00:00A1]   A:0030 X:4000 Y:0002 P:envmxdIzc
$01/870C A0 04 00    LDY #$0004              A:0030 X:4000 Y:0002 P:envmxdIzc
$01/870F B7 15       LDA [$15],y[$7F:0004]   A:0030 X:4000 Y:0004 P:envmxdIzc
$01/8711 85 A3       STA $A3    [$00:00A3]   A:0000 X:4000 Y:0004 P:envmxdIZc
$01/8713 A0 06 00    LDY #$0006              A:0000 X:4000 Y:0004 P:envmxdIZc
$01/8716 B7 15       LDA [$15],y[$7F:0006]   A:0000 X:4000 Y:0006 P:envmxdIzc
$01/8718 85 A5       STA $A5    [$00:00A5]   A:00C0 X:4000 Y:0006 P:envmxdIzc
$01/871A A0 08 00    LDY #$0008              A:00C0 X:4000 Y:0006 P:envmxdIzc
$01/871D B7 15       LDA [$15],y[$7F:0008]   A:00C0 X:4000 Y:0008 P:envmxdIzc
$01/871F 4A          LSR A                   A:0300 X:4000 Y:0008 P:envmxdIzc
$01/8720 3A          DEC A                   A:0180 X:4000 Y:0008 P:envmxdIzc
$01/8721 85 06       STA $06    [$00:0006]   A:017F X:4000 Y:0008 P:envmxdIzc
$01/8723 A0 0F 00    LDY #$000F              A:017F X:4000 Y:0008 P:envmxdIzc
$01/8726 B7 15       LDA [$15],y[$7F:000F]   A:017F X:4000 Y:000F P:envmxdIzc
$01/8728 29 FF 00    AND #$00FF              A:DB00 X:4000 Y:000F P:eNvmxdIzc
$01/872B 85 95       STA $95    [$00:0095]   A:0000 X:4000 Y:000F P:envmxdIZc
$01/872D A5 06       LDA $06    [$00:0006]   A:0000 X:4000 Y:000F P:envmxdIZc
$01/872F A2 10 00    LDX #$0010              A:017F X:4000 Y:000F P:envmxdIzc
$01/8732 A0 00 20    LDY #$2000              A:017F X:0010 Y:000F P:envmxdIzc
$01/8735 54 7E 7F    MVN 7F 7E               A:017F X:0010 Y:2000 P:envmxdIzc
$01/8738 A5 06       LDA $06    [$00:0006]   A:FFFF X:0190 Y:2180 P:envmxdIzc
$01/873A A0 00 30    LDY #$3000              A:017F X:0190 Y:2180 P:envmxdIzc
$01/873D 54 7E 7F    MVN 7F 7E               A:017F X:0190 Y:3000 P:envmxdIzc
$01/8740 E2 20       SEP #$20                A:FFFF X:0310 Y:3180 P:envmxdIzc
$01/8742 A2 00 70    LDX #$7000              A:FFFF X:0310 Y:3180 P:envMxdIzc
$01/8745 86 00       STX $00    [$00:0000]   A:FFFF X:7000 Y:3180 P:envMxdIzc
$01/8747 A0 FF 07    LDY #$07FF              A:FFFF X:7000 Y:3180 P:envMxdIzc
$01/874A B1 00       LDA ($00),y[$7E:77FF]   A:FFFF X:7000 Y:07FF P:envMxdIzc
$01/874C 29 81       AND #$81                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/874E 85 03       STA $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8750 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8752 29 10       AND #$10                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8754 0A          ASL A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8755 0A          ASL A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8756 04 03       TSB $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8758 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875A 29 20       AND #$20                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/875C 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875D 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875E 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875F 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8760 04 03       TSB $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8762 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8764 29 0E       AND #$0E                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8766 0A          ASL A                   A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8767 04 03       TSB $03    [$00:0003]   A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8769 B1 00       LDA ($00),y[$7E:77FF]   A:FF10 X:7000 Y:07FF P:envMxdIZc
$01/876B 29 40       AND #$40                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/876D 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/876E 05 03       ORA $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8770 91 00       STA ($00),y[$7E:77FF]   A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8772 88          DEY                     A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8773 88          DEY                     A:FF10 X:7000 Y:07FE P:envMxdIzc
$01/8774 10 D4       BPL $D4    [$874A]      A:FF10 X:7000 Y:07FD P:envMxdIzc










; Bau die Collision Map
$01/8776 C2 20       REP #$20         ; A = 16bit
$01/8778 A5 9F       LDA $9F    [$00:009F]   ; Lade Breite der Map (Anzahl 8x8 Tiles)
$01/877A 4A          LSR A         ; geteilt durch 2 (anzahl 16x16 Tiles)
$01/877B 85 06       STA $06    [$00:0006]   ; Speicher in $06
$01/877D A5 A1       LDA $A1    [$00:00A1]   ; Lade Höhe der Map (Anzahl 8x8 Tiles)
$01/877F 4A          LSR A         ; geteilt durch 2 (anzahl 16x16 Tiles)
$01/8780 EB          XBA         ; Ein bisschen Getrickse, faktisch wird jetzt nur diese Anzahl in

$07 gespeichert
$01/8781 05 06       ORA $06
$01/8783 85 06       STA $06
$01/8785 E2 20       SEP #$20         ; A=8bit
$01/8787 A0 00 20    LDY #$2000         ; Setze BG2-16x16-Tile-Map-Adresse in $00 auf
$01/878A 84 00       STY $00    [$00:0000]
$01/878C A0 00 30    LDY #$3000         ; Setze BG1-16x16-Tile-Map-Adresse in $03 auf
$01/878F 84 03       STY $03    [$00:0003]
$01/8791 A0 00 40    LDY #$4000         ; Setze Collision-Map-Adresse in $18 auf
$01/8794 84 18       STY $18    [$00:0018]

;Setup für eine neue Reihe
$01/8796 A6 06       LDX $06    [$00:0006]   ; X = Höhe/Breite der Map
$01/8798 DA          PHX         ; Auf den Stack geschmissen
$01/8799 A6 18       LDX $18    [$00:0018]   ; Aktuelle Zeile in der
$01/879B DA          PHX         ; Auf den Stack geschmissen

;Loop für eine Reihe Tiles
$01/879C C2 20       REP #$20         ; A=16bit
$01/879E B2 00       LDA ($00)  [$7E:2000]   ; Lade BG2-Map-16x16-Tile
$01/87A0 29 FF 00    AND #$00FF         ; Stelle den entspr. Byte frei
$01/87A3 0A          ASL A         ; mal 8
$01/87A4 0A          ASL A
$01/87A5 0A          ASL A
$01/87A6 18          CLC
$01/87A7 69 00 70    ADC #$7000         ; Addresse des Tile-Bauplans in der Bauplanliste ab $7E7000
$01/87AA 1A          INC A         ; +1 (für den entsprechenden High Byte)
$01/87AB 85 09       STA $09    [$00:0009]   ; Speicher in $09
$01/87AD B2 03       LDA ($03)  [$7E:3000]   ; Lade BG1-Map-16x16-Tile
$01/87AF 29 FF 00    AND #$00FF         ; Stelle den entspr. Byte frei
$01/87B2 0A          ASL A         ; mal 8
$01/87B3 0A          ASL A
$01/87B4 0A          ASL A
$01/87B5 18          CLC
$01/87B6 69 00 70    ADC #$7000         ; Addresse des Tile-Bauplans in der Bauplanliste ab $7E7000
$01/87B9 1A          INC A         ; +1 (für den entsprechenden High Byte)
$01/87BA 85 0C       STA $0C    [$00:000C]   ; Speicher in $09
$01/87BC E2 20       SEP #$20         ; A=8bit
$01/87BE A5 95       LDA $95    [$00:0095]   A:7179 X:4000 Y:4000 P:envMxdIzc
$01/87C0 D0 33       BNE $33    [$87F5]      A:7100 X:4000 Y:4000 P:envMxdIZc
$01/87C2 B2 09       LDA ($09)  [$7E:76D9]   ; Lade BG2-Tile (mit Collision-Map Flags)
$01/87C4 12 0C       ORA ($0C)  [$7E:7179]   ; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87C6 29 C2       AND #$C2         ; Entferne alles außer den Collision Map Flags
$01/87C8 92 18       STA ($18)  [$7E:4000]   ; Speicher in die Collision Map (l-o 8x8)
$01/87CA A0 02 00    LDY #$0002         ; Y=2, für zweites Tile im Bauplan
$01/87CD B1 09       LDA ($09),y[$7E:76DB]   ; Lade BG2-Tile (mit Collision-Map Flags)
$01/87CF 11 0C       ORA ($0C),y[$7E:717B]   ; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87D1 29 C2       AND #$C2         ; Entferne alles außer den Collision Map Flags
$01/87D3 A0 01 00    LDY #$0001         ; Rechts oben = +1
$01/87D6 91 18       STA ($18),y[$7E:4001]   ; Speicher in die Collision Map (r-o 8x8)
$01/87D8 A0 04 00    LDY #$0004         ; Y=4, für drittes Tile im Bauplan
$01/87DB B1 09       LDA ($09),y[$7E:76DD]   ; Lade BG2-Tile (mit Collision-Map Flags)
$01/87DD 11 0C       ORA ($0C),y[$7E:717D]   ; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87DF 29 C2       AND #$C2         ; Entferne alles außer den Collision Map Flags
$01/87E1 A4 9F       LDY $9F    [$00:009F]   ; Lade "Verschieber" für nächste Reihe (#$20)
$01/87E3 91 18       STA ($18),y[$7E:4020]   ; Speicher in die Collision Map (l-u 8x8)
$01/87E5 A0 06 00    LDY #$0006         ; Y=6, für viertes Tile im Bauplan
$01/87E8 B1 09       LDA ($09),y[$7E:76DF]   ; Lade BG2-Tile (mit Collision-Map Flags)
$01/87EA 11 0C       ORA ($0C),y[$7E:717F]   ; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87EC 29 C2       AND #$C2         ; Entferne alles außer den Collision Map Flags
$01/87EE A4 9F       LDY $9F    [$00:009F]   ; Lade "Verschieber" für nächste Reihe (#$20)
$01/87F0 C8          INY         ; +1, um das Tile rechts vom dritten anzusprechen
$01/87F1 91 18       STA ($18),y[$7E:4021]   ; Speicher in die Collision Map (r-u 8x8)
$01/87F3 80 29       BRA $29    [$881E]      ; Jump zur Inkrement-Automatik

; Nächstes Tile
$01/881E C2 20       REP #$20         ; A=16bit
$01/8820 E6 00       INC $00    [$00:0000]   ; Erhöhe BG2-16x16-Tile-Map-Adresse
$01/8822 E6 03       INC $03    [$00:0003]   ; Erhöhe BG1-16x16-Tile-Map-Adresse
$01/8824 E6 18       INC $18    [$00:0018]   ; Erhöhe Collision-Map-Adresse
$01/8826 E6 18       INC $18    [$00:0018]
$01/8828 E2 20       SEP #$20         ; A=8bit
$01/882A C6 06       DEC $06    [$00:0006]   ; Dekrementiere die Anzahl an zu-erledigenden Tiles für diese Reihe
$01/882C F0 03       BEQ $03    [$8831]      ; Springe, wenn Reihe fertig
$01/882E 82 6B FF    BRL $FF6B  [$879C]      ; Ansonsten: Loop

;Neue Zeile
$01/8831 C2 20       REP #$20         ; A=16bit
$01/8833 68          PLA         ; Hol Adresse der aktuellen Collision-Map-Zeile vom Stack
$01/8834 18          CLC
$01/8835 65 9F       ADC $9F    [$00:009F]   ; Hau zweimal die Mapbreite drauf
$01/8837 65 9F       ADC $9F    [$00:009F]   ; (D. h. man hat den Anfangspunkt der nächsten Zeile)
$01/8839 85 18       STA $18    [$00:0018]   ; Speicher als neue Collision-Map-Speicheradresse
$01/883B E2 20       SEP #$20         ; A=8bit
$01/883D FA          PLX         ; Hol Höhe/Breite der Map vom Stack
$01/883E 86 06       STX $06         ; Speicher in $06/$07
$01/8840 C6 07       DEC $07    [$00:0007]   ; Verringere Höhe um 1 (weil eine Zeile erledigt wurde)
$01/8842 F0 03       BEQ $03    [$8847]      ; Spring, wenn alle Zeilen fertig sind
$01/8844 4C 96 87    JMP $8796  [$01:8796]   ; Sonst: Loop












; Animierte BG1-Tiles (Setup beim Kartenwechsel?)
$01/902E 48          PHA         ; Akku, Index-Register, Direct Bank, Direct Page aufn Stack
$01/902F DA          PHX
$01/9030 5A          PHY
$01/9031 8B          PHB
$01/9032 08          PHP
$01/9033 F4 00 7E    PEA $7E00         ; Setze Direct Bank auf $7E
$01/9036 AB          PLB
$01/9037 AB          PLB
$01/9038 A2 00 7A    LDX #$7A00         ; Adresse des Buffers für animierte BG1-Tile
$01/903B 86 18       STX $18    [$00:0018]   ; Speicher Buffer-Adresse in $18
$01/903D A2 00 00    LDX #$0000         ; Animations-Index-Setup
$01/9040 A0 00 78    LDY #$7800         ; Tile-Animationslistensetup
$01/9043 A9 10       LDA #$10         ; Maximum an möglichen Animation
$01/9045 85 06       STA $06    [$00:0006]   ; Setup als Counter in $06
$01/9047 B5 C8       LDA $C8,x  [$00:00C8]   ; Ist eine Animation aktiviert? (=#$00)
$01/9049 D0 41       BNE $41    [$908C]      ; Spring, wenn nicht (!=#$00)

; Animierte BG1-Tiles(?)
$01/904B B9 00 00    LDA $0000,y[$7E:7800]   A:0100 X:0000 Y:7800 P:envMxdIZC
$01/904E F0 3C       BEQ $3C    [$908C]      A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9050 95 C8       STA $C8,x  [$00:00C8]   A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9052 A9 01       LDA #$01                A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9054 04 C7       TSB $C7    [$00:00C7]   A:0101 X:0000 Y:7800 P:envMxdIzC
$01/9056 F6 C9       INC $C9,x  [$00:00C9]   ; Erhöhe Animationsschritt
$01/9058 B5 C9       LDA $C9,x  [$00:00C9]   ; Lade Animationsschritt-Nummer
$01/905A C2 20       REP #$20         ; A=16bit
$01/905C 29 FF 00    AND #$00FF         ; Entferne, was noch im Akku-High-Byte rumgammelte
$01/905F C9 07 00    CMP #$0007         ; Bei 7 angekommen?
$01/9062 F0 08       BEQ $08    [$906C]      ; Wenn ja, Spring zum Animationsschritt-Nummer-Resetten
$01/9064 1A          INC A         ; (Animationsnummer + 1) * 2
$01/9065 0A          ASL A
$01/9066 85 00       STA $00    [$00:0000]   ; ... als Index für die Adresse, wo die nächste Tilegrafik geladen

werden soll
$01/9068 B1 00       LDA ($00),y[$7E:780E]   ; Wenn die geladene Animationstile-Adresse #$0000 ist,
$01/906A D0 0A       BNE $0A    [$9076]      ; ist das hier das Zeichen, dass die Animation hier gecycled wird
;Animations-Cycling
$01/906C B5 C8       LDA $C8,x  [$00:00C8]   ; Wieder doof verpackt, aber faktisch wird der Animationsschritt

resettet
$01/906E 29 FF 00    AND #$00FF         ; Nämlich hier: Der High Byte ($C9,x) wird gecleart
$01/9071 95 C8       STA $C8,x  [$00:00C8]   ; Und alles wird wieder zurückkgespeichert
$01/9073 B9 02 00    LDA $0002,y[$7E:7802]   ; Lade die Adresse vom ersten Tile der Animation und übertrag das

in den VRAM

;Verschiebe Tile-Graphik(?)-Daten im WRAM
$01/9076 DA          PHX         ; Konservier X & Y
$01/9077 5A          PHY
$01/9078 0A          ASL A         ; A * $20
$01/9079 0A          ASL A
$01/907A 0A          ASL A
$01/907B 0A          ASL A
$01/907C 0A          ASL A
$01/907D 18          CLC                     A:0600 X:0000 Y:7800 P:envmxdIzc
$01/907E 69 00 C0    ADC #$C000              A:0600 X:0000 Y:7800 P:envmxdIzc
$01/9081 AA          TAX                     A:C600 X:0000 Y:7800 P:eNvmxdIzc
$01/9082 A4 18       LDY $18    [$00:0018]   A:C600 X:C600 Y:7800 P:eNvmxdIzc
$01/9084 A9 1F 00    LDA #$001F         ; $20 Bytes
$01/9087 54 7E 7E    MVN 7E 7E         ; VERSCHIEBE DATEN
$01/908A 7A          PLY         ; Wiederherstellen von X & Y
$01/908B FA          PLX

$01/908C C2 20       REP #$20         ; A16bit
$01/908E A5 18       LDA $18    [$00:0018]   ; Lade Buffer-Adresse der Animierten BG1-Tiles
$01/9090 18          CLC
$01/9091 69 20 00    ADC #$0020         ; +#$20 (Adresse nächstes Tiles)
$01/9094 85 18       STA $18    [$00:0018]   ; Speicher zurück
$01/9096 98          TYA         ; Erhöhe die "anvisierte" Tabelle von Animationstiles
$01/9097 18          CLC
$01/9098 69 10 00    ADC #$0010
$01/909B A8          TAY
$01/909C E2 20       SEP #$20                A:7810 X:0000 Y:7810 P:envmxdIzc
$01/909E D6 C8       DEC $C8,x  [$00:00C8]   A:7810 X:0000 Y:7810 P:envMxdIzc
$01/90A0 E8          INX                     A:7810 X:0000 Y:7810 P:envMxdIzc
$01/90A1 E8          INX                     A:7810 X:0001 Y:7810 P:envMxdIzc
$01/90A2 C6 06       DEC $06    [$00:0006]   A:7810 X:0002 Y:7810 P:envMxdIzc
$01/90A4 D0 A1       BNE $A1    [$9047]      A:7810 X:0002 Y:7810 P:envMxdIzc
$01/90A6 A5 C7       LDA $C7    [$00:00C7]   A:7900 X:0020 Y:7900 P:envMxdIZc
$01/90A8 F0 29       BEQ $29    [$90D3]      A:7900 X:0020 Y:7900 P:envMxdIZc

; Setz einen WRAM-nach-VRAM-DMA in der Pipeline für die animierten Tile-Grafiken auf
$01/90AA A6 1C       LDX $1C    [$00:001C]   ; Lade Pointer für nächsten freien VRAM-DMA-Slot
$01/90AC E0 20 18    CPX #$1820
$01/90AF B0 22       BCS $22    [$90D3]      ; Überspring das, wenn alle (3) Slots voll sind(?)
$01/90B1 A9 01       LDA #$01                A:7901 X:1800 Y:7900 P:eNvMxdIzc
$01/90B3 14 C7       TRB $C7    [$00:00C7]   A:7901 X:1800 Y:7900 P:envMxdIzc
$01/90B5 A0 00 3F    LDY #$3F00         ; VRAM-Zieladresse: $3F00
$01/90B8 94 01       STY $01,x  [$00:1801]
$01/90BA A0 00 7A    LDY #$7A00         ; Daten-Buffer ist bei 7E:7A00
$01/90BD 94 03       STY $03,x  [$00:1803]
$01/90BF A9 7E       LDA #$7E
$01/90C1 95 05       STA $05,x  [$00:1805]
$01/90C3 A0 00 02    LDY #$0200         ; $200 Byte per DMA übertragen
$01/90C6 94 06       STY $06,x  [$00:1806]
$01/90C8 74 00       STZ $00,x  [$00:1800]
$01/90CA C2 20       REP #$20         ; A =16bit
$01/90CC 8A          TXA         ; Stelle Adresse des nächsten freien DMA-Slots her
$01/90CD 18          CLC
$01/90CE 69 08 00    ADC #$0008
$01/90D1 85 1C       STA $1C    [$00:001C]   ; Speicher sie in $1C (wie gehabt)

; Stell alles wieder her und Exit
$01/90D3 28          PLP
$01/90D4 AB          PLB
$01/90D5 7A          PLY
$01/90D6 FA          PLX
$01/90D7 68          PLA
$01/90D8 60          RTS





; Aus der Funktion: "Ich lade einen neuen Tile-Streifen, weil der Held die Map Scrollt"
$01/9447 C2 20       REP #$20                A:00D0 X:00DE Y:0500 P:eNvmxdIzc
$01/9449 A5 A7       LDA $A7    [$00:00A7]   A:00D0 X:00DE Y:0500 P:eNvmxdIzc
$01/944B 10 62       BPL $62    [$94AF]      A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94AF E6 87       INC $87    [$00:0087]   A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94B1 A5 87       LDA $87    [$00:0087]   A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94B3 18          CLC                     A:32CE X:00DE Y:0500 P:envmxdIzc
$01/94B4 69 10 00    ADC #$0010              A:32CE X:00DE Y:0500 P:envmxdIzc
$01/94B7 85 18       STA $18    [$00:0018]   A:32DE X:00DE Y:0500 P:envmxdIzc
$01/94B9 A5 83       LDA $83    [$00:0083]   A:32DE X:00DE Y:0500 P:envmxdIzc
$01/94BB 29 1E 00    AND #$001E              A:0106 X:00DE Y:0500 P:envmxdIzc
$01/94BE C9 1E 00    CMP #$001E              A:0006 X:00DE Y:0500 P:envmxdIzc
$01/94C1 D0 0B       BNE $0B    [$94CE]      A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/94CE A5 83       LDA $83    [$00:0083]   A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/94D0 1A          INC A                   A:0106 X:00DE Y:0500 P:envmxdIzc
$01/94D1 1A          INC A                   A:0107 X:00DE Y:0500 P:envmxdIzc
$01/94D2 85 83       STA $83    [$00:0083]   A:0108 X:00DE Y:0500 P:envmxdIzc
$01/94D4 49 00 04    EOR #$0400              A:0108 X:00DE Y:0500 P:envmxdIzc
$01/94D7 85 12       STA $12    [$00:0012]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/94D9 A5 95       LDA $95    [$00:0095]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/94DB F0 25       BEQ $25    [$9502]      A:0000 X:00DE Y:0500 P:envmxdIZc
$01/9502 A5 97       LDA $97    [$00:0097]   A:0000 X:00DE Y:0500 P:envmxdIZc
$01/9504 85 9B       STA $9B    [$00:009B]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/9506 E6 8A       INC $8A    [$00:008A]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/9508 A5 8A       LDA $8A    [$00:008A]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/950A 18          CLC                     A:22CE X:00DE Y:0500 P:envmxdIzc
$01/950B 69 10 00    ADC #$0010              A:22CE X:00DE Y:0500 P:envmxdIzc
$01/950E 85 15       STA $15    [$00:0015]   A:22DE X:00DE Y:0500 P:envmxdIzc
$01/9510 A5 85       LDA $85    [$00:0085]   A:22DE X:00DE Y:0500 P:envmxdIzc
$01/9512 29 1E 00    AND #$001E              A:0106 X:00DE Y:0500 P:envmxdIzc
$01/9515 C9 1E 00    CMP #$001E              A:0006 X:00DE Y:0500 P:envmxdIzc
$01/9518 D0 0B       BNE $0B    [$9525]      A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/9525 A5 85       LDA $85    [$00:0085]   A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/9527 1A          INC A                   A:0106 X:00DE Y:0500 P:envmxdIzc
$01/9528 1A          INC A                   A:0107 X:00DE Y:0500 P:envmxdIzc
$01/9529 85 85       STA $85    [$00:0085]   A:0108 X:00DE Y:0500 P:envmxdIzc
$01/952B 49 00 04    EOR #$0400              A:0108 X:00DE Y:0500 P:envmxdIzc
$01/952E 85 0F       STA $0F    [$00:000F]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9530 08          PHP                     A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9531 8B          PHB         ; Sichere aktuelle Direct Bank auf dem Stack
$01/9532 F4 00 7E    PEA $7E00         ; Setze $7E als Direct Bank
$01/9535 AB          PLB
$01/9536 AB          PLB
$01/9537 A5 0F       LDA $0F    [$00:000F]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9539 0A          ASL A         ; Mal zwei
$01/953A 85 03       STA $03    [$00:0003]   ; Zwischenspeicherdas als Speicher-Index im BG2-Buffer
$01/953C 29 C0 07    AND #$07C0         ; #%0000.0edc.ba00.0000
$01/953F 0A          ASL A         ; #%0000.edcb.a000.0000
$01/9540 EB          XBA         ; #%a000.0000.0000.edcb
$01/9541 29 FF 00    AND #$00FF         ; #%0000.0000.0000.edcb
$01/9544 85 06       STA $06    [$00:0006]   A:0004 X:00DE Y:0500 P:envmxdIzc
$01/9546 A9 10 00    LDA #$0010              A:0004 X:00DE Y:0500 P:envmxdIzc
$01/9549 38          SEC                     A:0010 X:00DE Y:0500 P:envmxdIzc
$01/954A E5 06       SBC $06    [$00:0006]   A:0010 X:00DE Y:0500 P:envmxdIzC
$01/954C 85 06       STA $06    [$00:0006]   A:000C X:00DE Y:0500 P:envmxdIzC
$01/954E 48          PHA                     A:000C X:00DE Y:0500 P:envmxdIzC

; Bau die neuen 16x16-Tiles gemäß Tilemap im Buffer zusammen.
$01/954F B2 15       LDA ($15)  [$7E:22DE]   ; Lade BG2 16x16-Tilenummer
$01/9551 29 FF 00    AND #$00FF         ; Entferne unnötig vollgeladenen High Byte
$01/9554 0A          ASL A         ; mal 8 (jeder Eintrag hat 8 Byte Länge)
$01/9555 0A          ASL A
$01/9556 0A          ASL A
$01/9557 AA          TAX         ; Transferier in X als Lade-Index
$01/9558 A4 03       LDY $03    [$00:0003]   ; Lade Speicher-Index in Y
$01/955A BD 00 70    LDA $7000,x[$7E:7640]   ; Lade 1., l-o 8x8-Tile für 16x16 Tile
$01/955D 29 FF 3D    AND #$3DFF         ; %0011.1101.1111.1111
$01/9560 99 00 90    STA $9000,y[$7E:9A10]   ; Speicher in den BG2-Buffer
$01/9563 BD 02 70    LDA $7002,x[$7E:7642]   ; Lade 2., r-o 8x8-Tile für 16x16 Tile
$01/9566 29 FF 3D    AND #$3DFF
$01/9569 99 02 90    STA $9002,y[$7E:9A12]   ; Speicher in den BG2-Buffer (rechts daneben)
$01/956C BD 04 70    LDA $7004,x[$7E:7644]   ; Lade 3., l-u 8x8-Tile für 16x16 Tile
$01/956F 29 FF 3D    AND #$3DFF
$01/9572 99 40 90    STA $9040,y[$7E:9A50]   ; Speicher in den BG2-Buffer (+#$40 = Eine Reihe tiefer)
$01/9575 BD 06 70    LDA $7006,x[$7E:7646]   ; Lade 4., r-u 8x8-Tile für 16x16 Tile
$01/9578 29 FF 3D    AND #$3DFF
$01/957B 99 42 90    STA $9042,y[$7E:9A52]   ; Speicher in den BG2-Buffer (rechts daneben)
$01/957E 98          TYA         ; Erhöhe den Speicherindex um #$80 (zwei 8x8px-Reihen tiefer -

nächstes 16x16 Tile)
$01/957F 18          CLC
$01/9580 69 80 00    ADC #$0080
$01/9583 85 03       STA $03    [$00:0003]   ; Speicher den Speicher-Index wieder in $03
$01/9585 A5 9F       LDA $9F    [$00:009F]   A:0A90 X:0640 Y:0A10 P:envmxdIzc
$01/9587 4A          LSR A                   A:0080 X:0640 Y:0A10 P:envmxdIzc
$01/9588 18          CLC                     A:0040 X:0640 Y:0A10 P:envmxdIzc








$01/B175 AD 0C 05    LDA $050C  [$00:050C]   A:7901 X:04D0 Y:0500 P:envMxdIzC
$01/B178 0D 0D 05    ORA $050D  [$00:050D]   A:7914 X:04D0 Y:0500 P:envMxdIzC
$01/B17B D0 02       BNE $02    [$B17F]      (Überspringt ein Exit?)

$01/B17F A9 E0       LDA #$E0                A:7914 X:04D0 Y:0500 P:envMxdIzC
$01/B181 1C FF 17    TRB $17FF  [$00:17FF]   A:79E0 X:04D0 Y:0500 P:eNvMxdIzC
$01/B184 A9 40       LDA #$40                A:79E0 X:04D0 Y:0500 P:eNvMxdIZC
$01/B186 14 61       TRB $61    [$00:0061]   A:7940 X:04D0 Y:0500 P:envMxdIzC
$01/B188 A9 FF       LDA #$FF                A:7940 X:04D0 Y:0500 P:envMxdIZC
$01/B18A 85 79       STA $79    [$00:0079]   A:79FF X:04D0 Y:0500 P:eNvMxdIzC

$01/B18C C2 20       REP #$20
$01/B18E AD 04 05    LDA $0504  [$00:0504]   ; X-Pos aufm Bildschirm
$01/B191 18          CLC
$01/B192 65 97       ADC $97    [$00:0097]   ; Plus Scrollwert
$01/B194 85 03       STA $03    [$00:0003]   ; Globale X-Position in $03
$01/B196 4A          LSR A
$01/B197 4A          LSR A
$01/B198 4A          LSR A         ; Geteilt durch 8
$01/B199 E2 20       SEP #$20         ; A = 8 Bit
$01/B19B 8D 31 05    STA $0531  [$00:0531]   ; = $0531 X-Koord des Tiles(?) auf dem man steht(?)

$01/B19E C2 20       REP #$20
$01/B1A0 AD 02 05    LDA $0502  [$00:0502]   ; Y-Pos aufm Bildschirm
$01/B1A3 18          CLC
$01/B1A4 65 99       ADC $99    [$00:0099]   ; Plus Scrollwert
$01/B1A6 85 09       STA $09    [$00:0009]   ; Globale Y-Position in $09
$01/B1A8 4A          LSR A
$01/B1A9 4A          LSR A
$01/B1AA 4A          LSR A         ; Geteilt durch 8
$01/B1AB E2 20       SEP #$20         ; A = 8 Bit
$01/B1AD 8D 30 05    STA $0530  [$00:0530]   ; = $0530 Y-Koord des Tiles(?) auf dem man steht(?)

$01/B1B0 AD 31 05    LDA $0531  [$00:0531]   A:0022 X:04D0 Y:0500 P:envMxdIzc
$01/B1B3 8D 76 05    STA $0576  [$00:0576]   A:002B X:04D0 Y:0500 P:envMxdIzc
$01/B1B6 A9 0C       LDA #$0C                A:002B X:04D0 Y:0500 P:envMxdIzc
$01/B1B8 2D 06 05    AND $0506  [$00:0506]   ; Abgleich mit Blickrichtungs-Flagregister
$01/B1BB F0 22       BEQ $22    [$B1DF]      ; Wenn nicht = #$40, dann spring

$01/B1DF AD 30 05    LDA $0530  [$00:0530]   A:0000 X:04D0 Y:0500 P:envMxdIZc
$01/B1E2 8D 75 05    STA $0575  [$00:0575]   A:0022 X:04D0 Y:0500 P:envMxdIzc
$01/B1E5 AD 06 05    LDA $0506  [$00:0506]   ; Blickrichtung
$01/B1E8 C9 02       CMP #$02         ; Blickrichtung nach links?
$01/B1EA F0 0C       BEQ $0C    [$B1F8]      ; Spring wenn ja

$01/B1EC AD 31 05    LDA $0531  [$00:0531]   ; Lade X-Koordinate des aktuellen 8x8-Tiles
$01/B1EF 18          CLC
$01/B1F0 6D 15 05    ADC $0515  [$00:0515]   ; Plus Spritebreite in 8px-Schritten
$01/B1F3 8D 76 05    STA $0576  [$00:0576]   ; $576= Koordinate "Ziel-Tile"; das, was als nächstes betreten wird
$01/B1F6 80 07       BRA $07    [$B1FF]      A:002D X:04D0 Y:0500 P:envMxdIzc

$01/B1FF A5 6F       LDA $6F    [$00:006F]   A:002D X:04D0 Y:0500 P:envMxdIzc
$01/B201 D0 03       BNE $03    [$B206]      A:0001 X:04D0 Y:0500 P:envMxdIzc
$01/B206 CD 06 05    CMP $0506  [$00:0506]   ; Vergleiche mit Blickrichtung
$01/B209 F0 03       BEQ $03    [$B20E]      A:0001 X:04D0 Y:0500 P:envMxdIZC

;Wird neues 8x8 Tile betreten?
$01/B20E A9 06       LDA #$06         ; Endet die aktuelle Gesamtposition auf #$06/#$0C? D.h., wird...
$01/B210 25 03       AND $03    [$00:0003]   ; ... ein neues 8x8-Tile betreten?
$01/B212 D0 2C       BNE $2C    [$B240]      ; spring, wenn nicht

$01/B214 A9 02       LDA #$02                A:0000 X:04D0 Y:0500 P:envMxdIZC
$01/B216 24 6F       BIT $6F    [$00:006F]   A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B218 F0 10       BEQ $10    [$B22A]      A:0002 X:04D0 Y:0500 P:envMxdIZC
$01/B22A A9 01       LDA #$01                A:0002 X:04D0 Y:0500 P:envMxdIZC
$01/B22C 24 6F       BIT $6F    [$00:006F]   A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B22E F0 10       BEQ $10    [$B240]      A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B230 C2 20       REP #$20                A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B232 A0 08 00    LDY #$0008              A:0001 X:04D0 Y:0500 P:envmxdIzC
$01/B235 B7 69       LDA [$69],y[$05:801E]   A:0001 X:04D0 Y:0008 P:envmxdIzC
$01/B237 A8          TAY                     A:0000 X:04D0 Y:0008 P:envmxdIZC
$01/B238 E2 20       SEP #$20                A:0000 X:04D0 Y:0000 P:envmxdIZC
$01/B23A 20 80 B2    JSR $B280  [$01:B280]   A:0000 X:04D0 Y:0000 P:envMxdIZC

$01/B240 A9 06       LDA #$06                A:0004 X:04D0 Y:0500 P:envMxdIzC
$01/B242 25 09       AND $09    [$00:0009]   A:0006 X:04D0 Y:0500 P:envMxdIzC
$01/B244 D0 2C       BNE $2C    [$B272]      A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B272 C2 20       REP #$20                A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B274 A0 0E 00    LDY #$000E              A:0002 X:04D0 Y:0500 P:envmxdIzC
$01/B277 B7 69       LDA [$69],y[$05:8024]   A:0002 X:04D0 Y:000E P:envmxdIzC
$01/B279 A8          TAY                     A:80AD X:04D0 Y:000E P:eNvmxdIzC
$01/B27A E2 20       SEP #$20                A:80AD X:04D0 Y:80AD P:eNvmxdIzC
$01/B27C A9 10       LDA #$10                A:80AD X:04D0 Y:80AD P:eNvMxdIzC
$01/B27E 04 75       TSB $75    [$00:0075]   A:8010 X:04D0 Y:80AD P:envMxdIzC
$01/B280 C0 01 00    CPY #$0001              A:8010 X:04D0 Y:80AD P:envMxdIZC
$01/B283 B0 01       BCS $01    [$B286]      A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B286 84 6C       STY $6C    [$00:006C]   A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B288 A5 6B       LDA $6B    [$00:006B]   A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B28A 85 6E       STA $6E    [$00:006E]   A:8005 X:04D0 Y:80AD P:envMxdIzC
$01/B28C A0 00 00    LDY #$0000              A:8005 X:04D0 Y:80AD P:envMxdIzC
$01/B28F 80 16       BRA $16    [$B2A7]      A:8005 X:04D0 Y:0000 P:envMxdIZC
$01/B2A7 C8          INY                     A:8005 X:04D0 Y:0000 P:envMxdIZC
$01/B2A8 B7 6C       LDA [$6C],y[$05:80AE]   A:8005 X:04D0 Y:0001 P:envMxdIzC
$01/B2AA C8          INY                     A:8001 X:04D0 Y:0001 P:envMxdIzC
$01/B2AB 0A          ASL A                   A:8001 X:04D0 Y:0002 P:envMxdIzC
$01/B2AC D0 03       BNE $03    [$B2B1]      A:8002 X:04D0 Y:0002 P:envMxdIzc
$01/B2B1 C9 0E       CMP #$0E                A:8002 X:04D0 Y:0002 P:envMxdIzc
$01/B2B3 90 03       BCC $03    [$B2B8]      A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2B8 85 00       STA $00    [$00:0000]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BA 64 01       STZ $01    [$00:0001]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BC A6 00       LDX $00    [$00:0000]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BE A9 02       LDA #$02                A:8002 X:0002 Y:0002 P:envMxdIzc
$01/B2C0 04 75       TSB $75    [$00:0075]   A:8002 X:0002 Y:0002 P:envMxdIzc
$01/B2C2 7C BB E3    JMP ($E3BB,x)[$01:B2C5] A:8002 X:0002 Y:0002 P:envMxdIZc
$01/B2C5 C2 20       REP #$20                A:8002 X:0002 Y:0002 P:envMxdIZc
$01/B2C7 B7 6C       LDA [$6C],y[$05:80AF]   A:8002 X:0002 Y:0002 P:envmxdIZc
$01/B2C9 C8          INY                     A:0514 X:0002 Y:0002 P:envmxdIzc
$01/B2CA C8          INY                     A:0514 X:0002 Y:0003 P:envmxdIzc
$01/B2CB 85 00       STA $00    [$00:0000]   A:0514 X:0002 Y:0004 P:envmxdIzc
$01/B2CD E2 20       SEP #$20                A:0514 X:0002 Y:0004 P:envmxdIzc
$01/B2CF A9 7E       LDA #$7E                A:0514 X:0002 Y:0004 P:envMxdIzc
$01/B2D1 85 02       STA $02    [$00:0002]   A:057E X:0002 Y:0004 P:envMxdIzc
$01/B2D3 B7 6C       LDA [$6C],y[$05:80B1]   A:057E X:0002 Y:0004 P:envMxdIzc
$01/B2D5 C8          INY                     A:05F0 X:0002 Y:0004 P:eNvMxdIzc
$01/B2D6 8D 0B 0F    STA $0F0B  [$00:0F0B]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/B2D9 4C 04 0F    JMP $0F04  [$01:0F04]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/0F04 A7 00       LDA [$00]  [$7E:0514]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/0F06 D7 6C       CMP [$6C],y[$05:80B2]   A:05FF X:0002 Y:0005 P:eNvMxdIzc
$01/0F08 08          PHP                     A:05FF X:0002 Y:0005 P:eNvMxdIzC
$01/0F09 C8          INY                     A:05FF X:0002 Y:0005 P:eNvMxdIzC
$01/0F0A 28          PLP                     A:05FF X:0002 Y:0006 P:envMxdIzC
$01/0F0B F0 03       BEQ $03    [$0F10]      A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/0F0D 4C 91 B2    JMP $B291  [$01:B291]   A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/B291 C2 20       REP #$20                A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/B293 A0 00 00    LDY #$0000              A:05FF X:0002 Y:0006 P:eNvmxdIzC
$01/B296 A7 6C       LDA [$6C]  [$05:80AD]   A:05FF X:0002 Y:0000 P:envmxdIZC
$01/B298 29 FF 00    AND #$00FF              A:010B X:0002 Y:0000 P:envmxdIzC
$01/B29B D0 03       BNE $03    [$B2A0]      A:000B X:0002 Y:0000 P:envmxdIzC
$01/B2A0 18          CLC                     A:000B X:0002 Y:0000 P:envmxdIzC
$01/B2A1 65 6C       ADC $6C    [$00:006C]   A:000B X:0002 Y:0000 P:envmxdIzc
$01/B2A3 85 6C       STA $6C    [$00:006C]   A:80B8 X:0002 Y:0000 P:eNvmxdIzc
$01/B2A5 E2 20       SEP #$20                A:80B8 X:0002 Y:0000 P:eNvmxdIzc
$01/B29D 82 97 00    BRL $0097  [$B337]      A:0000 X:0002 Y:0000 P:envmxdIZC
$01/B337 E2 20       SEP #$20                A:0000 X:0002 Y:0000 P:envmxdIZC
$01/B339 AD FF 17    LDA $17FF  [$00:17FF]   A:0000 X:0002 Y:0000 P:envMxdIZC
$01/B33C 0A          ASL A                   A:0001 X:0002 Y:0000 P:envMxdIzC
$01/B33D 90 0D       BCC $0D    [$B34C]      A:0002 X:0002 Y:0000 P:envMxdIzc
$01/B34C A9 20       LDA #$20                A:0002 X:0002 Y:0000 P:envMxdIzc
$01/B34E 2C FF 17    BIT $17FF  [$00:17FF]   A:0020 X:0002 Y:0000 P:envMxdIzc
$01/B351 F0 0A       BEQ $0A    [$B35D]      A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B35D 08          PHP                     A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B35E A9 40       LDA #$40                A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B360 24 75       BIT $75    [$00:0075]   A:0040 X:0002 Y:0000 P:envMxdIzc
$01/B362 F0 17       BEQ $17    [$B37B]      A:0040 X:0002 Y:0000 P:envMxdIZc
$01/B37B A9 20       LDA #$20                A:0040 X:0002 Y:0000 P:envMxdIZc
$01/B37D 24 75       BIT $75    [$00:0075]   A:0020 X:0002 Y:0000 P:envMxdIzc
$01/B37F F0 03       BEQ $03    [$B384]      A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B384 A9 01       LDA #$01                A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B386 24 75       BIT $75    [$00:0075]   A:0001 X:0002 Y:0000 P:envMxdIzc
$01/B388 F0 30       BEQ $30    [$B3BA]      A:0001 X:0002 Y:0000 P:envMxdIZc
$01/B3BA A9 80       LDA #$80                A:0001 X:0002 Y:0000 P:envMxdIZc
$01/B3BC 24 75       BIT $75    [$00:0075]   A:0080 X:0002 Y:0000 P:eNvMxdIzc
$01/B3BE F0 03       BEQ $03    [$B3C3]      A:0080 X:0002 Y:0000 P:envMxdIZc
$01/B3C3 7B          TDC                     A:0080 X:0002 Y:0000 P:envMxdIZc
$01/B3C4 AD 42 05    LDA $0542  [$00:0542]   A:0000 X:0002 Y:0000 P:envMxdIZc
$01/B3C7 C9 FF       CMP #$FF                A:00FF X:0002 Y:0000 P:eNvMxdIzc
$01/B3C9 F0 0B       BEQ $0B    [$B3D6]      A:00FF X:0002 Y:0000 P:envMxdIZC
$01/B3D6 A9 F3       LDA #$F3                A:00FF X:0002 Y:0000 P:envMxdIZC
$01/B3D8 14 75       TRB $75    [$00:0075]   A:00F3 X:0002 Y:0000 P:eNvMxdIzC
$01/B3DA 28          PLP                     A:00F3 X:0002 Y:0000 P:eNvMxdIzC
$01/B3DB 60          RTS                     A:00F3 X:0002 Y:0000 P:envMxdIZc



_________________
pantalytron: ルトロンはくそのディスアセンブラだよ!

Perikles hat geschrieben:
Man muss sich das mal reinziehen: die Idee ist scheiße, die theoretische Ausarbeitung ist scheiße, die praktische Umsetzung ist scheiße und der so entstehende Anspruch noch beschissener.
Offline
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
 Seite 1 von 1 [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:

Zurück zu Hacking und Translation


cron