Found, it's an open bus crapness:
C0516A: LDA $004212
C0516E: BIT #$01
C05170: BEQ c05178 ($6) <- it must jump here
It's weird though, in theory lda $4212 last open bus value should be 0x00, where it takes that needed 0x02?
Game works fine apart from this anyway:
EDIT:
Maybe ... LDA $4212 machine code is "0xaf 0x12 0x42 0x00"
So, the open bus for this specific opcode is either 0x42 / 0x12 and not 0x00?
EDIT2:
Actually, bit #$01 opcode indicates that is testing bit 0, not bit 1 like I've thought, yay for unclear dasm'ing ^^U