Kolizje_ADV:
 ldx #$00
 stx $E0
 stx $C3
 stx $C4
 stx $C5

 lda #$20
 sta $C0
 sta $C1
 sta $C2

 lda Hero_Y
 LSR A
 LSR A
 LSR A
 sta $D0
 sta $E1

 lda Hero_X
 LSR A
 LSR A
 LSR A
 sta $D1
 clc
 adc $E1
 sta $E2

 lda Hero_Y
 cmp #$D0
 bcc Kolizje.Linia.DOL		;Chodzi o to e linia na samym dole
 ldy #$1B			;nie powinna si liczy do kolizji
 jmp Kolizje.Linia.DOL2	

Kolizje.Linia.DOL:
 ldy $E1	;Dla stp
 ldx #$00
 iny
 iny
 iny

Kolizje.Linia.DOL2
 jsr Kolizje_ADV.calcY

 ldx #$02
 ldy $E1	;Kolizje dla gowy
 jsr Kolizje_ADV.calcY

 
 lda Hero_X	;Kolizje dla rodka(blok chodzenia)
 sec
 sbc #$01	;Musi odj 1 piksel, bo kolizje w lewo musi wykrywa
 LSR A		;PPU a nie ten ktry jest w postaci.
 LSR A
 LSR A
 sta $D1

 lda Hero_Y
 cmp #$C0
 bcc Kolizje.Linia.DOL3
 ldy #$1A
 jmp Kolizje.Linia.DOL4

Kolizje.Linia.DOL3:
 lda Hero_Y
 clc
 adc #$07
 LSR A
 LSR A
 LSR A
 TAY
 iny
 iny

Kolizje.Linia.DOL4: 
 ldx #$01
 jsr Kolizje_ADV.calcY

Kolizje_ADV.RTS:
 rts

Kolizje_ADV.calcY:
 lda $C3,x
 clc
 adc #$20
 sta $C3,x
 bne Kolizje_ADV.calcY2
 inc $C0,x
Kolizje_ADV.calcY2
 dey
 bne Kolizje_ADV.calcY

 lda $D1
 clc
 adc $C3,x
 sta $C3,x
 rts

Kolizja.TRUE:		;Sprawdza czy zapodany w A tiles
 cmp #$00		;Ma by przeszkod.
 beq Kolizja.NO.TRUE
 cmp #$20
 bcs Kolizja.NO.TRUE
 lda #$01
 rts

Kolizja.NO.TRUE:
 lda #$00
 rts

Kolizje.Fine:
 ldx #$FF

 lda Hero_Y
 AND #%00001111
 sta Temp1

Kolizje.Fine.CHK:
 inx
 cpx #$08
 beq Kolizje.Fine.OK
 lda Fine.TBL,x
 cmp Temp1
 bne Kolizje.Fine.CHK

 dec Hero_Y
Kolizje.Fine.OK:
 rts
Fine.TBL:
 .db $01,$03,$05,$07,$09,$0B,$0D,$0F