I am not good in explanations. But look in to pictures to understand what I am saying.
Edit:
When the boss is defeated, it falls apart. If it is facing left, it falls apart properly. However, if it is facing the other way, the pieces still fall as if it was facing the other way. This behaviour is obviously wrong. The following code checks which way he is facing, and properly calls for the right routine so that he falls apart properly!
Thanks to Irixion for better explanation:
Using Sonic 2 Delta for comparisons.
(All codes translated to use with Xenowhirl, 2007 version.)

ARZ Boss:
Find:
loc_30850: cmpi.w #$78,($FFFFF75C).w bgt.s return_3088A subi.w #1,y_radius(a0) ; <---------- move.l objoff_3A(a0),d0 move.w objoff_2E(a0),d1
Make the following changes:
loc_30850:
cmpi.w #$78,($FFFFF75C).w
bgt.s return_3088A
bsr NGHz_Boss_Fix_EjectHammer ; subi.w #1,y_radius(a0) ; <----------
move.l objoff_3A(a0),d0
move.w objoff_2E(a0),d1
....
return_3088A:
rts
;===============================================================================
NGHz_Boss_Fix_EjectHammer: ; Esrael L. G. Neto Rotina para corrigir o bug ao ejetar o martelo
btst #$00, $0001(A0)
bne.s NGHz_Boss_Fix_EjectHammer_Mirror
subi.w #$0001, $0016(A0) ; Ejeta o Martelo
rts
NGHz_Boss_Fix_EjectHammer_Mirror:
addi.w #$0001, $0016(A0) ; Ejeta o Martelo
rts
;===============================================================================

MCz Boss
Find:
loc_31358:
cmpi.w #$78,($FFFFF75C).w
bgt.s return_313C4
subi.w #1,status(a0) <------------
....
loc_31392:
addi.w #1,x_vel(a0) <------------
move.l objoff_34(a0),d0
Make the following changes:
loc_31358:
cmpi.w #$78,($FFFFF75C).w
bgt.s return_313C4
bsr MCz_Boss_Fix_EjectDrill ; subi.w #1,status(a0) <------------
....
loc_31392:
bsr MCz_Boss_Fix_EjectDrill ; addi.w #1,x_vel(a0) <------------
move.l objoff_34(a0),d0
......
return_313C4:
rts
;===============================================================================
MCz_Boss_Fix_EjectDrill: ; Esrael L. G. Neto Rotina para corrigir o bug ao ejetar as blocas
btst #$00, $0001(A0)
bne.s MCz_Boss_Fix_EjectDrill_Mirror
addi.w #$0001, $0010(A0) ; Ejeta a bloca da frente da Nave
subi.w #$0001, $0022(A0) ; Ejeta a bloca de trás da Nave
rts
MCz_Boss_Fix_EjectDrill_Mirror:
subi.w #$0001, $0010(A0) ; Ejeta a bloca da frente da Nave
addi.w #$0001, $0022(A0) ; Ejeta a bloca de trás da Nave
rts
;===============================================================================

CNz Boss
Find:
loc_31EAE:
cmpi.w #$78,($FFFFF75C).w
bgt.s return_31F22
subi.w #1,status(a0) ; <------------------
move.l objoff_3A(a0),d0
....
loc_31EE8:
cmpi.w #$3C,($FFFFF75C).w
bgt.s return_31F22
addi.w #1,x_vel(a0) ; <--------------
move.l objoff_34(a0),d0
Make the following changes:
loc_31EAE:
cmpi.w #$78,($FFFFF75C).w
bgt.s return_31F22
bsr.s Obj51_Fix_Eject_Left_Catcher ; subi.w #1,status(a0) ; <------------------
move.l objoff_3A(a0),d0
....
loc_31EE8:
cmpi.w #$3C,($FFFFF75C).w
bgt.s return_31F22
bsr.s Obj51_Fix_Eject_Right_Catcher ; addi.w #1,x_vel(a0) ; <--------------
move.l objoff_34(a0),d0
.....
return_31F22:
rts
;===============================================================================
; Eject Catcher Fix Added by Esrael L. G. Neto
; [ Begin ]
;===============================================================================
Obj51_Fix_Eject_Left_Catcher:
btst #$00, $0001(A0)
bne.s Obj51_Eject_Left_Catcher_Mirror
subi.w #$0001, $0022(a0) ; Eject Left Catcher From Ship
rts
Obj51_Eject_Left_Catcher_Mirror:
addi.w #$0001, $0022(a0) ; Eject Left Catcher From Ship
rts
Obj51_Fix_Eject_Right_Catcher:
btst #$00, $0001(A0)
bne.s Obj51_Eject_Right_Catcher_Mirror
addi.w #$0001, $0010(A0) ; Eject Right Catcher From Ship
rts
Obj51_Eject_Right_Catcher_Mirror:
subi.w #$0001, $0010(A0) ; Eject Right Catcher From Ship
rts
;===============================================================================
; Eject Catcher Fix Added by Esrael L. G. Neto
; [ End ]
;===============================================================================
Debug Crash if you try placing an object after you death the game will Crash
In debug routine find this block:
loc_41C12: btst #5,(Ctrl_1_Press).w beq.s loc_41C56 jsr (SingleObjLoad).l
And insert the following code:
loc_41C12: btst #5,(Ctrl_1_Press).w beq.s loc_41C56 ;---------------------------------------------------- ; Debug crash fix ; Neto - Sonic 2D cmpi.b #$06, ($FFFFB024).w bne.s Player_Ok rts Player_Ok: ;--------------------------------------------------- jsr (SingleObjLoad).l
Edit: asm tags


00



