[Reverse-engineering] [th02/th04/th05] Shot type control functions

Now you can mix and match characters and shot types any way you want.

TH02 and TH05 simply use the regular shot sprites associated with the
character/shot type no matter which function is used, which quite
surprisingly works without glitches for the few combinations I've tried.
TH04, however, always uses the sprites that were originally intended to
be used with that shot function, regardless of the character you assign
the function to, meaning that it always loads all 4 shot sprite sheets
into memory. Not doing that would have been one way to reduce the game's
memory footprint so that it doesn't require an extender…

Funded by -Tom-.
This commit is contained in:
nmlgc 2018-04-21 14:25:55 +02:00
parent 82bacbf01d
commit d62dd06ddf
3 changed files with 316 additions and 271 deletions

View File

@ -3747,7 +3747,7 @@ loc_C5C2:
; ---------------------------------------------------------------------------
loc_C634:
mov fp_20602, offset sub_CB2D
mov playchar_shot_func, offset shot_a
mov byte_2060A, 5
mov byte_2060B, 5
mov byte_2060C, 4
@ -3758,7 +3758,7 @@ loc_C634:
; ---------------------------------------------------------------------------
loc_C655:
mov fp_20602, offset sub_CD2A
mov playchar_shot_func, offset shot_b
mov byte_2060A, 4
mov byte_2060B, 4
mov byte_2060C, 3
@ -3771,7 +3771,7 @@ loc_C655:
; ---------------------------------------------------------------------------
loc_C67F:
mov fp_20602, offset sub_D06B
mov playchar_shot_func, offset shot_c
mov byte_2060A, 3
mov byte_2060B, 3
mov byte_2060C, 3
@ -4410,7 +4410,7 @@ sub_CAD2 endp
; Attributes: bp-based frame
sub_CB2D proc near
shot_a proc near
var_2 = word ptr -2
@ -4705,7 +4705,7 @@ loc_CD0D:
pop si
leave
retn
sub_CB2D endp
shot_a endp
; ---------------------------------------------------------------------------
off_CD16 dw offset loc_CB78
@ -4723,7 +4723,7 @@ off_CD16 dw offset loc_CB78
; Attributes: bp-based frame
sub_CD2A proc near
shot_b proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -5181,7 +5181,7 @@ loc_D042:
pop si
leave
retn
sub_CD2A endp
shot_b endp
; ---------------------------------------------------------------------------
db 0
@ -5208,7 +5208,7 @@ off_D057 dw offset loc_CD81
; Attributes: bp-based frame
sub_D06B proc near
shot_c proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -5637,7 +5637,7 @@ loc_D34E:
pop si
leave
retn
sub_D06B endp
shot_c endp
; ---------------------------------------------------------------------------
off_D352 dw offset loc_D1FB
@ -9585,7 +9585,7 @@ loc_F38B:
mov byte_1E51A, 3Fh ; '?'
loc_F395:
call fp_20602
call playchar_shot_func
call _snd_se_play c, 1
mov byte_22D4A, 8
inc byte_1EB0D
@ -9636,7 +9636,7 @@ loc_F40D:
mov byte_1E51A, 3Fh ; '?'
loc_F417:
call fp_20602
call playchar_shot_func
mov byte_22D4B, 8
inc byte_1EB0E
jmp short loc_F434
@ -37167,7 +37167,7 @@ word_205F6 dw ?
word_205F8 dw ?
dd ? ;
dd ? ;
fp_20602 dw ?
playchar_shot_func dw ?
byte_20604 db ?
byte_20605 db ?
byte_20606 db ?

View File

@ -532,12 +532,12 @@ loc_AD3B:
les bx, dword_2CDC6
cmp byte ptr es:[bx+19h], 0
jnz short loc_AD7C
mov word_257DC, 1B0Ch
mov playchar_shot_funcs, offset SHOT_FUNCS_REIMU_A
jmp short loc_AD82
; ---------------------------------------------------------------------------
loc_AD7C:
mov word_257DC, 1B20h
mov playchar_shot_funcs, offset SHOT_FUNCS_REIMU_B
loc_AD82:
mov fp_256AA, offset sub_FFB4
@ -550,12 +550,12 @@ loc_AD90:
les bx, dword_2CDC6
cmp byte ptr es:[bx+19h], 0
jnz short loc_ADA9
mov word_257DC, 1B34h
mov playchar_shot_funcs, offset SHOT_FUNCS_MARISA_A
jmp short loc_ADAF
; ---------------------------------------------------------------------------
loc_ADA9:
mov word_257DC, 1B48h
mov playchar_shot_funcs, offset SHOT_FUNCS_MARISA_B
loc_ADAF:
mov fp_256AA, offset sub_FFB4
@ -6558,6 +6558,8 @@ loc_DA4B:
sub_D955 endp
; ---------------------------------------------------------------------------
shot_marisa_l0 proc near
push bp
mov bp, sp
push si
@ -6574,7 +6576,11 @@ loc_DA70:
pop si
pop bp
retn
shot_marisa_l0 endp
; ---------------------------------------------------------------------------
shot_marisa_l1 proc near
push bp
mov bp, sp
push si
@ -6598,6 +6604,8 @@ loc_DAA3:
pop si
pop bp
retn
shot_marisa_l1 endp
; =============== S U B R O U T I N E =======================================
@ -6672,6 +6680,8 @@ loc_DB45:
sub_DAA6 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l2 proc near
push bp
mov bp, sp
push si
@ -6706,7 +6716,11 @@ loc_DB85:
pop si
pop bp
retn
shot_marisa_a_l2 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l3 proc near
push bp
mov bp, sp
push si
@ -6747,7 +6761,11 @@ loc_DBCA:
pop si
pop bp
retn
shot_marisa_a_l3 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l4 proc near
push bp
mov bp, sp
push si
@ -6788,7 +6806,11 @@ loc_DC10:
pop si
pop bp
retn
shot_marisa_a_l4 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l5 proc near
enter 2, 0
push si
push di
@ -6826,7 +6848,11 @@ loc_DC5C:
pop si
leave
retn
shot_marisa_a_l5 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l6 proc near
enter 2, 0
push si
push di
@ -6864,7 +6890,11 @@ loc_DCA9:
pop si
leave
retn
shot_marisa_a_l6 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l7 proc near
enter 2, 0
push si
push di
@ -6902,7 +6932,11 @@ loc_DCF6:
pop si
leave
retn
shot_marisa_a_l7 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l8 proc near
enter 2, 0
push si
push di
@ -6940,7 +6974,11 @@ loc_DD43:
pop si
leave
retn
shot_marisa_a_l8 endp
; ---------------------------------------------------------------------------
shot_marisa_a_l9 proc near
enter 2, 0
push si
push di
@ -6978,7 +7016,11 @@ loc_DD90:
pop si
leave
retn
shot_marisa_a_l9 endp
; ---------------------------------------------------------------------------
shot_marisa_b_l2 proc near
push bp
mov bp, sp
push si
@ -7034,7 +7076,11 @@ loc_DDF3:
pop si
pop bp
retn
shot_marisa_b_l2 endp
; ---------------------------------------------------------------------------
shot_marisa_b_l3 proc near
push bp
mov bp, sp
push si
@ -7093,7 +7139,11 @@ loc_DE58:
pop si
pop bp
retn
shot_marisa_b_l3 endp
; ---------------------------------------------------------------------------
shot_marisa_b_l4 proc near
push bp
mov bp, sp
push si
@ -7163,7 +7213,11 @@ loc_DED2:
pop si
pop bp
retn
shot_marisa_b_l4 endp
; ---------------------------------------------------------------------------
shot_marisa_b_l5 proc near
enter 2, 0
push si
push di
@ -7230,7 +7284,11 @@ loc_DF52:
pop si
leave
retn
shot_marisa_b_l5 endp
; ---------------------------------------------------------------------------
shot_marisa_b_l6 proc near
enter 4, 0
push si
push di
@ -7304,6 +7362,8 @@ loc_DFDD:
pop si
leave
retn
shot_marisa_b_l6 endp
; ---------------------------------------------------------------------------
db 0
off_DFE2 dw offset loc_DFB8
@ -7315,7 +7375,7 @@ off_DFE2 dw offset loc_DFB8
; Attributes: bp-based frame
sub_DFEA proc near
shot_marisa_b_l7 proc near
var_3 = word ptr -3
@ -7392,7 +7452,7 @@ loc_E071:
pop si
leave
retn
sub_DFEA endp
shot_marisa_b_l7 endp
; ---------------------------------------------------------------------------
db 0
@ -7405,7 +7465,7 @@ off_E076 dw offset loc_E04C
; Attributes: bp-based frame
sub_E07E proc near
shot_marisa_b_l8 proc near
var_3 = word ptr -3
@ -7496,7 +7556,7 @@ loc_E123:
pop si
leave
retn
sub_E07E endp
shot_marisa_b_l8 endp
; ---------------------------------------------------------------------------
db 0
@ -7509,7 +7569,7 @@ off_E128 dw offset loc_E0FC
; Attributes: bp-based frame
sub_E130 proc near
shot_marisa_b_l9 proc near
var_3 = word ptr -3
@ -7610,7 +7670,7 @@ loc_E1E3:
pop si
leave
retn
sub_E130 endp
shot_marisa_b_l9 endp
; ---------------------------------------------------------------------------
db 0
@ -9850,6 +9910,8 @@ arg_2 = word ptr 6
sub_F33C endp
; ---------------------------------------------------------------------------
shot_reimu_l0 proc near
push bp
mov bp, sp
push si
@ -9866,7 +9928,11 @@ loc_F38D:
pop si
pop bp
retn
shot_reimu_l0 endp
; ---------------------------------------------------------------------------
shot_reimu_l1 proc near
push bp
mov bp, sp
push si
@ -9890,7 +9956,11 @@ loc_F3C0:
pop si
pop bp
retn
shot_reimu_l1 endp
; ---------------------------------------------------------------------------
shot_reimu_a_l2 proc near
push bp
mov bp, sp
push si
@ -9970,7 +10040,11 @@ loc_F44F:
pop si
pop bp
retn
shot_reimu_a_l2 endp
; ---------------------------------------------------------------------------
shot_reimu_a_l3 proc near
push bp
mov bp, sp
push si
@ -10054,7 +10128,11 @@ loc_F4E5:
pop si
pop bp
retn
shot_reimu_a_l3 endp
; ---------------------------------------------------------------------------
shot_reimu_a_l4 proc near
enter 2, 0
push si
push di
@ -10135,7 +10213,11 @@ loc_F581:
pop si
leave
retn
shot_reimu_a_l4 endp
; ---------------------------------------------------------------------------
shot_reimu_a_l5 proc near
enter 2, 0
push si
push di
@ -10216,7 +10298,11 @@ loc_F61D:
pop si
leave
retn
shot_reimu_a_l5 endp
; ---------------------------------------------------------------------------
shot_reimu_a_l6 proc near
enter 2, 0
push si
push di
@ -10297,12 +10383,13 @@ loc_F6B9:
pop si
leave
retn
shot_reimu_a_l6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_F6BD proc near
shot_reimu_a_l7 proc near
var_2 = word ptr -2
@ -10412,14 +10499,14 @@ loc_F78B:
pop si
leave
retn
sub_F6BD endp
shot_reimu_a_l7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_F78F proc near
shot_reimu_a_l8 proc near
var_2 = word ptr -2
@ -10514,14 +10601,14 @@ loc_F83E:
pop si
leave
retn
sub_F78F endp
shot_reimu_a_l8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_F842 proc near
shot_reimu_a_l9 proc near
var_2 = word ptr -2
@ -10666,14 +10753,14 @@ loc_F953:
pop si
leave
retn
sub_F842 endp
shot_reimu_a_l9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_F957 proc near
shot_reimu_b_l2 proc near
var_1 = byte ptr -1
@ -10751,8 +10838,11 @@ loc_F9E2:
pop si
leave
retn
sub_F957 endp
shot_reimu_b_l2 endp
; ---------------------------------------------------------------------------
shot_reimu_b_l3 proc near
enter 4, 0
push si
push di
@ -10832,7 +10922,11 @@ loc_FA79:
pop si
leave
retn
shot_reimu_b_l3 endp
; ---------------------------------------------------------------------------
shot_reimu_b_l4 proc near
enter 4, 0
push si
push di
@ -10912,7 +11006,11 @@ loc_FB1E:
pop si
leave
retn
shot_reimu_b_l4 endp
; ---------------------------------------------------------------------------
shot_reimu_b_l5 proc near
enter 4, 0
push si
push di
@ -11016,12 +11114,16 @@ loc_FBE4:
pop si
leave
retn
shot_reimu_b_l5 endp
; ---------------------------------------------------------------------------
off_FBE8 dw offset loc_FBB9
dw offset loc_FBB3
dw offset loc_FBAD
dw offset loc_FBA7
; ---------------------------------------------------------------------------
shot_reimu_b_l6 proc near
enter 4, 0
push si
push di
@ -11125,12 +11227,16 @@ loc_FCB2:
pop si
leave
retn
shot_reimu_b_l6 endp
; ---------------------------------------------------------------------------
off_FCB6 dw offset loc_FC87
dw offset loc_FC81
dw offset loc_FC7B
dw offset loc_FC75
; ---------------------------------------------------------------------------
shot_reimu_b_l7 proc near
enter 4, 0
push si
push di
@ -11234,12 +11340,16 @@ loc_FD80:
pop si
leave
retn
shot_reimu_b_l7 endp
; ---------------------------------------------------------------------------
off_FD84 dw offset loc_FD55
dw offset loc_FD4F
dw offset loc_FD49
dw offset loc_FD43
; ---------------------------------------------------------------------------
shot_reimu_b_l8 proc near
enter 4, 0
push si
push di
@ -11343,12 +11453,16 @@ loc_FE4E:
pop si
leave
retn
shot_reimu_b_l8 endp
; ---------------------------------------------------------------------------
off_FE52 dw offset loc_FE23
dw offset loc_FE1D
dw offset loc_FE17
dw offset loc_FE11
; ---------------------------------------------------------------------------
shot_reimu_b_l9 proc near
enter 4, 0
push si
push di
@ -11457,6 +11571,8 @@ loc_FF24:
pop si
leave
retn
shot_reimu_b_l9 endp
; ---------------------------------------------------------------------------
off_FF28 dw offset loc_FEE7
dw offset loc_FEE1
@ -12999,7 +13115,7 @@ loc_10B97:
jnz short loc_10BC7
loc_10BB0:
call fp_257DA
call playchar_shot_func
call snd_se_play pascal, 1
jmp short loc_10BC7
; ---------------------------------------------------------------------------
@ -15248,9 +15364,9 @@ loc_11DFB:
mov dx, bx
shr dx, 1
mov shot_level, dl
add bx, word_257DC
add bx, playchar_shot_funcs
mov ax, [bx]
mov fp_257DA, ax
mov playchar_shot_func, ax
nopcall sub_F0A5
retf
sub_11DE6 endp
@ -45780,86 +45896,50 @@ off_22E38 dd aBb0_cdg_1
aBb0_bb db 'BB0.BB',0
aBb0_cdg_1 db 'BB0.CDG',0
db 0
db 7Ch ; |
db 48h ; H
db 0A0h
db 48h ; H
db 0D3h
db 48h ; H
db 63h ; c
db 49h ; I
db 0F9h
db 49h ; I
db 95h
db 4Ah ; J
db 31h ; 1
db 4Bh ; K
db 0CDh
db 4Bh ; K
db 9Fh
db 4Ch ; L
db 52h ; R
db 4Dh ; M
db 7Ch ; |
db 48h ; H
db 0A0h
db 48h ; H
db 67h ; g
db 4Eh ; N
db 0F6h
db 4Eh ; N
db 8Dh
db 4Fh ; O
db 32h ; 2
db 50h ; P
db 0
db 51h ; Q
db 0CEh
db 51h ; Q
db 9Ch
db 52h ; R
db 6Ah ; j
db 53h ; S
db 5Fh ; _
db 2Fh ; /
db 83h
db 2Fh ; /
db 5Ah ; Z
db 30h ; 0
db 98h
db 30h ; 0
db 0DEh
db 30h ; 0
db 24h ; $
db 31h ; 1
db 70h ; p
db 31h ; 1
db 0BDh
db 31h ; 1
db 0Ah
db 32h ; 2
db 57h ; W
db 32h ; 2
db 5Fh ; _
db 2Fh ; /
db 83h
db 2Fh ; /
db 0A4h
db 32h ; 2
db 7
db 33h ; 3
db 6Ch ; l
db 33h ; 3
db 0E6h
db 33h ; 3
db 66h ; f
db 34h ; 4
db 0FAh
db 34h ; 4
db 8Eh
db 35h ; 5
db 40h
db 36h ; 6
SHOT_FUNCS_REIMU_A label word
dw shot_reimu_l0
dw shot_reimu_l1
dw shot_reimu_a_l2
dw shot_reimu_a_l3
dw shot_reimu_a_l4
dw shot_reimu_a_l5
dw shot_reimu_a_l6
dw shot_reimu_a_l7
dw shot_reimu_a_l8
dw shot_reimu_a_l9
SHOT_FUNCS_REIMU_B label word
dw shot_reimu_l0
dw shot_reimu_l1
dw shot_reimu_b_l2
dw shot_reimu_b_l3
dw shot_reimu_b_l4
dw shot_reimu_b_l5
dw shot_reimu_b_l6
dw shot_reimu_b_l7
dw shot_reimu_b_l8
dw shot_reimu_b_l9
SHOT_FUNCS_MARISA_A label word
dw shot_marisa_l0
dw shot_marisa_l1
dw shot_marisa_a_l2
dw shot_marisa_a_l3
dw shot_marisa_a_l4
dw shot_marisa_a_l5
dw shot_marisa_a_l6
dw shot_marisa_a_l7
dw shot_marisa_a_l8
dw shot_marisa_a_l9
SHOT_FUNCS_MARISA_B label word
dw shot_marisa_l0
dw shot_marisa_l1
dw shot_marisa_b_l2
dw shot_marisa_b_l3
dw shot_marisa_b_l4
dw shot_marisa_b_l5
dw shot_marisa_b_l6
dw shot_marisa_b_l7
dw shot_marisa_b_l8
dw shot_marisa_b_l9
byte_22E9C db 0
db 0
word_22E9E dw 0
@ -47226,8 +47306,8 @@ byte_257D6 db ?
byte_257D7 db ?
byte_257D8 db ?
db ?
fp_257DA dw ?
word_257DC dw ?
playchar_shot_func dw ?
playchar_shot_funcs dw ?
dword_257DE dd ?
word_257E2 dw ?
word_257E4 dw ?

View File

@ -625,9 +625,9 @@ loc_B100:
loc_B112:
mov al, playchar
mov ah, 0
imul ax, 14h
add ax, 1F4Eh
mov word_2CED0, ax
imul ax, 20
add ax, offset SHOT_FUNCS
mov playchar_shot_funcs, ax
les bx, dword_23EF0
cmp byte ptr es:[bx+1Fh], 0
jz short loc_B145
@ -7680,9 +7680,9 @@ loc_E511:
mov dx, bx
shr dx, 1
mov shot_level, dl
add bx, word_2CED0
add bx, playchar_shot_funcs
mov ax, [bx]
mov fp_2CECE, ax
mov playchar_shot_func, ax
nopcall sub_10625
retf
sub_E4FC endp
@ -15570,7 +15570,7 @@ loc_12207:
loc_12213:
cmp byte_2CEC0, 0
jz short loc_1222E
call fp_2CECE
call playchar_shot_func
dec byte_2CEC0
jmp short loc_1222E
; ---------------------------------------------------------------------------
@ -16573,7 +16573,7 @@ table_12966 dw loc_1294B
; Attributes: bp-based frame
sub_12986 proc near
shot_l0 proc near
push bp
mov bp, sp
push si
@ -16590,14 +16590,14 @@ loc_1299E:
pop si
pop bp
retn
sub_12986 endp
shot_l0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_129A1 proc near
shot_l1 proc near
push bp
mov bp, sp
push si
@ -16621,14 +16621,14 @@ loc_129C8:
pop si
pop bp
retn
sub_129A1 endp
shot_l1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_129CB proc near
shot_reimu_l2 proc near
enter 2, 0
push si
mov byte ptr [bp-1], 1
@ -16695,14 +16695,14 @@ loc_12A49:
pop si
leave
retn
sub_129CB endp
shot_reimu_l2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12A4C proc near
shot_reimu_l3 proc near
enter 2, 0
push si
mov byte ptr [bp-1], 2
@ -16772,14 +16772,14 @@ loc_12ACD:
pop si
leave
retn
sub_12A4C endp
shot_reimu_l3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12AD0 proc near
shot_reimu_l4 proc near
enter 2, 0
push si
mov byte ptr [bp-1], 3
@ -16847,14 +16847,14 @@ loc_12B51:
pop si
leave
retn
sub_12AD0 endp
shot_reimu_l4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12B54 proc near
shot_reimu_l5 proc near
enter 4, 0
push si
mov byte ptr [bp-1], 3
@ -16933,14 +16933,14 @@ loc_12BEE:
pop si
leave
retn
sub_12B54 endp
shot_reimu_l5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12BF1 proc near
shot_reimu_l6 proc near
enter 4, 0
push si
mov byte ptr [bp-1], 3
@ -17019,14 +17019,14 @@ loc_12C8B:
pop si
leave
retn
sub_12BF1 endp
shot_reimu_l6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12C8E proc near
shot_reimu_l7 proc near
enter 4, 0
push si
mov byte ptr [bp-1], 5
@ -17105,14 +17105,14 @@ loc_12D28:
pop si
leave
retn
sub_12C8E endp
shot_reimu_l7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12D2B proc near
shot_reimu_l8 proc near
enter 2, 0
push si
mov byte ptr [bp-1], 7
@ -17180,14 +17180,14 @@ loc_12DA9:
pop si
leave
retn
sub_12D2B endp
shot_reimu_l8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12DAC proc near
shot_reimu_l9 proc near
enter 4, 0
push si
mov byte ptr [bp-1], 7
@ -17276,14 +17276,14 @@ loc_12E5F:
pop si
leave
retn
sub_12DAC endp
shot_reimu_l9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12E62 proc near
shot_marisa_l2 proc near
var_1 = byte ptr -1
@ -17351,14 +17351,14 @@ loc_12EE1:
pop si
leave
retn
sub_12E62 endp
shot_marisa_l2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_12EE4 proc near
shot_marisa_l3 proc near
var_1 = byte ptr -1
@ -17453,7 +17453,7 @@ loc_12F94:
pop si
leave
retn
sub_12EE4 endp
shot_marisa_l3 endp
; ---------------------------------------------------------------------------
table_12F97 dw loc_12F3B
@ -17465,7 +17465,7 @@ table_12F97 dw loc_12F3B
; Attributes: bp-based frame
sub_12F9F proc near
shot_marisa_l4 proc near
var_2 = word ptr -2
@ -17578,7 +17578,7 @@ loc_1308E:
pop si
leave
retn
sub_12F9F endp
shot_marisa_l4 endp
; ---------------------------------------------------------------------------
table_13091 dw loc_13001
@ -17592,7 +17592,7 @@ table_13091 dw loc_13001
; Attributes: bp-based frame
sub_1309D proc near
shot_marisa_l5 proc near
var_2 = word ptr -2
@ -17707,7 +17707,7 @@ loc_13195:
pop si
leave
retn
sub_1309D endp
shot_marisa_l5 endp
; ---------------------------------------------------------------------------
db 0
@ -17722,7 +17722,7 @@ table_13199 dw loc_130FF
; Attributes: bp-based frame
sub_131A5 proc near
shot_marisa_l6 proc near
var_1 = byte ptr -1
@ -17845,7 +17845,7 @@ loc_1329E:
pop si
leave
retn
sub_131A5 endp
shot_marisa_l6 endp
; ---------------------------------------------------------------------------
db 0
@ -17862,7 +17862,7 @@ table_132A3 dw loc_131FB
; Attributes: bp-based frame
sub_132B3 proc near
shot_marisa_l7 proc near
var_1 = byte ptr -1
@ -18001,7 +18001,7 @@ loc_133D8:
pop si
leave
retn
sub_132B3 endp
shot_marisa_l7 endp
; ---------------------------------------------------------------------------
db 0
@ -18020,7 +18020,7 @@ table_133DD dw loc_13309
; Attributes: bp-based frame
sub_133F1 proc near
shot_marisa_l8 proc near
var_1 = byte ptr -1
@ -18159,7 +18159,7 @@ loc_13516:
pop si
leave
retn
sub_133F1 endp
shot_marisa_l8 endp
; ---------------------------------------------------------------------------
db 0
@ -18178,7 +18178,7 @@ table_1351B dw loc_13447
; Attributes: bp-based frame
sub_1352F proc near
shot_marisa_l9 proc near
var_1 = byte ptr -1
@ -18345,7 +18345,7 @@ loc_13697:
pop si
leave
retn
sub_1352F endp
shot_marisa_l9 endp
; ---------------------------------------------------------------------------
db 0
@ -18368,7 +18368,7 @@ table_1369C dw loc_13585
; Attributes: bp-based frame
sub_136B8 proc near
shot_mima_l2 proc near
var_1 = byte ptr -1
@ -18430,14 +18430,14 @@ loc_13720:
pop si
leave
retn
sub_136B8 endp
shot_mima_l2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_13723 proc near
shot_mima_l3 proc near
var_1 = byte ptr -1
@ -18505,14 +18505,14 @@ loc_13798:
pop si
leave
retn
sub_13723 endp
shot_mima_l3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1379B proc near
shot_mima_l4 proc near
var_1 = byte ptr -1
@ -18594,7 +18594,7 @@ loc_13828:
pop si
leave
retn
sub_1379B endp
shot_mima_l4 endp
; ---------------------------------------------------------------------------
db 0
@ -18607,7 +18607,7 @@ table_1382C dw loc_137DF
; Attributes: bp-based frame
sub_13834 proc near
shot_mima_l5 proc near
var_2 = word ptr -2
@ -18688,7 +18688,7 @@ loc_138C0:
pop si
leave
retn
sub_13834 endp
shot_mima_l5 endp
; ---------------------------------------------------------------------------
table_138C3 dw loc_13870
@ -18700,7 +18700,7 @@ table_138C3 dw loc_13870
; Attributes: bp-based frame
sub_138CB proc near
shot_mima_l6 proc near
var_2 = word ptr -2
@ -18790,7 +18790,7 @@ loc_1396C:
pop si
leave
retn
sub_138CB endp
shot_mima_l6 endp
; ---------------------------------------------------------------------------
table_1396F dw loc_13909
@ -18802,7 +18802,7 @@ table_1396F dw loc_13909
; Attributes: bp-based frame
sub_13977 proc near
shot_mima_l7 proc near
var_2 = word ptr -2
@ -18895,7 +18895,7 @@ loc_13A1F:
pop si
leave
retn
sub_13977 endp
shot_mima_l7 endp
; ---------------------------------------------------------------------------
db 0
@ -18910,7 +18910,7 @@ table_13A23 dw loc_139B5
; Attributes: bp-based frame
sub_13A2F proc near
shot_mima_l8 proc near
var_2 = word ptr -2
@ -19006,7 +19006,7 @@ loc_13AE7:
pop si
leave
retn
sub_13A2F endp
shot_mima_l8 endp
; ---------------------------------------------------------------------------
table_13AEA dw loc_13A73
@ -19020,7 +19020,7 @@ table_13AEA dw loc_13A73
; Attributes: bp-based frame
sub_13AF6 proc near
shot_mima_l9 proc near
var_2 = word ptr -2
@ -19148,7 +19148,7 @@ loc_13BE8:
pop si
leave
retn
sub_13AF6 endp
shot_mima_l9 endp
; ---------------------------------------------------------------------------
table_13BEB dw loc_13BA3
@ -19166,7 +19166,7 @@ table_13BF3 dw loc_13B38
; Attributes: bp-based frame
sub_13BFF proc near
shot_yuuka_l2 proc near
var_2 = word ptr -2
@ -19232,14 +19232,14 @@ loc_13C74:
pop si
leave
retn
sub_13BFF endp
shot_yuuka_l2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_13C77 proc near
shot_yuuka_l3 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19317,14 +19317,14 @@ loc_13CFF:
pop si
leave
retn
sub_13C77 endp
shot_yuuka_l3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_13D02 proc near
shot_yuuka_l4 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19407,14 +19407,14 @@ loc_13D9D:
pop si
leave
retn
sub_13D02 endp
shot_yuuka_l4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_13DA0 proc near
shot_yuuka_l5 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19512,7 +19512,7 @@ loc_13E53:
pop si
leave
retn
sub_13DA0 endp
shot_yuuka_l5 endp
; ---------------------------------------------------------------------------
db 0
@ -19525,7 +19525,7 @@ table_13E57 dw loc_13DF6
; Attributes: bp-based frame
sub_13E5F proc near
shot_yuuka_l6 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19643,7 +19643,7 @@ loc_13F34:
pop si
leave
retn
sub_13E5F endp
shot_yuuka_l6 endp
; ---------------------------------------------------------------------------
db 0
@ -19660,7 +19660,7 @@ table_13F40 dw loc_13E9B
; Attributes: bp-based frame
sub_13F48 proc near
shot_yuuka_l7 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19790,7 +19790,7 @@ loc_14033:
pop si
leave
retn
sub_13F48 endp
shot_yuuka_l7 endp
; ---------------------------------------------------------------------------
table_14036 dw loc_13FC0
@ -19808,7 +19808,7 @@ table_14042 dw loc_13F84
; Attributes: bp-based frame
sub_1404A proc near
shot_yuuka_l8 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -19941,7 +19941,7 @@ loc_14131:
pop si
leave
retn
sub_1404A endp
shot_yuuka_l8 endp
; ---------------------------------------------------------------------------
db 0
@ -19961,7 +19961,7 @@ table_14141 dw loc_14086
; Attributes: bp-based frame
sub_1414B proc near
shot_yuuka_l9 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
@ -20106,7 +20106,7 @@ loc_14248:
pop si
leave
retn
sub_1414B endp
shot_yuuka_l9 endp
; ---------------------------------------------------------------------------
table_1424B dw loc_141BF
@ -44843,86 +44843,51 @@ off_228EE dd asc_228FC
include th04/strings/demoplay[data].asm
asc_228FC db ' ',0
db 0
db 76h ; v
db 7Bh ; {
db 91h
db 7Bh ; {
db 0BBh
db 7Bh ; {
db 3Ch ; <
db 7Ch ; |
db 0C0h
db 7Ch ; |
db 44h ; D
db 7Dh ; }
db 0E1h
db 7Dh ; }
db 7Eh ; ~
db 7Eh ; ~
db 1Bh
db 7Fh
db 9Ch
db 7Fh
db 76h ; v
db 7Bh ; {
db 91h
db 7Bh ; {
db 52h ; R
db 80h
db 0D4h
db 80h
db 8Fh
db 81h
db 8Dh
db 82h
db 95h
db 83h
db 0A3h ; £
db 84h
db 0E1h
db 85h
db 1Fh
db 87h
db 76h ; v
db 7Bh ; {
db 91h
db 7Bh ; {
db 0A8h ; ¨
db 88h
db 13h
db 89h
db 8Bh ; <20>E
db 89h
db 24h ; $
db 8Ah
db 0BBh
db 8Ah
db 67h ; g
db 8Bh ; <20>E
db 1Fh
db 8Ch
db 0E6h
db 8Ch
db 76h ; v
db 7Bh ; {
db 91h
db 7Bh ; {
db 0EFh
db 8Dh
db 67h ; g
db 8Eh
db 0F2h
db 8Eh
db 90h
db 8Fh
db 4Fh ; O
db 90h
db 38h ; 8
db 91h
db 3Ah ; :
db 92h
db 3Bh ; ;
db 93h
SHOT_FUNCS label word
; Reimu
dw shot_l0
dw shot_l1
dw shot_reimu_l2
dw shot_reimu_l3
dw shot_reimu_l4
dw shot_reimu_l5
dw shot_reimu_l6
dw shot_reimu_l7
dw shot_reimu_l8
dw shot_reimu_l9
; Marisa
dw shot_l0
dw shot_l1
dw shot_marisa_l2
dw shot_marisa_l3
dw shot_marisa_l4
dw shot_marisa_l5
dw shot_marisa_l6
dw shot_marisa_l7
dw shot_marisa_l8
dw shot_marisa_l9
; Mima
dw shot_l0
dw shot_l1
dw shot_mima_l2
dw shot_mima_l3
dw shot_mima_l4
dw shot_mima_l5
dw shot_mima_l6
dw shot_mima_l7
dw shot_mima_l8
dw shot_mima_l9
; Yuuka
dw shot_l0
dw shot_l1
dw shot_yuuka_l2
dw shot_yuuka_l3
dw shot_yuuka_l4
dw shot_yuuka_l5
dw shot_yuuka_l6
dw shot_yuuka_l7
dw shot_yuuka_l8
dw shot_yuuka_l9
byte_2297E db 0
db 0
db 40h
@ -54646,8 +54611,8 @@ word_2CEC6 dw ?
byte_2CEC8 db ?
dd ? ;
db ? ;
fp_2CECE dw ?
word_2CED0 dw ?
playchar_shot_func dw ?
playchar_shot_funcs dw ?
dword_2CED2 dd ?
word_2CED6 dw ?
word_2CED8 dw ?