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:

[Linked Image from mamedev.emulab.it]

[Linked Image from mamedev.emulab.it]

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

Last edited by Kale; 04/03/10 02:46 PM.