mirror of https://github.com/nmlgc/ReC98.git
4687 lines
99 KiB
NASM
4687 lines
99 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : F39FD5A146426CF261F207D7FC878675
|
||
|
||
; File Name : th01/REIIDEN.EXE
|
||
; Format : MS-DOS executable (EXE)
|
||
; Base Address: 0h Range: 0h-3B660h Loaded length: 36C14h
|
||
; Entry Point : 0:0
|
||
; OS type : MS DOS
|
||
; Application type: Executable 16bit
|
||
|
||
.386
|
||
.model use16 large
|
||
|
||
BINARY = 'M'
|
||
|
||
include ReC98.inc
|
||
include th01/th01.inc
|
||
include th01/hardware/grppsafx.inc
|
||
include th01/math/area.inc
|
||
include th01/math/subpixel.inc
|
||
include th01/main/playfld.inc
|
||
include th01/formats/cfg.inc
|
||
include th01/sprites/main_ptn.inc
|
||
|
||
LIVES_MAX = 6
|
||
BOMBS_MAX = 5
|
||
STAGES_PER_SCENE = 5
|
||
BOSS_STAGE = (STAGES_PER_SCENE - 1)
|
||
|
||
option emulator
|
||
|
||
extern @$bdla$qnv:proc
|
||
extern @$bnew$qui:proc
|
||
extern @$bnwa$qui:proc
|
||
extern @_vector_new_$qnvuiuluie:proc
|
||
extern @set_new_handler$qnqv$v:proc
|
||
extern FTOL@:proc
|
||
extern SCOPY@:proc
|
||
extern __control87:proc
|
||
extern __turboFloat
|
||
extern _coreleft:proc
|
||
extern _execl:proc
|
||
extern _exit:proc
|
||
extern _farheapcheck:proc
|
||
extern _farheapchecknode:proc
|
||
extern _kbhit:proc
|
||
extern _printf:proc
|
||
extern _puts:proc
|
||
extern _scanf:proc
|
||
extern _strcmp:proc
|
||
extern _strcpy:proc
|
||
extern _toupper:proc
|
||
|
||
main_01 group main_010_TEXT, main_011_TEXT, main_012_TEXT, main_013_TEXT
|
||
main_15 group main_15_TEXT, main_15__TEXT
|
||
main_18 group main_18_TEXT, main_18__TEXT
|
||
main_19 group main_19_TEXT, main_19__TEXT
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
_TEXT segment word public 'CODE' use16
|
||
assume cs:_TEXT
|
||
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
include libs/master.lib/text_clear.asm
|
||
include libs/master.lib/text_fillca.asm
|
||
include libs/master.lib/graph_400line.asm
|
||
include libs/master.lib/graph_clear.asm
|
||
include libs/master.lib/graph_show.asm
|
||
include libs/master.lib/graph_start.asm
|
||
include libs/master.lib/palette_show.asm
|
||
include libs/master.lib/palette_init.asm
|
||
include libs/master.lib/respal_exist.asm
|
||
include libs/master.lib/respal_free.asm
|
||
include libs/master.lib/resdata.asm
|
||
include libs/master.lib/file_read.asm
|
||
include libs/master.lib/file_close.asm
|
||
include libs/master.lib/file_exist.asm
|
||
include libs/master.lib/file_ropen.asm
|
||
include libs/master.lib/file_write.asm
|
||
include libs/master.lib/file_create.asm
|
||
include libs/master.lib/file_seek.asm
|
||
include libs/master.lib/dos_free.asm
|
||
include libs/master.lib/dos_axdx.asm
|
||
include libs/master.lib/keystart.asm
|
||
include libs/master.lib/key_sense.asm
|
||
include libs/master.lib/dos_ropen.asm
|
||
include libs/master.lib/grcg_setcolor.asm
|
||
include libs/master.lib/grcg_pset.asm
|
||
include libs/master.lib/egc.asm
|
||
include libs/master.lib/iatan2.asm
|
||
include libs/master.lib/isqrt.asm
|
||
include libs/master.lib/random.asm
|
||
_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_010_TEXT segment byte public 'CODE' use16
|
||
main_010_TEXT ends
|
||
|
||
main_011_TEXT segment byte public 'CODE' use16
|
||
assume cs:main_01
|
||
;org 2
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
extern _input_sense:proc
|
||
extern _input_reset_sense:proc
|
||
extern _load_and_init_stuff_used_in_all_:proc
|
||
extern @stage_entrance$qinxci:proc
|
||
main_011_TEXT ends
|
||
|
||
main_012_TEXT segment byte public 'CODE' use16
|
||
extern @invincibility_sprites_update_and$qi:proc
|
||
extern @orb_velocity_y_update$qv:proc
|
||
extern @orb_force_new$qd11orb_force_t:proc
|
||
extern @orb_move_x$q16orb_velocity_x_t:proc
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C766 proc far
|
||
|
||
var_C = qword ptr -0Ch
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
cmp _orb_in_portal, 0
|
||
jnz loc_C816
|
||
call @orb_move_x$q16orb_velocity_x_t stdcall, _orb_velocity_x
|
||
pop cx
|
||
call @orb_velocity_y_update$qv
|
||
add _orb_cur_top, ax
|
||
inc word_34A92
|
||
cmp _orb_velocity_x, OVX_4_LEFT
|
||
jz short loc_C799
|
||
cmp _orb_velocity_x, OVX_8_LEFT
|
||
jnz short loc_C79D
|
||
|
||
loc_C799:
|
||
inc word_34A7E
|
||
|
||
loc_C79D:
|
||
cmp _orb_velocity_x, OVX_4_RIGHT
|
||
jz short loc_C7AB
|
||
cmp _orb_velocity_x, OVX_8_RIGHT
|
||
jnz short loc_C7AF
|
||
|
||
loc_C7AB:
|
||
dec word_34A7E
|
||
|
||
loc_C7AF:
|
||
cmp word_34A7E, 0Ah
|
||
jl short loc_C7BC
|
||
mov word_34A7E, 0
|
||
|
||
loc_C7BC:
|
||
cmp word_34A7E, 0
|
||
jge short loc_C7C9
|
||
mov word_34A7E, 9
|
||
|
||
loc_C7C9:
|
||
cmp _orb_cur_top, ORB_TOP_MAX
|
||
jle short loc_C7F4
|
||
push OF_BOUNCE_FROM_SURFACE
|
||
fld _ORB_COEFFICIENT_OF_RESTITUTION
|
||
sub sp, 8
|
||
fstp [bp+var_C]
|
||
fwait
|
||
call @orb_force_new$qd11orb_force_t
|
||
add sp, 0Ah
|
||
mov _orb_cur_top, ORB_TOP_MAX
|
||
mov _cardcombo_cur, 0
|
||
|
||
loc_C7F4:
|
||
cmp _orb_cur_top, ORB_TOP_MIN
|
||
jge short loc_C816
|
||
push OF_BOUNCE_FROM_TOP
|
||
fldz
|
||
sub sp, 8
|
||
fstp [bp+var_C]
|
||
fwait
|
||
call @orb_force_new$qd11orb_force_t
|
||
add sp, 0Ah
|
||
mov _orb_cur_top, ORB_TOP_MIN
|
||
|
||
loc_C816:
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
call @CPellets@unput_update_render$qv c, offset _Pellets, ds
|
||
mov ax, si
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 4
|
||
jz short loc_C846
|
||
call @cards_hittest$qi pascal, si
|
||
pop cx
|
||
call @obstacles_update_and_render$qi stdcall, 0
|
||
pop cx
|
||
|
||
loc_C846:
|
||
cmp _orb_in_portal, 0
|
||
jnz short loc_C855
|
||
call @orb_player_hittest$qi stdcall, OR_NONE
|
||
pop cx
|
||
|
||
loc_C855:
|
||
cmp _orb_in_portal, 0
|
||
jnz short loc_C879
|
||
mov ax, word_34A7E
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
add ax, 3
|
||
call @ptn_unput_8$qiii c, _orb_prev_left, _orb_prev_top, ax
|
||
|
||
loc_C879:
|
||
mov ax, si
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 4
|
||
jz short loc_C88B
|
||
call @cards_update_and_render$qv
|
||
|
||
loc_C88B:
|
||
cmp _orb_in_portal, 0
|
||
jnz short loc_C8B6
|
||
cmp _done, 0
|
||
jnz short loc_C8B6
|
||
mov ax, word_34A7E
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
add ax, PTN_ORB
|
||
call @ptn_put_8$qiii c, _orb_cur_left, _orb_cur_top, ax
|
||
|
||
loc_C8B6:
|
||
mov ax, _orb_cur_left
|
||
mov _orb_prev_left, ax
|
||
mov ax, _orb_cur_top
|
||
mov _orb_prev_top, ax
|
||
pop si
|
||
pop bp
|
||
retf 2
|
||
sub_C766 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C8C7 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
xor si, si
|
||
jmp short loc_C92D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8D0:
|
||
cmp si, 7
|
||
jz short loc_C92C
|
||
xor di, di
|
||
jmp short loc_C927
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8D9:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx+di]
|
||
cbw
|
||
imul [bp+arg_0]
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov _z_Palettes[bx+di], al
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx+di]
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_C90D
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov byte ptr _z_Palettes[bx+di], 0
|
||
|
||
loc_C90D:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx+di]
|
||
cbw
|
||
cmp ax, 0Fh
|
||
jle short loc_C926
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov byte ptr _z_Palettes[bx+di], 0Fh
|
||
|
||
loc_C926:
|
||
inc di
|
||
|
||
loc_C927:
|
||
cmp di, 3
|
||
jl short loc_C8D9
|
||
|
||
loc_C92C:
|
||
inc si
|
||
|
||
loc_C92D:
|
||
cmp si, 10h
|
||
jl short loc_C8D0
|
||
call _z_palette_set_all_show c, offset _z_Palettes, ds
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_C8C7 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C942 proc far
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
mov [bp+var_1], 0
|
||
call _graph_putsa_fx c, 272, large ((7 or FX_WEIGHT_BLACK) shl 16) or 128, offset aVovVtvrvd, ds ; "<22>o<EFBFBD>`<60>t<EFBFBD>r<EFBFBD>d"
|
||
call _graph_putsa_fx c, 256, large ((7 or FX_WEIGHT_BLACK) shl 16) or 144, offset aB@nKjb@b@pic, ds ; "<22>@<40>ĊJ<C48A>@<40>@<40>I<EFBFBD><49>"
|
||
call _graph_putsa_fx c, 256, large (7 shl 16) or 144, offset aBB@b@b@b@b@b@, ds ; "<22><><EFBFBD>@<40>@<40>@<40>@<40>@<40>@"
|
||
push 28h ; '('
|
||
call sub_C8C7
|
||
pop cx
|
||
mov _input_lr, 0
|
||
mov _input_shot, 0
|
||
mov _input_ok, 0
|
||
jmp loc_CA30
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C9A2:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
cmp _done, 1
|
||
jz loc_CB91
|
||
cmp _input_lr, INPUT_LEFT
|
||
jnz short loc_C9E6
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (144 shl 16) or 320, large (16 shl 16) or 16
|
||
call _graph_putsa_fx c, 256, large (7 shl 16) or 144, offset aB, ds ; "<22><>"
|
||
mov [bp+var_1], 0
|
||
|
||
loc_C9E6:
|
||
cmp _input_lr, INPUT_RIGHT
|
||
jnz short loc_CA1A
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (144 shl 16) or 256, large (16 shl 16) or 16
|
||
call _graph_putsa_fx c, 320, large (7 shl 16) or 144, offset aB, ds ; "<22><>"
|
||
mov [bp+var_1], 1
|
||
|
||
loc_CA1A:
|
||
cmp _input_shot, 0
|
||
jnz short loc_CA39
|
||
cmp _input_ok, 0
|
||
jnz short loc_CA39
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_CA30:
|
||
cmp _paused, 0
|
||
jnz loc_C9A2
|
||
|
||
loc_CA39:
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (128 shl 16) or 276, large (16 shl 16) or 80
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (144 shl 16) or 256, large (16 shl 16) or 112
|
||
push 14h
|
||
call _frame_delay
|
||
pop cx
|
||
mov _input_lr, 0
|
||
mov _input_shot, 0
|
||
mov _input_ok, 0
|
||
cmp [bp+var_1], 0
|
||
jz loc_CB96
|
||
cmp _paused, 0
|
||
jz loc_CB96
|
||
call _graph_putsa_fx c, 224, large ((7 or FX_WEIGHT_BLACK) shl 16) or 128, offset aCUcvPicVVVsvdv, ds ; "<22>{<7B><><EFBFBD>ɏI<C98F><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⴄ<EFBFBD>́H"
|
||
call _graph_putsa_fx c, 224, large ((7 or FX_WEIGHT_BLACK) shl 16) or 144, offset aB@vdvVVVgb@b@v, ds ; "<22>@<40><><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>@<40>@<40>͂<EFBFBD><CD82><EFBFBD>"
|
||
call _graph_putsa_fx c, 224, large (7 shl 16) or 144, offset aB, ds ; "<22><>"
|
||
mov [bp+var_1], 0
|
||
jmp loc_CB5D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CACF:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
cmp _done, 1
|
||
jz loc_CB91
|
||
cmp _input_lr, INPUT_LEFT
|
||
jnz short loc_CB13
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (144 shl 16) or 336, large (16 shl 16) or 16
|
||
call _graph_putsa_fx c, 224, large (7 shl 16) or 144, offset aB, ds ; "<22><>"
|
||
mov [bp+var_1], 0
|
||
|
||
loc_CB13:
|
||
cmp _input_lr, INPUT_RIGHT
|
||
jnz short loc_CB47
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (144 shl 16) or 224, large (16 shl 16) or 16
|
||
call _graph_putsa_fx c, 336, large (7 shl 16) or 144, offset aB, ds ; "<22><>"
|
||
mov [bp+var_1], 1
|
||
|
||
loc_CB47:
|
||
cmp _input_shot, 0
|
||
jnz short loc_CB66
|
||
cmp _input_ok, 0
|
||
jnz short loc_CB66
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_CB5D:
|
||
cmp _paused, 0
|
||
jnz loc_CACF
|
||
|
||
loc_CB66:
|
||
cmp [bp+var_1], 0
|
||
jz short loc_CB96
|
||
les bx, _resident
|
||
inc es:[bx+reiidenconfig_t.continues_total]
|
||
inc _continues_total
|
||
mov ax, es:[bx+reiidenconfig_t.stage]
|
||
mov bx, 5
|
||
xor dx, dx
|
||
div bx
|
||
add ax, ax
|
||
mov bx, word ptr _resident
|
||
add bx, ax
|
||
inc es:[bx+reiidenconfig_t.continues_per_scene]
|
||
|
||
loc_CB91:
|
||
mov ax, 1
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CB96:
|
||
call _z_palette_set_all_show c, offset _stage_palette, ds
|
||
call _input_reset_sense
|
||
call @egc_copy_rect_1_to_0_16$qiiii c, large (128 shl 16) or 232, large (32 shl 16) or 176
|
||
xor ax, ax
|
||
leave
|
||
retf
|
||
sub_C942 endp
|
||
main_012_TEXT ends
|
||
|
||
main_013_TEXT segment byte public 'CODE' use16
|
||
extern @pellet_speed_lower$qii:proc
|
||
extern @pellet_speed_raise$qi:proc
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CC0F proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
xor di, di
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call _graph_copy_accessed_page_to_othe
|
||
call _graph_putsa_fx c, 0, ((FX_CLEAR_BG or (7 or FX_WEIGHT_BOLD)) shl 16) or 0, offset aVgvpvovfvivovx, ds ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD>@<40>@<40>@ "
|
||
call _graph_putsa_fx c, 0, ((FX_CLEAR_BG or (7 or FX_WEIGHT_BOLD)) shl 16) or 16, offset aVxvevub@b@B@, ds ; "<22>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>@<40>@ <20>@"
|
||
call _graph_putsa_fx c, 0, ((FX_CLEAR_BG or (7 or FX_WEIGHT_BOLD)) shl 16) or 32, offset aVmvpb@b@B@, ds ; "<22>m<EFBFBD><6D><EFBFBD>@<40>@ <09>@ "
|
||
call _graph_putsa_fx c, 0, ((FX_CLEAR_BG or (1 or FX_WEIGHT_BOLD)) shl 16) or 48, offset aVxvevub@b@c@, ds ; "<22>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ "
|
||
call _graph_putsa_fx c, 0, ((FX_CLEAR_BG or (1 or FX_WEIGHT_BOLD)) shl 16) or 64, offset aVmvpb@b@c@, ds ; "<22>m<EFBFBD><6D><EFBFBD>@<40>@<40>@ "
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large ( 64 shl 16) or 160, large ( 0 shl 16) or 0, large (16 shl 16) or 144
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (200 shl 16) or 288, large (16 shl 16) or 0, large (16 shl 16) or 48
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (232 shl 16) or 288, large (64 shl 16) or 0, large (16 shl 16) or 48
|
||
mov si, 1
|
||
mov _input_ok, 0
|
||
mov _paused, 0
|
||
mov _input_shot, 0
|
||
call _input_reset_sense
|
||
les bx, _resident
|
||
inc es:[bx+reiidenconfig_t.continues_total]
|
||
inc _continues_total
|
||
mov ax, es:[bx+reiidenconfig_t.stage]
|
||
mov bx, 5
|
||
xor dx, dx
|
||
div bx
|
||
add ax, ax
|
||
mov bx, word ptr _resident
|
||
add bx, ax
|
||
inc es:[bx+reiidenconfig_t.continues_per_scene]
|
||
mov bx, word ptr _resident
|
||
mov eax, es:[bx+reiidenconfig_t.score_highest]
|
||
cmp eax, _score
|
||
jnb short loc_CD2E
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score_highest], eax
|
||
|
||
loc_CD2E:
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.score], 0
|
||
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
|
||
add al, 2
|
||
mov es:[bx+reiidenconfig_t.rem_lives], al
|
||
call @pellet_speed_lower$qii c, large (-2 and 0FFFFh) or (-5 shl 16)
|
||
|
||
loc_CD52:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
inc di
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
cmp _input_ok, 1
|
||
jz short loc_CD70
|
||
cmp _input_shot, 1
|
||
jnz short loc_CDBC
|
||
|
||
loc_CD70:
|
||
cmp si, 1
|
||
jnz short loc_CDA2
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.snd_need_init], 0
|
||
call @game_switch_binary$qv
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.p_value], 0
|
||
pushd 0
|
||
push ds
|
||
push offset path ; "REIIDEN"
|
||
push ds
|
||
push offset path ; "REIIDEN"
|
||
call _execl
|
||
add sp, 0Ch
|
||
jmp short loc_CDBC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CDA2:
|
||
mov _done, 0
|
||
mov _paused, 0
|
||
mov _continues_total, 0
|
||
call _mdrv2_bgm_stop
|
||
jmp short loc_CDD3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CDBC:
|
||
cmp di, 0BB8h
|
||
ja short loc_CDA2
|
||
cmp _paused, 1
|
||
jnz short loc_CDD8
|
||
mov _done, 0
|
||
mov _paused, 0
|
||
|
||
loc_CDD3:
|
||
xor ax, ax
|
||
jmp loc_CE58
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CDD8:
|
||
cmp _input_up, 1
|
||
jnz short loc_CE16
|
||
mov si, 1
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (200 shl 16) or 288, large (16 shl 16) or 0, large (16 shl 16) or 48
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (232 shl 16) or 288, large (64 shl 16) or 0, large (16 shl 16) or 48
|
||
|
||
loc_CE16:
|
||
cmp _input_down, 1
|
||
jnz loc_CD52
|
||
xor si, si
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (200 shl 16) or 288, large (48 shl 16) or 0, large (16 shl 16) or 48
|
||
call @graph_2xscale_byterect_1_to_0_sl$qiiiiii c, large (232 shl 16) or 288, large (32 shl 16) or 0, large (16 shl 16) or 48
|
||
jmp loc_CD52
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CE58:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_CC0F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CE5C proc far
|
||
|
||
var_1E = byte ptr -1Eh
|
||
var_14 = byte ptr -14h
|
||
var_12 = word ptr -12h
|
||
var_10 = word ptr -10h
|
||
var_E = word ptr -0Eh
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 1Eh, 0
|
||
push si
|
||
push di
|
||
lea ax, [bp+var_1E]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset byte_34AD5
|
||
mov cx, 0Ah
|
||
call SCOPY@
|
||
call @items_bomb_reset$qv
|
||
call @items_point_reset$qv
|
||
call @ptn_put_8$qiii c, _orb_cur_left, _orb_cur_top, 3
|
||
call IRand
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_CEA3
|
||
mov ax, 1
|
||
jmp short loc_CEA5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CEA3:
|
||
xor ax, ax
|
||
|
||
loc_CEA5:
|
||
add ax, 56h
|
||
call @ptn_put_8$qiii c, _player_left, _player_top, ax
|
||
xor di, di
|
||
jmp short loc_CEDA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CEBC:
|
||
mov bx, di
|
||
add bx, bx
|
||
lea ax, [bp+var_A]
|
||
add bx, ax
|
||
mov ax, _player_left
|
||
mov ss:[bx], ax
|
||
mov bx, di
|
||
add bx, bx
|
||
lea ax, [bp+var_14]
|
||
add bx, ax
|
||
mov word ptr ss:[bx], 170h
|
||
inc di
|
||
|
||
loc_CEDA:
|
||
cmp di, 5
|
||
jl short loc_CEBC
|
||
call _graph_copy_accessed_page_to_othe
|
||
xor di, di
|
||
jmp loc_D00D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CEE9:
|
||
mov ax, di
|
||
mov bx, 2
|
||
cwd
|
||
idiv bx
|
||
shl dx, 3
|
||
mov ax, RES_Y
|
||
sub ax, dx
|
||
call @z_vsync_wait_and_scrollup$qi stdcall, ax
|
||
pop cx
|
||
xor si, si
|
||
jmp short loc_CF31
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CF04:
|
||
mov bx, di
|
||
add bx, bx
|
||
lea ax, [bp+var_1E]
|
||
add bx, ax
|
||
cmp word ptr ss:[bx], 0
|
||
jnz short loc_CF30
|
||
push (32 shl 16) or 32
|
||
push 368
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_A]
|
||
add bx, ax
|
||
push word ptr ss:[bx]
|
||
call @egc_copy_rect_1_to_0_16$qiiii
|
||
add sp, 8
|
||
|
||
loc_CF30:
|
||
inc si
|
||
|
||
loc_CF31:
|
||
cmp si, 5
|
||
jl short loc_CF04
|
||
sub [bp+var_A], 8
|
||
pushd 2
|
||
call isqrt
|
||
push ax
|
||
mov ax, 8
|
||
cwd
|
||
pop bx
|
||
idiv bx
|
||
sub [bp+var_8], ax
|
||
pushd 2
|
||
call isqrt
|
||
push ax
|
||
mov ax, 8
|
||
cwd
|
||
pop bx
|
||
idiv bx
|
||
add [bp+var_4], ax
|
||
add [bp+var_2], 8
|
||
pushd 2
|
||
call isqrt
|
||
push ax
|
||
mov ax, 8
|
||
cwd
|
||
pop bx
|
||
idiv bx
|
||
sub [bp+var_12], ax
|
||
pushd 2
|
||
call isqrt
|
||
push ax
|
||
mov ax, 8
|
||
cwd
|
||
pop bx
|
||
idiv bx
|
||
sub [bp+var_E], ax
|
||
sub [bp+var_10], 8
|
||
xor si, si
|
||
jmp short loc_CFF8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_CF92:
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_A]
|
||
add bx, ax
|
||
cmp word ptr ss:[bx], 260h
|
||
jge short loc_CFAE
|
||
mov bx, si
|
||
add bx, bx
|
||
add bx, ax
|
||
cmp word ptr ss:[bx], 0
|
||
jge short loc_CFBC
|
||
|
||
loc_CFAE:
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_1E]
|
||
add bx, ax
|
||
mov word ptr ss:[bx], 1
|
||
|
||
loc_CFBC:
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_1E]
|
||
add bx, ax
|
||
cmp word ptr ss:[bx], 0
|
||
jnz short loc_CFF7
|
||
mov ax, di
|
||
mov bx, 2
|
||
cwd
|
||
idiv bx
|
||
add dx, 84
|
||
push dx
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_14]
|
||
add bx, ax
|
||
push word ptr ss:[bx]
|
||
mov bx, si
|
||
add bx, bx
|
||
lea ax, [bp+var_A]
|
||
add bx, ax
|
||
push word ptr ss:[bx]
|
||
call @ptn_put_8$qiii
|
||
add sp, 6
|
||
|
||
loc_CFF7:
|
||
inc si
|
||
|
||
loc_CFF8:
|
||
cmp si, 5
|
||
jl short loc_CF92
|
||
mov ax, di
|
||
mov bx, 6
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
call _frame_delay
|
||
pop cx
|
||
inc di
|
||
|
||
loc_D00D:
|
||
cmp di, 10h
|
||
jl loc_CEE9
|
||
call @z_vsync_wait_and_scrollup$qi stdcall, 0
|
||
pop cx
|
||
mov al, _credit_bombs
|
||
mov _bombs, al
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.bombs], 1
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_CE5C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D02F proc far
|
||
push bp
|
||
mov bp, sp
|
||
movsx eax, word_34A8A
|
||
imul eax, 400000
|
||
cmp eax, _score
|
||
ja short loc_D07A
|
||
cmp _lives, LIVES_MAX
|
||
jge short loc_D076
|
||
inc _lives
|
||
les bx, _resident
|
||
mov al, byte ptr _lives
|
||
mov es:[bx+reiidenconfig_t.rem_lives], al
|
||
mov ax, _lives
|
||
dec ax
|
||
call @hud_lives_put$qi stdcall, ax
|
||
pop cx
|
||
push 0Fh
|
||
call _mdrv2_se_play
|
||
pop cx
|
||
call @pellet_speed_raise$qi stdcall, 1
|
||
pop cx
|
||
|
||
loc_D076:
|
||
inc word_34A8A
|
||
|
||
loc_D07A:
|
||
pop bp
|
||
retf
|
||
sub_D02F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: noreturn bp-based frame
|
||
|
||
sub_D07C proc near
|
||
push bp
|
||
mov bp, sp
|
||
push ds
|
||
push offset aVvvtbV ; "<22><><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD>A<EFBFBD>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD>"
|
||
call _puts
|
||
add sp, 4
|
||
push 1 ; status
|
||
call _exit
|
||
sub_D07C endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop cx
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __stdcall __far sub_D095(void far *node, __int32)
|
||
sub_D095 proc far
|
||
|
||
_node = dword ptr 6
|
||
arg_4 = dword ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
pushd [bp+arg_4]
|
||
push ds
|
||
push offset aS ; "%s"
|
||
call _printf
|
||
add sp, 8
|
||
pushd [bp+_node]
|
||
push ds
|
||
push offset aFp ; " : [%Fp] -> "
|
||
call _printf
|
||
add sp, 8
|
||
pushd [bp+_node] ; node
|
||
call _farheapchecknode
|
||
add sp, 4
|
||
sub ax, 0FFFEh
|
||
mov bx, ax
|
||
cmp bx, 6
|
||
ja short loc_D0F9
|
||
add bx, bx
|
||
jmp cs:off_D0FD[bx]
|
||
|
||
loc_D0D5:
|
||
push ds
|
||
push offset aGqbGvvkvVViv ; "<22>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>患"
|
||
jmp short loc_D0F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D0DB:
|
||
push ds
|
||
push offset aGqbGvvkfji ; "<22>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD>j<EFBFBD><EFBFBD><F382B382>Ă<EFBFBD><C482>킟"
|
||
jmp short loc_D0F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D0E1:
|
||
push ds
|
||
push offset aGmbGhvkvVViv ; "<22>m<EFBFBD>[<5B>h<EFBFBD><68><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD>"
|
||
jmp short loc_D0F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D0E7:
|
||
push ds
|
||
push offset aVVVL ; "<22><><EFBFBD><EFBFBD><EFBFBD>͋u<F382AB83><75><EFBFBD>b<EFBFBD>N<EFBFBD>ł<EFBFBD><C582><EFBFBD>"
|
||
jmp short loc_D0F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D0ED:
|
||
push ds
|
||
push offset s ; "<22><><EFBFBD>ݎg<DD8E>p<EFBFBD><70><EFBFBD>̃u<CC83><75><EFBFBD>b<EFBFBD>N<EFBFBD><4E>"
|
||
|
||
loc_D0F1:
|
||
call _puts
|
||
add sp, 4
|
||
|
||
loc_D0F9:
|
||
pop bp
|
||
retf 8
|
||
sub_D095 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_D0FD dw offset loc_D0E1
|
||
dw offset loc_D0DB
|
||
dw offset loc_D0F9
|
||
dw offset loc_D0D5
|
||
dw offset loc_D0F9
|
||
dw offset loc_D0E7
|
||
dw offset loc_D0ED
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _test_mem
|
||
_test_mem proc far
|
||
|
||
@@ptn_size_total = dword ptr -4
|
||
|
||
enter 4, 0
|
||
push si
|
||
mov [bp+@@ptn_size_total], 0
|
||
|
||
loc_D118:
|
||
mov [bp+@@ptn_size_total], 0
|
||
cmp _mode_test, 1
|
||
jnz loc_D317
|
||
call _z_graph_hide
|
||
call _printf c, offset _esc_cls, ds
|
||
push ds
|
||
push offset aB@b@b@vVVriCVi ; "<22>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E><><EFBFBD><EFBFBD>...\n"
|
||
call _puts
|
||
add sp, 4
|
||
pushd [dword_36C1A]
|
||
push ds
|
||
push offset aOldCoreleft7lu ; "old coreleft %7lu bytes free\n"
|
||
call _printf
|
||
add sp, 8
|
||
call _coreleft
|
||
push dx
|
||
push ax
|
||
push ds
|
||
push offset aCoreleft7luByt ; " coreleft %7lu bytes free\n"
|
||
call _printf
|
||
add sp, 8
|
||
push _obstacles.O_count
|
||
push ds
|
||
push offset aKabe_nD ; " kabe_n = %d\n"
|
||
call _printf
|
||
add sp, 6
|
||
push _cards.C_count
|
||
push ds
|
||
push offset aPnl_nD ; " pnl_n = %d\n"
|
||
call _printf
|
||
add sp, 6
|
||
movsx eax, _cards.C_count
|
||
imul eax, 281h
|
||
push eax
|
||
push ds
|
||
push offset aPnl_nBuf7lu ; " pnl_n buf = %7lu\n"
|
||
call _printf
|
||
add sp, 8
|
||
xor si, si
|
||
jmp short loc_D1E3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D1A9:
|
||
mov al, _ptn_image_count[si]
|
||
cbw
|
||
cwde
|
||
imul eax, 281h
|
||
push eax
|
||
push si
|
||
push ds
|
||
push offset aB@b@ptnD7lu ; "<22>@<40>@ptn %d = %7lu\n"
|
||
call _printf
|
||
add sp, 0Ah
|
||
cmp si, 2
|
||
jl short loc_D1E2
|
||
cmp si, 5
|
||
jz short loc_D1E2
|
||
mov al, _ptn_image_count[si]
|
||
cbw
|
||
cwde
|
||
imul eax, 281h
|
||
add [bp+@@ptn_size_total], eax
|
||
|
||
loc_D1E2:
|
||
inc si
|
||
|
||
loc_D1E3:
|
||
cmp si, PTN_SLOT_COUNT
|
||
jl short loc_D1A9
|
||
push ds
|
||
push (offset aB@b@b@vVVriCVi+15h) ; s
|
||
call _puts
|
||
add sp, 4
|
||
pushd [bp+@@ptn_size_total]
|
||
push ds
|
||
push offset aAllPtn7lu ; "all ptn = %7lu\n"
|
||
call _printf
|
||
add sp, 8
|
||
pushd [_stageobj_bgs_size]
|
||
push ds
|
||
push offset aKabeMem7lu ; "kabe mem = %7lu\n"
|
||
call _printf
|
||
add sp, 8
|
||
push _hud_bg_size
|
||
push ds
|
||
push offset aMaskMem7u ; "mask mem = %7u\n"
|
||
call _printf
|
||
add sp, 6
|
||
mov eax, dword_36C1A
|
||
sub eax, [bp+@@ptn_size_total]
|
||
push eax
|
||
push ds
|
||
push offset aOldPtn7lu ; "old - ptn = %7lu\n"
|
||
call _printf
|
||
add sp, 8
|
||
call _coreleft
|
||
push dx
|
||
push ax
|
||
pop eax
|
||
mov edx, dword_36C1A
|
||
sub edx, eax
|
||
sub edx, _stageobj_bgs_size
|
||
push edx
|
||
push ds
|
||
push offset aEtcMem7ld ; "etc mem = %7ld\n\n"
|
||
call _printf
|
||
add sp, 8
|
||
push ds
|
||
push offset aZPtnFreeXBossF ; "Z = PTN FREE, X = BOSS FREE, UP = TAMA "...
|
||
call _puts
|
||
add sp, 4
|
||
jmp loc_D317
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D26E:
|
||
push 3
|
||
call _frame_delay
|
||
pop cx
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
cmp _input_shot, 0
|
||
jz short loc_D28B
|
||
nopcall sub_D47D
|
||
jmp short loc_D2B8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D28B:
|
||
cmp _input_strike, 0
|
||
jz short loc_D2A5
|
||
xor si, si
|
||
jmp short loc_D29E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D296:
|
||
call @bos_entity_free$qi stdcall, si
|
||
pop cx
|
||
inc si
|
||
|
||
loc_D29E:
|
||
cmp si, 4
|
||
jl short loc_D296
|
||
jmp short loc_D2B8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D2A5:
|
||
cmp _input_up, 0
|
||
jz short loc_D2C7
|
||
call @CPellets@unput_and_reset$qv c, offset _Pellets, ds
|
||
|
||
loc_D2B8:
|
||
call _printf c, offset _esc_cls, ds
|
||
jmp loc_D118
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D2C7:
|
||
cmp _input_down, 0
|
||
jnz short loc_D2B8
|
||
cmp _input_ok, 0
|
||
jz short loc_D317
|
||
call _printf c, offset _esc_cls, ds
|
||
xor si, si
|
||
jmp short loc_D2F8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D2E5:
|
||
push ds
|
||
push offset aPtn ; "PTN "
|
||
mov bx, si
|
||
shl bx, 2
|
||
pushd _ptn_images[bx] ; node
|
||
call sub_D095
|
||
inc si
|
||
|
||
loc_D2F8:
|
||
cmp si, 8
|
||
jl short loc_D2E5
|
||
push ds
|
||
push offset aMask ; "MASK"
|
||
pushd [_hud_bg]
|
||
call sub_D095
|
||
push ds
|
||
push offset aKabe ; "KABE"
|
||
pushd [_stageobj_bgs] ; node
|
||
call sub_D095
|
||
|
||
loc_D317:
|
||
cmp _input_mem_leave, 0
|
||
jz loc_D26E
|
||
pop si
|
||
leave
|
||
retf
|
||
_test_mem endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _test_show_game
|
||
_test_show_game proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp _mode_test, 1
|
||
jnz short loc_D33E
|
||
call _z_graph_show
|
||
call _printf c, offset _esc_cls, ds
|
||
|
||
loc_D33E:
|
||
pop bp
|
||
retf
|
||
_test_show_game endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D340 proc far
|
||
push bp
|
||
mov bp, sp
|
||
inc dword_3880A
|
||
mov eax, dword_3880A
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
cmp edx, 100
|
||
jnz short loc_D37C
|
||
call _printf c, offset _esc_cursor_to_x0_y2, ds
|
||
call _coreleft
|
||
push dx
|
||
push ax
|
||
push ds
|
||
push offset aCoreleft7luByt ; " coreleft %7lu bytes free\n"
|
||
call _printf
|
||
add sp, 8
|
||
|
||
loc_D37C:
|
||
call _printf c, offset _esc_cursor_to_x59_y2, ds
|
||
push ds
|
||
push offset aHeapCheak ; "HEAP Cheak "
|
||
call _printf
|
||
add sp, 4
|
||
call _farheapcheck
|
||
cmp ax, 0FFFFh
|
||
jz short loc_D3BE
|
||
cmp ax, 1
|
||
jz short loc_D3AA
|
||
cmp ax, 2
|
||
jz short loc_D3B0
|
||
jmp short loc_D3E1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D3AA:
|
||
push ds
|
||
push offset aEmpty ; "EMPTY "
|
||
jmp short loc_D3B4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D3B0:
|
||
push ds
|
||
push offset aOk ; "OK "
|
||
|
||
loc_D3B4:
|
||
call _printf
|
||
add sp, 4
|
||
jmp short loc_D3E1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D3BE:
|
||
push ds
|
||
push offset aCorrupt ; "CORRUPT "
|
||
call _printf
|
||
add sp, 4
|
||
push 5
|
||
call _mdrv2_se_play
|
||
jmp short loc_D3D9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D3D3:
|
||
call _input_sense stdcall, 0
|
||
|
||
loc_D3D9:
|
||
pop cx
|
||
cmp _input_ok, 0
|
||
jz short loc_D3D3
|
||
|
||
loc_D3E1:
|
||
call _farheapcheck
|
||
mov word_3880E, ax
|
||
call _printf c, offset _esc_cursor_to_x0_y1, ds
|
||
mov ax, _player_left_prev
|
||
cmp ax, _player_left
|
||
jz short loc_D414
|
||
push _player_left
|
||
push ds
|
||
push offset aGx3d ; "gx = %3d"
|
||
call _printf
|
||
add sp, 6
|
||
mov ax, _player_left
|
||
mov _player_left_prev, ax
|
||
|
||
loc_D414:
|
||
call _printf c, offset _esc_cursor_to_x0_y3, ds
|
||
mov al, _done
|
||
mov ah, 0
|
||
push ax
|
||
mov al, _paused
|
||
mov ah, 0
|
||
push ax
|
||
mov al, _input_strike
|
||
mov ah, 0
|
||
push ax
|
||
mov al, _input_shot
|
||
mov ah, 0
|
||
push ax
|
||
mov al, _input_lr
|
||
mov ah, 0
|
||
push ax
|
||
call _kbhit
|
||
push ax
|
||
push ds
|
||
push offset aKbhitDDirDSpDS ; " kbhit:%d,dir:%d, sp:%d, sh:%d, exit:%d"...
|
||
call _printf
|
||
add sp, 10h
|
||
call _printf c, offset _esc_cursor_to_x0_y4, ds
|
||
pushd [dword_36C20]
|
||
push _bomb_doubletap_frames
|
||
pushd [_frame_rand]
|
||
pushd [_bomb_frames]
|
||
push ds
|
||
push offset aMain7luRand7lu ; " main:%7lu, rand:%7lu, bomb:%d, timer:%"...
|
||
call _printf
|
||
add sp, 12h
|
||
pop bp
|
||
retf
|
||
sub_D340 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D47D proc far
|
||
push bp
|
||
mov bp, sp
|
||
call @stageobj_bgs_free$qv
|
||
pop bp
|
||
retf
|
||
sub_D47D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D487 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
call @stageobj_bgs_free$qv
|
||
mov si, 2
|
||
jmp short loc_D4A9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D495:
|
||
call @ptn_free$q15main_ptn_slot_t stdcall, si
|
||
pop cx
|
||
cmp si, 4
|
||
jge short loc_D4A8
|
||
call @bos_entity_free$qi stdcall, si
|
||
pop cx
|
||
|
||
loc_D4A8:
|
||
inc si
|
||
|
||
loc_D4A9:
|
||
cmp si, 8
|
||
jl short loc_D495
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D487 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D4B1 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push ds
|
||
push offset aGogbgGtg@gcglv ; "<22>o<EFBFBD>b<EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD>"
|
||
call _printf
|
||
add sp, 4
|
||
pop bp
|
||
retf
|
||
sub_D4B1 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D4C2 proc far
|
||
push bp
|
||
mov bp, sp
|
||
movzx eax, _pellet_destroy_score_delta
|
||
add _score, eax
|
||
call @hud_score_and_cardcombo_render$qv
|
||
mov _pellet_destroy_score_delta, 0
|
||
pop bp
|
||
retf
|
||
sub_D4C2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D4DD proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov al, byte_34ADF
|
||
cbw
|
||
dec ax
|
||
mov bx, ax
|
||
cmp bx, 6
|
||
ja short loc_D522
|
||
add bx, bx
|
||
jmp cs:off_D524[bx]
|
||
|
||
loc_D4F3:
|
||
call @singyoku_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D4FA:
|
||
call @yuugenmagan_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D501:
|
||
call @mima_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D508:
|
||
call @kikuri_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D50F:
|
||
call @elis_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D516:
|
||
call @sariel_free$qv
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D51D:
|
||
call @konngara_free$qv
|
||
|
||
loc_D522:
|
||
pop bp
|
||
retf
|
||
sub_D4DD endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_D524 dw offset loc_D4F3
|
||
dw offset loc_D4FA
|
||
dw offset loc_D501
|
||
dw offset loc_D508
|
||
dw offset loc_D50F
|
||
dw offset loc_D516
|
||
dw offset loc_D51D
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __cdecl main(int argc, const char **argv, const char **envp)
|
||
public _main
|
||
_main proc far
|
||
|
||
_path = byte ptr -1Eh
|
||
var_E = word ptr -0Eh
|
||
var_C = word ptr -0Ch
|
||
s1 = dword ptr -0Ah
|
||
@@scene_id = word ptr -6
|
||
var_4 = word ptr -4
|
||
@@stage = word ptr -2
|
||
_argc = word ptr 6
|
||
_argv = dword ptr 8
|
||
_envp = dword ptr 0Ch
|
||
|
||
enter 1Eh, 0
|
||
push si
|
||
push di
|
||
mov [bp+@@stage], 0
|
||
xor si, si
|
||
mov [bp+var_4], 0
|
||
call _mdrv2_resident
|
||
or ax, ax
|
||
jnz short loc_D54F
|
||
jmp short loc_D579
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D54F:
|
||
push ss
|
||
lea ax, [bp+@@stage]
|
||
push ax
|
||
push ds
|
||
push offset _continues_total
|
||
push ds
|
||
push offset _frame_rand
|
||
push ds
|
||
push offset _lives_extra
|
||
push ds
|
||
push offset _credit_bombs
|
||
push ds
|
||
push offset _bgm_mode
|
||
push ds
|
||
push offset _rank
|
||
call _resident_stuff_get
|
||
add sp, 1Ch
|
||
cmp ax, 1
|
||
jnz short loc_D583
|
||
|
||
loc_D579:
|
||
call sub_D4B1
|
||
mov ax, 1
|
||
jmp loc_E2F7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D583:
|
||
mov _credit_bombs, 1
|
||
les bx, _resident
|
||
mov eax, es:[bx+reiidenconfig_t.score]
|
||
mov _score, eax
|
||
mov ebx, 400000
|
||
cdq
|
||
idiv ebx
|
||
inc ax
|
||
mov word_34A8A, ax
|
||
mov eax, _frame_rand
|
||
mov random_seed, eax
|
||
call @game_init$qv
|
||
call key_start
|
||
push 3F003Fh
|
||
call __control87
|
||
add sp, 4
|
||
les bx, _resident
|
||
mov al, es:[bx+reiidenconfig_t.route]
|
||
mov _route, al
|
||
cmp es:[bx+reiidenconfig_t.debug_mode], DM_OFF
|
||
jz loc_D68E
|
||
cmp es:[bx+reiidenconfig_t.stage], 0
|
||
jnz short loc_D649
|
||
push ds
|
||
push offset aCGzgmgngg ; "<22>ʃZ<CA83><5A><EFBFBD>N<EFBFBD>g\n"
|
||
call _puts
|
||
add sp, 4
|
||
push ds
|
||
push offset aCRf ; "<22>ʐ<EFBFBD>"
|
||
call _puts
|
||
add sp, 4
|
||
push ss
|
||
lea ax, [bp+@@stage]
|
||
push ax
|
||
push ds
|
||
push offset aD ; "%d"
|
||
call _scanf
|
||
add sp, 8
|
||
push ds
|
||
push offset aSelect_flag ; "select_flag"
|
||
call _puts
|
||
add sp, 4
|
||
push ds
|
||
push offset _route
|
||
push ds
|
||
push offset aD ; "%d"
|
||
call _scanf
|
||
add sp, 8
|
||
cmp [bp+@@stage], 5
|
||
jge short loc_D62C
|
||
jmp short loc_D644
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D62C:
|
||
mov al, _route
|
||
cbw
|
||
cmp ax, 1
|
||
jle short loc_D63C
|
||
mov _route, 1
|
||
jmp short loc_D649
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D63C:
|
||
mov al, _route
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_D649
|
||
|
||
loc_D644:
|
||
mov _route, 0
|
||
|
||
loc_D649:
|
||
les bx, _resident
|
||
mov al, es:[bx+reiidenconfig_t.debug_mode]
|
||
cbw
|
||
cmp ax, DM_TEST
|
||
jnz short loc_D669
|
||
push ds
|
||
push offset aGegxgggvbGhbib ; "<22>e<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>[<5B>h<EFBFBD>I<EFBFBD>I\n"
|
||
call _puts
|
||
add sp, 4
|
||
mov _mode_test, 1
|
||
|
||
loc_D669:
|
||
les bx, _resident
|
||
mov al, es:[bx+reiidenconfig_t.debug_mode]
|
||
cbw
|
||
cmp ax, DM_FULL
|
||
jnz short loc_D68E
|
||
push ds
|
||
push offset aGfgogbgogvbGhb ; "<22>f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD><4F><EFBFBD>[<5B>h<EFBFBD>I<EFBFBD>I\n"
|
||
call _puts
|
||
add sp, 4
|
||
mov _mode_debug, 1
|
||
mov _mode_test, 1
|
||
|
||
loc_D68E:
|
||
mov al, _bgm_mode
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_D69C
|
||
call _mdrv2_check_board
|
||
|
||
loc_D69C:
|
||
cmp [bp+@@stage], 5
|
||
jge short loc_D6A6
|
||
xor ax, ax
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6A6:
|
||
cmp [bp+@@stage], 10
|
||
jge short loc_D6BD
|
||
cmp _route, 0
|
||
jnz short loc_D6B8
|
||
mov ax, 1
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6B8:
|
||
mov ax, 2
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6BD:
|
||
cmp [bp+@@stage], 15
|
||
jge short loc_D6D4
|
||
cmp _route, 0
|
||
jnz short loc_D6CF
|
||
mov ax, 3
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6CF:
|
||
mov ax, 4
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6D4:
|
||
cmp [bp+@@stage], 20
|
||
jge short loc_D6EB
|
||
cmp _route, 0
|
||
jnz short loc_D6E6
|
||
mov ax, 5
|
||
jmp short loc_D6E9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6E6:
|
||
mov ax, 6
|
||
|
||
loc_D6E9:
|
||
jmp short loc_D6EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6EB:
|
||
mov ax, 7
|
||
|
||
loc_D6EE:
|
||
mov [bp+@@scene_id], ax
|
||
push seg main_01
|
||
push offset sub_D07C
|
||
call @set_new_handler$qnqv$v ; set_new_handler(void (*)(void))
|
||
add sp, 4
|
||
mov _arc_key, 76h
|
||
call arc_load pascal, ds, offset aUmx ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈ<EFBFBD>.<2E>`"
|
||
call _vram_planes_set
|
||
call @scene_init_and_load$quc stdcall, [bp+@@scene_id]
|
||
pop cx
|
||
cmp _mode_debug, 1
|
||
jnz short loc_D72E
|
||
call sub_D340
|
||
push 28h ; '('
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_D72E:
|
||
call sub_D487
|
||
les bx, _resident
|
||
mov al, es:[bx+reiidenconfig_t.rem_lives]
|
||
cbw
|
||
mov _lives, ax
|
||
mov al, es:[bx+reiidenconfig_t.bombs]
|
||
mov _bombs, al
|
||
mov _player_left, PLAYER_LEFT_START
|
||
cmp _bgm_mode, 0
|
||
jz short loc_D776
|
||
cmp es:[bx+reiidenconfig_t.snd_need_init], 0
|
||
jz short loc_D776
|
||
push ds
|
||
push offset aInit_mdt ; "init.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
push ds
|
||
push offset aZigoku_mde ; "zigoku.mde"
|
||
call _mdrv2_se_load
|
||
add sp, 4
|
||
|
||
loc_D776:
|
||
cmp _mode_debug, 1
|
||
jnz short loc_D795
|
||
push ds
|
||
push offset a2 ; "2 :"
|
||
call _puts
|
||
add sp, 4
|
||
call sub_D340
|
||
push 28h ; '('
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_D795:
|
||
call _coreleft
|
||
mov word ptr dword_36C1A+2, dx
|
||
mov word ptr dword_36C1A, ax
|
||
call _load_and_init_stuff_used_in_all_
|
||
call _z_graph_init
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call _z_graph_clear
|
||
call IRand
|
||
mov bx, 60
|
||
cwd
|
||
idiv bx
|
||
mov _card_flip_cycle, dl
|
||
mov _first_stage_in_scene, 1
|
||
mov byte_36C1E, 1
|
||
les bx, _resident
|
||
cmp es:[bx+reiidenconfig_t.snd_need_init], 0
|
||
jnz short loc_D7E0
|
||
mov ax, 1
|
||
jmp short loc_D7E2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D7E0:
|
||
xor ax, ax
|
||
|
||
loc_D7E2:
|
||
mov si, ax
|
||
|
||
loc_D7E4:
|
||
les bx, _resident
|
||
mov ax, [bp+@@stage]
|
||
mov es:[bx+reiidenconfig_t.stage], ax
|
||
mov al, _route
|
||
mov es:[bx+reiidenconfig_t.route], al
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score], eax
|
||
mov eax, _continues_total
|
||
mov es:[bx+reiidenconfig_t.continues_total], eax
|
||
call @CPellets@unput_and_reset$qv c, offset _Pellets, ds
|
||
call @CShots@unput_and_reset$qv c, offset _Shots, ds
|
||
mov word ptr [bp+s1+2], ds
|
||
mov word ptr [bp+s1], offset _default_grp_fn
|
||
mov byte_34ADF, 0
|
||
mov _unused_boss_stage_flag, 0
|
||
mov _player_invincible, 0
|
||
mov _player_invincibility_time, 0
|
||
mov ax, [bp+@@stage]
|
||
mov [bp+var_E], ax
|
||
mov cx, 4 ; switch 4 cases
|
||
mov bx, offset word_E309
|
||
|
||
loc_D84B:
|
||
mov ax, cs:[bx]
|
||
cmp ax, [bp+var_E]
|
||
jz short loc_D85B
|
||
add bx, 2
|
||
loop loc_D84B
|
||
jmp loc_D9B7 ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D85B:
|
||
jmp word ptr cs:[bx+8] ; switch jump
|
||
|
||
loc_D85F:
|
||
mov byte_34ADF, 1 ; jumptable 0000D85B case 4
|
||
mov _unused_boss_stage_flag, 1
|
||
push ds
|
||
push offset src ; "boss1.grp"
|
||
pushd [bp+s1] ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
push ds
|
||
push offset aPositive_mdt ; "positive.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
xor di, di
|
||
call @singyoku_load$qv
|
||
|
||
loc_D892:
|
||
mov _Pellets.PELLET_unknown_seven, 7
|
||
jmp loc_D9CA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D89B:
|
||
mov al, _route ; jumptable 0000D85B case 9
|
||
add al, 2
|
||
mov byte_34ADF, al
|
||
mov _unused_boss_stage_flag, 1
|
||
cmp _route, 0
|
||
jnz short loc_D8D9
|
||
push ds
|
||
push offset aLegend_mdt ; "LEGEND.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
push ds
|
||
push offset aBoss2_grp ; "boss2.grp"
|
||
pushd [bp+s1] ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @yuugenmagan_load$qv
|
||
jmp loc_D96D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D8D9:
|
||
push ds
|
||
push offset aLegend_mdt ; "LEGEND.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
push ds
|
||
push offset aBoss3_grp ; "boss3.grp"
|
||
pushd [bp+s1] ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @mima_load$qv
|
||
jmp short loc_D96D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D901:
|
||
mov al, 1 ; jumptable 0000D85B case 14
|
||
sub al, _route
|
||
add al, 4
|
||
mov byte_34ADF, al
|
||
mov _unused_boss_stage_flag, 1
|
||
mov al, _route
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_D947
|
||
push ds
|
||
push offset aKami_mdt ; "kami.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
push ds
|
||
push offset aBoss4_grp ; "boss4.grp"
|
||
pushd [bp+s1] ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @kikuri_load$qv
|
||
|
||
loc_D941:
|
||
mov di, 1
|
||
jmp loc_D892
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D947:
|
||
push ds
|
||
push offset aKami2_mdt ; "kami2.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
push ds
|
||
push offset aBoss5_grp ; "boss5.grp"
|
||
pushd [bp+s1] ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @elis_load$qv
|
||
|
||
loc_D96D:
|
||
xor di, di
|
||
jmp loc_D892
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D972:
|
||
mov al, _route ; jumptable 0000D85B case 19
|
||
add al, 6
|
||
mov byte_34ADF, al
|
||
mov _unused_boss_stage_flag, 1
|
||
cmp _route, 0
|
||
jnz short loc_D99F
|
||
push ds
|
||
push offset aTensi_mdt ; "tensi.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @sariel_load_and_init$qv
|
||
jmp short loc_D941
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D99F:
|
||
push ds
|
||
push offset aAlice_mdt ; "alice.mdt"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
call @konngara_init$qv
|
||
jmp short loc_D96D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D9B7:
|
||
push ds ; default
|
||
push offset _default_bgm_fn ; "ST .MDT"
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
xor di, di
|
||
|
||
loc_D9CA:
|
||
cmp byte_34ADF, 0
|
||
jz short loc_DA06
|
||
xor si, si
|
||
mov _first_stage_in_scene, 1
|
||
call @items_bomb_reset$qv
|
||
call @items_point_reset$qv
|
||
cmp _ptn_slot_stg_has_reduced_sprites, 0
|
||
jnz short loc_DA2A
|
||
call @ptn_free$q15main_ptn_slot_t stdcall, PTN_SLOT_STG
|
||
pop cx
|
||
call @ptn_load$q15main_ptn_slot_tnxc c, PTN_SLOT_STG, offset aStg_b_ptn, ds ; "stg_b.ptn"
|
||
mov _ptn_slot_stg_has_reduced_sprites, 1
|
||
jmp short loc_DA2A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA06:
|
||
cmp _ptn_slot_stg_has_reduced_sprites, 0
|
||
jz short loc_DA2A
|
||
call @ptn_free$q15main_ptn_slot_t stdcall, PTN_SLOT_STG
|
||
pop cx
|
||
call @ptn_load$q15main_ptn_slot_tnxc c, PTN_SLOT_STG, offset _PTN_STG_CARDFLIP_FN, ds ; "stg.ptn"
|
||
mov _ptn_slot_stg_has_reduced_sprites, 0
|
||
jmp short $+2
|
||
|
||
loc_DA2A:
|
||
cmp _mode_debug, 1
|
||
jnz short loc_DA49
|
||
push ds
|
||
push offset a3 ; "3 :"
|
||
call _puts
|
||
add sp, 4
|
||
call sub_D340
|
||
push 28h ; '('
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_DA49:
|
||
mov al, byte ptr [bp+@@stage]
|
||
inc al
|
||
mov _stage_num, al
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 6
|
||
jz short loc_DA7B
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 7
|
||
jz short loc_DA7B
|
||
push di ; clear_vram_page_0
|
||
pushd [bp+s1] ; bg_fn
|
||
mov ax, [bp+@@stage]
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
push dx ; int
|
||
call @stage_entrance$qinxci
|
||
add sp, 8
|
||
jmp short loc_DA9E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA7B:
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 7
|
||
jnz short loc_DA8D
|
||
call @konngara_load_and_entrance$qc stdcall, 0
|
||
jmp short loc_DA9D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA8D:
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 6
|
||
jnz short loc_DA9E
|
||
push 0
|
||
call @sariel_entrance$qc
|
||
|
||
loc_DA9D:
|
||
pop cx
|
||
|
||
loc_DA9E:
|
||
mov ax, word_34A8A
|
||
mov word_34A8C, ax
|
||
call @hud_bg_snap_and_put$qv
|
||
mov _cardcombo_max, 0
|
||
mov _orb_in_portal, 0
|
||
mov _bomb_frames, 0
|
||
mov _Pellets.PELLET_unknown_seven, 7
|
||
cmp _mode_debug, 1
|
||
jnz short loc_DAD7
|
||
call sub_D340
|
||
push 28h ; '('
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_DAD7:
|
||
mov dword_36C20, 0
|
||
mov _orb_cur_left, ORB_LEFT_START
|
||
mov _orb_cur_top, ORB_TOP_START
|
||
mov ax, [bp+@@stage]
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jz short loc_DB04
|
||
mov ax, [bp+@@stage]
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 4
|
||
jnz short loc_DB0A
|
||
|
||
loc_DB04:
|
||
mov _player_left, PLAYER_LEFT_START
|
||
|
||
loc_DB0A:
|
||
fld dbl_34FF5
|
||
fstp _orb_force
|
||
fwait
|
||
mov _orb_force_frame, 0
|
||
mov _orb_velocity_x, OVX_4_LEFT
|
||
mov _orb_prev_left, ORB_LEFT_START
|
||
mov _orb_prev_top, ORB_TOP_START
|
||
mov _player_deflecting, 0
|
||
mov _bomb_damaging, 0
|
||
mov _cardcombo_cur, 0
|
||
|
||
loc_DB3E:
|
||
call @player_unput_update_render$qi stdcall, 0
|
||
pop cx
|
||
call @ptn_put_8$qiii c, _player_left, large (PTN_MIKO_L shl 16) or _player_top
|
||
call @ptn_put_8$qiii c, _orb_cur_left, _orb_cur_top, 3
|
||
mov word_34A74, 0
|
||
mov _input_lr, 0
|
||
mov _input_shot, 0
|
||
mov _input_ok, 0
|
||
mov _paused, 0
|
||
call @hud_score_and_cardcombo_render$qv
|
||
mov _bomb_doubletap_frames, (BOMB_DOUBLETAP_WINDOW * 3)
|
||
mov word_34A70, 3Ch ; '<'
|
||
call @obstacles_update_and_render$qi stdcall, 1
|
||
pop cx
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 6
|
||
jz short loc_DBCC
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 7
|
||
jz short loc_DBCC
|
||
cmp byte_34A35, 0
|
||
jnz short loc_DBCC
|
||
or si, si
|
||
jnz short loc_DBCC
|
||
push ss
|
||
lea ax, [bp+_path]
|
||
push ax ; path
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
|
||
loc_DBCC:
|
||
call _input_reset_sense
|
||
cmp _player_invincibility_time, 1
|
||
jle short loc_DBDD
|
||
mov _player_invincible, 1
|
||
|
||
loc_DBDD:
|
||
cmp byte_34ADF, 0
|
||
jz short loc_DC0E
|
||
mov al, byte_34ADF
|
||
cbw
|
||
cmp ax, 1
|
||
jz short loc_DBF9
|
||
cmp ax, 3
|
||
jz short loc_DC00
|
||
cmp ax, 4
|
||
jz short loc_DC07
|
||
jmp short loc_DC3A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DBF9:
|
||
call @singyoku_main$qv
|
||
jmp short loc_DC3A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC00:
|
||
call @mima_main$qv
|
||
jmp short loc_DC3A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC07:
|
||
mov _input_strike, 0
|
||
jmp short loc_DC3A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC0E:
|
||
cmp byte_36C1E, 1
|
||
jnz short loc_DC3A
|
||
jmp short loc_DC33
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC17:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
call @player_unput_update_render$qi stdcall, 1
|
||
pop cx
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
inc _bomb_frames
|
||
|
||
loc_DC33:
|
||
cmp _input_shot, 0
|
||
jz short loc_DC17
|
||
|
||
loc_DC3A:
|
||
mov byte_36C1E, 0
|
||
mov _input_shot, 0
|
||
mov _timer_initialized, 1
|
||
mov eax, _frame_rand
|
||
mov random_seed, eax
|
||
mov _bomb_doubletap_frames, BOMB_DOUBLETAP_WINDOW
|
||
mov _first_stage_in_scene, 0
|
||
mov [bp+var_C], 0BB8h
|
||
jmp loc_DE72
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC64:
|
||
inc _frame_rand
|
||
mov ax, _lives
|
||
imul ax, 200
|
||
mov dx, 1800
|
||
sub dx, ax
|
||
mov al, _bombs
|
||
cbw
|
||
imul ax, 50
|
||
sub dx, ax
|
||
mov [bp+var_C], dx
|
||
movsx ebx, [bp+var_C]
|
||
mov eax, _frame_rand
|
||
xor edx, edx
|
||
div ebx
|
||
cmp edx, 0
|
||
jnz short loc_DC9D
|
||
call @pellet_speed_raise$qi stdcall, 1
|
||
pop cx
|
||
|
||
loc_DC9D:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
cmp _player_invincibility_time, 1
|
||
jle short loc_DCB7
|
||
dec _player_invincibility_time
|
||
mov _player_invincible, 1
|
||
jmp short loc_DCCA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DCB7:
|
||
cmp _player_invincibility_time, 1
|
||
jnz short loc_DCCA
|
||
mov _player_invincible, 0
|
||
mov _player_invincibility_time, 0
|
||
|
||
loc_DCCA:
|
||
call @player_unput_update_render$qi stdcall, 1
|
||
pop cx
|
||
call @items_bomb_unput_update_render$qv
|
||
call @items_point_unput_update_render$qv
|
||
inc dword_36C20
|
||
inc _orb_force_frame
|
||
inc _bomb_frames
|
||
inc _bomb_doubletap_frames
|
||
test byte ptr _frame_rand, 3
|
||
jnz short loc_DCFA
|
||
call @timer_tick_and_put$qv
|
||
|
||
loc_DCFA:
|
||
cmp _mode_test, 1
|
||
jnz short loc_DD20
|
||
cmp _input_ok, 0
|
||
jz short loc_DD0E
|
||
mov _test_damage, 1
|
||
|
||
loc_DD0E:
|
||
cmp _input_down, 0
|
||
jz short loc_DD20
|
||
mov _done, 1
|
||
mov _lives, 0
|
||
|
||
loc_DD20:
|
||
call @invincibility_sprites_update_and$qi stdcall, _player_invincible
|
||
pop cx
|
||
mov al, byte_34ADF
|
||
cbw
|
||
dec ax
|
||
mov bx, ax
|
||
cmp bx, 6
|
||
ja short loc_DD6B
|
||
add bx, bx
|
||
jmp cs:off_E2FB[bx]
|
||
|
||
loc_DD3C:
|
||
call @singyoku_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD43:
|
||
call @yuugenmagan_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD4A:
|
||
call @mima_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD51:
|
||
call @kikuri_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD58:
|
||
call @elis_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD5F:
|
||
call @sariel_main$qv
|
||
jmp short loc_DD6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD66:
|
||
call @konngara_main$qv
|
||
|
||
loc_DD6B:
|
||
@@i = 0
|
||
rept SHOOTOUT_LASER_COUNT
|
||
call @CShootoutLaser@update_hittest_and_render$qv c, offset _shootout_lasers[@@i * size CShootoutLaser], ds
|
||
@@i = @@i + 1
|
||
endm
|
||
push [bp+@@stage]
|
||
call sub_C766
|
||
cmp _paused, 1
|
||
jnz short loc_DDF8
|
||
call sub_C942
|
||
mov [bp+var_4], ax
|
||
|
||
loc_DDF8:
|
||
cmp [bp+var_4], 1
|
||
jz loc_E2CB
|
||
call sub_D02F
|
||
cmp _mode_debug, 1
|
||
jnz short loc_DE0F
|
||
call sub_D340
|
||
|
||
loc_DE0F:
|
||
mov al, _game_cleared
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_DE67
|
||
call sub_D487
|
||
les bx, _resident
|
||
mov al, _route
|
||
inc al
|
||
mov es:[bx+reiidenconfig_t.end_flag], al
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score], eax
|
||
mov eax, es:[bx+reiidenconfig_t.score_highest]
|
||
cmp eax, _score
|
||
jnb short loc_DE47
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score_highest], eax
|
||
|
||
loc_DE47:
|
||
push 78h ; 'x'
|
||
call _frame_delay
|
||
pop cx
|
||
call @game_switch_binary$qv
|
||
pushd 0
|
||
push ds
|
||
push offset aFuuin ; "fuuin"
|
||
push ds
|
||
push offset aFuuin ; "fuuin"
|
||
call _execl
|
||
add sp, 0Ch
|
||
|
||
loc_DE67:
|
||
cmp _pellet_destroy_score_delta, 0
|
||
jz short loc_DE72
|
||
call sub_D4C2
|
||
|
||
loc_DE72:
|
||
cmp _done, 0
|
||
jz loc_DC64
|
||
mov _timer_initialized, 0
|
||
call @z_vsync_wait_and_scrollup$qi stdcall, 0
|
||
pop cx
|
||
les bx, _resident
|
||
mov eax, _frame_rand
|
||
mov es:[bx+reiidenconfig_t.rand], eax
|
||
mov _test_damage, 0
|
||
mov _bomb_frames, 200 ; ???
|
||
cmp _lives, 0
|
||
jle short loc_DEDA
|
||
cmp _stage_cleared, 0
|
||
jnz short loc_DEDA
|
||
push 5
|
||
call _mdrv2_se_play
|
||
pop cx
|
||
les bx, _resident
|
||
dec es:[bx+reiidenconfig_t.rem_lives]
|
||
dec _lives
|
||
call @player_miss_animate_and_update$qv
|
||
mov _done, 0
|
||
inc si
|
||
mov _player_invincibility_time, MISS_INVINCIBILITY_FRAMES
|
||
jmp loc_DB3E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DEDA:
|
||
cmp _stage_cleared, 1
|
||
jnz loc_E104
|
||
mov _stage_cleared, 0
|
||
mov _done, 0
|
||
cmp byte_34ADF, 0
|
||
jz short loc_DF03
|
||
call sub_D4DD
|
||
mov byte_36C1E, 1
|
||
mov _first_stage_in_scene, 1
|
||
|
||
loc_DF03:
|
||
inc si
|
||
inc [bp+@@stage]
|
||
les bx, _resident
|
||
mov ax, [bp+@@stage]
|
||
mov es:[bx+reiidenconfig_t.stage], ax
|
||
cmp byte_34ADF, 0
|
||
jz short loc_DF23
|
||
xor si, si
|
||
push ax
|
||
call sub_13475
|
||
jmp short loc_DF2B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DF23:
|
||
push [bp+@@stage]
|
||
call sub_13101
|
||
|
||
loc_DF2B:
|
||
pop cx
|
||
les bx, _resident
|
||
cmp es:[bx+reiidenconfig_t.bullet_speed], 0
|
||
jge short loc_DF3D
|
||
mov es:[bx+reiidenconfig_t.bullet_speed], 0
|
||
|
||
loc_DF3D:
|
||
mov ax, [bp+@@stage]
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 4
|
||
jz short loc_DF52
|
||
cmp byte_34ADF, 0
|
||
jz short loc_DF9A
|
||
|
||
loc_DF52:
|
||
les bx, _resident
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score], eax
|
||
mov al, byte ptr _lives
|
||
mov es:[bx+reiidenconfig_t.rem_lives], al
|
||
mov es:[bx+reiidenconfig_t.snd_need_init], 1
|
||
mov al, _route
|
||
mov es:[bx+reiidenconfig_t.route], al
|
||
call _mdrv2_bgm_fade_out_nonblock
|
||
les bx, _resident
|
||
mov al, _bombs
|
||
mov es:[bx+reiidenconfig_t.bombs], al
|
||
call @game_switch_binary$qv
|
||
pushd 0
|
||
push ds
|
||
push offset aReiiden ; "reiiden"
|
||
push ds
|
||
push offset aReiiden ; "reiiden"
|
||
call _execl
|
||
add sp, 0Ch
|
||
|
||
loc_DF9A:
|
||
mov _orb_in_portal, 0
|
||
cmp byte_34ADF, 0
|
||
jnz short loc_DFBC
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call @stageobj_bgs_put_all$qv
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
|
||
loc_DFBC:
|
||
call sub_D47D
|
||
cmp _cards.C_left, 0
|
||
jz short loc_DFE0
|
||
call @$bdla$qnv c, large [_cards.C_left]
|
||
mov _cards.C_left, 0
|
||
jmp short $+2
|
||
|
||
loc_DFE0:
|
||
cmp _cards.C_top, 0
|
||
jz short loc_E000
|
||
call @$bdla$qnv c, large [_cards.C_top]
|
||
mov _cards.C_top, 0
|
||
jmp short $+2
|
||
|
||
loc_E000:
|
||
cmp _cards.C_flag, 0
|
||
jz short loc_E020
|
||
call @$bdla$qnv c, large [_cards.C_flag]
|
||
mov _cards.C_flag, 0
|
||
jmp short $+2
|
||
|
||
loc_E020:
|
||
cmp _cards.C_flip_frames, 0
|
||
jz short loc_E040
|
||
call @$bdla$qnv c, large [_cards.C_flip_frames]
|
||
mov _cards.C_flip_frames, 0
|
||
jmp short $+2
|
||
|
||
loc_E040:
|
||
cmp _cards.C_hp, 0
|
||
jz short loc_E060
|
||
call @$bdla$qnv c, large [_cards.C_hp]
|
||
mov _cards.C_hp, 0
|
||
jmp short $+2
|
||
|
||
loc_E060:
|
||
cmp _cards_score, 0
|
||
jz short loc_E080
|
||
call @$bdla$qnv c, large [_cards_score]
|
||
mov _cards_score, 0
|
||
jmp short $+2
|
||
|
||
loc_E080:
|
||
cmp _obstacles.O_left, 0
|
||
jz short loc_E0A0
|
||
call @$bdla$qnv c, large [_obstacles.O_left]
|
||
mov _obstacles.O_left, 0
|
||
jmp short $+2
|
||
|
||
loc_E0A0:
|
||
cmp _obstacles.O_top, 0
|
||
jz short loc_E0C0
|
||
call @$bdla$qnv c, large [_obstacles.O_top]
|
||
mov _obstacles.O_top, 0
|
||
jmp short $+2
|
||
|
||
loc_E0C0:
|
||
cmp _obstacles.O_type, 0
|
||
jz short loc_E0E0
|
||
call @$bdla$qnv c, large [_obstacles.O_type]
|
||
mov _obstacles.O_type, 0
|
||
jmp short $+2
|
||
|
||
loc_E0E0:
|
||
cmp _obstacles.O_frames, 0
|
||
jz short loc_E101
|
||
call @$bdla$qnv c, large [_obstacles.O_frames]
|
||
mov _obstacles.O_frames, 0
|
||
jmp loc_D7E4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E101:
|
||
jmp loc_D7E4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E104:
|
||
cmp _cards.C_left, 0
|
||
jz short loc_E124
|
||
call @$bdla$qnv c, large [_cards.C_left]
|
||
mov _cards.C_left, 0
|
||
jmp short $+2
|
||
|
||
loc_E124:
|
||
cmp _cards.C_top, 0
|
||
jz short loc_E144
|
||
call @$bdla$qnv c, large [_cards.C_top]
|
||
mov _cards.C_top, 0
|
||
jmp short $+2
|
||
|
||
loc_E144:
|
||
cmp _cards.C_flag, 0
|
||
jz short loc_E164
|
||
call @$bdla$qnv c, large [_cards.C_flag]
|
||
mov _cards.C_flag, 0
|
||
jmp short $+2
|
||
|
||
loc_E164:
|
||
cmp _cards.C_flip_frames, 0
|
||
jz short loc_E184
|
||
call @$bdla$qnv c, large [_cards.C_flip_frames]
|
||
mov _cards.C_flip_frames, 0
|
||
jmp short $+2
|
||
|
||
loc_E184:
|
||
cmp _cards.C_hp, 0
|
||
jz short loc_E1A4
|
||
call @$bdla$qnv c, large [_cards.C_hp]
|
||
mov _cards.C_hp, 0
|
||
jmp short $+2
|
||
|
||
loc_E1A4:
|
||
cmp _cards_score, 0
|
||
jz short loc_E1C4
|
||
call @$bdla$qnv c, large [_cards_score]
|
||
mov _cards_score, 0
|
||
jmp short $+2
|
||
|
||
loc_E1C4:
|
||
cmp _obstacles.O_left, 0
|
||
jz short loc_E1E4
|
||
call @$bdla$qnv c, large [_obstacles.O_left]
|
||
mov _obstacles.O_left, 0
|
||
jmp short $+2
|
||
|
||
loc_E1E4:
|
||
cmp _obstacles.O_top, 0
|
||
jz short loc_E204
|
||
call @$bdla$qnv c, large [_obstacles.O_top]
|
||
mov _obstacles.O_top, 0
|
||
jmp short $+2
|
||
|
||
loc_E204:
|
||
cmp _obstacles.O_type, 0
|
||
jz short loc_E224
|
||
call @$bdla$qnv c, large [_obstacles.O_type]
|
||
mov _obstacles.O_type, 0
|
||
jmp short $+2
|
||
|
||
loc_E224:
|
||
cmp _obstacles.O_frames, 0
|
||
jz short loc_E244
|
||
call @$bdla$qnv c, large [_obstacles.O_frames]
|
||
mov _obstacles.O_frames, 0
|
||
jmp short $+2
|
||
|
||
loc_E244:
|
||
inc si
|
||
call sub_CE5C
|
||
call @CShots@unput_and_reset$qv c, offset _Shots, ds
|
||
call @CPellets@unput_and_reset$qv c, offset _Pellets, ds
|
||
call sub_D47D
|
||
mov word_34A8A, 1
|
||
cmp byte_34ADF, 0
|
||
jz short loc_E27B
|
||
call sub_D4DD
|
||
mov _first_stage_in_scene, 1
|
||
|
||
loc_E27B:
|
||
les bx, _resident
|
||
mov eax, _score
|
||
mov es:[bx+reiidenconfig_t.score], eax
|
||
cmp [bp+@@stage], 5
|
||
jge short loc_E295
|
||
mov dx, ds
|
||
mov ax, offset _SCOREDAT_ROUTE_SHRINE
|
||
jmp short loc_E2A8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E295:
|
||
cmp _route, 0
|
||
jnz short loc_E2A3
|
||
mov dx, ds
|
||
mov ax, offset _SCOREDAT_ROUTE_MAKAI
|
||
jmp short loc_E2A8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E2A3:
|
||
mov dx, ds
|
||
mov ax, offset _SCOREDAT_ROUTE_JIGOKU
|
||
|
||
loc_E2A8:
|
||
push dx
|
||
push ax
|
||
mov ax, [bp+@@stage]
|
||
inc ax
|
||
push ax
|
||
pushd [_score]
|
||
call @regist$qlixnxuc
|
||
add sp, 0Ah
|
||
les bx, _resident
|
||
mov ax, [bp+@@stage]
|
||
mov es:[bx+reiidenconfig_t.stage], ax
|
||
call sub_CC0F
|
||
|
||
loc_E2CB:
|
||
call sub_D487
|
||
call sub_D4DD
|
||
call @game_switch_binary$qv
|
||
call key_end
|
||
call arc_free
|
||
pushd 0
|
||
push ds
|
||
push offset aOp ; "op"
|
||
push ds
|
||
push offset aOp ; "op"
|
||
call _execl
|
||
add sp, 0Ch
|
||
xor ax, ax
|
||
|
||
loc_E2F7:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
_main endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_E2FB dw offset loc_DD3C
|
||
dw offset loc_DD43
|
||
dw offset loc_DD4A
|
||
dw offset loc_DD51
|
||
dw offset loc_DD58
|
||
dw offset loc_DD5F
|
||
dw offset loc_DD66
|
||
word_E309 dw 4, 9, 0Eh, 13h
|
||
; value table for switch statement
|
||
dw offset loc_D85F ; jump table for switch statement
|
||
dw offset loc_D89B
|
||
dw offset loc_D901
|
||
dw offset loc_D972
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E319 proc far
|
||
push bp
|
||
mov bp, sp
|
||
call @CPellets@$bctr$qv c, offset _Pellets, ds
|
||
mov _Shots.SHOT_unknown[0 * word], 50h
|
||
mov _Shots.SHOT_unknown[1 * word], 60h
|
||
mov _Shots.SHOT_unknown[2 * word], 70h
|
||
|
||
@@i = 0
|
||
rept SHOT_COUNT
|
||
mov _Shots.SHOT_moving[@@i], 0
|
||
@@i = @@i + 1
|
||
endm
|
||
|
||
pop bp
|
||
retf
|
||
sub_E319 endp
|
||
main_013_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
frmdelay_TEXT segment byte public 'CODE' use16
|
||
extern _frame_delay:proc
|
||
frmdelay_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
vsync_TEXT segment byte public 'CODE' use16
|
||
vsync_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
ztext_TEXT segment byte public 'CODE' use16
|
||
ztext_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
initexit_TEXT segment byte public 'CODE' use16
|
||
extern @game_init$qv:proc
|
||
extern @game_switch_binary$qv:proc
|
||
initexit_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
graph_TEXT segment byte public 'CODE' use16
|
||
extern _z_graph_init:proc
|
||
extern _z_graph_show:proc
|
||
extern _z_graph_hide:proc
|
||
extern _graph_accesspage_func:proc
|
||
extern _grcg_setcolor_rmw:proc
|
||
extern _grcg_off_func:proc
|
||
extern _z_palette_set_all_show:proc
|
||
extern _z_palette_set_show:proc
|
||
extern _z_graph_clear:proc
|
||
extern _graph_copy_accessed_page_to_othe:proc
|
||
extern _text_extent_fx:proc
|
||
extern _graph_putsa_fx:proc
|
||
graph_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
SHARED segment byte public 'CODE' use16
|
||
extern _vram_planes_set:proc
|
||
extern @egc_copy_rect_1_to_0_16$qiiii:proc
|
||
SHARED ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
PTN_GRP_GRZ segment byte public 'CODE' use16
|
||
extern @ptn_load$q15main_ptn_slot_tnxc:proc
|
||
extern @ptn_free$q15main_ptn_slot_t:proc
|
||
extern @grp_put$qnxc:proc
|
||
PTN_GRP_GRZ ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_09_TEXT segment byte public 'CODE' use16
|
||
main_09_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
BULLET_L_TEXT segment byte public 'CODE' use16
|
||
BULLET_L_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
main_11_TEXT segment byte public 'CODE' use16
|
||
main_11_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
resstuff_TEXT segment byte public 'CODE' use16
|
||
extern _resident_stuff_get:proc
|
||
resstuff_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
GRAPH_EX_TEXT segment byte public 'CODE' use16
|
||
extern @z_vsync_wait_and_scrollup$qi:proc
|
||
extern @graph_2xscale_byterect_1_to_0_sl$qiiiiii:proc
|
||
GRAPH_EX_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
main_14_TEXT segment byte public 'CODE' use16
|
||
main_14_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_15_TEXT segment byte public 'CODE' use16
|
||
extern @CShootoutLaser@update_hittest_and_render$qv:proc
|
||
main_15_TEXT ends
|
||
|
||
main_15__TEXT segment byte public 'CODE' use16
|
||
assume cs:main_15
|
||
;org 0Dh
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_1240A proc far
|
||
push bp
|
||
mov bp, sp
|
||
push seg main_15
|
||
push offset sub_12428
|
||
push 5
|
||
pushd SHOOTOUT_LASER_COUNT
|
||
push size CShootoutLaser
|
||
push ds
|
||
push offset _shootout_lasers
|
||
call @_vector_new_$qnvuiuluie ; _vector_new_(void *,uint,ulong,uint,...)
|
||
add sp, 10h
|
||
pop bp
|
||
retf
|
||
sub_1240A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_12428 proc far
|
||
|
||
@@CShootoutLaser = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
cmp [bp+@@CShootoutLaser], 0
|
||
jnz short loc_12444
|
||
push size CShootoutLaser
|
||
call @$bnew$qui ; operator new(uint)
|
||
pop cx
|
||
mov word ptr [bp+@@CShootoutLaser+2], dx
|
||
mov word ptr [bp+@@CShootoutLaser], ax
|
||
or ax, dx
|
||
jz short loc_1244D
|
||
|
||
loc_12444:
|
||
les bx, [bp+@@CShootoutLaser]
|
||
mov es:[bx+CShootoutLaser.SL_alive], 0
|
||
|
||
loc_1244D:
|
||
mov dx, word ptr [bp+@@CShootoutLaser+2]
|
||
|
||
loc_12450:
|
||
mov ax, word ptr [bp+@@CShootoutLaser]
|
||
pop bp
|
||
|
||
locret_12454:
|
||
retf
|
||
sub_12428 endp
|
||
|
||
main_15__TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
mdrv2_TEXT segment byte public 'CODE' use16
|
||
extern _mdrv2_resident:proc
|
||
extern _mdrv2_bgm_load:proc
|
||
extern _mdrv2_se_load:proc
|
||
extern _mdrv2_bgm_play:proc
|
||
extern _mdrv2_bgm_stop:proc
|
||
extern _mdrv2_bgm_fade_out_nonblock:proc
|
||
extern _mdrv2_check_board:proc
|
||
extern _mdrv2_se_play:proc
|
||
mdrv2_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_17_TEXT segment byte public 'CODE' use16
|
||
extern @singyoku_defeat_animate_and_sele$qv:proc
|
||
main_17_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_18_TEXT segment byte public 'CODE' use16
|
||
@TOTLE_METRIC_DIGIT_ANIMATE$QIII procdesc pascal near \
|
||
digit:word, place_and_top:dword
|
||
@EGC_PAGETRANS_ROWSHIFT_ALTERNATI$QII procdesc pascal near \
|
||
y: word, transferred_chunk_left:word
|
||
main_18_TEXT ends
|
||
|
||
main_18__TEXT segment byte public 'CODE' use16
|
||
assume cs:main_18
|
||
;org 0Bh
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_12D3F proc near
|
||
|
||
var_12 = word ptr -12h
|
||
var_10 = word ptr -10h
|
||
var_E = word ptr -0Eh
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = dword ptr -8
|
||
_font = dword ptr -4
|
||
|
||
enter 12h, 0
|
||
push si
|
||
push di
|
||
xor di, di
|
||
mov [bp+var_A], 0
|
||
mov [bp+var_10], 1
|
||
push 320h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr [bp+_font+2], dx
|
||
mov word ptr [bp+_font], ax
|
||
push 320h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr [bp+var_8+2], dx
|
||
mov word ptr [bp+var_8], ax
|
||
xor si, si
|
||
jmp short loc_12D90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12D73:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+_font]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 0
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 0
|
||
inc si
|
||
|
||
loc_12D90:
|
||
cmp si, 190h
|
||
jb short loc_12D73
|
||
call egc_on
|
||
EGC_SETUP_COPY
|
||
|
||
loc_12DC5:
|
||
xor si, si
|
||
jmp short loc_12E0D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12DC9:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+var_8]
|
||
add bx, ax
|
||
cmp word ptr es:[bx], 0
|
||
jz short loc_12E0C
|
||
push si ; y
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+_font]
|
||
add bx, ax
|
||
push word ptr es:[bx] ; transferred_chunk_left
|
||
call @egc_pagetrans_rowshift_alternati$qii
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+_font]
|
||
add bx, ax
|
||
add word ptr es:[bx], 4
|
||
cmp word ptr es:[bx], 50h ; 'P'
|
||
jb short loc_12E0C
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 0
|
||
inc [bp+var_A]
|
||
|
||
loc_12E0C:
|
||
inc si
|
||
|
||
loc_12E0D:
|
||
cmp si, 190h
|
||
jb short loc_12DC9
|
||
inc [bp+var_12]
|
||
push 2
|
||
call _frame_delay
|
||
pop cx
|
||
cmp [bp+var_A], 190h
|
||
jnb loc_12F42
|
||
cmp di, 190h
|
||
jnb short loc_12EA4
|
||
mov ax, di
|
||
add ax, ax
|
||
les bx, [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+1]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+2]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+3]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+4]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+5]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+6]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
lea ax, [di+7]
|
||
add ax, ax
|
||
mov bx, word ptr [bp+var_8]
|
||
add bx, ax
|
||
mov word ptr es:[bx], 1
|
||
|
||
loc_12EA4:
|
||
add di, 8
|
||
mov ax, [bp+var_A]
|
||
cmp ax, [bp+var_10]
|
||
jz loc_12F39
|
||
test di, 0Fh
|
||
jnz loc_12F39
|
||
mov [bp+var_C], 0
|
||
jmp short loc_12F27
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12EC0:
|
||
mov [bp+var_E], 0
|
||
jmp short loc_12F1E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12EC7:
|
||
mov bx, [bp+var_C]
|
||
imul bx, size rgb_t
|
||
add bx, [bp+var_E]
|
||
mov al, _z_Palettes[bx]
|
||
mov bx, [bp+var_C]
|
||
imul bx, size rgb_t
|
||
add bx, [bp+var_E]
|
||
cmp al, byte ptr _grp_palette[bx]
|
||
jz short loc_12F1B
|
||
mov bx, [bp+var_C]
|
||
imul bx, 3
|
||
add bx, [bp+var_E]
|
||
mov bx, [bp+var_C]
|
||
imul bx, 3
|
||
add bx, [bp+var_E]
|
||
cmp al, byte ptr _grp_palette[bx]
|
||
jge short loc_12EFF
|
||
mov al, 1
|
||
jmp short loc_12F01
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12EFF:
|
||
mov al, -1
|
||
|
||
loc_12F01:
|
||
mov bx, [bp+var_C]
|
||
imul bx, 3
|
||
add bx, [bp+var_E]
|
||
add al, _z_Palettes[bx]
|
||
mov bx, [bp+var_C]
|
||
imul bx, 3
|
||
add bx, [bp+var_E]
|
||
mov _z_Palettes[bx], al
|
||
|
||
loc_12F1B:
|
||
inc [bp+var_E]
|
||
|
||
loc_12F1E:
|
||
cmp [bp+var_E], size rgb_t
|
||
jb short loc_12EC7
|
||
inc [bp+var_C]
|
||
|
||
loc_12F27:
|
||
cmp [bp+var_C], COLOR_COUNT
|
||
jb short loc_12EC0
|
||
call _z_palette_set_all_show c, offset _z_Palettes, ds
|
||
|
||
loc_12F39:
|
||
mov ax, [bp+var_A]
|
||
mov [bp+var_10], ax
|
||
jmp loc_12DC5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12F42:
|
||
pushd [bp+_font] ; font
|
||
call @$bdla$qnv
|
||
pushd [bp+var_8] ; font
|
||
call @$bdla$qnv
|
||
add sp, 8
|
||
call egc_off
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 2
|
||
sub_12D3F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_12F62 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push 1
|
||
call _graph_accesspage_func
|
||
call @grp_put$qnxc stdcall, offset aClear3_grp, ds ; "CLEAR3.grp"
|
||
call @ptn_load$q15main_ptn_slot_tnxc stdcall, PTN_SLOT_NUMB, offset aNumb_ptn, ds ; "numb.ptn"
|
||
push 0
|
||
call _graph_accesspage_func
|
||
add sp, 0Eh
|
||
push 0
|
||
call sub_12D3F
|
||
pop bp
|
||
retn
|
||
sub_12F62 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_12F91 proc near
|
||
|
||
var_C = dword ptr -0Ch
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 0Ch, 0
|
||
push si
|
||
push di
|
||
mov di, 3844h
|
||
mov eax, dword_3573A
|
||
mov [bp+var_C], eax
|
||
call _grcg_setcolor_rmw stdcall, 0
|
||
pop cx
|
||
mov [bp+var_6], di
|
||
xor si, si
|
||
jmp short loc_13024
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12FB1:
|
||
mov [bp+var_2], 0
|
||
mov [bp+var_4], di
|
||
mov ax, [bp+var_6]
|
||
mov [bp+var_8], ax
|
||
jmp short loc_13002
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_12FC1:
|
||
mov ax, si
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
lea ax, [bp+var_C]
|
||
add dx, ax
|
||
mov bx, dx
|
||
mov al, ss:[bx]
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_4]
|
||
mov es:[bx], al
|
||
mov ax, si
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
lea ax, [bp+var_C]
|
||
add dx, ax
|
||
mov bx, dx
|
||
mov al, ss:[bx]
|
||
mov bx, word ptr _VRAM_PLANE_B
|
||
add bx, [bp+var_8]
|
||
mov es:[bx], al
|
||
inc [bp+var_2]
|
||
inc [bp+var_4]
|
||
inc [bp+var_8]
|
||
|
||
loc_13002:
|
||
cmp [bp+var_2], 28h ; '('
|
||
jl short loc_12FC1
|
||
sub di, 50h ; 'P'
|
||
add [bp+var_6], 50h ; 'P'
|
||
mov ax, si
|
||
mov bx, 6
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_13023
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_13023:
|
||
inc si
|
||
|
||
loc_13024:
|
||
cmp si, 8Ch
|
||
jl short loc_12FB1
|
||
call _grcg_off_func
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_12F91 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_13033 proc far
|
||
|
||
var_2C = byte ptr -2Ch
|
||
arg_0 = dword ptr 6
|
||
arg_4 = byte ptr 0Ah
|
||
|
||
enter 2Ch, 0
|
||
lea ax, [bp+var_2C]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_3573E
|
||
mov cx, 2Ch ; ','
|
||
call SCOPY@
|
||
mov al, [bp+arg_4]
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_2C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
les bx, ss:[bx]
|
||
mov al, es:[bx]
|
||
les bx, [bp+arg_0]
|
||
mov es:[bx], al
|
||
mov al, [bp+arg_4]
|
||
cbw
|
||
shl ax, 2
|
||
add ax, dx
|
||
mov bx, ax
|
||
les bx, ss:[bx]
|
||
mov al, es:[bx+1]
|
||
les bx, [bp+arg_0]
|
||
mov es:[bx+1], al
|
||
leave
|
||
retf
|
||
sub_13033 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_1307D proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
mov ax, si
|
||
mov bx, 1000
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
pushd [bp+arg_2]
|
||
call sub_13033
|
||
add sp, 6
|
||
mov bx, 1000
|
||
mov ax, si
|
||
cwd
|
||
idiv bx
|
||
mov si, dx
|
||
mov ax, si
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+arg_2]
|
||
add ax, 2
|
||
push word ptr [bp+arg_2+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov bx, 100
|
||
mov ax, si
|
||
cwd
|
||
idiv bx
|
||
mov si, dx
|
||
mov ax, si
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+arg_2]
|
||
add ax, 4
|
||
push word ptr [bp+arg_2+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov bx, 10
|
||
mov ax, si
|
||
cwd
|
||
idiv bx
|
||
mov si, dx
|
||
push dx
|
||
mov ax, word ptr [bp+arg_2]
|
||
add ax, 6
|
||
push word ptr [bp+arg_2+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_1307D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_13101 proc far
|
||
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = dword ptr -8
|
||
var_4 = dword ptr -4
|
||
arg_0 = word ptr 6
|
||
|
||
enter 0Ch, 0
|
||
push si
|
||
push di
|
||
mov word ptr [bp+var_4+2], ds
|
||
mov word ptr [bp+var_4], offset aSTAGE_COMPLETE
|
||
mov word ptr [bp+var_8+2], ds
|
||
mov word ptr [bp+var_8], offset aSTAGE_COMPLETE_NUM
|
||
xor si, si
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+var_4]
|
||
add ax, 0Ch
|
||
push word ptr [bp+var_4+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push dx
|
||
mov ax, word ptr [bp+var_4]
|
||
add ax, 0Eh
|
||
push word ptr [bp+var_4+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
call _z_palette_set_all_show c, offset _stage_palette, ds
|
||
call sub_12F91
|
||
pushd [bp+var_4]
|
||
push ((10 or FX_WEIGHT_BOLD) shl 16) or 80
|
||
push 64
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 112, offset aB@b@vavnvmvtvr, ds ; "<22>@<40>@<40>a<EFBFBD>n<EFBFBD>m<EFBFBD>t<EFBFBD>r"
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 128, offset aB@vsvivnveb@, ds ; " <20>@<40>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@"
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 160, offset aVbvpvovfvivovx, ds ; "<22>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 192, offset aVavpvnvvbxvovm, ds ; "<22>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 224, offset aB@b@vrvsvVfvd, ds ; "<22>@<40>@<40>r<EFBFBD>s<EFBFBD>`<60>f<EFBFBD>d"
|
||
call _graph_putsa_fx c, 48, large ((7 or FX_WEIGHT_BOLD) shl 16) or 256, offset aVavnvmvtvrb@vo, ds ; "<22>a<EFBFBD>n<EFBFBD>m<EFBFBD>t<EFBFBD>r<EFBFBD>@<40>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
call _graph_putsa_fx c, 160, large ((10 or FX_WEIGHT_BOLD) shl 16) or 288, offset aVgvivfb@vyb@vj, ds ; "<22>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>y<EFBFBD>@<40>j<EFBFBD><6A><EFBFBD><EFBFBD>"
|
||
mov ax, _stage_timer
|
||
imul ax, 3
|
||
mov si, ax
|
||
cmp si, 6553
|
||
jle short loc_13210
|
||
mov si, 6553
|
||
|
||
loc_13210:
|
||
xor di, di
|
||
jmp short loc_1321E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_13214:
|
||
movsx eax, si
|
||
add score_34A5E, eax
|
||
inc di
|
||
|
||
loc_1321E:
|
||
cmp di, 0Ah
|
||
jb short loc_13214
|
||
push 0
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 8
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
push 0Ah
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 0Ah
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
pushd [bp+var_8]
|
||
push si
|
||
call sub_1307D
|
||
pushd [bp+var_8]
|
||
push ((7 or FX_WEIGHT_BOLD) shl 16) or 128
|
||
push 256
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
mov ax, _cardcombo_max
|
||
imul ax, 100
|
||
mov si, ax
|
||
cmp si, 6553
|
||
jle short loc_13277
|
||
mov si, 6553
|
||
|
||
loc_13277:
|
||
xor di, di
|
||
jmp short loc_13285
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_1327B:
|
||
movsx eax, si
|
||
add score_34A5E, eax
|
||
inc di
|
||
|
||
loc_13285:
|
||
cmp di, 0Ah
|
||
jb short loc_1327B
|
||
pushd [bp+var_8]
|
||
push si
|
||
call sub_1307D
|
||
pushd [bp+var_8]
|
||
push ((7 or FX_WEIGHT_BOLD) shl 16) or 160
|
||
push 256
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
mov ax, _lives
|
||
imul ax, 200
|
||
mov si, ax
|
||
mov al, _bombs
|
||
cbw
|
||
imul ax, 100
|
||
add si, ax
|
||
cmp si, 6553
|
||
jle short loc_132C2
|
||
mov si, 6553
|
||
|
||
loc_132C2:
|
||
xor di, di
|
||
jmp short loc_132D0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_132C6:
|
||
movsx eax, si
|
||
add score_34A5E, eax
|
||
inc di
|
||
|
||
loc_132D0:
|
||
cmp di, 0Ah
|
||
jb short loc_132C6
|
||
pushd [bp+var_8]
|
||
push si
|
||
call sub_1307D
|
||
pushd [bp+var_8]
|
||
push ((7 or FX_WEIGHT_BOLD) shl 16) or 192
|
||
push 256
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
mov ax, [bp+arg_0]
|
||
dec ax
|
||
imul ax, 200
|
||
mov si, ax
|
||
cmp si, 6553
|
||
jle short loc_13305
|
||
mov si, 6553
|
||
|
||
loc_13305:
|
||
xor di, di
|
||
jmp short loc_13313
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_13309:
|
||
movsx eax, si
|
||
add score_34A5E, eax
|
||
inc di
|
||
|
||
loc_13313:
|
||
cmp di, 0Ah
|
||
jb short loc_13309
|
||
pushd [bp+var_8]
|
||
push si
|
||
call sub_1307D
|
||
pushd [bp+var_8]
|
||
push ((7 or FX_WEIGHT_BOLD) shl 16) or 224
|
||
push 256
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
mov eax, score_34A5E
|
||
add _score, eax
|
||
mov ebx, 10000
|
||
xor edx, edx
|
||
div ebx
|
||
mov [bp+var_A], ax
|
||
imul ax, 10000
|
||
mov dx, word ptr score_34A5E
|
||
sub dx, ax
|
||
mov [bp+var_C], dx
|
||
mov ax, [bp+arg_0]
|
||
dec ax
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
shl dx, 2
|
||
les bx, _resident
|
||
add bx, dx
|
||
mov eax, score_34A5E
|
||
mov es:[bx+reiidenconfig_t.bonus_per_stage], eax
|
||
mov ax, [bp+var_A]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
pushd [bp+var_8]
|
||
call sub_13033
|
||
add sp, 6
|
||
mov ax, [bp+var_A]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push dx
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 2
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov ax, [bp+var_C]
|
||
mov bx, 1000
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 4
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov bx, 1000
|
||
mov ax, [bp+var_C]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_C], dx
|
||
mov ax, [bp+var_C]
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 6
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
mov bx, 100
|
||
mov ax, [bp+var_C]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_C], dx
|
||
mov ax, [bp+var_C]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 8
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
push 0
|
||
mov ax, word ptr [bp+var_8]
|
||
add ax, 0Ah
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
call sub_13033
|
||
add sp, 6
|
||
pushd [bp+var_8]
|
||
push ((7 or FX_WEIGHT_BOLD) shl 16) or 256
|
||
push 240
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
call @hud_score_and_cardcombo_render$qv
|
||
call sub_D02F
|
||
call _input_reset_sense
|
||
mov _input_shot, 1
|
||
mov _input_ok, 1
|
||
jmp short loc_1345A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_13452:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
|
||
loc_1345A:
|
||
cmp _input_shot, 1
|
||
jnz short loc_13468
|
||
cmp _input_ok, 1
|
||
jz short loc_13452
|
||
|
||
loc_13468:
|
||
mov score_34A5E, 0
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_13101 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_13475 proc far
|
||
|
||
var_6 = dword ptr -6
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
|
||
enter 6, 0
|
||
push si
|
||
push di
|
||
call @CShots@unput_and_reset$qv c, offset _Shots, ds
|
||
call @CPellets@unput_and_reset$qv c, offset _Pellets, ds
|
||
push 32h ; '2'
|
||
call _frame_delay
|
||
pop cx
|
||
mov [bp+var_6], 0
|
||
call sub_12F62
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
add ax, (7 * PTN_IMAGES_PER_SLOT)
|
||
call @ptn_put_8$qiii stdcall, (14 shl 16) or 224, ax
|
||
add sp, 6
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
add dx, (7 * PTN_IMAGES_PER_SLOT)
|
||
call @ptn_put_8$qiii stdcall, (14 shl 16) or 256, dx
|
||
add sp, 6
|
||
push 1Eh
|
||
call _frame_delay
|
||
pop cx
|
||
mov ax, _stage_timer
|
||
imul ax, 5
|
||
movzx eax, ax
|
||
mov [bp+var_6], eax
|
||
cmp [bp+var_6], 6553
|
||
jle short loc_13505
|
||
mov [bp+var_6], 6553
|
||
|
||
loc_13505:
|
||
xor si, si
|
||
jmp short loc_13513
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_13509:
|
||
mov eax, [bp+var_6]
|
||
add score_34A5E, eax
|
||
inc si
|
||
|
||
loc_13513:
|
||
cmp si, 0Ah
|
||
jb short loc_13509
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (0 shl 16) or 86
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (1 shl 16) or 86
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (2 shl 16) or 86
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
call @totle_metric_digit_animate$qiii pascal, word ptr [bp+var_6], large (3 shl 16) or 86
|
||
pushd (0 shl 16) or 4
|
||
push 86
|
||
call @totle_metric_digit_animate$qiii
|
||
push 5
|
||
call _frame_delay
|
||
pop cx
|
||
mov ax, _cardcombo_max
|
||
imul ax, 200
|
||
cwde
|
||
mov [bp+var_6], eax
|
||
cmp [bp+var_6], 6553
|
||
jle short loc_135D4
|
||
mov [bp+var_6], 6553
|
||
|
||
loc_135D4:
|
||
xor si, si
|
||
jmp short loc_135E2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_135D8:
|
||
mov eax, [bp+var_6]
|
||
add score_34A5E, eax
|
||
inc si
|
||
|
||
loc_135E2:
|
||
cmp si, 0Ah
|
||
jb short loc_135D8
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (0 shl 16) or 107
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (1 shl 16) or 107
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (2 shl 16) or 107
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
call @totle_metric_digit_animate$qiii pascal, word ptr [bp+var_6], large (3 shl 16) or 107
|
||
pushd (0 shl 16) or 4
|
||
push 107
|
||
call @totle_metric_digit_animate$qiii
|
||
push 5
|
||
call _frame_delay
|
||
pop cx
|
||
mov ax, _lives
|
||
imul ax, 500
|
||
cwde
|
||
mov [bp+var_6], eax
|
||
mov al, _bombs
|
||
cbw
|
||
imul ax, 200
|
||
cwde
|
||
add [bp+var_6], eax
|
||
cmp [bp+var_6], 6553
|
||
jle short loc_136B1
|
||
mov [bp+var_6], 6553
|
||
|
||
loc_136B1:
|
||
xor si, si
|
||
jmp short loc_136BF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_136B5:
|
||
mov eax, [bp+var_6]
|
||
add score_34A5E, eax
|
||
inc si
|
||
|
||
loc_136BF:
|
||
cmp si, 0Ah
|
||
jb short loc_136B5
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (0 shl 16) or 128
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (1 shl 16) or 128
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (2 shl 16) or 128
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
call @totle_metric_digit_animate$qiii pascal, word ptr [bp+var_6], large (3 shl 16) or 128
|
||
pushd (0 shl 16) or 4
|
||
push 128
|
||
call @totle_metric_digit_animate$qiii
|
||
push 5
|
||
call _frame_delay
|
||
pop cx
|
||
mov ax, [bp+arg_0]
|
||
imul ax, 1000
|
||
cwde
|
||
mov [bp+var_6], eax
|
||
cmp [bp+var_6], 65530
|
||
jle short loc_13784
|
||
mov [bp+var_6], 65530
|
||
|
||
loc_13784:
|
||
xor si, si
|
||
jmp short loc_13792
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_13788:
|
||
mov eax, [bp+var_6]
|
||
add score_34A5E, eax
|
||
inc si
|
||
|
||
loc_13792:
|
||
cmp si, 0Ah
|
||
jb short loc_13788
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10000
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (-1 shl 16) or 149
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10000
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (0 shl 16) or 149
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 1000
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (1 shl 16) or 149
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 100
|
||
cdq
|
||
idiv ebx
|
||
mov [bp+var_6], edx
|
||
mov eax, [bp+var_6]
|
||
mov ebx, 10
|
||
cdq
|
||
idiv ebx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (2 shl 16) or 149
|
||
pushd (0 shl 16) or 3
|
||
push 149
|
||
call @totle_metric_digit_animate$qiii
|
||
pushd (0 shl 16) or 4
|
||
push 149
|
||
call @totle_metric_digit_animate$qiii
|
||
push 5
|
||
call _frame_delay
|
||
pop cx
|
||
mov eax, score_34A5E
|
||
add _score, eax
|
||
mov ebx, 10000
|
||
xor edx, edx
|
||
div ebx
|
||
mov [bp+var_2], ax
|
||
imul ax, 10000
|
||
mov dx, word ptr score_34A5E
|
||
sub dx, ax
|
||
mov di, dx
|
||
mov ax, [bp+var_2]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (-1 shl 16) or 196
|
||
mov ax, [bp+var_2]
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
call @totle_metric_digit_animate$qiii pascal, dx, large (0 shl 16) or 196
|
||
mov ax, di
|
||
mov bx, 1000
|
||
cwd
|
||
idiv bx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (1 shl 16) or 196
|
||
mov ax, di
|
||
mov bx, 1000
|
||
cwd
|
||
idiv bx
|
||
mov di, dx
|
||
mov ax, di
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (2 shl 16) or 196
|
||
mov ax, di
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
mov di, dx
|
||
mov ax, di
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
call @totle_metric_digit_animate$qiii pascal, ax, large (3 shl 16) or 196
|
||
mov ax, di
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
mov di, dx
|
||
call @totle_metric_digit_animate$qiii pascal, dx, large (4 shl 16) or 196
|
||
push 5
|
||
call _frame_delay
|
||
pop cx
|
||
call _input_reset_sense
|
||
mov _input_shot, 1
|
||
mov _input_ok, 1
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 5
|
||
cwd
|
||
idiv bx
|
||
dec ax
|
||
add ax, ax
|
||
les bx, _resident
|
||
add bx, ax
|
||
mov ax, word ptr _continues_total
|
||
mov es:[bx+reiidenconfig_t.continues_per_scene], ax
|
||
jmp short loc_13933
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_1392B:
|
||
call _input_sense stdcall, 0
|
||
pop cx
|
||
|
||
loc_13933:
|
||
cmp _input_shot, 1
|
||
jnz short loc_13941
|
||
cmp _input_ok, 1
|
||
jz short loc_1392B
|
||
|
||
loc_13941:
|
||
mov score_34A5E, 0
|
||
call @ptn_free$q15main_ptn_slot_t stdcall, PTN_SLOT_NUMB
|
||
pop cx
|
||
pop di
|
||
pop si
|
||
|
||
locret_13954:
|
||
leave
|
||
retf
|
||
sub_13475 endp
|
||
|
||
main_18__TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_19_TEXT segment byte public 'CODE' use16
|
||
extern @scoredat_load$qv:proc
|
||
extern @scoredat_hiscore_get$qv:proc
|
||
main_19_TEXT ends
|
||
|
||
main_19__TEXT segment byte public 'CODE' use16
|
||
assume cs:main_19
|
||
extern @scoredat_free$qv:proc
|
||
extern @regist$qlixnxuc:proc
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _scoredat_load_hiscore
|
||
_scoredat_load_hiscore proc far
|
||
push bp
|
||
mov bp, sp
|
||
call @scoredat_load$qv
|
||
call @scoredat_hiscore_get$qv
|
||
push dx
|
||
push ax
|
||
pop eax
|
||
les bx, _resident
|
||
assume es:nothing
|
||
mov es:[bx+reiidenconfig_t.hiscore], eax
|
||
call @scoredat_free$qv
|
||
pop bp
|
||
retf
|
||
_scoredat_load_hiscore endp
|
||
|
||
main_19__TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_20_TEXT segment byte public 'CODE' use16
|
||
main_20_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_21_TEXT segment byte public 'CODE' use16
|
||
extern @bos_entity_free$qi:proc
|
||
main_21_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
PF_TEXT segment byte public 'CODE' use16
|
||
extern ARC_LOAD:proc
|
||
extern ARC_FREE:proc
|
||
PF_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_23_TEXT segment byte public 'CODE' use16
|
||
extern @shape_ellipse_arc_put$qiiiiiucucuc:proc
|
||
extern @shape_ellipse_arc_sloppy_unput$qiiiiucucuc:proc
|
||
extern _graph_r_lineloop_put:proc
|
||
extern _graph_r_lineloop_unput:proc
|
||
main_23_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_24_TEXT segment byte public 'CODE' use16
|
||
extern @items_bomb_reset$qv:proc
|
||
extern @items_bomb_unput_update_render$qv:proc
|
||
extern @items_point_reset$qv:proc
|
||
extern @items_point_unput_update_render$qv:proc
|
||
main_24_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_25_TEXT segment byte public 'CODE' use16
|
||
extern @hud_score_and_cardcombo_render$qv:proc
|
||
extern @hud_lives_put$qi:proc
|
||
extern @hud_bg_snap_and_put$qv:proc
|
||
main_25_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_26_TEXT segment byte public 'CODE' use16
|
||
extern @timer_tick_and_put$qv:proc
|
||
main_26_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_27_TEXT segment byte public 'CODE' use16
|
||
extern @ptn_unput_8$qiii:proc
|
||
extern @ptn_put_8$qiii:proc
|
||
extern @player_unput_update_render$qi:proc
|
||
OR_NONE = 0
|
||
extern @orb_player_hittest$qi:proc
|
||
extern @player_miss_animate_and_update$qv:proc
|
||
main_27_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
main_28_TEXT segment byte public 'CODE' use16
|
||
extern @yuugenmagan_load$qv:proc
|
||
extern @yuugenmagan_main$qv:proc
|
||
extern @yuugenmagan_free$qv:proc
|
||
main_28_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_29_TEXT segment byte public 'CODE' use16
|
||
extern @mima_load$qv:proc
|
||
extern @mima_free$qv:proc
|
||
extern @mima_main$qv:proc
|
||
main_29_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_30_TEXT segment byte public 'CODE' use16
|
||
extern @cards_hittest$qi:proc
|
||
extern @cards_update_and_render$qv:proc
|
||
main_30_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_31_TEXT segment byte public 'CODE' use16
|
||
extern @stageobj_bgs_put_all$qv:proc
|
||
extern @stageobj_bgs_free$qv:proc
|
||
extern @scene_init_and_load$quc:proc
|
||
extern @obstacles_update_and_render$qi:proc
|
||
main_31_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_32_TEXT segment byte public 'CODE' use16
|
||
main_32_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_33_TEXT segment byte public 'CODE' use16
|
||
extern @singyoku_load$qv:proc
|
||
extern @singyoku_main$qv:proc
|
||
extern @singyoku_free$qv:proc
|
||
main_33_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_34_TEXT segment byte public 'CODE' use16
|
||
extern @kikuri_load$qv:proc
|
||
extern @kikuri_free$qv:proc
|
||
extern @kikuri_main$qv:proc
|
||
main_34_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_35_TEXT segment byte public 'CODE' use16
|
||
extern @elis_load$qv:proc
|
||
extern @elis_main$qv:proc
|
||
extern @elis_free$qv:proc
|
||
main_35_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_36_TEXT segment byte public 'CODE' use16
|
||
extern @sariel_entrance$qc:proc
|
||
extern @sariel_load_and_init$qv:proc
|
||
extern @sariel_free$qv:proc
|
||
extern @sariel_main$qv:proc
|
||
main_36_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_37_TEXT segment byte public 'CODE' use16
|
||
extern @konngara_load_and_entrance$qc:proc
|
||
extern @konngara_init$qv:proc
|
||
extern @konngara_free$qv:proc
|
||
extern @konngara_main$qv:proc
|
||
main_37_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
main_38_TEXT segment byte public 'CODE' use16
|
||
extern @CShots@unput_and_reset$qv:proc
|
||
extern @CPellets@$bctr$qv:proc
|
||
extern @CPellets@unput_update_render$qv:proc
|
||
extern @CPellets@unput_and_reset$qv:proc
|
||
main_38_TEXT ends
|
||
|
||
.data
|
||
|
||
; Not *really* a cfg_options_t, since you'd expect that structure to contain
|
||
; the immutable contents of REIIDEN.CFG. However, [bombs] is in fact the
|
||
; *current* bomb count, and the .CFG value is saved to [credit_bombs]...
|
||
public _rank, _bgm_mode, _bombs, _lives_extra
|
||
_rank db CFG_RANK_DEFAULT
|
||
_bgm_mode db CFG_BGM_MODE_DEFAULT
|
||
_bombs db CFG_BOMBS_DEFAULT
|
||
_lives_extra db CFG_LIVES_EXTRA_DEFAULT
|
||
public _stage_num
|
||
_stage_num db 0
|
||
byte_34A35 db 0
|
||
db 0
|
||
public _RANKS, _first_stage_in_scene, _timer_initialized
|
||
_RANKS label dword
|
||
dd aEasy ; "EASY"
|
||
dd aNormal ; "NORMAL"
|
||
dd aHard ; "HARD"
|
||
dd aLunatic ; "LUNATIC"
|
||
_timer_initialized db 0
|
||
db 0
|
||
_first_stage_in_scene db 1
|
||
db 0
|
||
include th01/hardware/input_main_end[data].asm
|
||
db 0
|
||
public _player_deflecting, _bomb_damaging, _player_sliding
|
||
_player_deflecting db 0
|
||
_bomb_damaging db 0
|
||
_player_sliding db 0
|
||
public _score, _bomb_frames
|
||
_score dd 0
|
||
score_34A5E dd 0
|
||
_bomb_frames dd 0
|
||
_continues_total dd 0
|
||
dw 0
|
||
public _mode_test
|
||
_mode_test dw 0
|
||
public _bomb_doubletap_frames
|
||
_bomb_doubletap_frames dw 0
|
||
word_34A70 dw 0
|
||
public _test_damage
|
||
_test_damage dw 0
|
||
word_34A74 dw 0
|
||
dw 0
|
||
public _player_invincible
|
||
_player_invincible dw 0
|
||
dw 0
|
||
public _orb_velocity_x, _lives, _stage_cleared
|
||
_orb_velocity_x dw 0
|
||
word_34A7E dw 0
|
||
_lives dw 4
|
||
_stage_cleared dw 0
|
||
public _cardcombo_cur, _orb_in_portal, _cardcombo_max
|
||
_cardcombo_cur dw 0
|
||
_orb_in_portal dw 0
|
||
_cardcombo_max dw 0
|
||
word_34A8A dw 1
|
||
word_34A8C dw 1
|
||
public _orb_prev_left, _orb_prev_top
|
||
_orb_prev_left dw ORB_LEFT_START
|
||
_orb_prev_top dw ORB_TOP_START
|
||
word_34A92 dw 0
|
||
include th01/main/player/orb[data].asm
|
||
public _ptn_slot_stg_has_reduced_sprites, _bomb_palette_flash_peak_
|
||
_ptn_slot_stg_has_reduced_sprites db 0
|
||
label _bomb_palette_flash_peak_ byte
|
||
db 0Fh, 0Fh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Fh, 0Fh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 0Dh, 0Dh, 0Fh
|
||
db 06h, 06h, 0Fh
|
||
byte_34AD5 db 0
|
||
word_34AD6 dw 0
|
||
byte_34AD8 db 0
|
||
word_34AD9 dw 0
|
||
byte_34ADB db 0
|
||
word_34ADC dw 0
|
||
unk_34ADE db 0
|
||
byte_34ADF db 0
|
||
aEasy db 'EASY',0
|
||
aNormal db 'NORMAL',0
|
||
aHard db 'HARD',0
|
||
aLunatic db 'LUNATIC',0
|
||
public _esc_cls
|
||
_esc_cls db 1Bh,'*',0
|
||
public _mask_grf, _miko_ac_bos, _miko_ac2_bos, _PTN_STG_CARDFLIP_FN, _miko_ptn
|
||
_mask_grf db 'mask.grf',0
|
||
_miko_ac_bos db 'miko_ac.bos',0
|
||
_miko_ac2_bos db 'miko_ac2.bos',0
|
||
_PTN_STG_CARDFLIP_FN db 'stg.ptn',0
|
||
_miko_ptn db 'miko.ptn',0
|
||
public _esc_color_bg_black_fg_black, _esc_cursor_to_x0_y0, _space
|
||
public _esc_color_reset, _empty_grf, _kuzi1_grc, _kuzi2_grc
|
||
_esc_color_bg_black_fg_black db 1Bh,'[16;40m',0
|
||
_esc_cursor_to_x0_y0 db 1Bh,'[0;0H',0
|
||
_space db ' ',0
|
||
_esc_color_reset db 1Bh,'[0m',0
|
||
_empty_grf db 'empty.grf',0
|
||
_kuzi1_grc db 'kuzi1.grc',0
|
||
_kuzi2_grc db 'kuzi2.grc',0
|
||
public _ORB_VELOCITY_Y_MAX, _ORB_VELOCITY_Y_MIN
|
||
public _ORB_COEFFICIENT_OF_RESTITUTION, _ORB_FORCE_2_0, _ORB_FORCE_SHOT_BASE
|
||
_ORB_VELOCITY_Y_MAX dd 16.0
|
||
_ORB_VELOCITY_Y_MIN dq -16.0
|
||
_ORB_COEFFICIENT_OF_RESTITUTION dq 0.78
|
||
_ORB_FORCE_2_0 dd 2.0
|
||
_ORB_FORCE_SHOT_BASE dq -10.0
|
||
aVovVtvrvd db '<27>o<EFBFBD>`<60>t<EFBFBD>r<EFBFBD>d',0
|
||
aB@nKjb@b@pic db '<27>@<40>ĊJ<C48A>@<40>@<40>I<EFBFBD><49>',0
|
||
aBB@b@b@b@b@b@ db '<27><><EFBFBD>@<40>@<40>@<40>@<40>@<40>@',0
|
||
aB db '<27><>',0
|
||
aCUcvPicVVVsvdv db '<27>{<7B><><EFBFBD>ɏI<C98F><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⴄ<EFBFBD>́H',0
|
||
aB@vdvVVVgb@b@v db '<27>@<40><><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>@<40>@<40>͂<EFBFBD><CD82><EFBFBD>',0
|
||
aVgvpvovfvivovx db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD>@<40>@<40>@ ',0
|
||
aVxvevub@b@B@ db '<27>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>@<40>@ <20>@',0
|
||
aVmvpb@b@B@ db '<27>m<EFBFBD><6D><EFBFBD>@<40>@ <20>@ ',0
|
||
aVxvevub@b@c@ db '<27>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ ',0
|
||
aVmvpb@b@c@ db '<27>m<EFBFBD><6D><EFBFBD>@<40>@<40>@ ',0
|
||
; char path[]
|
||
path db 'REIIDEN',0
|
||
; char aVvvtbV[]
|
||
aVvvtbV db '<27><><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD>A<EFBFBD>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD>',0
|
||
; char aS[3]
|
||
aS db '%s',0
|
||
; char aFp[]
|
||
aFp db ' : [%Fp] -> ',0
|
||
aGqbGvvkvVViv db '<27>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>患',0
|
||
aGqbGvvkfji db '<27>q<EFBFBD>[<5B>v<EFBFBD><76><EFBFBD>j<EFBFBD><EFBFBD><F382B382>Ă<EFBFBD><C482>킟',0
|
||
aGmbGhvkvVViv db '<27>m<EFBFBD>[<5B>h<EFBFBD><68><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD>',0
|
||
aVVVL db '<27><><EFBFBD><EFBFBD><EFBFBD>͋u<F382AB83><75><EFBFBD>b<EFBFBD>N<EFBFBD>ł<EFBFBD><C582><EFBFBD>',0
|
||
; char s[]
|
||
s db '<27><><EFBFBD>ݎg<DD8E>p<EFBFBD><70><EFBFBD>̃u<CC83><75><EFBFBD>b<EFBFBD>N<EFBFBD><4E>',0
|
||
; char aB[]
|
||
aB@b@b@vVVriCVi db '<27>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E><><EFBFBD><EFBFBD>...',0Ah,0
|
||
; char aOldCoreleft7lu[]
|
||
aOldCoreleft7lu db 'old coreleft %7lu bytes free',0Ah,0
|
||
; char aCoreleft7luByt[]
|
||
aCoreleft7luByt db ' coreleft %7lu bytes free',0Ah,0
|
||
; char aKabe_nD[]
|
||
aKabe_nD db ' kabe_n = %d',0Ah,0
|
||
; char aPnl_nD[]
|
||
aPnl_nD db ' pnl_n = %d',0Ah,0
|
||
; char aPnl_nBuf7lu[]
|
||
aPnl_nBuf7lu db ' pnl_n buf = %7lu',0Ah,0
|
||
; char aB[]
|
||
aB@b@ptnD7lu db '<27>@<40>@ptn %d = %7lu',0Ah,0
|
||
; char aAllPtn7lu[]
|
||
aAllPtn7lu db 'all ptn = %7lu',0Ah,0
|
||
; char aKabeMem7lu[]
|
||
aKabeMem7lu db 'kabe mem = %7lu',0Ah,0
|
||
; char aMaskMem7u[]
|
||
aMaskMem7u db 'mask mem = %7u',0Ah,0
|
||
; char aOldPtn7lu[]
|
||
aOldPtn7lu db 'old - ptn = %7lu',0Ah,0
|
||
; char aEtcMem7ld[]
|
||
aEtcMem7ld db 'etc mem = %7ld',0Ah
|
||
db 0Ah,0
|
||
; char aZPtnFreeXBossF[]
|
||
aZPtnFreeXBossF db 'Z = PTN FREE, X = BOSS FREE, UP = TAMA DEL, DOWN = REWIRTE, ret = NODE CHEAK',0
|
||
aPtn db 'PTN ',0
|
||
aMask db 'MASK',0
|
||
aKabe db 'KABE',0
|
||
_esc_cursor_to_x0_y2 db 1Bh,'[3;0H',0
|
||
_esc_cursor_to_x59_y2 db 1Bh,'[3;60H',0
|
||
; char aHeapCheak[]
|
||
aHeapCheak db 'HEAP Cheak ',0
|
||
aEmpty db 'EMPTY ',0
|
||
; char aOk[]
|
||
aOk db 'OK ',0
|
||
; char aCorrupt[]
|
||
aCorrupt db 'CORRUPT ',0
|
||
_esc_cursor_to_x0_y1 db 1Bh,'[2;0H',0
|
||
; char aGx3d[]
|
||
aGx3d db 'gx = %3d',0
|
||
_esc_cursor_to_x0_y3 db 1Bh,'[4;0H',0
|
||
; char aKbhitDDirDSpDS[]
|
||
aKbhitDDirDSpDS db ' kbhit:%d,dir:%d, sp:%d, sh:%d, exit:%d, end:%d',0Ah,0
|
||
_esc_cursor_to_x0_y4 db 1Bh,'[5;0H',0
|
||
; char aMain7luRand7lu[]
|
||
aMain7luRand7lu db ' main:%7lu, rand:%7lu, bomb:%d, timer:%7lu',0Ah,0
|
||
; char aGogbgGtg[]
|
||
aGogbgGtg@gcglv db '<27>o<EFBFBD>b<EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD>',0
|
||
; char aCGzgmgngg[]
|
||
aCGzgmgngg db '<27>ʃZ<CA83><5A><EFBFBD>N<EFBFBD>g',0Ah,0
|
||
; char aCRf[]
|
||
aCRf db '<27>ʐ<EFBFBD>',0
|
||
; char aD[]
|
||
aD db '%d',0
|
||
; char aSelect_flag[]
|
||
aSelect_flag db 'select_flag',0
|
||
; char aGegxgggvbGhbib[]
|
||
aGegxgggvbGhbib db '<27>e<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>[<5B>h<EFBFBD>I<EFBFBD>I',0Ah,0
|
||
; char aGfgogbgogvbGhb[]
|
||
aGfgogbgogvbGhb db '<27>f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD><4F><EFBFBD>[<5B>h<EFBFBD>I<EFBFBD>I',0Ah,0
|
||
aUmx db '<27><><EFBFBD><EFBFBD><EFBFBD>ˈ<EFBFBD>.<2E>`',0
|
||
; char aInit_mdt[]
|
||
aInit_mdt db 'init.mdt',0
|
||
; char aZigoku_mde[]
|
||
aZigoku_mde db 'zigoku.mde',0
|
||
; char a2[]
|
||
a2 db '2 :',0
|
||
; char src[]
|
||
src db 'boss1.grp',0
|
||
; char aPositive_mdt[]
|
||
aPositive_mdt db 'positive.mdt',0
|
||
; char aLegend_mdt[]
|
||
aLegend_mdt db 'LEGEND.mdt',0
|
||
; char aBoss2_grp[]
|
||
aBoss2_grp db 'boss2.grp',0
|
||
; char aBoss3_grp[]
|
||
aBoss3_grp db 'boss3.grp',0
|
||
; char aKami_mdt[]
|
||
aKami_mdt db 'kami.mdt',0
|
||
; char aBoss4_grp[]
|
||
aBoss4_grp db 'boss4.grp',0
|
||
; char aKami2_mdt[]
|
||
aKami2_mdt db 'kami2.mdt',0
|
||
; char aBoss5_grp[]
|
||
aBoss5_grp db 'boss5.grp',0
|
||
; char aTensi_mdt[]
|
||
aTensi_mdt db 'tensi.mdt',0
|
||
; char aAlice_mdt[]
|
||
aAlice_mdt db 'alice.mdt',0
|
||
aStg_b_ptn db 'stg_b.ptn',0
|
||
; char a3[]
|
||
a3 db '3 :',0
|
||
dbl_34FF5 dq -8.0
|
||
; char aFuuin[]
|
||
aFuuin db 'fuuin',0
|
||
; char aReiiden[]
|
||
aReiiden db 'reiiden',0
|
||
include th01/hiscore/routes[data].asm
|
||
; char aOp[3]
|
||
aOp db 'op',0
|
||
db 0
|
||
include th01/hardware/vsync[data].asm
|
||
include th01/hardware/ztext[data].asm
|
||
include th01/core/initexit[data].asm
|
||
include th01/hardware/palette[data].asm
|
||
include th01/hardware/graph_r[data].asm
|
||
include th01/hardware/respal[data].asm
|
||
include th01/formats/grp_ptn[data].asm
|
||
include th01/formats/grz[data].asm
|
||
include libs/master.lib/version[data].asm
|
||
include libs/master.lib/tx[data].asm
|
||
include libs/master.lib/grp[data].asm
|
||
include libs/master.lib/pal[data].asm
|
||
include libs/master.lib/respal_exist[data].asm
|
||
include libs/master.lib/resdata[data].asm
|
||
include libs/master.lib/fil[data].asm
|
||
include libs/master.lib/keytable[data].asm
|
||
include libs/master.lib/keystart[data].asm
|
||
include libs/master.lib/keyback[data].asm
|
||
include libs/master.lib/dos_ropen[data].asm
|
||
include libs/master.lib/clip[data].asm
|
||
include libs/master.lib/sin8[data].asm
|
||
include libs/master.lib/atan8[data].asm
|
||
include libs/master.lib/rand[data].asm
|
||
include th01/sprites/pellet_c.asp
|
||
public _res_id
|
||
_res_id db 'ReiidenConfig',0
|
||
include th01/sprites/ileave_m.asp
|
||
db 0
|
||
db 0FFh
|
||
include th01/sprites/laser_s.asp
|
||
include th01/snd/mdrv2[data].asm
|
||
public _ROUTE_SEL_1, _ROUTE_SEL_2, _ROUTE_SEL_3
|
||
public _ROUTE_SEL_4, _ROUTE_SEL_5
|
||
_ROUTE_SEL_1 db '<27>q<EFBFBD>n<EFBFBD>t<EFBFBD>m<EFBFBD>c<EFBFBD>@<40>P<EFBFBD>@<40>b<EFBFBD>k<EFBFBD>d<EFBFBD>`<60>q',0
|
||
_ROUTE_SEL_2 db '<27>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>I',0
|
||
_ROUTE_SEL_3 db '<27>r<EFBFBD><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>q<EFBFBD><71><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
_ROUTE_SEL_4 db '<27><><EFBFBD>E<EFBFBD><45>',0
|
||
_ROUTE_SEL_5 db '<27>n<EFBFBD><6E><EFBFBD><EFBFBD>',0
|
||
evendata
|
||
dword_3573A dd 0FFBBFFEEh
|
||
off_3573E dd aVo
|
||
; "<22>O"
|
||
dd aVp ; "<22>P"
|
||
dd aVq ; "<22>Q"
|
||
dd aVr ; "<22>R"
|
||
dd aVs ; "<22>S"
|
||
dd aVt ; "<22>T"
|
||
dd aVu ; "<22>U"
|
||
dd aVv ; "<22>V"
|
||
dd aVw ; "<22>W"
|
||
dd aVx ; "<22>X"
|
||
dd aB@ ; "<22>@"
|
||
aClear3_grp db 'CLEAR3.grp',0
|
||
aNumb_ptn db 'numb.ptn',0
|
||
aVo db '<27>O',0
|
||
aVp db '<27>P',0
|
||
aVq db '<27>Q',0
|
||
aVr db '<27>R',0
|
||
aVs db '<27>S',0
|
||
aVt db '<27>T',0
|
||
aVu db '<27>U',0
|
||
aVv db '<27>V',0
|
||
aVw db '<27>W',0
|
||
aVx db '<27>X',0
|
||
aB@ db '<27>@',0
|
||
aSTAGE_COMPLETE db '<27>r<EFBFBD>s<EFBFBD>`<60>f<EFBFBD>d<EFBFBD>@<40>@<40>@<40>@<40>b<EFBFBD>n<EFBFBD>l<EFBFBD>o<EFBFBD>k<EFBFBD>d<EFBFBD>s<EFBFBD>d',0
|
||
aSTAGE_COMPLETE_NUM db '<27>@<40>@<40>@<40>@<40>O<EFBFBD>@',0
|
||
aB@b@vavnvmvtvr db '<27>@<40>@<40>a<EFBFBD>n<EFBFBD>m<EFBFBD>t<EFBFBD>r',0
|
||
aB@vsvivnveb@ db ' <20>@<40>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@',0
|
||
aVbvpvovfvivovx db '<27>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVavpvnvvbxvovm db '<27>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aB@b@vrvsvVfvd db '<27>@<40>@<40>r<EFBFBD>s<EFBFBD>`<60>f<EFBFBD>d',0
|
||
aVavnvmvtvrb@vo db '<27>a<EFBFBD>n<EFBFBD>m<EFBFBD>t<EFBFBD>r<EFBFBD>@<40>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVgvivfb@vyb@vj db '<27>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>y<EFBFBD>@<40>j<EFBFBD><6A><EFBFBD><EFBFBD>',0
|
||
|
||
extern _arc_key:byte
|
||
extern _card_flip_cycle:byte
|
||
extern _default_grp_fn:byte
|
||
extern _default_bgm_fn:byte
|
||
extern _game_cleared:byte
|
||
extern _unused_boss_stage_flag:word
|
||
extern _pellet_destroy_score_delta:word
|
||
_INIT_ segment word public 'INITDATA' use16
|
||
db 1
|
||
db 20h
|
||
dd sub_E319
|
||
db 1
|
||
db 20h
|
||
dd sub_1240A
|
||
_INIT_ ends
|
||
|
||
.data?
|
||
|
||
CEntities macro name:req, count:req
|
||
public name
|
||
name label byte
|
||
dw count dup(?) ; left
|
||
dw count dup(?) ; top
|
||
endm
|
||
|
||
public _credit_bombs, _player_swing_deflection_frames
|
||
_credit_bombs db ?
|
||
_player_swing_deflection_frames db ?
|
||
public _frame_rand
|
||
_frame_rand dd ?
|
||
dword_36C1A dd ?
|
||
byte_36C1E db ?
|
||
public _mode_debug
|
||
_mode_debug db ?
|
||
dword_36C20 dd ?
|
||
include th01/main/player/player[bss].asm
|
||
include th01/main/player/orb[bss].asm
|
||
|
||
STAGEOBJ_W = PTN_W
|
||
STAGEOBJ_H = PTN_H
|
||
STAGEOBJS_X = (PLAYFIELD_W / STAGEOBJ_W)
|
||
STAGEOBJS_Y = (PLAYFIELD_H / STAGEOBJ_H)
|
||
|
||
STAGEOBJS_COUNT = (STAGEOBJS_X * STAGEOBJS_Y)
|
||
STAGEDAT_STAGE_SIZE = ((STAGEOBJS_COUNT) + (STAGEOBJS_COUNT / 4) + 5)
|
||
|
||
public _scene_stage
|
||
_scene_stage db (STAGEDAT_STAGE_SIZE * STAGES_PER_SCENE) dup(?)
|
||
|
||
include th01/main/player/anim[bss].asm
|
||
include th01/main/bullet/pellets[bss].asm
|
||
include th01/main/player/shot[bss].asm
|
||
db 4 dup(?)
|
||
public _input_prev, _palette_white, _bomb_palette_flash_bright
|
||
public _bomb_white_to_blue_speed
|
||
_input_prev db 16 dup (?)
|
||
|
||
_palette_white palette_t <?>
|
||
_bomb_palette_flash_bright palette_t <?>
|
||
_bomb_white_to_blue_speed db ?
|
||
|
||
KUJI_COUNT = 9
|
||
KUJI_RINGS = 2
|
||
|
||
public _bomb_entity
|
||
_bomb_entity label byte
|
||
dw ((KUJI_COUNT * KUJI_RINGS) + 9) dup (?) ; left
|
||
dw ((KUJI_COUNT * KUJI_RINGS) + 9) dup (?) ; top
|
||
db ? ; angle
|
||
|
||
include th01/main/player/inv_spr[bss].asm
|
||
dword_3880A dd ?
|
||
word_3880E dw ?
|
||
public _player_left_prev
|
||
_player_left_prev dw ?
|
||
include th01/hardware/vsync[bss].asm
|
||
db 256 dup(?)
|
||
include th01/core/initexit[bss].asm
|
||
include th01/hardware/graph[bss].asm
|
||
include th01/hardware/vram_planes[bss].asm
|
||
db 80 dup(?)
|
||
include th01/formats/grp_palette[bss].asm
|
||
include th01/formats/ptn_grz[bss].asm
|
||
include th01/formats/grp_buf[bss].asm
|
||
include libs/master.lib/pal[bss].asm
|
||
include libs/master.lib/fil[bss].asm
|
||
include libs/master.lib/keystart[bss].asm
|
||
include libs/master.lib/clip[bss].asm
|
||
public _resident
|
||
_resident dd ?
|
||
include th01/main/bullet/laser_s[bss].asm
|
||
include th01/hiscore/hiscore[bss].asm
|
||
db 4 dup(?)
|
||
|
||
CCards struc
|
||
C_left dd ?
|
||
C_top dd ?
|
||
C_flag dd ?
|
||
C_count dw ?
|
||
C_flip_frames dd ?
|
||
C_hp dd ?
|
||
CCards ends
|
||
|
||
CObstacles struc
|
||
O_left dd ?
|
||
O_top dd ?
|
||
O_type dd ?
|
||
O_frames dd ?
|
||
O_count dw ?
|
||
CObstacles ends
|
||
|
||
extern _stage_palette:palette_t
|
||
extern _hud_bg:dword
|
||
extern _hud_bg_size:word
|
||
extern _stage_timer:word
|
||
extern _stageobj_bgs:dword
|
||
extern _stageobj_bgs_size:dword
|
||
extern _cards:CCards
|
||
extern _obstacles:CObstacles
|
||
extern _cards_score:dword
|
||
extern _route:byte
|
||
|
||
end
|