;*******************************
;* STAGE2 MAP DATA
;* LCD LINE0 DATA
;* LCD LINE1 DATA
;* LCD LINE2 DATA
;* LCD LINE3 DATA
;* EVENT NO
;*  EVENT NO &HFF - BOSS STAGE
;*******************************

INIT_DATA_STAGE2:
; INITIAL DATA(18POINT)
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,1,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,2,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,1,0,0

STAGE2_MAP:
DB 0,0,0,0,0;READY,ERASE
DB 0,0,0,0,0;START,ERASE
DB 0,0,0,0,0;READY START DISPLAY END
DB 0,0,0,0,0;GAME START
DB 0,0,0,0,0
DB 0,0,0,0,1
DB 0,0,0,0,2
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 1,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,4,0
DB 0,0,0,0,0
DB 0,0,0,0,1
DB 0,0,0,0,2
DB 0,0,2,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,3,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 1,0,0,0,0
DB 0,2,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,3,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,1
DB 0,0,1,0,2
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,2,0
DB 0,0,0,0,&HF0
DB 0,0,0,0,0
DB 0,0,2,0,3
DB 0,0,0,0,0
DB 0,0,0,0,4
DB 0,0,0,0,0
DB 7,5,0,0,0
DB 8,6,0,0,0
DB 0,0,0,0,&HF0
DB 0,0,0,1,1
DB 0,0,0,0,2
DB 0,0,0,0,3
DB 0,0,0,0,4
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,2,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,&HF0
DB 0,0,0,0,0
DB 0,0,3,0,&HF1
DB 0,0,0,0,0
DB 0,1,0,0,0
DB 0,0,0,0,5
DB 0,0,0,0,6
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,4,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,&HF0
DB 0,0,0,0,0
DB 0,0,0,0,&HF1
DB 0,0,0,0,0
DB 3,0,0,0,0
DB 0,0,0,0,5
DB 0,0,0,0,6
DB 0,0,0,0,0
DB 0,0,7,5,0
DB 0,0,8,6,0
DB 0,0,0,0,0
DB 0,0,0,0,7
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 1,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,8
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,9
DB 0,0,3,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,2,0,0,0
DB 0,0,0,0,7
DB 0,0,0,0,0
DB 0,0,1,0,0
DB 0,0,0,1,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 3,0,0,0,0
DB 0,0,0,4,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,1,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,2,0
DB 0,0,0,0,0
DB 0,0,0,0,0
DB 0,0,0,0,&HFF ;BOSS

;******************************************************
;*              STAGE2 MAP CHARACTOR
;******************************************************
STAGE2_MAP_CHARA:
MAP2_CHR00:DB 0,0,0,0,0,0,0,0 ;無地背景
MAP2_CHR01:DB &H00,&H00,&H20,&H00,&H00,&H00,&H00,&H00 ;STAR1
MAP2_CHR02:DB &H00,&H00,&H00,&H00,&H00,&H00,&H04,&H00 ;STAR2
MAP2_CHR03:DB &H00,&H00,&H20,&H00,&H00,&H04,&H00,&H00 ;STAR3
MAP2_CHR04:DB &H02,&H00,&H00,&H10,&H38,&H10,&H00,&H00 ;STAR4
MAP2_CHR05:DB &H03,&H0C,&H10,&H20,&H40,&H80,&H80,&H80 ;PLANET1/4
MAP2_CHR06:DB &H80,&H80,&H80,&H41,&H40,&H20,&H18,&H07 ;PLANET2/4
MAP2_CHR07:DB &HC0,&H30,&H4C,&H02,&H13,&H49,&H01,&H11 ;PLANET3/4
MAP2_CHR08:DB &H05,&H01,&H01,&H02,&H14,&H04,&H18,&HE0 ;PLANET4/4
MAP2_CHR09:DB 0,0,0,0,0,0,0,0
MAP2_CHR10:DB 0,0,0,0,0,0,0,0
MAP2_CHR11:DB 0,0,0,0,0,0,0,0
MAP2_CHR12:DB 0,0,0,0,0,0,0,0
MAP2_CHR13:DB 0,0,0,0,0,0,0,0
MAP2_CHR14:DB 0,0,0,0,0,0,0,0
MAP2_CHR15:DB 0,0,0,0,0,0,0,0

;******************************************************
;*              STAGE2 ENEMY CHARACTOR
;******************************************************
CHR_ST2_01:DB &H66,&HA5,&HFF,&H24,&H24,&HFF,&HA5,&H66
CHR_ST2_02:DB &H3C,&H66,&HFF,&HBD,&HDB,&HFF,&H99,&H99
CHR_ST2_03:DB &H42,&HFF,&HDB,&H7E,&H66,&HDB,&HDB,&HFF
CHR_ST2_04:DB &H7E,&HBD,&HDB,&HE7,&HE7,&HDB,&HBD,&H7E
CHR_ST2_05:DB &H3C,&H42,&H81,&H81,&HA1,&H91,&H42,&H3C;WHITE BOMB

;******************************************************
;*              STAGE2 BOSS CHARACTOR
;******************************************************
CHR_BOSS2_FLAME:;24*8
DB	&H00,&H00,&H80,&HC0,&HE0,&HC0,&H80,&H00,&H80,&HC0,&HE0,&HC0
DB	&H80,&H00,&H80,&HC0,&HE0,&HC0,&H80,&H00,&H00,&H00,&H00,&H00
CHR_BOSS2_HAND:DB &H7E,&H81,&H81,&H81,&HA9,&HD9,&H3F,&H0C
CHR_BOSS2_FIRE:DB &H3C,&H66,&HFF,&HBF,&HFF,&HFF,&H7E,&H3C

CHR_BOSS2_2_1:DB	&HE3,&H92,&H72,&H94,&H48,&H48,&H90,&H01;CORE
CHR_BOSS2_2_2:DB	&H02,&H00,&H80,&H80,&H60,&H98,&HE6,&H73
CHR_BOSS2_2_3:DB	&H9C,&H67,&H1B,&H0C,&H03,&HE0,&HBF,&HE0

CHR_BOSS2_1_1:DB	&H0F,&H08,&H13,&H34,&H2B,&H2B,&HE4,&H83
CHR_BOSS2_1_2:DB	&HC0,&H60,&H33,&H0C,&H07,&H05,&H02,&H3D
CHR_BOSS2_1_3:DB	&H43,&HBC,&HA8,&H94,&H80,&H9F,&HEA,&H3F

CHR_BOSS2_3_1:DB	&HC0,&H4E,&H4F,&H5D,&H6F,&H8D,&H8D,&H0F
CHR_BOSS2_3_2:DB	&H0D,&H0D,&H0F,&H0D,&H0D,&H0F,&H0D,&HCD
CHR_BOSS2_3_3:DB	&H3F,&HCD,&HFF,&H3E,&HC8,&H38,&HE0,&H00


;******************************************************
;*              STAGE2 SENARIO INITIALIZE
;******************************************************
STAGE_2_INIT:
PRE IX,BASE_SENARIO_PTR
LDW $0,SCENARIO
STW $0,(IX+$31)

PRE IX,SCENARIO
LDW $0,ST2_SCENARIO_00 ;DUMMY
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_01
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_02
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_03
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_04
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_05
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_06
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_07
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_08
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_09
STIW $0,(IX+$31)
LDW $0,ST2_SCENARIO_10
STIW $0,(IX+$31)
;シナリオを16以上追加する場合はここを修正
RTN

;**********************************
;*    STAGE2 SCENARIO DATA
;*      (9BYTE:MAX64POINT)
;* 1:TIMING(出現タイミング+カウント(今回は1ドットスクロールなので0～7))
;* 2:ENEMY NO
;* 3:X
;* 4:Y
;* 5:LENGTH-X
;* 6:LENGTH-Y
;* 7:FREE
;* 8:FREE
;* 9:EXTRA
;* 10～18：0で自動初期化
;*
;*注意:1 必ず9BYTE定義すること
;*注意:2 10～18バイト目は自動的に0で初期化される
;*
;**********************************
ST2_SCENARIO_00: ;出現しない
ST2_SCENARIO_01:
DB 0,10,136,20,8,8,0,0,&H00,2,1
DB 2,10,136,20,8,8,0,0,&H00,2,1
DB 4,10,136,20,8,8,0,0,&H00,2,1
DB 6,10,136,20,8,8,0,0,&H00,2,1
DB &HFF ;END CODE
ST2_SCENARIO_02:
DB 0,10,136,20,8,8,0,0,&H00,2,1
DB 2,10,136,20,8,8,0,0,&H00,2,1
DB &HFF ;END CODE
ST2_SCENARIO_03:
DB 0,11,136,08,8,8,0,0,&H00,3,1
DB 2,11,136,16,8,8,0,0,&H00,3,1
DB 4,11,136,24,8,8,0,0,&H00,3,1
DB 6,11,136,32,8,8,0,0,&H00,3,1
DB &HFF ;END CODE
ST2_SCENARIO_04:
DB 0,12,4,08,8,8,0,0,&H00,4,1
DB 0,13,4,32,8,8,0,0,&H00,4,1
DB 2,12,4,08,8,8,0,0,&H00,4,1
DB 2,13,4,32,8,8,0,0,&H00,4,1
DB 4,12,4,08,8,8,0,0,&H00,4,1
DB 4,13,4,32,8,8,0,0,&H00,4,1
DB 6,12,4,08,8,8,0,0,&H00,4,1
DB 6,13,4,32,8,8,0,0,&H00,4,1
DB &HFF ;END CODE
ST2_SCENARIO_05:
DB 0,12,4,08,8,8,0,0,&H00,4,1
DB 0,13,4,32,8,8,0,0,&H00,4,1
DB 2,12,4,08,8,8,0,0,&H00,4,1
DB 2,13,4,32,8,8,0,0,&H00,4,1
DB 4,12,4,08,8,8,0,0,&H00,4,1
DB 4,13,4,32,8,8,0,0,&H00,4,1
DB 6,12,4,08,8,8,0,0,&H00,4,1
DB 6,13,4,32,8,8,0,0,&H00,4,1
DB &HFF ;END CODE
ST2_SCENARIO_06:
;DB 0,14,90,08,8,8,0,0,&H0A,6,1;COUNTER1は弾を撃つカウンタ(0)で発射可能,2はフェーズ、強度10
DB 0,14,80,32,8,8,0,0,&H0A,6,1;COUNTER1は弾を撃つカウンタ(0)で発射可能,2はフェーズ、強度10
DB &HFF ;END CODE

ST2_SCENARIO_07:
DB 0,15,144,08,8,8,0,0,&H00,7,1
DB 0,15,144,32,8,8,0,0,&H00,7,1
DB &HFF ;END CODE
ST2_SCENARIO_08:
DB 0,15,144,16,8,8,0,0,&H00,7,1
DB 0,15,144,32,8,8,0,0,&H00,7,1
DB &HFF ;END CODE
ST2_SCENARIO_09:
DB 0,15,144,08,8,8,0,0,&H00,7,1
DB 0,15,144,24,8,8,0,0,&H00,7,1
DB &HFF ;END CODE
ST2_SCENARIO_10:
DB &HFF ;END CODE

;シナリオは64まで記述可だが今は16のみ
;16以上追加する場合はSTAGE_2_INITを修正


;*********************************
;*        ENEMY MOVE
;*
;*********************************
ST2_ENEMY_MOVE:

LD $28,$31

ST2_ENEMYMOVE_LP:
PRE IX,ENEMY_DATA
;
PHU $28
;
LDM $9,(IX+$28),8
SBC $9,$31
JR Z,NEXT_ST2_ENEMY_M
;-------- NO JUDGE(1-7) ------------
;----------- BULLET(8) -------------
SBC $9,8
JR Z,ST2_ENEMY08_MOVE;BULLET
;---------- BOSS CORE(9) -----------
;---------- NORM(10-255)------------
SBC $9,10
JP Z,ST2_ENEMY10_MOVE;WAVE
SBC $9,11
JP Z,ST2_ENEMY11_MOVE;STRAIGHT-3
SBC $9,12
JP Z,ST2_ENEMY12_MOVE;CROSS-RETURN-ABOVE
SBC $9,13
JP Z,ST2_ENEMY13_MOVE;CROSS-RETURN-UNDER
SBC $9,14
JP Z,ST2_ENEMY14_MOVE;HARD-ROCK
SBC $9,15
JP Z,ST2_ENEMY15_MOVE;WHITE_BOMB_ENEMY

NEXT_ST2_ENEMY_M:
;
PPU $28
;
AD $28,ENEMY_STRUCT

JR NC,ST2_ENEMYMOVE_LP

RTN

ST2_ENEMY08_MOVE:;BULLET
CAL MOVE_BULLET
JP NEXT_ST2_ENEMY_M

ST2_ENEMY10_Y:
;&HFF:-1
;&HFE:-2
;&HFD:-3
DB 3,3,2,2,2,1,1,1
DB &HFF,&HFF,&HFF,&HFE,&HFE,&HFE,&HFD,&HFD
DB &HFD,&HFD,&HFE,&HFE,&HFE,&HFF,&HFF,&HFF
DB 1,1,1,2,2,2,3,3

ST2_ENEMY10_MOVE:;WAVE
;Y移動
PRE IZ,ST2_ENEMY10_Y
LD $0,(IZ+$14)
AD $11,$0
AD $14,$30
AN $14,&H1F

;X移動
SB $10,2;X=X-2
;X<0ならオブジェクトを消す
SBC $10,180
JP NC,ST2_KILL_ENEMY

JP END_ST2ENEMYMOVE

ST2_ENEMY11_MOVE:;STRAIGHT-3
;X移動
SB $10,2;X=X-2
;X<0ならオブジェクトを消す
JP C,ST2_KILL_ENEMY

;弾を撃ったことがあるなら、弾は発射しない(COUNTER1が0:撃ってない,1:発射済み)
SBC $14,$31
JP NZ,END_ST2ENEMYMOVE

PRE IZ,MY_FIGHTER
LDW $24,(IZ+$31) ;$24:MY_X $25:MY_Y

;敵X>自機Xなら敵弾は発射しない
SBC $10,$24
JP NC,END_ST2ENEMYMOVE

;発射フラグを設定する
LD $14,$30

;敵から見た自機の方向を算出
LDW $26,$10     ;$26:ENEMY_X $27:ENEMY_Y
CAL CALDIR      ;RETURN $5->DIR
CAL INSERT_BULLET
JP END_ST2ENEMYMOVE

ST2_ENEMY12_MOVE:;CROSS-RETURN-ABOVE
;PHASE CHECK

SBC $15,$31;0
JR Z,ST2_ENEMY12_PH0
SBC $15,$30;1
JR Z,ST2_ENEMY12_PH1

ST2_ENEMY12_PH2:
SB $10,3    ;X-=3
SBC $10,5
JP NC,END_ST2ENEMYMOVE
JP ST2_KILL_ENEMY

ST2_ENEMY12_PH0:
AD $10,3    ;X+=3
SBC $10,100
JP C,END_ST2ENEMYMOVE
LD $15,$30;PHASE1へ移行
JP END_ST2ENEMYMOVE

ST2_ENEMY12_PH1:
SB $10,2    ;X-=2
AD $11,1    ;Y+=1
SBC $11,32
JP C,END_ST2ENEMYMOVE
LD $15,2;PHASE2へ移行

ST2_ENEMY13_MOVE:;CROSS-RETURN-UNDER

;PHASE CHECK
SBC $15,$31;0
JR Z,ST2_ENEMY13_PH0
SBC $15,$30;1
JR Z,ST2_ENEMY13_PH1

ST2_ENEMY13_PH2:
SB $10,3    ;X-=3
SBC $10,5
JP NC,END_ST2ENEMYMOVE
JP ST2_KILL_ENEMY

ST2_ENEMY13_PH0:
AD $10,3    ;X+=3
SBC $10,100
JP C,END_ST2ENEMYMOVE
LD $15,$30;PHASE1へ移行
JP END_ST2ENEMYMOVE

ST2_ENEMY13_PH1:
SB $10,2    ;X-=2
SB $11,$30  ;Y-=1
SBC $11,9
JP NC,END_ST2ENEMYMOVE
LD $15,2;PHASE2へ移行
JP END_ST2ENEMYMOVE

ST2_ENEMY14_MOVE:;HARD-ROCK

;敵弾を三回発射したら退場する
SBC $15,3
JR Z,ST2_ENEMY14_PH1

;敵弾発射カウンタが1以上ならカウンタを減じる
SBC $14,$31
JR Z,ST2_ENEMY14_BOK
SB $14,$30

ST2_ENEMY14_BOK:

PRE IZ,MY_Y
LD $0,(IZ+$31)
SBC $11,$0
;Y軸が自機と同じなら敵弾発射処理
JR Z,ST2_ENEMY14_PH0F
;Y軸が自機より小さければY軸+移動
JR C,ST2_ENEMY14_PH0P
;Y軸が自機より大きければY軸-移動
SB $11,$30
JP END_ST2ENEMYMOVE
ST2_ENEMY14_PH0P:
AD $11,$30
JP END_ST2ENEMYMOVE

ST2_ENEMY14_PH0F:
SBC $14,$31
JP NZ,END_ST2ENEMYMOVE

;敵弾発射ウエイトカウンタを初期化
LD $14,16
;敵弾発射回数カウンタを加算(3回撃つと退場)
AD $15,$30
;STM $9,(IX+$28),8
;;;;;敵弾発射処理を追加;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LD $5,4 ;発射方向はテンキーの4の方向(固定)
PHU $11
AD $11,4;敵弾Y座標の補正
CAL INSERT_BULLET
PPU $11
JP END_ST2ENEMYMOVE;NEXT_ST2_ENEMY_M

ST2_ENEMY14_PH1:
SB $10,2
SBC $10,5
JP NC,END_ST2ENEMYMOVE
JP ST2_KILL_ENEMY

ST2_ENEMY15_MOVE:;WHITE_BOMB_ENEMY
SB $10,$30
STM $9,(IX+$28),3
SBC $10,60
JP NC,END_ST2ENEMYMOVE
CAL DELETE_OBJECT;自爆する場合は直接DELETE_OBJECTを呼ぶ

LD $5,7;BULLET DIR
PHUW $11
CAL INSERT_BULLET
PPUW $10

LD $5,9;BULLET DIR
PHUW $11
CAL INSERT_BULLET
PPUW $10

LD $5,3;BULLET DIR
PHUW $11
CAL INSERT_BULLET
PPUW $10

LD $5,1;BULLET DIR
CAL INSERT_BULLET
JP NEXT_ST2_ENEMY_M

END_ST2ENEMYMOVE:
;DATA SAVE & MAKE JUDGE DATA
PRE IX,ENEMY_DATA
STM $9,(IX+$28),8
JP NEXT_ST2_ENEMY_M

ST2_KILL_ENEMY:
CAL DELETE_OBJECT
JP NEXT_ST2_ENEMY_M

;*********************************
;*        STAGE2 ENEMY DISP
;*********************************
ST2_ENEMY_DISP:

LD $28,$31

ST2_ENEMYDISP_LP:
PRE IX,ENEMY_DATA

LDM $9,(IX+$28),8
SBC $9,$31
JR Z,NEXT_ST2_ENEMY_D
;
PHU $28
;
;GPRINTのRTN命令でRTN_ST2_EDISPに戻れるようにするため、RTN_ST2_EDISPのアドレスを
;SSPにPUSHしておく。
;なおGPRINTからの復帰はRTNでありSSPにスタックされたアドレス+1からプログラムを実行するため
;RTN_ST2_EDISPのアドレスから-1したものをSSPにPUSHする。
LDW $0,RTN_ST2_EDISP-1
PHSW $1

SBC $9,8
JR Z,ST2_ENEMY08_DISP;BULLET
SBC $9,10
JP Z,ST2_ENEMY10_DISP;WAVE
SBC $9,11
JP Z,ST2_ENEMY11_DISP;STRAIGHT-3
SBC $9,12
JP Z,ST2_ENEMY12_DISP;CROSS-RETURN-ABOVE
SBC $9,13
JP Z,ST2_ENEMY13_DISP;CROSS-RETURN-UNDER
SBC $9,14
JP Z,ST2_ENEMY14_DISP;HARD-ROCK
SBC $9,15
JP Z,ST2_ENEMY15_DISP;WHITE_BOMB_ENEMY

;JUMPしなかった場合はSSPを戻す。
PPSW $0

RTN_ST2_EDISP:
;
PPU $28
;
NEXT_ST2_ENEMY_D:

AD $28,ENEMY_STRUCT

JR NC,ST2_ENEMYDISP_LP

RTN

ST2_ENEMY08_DISP:;BULLET
LDW $13,@CHR_BULLET
#if (USE_LIB=FAST_LIB)
JP SGPRINT_4
#else
LD $12,8
JP GPRINT
#endif

ST2_ENEMY10_DISP:;WAVE
LD $12,8
LDW $13,SG_CHR_DATA03
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

ST2_ENEMY11_DISP:;STRAIGHT-3
LD $12,8
LDW $13,SG_CHR_DATA04
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

ST2_ENEMY12_DISP:;CROSS-RETURN-ABOVE
ST2_ENEMY13_DISP:;CROSS-RETURN-UNDER
LD $12,8
LDW $13,SG_CHR_DATA06
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

ST2_ENEMY14_DISP:;HARD-ROCK
LD $12,8
LDW $13,SG_CHR_DATA05
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

ST2_ENEMY15_DISP:;WHITE_BOMB_ENEMY
LD $12,8
LDW $13,SG_CHR_DATA07
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

;*********************************
;*          BOSS2 INIT
;*  +0($9)  種類(0:未使用フラグ,&H01～&HFF)
;*  +1($10)  x(必須)
;*  +2($11)  y(必須)
;*  +3($12)  キャラのXサイズ
;*  +4($13)  キャラのYサイズ
;*  +5($14)  COUNTER1
;*  +6($15)  COUNTER2
;*  +7($16)  LIFE(Cフラグで破壊)
;*  +8($17)  SCORE
;*  +9($18)  DAMAGE
;**********************************
;NOTE
;
;BOSS2は2つのパーツで構成されている。
;PARTS Noは次のとおり
;
;          AAA
;        B 9AA <- &H09:CORE
;          AAA
;
;動作の際は下記の各パーツのインデックスアドレスを
;直接指定してXを参照、変更している。
;
; 0:ENEMY_DATA_0 = &H09(09):BOSS5 CORE
; 0:ENEMY_DATA_1 = &H0A(10):BOSS5 BODY
; 0:ENEMY_DATA_2 = &H0B(11):BOSS5 HAND
;
; &H0C(12):サークル弾
;
;ENEMY_DATA
;+0 NO
;+1 X
;+2 Y
;+3 CHARACTOR X SIZE(当たり判定で使用するので必須)
;+4 CHARACTOR Y SIZE(当たり判定で使用するので必須)
;+5 WORK
;+6 WORK
;+7 LIFE
;------------------------------------------
;+8 SCORE
;+9 DAMAGE
;+A～+F FREE

BOSS2_DATA_CORE:
DB 09,148,20,08,08,5,0,&H0A,10,&HFF,0,0,0,0,0,0     ;CORE
BOSS2_DATA_BODY:
DB 10,148,12,24,24,0,0,&HFF,00,&HFF,0,0,0,0,0,0     ;BODY
BOSS2_DATA_HAND:
DB 11,140,20,08,08,0,0,&HFF,00,&HFF,0,0,0,0,0,0     ;HAND
BOSS2_DATA_END:

BOSS2_BOMB:DB 8,8,0,0,&H00,1,1;CHR_NO,X,Yは含まれない


BOSS2_DATA_NUM:EQU 3;BOSS2のパーツ数

BOSS2_INIT:

;RXCNT
;ENEMY_DATA初期化
LDW $0,ENEMY_DATA
LDW $2,&H0FF
LDW $28,CLEME
CAL IOCS_CAL

;BOSS COREの位置データ等を転送
PRE IX,BOSS2_DATA_CORE
LDIM $17,(IX+$31),8
LDM $25,(IX+$31),2
CAL INSERT_OBJECT
;BOSS2 BODYの位置データ等を転送
PRE IX,BOSS2_DATA_BODY
LDIM $17,(IX+$31),8
LDM $25,(IX+$31),2
CAL INSERT_OBJECT
;BOSS2 HANDの位置データ等を転送
PRE IX,BOSS2_DATA_HAND
LDIM $17,(IX+$31),8
LDM $25,(IX+$31),2
CAL INSERT_OBJECT

;転送したBOSSデータを実体化する
CAL INSERT_OBJECT_ON

;ボス戦闘中フラグをONにする。
PRE IX,NOW_BOSS_FIGHT
ST $30,(IX+$31)
;ボス破壊フラグをOFFにする。
PRE IX,BOSS_DESTROY
ST $31,(IX+$31)
;ボスのデータ数(BOSS2:2)を設定にする。
PRE IX,BOSS_DATA_NUM
LD $0,BOSS2_DATA_NUM
ST $0,(IX+$31)
RTN

;************************************
;*              BOSS2 PRE
;*  (BOSS2 MOVE STANBY POSITION)
;************************************
BOSS2_PRE:

PRE IX,ENEMY_DATA_00;CORE
LD $0,1
LD $10,(IX+$0);BOSS2 CORE X
SB $10,$30
ST $10,(IX+$0);BOSS2 CORE X
AD $0,16
ST $10,(IX+$0);BOSS2 BODY X
AD $0,16
SB $10,8
ST $10,(IX+$0);BOSS2 HAND X

;BOSS2のX座標が100になったらボス戦に突入
SBC $10,100
RTN NC
PRE IX,PHASE
LD $0,3
ST $0,(IX+$31) ;PHASE2->3
ST $31,(IX+$30) ;PHASE_COUNTER->0
RTN

;*********************************
;*          MOVE BOSS2
;*
;*USE:
;*      $0      WORK
;*      $2,$3   JUMP TABLE
;*      $9-$16  ENEMY DATA
;*      $28     COUNTER
;*      IX
;*      IZ
;*********************************
MOVE_BOSS2:

LD $28,$31

MOVE_BOSS2_LOOP:
PHU $28
PRE IX,ENEMY_DATA

LDM $9,(IX+$28),8

SBC $9,$31
JR Z,NEXT_MOVE_BOSS2
SBC $9,8;BULLET
JP Z,BOSS2_P08_MOVE
SBC $9,BOSS_CORE_NO;(09)
JP Z,BOSS2_P09_MOVE
SBC $9,10
JP Z,BOSS2_P10_MOVE
SBC $9,11
JP Z,BOSS2_P11_MOVE
SBC $9,12
JP Z,BOSS2_P12_MOVE
SBC $9,15
JP C,BOSS2_P1314_MOVE

NEXT_MOVE_BOSS2:
PPU $28
AD $28,ENEMY_STRUCT
JR NC,MOVE_BOSS2_LOOP

RTN

BOSS2_P08_MOVE:
CAL MOVE_BULLET
JR NEXT_MOVE_BOSS2

BOSS2_P09_MOVE:

;ダメージを受けていたら画面をフラッシュさせる
;SBC $14,$16
;JR Z,BOSS2_P09MOVE_ND;ダメージを受けていなければ画面フラッシュしない
;LD $0,&HFF
;CAL D_FILL_PTN;IX,$10,$15破壊
;IXの再設定、データの再読み込み
;PRE IX,ENEMY_DATA
;LDM $9,(IX+$28),8
;LD $0,$28
;AD $0,ENEMY_COUNTER1
;ST $16,(IX+$0)

BOSS2_P09MOVE_ND:
PRE IZ,SECTION
LDW $0,(IZ+$31);$0:PHASE $1:PHASE_COUNTER
SBC $0,0
JR Z,BOSS2_P09_SEC0
SBC $0,1
JP Z,BOSS2_P09_SEC1
SBC $0,2
JP Z,BOSS2_P09_SEC2
SBC $0,3
JP Z,BOSS2_P09_SEC3
SBC $0,4
JP Z,BOSS2_P09_SEC4
SBC $0,5
JP Z,BOSS2_P09_SEC5

BOSS2_P09_SEC0:

SBC $15,0
JR Z,BOSS2_P09_SEC0_0
SBC $15,1
JR Z,BOSS2_P09_SEC0_1
SBC $15,2
JR Z,BOSS2_P09_SEC0_2
SBC $15,3
JR Z,BOSS2_P09_SEC0_3

BOSS2_P09_SEC0_0:

PHUW $11;ENEMY_X,ENEMY_Y退避
CAL BOSS2_GETHANDPOS
LD $5,4
CAL INSERT_BULLET
LD $5,7
CAL INSERT_BULLET
LD $5,1
CAL INSERT_BULLET
PPUW $10
LD $15,1
JP END_BOSS2_MOVE

BOSS2_P09_SEC0_1:
LD $0,$30
CAL BOSS2_ALL_MOVE_Y;+Y
LD $11,(IX+ENEMY_Y)
SBC $11,30
JP NZ,END_BOSS2_MOVE
CAL BOSS2_GETHANDPOS
PRE IZ,BOSS2_BOMB
LD $17,14
LDM $20,(IZ+$31),7
CAL INSERT_OBJECT
LD $15,2
JP END_BOSS2_MOVE

BOSS2_P09_SEC0_2:
LD $0,&HFF;-1
CAL BOSS2_ALL_MOVE_Y;-Y
LD $11,(IX+ENEMY_Y)
SBC $11,8
JP NZ,END_BOSS2_MOVE
CAL BOSS2_GETHANDPOS
PRE IZ,BOSS2_BOMB
LD $17,13
LDM $20,(IZ+$31),7
CAL INSERT_OBJECT
LD $15,3
JP END_BOSS2_MOVE

BOSS2_P09_SEC0_3:
LD $0,$30
CAL BOSS2_ALL_MOVE_Y;+Y
LD $11,(IX+2)
SBC $11,20
JP NZ,END_BOSS2_MOVE

;SECTION1へ移行
LDW $0,&H0001;SECTION=1,SECTION_COUNTER=0
PRE IZ,SECTION
STW $0,(IZ+$31)
LD $15,$31;$15 CLEAR
JP END_BOSS2_MOVE

BOSS2_P09_SEC1:
;60周期待つ
AD $1,$30
STW $0,(IZ+$31)
SBC $1,60
JP C,END_BOSS2_MOVE
;手を4DOT下げる
PRE IZ,ENEMY_DATA_02+ENEMY_Y;BOSS2 HAND Y
LD $0,8
AD (IZ+$31),$0
;SECTION2へ移行
LDW $0,&H0002;SECTION=2,SECTION_COUNTER=0
PRE IZ,SECTION
STW $0,(IZ+$31)
JP END_BOSS2_MOVE

BOSS2_P09_SEC2:
;20周期待つ
AD $1,$30
STW $0,(IZ+$31)
SBC $1,20
JP C,END_BOSS2_MOVE
;手を4DOT上げる
PRE IZ,ENEMY_DATA_02+ENEMY_Y;BOSS2 HAND Y
LD $0,8
SB (IZ+$31),$0
;SECTION3へ移行
LDW $0,&H0003;SECTION=3,SECTION_COUNTER=0
PRE IZ,SECTION
STW $0,(IZ+$31)
JP END_BOSS2_MOVE

BOSS2_P09_SEC3:
;60周期待つ
AD $1,$30
STW $0,(IZ+$31)
SBC $1,60
JP C,END_BOSS2_MOVE
;SECTION4へ移行
LDW $0,&H0004;SECTION=4,SECTION_COUNTER=0
STW $0,(IZ+$31)
JP END_BOSS2_MOVE

BOSS2_P09_SEC4:
;敵番号(12)、X(移動時に決定),Y(移動時に決定),X_SIZE(8),Y_SIZE(8),基準X(136),角度(0～36),耐久度(255);Y座標は移動時に24を基準に計算される

PRE IX,BOSS2_OPT
LDIM $17,(IX+$31),8
LDM $25,(IX+$31),2
LD $23,$31;ANGLE=40DEG
CAL INSERT_OBJECT

LD $23,4;ANGLE=40DEG
CAL INSERT_OBJECT

LD $23,8;ANGLE=80DEG
CAL INSERT_OBJECT

LD $23,12;ANGLE=120DEG
CAL INSERT_OBJECT

LD $23,16;ANGLE=160DEG
CAL INSERT_OBJECT

LD $23,20;ANGLE=200DEG
CAL INSERT_OBJECT

;SECTION5へ移行
LDW $0,&H0005;SECTION=5,SECTION_COUNTER=0
PRE IZ,SECTION
STW $0,(IZ+$31)
JP NEXT_MOVE_BOSS2

BOSS2_P09_SEC5:
;128周期待つ
AD $1,$30
STW $0,(IZ+$31)
SBC $1,128
JP C,END_BOSS2_MOVE
;SECTION0へ移行
LD $0,$31;SECTION=0
LD $1,$31;SECTION_COUNTER=0
STW $0,(IZ+$31)
JP END_BOSS2_MOVE

BOSS2_OPT:
DB 12,136,22,8,8,136,0,255,0,1

BOSS2_P10_MOVE:;BOSS2 BODY
PRE IZ,ENEMY_DATA_00
LDW $10,(IZ+$30) ;+0:ACTIVE +1:X +2:Y
SB $11,8
;LIFEを&FFにする
LD $16,&HFF
JP END_BOSS2_MOVE

BOSS2_P11_MOVE:;BOSS2 HAND
;LIFEを&FFにする
LD $16,&HFF
JP END_BOSS2_MOVE

;R=20
@SIN_TABLE:
DB 0,3,6,10,12,15,17,18,19                       ;SIN0-80
@COS_TABLE:
DB 20,19,18,17,15,12,10,6,3                      ;SIN90-170  ,COS0-80
DB 0,&HFD,&HFA,&HF6,&HF4,&HF1,&HEF,&HEE,&HED    ;SIN180-260 ,COS90-170
DB &HEC,&HED,&HEE,&HEF,&HF1,&HF4,&HF6,&HFA,&HFD ;SIN270-350 ,COS180-260
;@SIN END
DB 0,3,6,10,12,15,17,18,19                       ;          ,COS270-350
;@COS END

BOSS2_P12_MOVE:
SB $14,$30;2

;回転オプションのX座標がマイナス(160以上)になったらオプションを消去
SBC $10,160
JP NC,ST2_KILL_BOSS
;
LD $10,$14;$14=中心座標のX
PRE IZ,@COS_TABLE
LD $0,(IZ+$15)
AD $10,$0
LD $11,22
PRE IZ,@SIN_TABLE
LD $0,(IZ+$15)
AD $11,$0

;3回待機して移動させる
LD $17,$28
AD $17,8
SB (IX+$17),$30
JR NC,BOSS2_P12_NM
LD $1,2
ST $1,(IX+$17)

;SB $14,$30;基準X座標を2減じる

AD $15,$30;回転角度を1(10度)プラスする

BOSS2_P12_NM:

AD $15,$30 ;ANGLE
SBC $15,36
JR C,END_BOSS2_MOVE
LD $15,$31
JR END_BOSS2_MOVE

BOSS2_P1314_MOVE:
SB $10,2
SBC $10,44
JR NC,END_BOSS2_MOVE
CAL DELETE_OBJECT
AD $10,4
AD $11,4

SBC $9,14
JR Z,BOSS2PCD_CROSS
LD $5,1
CAL INSERT_BULLET
LD $5,2
CAL INSERT_BULLET
LD $5,3
CAL INSERT_BULLET
JP NEXT_MOVE_BOSS2

BOSS2PCD_CROSS:
LD $5,7
CAL INSERT_BULLET
LD $5,8
CAL INSERT_BULLET
LD $5,9
CAL INSERT_BULLET
JP NEXT_MOVE_BOSS2

ST2_KILL_BOSS:
CAL DELETE_OBJECT
JP NEXT_MOVE_BOSS2

END_BOSS2_MOVE:
PRE IX,ENEMY_DATA
STM $9,(IX+$28),8
JP NEXT_MOVE_BOSS2

BOSS2_ALL_MOVE_Y:
PRE IZ,ENEMY_DATA
AD (IZ+2),$0;CORE_Y
AD (IZ+18),$0;BODY_Y(16+2)
AD (IZ+34),$0;HAND_Y(32+2)
RTN

BOSS2_GETHANDPOS:
PRE IZ,ENEMY_DATA_02+ENEMY_X;BOSS2 HAND X
LDW $18,(IZ+$31)
RTN

;*********************************
;*        DISP BOSS2
;*
;*USE:
;*      $0      WORK
;*      $2,$3   JUMP TABLE
;*      $9-$16  ENEMY DATA
;*      $28     COUNTER
;*      IX
;*      IZ
;*********************************
DISP_BOSS2:
LD $28,$31

DISP_BOSS2_LOOP:

PRE IX,ENEMY_DATA

LDM $9,(IX+$28),8
SBC $9,$31
JR Z,NEXT_DISP_BOSS2
;
PHU $28
;
;GPRINTのRTN命令でRTN_ST2_DBOSS2に戻れるようにするため、RTN_ST2_DBOSS2のアドレスを
;SSPにPUSHしておく。
;なおGPRINTからの復帰はRTNでありSSPにスタックされたアドレス+1からプログラムを実行するため
;RTN_ST2_DBOSS2のアドレスから-1したものをSSPにPUSHする。
LDW $0,RTN_ST2_DBOSS2-1
PHSW $1

SBC $9,8
JR Z,BOSS2_P08_DISP
SBC $9,9
JR Z,BOSS2_P09_DISP
SBC $9,10
JP Z,BOSS2_P10_DISP
SBC $9,11
JP Z,BOSS2_P11_DISP
SBC $9,12
JP Z,BOSS2_P12_DISP
SBC $9,15
JP C,BOSS2_P1314_DISP

;JUMPしなかった場合はSSPを戻す。
PPSW $0

RTN_ST2_DBOSS2:

;
PPU $28
;
NEXT_DISP_BOSS2:
AD $28,ENEMY_STRUCT
JR NC,DISP_BOSS2_LOOP
RTN

BOSS2_P08_DISP:;BULLET
LDW $13,@CHR_BULLET
#if (USE_LIB=FAST_LIB)
JP SGPRINT_4
#else
LD $12,8
JP GPRINT
#endif

BOSS2_P09_DISP:;(BOSS2_CORE)
LD $12,8
LDW $13,SG_CHR_DATA14;CHAR_BOSS2_1_1
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif
RTN

BOSS2_P10_DISP:
PRE IZ,GLOBAL_COUNTER
LD $0,(IZ+$31)
AN $0,&H01
JR Z,BOSS2_CHR_DISP
PHUW $11
AD $11,24
LD $12,24
LDW $13,CHR_BOSS2_FLAME
CAL GPRINT
PPUW $10

;CHAR_BOSS2_1_1(UPPER-1)
BOSS2_CHR_DISP:
PHUW $11
LD $12,8
LDW $13,SG_CHR_DATA17;CHAR_BOSS2_1_1
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

PHUW $11
AD $10,8
LD $12,8
LDW $13,SG_CHR_DATA18;CHAR_BOSS2_1_2
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

PHUW $11
AD $10,16
LD $12,8
LDW $13,SG_CHR_DATA19;CHAR_BOSS2_1_3
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

AD $11,8
PHUW $11
AD $10,8
LD $12,8
LDW $13,SG_CHR_DATA15;CHAR_BOSS2_2_2
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

PHUW $11
AD $10,16
LD $12,8
LDW $13,SG_CHR_DATA16;CHAR_BOSS2_2_3
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

AD $11,8
PHUW $11

LD $12,8
LDW $13,SG_CHR_DATA20;CHAR_BOSS2_3_1
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

PHUW $11
AD $10,8
LD $12,8
LDW $13,SG_CHR_DATA21;CHAR_BOSS2_3_2
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif
PPUW $10

AD $10,16
LD $12,8
LDW $13,SG_CHR_DATA22;CHAR_BOSS2_3_3
#if (USE_LIB=NORMAL_G)
CAL GPRINT
#endif
#if(USE_LIB=SUPER_GP)
CAL SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
CAL SGPRINT_FAST
#endif

RTN

BOSS2_P11_DISP:;CHAR_BOSS2_HAND
LD $12,8
LDW $13,SG_CHR_DATA12
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

BOSS2_P12_DISP:;CHAR_BOSS2_FIRE
LD $12,8
LDW $13,SG_CHR_DATA13
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

BOSS2_P1314_DISP:;CHAR_BOSS2_BOMB
LD $12,8
LDW $13,SG_CHR_DATA07
#if (USE_LIB=NORMAL_G)
JP GPRINT
#endif
#if(USE_LIB=SUPER_GP)
JP SGPRINT
#endif
#if(USE_LIB=FAST_LIB)
JP SGPRINT_FAST
#endif

;**********************************
;*      BOSS2撃破時の処理
;**********************************
BOSS_DEF_ST2:

;RTN CODE 0:継続をセット
LD $5,$31

;下へ降下
LD $0,2
PRE IX,ENEMY_DATA_00;BOSS2 CORE
LD $11,(IX+$0)
AD $11,$30
ST $11,(IX+$0);BOSS2 CORE
AD $0,32
ST $11,(IX+$0);BOSS2 HAND
SB $0,16
SB $11,8
ST $11,(IX+$0);BOSS2 BODY

PRE IX,EXTRA_COUNTER
AD (IX+$31),$30
LD $0,40
SBC (IX+$31),$0
RTN NZ
;RTN CODE 1:次のフェーズに移行をセット
LD $5,$30
RTN

;**********************************
;*      ST2_INIT_GRAPHIC
;**********************************

ST2_INIT_GRAPHIC:
LDW $0,0;自機
LDW $2,CHR_FIGHTER
CAL SET_SGPRINT_DATA

LDW $0,1;MY BOMB L
LDW $2,CHR_BOMB_L
CAL SET_SGPRINT_DATA

LDW $0,2;MY_BOMB_R
LDW $2,CHR_BOMB_R
CAL SET_SGPRINT_DATA

;ENEMY

LDW $0,3
LDW $2,CHR_ST2_01;WAVE
CAL SET_SGPRINT_DATA

LDW $0,4
LDW $2,CHR_ST2_02;STRAIGHT-3
CAL SET_SGPRINT_DATA

LDW $0,5
LDW $2,CHR_ST2_03;HARD-ROCK
CAL SET_SGPRINT_DATA

LDW $0,6
LDW $2,CHR_ST2_04;CROSS-RETURN-ABOVE
CAL SET_SGPRINT_DATA

LDW $0,7;WHITE_BOMB;WHITE_BOMB_ENEMY
LDW $2,CHR_ST2_05
CAL SET_SGPRINT_DATA

;LDW $0,8;BOSS
;LDW $2,CHR_BOSS2_6_1
;CAL SET_SGPRINT_DATA

;LDW $0,9;BOSS
;LDW $2,CHR_BOSS2_6_2
;CAL SET_SGPRINT_DATA

;LDW $0,10;BOSS
;LDW $2,CHR_BOSS2_7_1
;CAL SET_SGPRINT_DATA

;LDW $0,11;BOSS
;LDW $2,CHR_BOSS2_7_2
;CAL SET_SGPRINT_DATA

;BOSS
LDW $0,12;BOSS2 HAND
LDW $2,CHR_BOSS2_HAND
CAL SET_SGPRINT_DATA

LDW $0,13;BOSS FIRE
LDW $2,CHR_BOSS2_FIRE
CAL SET_SGPRINT_DATA

LDW $0,14;BOSS CORE
LDW $2,CHR_BOSS2_2_1
CAL SET_SGPRINT_DATA

LDW $0,15;BOSS
LDW $2,CHR_BOSS2_2_2
CAL SET_SGPRINT_DATA

LDW $0,16;BOSS
LDW $2,CHR_BOSS2_2_3
CAL SET_SGPRINT_DATA

LDW $0,17;BOSS
LDW $2,CHR_BOSS2_1_1
CAL SET_SGPRINT_DATA

LDW $0,18;BOSS
LDW $2,CHR_BOSS2_1_2
CAL SET_SGPRINT_DATA

LDW $0,19;BOSS
LDW $2,CHR_BOSS2_1_3
CAL SET_SGPRINT_DATA

LDW $0,20;BOSS
LDW $2,CHR_BOSS2_3_1
CAL SET_SGPRINT_DATA

LDW $0,21;BOSS
LDW $2,CHR_BOSS2_3_2
CAL SET_SGPRINT_DATA

LDW $0,22;BOSS
LDW $2,CHR_BOSS2_3_3
CAL SET_SGPRINT_DATA

RTN
