ReC98/th05_op.asm

7438 lines
143 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; +-------------------------------------------------------------------------+
;
; Input MD5 : F97D1B72F01476639E9D33E361F57330
; File Name : th05/OP.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-14240h Loaded length: 1280Ah
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
.286 ; Force the .model directive to create 16-bit default segments...
.model large
__LARGE__ equ 1
.386 ; ... then switch to what we actually need.
; And yes, we can't move this to an include file for some reason.
include ReC98.inc
include th05/th05.asm
include th05/music/music.inc
extern SCOPY@:proc
extern _execl:proc
extern _getch:proc
extern _strlen:proc
; ===========================================================================
; 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/bfnt_entry_pat.asm
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
include libs/master.lib/atrtcmod.asm
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
include libs/master.lib/bfnt_palette_set.asm
include libs/master.lib/bgetc.asm
include libs/master.lib/palette_black_in.asm
include libs/master.lib/palette_black_out.asm
include libs/master.lib/bopenr.asm
include libs/master.lib/bread.asm
include libs/master.lib/bseek.asm
include libs/master.lib/bseek_.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_keyclear.asm
include libs/master.lib/dos_puts2.asm
include libs/master.lib/dos_read.asm
include libs/master.lib/dos_seek.asm
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_exist.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/file_write.asm
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/grcg_byteboxfill_x.asm
include libs/master.lib/grcg_hline.asm
include libs/master.lib/grcg_polygon_c.asm
include libs/master.lib/grcg_setcolor.asm
include libs/master.lib/grcg_vline.asm
include libs/master.lib/get_machine_98.asm
include libs/master.lib/get_machine_at.asm
include libs/master.lib/get_machine_dosbox.asm
include libs/master.lib/check_machine_fmr.asm
include libs/master.lib/get_machine.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_copy_page.asm
include libs/master.lib/graph_extmode.asm
include libs/master.lib/graph_pi_free.asm
include libs/master.lib/graph_pi_load_pack.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/graph_start.asm
include libs/master.lib/js_end.asm
include libs/master.lib/keybeep.asm
include libs/master.lib/make_linework.asm
include libs/master.lib/palette_init.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/pfclose.asm
include libs/master.lib/pfgetc.asm
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
include libs/master.lib/pfseek.asm
include libs/master.lib/random.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
include libs/master.lib/smem_wget.asm
include libs/master.lib/soundio.asm
include libs/master.lib/text_clear.asm
include libs/master.lib/txesc.asm
include libs/master.lib/vsync.asm
include libs/master.lib/vsync_wait.asm
include libs/master.lib/hmem_lallocate.asm
include libs/master.lib/mem_assign_dos.asm
include libs/master.lib/mem_assign.asm
include libs/master.lib/memheap.asm
include libs/master.lib/mem_unassign.asm
include libs/master.lib/super_free.asm
include libs/master.lib/super_entry_pat.asm
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
include libs/master.lib/super_put_rect.asm
include libs/master.lib/super_put.asm
include libs/master.lib/respal_exist.asm
include libs/master.lib/respal_free.asm
include libs/master.lib/js_start.asm
include libs/master.lib/draw_trapezoid.asm
include libs/master.lib/js_sense.asm
include libs/master.lib/bgm_bell_org.asm
include libs/master.lib/bgm_mget.asm
include libs/master.lib/bgm_read_sdata.asm
include libs/master.lib/bgm_timer.asm
include libs/master.lib/bgm_pinit.asm
include libs/master.lib/bgm_timerhook.asm
include libs/master.lib/bgm_play.asm
include libs/master.lib/bgm_sound.asm
include libs/master.lib/bgm_effect_sound.asm
include libs/master.lib/bgm_stop_play.asm
include libs/master.lib/bgm_set_tempo.asm
include libs/master.lib/bgm_init_finish.asm
include libs/master.lib/bgm_stop_sound.asm
include libs/master.lib/graph_pack_put_8_noclip.asm
include libs/master.lib/graph_gaiji_puts.asm
include libs/master.lib/graph_gaiji_putc.asm
include libs/master.lib/pfint21.asm
db 0
include th03/formats/pfopen.asm
include libs/master.lib/pf_str_ieq.asm
_TEXT ends
; ===========================================================================
; Segment type: Pure code
op_01_TEXT segment byte public 'CODE' use16
assume cs:op_01_TEXT
; org 0Ch
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_A39C proc near
push bp
mov bp, sp
push si
push di
les bx, dword_11DCC
mov byte ptr es:[bx+1Ah], 0
mov byte ptr es:[bx+1Fh], 0
mov byte ptr es:[bx+13h], 0
mov al, es:[bx+0Fh]
mov es:[bx+0Dh], al
mov al, es:[bx+10h]
mov es:[bx+0Eh], al
call sub_D12D
or ax, ax
jnz short loc_A443
xor si, si
jmp short loc_A400
; ---------------------------------------------------------------------------
loc_A3CF:
les bx, dword_11DCC
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr dword_11DCC
add bx, si
mov byte ptr es:[bx+44h], 0
xor di, di
jmp short loc_A3FA
; ---------------------------------------------------------------------------
loc_A3E9:
mov ax, di
shl ax, 3
les bx, dword_11DCC
add bx, ax
mov byte ptr es:[bx+si+4Ch], 0
inc di
loc_A3FA:
cmp di, 6
jl short loc_A3E9
inc si
loc_A400:
cmp si, 8
jl short loc_A3CF
call sub_BC83
call sub_BB0E
kajacall KAJA_SONG_FADE, 10
call sub_D7EC
les bx, dword_11DCC
cmp byte ptr es:[bx+17h], 0
jnz short loc_A430
pushd 0
push ds
push offset aMain ; "main"
push ds
push offset aMain ; "main"
jmp short loc_A43B
; ---------------------------------------------------------------------------
loc_A430:
pushd 0
push ds
push offset path ; "deb"
push ds
push offset path ; "deb"
loc_A43B:
call _execl
add sp, 0Ch
loc_A443:
pop di
pop si
pop bp
retn
sub_A39C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A447 proc near
push bp
mov bp, sp
push si
push di
les bx, dword_11DCC
mov byte ptr es:[bx+1Fh], 0
mov byte ptr es:[bx+13h], 6
mov byte ptr es:[bx+0Dh], 3
mov byte ptr es:[bx+0Eh], 3
call sub_D12D
or ax, ax
jnz short loc_A4CB
xor si, si
jmp short loc_A4A0
; ---------------------------------------------------------------------------
loc_A46F:
les bx, dword_11DCC
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr dword_11DCC
add bx, si
mov byte ptr es:[bx+44h], 0
xor di, di
jmp short loc_A49A
; ---------------------------------------------------------------------------
loc_A489:
mov ax, di
shl ax, 3
les bx, dword_11DCC
add bx, ax
mov byte ptr es:[bx+si+4Ch], 0
inc di
loc_A49A:
cmp di, 6
jl short loc_A489
inc si
loc_A4A0:
cmp si, 8
jl short loc_A46F
call sub_BC83
call sub_BB0E
kajacall KAJA_SONG_FADE, 10
call sub_D7EC
pushd 0
push ds
push offset aMain ; "main"
push ds
push offset aMain ; "main"
call _execl
add sp, 0Ch
loc_A4CB:
pop di
pop si
pop bp
retn
sub_A447 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A4CF proc near
push bp
mov bp, sp
push si
les bx, dword_11DCC
mov byte ptr es:[bx+1Ah], 0
mov byte ptr es:[bx+13h], 0
mov byte ptr es:[bx+0Dh], 3
mov byte ptr es:[bx+0Eh], 3
inc byte ptr es:[bx+1Fh]
cmp byte ptr es:[bx+1Fh], 4
jbe short loc_A4FB
mov byte ptr es:[bx+1Fh], 1
loc_A4FB:
cmp _input, INPUT_LEFT or INPUT_RIGHT
jnz short loc_A535
cmp byte_1411F, 0
jz short loc_A529
cmp byte_14120, 0
jz short loc_A529
cmp byte_14121, 0
jz short loc_A529
cmp byte_14122, 0
jz short loc_A529
les bx, dword_11DCC
mov byte ptr es:[bx+1Fh], 5
jmp short loc_A535
; ---------------------------------------------------------------------------
loc_A529:
les bx, dword_11DCC
mov byte ptr es:[bx+1Fh], 0
jmp loc_A5E9
; ---------------------------------------------------------------------------
loc_A535:
les bx, dword_11DCC
mov al, es:[bx+1Fh]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 4
ja short loc_A5A4
add bx, bx
jmp cs:off_A5EC[bx]
loc_A54E:
les bx, dword_11DCC
mov byte ptr es:[bx+14h], 0
mov byte ptr es:[bx+1Dh], 3
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A55E:
les bx, dword_11DCC
mov byte ptr es:[bx+14h], 1
mov byte ptr es:[bx+1Dh], 1
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A56E:
les bx, dword_11DCC
mov byte ptr es:[bx+14h], 2
mov byte ptr es:[bx+1Dh], 2
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A57E:
les bx, dword_11DCC
mov byte ptr es:[bx+14h], 3
mov byte ptr es:[bx+1Dh], 4
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A58E:
les bx, dword_11DCC
mov byte ptr es:[bx+14h], 2
mov byte ptr es:[bx+1Dh], 6
kajacall KAJA_SONG_FADE, 8
loc_A5A4:
xor si, si
jmp short loc_A5BF
; ---------------------------------------------------------------------------
loc_A5A8:
les bx, dword_11DCC
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr dword_11DCC
add bx, si
mov byte ptr es:[bx+44h], 0
inc si
loc_A5BF:
cmp si, 8
jl short loc_A5A8
call sub_BC83
call sub_BB0E
push 1
call palette_black_out
call sub_D7EC
pushd 0
push ds
push offset aMain ; "main"
push ds
push offset aMain ; "main"
call _execl
add sp, 0Ch
loc_A5E9:
pop si
pop bp
retn
sub_A4CF endp
; ---------------------------------------------------------------------------
off_A5EC dw offset loc_A54E
dw offset loc_A55E
dw offset loc_A56E
dw offset loc_A57E
dw offset loc_A58E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5F6 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov ax, si
imul ax, 14h
add ax, 0FAh
mov di, ax
push 100h
push ax
push 800010h
call sub_E2D8
call grcg_setcolor pascal, GC_RMW, [bp+arg_0]
mov [bp+var_2], si
mov bx, si
cmp bx, 5
ja short loc_A69A
add bx, bx
jmp cs:off_A70B[bx]
loc_A634:
push (272 shl 16) or 250
push 10
call _cdg_put_nocolors
les bx, dword_11DCC
mov al, es:[bx+11h]
mov ah, 0
add ax, 16h
mov [bp+var_2], ax
jmp short loc_A69A
; ---------------------------------------------------------------------------
loc_A653:
cmp byte_14116, 0
loc_A658:
jnz short loc_A665
call grcg_setcolor pascal, (GC_RMW shl 16) + 2
loc_A665:
push (272 shl 16) or 270
push 11
jmp short loc_A695
; ---------------------------------------------------------------------------
loc_A66F:
push (272 shl 16) or 290
push 12
jmp short loc_A695
; ---------------------------------------------------------------------------
loc_A679:
push (272 shl 16) or 310
push 13
jmp short loc_A695
; ---------------------------------------------------------------------------
loc_A683:
push (272 shl 16) or 330
push 14
jmp short loc_A695
; ---------------------------------------------------------------------------
loc_A68D:
push (272 shl 16) or 350
push 15
loc_A695:
call _cdg_put_nocolors
loc_A69A:
GRCG_OFF_CLOBBERING dx
cmp [bp+arg_0], 0Eh
jnz short loc_A705
call _cdg_put pascal, 256, di, 35
call _cdg_put pascal, 352, di, 36
pushd 180h
push 2800010h
call sub_E2D8
mov word_F9BE, 2
mov bx, [bp+var_2]
shl bx, 2
pushd dword ptr MENU_DESC[bx] ; s
call _strlen
add sp, 4
shl ax, 3
mov dx, 270h
sub dx, ax
push dx
push 1800009h
mov bx, [bp+var_2]
shl bx, 2
pushd dword ptr MENU_DESC[bx]
call sub_D436
loc_A705:
pop di
pop si
leave
retn 4
sub_A5F6 endp
; ---------------------------------------------------------------------------
off_A70B dw offset loc_A634
dw offset loc_A653
dw offset loc_A66F
dw offset loc_A679
dw offset loc_A683
dw offset loc_A68D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A717 proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
push di
mov di, 0E0h
mov ax, [bp+arg_2]
shl ax, 4
add ax, 0FAh
mov [bp+var_4], ax
cmp [bp+arg_2], 7
jnz short loc_A737
mov [bp+var_4], 16Eh
loc_A737:
push 0E0h
push [bp+var_4]
push 0C00010h
call sub_E2D8
call grcg_setcolor pascal, GC_RMW, [bp+arg_0]
mov bx, [bp+arg_2]
cmp bx, 7
ja loc_A8DA
add bx, bx
jmp cs:off_A958[bx]
loc_A764:
push (224 shl 16) or 250
push 16
call _cdg_put_nocolors
push 14000FAh
les bx, dword_11DCC
mov al, es:[bx+11h]
mov ah, 0
add ax, 21
push ax
call _cdg_put_nocolors
les bx, dword_11DCC
mov al, es:[bx+11h]
mov ah, 0
add ax, 6
loc_A797:
mov si, ax
jmp loc_A8DA
; ---------------------------------------------------------------------------
loc_A79C:
push (224 shl 16) or 266
push 17
call _cdg_put_nocolors
push 140010Ah
les bx, dword_11DCC
mov al, es:[bx+0Fh]
mov ah, 0
push ax
call _cdg_put_nocolors
mov si, 0Ah
jmp loc_A8DA
; ---------------------------------------------------------------------------
loc_A7C5:
push (224 shl 16) or 282
push 18
call _cdg_put_nocolors
push 140011Ah
les bx, dword_11DCC
mov al, es:[bx+10h]
mov ah, 0
push ax
call _cdg_put_nocolors
mov si, 0Bh
jmp loc_A8DA
; ---------------------------------------------------------------------------
loc_A7EE:
push (224 shl 16) or 298
push 19
call _cdg_put_nocolors
les bx, dword_11DCC
cmp byte ptr es:[bx+12h], 0
jnz short loc_A80B
mov ax, 1Ch
jmp short loc_A818
; ---------------------------------------------------------------------------
loc_A80B:
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
add ax, 18h
loc_A818:
mov [bp+var_2], ax
push (320 shl 16) or 298
push ax
call _cdg_put_nocolors
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
add ax, 0Ch
jmp loc_A797
; ---------------------------------------------------------------------------
loc_A837:
push (224 shl 16) or 314
push 20
call _cdg_put_nocolors
les bx, dword_11DCC
cmp byte ptr es:[bx+15h], 0
jnz short loc_A854
mov ax, 1Ch
jmp short loc_A865
; ---------------------------------------------------------------------------
loc_A854:
les bx, dword_11DCC
loc_A858:
mov al, es:[bx+15h]
mov ah, 0
push ax
mov ax, 1Fh
pop dx
sub ax, dx
loc_A865:
mov [bp+var_2], ax
push (320 shl 16) or 314
push ax
call _cdg_put_nocolors
les bx, dword_11DCC
mov al, es:[bx+15h]
mov ah, 0
add ax, 0Fh
jmp loc_A797
; ---------------------------------------------------------------------------
loc_A884:
push (272 shl 16) or 330
les bx, dword_11DCC
mov al, es:[bx+16h]
mov ah, 0
mov dx, 33
sub dx, ax
push dx
call _cdg_put_nocolors
mov di, 100h
les bx, dword_11DCC
mov al, es:[bx+16h]
mov ah, 0
add ax, 12h
jmp loc_A797
; ---------------------------------------------------------------------------
loc_A8B2:
push (272 shl 16) or 346
push 31
call _cdg_put_nocolors
mov di, 100h
mov si, 14h
jmp short loc_A8DA
; ---------------------------------------------------------------------------
loc_A8C7:
push (272 shl 16) or 366
push 15
call _cdg_put_nocolors
mov di, 256
mov si, 15h
loc_A8DA:
GRCG_OFF_CLOBBERING dx
cmp [bp+arg_0], 0Eh
jnz short loc_A951
call _cdg_put pascal, di, [bp+var_4], 35
cmp di, 256
jnz short loc_A8FD
lea ax, [di+96]
push ax
jmp short loc_A900
; ---------------------------------------------------------------------------
loc_A8FD:
push 384
loc_A900:
push [bp+var_4]
push 36
call _cdg_put
pushd 180h
push 2800010h
call sub_E2D8
mov word_F9BE, 2
mov bx, si
shl bx, 2
pushd dword ptr MENU_DESC[bx] ; s
call _strlen
add sp, 4
shl ax, 3
mov dx, 270h
sub dx, ax
push dx
push 1800009h
mov bx, si
shl bx, 2
pushd dword ptr MENU_DESC[bx]
call sub_D436
loc_A951:
pop di
pop si
leave
retn 4
sub_A717 endp
; ---------------------------------------------------------------------------
db 0
off_A958 dw offset loc_A764
dw offset loc_A79C
dw offset loc_A7C5
dw offset loc_A7EE
dw offset loc_A837
dw offset loc_A884
dw offset loc_A8B2
dw offset loc_A8C7
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A968 proc near
arg_0 = byte ptr 4
arg_2 = byte ptr 6
push bp
mov bp, sp
mov al, byte_F071
cbw
push ax
push 8
call fp_11DD2
mov al, [bp+arg_0]
add byte_F071, al
mov al, byte_F071
cbw
or ax, ax
jge short loc_A98B
mov al, [bp+arg_2]
mov byte_F071, al
loc_A98B:
mov al, byte_F071
cmp al, [bp+arg_2]
jle short loc_A998
mov byte_F071, 0
loc_A998:
cmp byte_14116, 0
jnz short loc_A9B6
mov al, byte_F071
cbw
cmp ax, 1
jnz short loc_A9B6
cmp byte_11DD0, 0
jnz short loc_A9B6
mov al, [bp+arg_0]
add byte_F071, al
loc_A9B6:
mov al, byte_F071
cbw
push ax
push 0Eh
call fp_11DD2
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
pop bp
retn 4
sub_A968 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A9D6 proc near
push bp
mov bp, sp
push si
cmp byte_F0DC, 0
jnz short loc_AA2B
mov byte_F073, 0
mov byte_11DD4, 0
push 0C000FAh
push 12000A0h
call sub_E2D8
xor si, si
jmp short loc_AA16
; ---------------------------------------------------------------------------
loc_AA00:
push si
mov al, byte_F071
cbw
cmp ax, si
jnz short loc_AA0E
mov ax, 0Eh
jmp short loc_AA11
; ---------------------------------------------------------------------------
loc_AA0E:
mov ax, 8
loc_AA11:
push ax
call sub_A5F6
inc si
loc_AA16:
cmp si, 6
jl short loc_AA00
mov fp_11DD2, offset sub_A5F6
mov byte_F0DC, 1
mov byte_11DD4, 0
loc_AA2B:
cmp _input, INPUT_NONE
jnz short loc_AA37
mov byte_11DD4, 1
loc_AA37:
cmp byte_11DD4, 0
jz loc_ABC0
test _input.lo, low INPUT_UP
jz short loc_AA4E
push 5
push 0FFFFh
call sub_A968
loc_AA4E:
test _input.lo, low INPUT_DOWN
jz short loc_AA5C
push 5
push 1
call sub_A968
loc_AA5C:
test _input.hi, high INPUT_OK
jnz short loc_AA6C
test _input.lo, low INPUT_SHOT
jz loc_ABA8
loc_AA6C:
call snd_se_reset
call snd_se_play pascal, 11
call snd_se_update
mov al, byte_F071
cbw
mov bx, ax
cmp bx, 5
ja loc_ABA8
add bx, bx
jmp cs:off_ABC3[bx]
loc_AA91:
call sub_A39C
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aOp1_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
mov byte_F0DC, 0
mov byte_11DD0, 0
mov byte_F071, 0
jmp loc_ABC0
; ---------------------------------------------------------------------------
loc_AAE1:
call sub_A447
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aOp1_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
mov byte_F0DC, 0
mov byte_11DD0, 0
mov byte_F071, 1
jmp loc_ABC0
; ---------------------------------------------------------------------------
loc_AB31:
call sub_CC5C
mov byte_F0DC, 0
jmp short loc_ABA8
; ---------------------------------------------------------------------------
loc_AB3B:
call sub_C490
call load_char_select_sprite_function
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aOp1_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
mov byte_F0DC, 0
mov byte_11DD0, 0
mov byte_F071, 3
jmp short loc_ABC0
; ---------------------------------------------------------------------------
loc_AB8D:
mov byte_F0DC, 0
mov byte_11DD0, 1
mov byte_F071, 0
jmp short loc_ABA8
; ---------------------------------------------------------------------------
loc_AB9E:
mov byte_F0DC, 0
mov byte_F072, 1
loc_ABA8:
test _input.hi, high INPUT_CANCEL
jz short loc_ABB4
mov byte_F072, 1
loc_ABB4:
cmp _input, INPUT_NONE
jz short loc_ABC0
mov byte_11DD4, 0
loc_ABC0:
pop si
pop bp
retn
sub_A9D6 endp
; ---------------------------------------------------------------------------
off_ABC3 dw offset loc_AA91
dw offset loc_AAE1
dw offset loc_AB31
dw offset loc_AB3B
dw offset loc_AB8D
dw offset loc_AB9E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_ABCF proc near
push bp
mov bp, sp
push si
cmp byte_F0DD, 0
jnz short loc_AC1F
mov byte_11DD5, 0
push 11000FAh
push 0A00090h
call sub_E2D8
xor si, si
jmp short loc_AC0A
; ---------------------------------------------------------------------------
loc_ABF4:
push si
mov al, byte_F071
cbw
cmp ax, si
jnz short loc_AC02
mov ax, 0Eh
jmp short loc_AC05
; ---------------------------------------------------------------------------
loc_AC02:
mov ax, 8
loc_AC05:
push ax
call sub_A717
inc si
loc_AC0A:
cmp si, 8
jl short loc_ABF4
mov fp_11DD2, offset sub_A717
mov byte_F0DD, 1
mov byte_11DD5, 0
loc_AC1F:
cmp _input, INPUT_NONE
jnz short loc_AC2B
mov byte_11DD5, 1
loc_AC2B:
cmp byte_11DD5, 0
jz loc_AF2E
test _input.lo, low INPUT_UP
jz short loc_AC42
push 7
push 0FFFFh
call sub_A968
loc_AC42:
test _input.lo, low INPUT_DOWN
jz short loc_AC50
push 7
push 1
call sub_A968
loc_AC50:
test _input.hi, high INPUT_OK
jnz short loc_AC60
test _input.lo, low INPUT_SHOT
jz loc_ACF8
loc_AC60:
mov al, byte_F071
cbw
cmp ax, 6
jz short loc_AC71
cmp ax, 7
jz short loc_ACD8
jmp loc_AD01
; ---------------------------------------------------------------------------
loc_AC71:
les bx, dword_11DCC
mov byte ptr es:[bx+11h], 1
mov byte ptr es:[bx+0Fh], 3
mov byte ptr es:[bx+10h], 3
mov byte ptr es:[bx+12h], 2
mov byte ptr es:[bx+15h], 1
mov byte ptr es:[bx+16h], 1
kajacall KAJA_SONG_STOP
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
mov byte_F0DD, 0
jmp short loc_ACF8
; ---------------------------------------------------------------------------
loc_ACD8:
call snd_se_reset
call snd_se_play pascal, 11
call snd_se_update
mov byte_F0DD, 0
mov byte_F071, 4
mov byte_11DD0, 0
loc_ACF8:
test _input.lo, low INPUT_RIGHT
jz loc_ADFF
loc_AD01:
mov al, byte_F071
cbw
mov bx, ax
cmp bx, 5
ja loc_ADF5
add bx, bx
jmp cs:off_AF3D[bx]
loc_AD15:
les bx, dword_11DCC
inc byte ptr es:[bx+11h]
cmp byte ptr es:[bx+11h], 3
jbe loc_ADF5
mov byte ptr es:[bx+11h], 0
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD2E:
les bx, dword_11DCC
inc byte ptr es:[bx+0Fh]
cmp byte ptr es:[bx+0Fh], 6
jbe loc_ADF5
mov byte ptr es:[bx+0Fh], 1
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD47:
les bx, dword_11DCC
inc byte ptr es:[bx+10h]
cmp byte ptr es:[bx+10h], 3
jbe loc_ADF5
mov byte ptr es:[bx+10h], 0
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD60:
les bx, dword_11DCC
inc byte ptr es:[bx+12h]
cmp byte ptr es:[bx+12h], 3
jb short loc_AD74
mov byte ptr es:[bx+12h], 0
loc_AD74:
kajacall KAJA_SONG_STOP
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
jmp short loc_ADF5
; ---------------------------------------------------------------------------
loc_ADA8:
les bx, dword_11DCC
cmp byte ptr es:[bx+15h], 0
jnz short loc_ADBA
mov byte ptr es:[bx+15h], 2
jmp short loc_ADC2
; ---------------------------------------------------------------------------
loc_ADBA:
les bx, dword_11DCC
dec byte ptr es:[bx+15h]
loc_ADC2:
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
jmp short loc_ADF5
; ---------------------------------------------------------------------------
loc_ADE7:
les bx, dword_11DCC
mov al, 1
sub al, es:[bx+16h]
mov es:[bx+16h], al
loc_ADF5:
mov al, byte_F071
cbw
push ax
push 0Eh
call sub_A717
loc_ADFF:
test _input.lo, low INPUT_LEFT
jz loc_AF0C
mov al, byte_F071
cbw
mov bx, ax
cmp bx, 5
ja loc_AF02
add bx, bx
jmp cs:off_AF31[bx]
loc_AE1C:
les bx, dword_11DCC
cmp byte ptr es:[bx+11h], 0
jnz short loc_AE2C
mov byte ptr es:[bx+11h], 4
loc_AE2C:
les bx, dword_11DCC
dec byte ptr es:[bx+11h]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE37:
les bx, dword_11DCC
cmp byte ptr es:[bx+0Fh], 1
jnz short loc_AE47
mov byte ptr es:[bx+0Fh], 7
loc_AE47:
les bx, dword_11DCC
dec byte ptr es:[bx+0Fh]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE52:
les bx, dword_11DCC
cmp byte ptr es:[bx+10h], 0
jnz short loc_AE62
mov byte ptr es:[bx+10h], 4
loc_AE62:
les bx, dword_11DCC
dec byte ptr es:[bx+10h]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE6D:
les bx, dword_11DCC
cmp byte ptr es:[bx+12h], 0
jnz short loc_AE7F
mov byte ptr es:[bx+12h], 2
jmp short loc_AE87
; ---------------------------------------------------------------------------
loc_AE7F:
les bx, dword_11DCC
dec byte ptr es:[bx+12h]
loc_AE87:
kajacall KAJA_SONG_STOP
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
jmp short loc_AF02
; ---------------------------------------------------------------------------
loc_AEBB:
les bx, dword_11DCC
inc byte ptr es:[bx+15h]
cmp byte ptr es:[bx+15h], 3
jb short loc_AECF
mov byte ptr es:[bx+15h], 0
loc_AECF:
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
jmp short loc_AF02
; ---------------------------------------------------------------------------
loc_AEF4:
les bx, dword_11DCC
mov al, 1
sub al, es:[bx+16h]
mov es:[bx+16h], al
loc_AF02:
mov al, byte_F071
cbw
push ax
push 0Eh
call sub_A717
loc_AF0C:
test _input.hi, high INPUT_CANCEL
jz short loc_AF22
mov byte_F0DD, 0
mov byte_F071, 4
mov byte_11DD0, 0
loc_AF22:
cmp _input, INPUT_NONE
jz short loc_AF2E
mov byte_11DD5, 0
loc_AF2E:
pop si
pop bp
retn
sub_ABCF endp
; ---------------------------------------------------------------------------
off_AF31 dw offset loc_AE1C
dw offset loc_AE37
dw offset loc_AE52
dw offset loc_AE6D
dw offset loc_AEBB
dw offset loc_AEF4
off_AF3D dw offset loc_AD15
dw offset loc_AD2E
dw offset loc_AD47
dw offset loc_AD60
dw offset loc_ADA8
dw offset loc_ADE7
; =============== 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
_argc = word ptr 6
_argv = dword ptr 8
_envp = dword ptr 0Ch
push bp
mov bp, sp
push si
xor si, si
call text_clear
call respal_create
mov word_F9CC, 5208h
push ds
push offset aKaikidan1_dat0
call sub_DF12
add sp, 4
or ax, ax
jz short loc_AF7D
push ds
push offset aNotEnoughMem
call dos_puts2
call _getch
loc_AF7D:
call sub_BA94
les bx, dword_11DCC
cmp byte ptr es:[bx+11h], 0FFh
jnz short loc_AF97
call sub_B5A6
les bx, dword_11DCC
mov byte ptr es:[bx+11h], 1
loc_AF97:
les bx, dword_11DCC
mov al, es:[bx+12h]
mov ah, 0
push ax
mov al, es:[bx+15h]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
les bx, dword_11DCC
cmp byte ptr es:[bx+0Ah], 0
jnz short loc_AFD1
call opening_function
les bx, dword_11DCC
mov byte ptr es:[bx+0Ah], 1
loc_AFD1:
les bx, dword_11DCC
cmp byte ptr es:[bx+1Fh], 5
jnz short loc_AFE1
mov byte ptr es:[bx+1Fh], 0
loc_AFE1:
les bx, dword_11DCC
cmp byte ptr es:[bx+1Fh], 0
jnz short loc_AFF4
kajacall KAJA_SONG_STOP
loc_AFF4:
call sub_BC8D
call load_char_select_sprite_function
call sub_CD94
mov byte_11DD0, 0
mov byte_F072, 0
mov byte_F071, 0
jmp short loc_B058
; ---------------------------------------------------------------------------
loc_B00E:
call _input_reset_sense_held
mov al, byte_11DD0
cbw
or ax, ax
jz short loc_B022
cmp ax, 1
jz short loc_B032
jmp short loc_B035
; ---------------------------------------------------------------------------
loc_B022:
call sub_A9D6
cmp si, 280h
jl short loc_B035
call sub_A4CF
xor si, si
jmp short loc_B035
; ---------------------------------------------------------------------------
loc_B032:
call sub_ABCF
loc_B035:
cmp _input, INPUT_NONE
jz short loc_B043
cmp _input, INPUT_LEFT or INPUT_RIGHT
jnz short loc_B046
loc_B043:
inc si
jmp short loc_B048
; ---------------------------------------------------------------------------
loc_B046:
xor si, si
loc_B048:
les bx, dword_11DCC
inc dword ptr es:[bx+28h]
push 1
call frame_delay
loc_B058:
cmp byte_F072, 0
jz short loc_B00E
call sub_BC83
call sub_BB91
call text_clear
call sub_D41C
call respal_free
pop si
pop bp
retf
_main endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B077 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
push si
push di
mov ax, word_12F30
shl ax, 4
push ax
push 10h
call sub_E2D8
push si
push di
push 2
call super_put
push si
lea ax, [di+8]
push ax
push 6
call super_put
add si, 10h
mov [bp+var_2], 1
jmp short loc_B0CD
; ---------------------------------------------------------------------------
loc_B0B2:
push si
push di
push 0
call super_put
push si
lea ax, [di+8]
push ax
push 3
call super_put
inc [bp+var_2]
add si, 10h
loc_B0CD:
mov ax, word_12F30
dec ax
cmp ax, [bp+var_2]
jg short loc_B0B2
push si
push di
push 4
call super_put
push si
lea ax, [di+8]
push ax
push 7
call super_put
pop di
pop si
leave
retn 4
sub_B077 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B0F1 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
push si
lea ax, [di+8]
push ax
mov ax, word_12F30
shl ax, 4
push ax
push 10h
call sub_E2D8
push si
push di
push 6
call super_put
add si, 10h
mov [bp+var_2], 1
jmp short loc_B132
; ---------------------------------------------------------------------------
loc_B123:
push si
push di
push 3
call super_put
inc [bp+var_2]
add si, 10h
loc_B132:
mov ax, word_12F30
dec ax
cmp ax, [bp+var_2]
jg short loc_B123
push si
push di
push 7
call super_put
pop di
pop si
leave
retn 4
sub_B0F1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B14A proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov ax, [bp+arg_2]
mov [bp+var_2], ax
mov si, [bp+arg_0]
push ax
push si
push 5
call super_put
add [bp+var_2], 10h
mov di, 1
jmp short loc_B17B
; ---------------------------------------------------------------------------
loc_B16B:
push [bp+var_2]
push si
push 1
call super_put
inc di
add [bp+var_2], 10h
loc_B17B:
mov ax, word_12F30
dec ax
cmp ax, di
jg short loc_B16B
push [bp+var_2]
push si
push 8
call super_put
add si, 10h
mov di, 1
jmp short loc_B1A8
; ---------------------------------------------------------------------------
loc_B196:
push [bp+arg_2]
push si
call sub_B077
push 1
call frame_delay
inc di
add si, 8
loc_B1A8:
mov ax, word_12F32
add ax, ax
add ax, 0FFFDh
cmp ax, di
jg short loc_B196
pop di
pop si
leave
retn 4
sub_B14A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B1BA proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov di, [bp+arg_0]
push si
push di
mov ax, word_12F30
shl ax, 4
push ax
push 20h ; ' '
call sub_E2D8
push si
push di
push 5
call super_put
push si
lea ax, [di+10h]
push ax
push 6
call super_put
add si, 10h
mov [bp+var_2], 1
jmp short loc_B210
; ---------------------------------------------------------------------------
loc_B1F5:
push si
push di
push 1
call super_put
push si
lea ax, [di+10h]
push ax
push 3
call super_put
inc [bp+var_2]
add si, 10h
loc_B210:
mov ax, word_12F30
dec ax
cmp ax, [bp+var_2]
jg short loc_B1F5
push si
push di
push 8
call super_put
push si
lea ax, [di+10h]
push ax
push 7
call super_put
pop di
pop si
leave
retn 4
sub_B1BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B234 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_0]
mov ax, word_12F32
shl ax, 4
add ax, 0FFF0h
add si, ax
mov di, 1
jmp short loc_B25E
; ---------------------------------------------------------------------------
loc_B24C:
push [bp+arg_2]
push si
call sub_B0F1
push 1
call frame_delay
inc di
sub si, 8
loc_B25E:
mov ax, word_12F32
add ax, ax
add ax, 0FFFEh
cmp ax, di
jg short loc_B24C
pop di
pop si
pop bp
retn 4
sub_B234 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B270 proc near
var_4 = dword ptr -4
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
mov si, 88h
mov ax, [bp+arg_2]
or ax, ax
jz short loc_B2A0
cmp ax, 1
jz short loc_B293
cmp ax, 2
jnz short loc_B2AB
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_BGM_OPTION1 ; "<22>X<EFBFBD>e<EFBFBD><65><EFBFBD>I<EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD>"
jmp short loc_B2AB
; ---------------------------------------------------------------------------
loc_B293:
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_BGM_OPTION2 ; "<22>@<40>W<EFBFBD><57><EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>@"
add si, 10h
jmp short loc_B2AB
; ---------------------------------------------------------------------------
loc_B2A0:
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_BGM_OPTION3 ; "<22>@<40>@<40><><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD>@<40>@"
add si, 20h ; ' '
loc_B2AB:
push 30h ; '0'
push si
push [bp+arg_0]
pushd [bp+var_4]
call sub_D436
pop si
leave
retn 4
sub_B270 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B2BF proc near
var_4 = dword ptr -4
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
mov si, 88h
mov ax, [bp+arg_2]
or ax, ax
jz short loc_B2F1
cmp ax, 1
jz short loc_B2DA
cmp ax, 2
jz short loc_B2E4
jmp short loc_B2FC
; ---------------------------------------------------------------------------
loc_B2DA:
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_SFX_OPTION1 ; "<22>@<40>@<40>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>@<40>@"
jmp short loc_B2FC
; ---------------------------------------------------------------------------
loc_B2E4:
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_SFX_OPTION2 ; "<22>@<40>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@"
add si, 10h
jmp short loc_B2FC
; ---------------------------------------------------------------------------
loc_B2F1:
mov word ptr [bp+var_4+2], ds
mov word ptr [bp+var_4], offset aSETUP_SFX_OPTION3 ; "<22>@ <20><><EFBFBD>ʉ<EFBFBD><CA89><EFBFBD><EFBFBD><EFBFBD> <09>@"
add si, 20h ; ' '
loc_B2FC:
push 30h ; '0'
push si
push [bp+arg_0]
pushd [bp+var_4]
call sub_D436
pop si
leave
retn 4
sub_B2BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B310 proc near
push bp
mov bp, sp
push si
push di
mov di, 88h
xor si, si
jmp short loc_B335
; ---------------------------------------------------------------------------
loc_B31C:
push 0D0h
push di
push 0Fh
mov bx, si
shl bx, 2
pushd [SETUP_BGM_BODY+bx]
call sub_D436
inc si
add di, 10h
loc_B335:
cmp si, 9
jl short loc_B31C
pop di
pop si
pop bp
retn
sub_B310 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B33E proc near
push bp
mov bp, sp
push si
push di
mov di, 88h
xor si, si
jmp short loc_B363
; ---------------------------------------------------------------------------
loc_B34A:
push 0D0h
push di
push 0Fh
mov bx, si
shl bx, 2
pushd [SETUP_SFX_BODY+bx]
call sub_D436
inc si
add di, 10h
loc_B363:
cmp si, 9
jl short loc_B34A
pop di
pop si
pop bp
retn
sub_B33E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B36C proc near
var_2 = word ptr -2
enter 2, 0
mov word_12F30, 1Ch
push 600050h
call sub_B1BA
push 700058h
push 0Fh
push ds
push offset aSETUP_BGM_HEAD ; "<22>@<40>@<40>@<40>@<40>@<40>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><E989B9><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD><EFBFBD>E...
call sub_D436
mov word_12F30, 0Ah
mov word_12F32, 4
push 200080h
call sub_B14A
mov [bp+var_2], 0
jmp short loc_B3C3
; ---------------------------------------------------------------------------
loc_B3AC:
push [bp+var_2]
cmp [bp+var_2], 2
jnz short loc_B3BA
mov ax, 0Fh
jmp short loc_B3BC
; ---------------------------------------------------------------------------
loc_B3BA:
xor ax, ax
loc_B3BC:
push ax
call sub_B270
inc [bp+var_2]
loc_B3C3:
cmp [bp+var_2], 3
jl short loc_B3AC
mov word_12F30, 19h
mov word_12F32, 0Ah
push 0C00080h
call sub_B14A
call sub_B310
mov [bp+var_2], 2
loc_B3E6:
push 0
call _input_wait_for_change
push 1
call frame_delay
test _input.hi, high INPUT_OK
jnz short loc_B452
test _input.lo, low INPUT_SHOT
jnz short loc_B452
test _input.lo, low INPUT_UP
jz short loc_B429
push [bp+var_2]
push 0
call sub_B270
cmp [bp+var_2], 2
jnz short loc_B41E
mov [bp+var_2], 0
jmp short loc_B421
; ---------------------------------------------------------------------------
loc_B41E:
inc [bp+var_2]
loc_B421:
push [bp+var_2]
push 0Fh
call sub_B270
loc_B429:
test _input.lo, low INPUT_DOWN
jz short loc_B3E6
push [bp+var_2]
push 0
call sub_B270
cmp [bp+var_2], 0
jnz short loc_B445
mov [bp+var_2], 2
jmp short loc_B448
; ---------------------------------------------------------------------------
loc_B445:
dec [bp+var_2]
loc_B448:
push [bp+var_2]
push 0Fh
call sub_B270
jmp short loc_B3E6
; ---------------------------------------------------------------------------
loc_B452:
mov word_12F30, 19h
mov word_12F32, 0Ah
push 0C00080h
call sub_B234
mov word_12F30, 0Ah
mov word_12F32, 4
push 200080h
call sub_B234
les bx, dword_11DCC
mov al, byte ptr [bp+var_2]
mov es:[bx+12h], al
leave
retn
sub_B36C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B489 proc near
var_2 = word ptr -2
enter 2, 0
mov word_12F30, 1Ch
push 600050h
call sub_B1BA
push 700058h
push 0Fh
push ds
push offset aSETUP_SFX_HEAD ; "<22>@<40>@<40>@<40>@<40><><EFBFBD>ʉ<EFBFBD><CA89>Ɏg<C98E>p<EFBFBD><70><EFBFBD><EFBFBD><E989B9><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>āE...
call sub_D436
mov word_12F30, 0Ah
mov word_12F32, 4
push 200080h
call sub_B14A
mov [bp+var_2], 0
jmp short loc_B4E0
; ---------------------------------------------------------------------------
loc_B4C9:
push [bp+var_2]
cmp [bp+var_2], 1
jnz short loc_B4D7
mov ax, 0Fh
jmp short loc_B4D9
; ---------------------------------------------------------------------------
loc_B4D7:
xor ax, ax
loc_B4D9:
push ax
call sub_B2BF
inc [bp+var_2]
loc_B4E0:
cmp [bp+var_2], 3
jl short loc_B4C9
mov word_12F30, 19h
mov word_12F32, 0Ah
push 0C00080h
call sub_B14A
call sub_B33E
mov [bp+var_2], 1
loc_B503:
push 0
call _input_wait_for_change
push 1
call frame_delay
test _input.hi, high INPUT_OK
jnz short loc_B56F
test _input.lo, low INPUT_SHOT
jnz short loc_B56F
test _input.lo, low INPUT_DOWN
jz short loc_B546
push [bp+var_2]
push 0
call sub_B2BF
cmp [bp+var_2], 2
jnz short loc_B53B
mov [bp+var_2], 0
jmp short loc_B53E
; ---------------------------------------------------------------------------
loc_B53B:
inc [bp+var_2]
loc_B53E:
push [bp+var_2]
push 0Fh
call sub_B2BF
loc_B546:
test _input.lo, low INPUT_UP
jz short loc_B503
push [bp+var_2]
push 0
call sub_B2BF
cmp [bp+var_2], 0
jnz short loc_B562
mov [bp+var_2], 2
jmp short loc_B565
; ---------------------------------------------------------------------------
loc_B562:
dec [bp+var_2]
loc_B565:
push [bp+var_2]
push 0Fh
call sub_B2BF
jmp short loc_B503
; ---------------------------------------------------------------------------
loc_B56F:
mov word_12F30, 19h
mov word_12F32, 0Ah
push 0C00080h
call sub_B234
mov word_12F30, 0Ah
mov word_12F32, 4
push 200080h
call sub_B234
les bx, dword_11DCC
mov al, byte ptr [bp+var_2]
mov es:[bx+15h], al
leave
retn
sub_B489 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B5A6 proc near
push bp
mov bp, sp
mov PaletteTone, 0
call far ptr palette_show
push ds
push offset aMswin_bft ; "mswin.bft"
call super_entry_bfnt
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aMs_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
push 1
call palette_black_in
call sub_B36C
push 1
call frame_delay
push 0
call graph_copy_page
call sub_B489
push 1
call palette_black_out
call super_free
pop bp
retn
sub_B5A6 endp
include th04/zunsoft.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
opening_function proc near
opening_switch_frame = word ptr -8
var_6 = word ptr -6
opening_scr_fade_multi = byte ptr -4
opening_scr_fade = byte ptr -3
opening_key_pressed = byte ptr -2
var_1 = byte ptr -1
enter 8, 0
push si
push di ;m_curFrame=-1?
mov [bp+opening_key_pressed], 0
mov [bp+opening_scr_fade], 0
mov [bp+opening_scr_fade_multi], 100 ; 'd'
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aZun00_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
call sub_D688
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call graph_clear
xor si, si
jmp short loc_B8C7
; ---------------------------------------------------------------------------
;fps hack?
loc_B872:
mov bx, si
imul bx, 3
mov al, [bx+2E1Eh]
mov bx, si
imul bx, 3
mov [bx+3F54h], al
mov bx, si
imul bx, 3
mov al, [bx+2E1Fh]
mov bx, si
imul bx, 3
mov [bx+3F55h], al
mov bx, si
imul bx, 3
mov al, [bx+2E20h]
mov bx, si
imul bx, 3
mov [bx+3F56h], al
mov bx, si
imul bx, 3
mov byte ptr [bx+2E1Eh], 0
mov bx, si
imul bx, 3
mov byte ptr [bx+2E1Fh], 0
mov bx, si
imul bx, 3
mov byte ptr [bx+2E20h], 0
inc si
loc_B8C7:
cmp si, 15
jl short loc_B872
call snd_load pascal, ds, offset aLogo, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
mov [bp+var_6], 3F84h
xor si, si
jmp short loc_B8F4
; ---------------------------------------------------------------------------
;void COpParticle::Initialize(){?
loc_B8E8:
mov bx, [bp+var_6]
mov word ptr [bx], 0
inc si
add [bp+var_6], 0Eh
loc_B8F4:
cmp si, 256
jl short loc_B8E8
;}
push 20000h
call sub_E0F1
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
push ds
push offset aZun02_bft ; "zun02.bft"
call super_entry_bfnt
push ds
push offset aZun04_bft ; "zun04.bft"
call super_entry_bfnt
push ds
push offset aZun01_bft ; "zun01.bft"
call super_entry_bfnt
push ds
push offset aZun03_bft ; "zun03.bft"
call super_entry_bfnt
mov [bp+var_1], 0
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
mov dx, 0A4h
mov al, 0
out dx, al
xor di, di
jmp loc_BA47
; ---------------------------------------------------------------------------
loc_B949:
call _input_reset_sense_held
cmp _input, INPUT_NONE
jz short loc_B959
mov [bp+opening_key_pressed], 1;m_bKeyPressed=true?
loc_B959:
mov [bp+opening_switch_frame], di
mov cx, 12 ; switch 12 cases
mov bx, offset word_BA64
loc_B962:
mov ax, cs:[bx]
cmp ax, [bp+opening_switch_frame]
jz short loc_B971
add bx, 2
loop loc_B962
jmp short opening_frame_case_default ; default
; ---------------------------------------------------------------------------
loc_B971:
jmp word ptr cs:[bx+18h] ; switch jump
loc_B975:
push (180 shl 16) or 180 ; jumptable 0000B971 case 0
jmp short loc_B9B3
; ---------------------------------------------------------------------------
loc_B97D:
push (460 shl 16) or 220 ; jumptable 0000B971 case 16
jmp short loc_B9BD
; ---------------------------------------------------------------------------
loc_B985:
push (220 shl 16) or 160 ; jumptable 0000B971 case 24
jmp short loc_B9B3
; ---------------------------------------------------------------------------
loc_B98D:
push (380 shl 16) or 240 ; jumptable 0000B971 case 32
jmp short loc_B9BD
; ---------------------------------------------------------------------------
loc_B995:
push (340 shl 16) or 200 ; jumptable 0000B971 case 44
jmp short loc_B9BD
; ---------------------------------------------------------------------------
loc_B99D:
push (280 shl 16) or 170 ; jumptable 0000B971 case 48
jmp short loc_B9B3
; ---------------------------------------------------------------------------
loc_B9A5:
push (380 shl 16) or 260 ; jumptable 0000B971 case 52
jmp short loc_B9BD
; ---------------------------------------------------------------------------
loc_B9AD:
push (200 shl 16) or 190 ; jumptable 0000B971 cases 40,56
loc_B9B3:
push 20
jmp short loc_B9C9
; ---------------------------------------------------------------------------
loc_B9B7:
push (440 shl 16) or 210 ; jumptable 0000B971 case 60
loc_B9BD:
push 20
jmp short loc_B9D5
; ---------------------------------------------------------------------------
loc_B9C1:
push (320 shl 16) or 200 ; jumptable 0000B971 case 64
push 64
loc_B9C9:
push 0
jmp short loc_B9D7
; ---------------------------------------------------------------------------
loc_B9CD:
push (320 shl 16) or 200 ; jumptable 0000B971 case 68
push 64
loc_B9D5:
push 10
loc_B9D7:
call _zunsoft_pyro_new
opening_frame_case_default:
call sub_D6F0 ; default
call _zunsoft_update_and_render
loc_B9E2:
cmp vsync_Count1, 2
jb short loc_B9E2
mov vsync_Count1, 0
mov dx, 0A6h ; '<27>'
mov al, [bp+var_1]
out dx, al
mov al, 1
sub al, [bp+var_1]
mov [bp+var_1], al
mov dx, 0A4h
out dx, al
cmp [bp+opening_key_pressed], 0
jnz short loc_BA26
cmp di, 16 ;if (m_curFrame>=16)
jl short loc_BA1B
cmp [bp+opening_scr_fade], 100
jnb short loc_BA1B ;if (m_curScrFade<100)
mov al, [bp+opening_scr_fade] ;m_curScrFade+=2;
add al, 2
mov [bp+opening_scr_fade], al
loc_BA1B:
mov al, [bp+opening_scr_fade]
mov ah, 0
push ax
call _zunsoft_palette_update_and_show
jmp short loc_BA41
; ---------------------------------------------------------------------------
loc_BA26:
cmp [bp+opening_scr_fade_multi], 0
jbe short loc_BA56
mov al, [bp+opening_scr_fade_multi]
add al, 0FEh
mov [bp+opening_scr_fade_multi], al
mov al, [bp+opening_scr_fade_multi]
mov ah, 0
mov PaletteTone, ax
call far ptr palette_show
loc_BA41:
call snd_se_update
inc di ;m_curFrame++
loc_BA47:
cmp di, 170 ;if (m_curFrame<170)
jl loc_B949
push 1
call palette_black_out
loc_BA56:
call super_free
call sub_D726
pop di
pop si
leave
retn
opening_function endp
; ---------------------------------------------------------------------------
word_BA64 dw 0, 10h, 18h, 20h
dw 28h, 2Ch, 30h, 34h ; value table for switch statement
dw 38h, 3Ch, 40h, 44h
dw offset loc_B975 ; jump table for switch statement
dw offset loc_B97D
dw offset loc_B985
dw offset loc_B98D
dw offset loc_B9AD
dw offset loc_B995
dw offset loc_B99D
dw offset loc_B9A5
dw offset loc_B9AD
dw offset loc_B9B7
dw offset loc_B9C1
dw offset loc_B9CD
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BA94 proc near
var_C = word ptr -0Ch
var_A = byte ptr -0Ah
var_4 = word ptr -4
enter 0Ch, 0
push ds
push offset aMiko_cfg ; "MIKO.CFG"
call file_ropen
push ss
lea ax, [bp+var_A]
push ax
push 0Ah
call file_read
call file_close
mov ax, [bp+var_4]
mov [bp+var_C], ax
mov word ptr dword_11DCC+2, ax
mov word ptr dword_11DCC, 0
les bx, dword_11DCC
cmp byte ptr es:[bx+0Fh], 6
ja short loc_BAD3
cmp byte ptr es:[bx+0Fh], 0
jnz short loc_BADC
loc_BAD3:
les bx, dword_11DCC
mov byte ptr es:[bx+0Fh], 3
loc_BADC:
les bx, dword_11DCC
cmp byte ptr es:[bx+10h], 3
jbe short loc_BAEC
mov byte ptr es:[bx+10h], 3
loc_BAEC:
les bx, dword_11DCC
cmp byte ptr es:[bx+12h], 3
jb short loc_BAFC
mov byte ptr es:[bx+12h], 0
loc_BAFC:
les bx, dword_11DCC
cmp byte ptr es:[bx+15h], 3
jb short locret_BB0C
mov byte ptr es:[bx+15h], 0
locret_BB0C:
leave
retn
sub_BA94 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB0E proc near
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_5 = byte ptr -5
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
enter 8, 0
push ds
push offset aMiko_cfg ; "MIKO.CFG"
call file_append
pushd 0
push 0
call file_seek
les bx, dword_11DCC
mov al, es:[bx+11h]
mov [bp+var_8], al
mov al, es:[bx+0Fh]
mov [bp+var_7], al
mov al, es:[bx+10h]
mov [bp+var_6], al
mov al, es:[bx+12h]
mov [bp+var_5], al
mov al, es:[bx+15h]
mov [bp+var_4], al
mov al, es:[bx+16h]
mov [bp+var_3], al
push ss
lea ax, [bp+var_8]
push ax
push 6
call file_write
pushd 9
push 0
call file_seek
mov al, [bp+var_8]
add al, [bp+var_7]
add al, [bp+var_6]
add al, [bp+var_5]
add al, [bp+var_4]
add al, [bp+var_3]
mov [bp+var_2], al
push ss
lea ax, [bp+var_2]
push ax
push 1
call file_write
call file_close
leave
retn
sub_BB0E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB91 proc near
var_A = byte ptr -0Ah
var_9 = byte ptr -9
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_5 = byte ptr -5
var_1 = byte ptr -1
enter 0Ah, 0
lea ax, [bp+var_A]
push ss
push ax
push ds
push offset unk_FF00
mov cx, 0Ah
call SCOPY@
push ds
push offset aMiko_cfg ; "MIKO.CFG"
call file_append
pushd 0
push 0
call file_seek
les bx, dword_11DCC
mov al, es:[bx+11h]
mov [bp+var_A], al
mov al, es:[bx+0Fh]
mov [bp+var_9], al
mov al, es:[bx+10h]
mov [bp+var_8], al
mov al, es:[bx+12h]
mov [bp+var_7], al
mov al, es:[bx+15h]
mov [bp+var_6], al
mov al, es:[bx+16h]
mov [bp+var_5], al
mov al, [bp+var_A]
add al, [bp+var_9]
add al, [bp+var_8]
add al, [bp+var_7]
add al, [bp+var_6]
add al, [bp+var_5]
mov [bp+var_1], al
push ss
lea ax, [bp+var_A]
push ax
push 0Ah
call file_write
call file_close
leave
retn
sub_BB91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
load_char_select_sprite_function proc near
push bp
mov bp, sp
call _cdg_load_all pascal, 0, ds, offset aSft1_cd2
call _cdg_load_all pascal, 10, ds, offset aSft2_cd2
call _cdg_load_all pascal, 35, ds, offset aCar_cd2
call _cdg_load_single_noalpha pascal, 40, ds, offset aSl00_cdg, 0
call _cdg_load_single_noalpha pascal, 41, ds, offset aSl01_cdg, 0
call _cdg_load_single_noalpha pascal, 42, ds, offset aSl02_cdg, 0
call _cdg_load_single_noalpha pascal, 43, ds, offset aSl03_cdg, 0
call _cdg_load_single pascal, 44, ds, offset aSlcl_cdg, 0
call _cdg_load_single_noalpha pascal, 45, ds, offset aSl04_cdg, 0
pop bp
retn
load_char_select_sprite_function endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC83 proc near
push bp
mov bp, sp
call _cdg_freeall
pop bp
retn
sub_BC83 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC8D proc near
var_2 = byte ptr -2
var_1 = byte ptr -1
enter 2, 0
push si
mov PaletteTone, 0
call far ptr palette_show
call pi_slot_load pascal, 0, ds, offset aOp2a_pi
call pi_slot_load pascal, 1, ds, offset aOp2b_pi
call pi_slot_load pascal, 2, ds, offset aOp2c_pi
call pi_slot_load pascal, 3, ds, offset aOp2d_pi
call pi_slot_load pascal, 4, ds, offset aOp2e_pi
call pi_slot_load pascal, 5, ds, offset aOp2f_pi
call pi_slot_load pascal, 6, ds, offset aOp2g_pi
call pi_slot_load pascal, 7, ds, offset aOp2h_pi
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
pushd 0
push 4F018Fh
call grcg_byteboxfill_x
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
pushd 0
push 4F018Fh
call grcg_byteboxfill_x
GRCG_OFF_CLOBBERING dx
push 1
call graph_copy_page
mov [bp+var_1], 1
mov [bp+var_2], 0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
xor si, si
jmp short loc_BDAD
; ---------------------------------------------------------------------------
loc_BD55:
mov ax, si
mov bx, 8
cwd
idiv bx
cmp dx, 1
jg short loc_BD81
mov ax, si
cwd
idiv bx
call pi_slot_palette_apply pascal, ax
pushd 278;draw(0.278)
mov ax, si
mov bx, 8
cwd
idiv bx
push ax
call pi_slot_put
loc_BD81:
push 1
call frame_delay
mov dx, 0A6h ; '<27>'
mov al, [bp+var_1]
out dx, al
mov dx, 0A4h
mov al, [bp+var_2]
out dx, al
mov [bp+var_1], al
mov al, 1
sub al, [bp+var_2]
mov [bp+var_2], al
lea ax, [si+24h]
mov PaletteTone, ax
call far ptr palette_show
inc si
loc_BDAD:
cmp si, 40h
jl short loc_BD55
mov si, 1
jmp short loc_BDBE
; ---------------------------------------------------------------------------
loc_BDB7:
call pi_slot_free pascal, si
inc si
loc_BDBE:
cmp si, 8
jl short loc_BDB7
push 1
call graph_copy_page
les bx, dword_11DCC
cmp byte ptr es:[bx+1Fh], 0
jnz short loc_BDE8
call snd_load pascal, ds, offset aOp_0, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
loc_BDE8:
call pi_slot_load pascal, 0, ds, offset aOp1_pi_0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
push 16
call frame_delay
xor si, si
jmp short loc_BE46
; ---------------------------------------------------------------------------
loc_BE08:
mov ax, si
mov bx, 4
cwd
idiv bx
cmp dx, 1
jg short loc_BE25
pushd 0
push 0
mov ax, si
cwd
idiv bx
push ax
call sub_DC94
loc_BE25:
push 1
call frame_delay
mov dx, 0A6h ; '<27>'
mov al, [bp+var_1]
out dx, al
mov dx, 0A4h
mov al, [bp+var_2]
out dx, al
mov [bp+var_1], al
mov al, 1
sub al, [bp+var_2]
mov [bp+var_2], al
inc si
loc_BE46:
cmp si, 10h
jl short loc_BE08
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
mov dx, 0A4h
mov al, 0
out dx, al
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
pop si
leave
retn
sub_BC8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BE79 proc near
var_5 = byte ptr -5
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = byte ptr 6
enter 6, 0
push si
mov [bp+var_5], 5
mov al, [bp+arg_2]
mov ah, 0
sub ax, word_1403A
shl ax, 4
mov si, ax
or si, si
jl loc_BF48
cmp si, 0C0h
jge loc_BF48
cmp [bp+arg_0], 0
jz short loc_BEF4
call grcg_setcolor pascal, (GC_RMW shl 16) + 5
push 0C012Ch
lea ax, [si+60h]
push ax
call grcg_hline
push 0C012Ch
lea ax, [si+6Fh]
push ax
call grcg_hline
push 0Ch
lea ax, [si+60h]
push ax
lea ax, [si+6Fh]
push ax
call grcg_vline
push 12Ch
lea ax, [si+60h]
push ax
lea ax, [si+6Fh]
push ax
call grcg_vline
GRCG_OFF_CLOBBERING dx
jmp short loc_BF05
; ---------------------------------------------------------------------------
loc_BEF4:
push 0
lea ax, [si+60h]
push ax
push 1400010h
call sub_DB3C
loc_BF05:
mov al, [bp+arg_2]
mov ah, 0
cmp ax, word_1403C
jnz short loc_BF14
mov [bp+var_5], 3
loc_BF14:
mov bx, music_game
imul bx, 78h
mov al, [bp+arg_2]
mov ah, 0
shl ax, 2
add bx, ax
mov ax, [bx+0FF0h]
mov dx, [bx+0FEEh]
mov [bp+var_2], ax
mov [bp+var_4], dx
add si, 60h
push 0Ch
push si
mov al, [bp+var_5]
mov ah, 0
push ax
push [bp+var_2]
push dx
call sub_D436
loc_BF48:
pop si
leave
retn 4
sub_BE79 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BF4D proc near
arg_0 = byte ptr 4
push bp
mov bp, sp
push si
xor si, si
jmp short loc_BF6B
; ---------------------------------------------------------------------------
loc_BF55:
push si
mov al, [bp+arg_0]
mov ah, 0
cmp ax, si
jnz short loc_BF64
mov ax, 1
jmp short loc_BF66
; ---------------------------------------------------------------------------
loc_BF64:
xor ax, ax
loc_BF66:
push ax
call sub_BE79
inc si
loc_BF6B:
mov ax, musicroom_trackcount
add ax, 2
cmp ax, si
jg short loc_BF55
push 0C0050h
push 5
pushd [MUSICROOM_UP]
call sub_D436
push 0C0120h
push 5
pushd [MUSICROOM_DOWN]
call sub_D436
push 0C0020h
push 3
mov bx, music_game
shl bx, 2
pushd dword ptr MUSICROOM_GAME[bx]
call sub_D436
pop si
pop bp
retn 2
sub_BF4D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BFB7 proc near
push bp
mov bp, sp
push si
push 7D00h
call hmem_allocbyte
mov word_13E98, ax
xor si, si
jmp short loc_BFDF
; ---------------------------------------------------------------------------
loc_BFCA:
les bx, _VRAM_PLANE_B
add bx, si
mov eax, es:[bx]
mov es, word_13E98
mov es:[si], eax
add si, 4
loc_BFDF:
cmp si, 7D00h
jl short loc_BFCA
pop si
pop bp
retn
sub_BFB7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BFE8 proc near
push bp
mov bp, sp
push word_13E98
call hmem_free
pop bp
retn
sub_BFE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BFF6 proc near
push bp
mov bp, sp
push si
push di
push ds
mov ax, 0A800h
mov es, ax
assume es:nothing
mov ax, word_13E98
mov ds, ax
xor di, di
xor si, si
mov cx, 3E80h
rep movsw
pop ds
pop di
pop si
pop bp
retn
sub_BFF6 endp
include th02/music/polygons.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C293 proc near
push bp
mov bp, sp
call sub_BFF6
call sub_D96E
call grcg_setcolor pascal, ((GC_RMW or GC_B) shl 16) + 15
call polygons_update_and_render
GRCG_OFF_CLOBBERING dx
push 1
call frame_delay
mov dx, 0A4h
mov al, byte ptr word_13E94+1
out dx, al
mov al, 1
sub al, byte ptr word_13E94+1
mov byte ptr word_13E94+1, al
mov dx, 0A6h ; '<27>'
out dx, al
pop bp
retn
sub_C293 endp
include th05/music/music_cmt_load.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C32D proc pascal near
local @@y:word
push si
push di
push 1400020h
push 7
push ds
push offset _music_cmt
call sub_D436
mov si, offset _music_cmt + MUSIC_CMT_LINE_LEN
mov di, 1
mov @@y, 180
jmp short loc_C36D
; ---------------------------------------------------------------------------
loc_C351:
cmp byte ptr [si], ';'
jz short loc_C365
push 320
push @@y
push 7
push ds
push si
call sub_D436
loc_C365:
inc di
add @@y, 16
add si, MUSIC_CMT_LINE_LEN
loc_C36D:
cmp di, MUSIC_CMT_LINE_COUNT
jl short loc_C351
pop di
pop si
ret
sub_C32D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C376 proc near
push bp
mov bp, sp
push si
mov si, 4
jmp short loc_C390
; ---------------------------------------------------------------------------
loc_C37F:
mov word_F9BE, si
call sub_C32D
call sub_C293
call sub_C32D
call sub_C293
inc si
loc_C390:
cmp si, 8
jl short loc_C37F
mov word_F9BE, 2
call sub_C32D
call sub_C293
call sub_C32D
pop si
pop bp
retn
sub_C376 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C3A7 proc near
push bp
mov bp, sp
mov word_F9BE, 2
push 1400020h
push 1400010h
call sub_DB3C
push 14000B4h
push 1400090h
call sub_DB3C
call sub_C293
push 1400020h
push 1400010h
call sub_DB3C
push 14000B4h
push 1400090h
call sub_DB3C
pop bp
retn
sub_C3A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C3F9 proc near
@@track = word ptr 4
push bp
mov bp, sp
cmp byte_13E96, 0
jz short loc_C406
call sub_C3A7
loc_C406:
call music_cmt_load pascal, [bp+@@track]
call sub_BFF6
push 1400040h
push 1400100h
call sub_DB3C
cmp byte_13E96, 0
jz short loc_C42C
call sub_C376
jmp short loc_C43A
; ---------------------------------------------------------------------------
loc_C42C:
mov byte_13E96, 1
call sub_C32D
call sub_C293
call sub_C32D
loc_C43A:
call sub_BFF6
pop bp
retn 2
sub_C3F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C441 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
mov si, [bp+arg_0]
pushd 20h ; ' '
push 1400010h
call sub_DB3C
pushd 60h
push 14000C0h
call sub_DB3C
push si
call sub_BF4D
call sub_C293
pushd 20h ; ' '
push 1400010h
call sub_DB3C
pushd 60h
push 14000C0h
call sub_DB3C
push si
call sub_BF4D
pop si
pop bp
retn 2
sub_C441 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C490 proc near
var_1 = byte ptr -1
enter 2, 0
push si
xor si, si
mov word_1403A, 0
mov word_1403C, 0
mov byte ptr word_13E94, 0
mov bx, music_game
add bx, bx
mov ax, [bx+14A0h]
mov musicroom_trackcount, ax
mov byte_13E96, 0
call _cdg_freeall
call text_clear
mov byte ptr word_13E94+1, 1
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A4h
mov al, 0
out dx, al
mov dx, 0A6h ; '<27>'
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aMusic_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
call sub_D894
call sub_BFB7
call sub_D688
push word_13E94
call sub_BF4D
push 0
call graph_copy_page
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
mov dx, 0A4h
mov al, 0
out dx, al
call pfend
push ds
push offset aMusic_dat ; "music.dat"
call pfstart
mov al, byte ptr word_13E94
mov ah, 0
call sub_C3F9 pascal, ax
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
loc_C555:
call _input_reset_sense_held
cmp _input, INPUT_NONE
jz short loc_C57F
cmp si, 18h
jl short loc_C579
cmp _input, INPUT_UP
jz short loc_C574
cmp _input, INPUT_DOWN
jnz short loc_C579
loc_C574:
mov si, 14h
jmp short loc_C57F
; ---------------------------------------------------------------------------
loc_C579:
inc si
call sub_C293
jmp short loc_C555
; ---------------------------------------------------------------------------
loc_C57F:
call _input_reset_sense_held
test _input.lo, low INPUT_UP
jz short loc_C5EB
mov al, byte ptr word_13E94
mov [bp+var_1], al
cmp byte ptr word_13E94, 0
jbe short loc_C5D5
dec byte ptr word_13E94
mov al, byte ptr word_13E94
mov ah, 0
cmp ax, word_1403A
jge short loc_C5AE
mov al, byte ptr word_13E94
mov ah, 0
jmp short loc_C61C
; ---------------------------------------------------------------------------
loc_C5AE:
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
call sub_C293
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
jmp short loc_C5EB
; ---------------------------------------------------------------------------
loc_C5D5:
mov al, byte ptr musicroom_trackcount
mov byte ptr word_13E94, al
mov ax, musicroom_trackcount
add ax, 0FFF5h
mov word_1403A, ax
push musicroom_trackcount
call sub_C441
loc_C5EB:
test _input.lo, low INPUT_DOWN
jz short loc_C666
mov al, byte ptr word_13E94
mov [bp+var_1], al
mov ah, 0
cmp ax, musicroom_trackcount
jge short loc_C652
inc byte ptr word_13E94
mov al, byte ptr word_13E94
mov ah, 0
mov dx, word_1403A
add dx, 0Ch
cmp ax, dx
jl short loc_C62B
mov al, byte ptr word_13E94
mov ah, 0
add ax, 0FFF5h
loc_C61C:
mov word_1403A, ax
mov al, byte ptr word_13E94
mov ah, 0
push ax
call sub_C441
jmp loc_C6E3
; ---------------------------------------------------------------------------
loc_C62B:
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
call sub_C293
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
jmp short loc_C666
; ---------------------------------------------------------------------------
loc_C652:
mov byte ptr word_13E94, 0
mov word_1403A, 0
mov al, byte ptr word_13E94
mov ah, 0
push ax
call sub_C441
loc_C666:
test _input.lo, low INPUT_LEFT
jz short loc_C680
dec music_game
cmp music_game, 0
jge short loc_C698
mov music_game, 4
jmp short loc_C698
; ---------------------------------------------------------------------------
loc_C680:
test _input.lo, low INPUT_RIGHT
jz short loc_C6E3
inc music_game
cmp music_game, 5
jl short loc_C698
mov music_game, 0
loc_C698:
mov byte ptr word_13E94, 0
mov word_1403C, 0
mov word_1403A, 0
mov bx, music_game
add bx, bx
mov ax, [bx+14A0h]
mov musicroom_trackcount, ax
push 0
call sub_C441
kajacall KAJA_SONG_FADE, 32
call sub_C3F9 pascal, 0
mov bx, music_game
imul bx, 78h
call snd_load pascal, dword ptr [bx+1246h], SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
loc_C6E3:
test _input.lo, low INPUT_SHOT
jnz short loc_C6F1
test _input.hi, high INPUT_OK
jz short loc_C767
loc_C6F1:
mov al, byte ptr word_13E94
mov ah, 0
cmp ax, musicroom_trackcount
jz loc_C77F
kajacall KAJA_SONG_FADE, 32
mov al, byte ptr word_1403C
mov [bp+var_1], al
mov al, byte ptr word_13E94
mov ah, 0
mov word_1403C, ax
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
call sub_C293
push word ptr [bp+var_1]
push 0
call sub_BE79
push word_13E94
push 1
call sub_BE79
mov al, byte ptr word_13E94
mov ah, 0
call sub_C3F9 pascal, ax
mov bx, music_game
imul bx, 78h
mov al, byte ptr word_13E94
mov ah, 0
shl ax, 2
add bx, ax
call snd_load pascal, dword ptr [bx+1246h], SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
loc_C767:
test _input.hi, high INPUT_CANCEL
jnz short loc_C77F
cmp _input, INPUT_NONE
jnz loc_C555
xor si, si
call sub_C293
jmp loc_C57F
; ---------------------------------------------------------------------------
loc_C77F:
call _input_reset_sense_held
cmp _input, INPUT_NONE
jz short loc_C790
call sub_C293
jmp short loc_C77F
; ---------------------------------------------------------------------------
loc_C790:
call pfend
push ds
push offset aKaikidan1_dat1
call pfstart
kajacall KAJA_SONG_FADE, 16
call sub_BFE8
mov dx, 0A4h
mov al, 0
out dx, al
mov dx, 0A6h ; '<27>'
out dx, al
push 1
call palette_black_out
call sub_D726
call snd_load pascal, ds, offset aH_op+2, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
pop si
leave
retn
sub_C490 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C7D5 proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov si, 4
jmp short loc_C802
; ---------------------------------------------------------------------------
loc_C7DF:
mov al, [si+5061h]
mov [bp+var_1], al
mov al, byte_14041
ror [bp+var_1], 3
xor [bp+var_1], al
mov al, [si+5060h]
mov dl, byte_14040
add dl, [bp+var_1]
add al, dl
mov [si+5060h], al
inc si
loc_C802:
cmp si, 5Fh ; '_'
jl short loc_C7DF
mov al, byte_14040
add [si+5060h], al
xor cx, cx
mov si, 4
jmp short loc_C81E
; ---------------------------------------------------------------------------
loc_C815:
mov al, [si+5060h]
mov ah, 0
add cx, ax
inc si
loc_C81E:
cmp si, 60h
jl short loc_C815
cmp word_14042, cx
jz short loc_C82D
mov al, 1
jmp short loc_C87B
; ---------------------------------------------------------------------------
loc_C82D:
mov si, 4
jmp short loc_C855
; ---------------------------------------------------------------------------
loc_C832:
mov al, [si+50C1h]
mov [bp+var_1], al
mov al, byte_140A1
ror [bp+var_1], 3
xor [bp+var_1], al
mov al, [si+50C0h]
mov dl, byte_140A0
add dl, [bp+var_1]
add al, dl
mov [si+50C0h], al
inc si
loc_C855:
cmp si, 5Fh ; '_'
jl short loc_C832
mov al, byte_140A0
add [si+50C0h], al
xor cx, cx
mov si, 4
jmp short loc_C871
; ---------------------------------------------------------------------------
loc_C868:
mov al, [si+50C0h]
mov ah, 0
add cx, ax
inc si
loc_C871:
cmp si, 60h
jl short loc_C868
mov al, byte_140A2
sub al, cl
loc_C87B:
pop si
leave
retn
sub_C7D5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C87E proc near
var_1 = byte ptr -1
enter 2, 0
push si
mov word_14042, 0
mov si, 4
jmp short loc_C899
; ---------------------------------------------------------------------------
loc_C88E:
mov al, [si+5060h]
mov ah, 0
add word_14042, ax
inc si
loc_C899:
cmp si, 60h
jl short loc_C88E
call IRand
mov byte_14040, al
call IRand
mov byte_14041, al
mov [bp+var_1], 0
mov si, 5Fh ; '_'
jmp short loc_C8DA
; ---------------------------------------------------------------------------
loc_C8B7:
mov al, [si+5060h]
mov dl, byte_14040
add dl, [bp+var_1]
sub al, dl
mov [si+5060h], al
mov al, [si+5060h]
mov [bp+var_1], al
mov al, byte_14041
ror [bp+var_1], 3
xor [bp+var_1], al
dec si
loc_C8DA:
cmp si, 4
jge short loc_C8B7
pop si
leave
retn
sub_C87E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C8E2 proc near
var_3 = byte ptr -3
var_2 = word ptr -2
enter 4, 0
push si
mov [bp+var_3], 0A8h ; '<27>'
xor si, si
jmp short loc_C95A
; ---------------------------------------------------------------------------
loc_C8EF:
mov byte_1409E, 12h
mov [bp+var_2], 0
jmp short loc_C90B
; ---------------------------------------------------------------------------
loc_C8FB:
mov bx, si
shl bx, 3
add bx, [bp+var_2]
mov byte ptr [bx+5091h], 0A0h
inc [bp+var_2]
loc_C90B:
cmp [bp+var_2], 8
jl short loc_C8FB
or si, si
jnz short loc_C921
mov bx, si
shl bx, 3
mov byte ptr [bx+5097h], 0A1h ; '<27>'
jmp short loc_C932
; ---------------------------------------------------------------------------
loc_C921:
mov bx, si
shl bx, 3
mov al, [bp+var_3]
mov [bx+5096h], al
add al, 0FEh
mov [bp+var_3], al
loc_C932:
mov [bp+var_2], 0
jmp short loc_C949
; ---------------------------------------------------------------------------
loc_C939:
mov bx, si
imul bx, 9
add bx, [bp+var_2]
mov byte ptr [bx+5064h], 0C4h ; '<27>'
inc [bp+var_2]
loc_C949:
cmp [bp+var_2], 8
jl short loc_C939
mov bx, si
imul bx, 9
mov byte ptr [bx+506Ch], 0
inc si
loc_C95A:
cmp si, 5
jl short loc_C8EF
push ds
push offset aGensou_scr ; "GENSOU.SCR"
call file_create
xor si, si
jmp short loc_C9B1
; ---------------------------------------------------------------------------
loc_C96C:
mov [bp+var_2], 0
jmp short loc_C999
; ---------------------------------------------------------------------------
loc_C973:
mov ax, si
mov bx, 5
cwd
idiv bx
cmp dx, 4
jnz short loc_C98A
mov bx, [bp+var_2]
mov byte ptr [bx+50B9h], 0A1h ; '<27>'
jmp short loc_C996
; ---------------------------------------------------------------------------
loc_C98A:
mov bx, [bp+var_2]
mov al, 0A6h ; '<27>'
sub al, byte ptr [bp+var_2]
mov [bx+50B9h], al
loc_C996:
inc [bp+var_2]
loc_C999:
cmp [bp+var_2], 5
jl short loc_C973
call sub_C87E
push ds
push offset byte_14040
push 60h
call file_write
call sub_C7D5
inc si
loc_C9B1:
cmp si, 14h
jl short loc_C96C
call file_close
pop si
leave
retn
sub_C8E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C9BE proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push ds
push offset aGensou_scr ; "GENSOU.SCR"
call file_exist
or ax, ax
jz short loc_CA0C
push ds
push offset aGensou_scr ; "GENSOU.SCR"
call file_ropen
mov ax, [bp+arg_0]
imul ax, 5
mov dl, byte_14101
mov dh, 0
add ax, dx
imul ax, 60h
movzx eax, ax
push eax
push 0
call file_seek
push ds
push offset byte_14040
push 60h
call file_read
call file_close
call sub_C7D5
or al, al
jz short loc_CA15
loc_CA0C:
call sub_C8E2
mov al, 1
pop bp
retn 2
; ---------------------------------------------------------------------------
loc_CA15:
mov al, 0
pop bp
retn 2
sub_C9BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CA1B proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 2, 0
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_0]
mov bx, di
shl bx, 3
mov al, [bx+5098h]
mov ah, 0
add ax, 0FF60h
cmp ax, 0Ah
jl short loc_CA5B
lea ax, [si-10h]
push ax
push [bp+arg_2]
mov bx, di
shl bx, 3
mov al, [bx+5098h]
mov ah, 0
add ax, 0FF60h
mov bx, 0Ah
cwd
idiv bx
push ax
call super_put
loc_CA5B:
push si
push [bp+arg_2]
mov bx, di
shl bx, 3
mov al, [bx+5098h]
mov ah, 0
add ax, 0FF60h
mov bx, 0Ah
cwd
idiv bx
push dx
call super_put
add si, 10h
mov [bp+var_2], 6
jmp short loc_CAA4
; ---------------------------------------------------------------------------
loc_CA83:
push si
push [bp+arg_2]
mov bx, di
shl bx, 3
add bx, [bp+var_2]
mov al, [bx+5091h]
mov ah, 0
add ax, 0FF60h
push ax
call super_put
dec [bp+var_2]
add si, 10h
loc_CAA4:
cmp [bp+var_2], 0
jge short loc_CA83
pop di
pop si
leave
retn 6
sub_CA1B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CAB0 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_2]
cmp [bp+arg_0], 0FFh
jz short loc_CADB
lea ax, [si+2]
push ax
lea ax, [di+2]
push ax
push [bp+arg_0]
push 0Eh
call graph_gaiji_putc
push si
push di
push [bp+arg_0]
jmp short loc_CAF3
; ---------------------------------------------------------------------------
loc_CADB:
lea ax, [si+2]
push ax
lea ax, [di+2]
push ax
push 0EF000Eh
call graph_gaiji_putc
push si
push di
push 0EFh ; '<27>E
loc_CAF3:
push 7
call graph_gaiji_putc
pop di
pop si
pop bp
retn 6
sub_CAB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CB00 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
cmp [bp+arg_0], 0
jnz short loc_CB3A
mov bx, [bp+arg_2]
cmp bx, 3
ja short loc_CB33
add bx, bx
jmp cs:off_CBD4[bx]
loc_CB1B:
mov si, 8
jmp short loc_CB23
; ---------------------------------------------------------------------------
loc_CB20:
mov si, 148h
loc_CB23:
mov di, 58h ; 'X'
jmp short loc_CB33
; ---------------------------------------------------------------------------
loc_CB28:
mov si, 8
jmp short loc_CB30
; ---------------------------------------------------------------------------
loc_CB2D:
mov si, 148h
loc_CB30:
mov di, 0E0h
loc_CB33:
mov [bp+var_2], 7
jmp short loc_CB74
; ---------------------------------------------------------------------------
loc_CB3A:
mov bx, [bp+arg_2]
cmp bx, 3
ja short loc_CB6F
add bx, bx
jmp cs:off_CBCC[bx]
loc_CB49:
mov si, 8
jmp short loc_CB51
; ---------------------------------------------------------------------------
loc_CB4E:
mov si, 148h
loc_CB51:
mov ax, [bp+arg_0]
shl ax, 4
add ax, 60h
jmp short loc_CB6D
; ---------------------------------------------------------------------------
loc_CB5C:
mov si, 8
jmp short loc_CB64
; ---------------------------------------------------------------------------
loc_CB61:
mov si, 148h
loc_CB64:
mov ax, [bp+arg_0]
shl ax, 4
add ax, 0E8h ; '<27>E
loc_CB6D:
mov di, ax
loc_CB6F:
mov [bp+var_2], 2
loc_CB74:
lea ax, [si+2]
push ax
lea ax, [di+2]
push ax
push 10h
mov ax, [bp+arg_0]
imul ax, 9
add ax, 5064h
push ds
push ax
push 0Eh
call graph_gaiji_puts
push si
push di
push 10h
mov ax, [bp+arg_0]
imul ax, 9
add ax, 5064h
push ds
push ax
push [bp+var_2]
call graph_gaiji_puts
lea ax, [si+96h]
push ax
push di
push [bp+arg_0]
call sub_CA1B
lea ax, [si+11Eh]
push ax
push di
mov bx, [bp+arg_0]
mov al, [bx+50B9h]
mov ah, 0
push ax
call sub_CAB0
pop di
pop si
leave
retn 4
sub_CB00 endp
; ---------------------------------------------------------------------------
off_CBCC dw offset loc_CB49
dw offset loc_CB4E
dw offset loc_CB5C
dw offset loc_CB61
off_CBD4 dw offset loc_CB1B
dw offset loc_CB20
dw offset loc_CB28
dw offset loc_CB2D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CBDC proc near
push bp
mov bp, sp
push si
push di
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
xor si, si
jmp short loc_CC27
; ---------------------------------------------------------------------------
loc_CC13:
push si
call sub_C9BE
xor di, di
jmp short loc_CC21
; ---------------------------------------------------------------------------
loc_CC1B:
push si
push di
call sub_CB00
inc di
loc_CC21:
cmp di, 5
jl short loc_CC1B
inc si
loc_CC27:
cmp si, 4
jl short loc_CC13
push 1F00178h
mov al, byte_14101
mov ah, 0
add ax, ax
add ax, 14h
push ax
call super_put
push 2300178h
mov al, byte_14101
mov ah, 0
add ax, ax
add ax, 15h
push ax
call super_put
pop di
pop si
pop bp
retn
sub_CBDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CC5C proc near
push bp
mov bp, sp
kajacall KAJA_SONG_STOP
call snd_load pascal, ds, offset aName, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
kajacall KAJA_SONG_FADE, -128
push 1
call palette_black_out
les bx, dword_11DCC
mov al, es:[bx+11h]
mov byte_14101, al
call pi_slot_load pascal, 0, ds, offset aHi01_pi
loc_CC9F:
call sub_CBDC
push 1
call palette_black_in
loc_CCA9:
call _input_reset_sense_held
push 1
call frame_delay
test _input.hi, high INPUT_OK
jnz short loc_CD17
test _input.lo, low INPUT_SHOT
jnz short loc_CD17
test _input.hi, high INPUT_CANCEL
jnz short loc_CD17
test _input.hi, high INPUT_OK
jnz short loc_CD17
test _input.lo, low INPUT_LEFT
jz short loc_CCF8
cmp byte_14101, 0
jz short loc_CCF8
dec byte_14101
mov PaletteTone, 0
call far ptr palette_show
call sub_CBDC
push 1
call palette_black_in
loc_CCF8:
test _input.lo, low INPUT_RIGHT
jz short loc_CCA9
cmp byte_14101, 4
jnb short loc_CCA9
inc byte_14101
mov PaletteTone, 0
call far ptr palette_show
jmp short loc_CC9F
; ---------------------------------------------------------------------------
loc_CD17:
kajacall KAJA_SONG_FADE, 1
push 1
call palette_black_out
call pi_slot_free pascal, 0
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aOp1_pi_1
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
push 1
call palette_black_in
loc_CD64:
call _input_reset_sense_held
push 1
call frame_delay
cmp _input, INPUT_NONE
jnz short loc_CD64
kajacall KAJA_SONG_STOP
call snd_load pascal, ds, offset aOp_1, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
pop bp
retn
sub_CC5C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CD94 proc near
push bp
mov bp, sp
push si
mov byte_14116, 0
xor si, si
jmp short loc_CE0E
; ---------------------------------------------------------------------------
loc_CDA1:
mov byte_14101, 0
jmp short loc_CE06
; ---------------------------------------------------------------------------
loc_CDA8:
push si
call sub_C9BE
or al, al
jnz short loc_CE0D
mov bx, si
imul bx, 5
mov al, byte_14101
mov ah, 0
add bx, ax
mov al, byte_1409E
mov [bx+5122h], al
mov bx, si
imul bx, 5
mov al, byte_14101
mov ah, 0
add bx, ax
cmp byte ptr [bx+5122h], 80h
jz short loc_CDE7
mov bx, si
imul bx, 5
mov al, byte_14101
mov ah, 0
add bx, ax
mov byte ptr [bx+5122h], 0
loc_CDE7:
cmp byte_14101, 4
jnb short loc_CE02
mov bx, si
imul bx, 5
mov al, byte_14101
mov ah, 0
add bx, ax
mov al, [bx+5122h]
or byte_14116, al
loc_CE02:
inc byte_14101
loc_CE06:
cmp byte_14101, 5
jb short loc_CDA8
loc_CE0D:
inc si
loc_CE0E:
cmp si, 4
jl short loc_CDA1
les bx, dword_11DCC
mov al, es:[bx+11h]
mov byte_14101, al
push ds
push offset aScnum_bft ; "scnum.bft"
call super_entry_bfnt
push ds
push offset aHi_m_bft ; "hi_m.bft"
call super_entry_bfnt
xor si, si
jmp short loc_CE5D
; ---------------------------------------------------------------------------
loc_CE34:
mov bx, si
imul bx, 5
mov al, [bx+5122h]
mov bx, si
imul bx, 5
or al, [bx+5123h]
mov bx, si
imul bx, 5
or al, [bx+5124h]
mov bx, si
imul bx, 5
or al, [bx+5125h]
mov [si+513Fh], al
inc si
loc_CE5D:
cmp si, 4
jl short loc_CE34
pop si
pop bp
retn
sub_CD94 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CE65 proc near
var_6 = dword ptr -6
var_2 = word ptr -2
arg_0 = byte ptr 4
enter 6, 0
push si
push di
mov al, [bp+arg_0]
mov ah, 0
mov bx, ax
cmp bx, 3
ja short loc_CE90
add bx, bx
jmp cs:off_CEF7[bx]
loc_CE7E:
mov si, 0F02h
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE83:
mov si, 0F22h
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE88:
mov si, 4614h
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE8D:
mov si, 4632h
loc_CE90:
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
mov [bp+var_6], 0AAAAAAAAh
xor di, di
jmp short loc_CEE5
; ---------------------------------------------------------------------------
loc_CEA7:
test di, 1
jnz short loc_CEB5
mov eax, 0AAAAAAAAh
jmp short loc_CEBB
; ---------------------------------------------------------------------------
loc_CEB5:
mov eax, 55555555h
loc_CEBB:
mov [bp+var_6], eax
mov [bp+var_2], 0
jmp short loc_CEDB
; ---------------------------------------------------------------------------
loc_CEC6:
les bx, _VRAM_PLANE_B
add bx, si
mov eax, [bp+var_6]
mov es:[bx], eax
add [bp+var_2], 4
add si, 4
loc_CEDB:
cmp [bp+var_2], 1Ch
jl short loc_CEC6
inc di
add si, 34h ; '4'
loc_CEE5:
cmp di, 0A0h
jl short loc_CEA7
GRCG_OFF_CLOBBERING dx
pop di
pop si
leave
retn 2
sub_CE65 endp
; ---------------------------------------------------------------------------
off_CEF7 dw offset loc_CE7E
dw offset loc_CE83
dw offset loc_CE88
dw offset loc_CE8D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CEFF proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
enter 4, 0
push si
push di
mov al, byte ptr word_14118
mov ah, 0
mov bx, ax
cmp bx, 3
ja short loc_CF59
add bx, bx
jmp cs:off_D08D[bx]
loc_CF18:
mov si, 10h
mov di, 30h ; '0'
mov [bp+var_2], 0B0h ; '<27>'
mov [bp+var_4], 0C0h
jmp short loc_CF59
; ---------------------------------------------------------------------------
loc_CF2A:
mov si, 110h
mov di, 30h ; '0'
mov [bp+var_2], 1B0h
mov [bp+var_4], 0C0h
jmp short loc_CF59
; ---------------------------------------------------------------------------
loc_CF3C:
mov si, 0A0h
mov di, 0E0h
mov [bp+var_2], 140h
jmp short loc_CF54
; ---------------------------------------------------------------------------
loc_CF49:
mov si, 190h
mov di, 0E0h
mov [bp+var_2], 230h
loc_CF54:
mov [bp+var_4], 170h
loc_CF59:
cmp [bp+arg_0], 0
jnz loc_D012
mov al, byte ptr word_14118
mov ah, 0
mov bx, ax
cmp byte ptr [bx+5143h], 0
jz short loc_CF82
lea ax, [si-8]
push ax
lea ax, [di-8]
push ax
mov al, byte ptr word_14118
mov ah, 0
add ax, 40
push ax
jmp short loc_CF8C
; ---------------------------------------------------------------------------
loc_CF82:
lea ax, [si-8]
push ax
lea ax, [di-8]
push ax
push 45
loc_CF8C:
call _cdg_put_noalpha
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
lea ax, [si+0D8h]
mov bx, 8
cwd
idiv bx
push ax
push di
lea ax, [si+0DFh]
cwd
idiv bx
push ax
lea ax, [di+97h]
push ax
call grcg_byteboxfill_x
mov ax, si
mov bx, 8
cwd
idiv bx
push ax
lea ax, [di+98h]
push ax
lea ax, [si+0DFh]
cwd
idiv bx
push ax
lea ax, [di+9Fh]
push ax
call grcg_byteboxfill_x
GRCG_OFF_CLOBBERING dx
mov al, byte ptr word_14118
mov ah, 0
imul ax, 5
mov dl, byte_1411A
mov dh, 0
add ax, dx
mov bx, ax
cmp byte ptr [bx+5122h], 0
jz loc_D086
mov ax, [bp+var_2]
add ax, 0FFF8h
push ax
mov ax, [bp+var_4]
add ax, 0FFF8h
push ax
push 44
call _cdg_put
jmp short loc_D086
; ---------------------------------------------------------------------------
loc_D012:
lea ax, [si-8]
push ax
lea ax, [di-8]
push ax
push 0E00008h
call sub_DB3C
lea ax, [si-8]
push ax
push di
push 800A0h
call sub_DB3C
mov al, byte ptr word_14118
mov ah, 0
mov bx, ax
cmp byte ptr [bx+5143h], 0
jz short loc_D050
push si
push di
mov al, byte ptr word_14118
mov ah, 0
add ax, 28h ; '('
push ax
jmp short loc_D054
; ---------------------------------------------------------------------------
loc_D050:
push si
push di
push 45
loc_D054:
call _cdg_put_noalpha
mov al, byte ptr word_14118
mov ah, 0
imul ax, 5
mov dl, byte_1411A
mov dh, 0
add ax, dx
mov bx, ax
cmp byte ptr [bx+5122h], 0
jz short loc_D07F
call _cdg_put pascal, [bp+var_2], [bp+var_4], 44
loc_D07F:
push word_14118
call sub_CE65
loc_D086:
pop di
pop si
leave
retn 2
sub_CEFF endp
; ---------------------------------------------------------------------------
db 0
off_D08D dw offset loc_CF18
dw offset loc_CF2A
dw offset loc_CF3C
dw offset loc_CF49
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D095 proc near
var_2 = word ptr -2
enter 2, 0
push si
mov al, byte ptr word_14118
mov ah, 0
mov [bp+var_2], ax
mov PaletteTone, 0
call far ptr palette_show
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call pi_slot_load pascal, 0, ds, offset aSlb1_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
push 0
call graph_copy_page
call sub_D688
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
mov dx, 0A4h
mov al, 0
out dx, al
xor si, si
mov byte ptr word_14118, 0
jmp short loc_D111
; ---------------------------------------------------------------------------
loc_D0F7:
mov al, byte ptr word_14118
mov ah, 0
cmp ax, [bp+var_2]
jz short loc_D106
mov ax, 1
jmp short loc_D108
; ---------------------------------------------------------------------------
loc_D106:
xor ax, ax
loc_D108:
push ax
call sub_CEFF
inc si
inc byte ptr word_14118
loc_D111:
cmp si, 4
jl short loc_D0F7
mov al, byte ptr [bp+var_2]
mov byte ptr word_14118, al
push 0
call graph_copy_page
push 1
call palette_black_in
pop si
leave
retn
sub_D095 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D12D proc near
var_4 = word ptr -4
var_1 = byte ptr -1
enter 4, 0
mov [bp+var_4], 0
jmp short loc_D146
; ---------------------------------------------------------------------------
loc_D138:
mov bx, [bp+var_4]
mov al, [bx+513Fh]
mov [bx+5143h], al
inc [bp+var_4]
loc_D146:
cmp [bp+var_4], 4
jl short loc_D138
les bx, dword_11DCC
cmp byte ptr es:[bx+13h], 6
jnz short loc_D18A
mov byte_1411A, 4
mov byte ptr word_14118, 0FFh
mov [bp+var_4], 0
jmp short loc_D182
; ---------------------------------------------------------------------------
loc_D168:
cmp byte ptr word_14118, 0FFh
jnz short loc_D17F
mov bx, [bp+var_4]
cmp byte ptr [bx+5143h], 0
jz short loc_D17F
mov al, byte ptr [bp+var_4]
mov byte ptr word_14118, al
loc_D17F:
inc [bp+var_4]
loc_D182:
cmp [bp+var_4], 4
jl short loc_D168
jmp short loc_D1B2
; ---------------------------------------------------------------------------
loc_D18A:
mov [bp+var_4], 0
jmp short loc_D19C
; ---------------------------------------------------------------------------
loc_D191:
mov bx, [bp+var_4]
mov byte ptr [bx+5143h], 1
inc [bp+var_4]
loc_D19C:
cmp [bp+var_4], 4
jl short loc_D191
les bx, dword_11DCC
mov al, es:[bx+11h]
mov byte_1411A, al
mov byte ptr word_14118, 0
loc_D1B2:
call sub_D095
loc_D1B5:
call _input_reset_sense_held
cmp [bp+var_1], 0
jnz loc_D2EC
test _input.lo, low INPUT_LEFT
jnz short loc_D1D0
test _input.lo, low INPUT_RIGHT
jz short loc_D223
loc_D1D0:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 1
call sub_CEFF
xor byte ptr word_14118, 1
push 0
call sub_CEFF
mov vsync_Count1, 0
push 1
call frame_delay
mov dx, 0A4h
mov al, 1
out dx, al
push 0
call graph_copy_page
mov vsync_Count1, 0
push 1
call frame_delay
mov dx, 0A4h
mov al, 0
out dx, al
loc_D223:
test _input.lo, low INPUT_UP
jnz short loc_D231
test _input.lo, low INPUT_DOWN
jz short loc_D284
loc_D231:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 1
call sub_CEFF
xor byte ptr word_14118, 2
push 0
call sub_CEFF
mov vsync_Count1, 0
push 1
call frame_delay
mov dx, 0A4h
mov al, 1
out dx, al
push 0
call graph_copy_page
mov vsync_Count1, 0
push 1
call frame_delay
mov dx, 0A4h
mov al, 0
out dx, al
loc_D284:
test _input.hi, high INPUT_OK
jnz short loc_D292
test _input.lo, low INPUT_SHOT
jz short loc_D2CC
loc_D292:
mov al, byte ptr word_14118
mov ah, 0
mov bx, ax
cmp byte ptr [bx+5143h], 0
jz short loc_D2CC
call snd_se_reset
call snd_se_play pascal, 11
call snd_se_update
les bx, dword_11DCC
mov al, byte ptr word_14118
mov es:[bx+14h], al
push 1
call palette_black_out
call sub_D726
xor ax, ax
leave
retn
; ---------------------------------------------------------------------------
loc_D2CC:
test _input.hi, high INPUT_CANCEL
jz short loc_D2E4
push 1
call palette_black_out
call sub_D726
mov ax, 1
leave
retn
; ---------------------------------------------------------------------------
loc_D2E4:
mov al, byte ptr _input
mov [bp+var_1], al
jmp short loc_D2F7
; ---------------------------------------------------------------------------
loc_D2EC:
cmp _input, INPUT_NONE
jnz short loc_D2F7
mov [bp+var_1], 0
loc_D2F7:
push 1
call frame_delay
jmp loc_D1B5
; ---------------------------------------------------------------------------
leave
retn
sub_D12D endp
; ---------------------------------------------------------------------------
db 0
op_01_TEXT ends
; ===========================================================================
; Segment type: Pure code
op_02_TEXT segment word public 'CODE' use16
assume cs:op_02_TEXT
; org 4
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
include th03/formats/hfliplut.asm
include th04/snd/pmd_res.asm
include th02/snd/mmd_res.asm
include th04/snd/detmodes.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D41C proc far
push bp
mov bp, sp
nopcall sub_D7EC
call key_beep_on
call text_systemline_show
call text_cursor_show
pop bp
retf
sub_D41C endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D436 proc far
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
push bp
mov bp, sp
push si
push di
push ds
mov dx, [bp+arg_4]
GRCG_NOINT_SETMODE_VIA_MOV al, GC_RMW
GRCG_SETCOLOR_DIRECT dx
mov ax, 0A800h
mov es, ax
assume es:nothing
mov dx, [bp+arg_6]
shl dx, 6
mov di, dx
shr dx, 2
add di, dx
mov cx, [bp+arg_8]
mov al, 0Bh
out 68h, al
mov bx, word_F9BE
add bx, bx
cmp bx, 8
jb short loc_D492
cmp bx, 10h
jnb short loc_D492
mov ax, [bx+9AEh]
mov word ptr cs:loc_D58A+3, ax
mov bx, 8
loc_D492:
mov ax, [bx+9A2h]
mov word ptr cs:loc_D4F4+1, ax
mov ax, [bx+9ACh]
mov word ptr cs:loc_D546+1, ax
mov ax, word_F9C0
mov word ptr cs:loc_D513+1, ax
mov word ptr cs:loc_D55A+1, ax
push ds
pop fs
assume fs:_DATA
lds si, [bp+arg_0]
lodsb
or al, al
jz short loc_D51F
loc_D4B8:
mov dx, cx
shr dx, 3
add di, dx
and cx, 7
mov ah, 9
test al, 0E0h
jns short loc_D531
jp short loc_D52E
mov ah, al
lodsb
shl ah, 1
cmp al, 9Fh
jnb short loc_D4D8
cmp al, 80h
adc ax, 0FEDFh
loc_D4D8:
sbb al, 0FEh
and ax, 7F7Fh
out 0A1h, al
mov al, ah
out 0A3h, al
nop
loc_D4E4:
mov al, ch
or al, 20h
out 0A5h, al
in al, 0A9h
mov ah, al
mov al, ch
out 0A5h, al
in al, 0A9h
loc_D4F4:
call sub_D56F
mov bh, al
mov bl, 0
shr ax, cl
shr bx, cl
xchg ah, al
stosw
mov es:[di], bl
add di, 4Eh ; 'N'
inc ch
cmp ch, 10h
jb short loc_D4E4
sub di, 500h
loc_D513:
mov dx, 1234h
loc_D516:
xor ch, ch
add cx, dx
lodsb
or al, al
jnz short loc_D4B8
loc_D51F:
mov al, 0Ah
out 68h, al
GRCG_OFF_VIA_XOR al
pop ds
pop di
pop si
pop bp
retf 0Ah
; ---------------------------------------------------------------------------
loc_D52E:
add ax, 80h
loc_D531:
cmp al, 20h ; ' '
jz short loc_D55A
out 0A1h, al
mov al, ah
out 0A3h, al
nop
loc_D53C:
mov al, ch
or al, 20h
out 0A5h, al
in al, 0A9h
xor ah, ah
loc_D546:
call sub_D56F
ror ax, cl
stosw
add di, 4Eh ; 'N'
inc ch
cmp ch, 10h
jb short loc_D53C
sub di, 500h
loc_D55A:
mov dx, 1234h
shr dx, 1
jmp short loc_D516
sub_D436 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D562 proc near
mov dx, ax
add dx, dx
or ax, dx
retn
sub_D562 endp
; ---------------------------------------------------------------------------
mov dx, ax
shl dx, 1
or ax, dx
; =============== S U B R O U T I N E =======================================
sub_D56F proc near
mov dx, ax
mov bp, ax
add bp, bp
or ax, bp
xor dx, ax
add dx, dx
not dx
and ax, dx
retn
sub_D56F endp
; =============== S U B R O U T I N E =======================================
sub_D580 proc near
call sub_D56F
mov bl, ch
and bx, 3
add bx, bx
loc_D58A:
and ax, fs:[bx+1234h]
retn
sub_D580 endp
include th04/formats/cdg_put_noalpha.asm
include th04/snd/se.asm
; =============== S U B R O U T I N E =======================================
sub_D688 proc far
push si
push di
cmp word_F9C4, 0
jnz short loc_D6BD
push 7D00h
call hmem_allocbyte
mov word_F9C4, ax
push 7D00h
call hmem_allocbyte
mov word_F9C6, ax
push 7D00h
call hmem_allocbyte
mov word_F9C8, ax
push 7D00h
call hmem_allocbyte
mov word_F9CA, ax
loc_D6BD:
mov dl, 4
push ds
push 0E000h
push word_F9CA
push 0B800h
push word_F9C8
push 0B000h
push word_F9C6
push 0A800h
push word_F9C4
loc_D6DC:
pop es
pop ds
xor si, si
xor di, di
mov cx, 1F40h
rep movsd
dec dl
jnz short loc_D6DC
pop ds
pop di
pop si
retf
sub_D688 endp
; =============== S U B R O U T I N E =======================================
sub_D6F0 proc far
push si
push di
mov dl, 4
push ds
push 0E000h
push word_F9CA
push 0B800h
push word_F9C8
push 0B000h
push word_F9C6
push 0A800h
push word_F9C4
loc_D711:
pop ds
pop es
xor si, si
xor di, di
mov cx, 1F40h
rep movsd
dec dl
jnz short loc_D711
pop ds
pop di
pop si
retf
sub_D6F0 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_D726 proc far
cmp word_F9C4, 0
jz short locret_D757
push word_F9C4
call hmem_free
push word_F9C6
call hmem_free
push word_F9C8
call hmem_free
push word_F9CA
call hmem_free
mov word_F9C4, 0
locret_D757:
retf
sub_D726 endp
include th04/formats/cdg_put.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D7EC proc far
push bp
mov bp, sp
call pfend
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call mem_unassign
call vsync_end
call text_clear
call js_end
call egc_start
call bgm_finish
pop bp
retf
sub_D7EC endp
include th04/math/vector1_at.asm
include th04/math/vector2_at.asm
; =============== S U B R O U T I N E =======================================
sub_D894 proc far
push si
push di
GRCG_SETMODE_VIA_MOV al, GC_RMW
mov ax, 0A800h
mov es, ax
assume es:nothing
mov di, 1400h
call sub_DA30
mov di, 19A0h
call sub_DA30
mov di, 1F40h
call sub_DA30
mov di, 24E0h
call sub_DA30
mov di, 2A80h
call sub_DA30
mov di, 3020h
call sub_DA30
mov ah, GC_RI
call _grcg_setcolor_direct_noint_1
mov al, 0
mov di, 156Ch
call sub_DB0D
mov al, 1
mov di, 156Dh
call sub_DB0D
mov al, 2
mov di, 156Eh
call sub_DB0D
mov al, 0
mov di, 1B0Ch
call sub_DB0D
mov al, 1
mov di, 1B0Dh
call sub_DB0D
mov al, 3
mov di, 1B0Eh
call sub_DB0D
mov al, 0
mov di, 20ACh
call sub_DB0D
mov al, 1
mov di, 20ADh
call sub_DB0D
mov al, 4
mov di, 20AEh
call sub_DB0D
mov al, 0
mov di, 264Ch
call sub_DB0D
mov al, 1
mov di, 264Dh
call sub_DB0D
mov al, 5
mov di, 264Eh
call sub_DB0D
mov al, 0
mov di, 2BECh
call sub_DB0D
mov al, 1
mov di, 2BEDh
call sub_DB0D
mov al, 6
mov di, 2BEEh
call sub_DB0D
mov al, 7
mov di, 318Ch
call sub_DB0D
mov al, 7
mov di, 318Dh
call sub_DB0D
mov al, 8
mov di, 318Eh
call sub_DB0D
GRCG_OFF_VIA_XOR al
push ds
mov ah, PMD_GET_WORKAREA_ADDRESS
int 60h
mov ax, ds
pop ds
mov word ptr dword_1281A, dx
mov word ptr dword_1281A+2, ax
pop di
pop si
retf
sub_D894 endp
; =============== S U B R O U T I N E =======================================
sub_D96E proc far
push si
push di
push ds
push ds
pop fs
GRCG_SETMODE_VIA_MOV al, GC_RMW
mov ax, 0A800h
mov es, ax
mov di, 3020h
call sub_DA30
lds bx, dword_1281A
mov di, 1400h
mov si, 0
call sub_D9E2
add bx, 2
mov di, 19A0h
mov si, 1
call sub_D9E2
add bx, 2
mov di, 1F40h
mov si, 2
call sub_D9E2
add bx, 2
mov di, 24E0h
mov si, 3
call sub_D9E2
add bx, 2
mov di, 2A80h
mov si, 4
call sub_D9E2
mov ah, GC_RI
call _grcg_setcolor_direct_noint_1
mov di, 3020h
add bx, 4
call sub_DA12
call near ptr sub_DA6B
add bx, 2
call sub_DA12
call near ptr sub_DA6B
GRCG_OFF_VIA_XOR al
pop ds
pop di
pop si
retf
sub_D96E endp
; =============== S U B R O U T I N E =======================================
sub_D9E2 proc near
call sub_DA12
push ds
push fs
pop ds
cmp al, [si+382Ah]
jnz short loc_D9F5
cmp al, [si+3832h]
jz short loc_DA10
loc_D9F5:
mov ah, [si+382Ah]
mov [si+3832h], ah
mov [si+382Ah], al
call sub_DA30
mov ah, GC_RI
call _grcg_setcolor_direct_noint_1
mov al, [si+382Ah]
call near ptr sub_DA6B
loc_DA10:
pop ds
retn
sub_D9E2 endp
; =============== S U B R O U T I N E =======================================
sub_DA12 proc near
push bx
mov bx, [bx]
mov ax, [bx+4]
cmp ah, 4
jbe short loc_DA1F
mov ah, 4
loc_DA1F:
cmp al, ah
jbe short loc_DA2C
cmp al, 1
jbe short loc_DA2C
mov al, [bx+55h]
jmp short loc_DA2E
; ---------------------------------------------------------------------------
loc_DA2C:
mov al, 0FFh
loc_DA2E:
pop bx
retn
sub_DA12 endp
; =============== S U B R O U T I N E =======================================
sub_DA30 proc near
push di
push si
mov ah, GC_GI
call _grcg_setcolor_direct_noint_1
add di, 30h ; '0'
mov ax, 0EEEEh
mov dl, 0Fh
loc_DA3F:
mov cx, 0Eh
rep stosw
add di, 34h ; '4'
dec dl
jnz short loc_DA3F
mov ah, GC_RGI
call _grcg_setcolor_direct_noint_1
mov si, 9EEh
sub di, 4B0h
mov dl, 9
loc_DA59:
mov cx, 0Eh
rep movsw
sub si, 1Ch
add di, 34h ; '4'
dec dl
jnz short loc_DA59
pop si
pop di
retn
sub_DA30 endp
; =============== S U B R O U T I N E =======================================
sub_DA6B proc far
cmp al, 0FFh
jnz short loc_DA70
retn
; ---------------------------------------------------------------------------
loc_DA70:
push bx
push di
mov ah, al
and ah, 0Fh
xor bh, bh
mov bl, ah
shr al, 4
mov dl, 1Ch
mul dl
mov dl, cs:[bx+801h]
add bx, bx
add ax, cs:[bx+7E9h]
mov cx, ax
shr ax, 3
add di, ax
and cl, 7
jmp cs:off_DAD1[bx]
loc_DA9D:
shr dl, cl
mov al, cl
mov cx, 9
loc_DAA4:
mov es:[di], dl
add di, 50h ; 'P'
loop loc_DAA4
mov cl, al
mov al, 0E0h
shr al, cl
mov cx, 6
loc_DAB5:
mov es:[di], al
add di, 50h ; 'P'
loop loc_DAB5
jmp short loc_DACE
; ---------------------------------------------------------------------------
loc_DABF:
xor dh, dh
ror dx, cl
mov cx, 8
loc_DAC6:
mov es:[di], dx
add di, 50h ; 'P'
loop loc_DAC6
loc_DACE:
pop di
pop bx
retn
sub_DA6B endp
; ---------------------------------------------------------------------------
off_DAD1 dw offset loc_DA9D
dw offset loc_DABF
dw offset loc_DA9D
dw offset loc_DABF
dw offset loc_DA9D
dw offset loc_DA9D
dw offset loc_DABF
dw offset loc_DA9D
dw offset loc_DABF
dw offset loc_DA9D
dw offset loc_DABF
dw offset loc_DA9D
dw 180h
dw 182h
dw 184h
dw 186h
dw 188h
dw 18Ch
dw 18Eh
dw 190h
dw 192h
dw 194h
dw 196h
dw 198h
dw 0C0C0h
dw 0C040h
dw 0C060h
dw 40C0h
dw 40C0h
dw 60C0h
; =============== S U B R O U T I N E =======================================
sub_DB0D proc near
xor ah, ah
shl al, 3
add ax, 0A0Ah
mov si, ax
mov cx, 8
loc_DB1A:
movsb
add di, 4Fh ; 'O'
loop loc_DB1A
retn
sub_DB0D endp
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DB3C proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push di
push si
push ds
cld
mov ax, [bp+arg_6]
mov dx, [bp+arg_4]
mov bx, ax
sar bx, 4
shl bx, 1
shl dx, 6
add bx, dx
shr dx, 2
add bx, dx
mov word ptr cs:loc_DBA1+1, bx
and ax, 0Fh
mov cx, ax
add ax, [bp+arg_2]
shr ax, 4
or cx, cx
jz short loc_DB6F
inc ax
loc_DB6F:
mov word ptr cs:loc_DBA6+1, ax
jmp short $+2
mov cx, 28h ; '('
sub cx, ax
shl cx, 1
mov ax, [bp+arg_0]
mov bp, cx
push 0E000h
push word_F9CA
push 0B800h
push word_F9C8
push 0B000h
push word_F9C6
push 0A800h
push word_F9C4
mov dl, 4
loc_DB9F:
mov bx, ax
loc_DBA1:
mov di, 1234h
pop ds
assume es:nothing
pop es
loc_DBA6:
mov cx, 1234h
mov si, di
rep movsw
add di, bp
dec bx
jnz short loc_DBA6
dec dl
jnz short loc_DB9F
pop ds
pop si
pop di
pop bp
retf 8
sub_DB3C endp
; ---------------------------------------------------------------------------
nop
include th05/snd/load.asm
include th05/snd/kajaint.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DC94 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_2]
mov di, si
shl si, 2
les si, [si+0A84h]
assume es:nothing
imul di, 48h
push [bp+arg_6]
push [bp+arg_4]
mov ax, [di+3866h]
push ax
shr ax, 1
push ax
mov di, [di+3868h]
mov ax, [bp+arg_0]
call sub_DD10
pop di
pop si
pop bp
retf 8
sub_DC94 endp
; ---------------------------------------------------------------------------
push bp
mov bp, sp
push si
push di
xor ax, ax
xor dx, dx
mov si, [bp+0Ah]
mov cl, [bp+8]
test cl, 1
jz short loc_DCDD
mov ax, 0A0h
loc_DCDD:
test cl, 2
jz short loc_DCE5
mov dx, 0FA0h
loc_DCE5:
shl si, 2
les si, [si+0A84h]
add si, ax
mov ax, es
add ax, dx
mov es, ax
assume es:nothing
mov di, 0C8h ; '<27>'
push word ptr [bp+0Eh]
push word ptr [bp+0Ch]
push 140h
push 140h
mov ax, [bp+6]
call sub_DD10
pop di
pop si
pop bp
retf 0Ah
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DD10 proc near
arg_0 = word ptr 2
arg_2 = word ptr 4
arg_4 = word ptr 6
arg_6 = word ptr 8
shl ax, 3
add ax, 0A64h
mov word_1282C, ax
mov bp, sp
mov dx, [bp+arg_6]
shr dx, 3
mov ax, [bp+arg_4]
shl ax, 6
add dx, ax
shr ax, 2
add dx, ax
mov word_12830, dx
mov word_1282E, 0
loc_DD38:
push es
call graph_pack_put_8_noclip pascal, 0, 400, es, si, [bp+arg_2]
push ds
push di
push si
mov di, word_12830
add word_12830, 50h ; 'P'
cmp word_12830, 7D00h
jb short loc_DD62
sub word_12830, 7D00h
loc_DD62:
call sub_DD97
mov ax, 0A800h
mov es, ax
assume es:nothing
mov ds, ax
assume ds:nothing
mov si, 7D00h
mov cx, [bp+arg_2]
shr cx, 4
rep movsw
call egc_off
pop si
pop di
pop ds
assume ds:_DATA
pop es
assume es:nothing
add si, [bp+arg_0]
mov ax, si
shr ax, 4
mov dx, es
add dx, ax
mov es, dx
and si, 0Fh
dec di
jnz short loc_DD38
retn 8
sub_DD10 endp
; =============== S U B R O U T I N E =======================================
sub_DD97 proc near
call egc_on
mov ax, 0FFF0h
mov dx, 4A0h
out dx, ax
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0
mov dx, 4ACh
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
mov bx, word_1282C
mov ax, word_1282E
and ax, 3
shl ax, 1
add bx, ax
mov ax, [bx]
mov dx, 4A8h
out dx, ax
inc word_1282E
retn
sub_DD97 endp
include th05/formats/pi_slot_load.asm
include th05/formats/pi_slot_put.asm
include th05/formats/pi_slot_palette_apply.asm
include th05/formats/pi_slot_free.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DF12 proc far
arg_0 = dword ptr 6
push bp
mov bp, sp
push word_F9CC
call mem_assign_dos
or ax, ax
jz short loc_DF27
mov ax, 1
pop bp
retf
; ---------------------------------------------------------------------------
loc_DF27:
call graph_start
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
call graph_clear
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
mov bbufsiz, 2000h
call vsync_start
call key_beep_off
call text_systemline_hide
call text_cursor_hide
call egc_start
call js_start
les bx, [bp+arg_0]
assume es:nothing
cmp byte ptr es:[bx], 0
jz short loc_DF82
push word ptr [bp+arg_0+2]
push bx
call pfstart
loc_DF82:
push 400h
call bgm_init
xor ax, ax
pop bp
retf
sub_DF12 endp
include th04/hardware/input_sense.asm
include th05/hardware/input_held.asm
include th05/hardware/input_wait.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E0CE proc far
push bp
mov bp, sp
cmp _snd_bgm_mode, SND_BGM_OFF
jnz short loc_E0DD
mov ax, 0FFFFh
pop bp
retf
; ---------------------------------------------------------------------------
loc_E0DD:
mov ah, KAJA_GET_SONG_MEASURE
cmp _snd_bgm_mode, SND_BGM_MIDI
jz short loc_E0EA
int 60h ; - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
; BX = handle
; Return: CF set on error, DH = error code
; CF clear if successful
jmp short loc_E0EF
; ---------------------------------------------------------------------------
loc_E0EA:
mov dx, 0C0h
int 61h ; reserved for user interrupt
loc_E0EF:
pop bp
retf
sub_E0CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E0F1 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
push si
loc_E0F5:
call sub_E0CE
mov si, ax
or si, si
jge short loc_E109
push [bp+arg_0]
nopcall frame_delay
jmp short loc_E10E
; ---------------------------------------------------------------------------
loc_E109:
cmp si, [bp+arg_2]
jl short loc_E0F5
loc_E10E:
pop si
pop bp
retf 4
sub_E0F1 endp
; ---------------------------------------------------------------------------
db 0
include th04/formats/cdg_put_nocolors.asm
include th05/hardware/frame_delay.asm
db 0
include th04/formats/cdg_load.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E2D8 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push di
call sub_E354
mov dx, 4A4h
mov ax, 29F0h
out dx, ax
mov ax, [bp+arg_6]
mov dx, [bp+arg_4]
mov bx, ax
sar bx, 4
shl bx, 1
shl dx, 6
add bx, dx
shr dx, 2
add bx, dx
mov di, bx
and ax, 0Fh
mov cx, ax
add ax, [bp+arg_2]
shr ax, 4
or cx, cx
jz short loc_E30F
inc ax
loc_E30F:
mov word_12EFE, ax
mov cx, 28h ; '('
sub cx, ax
shl cx, 1
mov bx, [bp+arg_0]
mov bp, cx
mov ax, 0A800h
mov es, ax
assume es:nothing
loc_E323:
mov cx, word_12EFE
loc_E327:
or di, di
js short loc_E33F
cmp di, 7D00h
jnb short loc_E33F
mov al, 1
out 0A6h, al
mov dx, es:[di]
xor ax, ax
out 0A6h, al
mov es:[di], dx
loc_E33F:
add di, 2
loop loc_E327
add di, bp
dec bx
jns short loc_E323
call egc_off
pop di
pop bp
retf 8
sub_E2D8 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_E354 proc near
push es
push 0
pop es
pushf
cli
GRCG_SETMODE_VIA_MOV al, GC_TDW
mov es:[495h], al
popf
pop es
assume es:nothing
mov al, 7
out 6Ah, al ; PC-98 GDC (6a):
;
mov al, 5
out 6Ah, al ; PC-98 GDC (6a):
;
mov al, 6
out 6Ah, al ; PC-98 GDC (6a):
;
mov dx, 4A0h
mov ax, 0FFF0h
out dx, ax
mov dx, 4A2h
mov ax, 0FFh
out dx, ax
mov dx, 4A8h
mov ax, 0FFFFh
out dx, ax
mov dx, 4ACh
sub ax, ax
out dx, ax
mov dx, 4AEh
mov ax, 0Fh
out dx, ax
retn
sub_E354 endp
align 2
op_02_TEXT ends
.data
db 0
byte_F071 db 0
byte_F072 db 0
byte_F073 db 1
MENU_DESC dd aMENU_START ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>"
dd aMENU_START_EXTRA ; "<22>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD><57><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>"
dd aMENU_HISCORE ; "<22><><EFBFBD>݂̃n<CC83>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>\\<5C><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>"
dd aMENU_MUSICROOM ; "<22><><EFBFBD>y<EFBFBD><79><EFBFBD>ɓ<EFBFBD><C993><EFBFBD><EFBFBD>܂<EFBFBD>"
dd aMENU_OPTION ; "<22>e<EFBFBD><65><EFBFBD>ݒ<EFBFBD><DD92><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD>"
dd aMENU_QUIT ; "<22>c<EFBFBD>n<EFBFBD>r<EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>"
dd aMENU_EASY ; "<22><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><E282B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@ <09>i<EFBFBD><69><EFBFBD>S<EFBFBD>Ҍ<EFBFBD>"...
dd aMENU_NORMAL ; "<22><><EFBFBD>Փx<D593><78><EFBFBD>W<EFBFBD><57><EFBFBD>ɂ<EFBFBD><C982>܂<EFBFBD><DC82>@<40>@<40>@ <20>i<EFBFBD><69><EFBFBD>ʌ<EFBFBD><CA8C>E...
dd aMENU_HARD ; "<22><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><EF82B5><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>@<40>@<40>i<EFBFBD>A<EFBFBD>[<5B>P<EFBFBD>[<5B>_<EFBFBD>E...
dd aMENU_LUNATIC ; "<22><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɓ<C993><EF82B5><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>i<EFBFBD>V<EFBFBD><56><EFBFBD>[<5B>^<5E>E...
dd aMENU_LIVES ; "<22>Q<EFBFBD>[<5B><><EFBFBD>X<EFBFBD>^<5E>[<5B>g<EFBFBD><67><EFBFBD>̐l<CC90><6C><EFBFBD><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>E...
dd aMENU_BOMBS ; "<22>{<7B><><EFBFBD>̎g<CC8E>p<EFBFBD>񐔂<EFBFBD><F1909482>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD>G<EFBFBD>L<EFBFBD>E...
dd aMENU_BGM_OFF ; "<22>a<EFBFBD>f<EFBFBD>l<EFBFBD>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>"
dd aMENU_BGM_26K ; "<22>a<EFBFBD>f<EFBFBD>l<EFBFBD>ɂQ<C982>U<EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD>݊<EFBFBD><DD8A><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>"
dd aMENU_BGM_86K ; "<22>a<EFBFBD>f<EFBFBD>l<EFBFBD>ɂW<C982>U<EFBFBD><55><EFBFBD><EFBFBD><EFBFBD>݊<EFBFBD><DD8A><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>"
dd aMENU_SFX_OFF ; "<22><><EFBFBD>ʉ<EFBFBD><CA89>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>"
dd aMENU_SFX_FM ; "<22><><EFBFBD>ʉ<EFBFBD><CA89>ɂe<C982>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>"
dd aMENU_SFX_BEEP ; "<22><><EFBFBD>ʉ<EFBFBD><CA89>ɂa<C982><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>"
dd aMENU_SLOW ; "<22>G<EFBFBD>e<EFBFBD>̑<EFBFBD><CC91><EFBFBD><EFBFBD><EFBFBD>ŁA<C581><EFBFBD>Ə<EFBFBD><C68F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD>X<EFBFBD><58><EFBFBD>E...
dd aMENU_TURBO ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>V<EFBFBD><56><EFBFBD>̃X<CC83>s<EFBFBD>[<5B>h<EFBFBD>ɔC<C994><43><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>E...
dd aMENU_RESET ; "<22><><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>ĕW<C495><57><EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>"
dd aMENU_OPTION_QUIT ; "<22>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>"
dd aMENU_START_EASY ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>C<EFBFBD>[<5B>W<EFBFBD>[<5B>j"
dd aMENU_START_NORMAL ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>m<EFBFBD>[<5B>}<7D><><EFBFBD>j"
dd aMENU_START_HARD ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>n<EFBFBD>[<5B>h<EFBFBD>j"
dd aMENU_START_LUNATIC ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N<EFBFBD>j"
byte_F0DC db 0
byte_F0DD db 0
; char aMain[]
aMain db 'main',0
; char path[]
path db 'deb',0
aMENU_START db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>',0
aMENU_START_EXTRA db '<27>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD><57><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>',0
aMENU_HISCORE db '<27><><EFBFBD>݂̃n<CC83>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>',0
aMENU_MUSICROOM db '<27><><EFBFBD>y<EFBFBD><79><EFBFBD>ɓ<EFBFBD><C993><EFBFBD><EFBFBD>܂<EFBFBD>',0
aMENU_OPTION db '<27>e<EFBFBD><65><EFBFBD>ݒ<EFBFBD><DD92><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD>',0
aMENU_QUIT db '<27>c<EFBFBD>n<EFBFBD>r<EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>',0
aMENU_EASY db '<27><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><E282B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@ <20>i<EFBFBD><69><EFBFBD>S<EFBFBD>Ҍ<EFBFBD><D28C><EFBFBD><EFBFBD>j<EFBFBD>@ ',0
aMENU_NORMAL db '<27><><EFBFBD>Փx<D593><78><EFBFBD>W<EFBFBD><57><EFBFBD>ɂ<EFBFBD><C982>܂<EFBFBD><DC82>@<40>@<40>@ <20>i<EFBFBD><69><EFBFBD>ʌ<EFBFBD><CA8C><EFBFBD><EFBFBD>j<EFBFBD>@<40>@',0
aMENU_HARD db '<27><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><EF82B5><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>@<40>@<40>i<EFBFBD>A<EFBFBD>[<5B>P<EFBFBD>[<5B>_<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>j',0
aMENU_LUNATIC db '<27><><EFBFBD>Փx<D593><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɓ<C993><EF82B5><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>i<EFBFBD>V<EFBFBD><56><EFBFBD>[<5B>^<5E>[<5B><><EFBFBD><EFBFBD><EFBFBD>j',0
aMENU_LIVES db '<27>Q<EFBFBD>[<5B><><EFBFBD>X<EFBFBD>^<5E>[<5B>g<EFBFBD><67><EFBFBD>̐l<CC90><6C><EFBFBD><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>j',0
aMENU_BOMBS db '<27>{<7B><><EFBFBD>̎g<CC8E>p<EFBFBD>񐔂<EFBFBD><F1909482>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>j',0
aMENU_BGM_OFF db '<27>a<EFBFBD>f<EFBFBD>l<EFBFBD>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aMENU_BGM_26K db '<27>a<EFBFBD>f<EFBFBD>l<EFBFBD>ɂQ<C982>U<EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD>݊<EFBFBD><DD8A><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
aMENU_BGM_86K db '<27>a<EFBFBD>f<EFBFBD>l<EFBFBD>ɂW<C982>U<EFBFBD><55><EFBFBD><EFBFBD><EFBFBD>݊<EFBFBD><DD8A><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
aMENU_SFX_OFF db '<27><><EFBFBD>ʉ<EFBFBD><CA89>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aMENU_SFX_FM db '<27><><EFBFBD>ʉ<EFBFBD><CA89>ɂe<C982>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
aMENU_SFX_BEEP db '<27><><EFBFBD>ʉ<EFBFBD><CA89>ɂa<C982><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
aMENU_SLOW db '<27>G<EFBFBD>e<EFBFBD>̑<EFBFBD><CC91><EFBFBD><EFBFBD><EFBFBD>ŁA<C581><EFBFBD>Ə<EFBFBD><C68F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD>X<EFBFBD><58><EFBFBD>[<5B>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD>S<EFBFBD>җp<D297>j',0
aMENU_TURBO db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>V<EFBFBD><56><EFBFBD>̃X<CC83>s<EFBFBD>[<5B>h<EFBFBD>ɔC<C994><43><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>W<EFBFBD><57><EFBFBD>j',0
aMENU_RESET db '<27><><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>ĕW<C495><57><EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>',0
aMENU_OPTION_QUIT db '<27>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>',0
aMENU_START_EASY db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>C<EFBFBD>[<5B>W<EFBFBD>[<5B>j',0
aMENU_START_NORMAL db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>m<EFBFBD>[<5B>}<7D><><EFBFBD>j',0
aMENU_START_HARD db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>n<EFBFBD>[<5B>h<EFBFBD>j',0
aMENU_START_LUNATIC db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD><69><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N<EFBFBD>j',0
aOp1_pi db 'op1.pi',0
aMiko db 'miko',0
aOp db 'op',0
aKaikidan1_dat0 db '<27><><EFBFBD>Y<EFBFBD>k1.dat',0
aNotEnoughMem db 0Ah
db '<27>󂫃<EFBFBD><F382AB83><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>ł<EFBFBD><C582>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󂫂𑝂₵<F0919D82>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>Ă<EFBFBD>',0Ah,0
db 0
include libs/master.lib/atrtcmod[data].asm
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/edges[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/get_machine_98[data].asm
include libs/master.lib/get_machine_at[data].asm
include libs/master.lib/grp[data].asm
include libs/master.lib/js[data].asm
include libs/master.lib/machine[data].asm
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
include libs/master.lib/wordmask[data].asm
include libs/master.lib/mem[data].asm
include libs/master.lib/super_entry_bfnt[data].asm
include libs/master.lib/superpa[data].asm
include libs/master.lib/respal_exist[data].asm
include libs/master.lib/draw_trapezoid[data].asm
include libs/master.lib/bgm_timerhook[data].asm
include libs/master.lib/bgm[data].asm
include th04/snd/se_priority[data].asm
db 71h ; q
db 0
db 6Bh ; k
db 0
db 78h ; x
db 0
db 72h ; r
db 0
db 89h
db 0
db 1Fh
db 0
db 19h
db 0
db 26h ; &
db 0
db 20h
db 0
db 37h ; 7
db 0
db 0BEh ; <20>
db 9
db 0C6h ; <20>
db 9
db 0CEh
db 9
db 0D6h
db 9
db 88h
db 88h
db 0
db 0
db 22h ; "
db 22h ; "
db 0
db 0
db 88h
db 88h
db 44h ; D
db 44h ; D
db 22h ; "
db 22h ; "
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
word_F9BE dw 2
word_F9C0 dw 10h
include th03/snd/se_state[data].asm
word_F9C4 dw 0
word_F9C6 dw 0
word_F9C8 dw 0
word_F9CA dw 0
word_F9CC dw 4E20h
db 3Bh ; ;
db 83h
db 0BBh ; <20>
db 83h
db 0B8h ; <20>
db 3Bh ; ;
db 0B8h ; <20>
db 3Bh ; ;
db 83h
db 0BBh ; <20>
db 83h
db 0B8h ; <20>
db 3Bh ; ;
db 0B8h ; <20>
db 3Bh ; ;
db 83h
db 0BBh ; <20>
db 83h
db 0B8h ; <20>
db 3Bh ; ;
db 0B8h ; <20>
db 3Bh ; ;
db 83h
db 0BBh ; <20>
db 83h
db 0B8h ; <20>
db 3Bh ; ;
db 0B8h ; <20>
db 3Fh ; ?
db 60h
db 0C0h ; <20>
db 0FEh
db 80h
db 80h
unk_F9F0 db 0C0h ; <20>
db 40h
db 66h
db 0A9h
db 99h
db 81h
db 81h
db 81h
db 0C3h
db 42h
db 3Ch
db 4
db 4
db 4
db 4
db 4
db 0Ch
db 8
db 3Ch ; <
db 42h ; B
db 81h
db 1
db 6
db 18h
db 61h ; a
db 7Eh ; ~
db 3Ch ; <
db 42h ; B
db 1
db 0Eh
db 1
db 0C1h
db 42h ; B
db 7Ch ; |
db 0Ch
db 12h
db 22h ; "
db 42h ; B
db 42h ; B
db 7Fh
db 2
db 2
db 3Eh ; >
db 40h
db 80h
db 0BCh ; <20>
db 42h ; B
db 1
db 82h
db 7Ch ; |
db 7Eh ; ~
db 0C1h
db 80h
db 70h ; p
db 0Eh
db 1
db 83h
db 7Eh ; ~
db 3Eh ; >
db 63h ; c
db 0C0h ; <20>
db 80h
db 86h
db 0C1h
db 63h ; c
db 3Ch ; <
include th05/snd/load[data].asm
include th04/snd/snd[data].asm
db 0
db 0
db 11h
db 11h
db 0
db 0
db 44h ; D
db 44h ; D
db 88h
db 88h
db 11h
db 11h
db 22h ; "
db 22h ; "
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0EEh
db 0EEh
db 77h ; w
db 77h ; w
db 0BBh ; <20>
db 0BBh ; <20>
db 0DDh
db 0DDh
include th05/formats/pi_slot_buffers[bss].asm
include th05/hardware/vram_planes[data].asm
include th03/formats/cdg[data].asm
SETUP_BGM_BODY dd aSETUP_BGM_BODY1
dd aSETUP_BGM_BODY2
dd aSETUP_BGM_BODY3
dd aSETUP_BGM_BODY4
dd aSETUP_BGM_BODY5
dd aSETUP_BGM_BODY6
dd aSETUP_BGM_BODY7
dd aSETUP_BGM_BODY8
dd aSETUP_TAIL
SETUP_SFX_BODY dd aSETUP_SFX_BODY1
dd aSETUP_SFX_BODY2
dd aSETUP_SFX_BODY3
dd aSETUP_SFX_BODY4
dd aSETUP_SFX_BODY5
dd aSETUP_SFX_BODY6
dd aSETUP_SFX_BODY7
dd aSETUP_SFX_BODY8
dd aSETUP_TAIL
aSETUP_BGM_BODY1 db '<27>X<EFBFBD>e<EFBFBD><65><EFBFBD>I<EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>FPC-9801-86(<28>݊<EFBFBD>)<29>{<7B>[<5B>h<EFBFBD>@<40>@<40>@',0
aSETUP_BGM_BODY2 db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@CanBe<42><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȂǁA ',0
aSETUP_BGM_BODY3 db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>e<EFBFBD>l<EFBFBD>U<EFBFBD><55><EFBFBD>{<7B>r<EFBFBD>r<EFBFBD>f<EFBFBD>R<EFBFBD><52><EFBFBD>{<7B><><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aSETUP_BGM_BODY4 db '<27>@<40>W<EFBFBD><57><EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>F PC-9801-26K(<28>݊<EFBFBD>)<29>{<7B>[<5B>h ',0
aSETUP_BGM_BODY5 db ' PC-9801DA<44><41><EFBFBD>ɓ<EFBFBD><C993><EFBFBD><EFBFBD>̉<EFBFBD><CC89><EFBFBD><EFBFBD>Ȃ<EFBFBD> ',0
aSETUP_BGM_BODY6 db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>e<EFBFBD>l<EFBFBD>R<EFBFBD><52><EFBFBD>{<7B>r<EFBFBD>r<EFBFBD>f<EFBFBD>R<EFBFBD><52> ',0
aSETUP_BGM_BODY7 db '<27>@<40>@<40><><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD>@<40>@<40>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ ',0
aSETUP_BGM_BODY8 db ' ',0
aSETUP_TAIL db '<27>Ȃ<EFBFBD><C882>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̐ݒ<CC90><DD92>͂n<CD82><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŕύX<CF8D>”\<5C>ł<EFBFBD>',0
aSETUP_SFX_BODY1 db '<27>@<40>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>@<40>F<EFBFBD><46><EFBFBD>ʉ<EFBFBD><CA89>ɂe<C982>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD><DC82>@<40>@',0
aSETUP_SFX_BODY2 db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>a<EFBFBD>f<EFBFBD>l<EFBFBD><6C><EFBFBD>X<EFBFBD>e<EFBFBD><65><EFBFBD>I<EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@',0
aSETUP_SFX_BODY3 db '<27>@ <20>@ <20>@<40>@<40>i<EFBFBD>W<EFBFBD><57><EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>ł́A3ch<63><68><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD> ',0
aSETUP_SFX_BODY4 db '<27>@ <20>@<40>@<40>@<40>@ <20>̂ŁA<C581>a<EFBFBD>f<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j',0
aSETUP_SFX_BODY5 db '<27>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD>ʉ<EFBFBD><CA89>ɂa<C982><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
aSETUP_SFX_BODY6 db ' <20>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD><DC82>@<40>@',0
aSETUP_SFX_BODY7 db ' <20><><EFBFBD>ʉ<EFBFBD><CA89><EFBFBD><EFBFBD><EFBFBD> <20>F<EFBFBD><46><EFBFBD><EFBFBD>̎<EFBFBD><CC8E><EFBFBD><EFBFBD>Ō<EFBFBD><C58C>ʉ<EFBFBD><CA89><EFBFBD><EFBFBD>‚<C282><E782B5><EFBFBD><EFBFBD>',0
aSETUP_SFX_BODY8 db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>ꍇ ',0
aSETUP_BGM_OPTION1 db '<27>X<EFBFBD>e<EFBFBD><65><EFBFBD>I<EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD>',0
aSETUP_BGM_OPTION2 db '<27>@<40>W<EFBFBD><57><EFBFBD>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>@',0
aSETUP_BGM_OPTION3 db '<27>@<40>@<40><><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD>@<40>@',0
aSETUP_SFX_OPTION1 db '<27>@<40>@<40>e<EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD>@<40>@',0
aSETUP_SFX_OPTION2 db '<27>@<40>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@',0
aSETUP_SFX_OPTION3 db '<27>@ <20><><EFBFBD>ʉ<EFBFBD><CA89><EFBFBD><EFBFBD><EFBFBD> <20>@',0
aSETUP_BGM_HEAD db '<27>@<40>@<40>@<40>@<40>@<40>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><E989B9><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˁ<EFBFBD>',0
aSETUP_SFX_HEAD db '<27>@<40>@<40>@<40>@<40><><EFBFBD>ʉ<EFBFBD><CA89>Ɏg<C98E>p<EFBFBD><70><EFBFBD><EFBFBD><E989B9><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>Ăˁ<C482>',0
aMswin_bft db 'mswin.bft',0
aMs_pi db 'ms.pi',0
db 0
aZun00_pi db 'zun00.pi',0
aLogo db 'logo',0
aZun02_bft db 'zun02.bft',0
aZun04_bft db 'zun04.bft',0
aZun01_bft db 'zun01.bft',0
aZun03_bft db 'zun03.bft',0
unk_FF00 db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
aMiko_cfg db 'MIKO.CFG',0
db 0
aSft1_cd2 db 'sft1.cd2',0
aSft2_cd2 db 'sft2.cd2',0
aCar_cd2 db 'car.cd2',0
aSl00_cdg db 'sl00.cdg',0
aSl01_cdg db 'sl01.cdg',0
aSl02_cdg db 'sl02.cdg',0
aSl03_cdg db 'sl03.cdg',0
aSlcl_cdg db 'slcl.cdg',0
aSl04_cdg db 'sl04.cdg',0
aOp2a_pi db 'op2a.pi',0
aOp2b_pi db 'op2b.pi',0
aOp2c_pi db 'op2c.pi',0
aOp2d_pi db 'op2d.pi',0
aOp2e_pi db 'op2e.pi',0
aOp2f_pi db 'op2f.pi',0
aOp2g_pi db 'op2g.pi',0
aOp2h_pi db 'op2h.pi',0
aOp_0 db 'op',0
aOp1_pi_0 db 'op1.pi',0
MUSICROOM_UP dd aMUSICROOM_UP
; " ------ <20><> ------ "
MUSICROOM_DOWN dd aMUSICROOM_DOWN
; " ------ <20><> ------ "
dd asc_104D5 ; " ---------------- "
MUSICROOM_GAME dd aMUSICROOM_TH01
dd aMUSICROOM_TH02
dd aMUSICROOM_TH03
dd aMUSICROOM_TH04
dd aMUSICROOM_TH05
dd aTH01_01 ; "No.1 A Sacred Lot "
dd aTH01_02 ; "No.2 <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> "
dd aTH01_03 ; "No.3 The Positive and Negative "
dd aTH01_04 ; "No.4 Highly Responsive to Prayers "
dd aTH01_05
dd aTH01_06 ; "No.6 <20>V<EFBFBD>g<EFBFBD>`<60><> "
dd aTH01_07 ; "No.7 Oriental Magician "
dd aTH01_08 ; "No.8 <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD> "
dd aTH01_09 ; "No.9 <20><><EFBFBD><EFBFBD> "
dd aTH01_10 ; "No.10 the Legend of KAGE "
dd aTH01_11 ; "No.11 <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD> "
dd aTH01_12 ; "No.12 Civilization of Magic "
dd aTH01_13 ; "No.13 <20><><EFBFBD>H<EFBFBD>V<EFBFBD>g "
dd aTH01_14 ; "No.14 <20>A<EFBFBD>C<EFBFBD><43><EFBFBD>X "
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aTH02_01
dd aTH02_02 ; "No.2 <20>@ <09><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind "
dd aTH02_03 ; "No.3 <20>@ She's in a temper!! "
dd aTH02_04 ; "No.4 <20>@ End of Daylight<68>@ "
dd aTH02_05 ; "No.5 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ "
dd aTH02_06 ; "No.6 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@ "
dd aTH02_07
dd aTH02_08 ; "No.8 <20>Ђ<EFBFBD><D082><EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD> "
dd aTH02_09
dd aTH02_10
dd aTH02_11 ; "No.11 Complete Darkness "
dd aTH02_12 ; "No.12 <09>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u "
dd aTH02_13 ; "No.13 <09><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> "
dd aTH02_14 ; "No.14 <20>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ "
dd aTH02_15
dd aTH02_16 ; "<22><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>Ћ<EFBFBD><D08B><EFBFBD> "
dd aTH02_17 ; "<22><><EFBFBD>g<EFBFBD>p.2 <20>@<40>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09>@ "
dd aTH02_18 ; "<22><><EFBFBD>g<EFBFBD>p.3 <20>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> <09>@ "
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aTH03_01
dd aTH03_02 ; "No.2 <20>@ <09>@ Selection "
dd aTH03_03
dd aTH03_04 ; "No.4 Reincarnation "
dd aTH03_05 ; "No.5 Dim. Dream "
dd aTH03_06
dd aTH03_07 ; "No.7 <20>@ Maniacal Princess "
dd aTH03_08 ; "No.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream "
dd aTH03_09 ; "No.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <09>`Dream War "
dd aTH03_10 ; "No.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out! "
dd aTH03_11 ; "No.11 <20>@ Sailor of Time "
dd aTH03_12 ; "No.12 Strawberry Crisis!! "
dd aTH03_13
dd aTH03_14 ; "No.14 <20>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> "
dd aTH03_15 ; "No.15 <20>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> "
dd aTH03_16
dd aTH03_17 ; "No.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> "
dd aTH03_18 ; "No.18 Maple Dream... "
dd aTH03_19
dd aTH03_20 ; "No.20 <20><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66> "
dd aTH03_21 ; "No.21 <20>Q<EFBFBD>[<5B><><EFBFBD>I<EFBFBD>[<5B>o<EFBFBD>[ "
dd aTH03_22 ; "<22><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD>̕<EFBFBD> "
dd aTH03_23 ; "<22><><EFBFBD>g<EFBFBD>p.2 <09>X<EFBFBD>^<5E>[<5B>{<7B>E<EFBFBD>h<EFBFBD><68><EFBFBD>[<5B><> "
dd aTH03_24 ; "<22><><EFBFBD>g<EFBFBD>p.3 Phantasmagoria "
dd aMUSICROOM_QUIT2 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
dd 0
dd 0
dd 0
dd 0
dd 0
dd aTH04_01 ; "No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story "
dd aTH04_02 ; "No.2 Witching Dream "
dd aTH04_03 ; "No.3 Selene's light "
dd aTH04_04
dd aTH04_05 ; "No.5 Break the Sabbath "
dd aTH04_06 ; "No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme "
dd aTH04_07 ; "No.7 Bad Apple!! "
dd aTH04_08 ; "No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis "
dd aTH04_09 ; "No.9 <09>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> "
dd aTH04_10 ; "No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio "
dd aTH04_11 ; "No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star "
dd aTH04_12 ; "No.12 Lotus Love "
dd aTH04_13 ; "No.13 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>| <20>`Sleeping Terror "
dd aTH04_14 ; "No.14 Dream Land "
dd aTH04_15 ; "No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream "
dd aTH04_16
dd aTH04_17 ; "No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic "
dd aTH04_18 ; "No.18 <20><><EFBFBD><EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence "
dd aTH04_19 ; "No.19 Days "
dd aTH04_20 ; "No.20 Peaceful "
dd aTH04_21 ; "No.21 Arcadian Dream "
dd aTH04_22 ; "No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l "
dd aTH04_23 ; "<22><><EFBFBD>g<EFBFBD>p.1 Lotus Road "
dd aTH04_24 ; "<22><><EFBFBD>g<EFBFBD>p.2 Dreamy pilot "
dd aTH04_25 ; "<22><><EFBFBD>g<EFBFBD>p.3 Incomplete Plot "
dd aTH04_26 ; "<22><><EFBFBD>g<EFBFBD>p.4 Border Land "
dd aTH04_27 ; "<22><><EFBFBD>g<EFBFBD>p.5 Magic Shop of Raspberry "
dd aTH04_28 ; "<22><><EFBFBD>g<EFBFBD>p.6 Crescent Dream "
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
dd 0
dd aTH05_01
dd aTH05_02 ; "No.2 Dream Express "
dd aTH05_03 ; "No.3 <20><><EFBFBD>@<40>w<EFBFBD>@<40>` Magic Square "
dd aTH05_04
dd aTH05_05 ; "No.5 <20><><EFBFBD>V<EFBFBD>@<40>` Spiritual Heaven "
dd aTH05_06 ; "No.6 Romantic Children "
dd aTH05_07 ; "No.7 <20>v<EFBFBD><76><EFBFBD>X<EFBFBD>`<60>b<EFBFBD>N<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD>h "
dd aTH05_08 ; "No.8 <20><><EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>Y "
dd aTH05_09 ; "No.9 <20>֒f<D692>̖<EFBFBD><CC96>@ <20>` Forbidden Magic"
dd aTH05_10 ; "No.10 <20>^<5E>g<EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Crimson Dead!!"
dd aTH05_11 ; "No.11 <20><><EFBFBD>؂<EFBFBD><D882>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Judas Kiss "
dd aTH05_12 ; "No.12 the Last Judgement "
dd aTH05_13 ; "No.13 <20>߂<EFBFBD><DF82><EFBFBD><EFBFBD>l<EFBFBD>`<60>@<40>` Doll of Misery"
dd aTH05_14 ; "No.14 <20><><EFBFBD>E<EFBFBD>̉ʂā@<40>` World's End "
dd aTH05_15 ; "No.15 <20>_<EFBFBD>b<EFBFBD><62><EFBFBD>z<EFBFBD>@<40>` Infinite Being "
dd aTH05_16 ; "No.16 <20>s<EFBFBD>v<EFBFBD>c<EFBFBD>̍<EFBFBD><CC8D>̃A<CC83><41><EFBFBD>X "
dd aTH05_17 ; "No.17 the Grimoire of Alice "
dd aTH05_18 ; "No.18 <20>_<EFBFBD><5F> "
dd aTH05_19 ; "No.19 Endless "
dd aTH05_20 ; "No.20 <20>v<EFBFBD><76><EFBFBD>̊y<CC8A><79> "
dd aTH05_21 ; "No.21 Mystic Dream "
dd aTH05_22 ; "No.22 Peaceful Romancer "
dd aTH05_23 ; "No.23 <20><><EFBFBD>̋x<CC8B><78><EFBFBD>ޏ<EFBFBD> "
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aR_00 ; "r_00"
dd aR_01 ; "r_01"
dd aR_02 ; "r_02"
dd aR_03 ; "r_03"
dd aR_04 ; "r_04"
dd aR_05 ; "r_05"
dd aR_06 ; "r_06"
dd aR_07 ; "r_07"
dd aR_08 ; "r_08"
dd aR_09 ; "r_09"
dd aR_10 ; "r_10"
dd aR_11 ; "r_11"
dd aR_12 ; "r_12"
dd aR_13 ; "r_13"
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aH_op ; "h_op"
dd aH_st00 ; "h_st00"
dd aH_st00b ; "h_st00b"
dd aH_st01 ; "h_st01"
dd aH_st01b ; "h_st01b"
dd aH_st02 ; "h_st02"
dd aH_st02b ; "h_st02b"
dd aH_st03 ; "h_st03"
dd aH_st03b ; "h_st03b"
dd aH_st04 ; "h_st04"
dd aH_st04b ; "h_st04b"
dd aH_st05 ; "h_st05"
dd aH_st05b ; "h_st05b"
dd aH_end ; "h_end"
dd aH_staff ; "h_staff"
dd aH_ng00 ; "h_ng00"
dd aH_ng01 ; "h_ng01"
dd aH_ng02 ; "h_ng02"
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aY_op ; "y_op"
dd aY_select ; "y_select"
dd aY_00mm ; "y_00mm"
dd aY_01mm ; "y_01mm"
dd aY_02mm ; "y_02mm"
dd aY_03mm ; "y_03mm"
dd aY_04mm ; "y_04mm"
dd aY_05mm ; "y_05mm"
dd aY_06mm ; "y_06mm"
dd aY_dec ; "y_dec"
dd aY_07mm ; "y_07mm"
dd aY_08mm ; "y_08mm"
dd aY_demo1 ; "y_demo1"
dd aY_demo2 ; "y_demo2"
dd aY_demo3 ; "y_demo3"
dd aY_demo4 ; "y_demo4"
dd aY_demo5 ; "y_demo5"
dd aY_ed ; "y_ed"
dd aY_score ; "y_score"
dd aY_win ; "y_win"
dd aY_over ; "y_over"
dd aY_ng00 ; "y_ng00"
dd aY_ng01 ; "y_ng01"
dd aY_ng02 ; "y_ng02"
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd aG_op ; "g_op"
dd aG_st00 ; "g_st00"
dd aG_st10 ; "g_st10"
dd aG_st00b ; "g_st00b"
dd aG_st01 ; "g_st01"
dd aG_st01b ; "g_st01b"
dd aG_st02 ; "g_st02"
dd aG_st02b ; "g_st02b"
dd aG_st03 ; "g_st03"
dd aG_st03c ; "g_st03c"
dd aG_st03b ; "g_st03b"
dd aG_st04 ; "g_st04"
dd aG_st04b ; "g_st04b"
dd aG_st05 ; "g_st05"
dd aG_st05b ; "g_st05b"
dd aG_st06 ; "g_st06"
dd aG_st06b ; "g_st06b"
dd aG_st06c ; "g_st06c"
dd aG_end1 ; "g_end1"
dd aG_end2 ; "g_end2"
dd aG_staff ; "g_staff"
dd aG_name ; "g_name"
dd aG_ng00 ; "g_ng00"
dd aG_ng01 ; "g_ng01"
dd aG_ng02 ; "g_ng02"
dd aG_ng03 ; "g_ng03"
dd aG_ng04 ; "g_ng04"
dd aG_ng05 ; "g_ng05"
dd 0
dd 0
dd aH_op+2
dd aH_st00+2
dd aH_st00b+2
dd aH_st01+2
dd aH_st01b+2
dd aH_st02+2
dd aH_st02b+2
dd aH_st03+2
dd aH_st03b+2
dd aG_st03c+2
dd aSt03d ; "st03d"
dd aH_st04+2
dd aH_st04b+2
dd aH_st05+2
dd aH_st05b+2
dd aG_st06+2
dd aG_st06b+2
dd aEd00 ; "ed00"
dd aEd01 ; "ed01"
dd aEd02 ; "ed02"
dd aH_staff+2
dd aExed ; "exed"
dd aG_name+2
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
music_game dw 4
MUSICROOM_TRACKCOUNTS dw 14,18,24,28,23
include th02/music/polygons[data].asm
aMUSICROOM_UP db ' ------ <20><> ------ ',0
aMUSICROOM_DOWN db ' ------ <20><> ------ ',0
asc_104D5 db ' ---------------- ',0
aMUSICROOM_TH01 db ' <20><><EFBFBD>P<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>ˈٓ` Arrange ver ',0
aMUSICROOM_TH02 db ' <20><><EFBFBD>Q<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^ Special MIX ',0
aMUSICROOM_TH03 db ' <20><><EFBFBD>R<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Special MIX ',0
aMUSICROOM_TH04 db ' <20><><EFBFBD>S<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A> Special MIX ',0
aMUSICROOM_TH05 db ' <20><><EFBFBD>T<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>k MysticSquare ',0
aTH01_01 db 'No.1 A Sacred Lot ',0
aTH01_02 db 'No.2 <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> ',0
aTH01_03 db 'No.3 The Positive and Negative ',0
aTH01_04 db 'No.4 Highly Responsive to Prayers ',0
aTH01_05 db 'No.5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k ',0
aTH01_06 db 'No.6 <20>V<EFBFBD>g<EFBFBD>`<60><> ',0
aTH01_07 db 'No.7 Oriental Magician ',0
aTH01_08 db 'No.8 <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD> ',0
aTH01_09 db 'No.9 <20><><EFBFBD><EFBFBD> ',0
aTH01_10 db 'No.10 the Legend of KAGE ',0
aTH01_11 db 'No.11 <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD> ',0
aTH01_12 db 'No.12 Civilization of Magic ',0
aTH01_13 db 'No.13 <20><><EFBFBD>H<EFBFBD>V<EFBFBD>g ',0
aTH01_14 db 'No.14 <20>A<EFBFBD>C<EFBFBD><43><EFBFBD>X ',0
aMUSICROOM_QUIT1 db ' <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> ',0
aTH02_01 db 'No.1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60><><EFBFBD>y<EFBFBD><79><EFBFBD> ',0
aTH02_02 db 'No.2 <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind ',0
aTH02_03 db 'No.3 <20>@ She',27h,'s in a temper!! ',0
aTH02_04 db 'No.4 <20>@ End of Daylight<68>@ ',0
aTH02_05 db 'No.5 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ ',0
aTH02_06 db 'No.6 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@ ',0
aTH02_07 db 'No.7 <20>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71><EFBFBD>ā@<40>@<40>@ ',0
aTH02_08 db 'No.8 <20>Ђ<EFBFBD><D082><EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD> ',0
aTH02_09 db 'No.9 <20>@ <20>@ <20><><EFBFBD>F<EFBFBD>}<7D>W<EFBFBD>b<EFBFBD>N <20>@ ',0
aTH02_10 db 'No.10 <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
aTH02_11 db 'No.11 Complete Darkness ',0
aTH02_12 db 'No.12 <20>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u ',0
aTH02_13 db 'No.13 <20><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> ',0
aTH02_14 db 'No.14 <20>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ ',0
aTH02_15 db 'No.15 <20>̘b<CC98><62><EFBFBD>񂾁[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
aTH02_16 db '<27><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>Ћ<EFBFBD><D08B><EFBFBD> ',0
aTH02_17 db '<27><><EFBFBD>g<EFBFBD>p.2 <20>@<40>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>@ ',0
aTH02_18 db '<27><><EFBFBD>g<EFBFBD>p.3 <20>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> <20>@ ',0
aTH03_01 db 'No.1 <20>@<40><><EFBFBD>͎<EFBFBD><CD8E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> ',0
aTH03_02 db 'No.2 <20>@ <20>@ Selection ',0
aTH03_03 db 'No.3 <20><><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD>k ',0
aTH03_04 db 'No.4 Reincarnation ',0
aTH03_05 db 'No.5 Dim. Dream ',0
aTH03_06 db 'No.6 Tabula rasa<73>@<40>`<60>󔒏<EFBFBD><F394928F><EFBFBD> ',0
aTH03_07 db 'No.7 <20>@ Maniacal Princess ',0
aTH03_08 db 'No.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream ',0
aTH03_09 db 'No.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <20>`Dream War ',0
aTH03_10 db 'No.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out! ',0
aTH03_11 db 'No.11 <20>@ Sailor of Time ',0
aTH03_12 db 'No.12 Strawberry Crisis!! ',0
aTH03_13 db 'No.13 <20>񓝈ꖂ<F1939D88>@<40><><EFBFBD>E<EFBFBD>_ ',0
aTH03_14 db 'No.14 <20>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> ',0
aTH03_15 db 'No.15 <20>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> ',0
aTH03_16 db 'No.16 <20><><EFBFBD><EFBFBD><EFBFBD>̐‚<CC90><C282><EFBFBD> ',0
aTH03_17 db 'No.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> ',0
aTH03_18 db 'No.18 Maple Dream... ',0
aTH03_19 db 'No.19 <20><><EFBFBD>l<EFBFBD>̋x<CC8B><78> ',0
aTH03_20 db 'No.20 <20><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66> ',0
aTH03_21 db 'No.21 <20>Q<EFBFBD>[<5B><><EFBFBD>I<EFBFBD>[<5B>o<EFBFBD>[ ',0
aTH03_22 db '<27><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD>̕<EFBFBD> ',0
aTH03_23 db '<27><><EFBFBD>g<EFBFBD>p.2 <20>X<EFBFBD>^<5E>[<5B>{<7B>E<EFBFBD>h<EFBFBD><68><EFBFBD>[<5B><> ',0
aTH03_24 db '<27><><EFBFBD>g<EFBFBD>p.3 Phantasmagoria ',0
aMUSICROOM_QUIT2 db ' <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> ',0
aTH04_01 db 'No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story ',0
aTH04_02 db 'No.2 Witching Dream ',0
aTH04_03 db 'No.3 Selene',27h,'s light ',0
aTH04_04 db 'No.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Decoration Battle ',0
aTH04_05 db 'No.5 Break the Sabbath ',0
aTH04_06 db 'No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme ',0
aTH04_07 db 'No.7 Bad Apple!! ',0
aTH04_08 db 'No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis ',0
aTH04_09 db 'No.9 <20>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> ',0
aTH04_10 db 'No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio ',0
aTH04_11 db 'No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star ',0
aTH04_12 db 'No.12 Lotus Love ',0
aTH04_13 db 'No.13 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>| <20>`Sleeping Terror ',0
aTH04_14 db 'No.14 Dream Land ',0
aTH04_15 db 'No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream ',0
aTH04_16 db 'No.16 <20>ւ<EFBFBD><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>V<EFBFBD>Y ',0
aTH04_17 db 'No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic ',0
aTH04_18 db 'No.18 <20><><EFBFBD><EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence ',0
aTH04_19 db 'No.19 Days ',0
aTH04_20 db 'No.20 Peaceful ',0
aTH04_21 db 'No.21 Arcadian Dream ',0
aTH04_22 db 'No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l ',0
aTH04_23 db '<27><><EFBFBD>g<EFBFBD>p.1 Lotus Road ',0
aTH04_24 db '<27><><EFBFBD>g<EFBFBD>p.2 Dreamy pilot ',0
aTH04_25 db '<27><><EFBFBD>g<EFBFBD>p.3 Incomplete Plot ',0
aTH04_26 db '<27><><EFBFBD>g<EFBFBD>p.4 Border Land ',0
aTH04_27 db '<27><><EFBFBD>g<EFBFBD>p.5 Magic Shop of Raspberry ',0
aTH04_28 db '<27><><EFBFBD>g<EFBFBD>p.6 Crescent Dream ',0
aTH05_01 db 'No.1 <20><><EFBFBD>Y<EFBFBD>k<EFBFBD>@<40>` Mystic Square ',0
aTH05_02 db 'No.2 Dream Express ',0
aTH05_03 db 'No.3 <20><><EFBFBD>@<40>w<EFBFBD>@<40>` Magic Square ',0
aTH05_04 db 'No.4 <20><><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> ',0
aTH05_05 db 'No.5 <20><><EFBFBD>V<EFBFBD>@<40>` Spiritual Heaven ',0
aTH05_06 db 'No.6 Romantic Children ',0
aTH05_07 db 'No.7 <20>v<EFBFBD><76><EFBFBD>X<EFBFBD>`<60>b<EFBFBD>N<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD>h ',0
aTH05_08 db 'No.8 <20><><EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>Y ',0
aTH05_09 db 'No.9 <20>֒f<D692>̖<EFBFBD><CC96>@ <20>` Forbidden Magic',0
aTH05_10 db 'No.10 <20>^<5E>g<EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Crimson Dead!!',0
aTH05_11 db 'No.11 <20><><EFBFBD>؂<EFBFBD><D882>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Judas Kiss ',0
aTH05_12 db 'No.12 the Last Judgement ',0
aTH05_13 db 'No.13 <20>߂<EFBFBD><DF82><EFBFBD><EFBFBD>l<EFBFBD>`<60>@<40>` Doll of Misery',0
aTH05_14 db 'No.14 <20><><EFBFBD>E<EFBFBD>̉ʂā@<40>` World',27h,'s End ',0
aTH05_15 db 'No.15 <20>_<EFBFBD>b<EFBFBD><62><EFBFBD>z<EFBFBD>@<40>` Infinite Being ',0
aTH05_16 db 'No.16 <20>s<EFBFBD>v<EFBFBD>c<EFBFBD>̍<EFBFBD><CC8D>̃A<CC83><41><EFBFBD>X ',0
aTH05_17 db 'No.17 the Grimoire of Alice ',0
aTH05_18 db 'No.18 <20>_<EFBFBD><5F> ',0
aTH05_19 db 'No.19 Endless ',0
aTH05_20 db 'No.20 <20>v<EFBFBD><76><EFBFBD>̊y<CC8A><79> ',0
aTH05_21 db 'No.21 Mystic Dream ',0
aTH05_22 db 'No.22 Peaceful Romancer ',0
aTH05_23 db 'No.23 <20><><EFBFBD>̋x<CC8B><78><EFBFBD>ޏ<EFBFBD> ',0
aR_00 db 'r_00',0
aR_01 db 'r_01',0
aR_02 db 'r_02',0
aR_03 db 'r_03',0
aR_04 db 'r_04',0
aR_05 db 'r_05',0
aR_06 db 'r_06',0
aR_07 db 'r_07',0
aR_08 db 'r_08',0
aR_09 db 'r_09',0
aR_10 db 'r_10',0
aR_11 db 'r_11',0
aR_12 db 'r_12',0
aR_13 db 'r_13',0
aH_op db 'h_op',0
aH_st00 db 'h_st00',0
aH_st00b db 'h_st00b',0
aH_st01 db 'h_st01',0
aH_st01b db 'h_st01b',0
aH_st02 db 'h_st02',0
aH_st02b db 'h_st02b',0
aH_st03 db 'h_st03',0
aH_st03b db 'h_st03b',0
aH_st04 db 'h_st04',0
aH_st04b db 'h_st04b',0
aH_st05 db 'h_st05',0
aH_st05b db 'h_st05b',0
aH_end db 'h_end',0
aH_staff db 'h_staff',0
aH_ng00 db 'h_ng00',0
aH_ng01 db 'h_ng01',0
aH_ng02 db 'h_ng02',0
aY_op db 'y_op',0
aY_select db 'y_select',0
aY_00mm db 'y_00mm',0
aY_01mm db 'y_01mm',0
aY_02mm db 'y_02mm',0
aY_03mm db 'y_03mm',0
aY_04mm db 'y_04mm',0
aY_05mm db 'y_05mm',0
aY_06mm db 'y_06mm',0
aY_dec db 'y_dec',0
aY_07mm db 'y_07mm',0
aY_08mm db 'y_08mm',0
aY_demo1 db 'y_demo1',0
aY_demo2 db 'y_demo2',0
aY_demo3 db 'y_demo3',0
aY_demo4 db 'y_demo4',0
aY_demo5 db 'y_demo5',0
aY_ed db 'y_ed',0
aY_score db 'y_score',0
aY_win db 'y_win',0
aY_over db 'y_over',0
aY_ng00 db 'y_ng00',0
aY_ng01 db 'y_ng01',0
aY_ng02 db 'y_ng02',0
aG_op db 'g_op',0
aG_st00 db 'g_st00',0
aG_st10 db 'g_st10',0
aG_st00b db 'g_st00b',0
aG_st01 db 'g_st01',0
aG_st01b db 'g_st01b',0
aG_st02 db 'g_st02',0
aG_st02b db 'g_st02b',0
aG_st03 db 'g_st03',0
aG_st03c db 'g_st03c',0
aG_st03b db 'g_st03b',0
aG_st04 db 'g_st04',0
aG_st04b db 'g_st04b',0
aG_st05 db 'g_st05',0
aG_st05b db 'g_st05b',0
aG_st06 db 'g_st06',0
aG_st06b db 'g_st06b',0
aG_st06c db 'g_st06c',0
aG_end1 db 'g_end1',0
aG_end2 db 'g_end2',0
aG_staff db 'g_staff',0
aG_name db 'g_name',0
aG_ng00 db 'g_ng00',0
aG_ng01 db 'g_ng01',0
aG_ng02 db 'g_ng02',0
aG_ng03 db 'g_ng03',0
aG_ng04 db 'g_ng04',0
aG_ng05 db 'g_ng05',0
aSt03d db 'st03d',0
aEd00 db 'ed00',0
aEd01 db 'ed01',0
aEd02 db 'ed02',0
aExed db 'exed',0
include th05/music/music_cmt_load[data].asm
aMusic_pi db 'music.pi',0
aMusic_dat db 'music.dat',0
aKaikidan1_dat1 db '<27><><EFBFBD>Y<EFBFBD>k1.dat',0
db 0
aGensou_scr db 'GENSOU.SCR',0
aName db 'name',0
aHi01_pi db 'hi01.pi',0
aOp1_pi_1 db 'op1.pi',0
aOp_1 db 'op',0
aScnum_bft db 'scnum.bft',0
aHi_m_bft db 'hi_m.bft',0
db 0
aSlb1_pi db 'slb1.pi',0
.data?
dword_11DCC dd ?
byte_11DD0 db ?
db ?
fp_11DD2 dw ?
byte_11DD4 db ?
byte_11DD5 db ?
include libs/master.lib/clip[bss].asm
include libs/master.lib/fil[bss].asm
include libs/master.lib/js[bss].asm
include libs/master.lib/pal[bss].asm
include libs/master.lib/vs[bss].asm
include libs/master.lib/vsync[bss].asm
include libs/master.lib/mem[bss].asm
include libs/master.lib/superpa[bss].asm
include libs/master.lib/super_put_rect[bss].asm
include th03/formats/hfliplut[bss].asm
include th04/snd/interrupt[bss].asm
include libs/master.lib/bgm[bss].asm
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dword_1281A dd ?
include th02/snd/load[bss].asm
word_1282C dw ?
word_1282E dw ?
word_12830 dw ?
include th05/formats/pi_slot_headers[bss].asm
include th04/hardware/input[bss].asm
include th04/formats/cdg[bss].asm
include libs/master.lib/pfint21[bss].asm
word_12EFE dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
word_12F30 dw ?
word_12F32 dw ?
include th04/zunsoft[bss].asm
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
include th02/music/polygons[bss].asm
word_13E94 dw ?
byte_13E96 db ?
db ?
word_13E98 dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
include th02/music/music_cmt[bss].asm
word_1403A dw ?
word_1403C dw ?
musicroom_trackcount dw ?
byte_14040 db ?
byte_14041 db ?
word_14042 dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
byte_1409E db ?
db ?
byte_140A0 db ?
byte_140A1 db ?
byte_140A2 db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
db ? ;
db ? ;
byte_14101 db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
byte_14116 db ?
db ?
word_14118 dw ?
byte_1411A db ?
dd ? ;
byte_1411F db ?
byte_14120 db ?
byte_14121 db ?
byte_14122 db ?
dd ? ;
db ? ;
end