Tilemap: db $44,$46 print "MAIN ",pc PHB PHK PLB JSR MainCode PLB RTL print "INIT ",pc RTL MainCode: JSR Graphics LDA $9D BNE Return %SubOffScreen() JSL $01803A|!BankB JSL $019138 LDY #$00 JSR SetFrame LDA $C2,x AND #$01 JSL $0086DF SpritePtrs: dw Section1 Return: RTS XSpeed: db $14,$EC Section1: LDY $157C,x LDA XSpeed,y STA $B6,x JSL $818022 LDA $1540,x BNE Return2 INC $1570,x LDY $1570,x CPY #$04 BEQ Section3 LDA $157C,x EOR #$01 STA $157C,x LDA #$20 CPY #$03 BEQ Section2 LDA #$40 Section2: STA $1540,x Return2: RTS Section3: INC $C2,x LDA #$80 STA $1540,x LDA #$A0 STA $AA,x RTS SetFrame: LDA $14 ; AND #$04 ; ;BEQ Frame1 ; ;INY ; original code ;Frame1: ; ;TYA ; LSR #2 ; but this is faster STA !1602,x ; RTS Graphics: %GetDrawInfo() ; LDA !157C,x ; STA $02 ; LDA !1602,x ; TAX ; LDA Tilemap,x ; set the sprite tilemap STA $0302|!Base2,y ; LDX $15E9|!Base2 ; LDA $00 ; STA $0300|!Base2,y ; no X displacement LDA $01 ; STA $0301|!Base2,y ; no Y displacement LDA !157C,x ; LSR ; if the sprite is facing right... LDA !15F6,x ; BCS NoXFlip ; X-flip it EOR #$40 ; NoXFlip: ; ORA $64 ; STA $0303|!Base2,y ; TYA ; LSR #2 ; TAY ; LDA #$02 ; ORA !15A0,x ; STA $0460|!Base2,y ; set the tile size PHK ; PER $0006 ; PEA $8020 ; JML $01A3DF|!BankB ; set up some stuff in OAM RTS ;