ReC98/th05_op.asm

5722 lines
118 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.inc
include th05/music/music.inc
include th05/music/piano.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, _ksoconfig
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, _ksoconfig
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr _ksoconfig
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, _ksoconfig
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 game_exit
les bx, _ksoconfig
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, _ksoconfig
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, _ksoconfig
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr _ksoconfig
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, _ksoconfig
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 game_exit
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, _ksoconfig
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 _key_det, 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, _ksoconfig
mov byte ptr es:[bx+1Fh], 5
jmp short loc_A535
; ---------------------------------------------------------------------------
loc_A529:
les bx, _ksoconfig
mov byte ptr es:[bx+1Fh], 0
jmp loc_A5E9
; ---------------------------------------------------------------------------
loc_A535:
les bx, _ksoconfig
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, _ksoconfig
mov byte ptr es:[bx+14h], 0
mov byte ptr es:[bx+1Dh], 3
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A55E:
les bx, _ksoconfig
mov byte ptr es:[bx+14h], 1
mov byte ptr es:[bx+1Dh], 1
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A56E:
les bx, _ksoconfig
mov byte ptr es:[bx+14h], 2
mov byte ptr es:[bx+1Dh], 2
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A57E:
les bx, _ksoconfig
mov byte ptr es:[bx+14h], 3
mov byte ptr es:[bx+1Dh], 4
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A58E:
les bx, _ksoconfig
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, _ksoconfig
add bx, si
mov byte ptr es:[bx+20h], 0
mov bx, word ptr _ksoconfig
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 game_exit
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 egc_copy_rect_1_to_0
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, _ksoconfig
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 egc_copy_rect_1_to_0
mov _graph_putsa_fx_func, 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 graph_putsa_fx
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 egc_copy_rect_1_to_0
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, _ksoconfig
mov al, es:[bx+11h]
mov ah, 0
add ax, 21
push ax
call cdg_put_nocolors
les bx, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
cmp byte ptr es:[bx+12h], 0
jnz short loc_A80B
mov ax, 1Ch
jmp short loc_A818
; ---------------------------------------------------------------------------
loc_A80B:
les bx, _ksoconfig
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, _ksoconfig
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, _ksoconfig
cmp byte ptr es:[bx+15h], 0
jnz short loc_A854
mov ax, 1Ch
jmp short loc_A865
; ---------------------------------------------------------------------------
loc_A854:
les bx, _ksoconfig
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, _ksoconfig
mov al, es:[bx+15h]
mov ah, 0
add ax, 0Fh
jmp loc_A797
; ---------------------------------------------------------------------------
loc_A884:
push (272 shl 16) or 330
les bx, _ksoconfig
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, _ksoconfig
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 egc_copy_rect_1_to_0
mov _graph_putsa_fx_func, 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 graph_putsa_fx
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 egc_copy_rect_1_to_0
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 _key_det, INPUT_NONE
jnz short loc_AA37
mov byte_11DD4, 1
loc_AA37:
cmp byte_11DD4, 0
jz loc_ABC0
test _key_det.lo, low INPUT_UP
jz short loc_AA4E
push 5
push 0FFFFh
call sub_A968
loc_AA4E:
test _key_det.lo, low INPUT_DOWN
jz short loc_AA5C
push 5
push 1
call sub_A968
loc_AA5C:
test _key_det.hi, high INPUT_OK
jnz short loc_AA6C
test _key_det.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
graph_accesspage 1
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
graph_accesspage 1
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 musicroom
call load_char_select_sprite_function
graph_accesspage 1
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 _key_det.hi, high INPUT_CANCEL
jz short loc_ABB4
mov byte_F072, 1
loc_ABB4:
cmp _key_det, 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 egc_copy_rect_1_to_0
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 _key_det, INPUT_NONE
jnz short loc_AC2B
mov byte_11DD5, 1
loc_AC2B:
cmp byte_11DD5, 0
jz loc_AF2E
test _key_det.lo, low INPUT_UP
jz short loc_AC42
push 7
push 0FFFFh
call sub_A968
loc_AC42:
test _key_det.lo, low INPUT_DOWN
jz short loc_AC50
push 7
push 1
call sub_A968
loc_AC50:
test _key_det.hi, high INPUT_OK
jnz short loc_AC60
test _key_det.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, _ksoconfig
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, _ksoconfig
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 _key_det.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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
dec byte ptr es:[bx+15h]
loc_ADC2:
les bx, _ksoconfig
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, _ksoconfig
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 _key_det.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, _ksoconfig
cmp byte ptr es:[bx+11h], 0
jnz short loc_AE2C
mov byte ptr es:[bx+11h], 4
loc_AE2C:
les bx, _ksoconfig
dec byte ptr es:[bx+11h]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE37:
les bx, _ksoconfig
cmp byte ptr es:[bx+0Fh], 1
jnz short loc_AE47
mov byte ptr es:[bx+0Fh], 7
loc_AE47:
les bx, _ksoconfig
dec byte ptr es:[bx+0Fh]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE52:
les bx, _ksoconfig
cmp byte ptr es:[bx+10h], 0
jnz short loc_AE62
mov byte ptr es:[bx+10h], 4
loc_AE62:
les bx, _ksoconfig
dec byte ptr es:[bx+10h]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE6D:
les bx, _ksoconfig
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, _ksoconfig
dec byte ptr es:[bx+12h]
loc_AE87:
kajacall KAJA_SONG_STOP
les bx, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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 _key_det.hi, high INPUT_CANCEL
jz short loc_AF22
mov byte_F0DD, 0
mov byte_F071, 4
mov byte_11DD0, 0
loc_AF22:
cmp _key_det, 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 _mem_assign_paras, MEM_ASSIGN_PARAS_OP
call _game_init_op c, offset aKaikidan1_dat0, ds
or ax, ax
jz short loc_AF7D
push ds
push offset aNotEnoughMem
call dos_puts2
call _getch
loc_AF7D:
call sub_BA94
les bx, _ksoconfig
cmp byte ptr es:[bx+11h], 0FFh
jnz short loc_AF97
call sub_B5A6
les bx, _ksoconfig
mov byte ptr es:[bx+11h], 1
loc_AF97:
les bx, _ksoconfig
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, _ksoconfig
cmp byte ptr es:[bx+0Ah], 0
jnz short loc_AFD1
call zunsoft
les bx, _ksoconfig
mov byte ptr es:[bx+0Ah], 1
loc_AFD1:
les bx, _ksoconfig
cmp byte ptr es:[bx+1Fh], 5
jnz short loc_AFE1
mov byte ptr es:[bx+1Fh], 0
loc_AFE1:
les bx, _ksoconfig
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 _key_det, INPUT_NONE
jz short loc_B043
cmp _key_det, 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, _ksoconfig
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 game_exit_to_dos
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 egc_copy_rect_1_to_0
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 egc_copy_rect_1_to_0
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 egc_copy_rect_1_to_0
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 graph_putsa_fx
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 graph_putsa_fx
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 graph_putsa_fx
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 graph_putsa_fx
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 graph_putsa_fx
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:
call input_wait_for_change pascal, 0
push 1
call frame_delay
test _key_det.hi, high INPUT_OK
jnz short loc_B452
test _key_det.lo, low INPUT_SHOT
jnz short loc_B452
test _key_det.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 _key_det.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, _ksoconfig
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 graph_putsa_fx
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:
call input_wait_for_change pascal, 0
push 1
call frame_delay
test _key_det.hi, high INPUT_OK
jnz short loc_B56F
test _key_det.lo, low INPUT_SHOT
jnz short loc_B56F
test _key_det.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 _key_det.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, _ksoconfig
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
graph_accesspage 1
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
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 _ksoconfig+2, ax
mov word ptr _ksoconfig, 0
les bx, _ksoconfig
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, _ksoconfig
mov byte ptr es:[bx+0Fh], 3
loc_BADC:
les bx, _ksoconfig
cmp byte ptr es:[bx+10h], 3
jbe short loc_BAEC
mov byte ptr es:[bx+10h], 3
loc_BAEC:
les bx, _ksoconfig
cmp byte ptr es:[bx+12h], 3
jb short loc_BAFC
mov byte ptr es:[bx+12h], 0
loc_BAFC:
les bx, _ksoconfig
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, _ksoconfig
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, _ksoconfig
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
@@page_show = byte ptr -2
@@page_access = 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
graph_accesspage 0
graph_showpage al
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
graph_accesspage 1
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
graph_accesspage 0
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
GRCG_OFF_CLOBBERING dx
push 1
call graph_copy_page
mov [bp+@@page_access], 1
mov [bp+var_2], 0
graph_accesspage 0
graph_showpage 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
graph_accesspage [bp+@@page_access]
graph_showpage [bp+var_2]
mov [bp+@@page_access], 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, _ksoconfig
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
graph_accesspage 0
graph_showpage 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
graph_accesspage [bp+@@page_access]
graph_showpage [bp+var_2]
mov [bp+@@page_access], 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
graph_accesspage 1
graph_showpage 0
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
public DRAW_TRACK
draw_track 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, 192
jge loc_BF48
cmp [bp+arg_0], 0
jz short loc_BEF4
call grcg_setcolor pascal, (GC_RMW shl 16) + 5
push (12 shl 16) or 300
lea ax, [si+96]
push ax
call grcg_hline
push (12 shl 16) or 300
lea ax, [si+111]
push ax
call grcg_hline
push 12
lea ax, [si+96]
push ax
lea ax, [si+111]
push ax
call grcg_vline
push 300
lea ax, [si+96]
push ax
lea ax, [si+111]
push ax
call grcg_vline
GRCG_OFF_CLOBBERING dx
jmp short loc_BF05
; ---------------------------------------------------------------------------
loc_BEF4:
push 0
lea ax, [si+96]
push ax
push 1400010h
call bgimage_put_rect
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, word ptr _MUSIC_TITLES+2[bx]
mov dx, word ptr _MUSIC_TITLES[bx]
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 graph_putsa_fx
loc_BF48:
pop si
leave
retn 4
draw_track endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public DRAW_TRACKS
draw_tracks proc near
@@sel = byte ptr 4
push bp
mov bp, sp
push si
xor si, si
jmp short loc_BF6B
; ---------------------------------------------------------------------------
loc_BF55:
push si
mov al, [bp+@@sel]
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 draw_track
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 graph_putsa_fx
push 0C0120h
push 5
pushd [MUSICROOM_DOWN]
call graph_putsa_fx
push 0C0020h
push 3
mov bx, music_game
shl bx, 2
pushd dword ptr MUSICROOM_GAME[bx]
call graph_putsa_fx
pop si
pop bp
retn 2
draw_tracks endp
include th02/music/music.asm
include th05/music/music_cmt_load.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public DRAW_CMT_LINES
draw_cmt_lines proc pascal near
local @@y:word
push si
push di
push 1400020h
push 7
push ds
push offset _music_cmt
call graph_putsa_fx
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 graph_putsa_fx
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
draw_cmt_lines 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 _graph_putsa_fx_func, si
call draw_cmt_lines
call music_flip
call draw_cmt_lines
call music_flip
inc si
loc_C390:
cmp si, 8
jl short loc_C37F
mov _graph_putsa_fx_func, 2
call draw_cmt_lines
call music_flip
call draw_cmt_lines
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 _graph_putsa_fx_func, 2
push 1400020h
push 1400010h
call bgimage_put_rect
push 14000B4h
push 1400090h
call bgimage_put_rect
call music_flip
push 1400020h
push 1400010h
call bgimage_put_rect
push 14000B4h
push 1400090h
call bgimage_put_rect
pop bp
retn
sub_C3A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public DRAW_CMT
draw_cmt 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 screen_back_B_put
push 1400040h
push 1400100h
call bgimage_put_rect
cmp byte_13E96, 0
jz short loc_C42C
call sub_C376
jmp short loc_C43A
; ---------------------------------------------------------------------------
loc_C42C:
mov byte_13E96, 1
call draw_cmt_lines
call music_flip
call draw_cmt_lines
loc_C43A:
call screen_back_B_put
pop bp
retn 2
draw_cmt 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 bgimage_put_rect
pushd 60h
push 14000C0h
call bgimage_put_rect
call draw_tracks pascal, si
call music_flip
pushd 20h ; ' '
push 1400010h
call bgimage_put_rect
pushd 60h
push 14000C0h
call bgimage_put_rect
call draw_tracks pascal, si
pop si
pop bp
retn 2
sub_C441 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public MUSICROOM
musicroom proc near
@@sel = byte ptr -1
enter 2, 0
push si
xor si, si
mov word_1403A, 0
mov word_1403C, 0
mov _music_sel, 0
mov bx, music_game
add bx, bx
mov ax, MUSICROOM_TRACKCOUNTS[bx]
mov musicroom_trackcount, ax
mov byte_13E96, 0
call cdg_freeall
call text_clear
mov _music_page, 1
mov PaletteTone, 0
call far ptr palette_show
graph_showpage 0
graph_accesspage al
call graph_clear
graph_accesspage 1
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 _piano_setup
call screen_back_B_snap
call bgimage_snap
call draw_tracks pascal, word ptr _music_sel
push 0
call graph_copy_page
graph_accesspage 1
graph_showpage 0
call pfend
push ds
push offset aMusic_dat ; "music.dat"
call pfstart
mov al, _music_sel
mov ah, 0
call draw_cmt pascal, ax
mov PaletteTone, 64h ; 'd'
call far ptr palette_show
loc_C555:
call _input_reset_sense_held
cmp _key_det, INPUT_NONE
jz short loc_C57F
cmp si, 18h
jl short loc_C579
cmp _key_det, INPUT_UP
jz short loc_C574
cmp _key_det, INPUT_DOWN
jnz short loc_C579
loc_C574:
mov si, 14h
jmp short loc_C57F
; ---------------------------------------------------------------------------
loc_C579:
inc si
call music_flip
jmp short loc_C555
; ---------------------------------------------------------------------------
loc_C57F:
call _input_reset_sense_held
test _key_det.lo, low INPUT_UP
jz short loc_C5EB
mov al, _music_sel
mov [bp+@@sel], al
cmp _music_sel, 0
jbe short loc_C5D5
dec _music_sel
mov al, _music_sel
mov ah, 0
cmp ax, word_1403A
jge short loc_C5AE
mov al, _music_sel
mov ah, 0
jmp short loc_C61C
; ---------------------------------------------------------------------------
loc_C5AE:
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
call music_flip
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
jmp short loc_C5EB
; ---------------------------------------------------------------------------
loc_C5D5:
mov al, byte ptr musicroom_trackcount
mov _music_sel, al
mov ax, musicroom_trackcount
add ax, 0FFF5h
mov word_1403A, ax
push musicroom_trackcount
call sub_C441
loc_C5EB:
test _key_det.lo, low INPUT_DOWN
jz short loc_C666
mov al, _music_sel
mov [bp+@@sel], al
mov ah, 0
cmp ax, musicroom_trackcount
jge short loc_C652
inc _music_sel
mov al, _music_sel
mov ah, 0
mov dx, word_1403A
add dx, 0Ch
cmp ax, dx
jl short loc_C62B
mov al, _music_sel
mov ah, 0
add ax, 0FFF5h
loc_C61C:
mov word_1403A, ax
mov al, _music_sel
mov ah, 0
push ax
call sub_C441
jmp loc_C6E3
; ---------------------------------------------------------------------------
loc_C62B:
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
call music_flip
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
jmp short loc_C666
; ---------------------------------------------------------------------------
loc_C652:
mov _music_sel, 0
mov word_1403A, 0
mov al, _music_sel
mov ah, 0
push ax
call sub_C441
loc_C666:
test _key_det.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 _key_det.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 _music_sel, 0
mov word_1403C, 0
mov word_1403A, 0
mov bx, music_game
add bx, bx
mov ax, MUSICROOM_TRACKCOUNTS[bx]
mov musicroom_trackcount, ax
push 0
call sub_C441
kajacall KAJA_SONG_FADE, 32
call draw_cmt pascal, 0
mov bx, music_game
imul bx, 78h
call snd_load pascal, dword ptr _MUSIC_FILES[bx], SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
loc_C6E3:
test _key_det.lo, low INPUT_SHOT
jnz short loc_C6F1
test _key_det.hi, high INPUT_OK
jz short loc_C767
loc_C6F1:
mov al, _music_sel
mov ah, 0
cmp ax, musicroom_trackcount
jz loc_C77F
kajacall KAJA_SONG_FADE, 32
mov al, byte ptr word_1403C
mov [bp+@@sel], al
mov al, _music_sel
mov ah, 0
mov word_1403C, ax
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
call music_flip
call draw_track pascal, word ptr [bp+@@sel], 0
call draw_track pascal, word ptr _music_sel, 1
mov al, _music_sel
mov ah, 0
call draw_cmt pascal, ax
mov bx, music_game
imul bx, 78h
mov al, _music_sel
mov ah, 0
shl ax, 2
add bx, ax
call snd_load pascal, dword ptr _MUSIC_FILES[bx], SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
loc_C767:
test _key_det.hi, high INPUT_CANCEL
jnz short loc_C77F
cmp _key_det, INPUT_NONE
jnz loc_C555
xor si, si
call music_flip
jmp loc_C57F
; ---------------------------------------------------------------------------
loc_C77F:
call _input_reset_sense_held
cmp _key_det, INPUT_NONE
jz short loc_C790
call music_flip
jmp short loc_C77F
; ---------------------------------------------------------------------------
loc_C790:
call pfend
push ds
push offset aKaikidan1_dat1
call pfstart
kajacall KAJA_SONG_FADE, 16
call screen_back_B_free
graph_showpage 0
graph_accesspage al
push 1
call palette_black_out
call bgimage_free
call snd_load pascal, ds, offset aH_op+2, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
pop si
leave
retn
musicroom 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
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, _hiscore_rank
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
graph_accesspage 1
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
graph_accesspage 0
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, _hiscore_rank
mov ah, 0
add ax, ax
add ax, 14h
push ax
call super_put
push 2300178h
mov al, _hiscore_rank
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, _ksoconfig
mov al, es:[bx+11h]
mov _hiscore_rank, 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 _key_det.hi, high INPUT_OK
jnz short loc_CD17
test _key_det.lo, low INPUT_SHOT
jnz short loc_CD17
test _key_det.hi, high INPUT_CANCEL
jnz short loc_CD17
test _key_det.hi, high INPUT_OK
jnz short loc_CD17
test _key_det.lo, low INPUT_LEFT
jz short loc_CCF8
cmp _hiscore_rank, RANK_EASY
jz short loc_CCF8
dec _hiscore_rank
mov PaletteTone, 0
call far ptr palette_show
call sub_CBDC
push 1
call palette_black_in
loc_CCF8:
test _key_det.lo, low INPUT_RIGHT
jz short loc_CCA9
cmp _hiscore_rank, RANK_EXTRA
jnb short loc_CCA9
inc _hiscore_rank
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
graph_accesspage 1
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 _key_det, 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 _hiscore_rank, RANK_EASY
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, _hiscore_rank
mov ah, 0
add bx, ax
mov al, byte_1409E
mov [bx+5122h], al
mov bx, si
imul bx, 5
mov al, _hiscore_rank
mov ah, 0
add bx, ax
cmp byte ptr [bx+5122h], 80h
jz short loc_CDE7
mov bx, si
imul bx, 5
mov al, _hiscore_rank
mov ah, 0
add bx, ax
mov byte ptr [bx+5122h], 0
loc_CDE7:
cmp _hiscore_rank, RANK_EXTRA
jnb short loc_CE02
mov bx, si
imul bx, 5
mov al, _hiscore_rank
mov ah, 0
add bx, ax
mov al, [bx+5122h]
or byte_14116, al
loc_CE02:
inc _hiscore_rank
loc_CE06:
cmp _hiscore_rank, RANK_COUNT
jb short loc_CDA8
loc_CE0D:
inc si
loc_CE0E:
cmp si, 4
jl short loc_CDA1
les bx, _ksoconfig
mov al, es:[bx+11h]
mov _hiscore_rank, 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+216]
mov bx, 8
cwd
idiv bx
push ax
push di
lea ax, [si+223]
cwd
idiv bx
push ax
lea ax, [di+151]
push ax
call grcg_byteboxfill_x
mov ax, si
mov bx, 8
cwd
idiv bx
push ax
lea ax, [di+152]
push ax
lea ax, [si+223]
cwd
idiv bx
push ax
lea ax, [di+159]
push ax
call grcg_byteboxfill_x
GRCG_OFF_CLOBBERING dx
mov al, byte ptr word_14118
mov ah, 0
imul ax, 5
mov dl, _rank
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 bgimage_put_rect
lea ax, [si-8]
push ax
push di
push 800A0h
call bgimage_put_rect
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, _rank
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
graph_accesspage 1
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 bgimage_snap
graph_accesspage 1
graph_showpage 0
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, _ksoconfig
cmp byte ptr es:[bx+13h], 6
jnz short loc_D18A
mov _rank, RANK_EXTRA
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, _ksoconfig
mov al, es:[bx+11h]
mov _rank, 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 _key_det.lo, low INPUT_LEFT
jnz short loc_D1D0
test _key_det.lo, low INPUT_RIGHT
jz short loc_D223
loc_D1D0:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
graph_accesspage 1
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
graph_showpage 1
push 0
call graph_copy_page
mov vsync_Count1, 0
push 1
call frame_delay
graph_showpage 0
loc_D223:
test _key_det.lo, low INPUT_UP
jnz short loc_D231
test _key_det.lo, low INPUT_DOWN
jz short loc_D284
loc_D231:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
graph_accesspage 1
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
graph_showpage 1
push 0
call graph_copy_page
mov vsync_Count1, 0
push 1
call frame_delay
graph_showpage 0
loc_D284:
test _key_det.hi, high INPUT_OK
jnz short loc_D292
test _key_det.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, _ksoconfig
mov al, byte ptr word_14118
mov es:[bx+14h], al
push 1
call palette_black_out
call bgimage_free
xor ax, ax
leave
retn
; ---------------------------------------------------------------------------
loc_D2CC:
test _key_det.hi, high INPUT_CANCEL
jz short loc_D2E4
push 1
call palette_black_out
call bgimage_free
mov ax, 1
leave
retn
; ---------------------------------------------------------------------------
loc_D2E4:
mov al, _key_det.lo
mov [bp+var_1], al
jmp short loc_D2F7
; ---------------------------------------------------------------------------
loc_D2EC:
cmp _key_det, 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
include th02/exit_dos.asm
db 0
include th04/hardware/grppsafx.asm
include th04/formats/cdg_put_noalpha.asm
include th04/snd/se.asm
include th04/bgimage.asm
include th04/formats/cdg_put.asm
include th02/exit.asm
include th04/math/vector1_at.asm
include th04/math/vector2_at.asm
include th05/music/piano.asm
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1
db 0
include th04/bgimage_put_rect.asm
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, _pi_slot_buffers[si]
assume es:nothing
imul di, size PiHeader
push [bp+arg_6]
push [bp+arg_4]
mov ax, _pi_slot_headers._xsize[di]
push ax
shr ax, 1
push ax
mov di, _pi_slot_headers._ysize[di]
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, _pi_slot_buffers[si]
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, GRAM_400
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
outw2 EGC_ACTIVEPLANEREG, 0FFF0h
egc_selectpat
egc_setrop EGC_COMPAREREAD or EGC_WS_PATREG or EGC_RL_MEMREAD
outw2 EGC_ADDRRESSREG, 0
outw2 EGC_BITLENGTHREG, 0Fh
mov bx, word_1282C
mov ax, word_1282E
and ax, 3
shl ax, 1
add bx, ax
outw2 EGC_MASKREG, [bx]
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
include th02/initop.asm
include th04/hardware/input_sense.asm
include th05/hardware/input_held.asm
include th05/hardware/input_wait.asm
include th05/snd/measure.asm
include th05/snd/delaymea.asm
include th04/formats/cdg_put_nocolors.asm
include th05/hardware/frame_delay.asm
db 0
include th04/formats/cdg_load.asm
include th04/hardware/egccopyr.asm
even
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
include th04/hardware/grppsafx[data].asm
include th03/snd/se_state[data].asm
include th04/bgimage[data].asm
include th05/mem[data].asm
include th05/music/piano[data].asm
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
include th04/zunsoft[data].asm
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
public _MUSIC_TITLES
_MUSIC_TITLES label dword
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
public _MUSIC_FILES
_MUSIC_FILES label dword
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?
public _ksoconfig
_ksoconfig 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
include th05/music/piano[bss].asm
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
include th04/hardware/egccopyr[bss].asm
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/music[bss].asm
byte_13E96 db ?
db ?
public _screen_back_B
_screen_back_B 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 ? ;
_hiscore_rank db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
byte_14116 db ?
db ?
word_14118 dw ?
_rank db ?
dd ? ;
byte_1411F db ?
byte_14120 db ?
byte_14121 db ?
byte_14122 db ?
dd ? ;
db ? ;
end