ReC98/th05_op.asm

4278 lines
99 KiB
NASM
Raw Normal View History

;
; +-------------------------------------------------------------------------+
; | 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
.386 ; ... then switch to what we actually need.
; And yes, we can't move this to an include file for some reason.
BINARY = 'O'
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
2014-08-23 09:51:14 +00:00
include libs/master.lib/bfnt_entry_pat.asm
2014-08-23 10:08:48 +00:00
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
include libs/master.lib/atrtcmod.asm
2014-08-26 18:54:57 +00:00
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
2014-08-23 14:56:01 +00:00
include libs/master.lib/bfnt_palette_set.asm
2014-08-26 19:23:54 +00:00
include libs/master.lib/bgetc.asm
2014-08-26 22:21:45 +00:00
include libs/master.lib/palette_black_in.asm
2014-08-26 22:33:43 +00:00
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
2014-08-23 01:03:17 +00:00
include libs/master.lib/dos_axdx.asm
2014-08-23 01:02:18 +00:00
include libs/master.lib/dos_keyclear.asm
2014-08-22 23:48:16 +00:00
include libs/master.lib/dos_puts2.asm
2014-08-22 23:07:04 +00:00
include libs/master.lib/dos_read.asm
2014-08-22 22:59:10 +00:00
include libs/master.lib/dos_seek.asm
2014-08-22 23:38:22 +00:00
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
2014-08-30 05:58:36 +00:00
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
2014-08-30 06:32:10 +00:00
include libs/master.lib/file_create.asm
2014-08-30 06:46:38 +00:00
include libs/master.lib/file_exist.asm
2014-08-30 07:00:31 +00:00
include libs/master.lib/file_read.asm
2014-08-30 07:12:17 +00:00
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
2014-08-30 07:38:09 +00:00
include libs/master.lib/file_write.asm
2014-08-22 22:46:33 +00:00
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
2014-08-27 21:20:37 +00:00
include libs/master.lib/grcg_byteboxfill_x.asm
2014-08-27 22:17:57 +00:00
include libs/master.lib/grcg_hline.asm
2014-09-01 04:52:28 +00:00
include libs/master.lib/grcg_polygon_c.asm
include libs/master.lib/grcg_setcolor.asm
2014-08-27 22:48:06 +00:00
include libs/master.lib/grcg_vline.asm
2014-08-14 12:30:48 +00:00
include libs/master.lib/get_machine_98.asm
include libs/master.lib/get_machine_at.asm
2014-08-14 10:20:01 +00:00
include libs/master.lib/get_machine_dosbox.asm
2014-08-14 09:48:52 +00:00
include libs/master.lib/check_machine_fmr.asm
2014-08-14 12:48:55 +00:00
include libs/master.lib/get_machine.asm
2014-08-27 22:58:40 +00:00
include libs/master.lib/graph_400line.asm
2014-08-27 04:03:08 +00:00
include libs/master.lib/graph_clear.asm
2014-08-27 04:13:48 +00:00
include libs/master.lib/graph_copy_page.asm
2014-08-15 14:11:51 +00:00
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
2014-08-27 23:16:54 +00:00
include libs/master.lib/graph_start.asm
2014-08-23 11:46:31 +00:00
include libs/master.lib/js_end.asm
2014-08-23 12:01:53 +00:00
include libs/master.lib/keybeep.asm
2014-08-27 03:05:30 +00:00
include libs/master.lib/make_linework.asm
2014-08-23 14:18:30 +00:00
include libs/master.lib/palette_init.asm
2014-08-23 14:11:16 +00:00
include libs/master.lib/palette_show.asm
2014-08-27 01:11:13 +00:00
include libs/master.lib/pfclose.asm
2014-09-07 13:07:36 +00:00
include libs/master.lib/pfgetc.asm
2014-08-30 10:50:48 +00:00
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
2014-08-30 10:26:02 +00:00
include libs/master.lib/pfseek.asm
2014-08-30 10:13:04 +00:00
include libs/master.lib/random.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
2014-08-21 23:04:46 +00:00
include libs/master.lib/smem_wget.asm
2014-08-31 04:27:47 +00:00
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
2014-08-26 22:11:29 +00:00
include libs/master.lib/vsync_wait.asm
2014-08-21 23:19:52 +00:00
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
2014-08-22 21:56:33 +00:00
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
2014-08-22 21:33:18 +00:00
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
2014-09-03 13:41:25 +00:00
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
2014-08-25 21:08:17 +00:00
include libs/master.lib/bgm_mget.asm
include libs/master.lib/bgm_read_sdata.asm
include libs/master.lib/bgm_timer.asm
2014-08-25 22:01:58 +00:00
include libs/master.lib/bgm_pinit.asm
2014-08-26 04:18:06 +00:00
include libs/master.lib/bgm_timerhook.asm
include libs/master.lib/bgm_play.asm
2014-08-25 23:51:57 +00:00
include libs/master.lib/bgm_sound.asm
2014-08-25 22:34:16 +00:00
include libs/master.lib/bgm_effect_sound.asm
2014-08-25 22:40:14 +00:00
include libs/master.lib/bgm_stop_play.asm
2014-08-25 20:57:49 +00:00
include libs/master.lib/bgm_set_tempo.asm
include libs/master.lib/bgm_init_finish.asm
2014-08-25 23:41:08 +00:00
include libs/master.lib/bgm_stop_sound.asm
include libs/master.lib/graph_pack_put_8_noclip.asm
2014-09-15 01:03:52 +00:00
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
public START_GAME
start_game proc near
push bp
mov bp, sp
push si
push di
les bx, _resident
mov es:[bx+resident_t.end_sequence], ES_SCORE
mov es:[bx+resident_t.demo_num], 0
mov es:[bx+resident_t.stage], 0
mov al, es:[bx+resident_t.cfg_lives]
mov es:[bx+resident_t.credit_lives], al
mov al, es:[bx+resident_t.cfg_bombs]
mov es:[bx+resident_t.credit_bombs], al
call playchar_menu
or ax, ax
jnz short loc_A443
xor si, si
jmp short loc_A400
; ---------------------------------------------------------------------------
loc_A3CF:
les bx, _resident
add bx, si
mov es:[bx+resident_t.score_last], 0
mov bx, word ptr _resident
add bx, si
mov es:[bx+resident_t.score_highest], 0
xor di, di
jmp short loc_A3FA
; ---------------------------------------------------------------------------
loc_A3E9:
mov ax, di
shl ax, 3
les bx, _resident
add bx, ax
mov es:[bx+si+resident_t.stage_score], 0
inc di
loc_A3FA:
cmp di, 6
jl short loc_A3E9
inc si
loc_A400:
cmp si, 8
jl short loc_A3CF
call main_cdg_free
call cfg_save
kajacall KAJA_SONG_FADE, 10
2019-11-19 14:26:47 +00:00
call game_exit
les bx, _resident
cmp es:[bx+resident_t.debug_mode], 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
start_game endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public START_EXTRA
start_extra proc near
push bp
mov bp, sp
push si
push di
les bx, _resident
mov es:[bx+resident_t.demo_num], 0
mov es:[bx+resident_t.stage], STAGE_EXTRA
mov es:[bx+resident_t.credit_lives], 3
mov es:[bx+resident_t.credit_bombs], 3
call playchar_menu
or ax, ax
jnz short loc_A4CB
xor si, si
jmp short loc_A4A0
; ---------------------------------------------------------------------------
loc_A46F:
les bx, _resident
add bx, si
mov es:[bx+resident_t.score_last], 0
mov bx, word ptr _resident
add bx, si
mov es:[bx+resident_t.score_highest], 0
xor di, di
jmp short loc_A49A
; ---------------------------------------------------------------------------
loc_A489:
mov ax, di
shl ax, 3
les bx, _resident
add bx, ax
mov es:[bx+si+resident_t.stage_score], 0
inc di
loc_A49A:
cmp di, 6
jl short loc_A489
inc si
loc_A4A0:
cmp si, 8
jl short loc_A46F
call main_cdg_free
call cfg_save
kajacall KAJA_SONG_FADE, 10
2019-11-19 14:26:47 +00:00
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
start_extra endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public START_DEMO
start_demo proc near
push bp
mov bp, sp
push si
les bx, _resident
mov es:[bx+resident_t.end_sequence], ES_SCORE
mov es:[bx+resident_t.stage], 0
mov es:[bx+resident_t.credit_lives], 3
mov es:[bx+resident_t.credit_bombs], 3
inc es:[bx+resident_t.demo_num]
cmp es:[bx+resident_t.demo_num], 4
jbe short loc_A4FB
mov es:[bx+resident_t.demo_num], 1
loc_A4FB:
cmp _key_det, INPUT_LEFT or INPUT_RIGHT
jnz short loc_A535
cmp _extra_playable_with.PLAYCHAR_REIMU, 0
jz short loc_A529
cmp _extra_playable_with.PLAYCHAR_MARISA, 0
jz short loc_A529
cmp _extra_playable_with.PLAYCHAR_MIMA, 0
jz short loc_A529
cmp _extra_playable_with.PLAYCHAR_YUUKA, 0
jz short loc_A529
les bx, _resident
mov es:[bx+resident_t.demo_num], 5
jmp short loc_A535
; ---------------------------------------------------------------------------
loc_A529:
les bx, _resident
mov es:[bx+resident_t.demo_num], 0
jmp loc_A5E9
; ---------------------------------------------------------------------------
loc_A535:
les bx, _resident
mov al, es:[bx+resident_t.demo_num]
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, _resident
mov es:[bx+resident_t.playchar], PLAYCHAR_REIMU
mov es:[bx+resident_t.demo_stage], 3
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A55E:
les bx, _resident
mov es:[bx+resident_t.playchar], PLAYCHAR_MARISA
mov es:[bx+resident_t.demo_stage], 1
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A56E:
les bx, _resident
mov es:[bx+resident_t.playchar], PLAYCHAR_MIMA
mov es:[bx+resident_t.demo_stage], 2
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A57E:
les bx, _resident
mov es:[bx+resident_t.playchar], PLAYCHAR_YUUKA
mov es:[bx+resident_t.demo_stage], 4
jmp short loc_A5A4
; ---------------------------------------------------------------------------
loc_A58E:
les bx, _resident
mov es:[bx+resident_t.playchar], PLAYCHAR_MIMA
mov es:[bx+resident_t.demo_stage], 6
kajacall KAJA_SONG_FADE, 8
loc_A5A4:
xor si, si
jmp short loc_A5BF
; ---------------------------------------------------------------------------
loc_A5A8:
les bx, _resident
add bx, si
mov es:[bx+resident_t.score_last], 0
mov bx, word ptr _resident
add bx, si
mov es:[bx+resident_t.score_highest], 0
inc si
loc_A5BF:
cmp si, 8
jl short loc_A5A8
call main_cdg_free
call cfg_save
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
2019-11-19 14:26:47 +00:00
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
start_demo 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
public MAIN_PUT
main_put 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, 20
add ax, 250
mov di, ax
call egc_copy_rect_1_to_0 pascal, 256, ax, (128 shl 16) or 16
2015-01-12 21:48:13 +00:00
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, _resident
mov al, es:[bx+resident_t.rank]
mov ah, 0
add ax, 22
mov [bp+var_2], ax
jmp short loc_A69A
; ---------------------------------------------------------------------------
loc_A653:
cmp _extra_unlocked, 0
loc_A658:
jnz short loc_A665
2015-01-12 21:48:13 +00:00
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
call egc_copy_rect_1_to_0 pascal, large (0 shl 16) or 384, (RES_X shl 16) or 16
mov _graph_putsa_fx_func, 2
mov bx, [bp+var_2]
shl bx, 2
pushd _MENU_DESC[bx]
call _strlen
add sp, 4
shl ax, 3
mov dx, 624
sub dx, ax
push dx
push (384 shl 16) or 9
mov bx, [bp+var_2]
shl bx, 2
pushd _MENU_DESC[bx]
2019-11-24 13:32:32 +00:00
call graph_putsa_fx
loc_A705:
pop di
pop si
leave
retn 4
main_put 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
public OPTION_PUT
option_put proc near
@@y = 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, 224
mov ax, [bp+arg_2]
shl ax, 4
add ax, 250
mov [bp+@@y], ax
cmp [bp+arg_2], 7
jnz short loc_A737
mov [bp+@@y], 366
loc_A737:
call egc_copy_rect_1_to_0 pascal, 224, [bp+@@y], (192 shl 16) or 16
2015-01-12 21:48:13 +00:00
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 (320 shl 16) or 250
les bx, _resident
mov al, es:[bx+resident_t.rank]
mov ah, 0
add ax, 21
push ax
call cdg_put_nocolors
les bx, _resident
mov al, es:[bx+resident_t.rank]
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 (320 shl 16) or 266
les bx, _resident
mov al, es:[bx+resident_t.cfg_lives]
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 (320 shl 16) or 282
les bx, _resident
mov al, es:[bx+resident_t.cfg_bombs]
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, _resident
cmp es:[bx+resident_t.bgm_mode], SND_BGM_OFF
jnz short loc_A80B
mov ax, 1Ch
jmp short loc_A818
; ---------------------------------------------------------------------------
loc_A80B:
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
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, _resident
mov al, es:[bx+resident_t.bgm_mode]
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, _resident
cmp es:[bx+resident_t.se_mode], SND_SE_OFF
jnz short loc_A854
mov ax, 1Ch
jmp short loc_A865
; ---------------------------------------------------------------------------
loc_A854:
les bx, _resident
loc_A858:
mov al, es:[bx+resident_t.se_mode]
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, _resident
mov al, es:[bx+resident_t.se_mode]
mov ah, 0
add ax, 0Fh
jmp loc_A797
; ---------------------------------------------------------------------------
loc_A884:
push (272 shl 16) or 330
les bx, _resident
mov al, es:[bx+resident_t.turbo_mode]
mov ah, 0
mov dx, 33
sub dx, ax
push dx
call cdg_put_nocolors
mov di, 256
les bx, _resident
mov al, es:[bx+resident_t.turbo_mode]
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, 256
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+@@y], 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+@@y]
push 36
call cdg_put
call egc_copy_rect_1_to_0 pascal, large (0 shl 16) or 384, (RES_X shl 16) or 16
mov _graph_putsa_fx_func, 2
mov bx, si
shl bx, 2
pushd _MENU_DESC[bx]
call _strlen
add sp, 4
shl ax, 3
mov dx, 624
sub dx, ax
push dx
push (384 shl 16) or 9
mov bx, si
shl bx, 2
pushd _MENU_DESC[bx]
2019-11-24 13:32:32 +00:00
call graph_putsa_fx
loc_A951:
pop di
pop si
leave
retn 4
option_put 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
public MENU_SEL_MOVE
menu_sel_move proc near
arg_0 = byte ptr 4
arg_2 = byte ptr 6
push bp
mov bp, sp
mov al, _menu_sel
cbw
push ax
push 8
call _putfunc
mov al, [bp+arg_0]
add _menu_sel, al
mov al, _menu_sel
cbw
or ax, ax
jge short loc_A98B
mov al, [bp+arg_2]
mov _menu_sel, al
loc_A98B:
mov al, _menu_sel
cmp al, [bp+arg_2]
jle short loc_A998
mov _menu_sel, 0
loc_A998:
cmp _extra_unlocked, 0
jnz short loc_A9B6
mov al, _menu_sel
cbw
cmp ax, 1
jnz short loc_A9B6
cmp _in_option, 0
jnz short loc_A9B6
mov al, [bp+arg_0]
add _menu_sel, al
loc_A9B6:
mov al, _menu_sel
cbw
push ax
push 0Eh
call _putfunc
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
pop bp
retn 4
menu_sel_move endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public MAIN_UPDATE_AND_RENDER
main_update_and_render proc near
push bp
mov bp, sp
push si
cmp _main_menu_initialized, 0
jnz short loc_AA2B
mov _main_menu_unused_1, 0
mov _main_input_allowed, 0
call egc_copy_rect_1_to_0 pascal, (192 shl 16) or 250, (288 shl 16) or 160
xor si, si
jmp short loc_AA16
; ---------------------------------------------------------------------------
loc_AA00:
push si
mov al, _menu_sel
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 main_put
inc si
loc_AA16:
cmp si, 6
jl short loc_AA00
mov _putfunc, offset main_put
mov _main_menu_initialized, 1
mov _main_input_allowed, 0
loc_AA2B:
cmp _key_det, INPUT_NONE
jnz short loc_AA37
mov _main_input_allowed, 1
loc_AA37:
cmp _main_input_allowed, 0
jz loc_ABC0
test _key_det.lo, low INPUT_UP
jz short loc_AA4E
call menu_sel_move pascal, 5, -1
loc_AA4E:
test _key_det.lo, low INPUT_DOWN
jz short loc_AA5C
call menu_sel_move pascal, 5, 1
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, _menu_sel
cbw
mov bx, ax
cmp bx, 5
ja loc_ABA8
add bx, bx
jmp cs:off_ABC3[bx]
loc_AA91:
call start_game
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
call graph_copy_page pascal, 0
mov PaletteTone, 100
2014-08-23 14:11:16 +00:00
call far ptr palette_show
mov _main_menu_initialized, 0
mov _in_option, 0
mov _menu_sel, 0
jmp loc_ABC0
; ---------------------------------------------------------------------------
loc_AAE1:
call start_extra
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
call graph_copy_page pascal, 0
mov PaletteTone, 100
2014-08-23 14:11:16 +00:00
call far ptr palette_show
mov _main_menu_initialized, 0
mov _in_option, 0
mov _menu_sel, 1
jmp loc_ABC0
; ---------------------------------------------------------------------------
loc_AB31:
call score_menu
mov _main_menu_initialized, 0
jmp short loc_ABA8
; ---------------------------------------------------------------------------
loc_AB3B:
call musicroom
call main_cdg_load
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
call graph_copy_page pascal, 0
mov PaletteTone, 100
2014-08-23 14:11:16 +00:00
call far ptr palette_show
mov _main_menu_initialized, 0
mov _in_option, 0
mov _menu_sel, 3
jmp short loc_ABC0
; ---------------------------------------------------------------------------
loc_AB8D:
mov _main_menu_initialized, 0
mov _in_option, 1
mov _menu_sel, 0
jmp short loc_ABA8
; ---------------------------------------------------------------------------
loc_AB9E:
mov _main_menu_initialized, 0
mov _quit, 1
loc_ABA8:
test _key_det.hi, high INPUT_CANCEL
jz short loc_ABB4
mov _quit, 1
loc_ABB4:
cmp _key_det, INPUT_NONE
jz short loc_ABC0
mov _main_input_allowed, 0
loc_ABC0:
pop si
pop bp
retn
main_update_and_render 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
public OPTION_UPDATE_AND_RENDER
option_update_and_render proc near
push bp
mov bp, sp
push si
cmp _option_initialized, 0
jnz short loc_AC1F
mov _option_input_allowed, 0
call egc_copy_rect_1_to_0 pascal, (272 shl 16) or 250, (160 shl 16) or 144
xor si, si
jmp short loc_AC0A
; ---------------------------------------------------------------------------
loc_ABF4:
push si
mov al, _menu_sel
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 option_put
inc si
loc_AC0A:
cmp si, 8
jl short loc_ABF4
mov _putfunc, offset option_put
mov _option_initialized, 1
mov _option_input_allowed, 0
loc_AC1F:
cmp _key_det, INPUT_NONE
jnz short loc_AC2B
mov _option_input_allowed, 1
loc_AC2B:
cmp _option_input_allowed, 0
jz loc_AF2E
test _key_det.lo, low INPUT_UP
jz short loc_AC42
call menu_sel_move pascal, 7, -1
loc_AC42:
test _key_det.lo, low INPUT_DOWN
jz short loc_AC50
call menu_sel_move pascal, 7, 1
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, _menu_sel
cbw
cmp ax, 6
jz short loc_AC71
cmp ax, 7
jz short loc_ACD8
jmp loc_AD01
; ---------------------------------------------------------------------------
loc_AC71:
les bx, _resident
mov es:[bx+resident_t.rank], RANK_NORMAL
mov es:[bx+resident_t.cfg_lives], CFG_LIVES_DEFAULT
mov es:[bx+resident_t.cfg_bombs], CFG_LIVES_DEFAULT
mov es:[bx+resident_t.bgm_mode], SND_BGM_FM86
mov es:[bx+resident_t.se_mode], SND_SE_FM
mov es:[bx+resident_t.turbo_mode], 1
kajacall KAJA_SONG_STOP
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
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 _option_initialized, 0
jmp short loc_ACF8
; ---------------------------------------------------------------------------
loc_ACD8:
call snd_se_reset
call snd_se_play pascal, 11
call snd_se_update
mov _option_initialized, 0
mov _menu_sel, 4
mov _in_option, 0
loc_ACF8:
test _key_det.lo, low INPUT_RIGHT
jz loc_ADFF
loc_AD01:
mov al, _menu_sel
cbw
mov bx, ax
cmp bx, 5
ja loc_ADF5
add bx, bx
jmp cs:off_AF3D[bx]
loc_AD15:
les bx, _resident
inc es:[bx+resident_t.rank]
cmp es:[bx+resident_t.rank], RANK_LUNATIC
jbe loc_ADF5
mov es:[bx+resident_t.rank], RANK_EASY
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD2E:
les bx, _resident
inc es:[bx+resident_t.cfg_lives]
cmp es:[bx+resident_t.cfg_lives], CFG_LIVES_MAX
jbe loc_ADF5
mov es:[bx+resident_t.cfg_lives], 1
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD47:
les bx, _resident
inc es:[bx+resident_t.cfg_bombs]
cmp es:[bx+resident_t.cfg_bombs], CFG_BOMBS_MAX
jbe loc_ADF5
mov es:[bx+resident_t.cfg_bombs], 0
jmp loc_ADF5
; ---------------------------------------------------------------------------
loc_AD60:
les bx, _resident
inc es:[bx+resident_t.bgm_mode]
cmp es:[bx+resident_t.bgm_mode], SND_BGM_MODE_COUNT
jb short loc_AD74
mov es:[bx+resident_t.bgm_mode], SND_BGM_OFF
loc_AD74:
kajacall KAJA_SONG_STOP
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
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, _resident
cmp es:[bx+resident_t.se_mode], SND_SE_OFF
jnz short loc_ADBA
mov es:[bx+resident_t.se_mode], SND_SE_BEEP
jmp short loc_ADC2
; ---------------------------------------------------------------------------
loc_ADBA:
les bx, _resident
dec es:[bx+resident_t.se_mode]
loc_ADC2:
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
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, _resident
mov al, 1
sub al, es:[bx+resident_t.turbo_mode]
mov es:[bx+resident_t.turbo_mode], al
loc_ADF5:
mov al, _menu_sel
cbw
push ax
push 0Eh
call option_put
loc_ADFF:
test _key_det.lo, low INPUT_LEFT
jz loc_AF0C
mov al, _menu_sel
cbw
mov bx, ax
cmp bx, 5
ja loc_AF02
add bx, bx
jmp cs:off_AF31[bx]
loc_AE1C:
les bx, _resident
cmp es:[bx+resident_t.rank], RANK_EASY
jnz short loc_AE2C
mov es:[bx+resident_t.rank], RANK_EXTRA
loc_AE2C:
les bx, _resident
dec es:[bx+resident_t.rank]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE37:
les bx, _resident
cmp es:[bx+resident_t.cfg_lives], 1
jnz short loc_AE47
mov es:[bx+resident_t.cfg_lives], (CFG_LIVES_MAX + 1)
loc_AE47:
les bx, _resident
dec es:[bx+resident_t.cfg_lives]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE52:
les bx, _resident
cmp es:[bx+resident_t.cfg_bombs], 0
jnz short loc_AE62
mov es:[bx+resident_t.cfg_bombs], (CFG_BOMBS_MAX + 1)
loc_AE62:
les bx, _resident
dec es:[bx+resident_t.cfg_bombs]
jmp loc_AF02
; ---------------------------------------------------------------------------
loc_AE6D:
les bx, _resident
cmp es:[bx+resident_t.bgm_mode], SND_BGM_OFF
jnz short loc_AE7F
mov es:[bx+resident_t.bgm_mode], SND_BGM_FM86
jmp short loc_AE87
; ---------------------------------------------------------------------------
loc_AE7F:
les bx, _resident
dec es:[bx+resident_t.bgm_mode]
loc_AE87:
kajacall KAJA_SONG_STOP
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
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, _resident
inc es:[bx+resident_t.se_mode]
cmp es:[bx+resident_t.se_mode], SND_SE_MODE_COUNT
jb short loc_AECF
mov es:[bx+resident_t.se_mode], SND_SE_OFF
loc_AECF:
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
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, _resident
mov al, 1
sub al, es:[bx+resident_t.turbo_mode]
mov es:[bx+resident_t.turbo_mode], al
loc_AF02:
mov al, _menu_sel
cbw
push ax
push 0Eh
call option_put
loc_AF0C:
test _key_det.hi, high INPUT_CANCEL
jz short loc_AF22
mov _option_initialized, 0
mov _menu_sel, 4
mov _in_option, 0
loc_AF22:
cmp _key_det, INPUT_NONE
jz short loc_AF2E
mov _option_input_allowed, 0
loc_AF2E:
pop si
pop bp
retn
option_update_and_render 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
2014-08-20 14:45:24 +00:00
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
2014-08-22 23:48:16 +00:00
call dos_puts2
call _getch
loc_AF7D:
call cfg_load
les bx, _resident
cmp es:[bx+resident_t.rank], RANK_DEFAULT
jnz short loc_AF97
call sub_B5A6
les bx, _resident
mov es:[bx+resident_t.rank], 1
loc_AF97:
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
les bx, _resident
cmp es:[bx+resident_t.zunsoft_shown], 0
jnz short loc_AFD1
call zunsoft
les bx, _resident
mov es:[bx+resident_t.zunsoft_shown], 1
loc_AFD1:
les bx, _resident
cmp es:[bx+resident_t.demo_num], 5
jnz short loc_AFE1
mov es:[bx+resident_t.demo_num], 0
loc_AFE1:
les bx, _resident
cmp es:[bx+resident_t.demo_num], 0
jnz short loc_AFF4
kajacall KAJA_SONG_STOP
loc_AFF4:
call op_animate
call main_cdg_load
call scoredat_cleared_load
mov _in_option, 0
mov _quit, 0
mov _menu_sel, 0
jmp short loc_B058
; ---------------------------------------------------------------------------
loc_B00E:
call _input_reset_sense_held
mov al, _in_option
cbw
or ax, ax
jz short loc_B022
cmp ax, 1
jz short loc_B032
jmp short loc_B035
; ---------------------------------------------------------------------------
loc_B022:
call main_update_and_render
cmp si, 640
jl short loc_B035
call start_demo
xor si, si
jmp short loc_B035
; ---------------------------------------------------------------------------
loc_B032:
call option_update_and_render
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, _resident
inc es:[bx+resident_t.rand]
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
loc_B058:
cmp _quit, 0
jz short loc_B00E
call main_cdg_free
call cfg_save_exit
2014-08-20 14:45:24 +00:00
call text_clear
call game_exit_to_dos
2014-09-03 13:41:25 +00:00
call respal_free
pop si
pop bp
retf
_main endp
include th04/setup.asm
; =============== 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 _window_tiles.x, (448 / WINDOW_TILE_W)
call window_singleline pascal, (96 shl 16) or 80
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_BGM_HEAD
mov _window_tiles.x, (160 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 3
call window_dropdown_animate pascal, ( 32 shl 16) or 128
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 setup_bgm_choice_put
inc [bp+var_2]
loc_B3C3:
cmp [bp+var_2], 3
jl short loc_B3AC
mov _window_tiles.x, (400 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 9
call window_dropdown_animate pascal, (192 shl 16) or 128
call setup_bgm_help_put
mov [bp+var_2], 2
loc_B3E6:
call input_wait_for_change pascal, 0
push 1
2014-11-23 21:25:22 +00:00
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
call setup_bgm_choice_put pascal, [bp+var_2], 0
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:
call setup_bgm_choice_put pascal, [bp+var_2], 0Fh
loc_B429:
test _key_det.lo, low INPUT_DOWN
jz short loc_B3E6
call setup_bgm_choice_put pascal, [bp+var_2], 0
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:
call setup_bgm_choice_put pascal, [bp+var_2], 0Fh
jmp short loc_B3E6
; ---------------------------------------------------------------------------
loc_B452:
mov _window_tiles.x, (400 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 9
call window_rollup_animate pascal, (192 shl 16) or 128
mov _window_tiles.x, (160 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 3
call window_rollup_animate pascal, ( 32 shl 16) or 128
les bx, _resident
mov al, byte ptr [bp+var_2]
mov es:[bx+resident_t.bgm_mode], 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 _window_tiles.x, (448 / WINDOW_TILE_W)
call window_singleline pascal, (96 shl 16) or 80
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_SE_HEAD
mov _window_tiles.x, (160 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 3
call window_dropdown_animate pascal, ( 32 shl 16) or 128
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, 15
jmp short loc_B4D9
; ---------------------------------------------------------------------------
loc_B4D7:
xor ax, ax
loc_B4D9:
push ax
call setup_se_choice_put
inc [bp+var_2]
loc_B4E0:
cmp [bp+var_2], 3
jl short loc_B4C9
mov _window_tiles.x, (400 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 9
call window_dropdown_animate pascal, (192 shl 16) or 128
call setup_se_help_put
mov [bp+var_2], 1
loc_B503:
call input_wait_for_change pascal, 0
push 1
2014-11-23 21:25:22 +00:00
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
call setup_se_choice_put pascal, [bp+var_2], 0
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:
call setup_se_choice_put pascal, [bp+var_2], 15
loc_B546:
test _key_det.lo, low INPUT_UP
jz short loc_B503
call setup_se_choice_put pascal, [bp+var_2], 0
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:
call setup_se_choice_put pascal, [bp+var_2], 15
jmp short loc_B503
; ---------------------------------------------------------------------------
loc_B56F:
mov _window_tiles.x, (400 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 9
call window_rollup_animate pascal, (192 shl 16) or 128
mov _window_tiles.x, (160 / WINDOW_TILE_W)
mov _window_tiles.y, 1 + 3
call window_rollup_animate pascal, ( 32 shl 16) or 128
les bx, _resident
mov al, byte ptr [bp+var_2]
mov es:[bx+resident_t.se_mode], 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
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
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
call graph_copy_page pascal, 0
push 1
2014-08-26 22:21:45 +00:00
call palette_black_in
call sub_B36C
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
call graph_copy_page pascal, 0
call sub_B489
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
call super_free
pop bp
retn
sub_B5A6 endp
include th04/zunsoft.asm
include th04/formats/cfg.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
main_cdg_load 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
main_cdg_load endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
main_cdg_free proc near
push bp
mov bp, sp
call cdg_freeall
pop bp
retn
main_cdg_free endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
op_animate proc near
@@page_show = byte ptr -2
@@page_access = byte ptr -1
enter 2, 0
push si
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
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
2015-01-12 21:48:13 +00:00
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
call graph_copy_page pascal, 1
mov [bp+@@page_access], 1
mov [bp+@@page_show], 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 (0 shl 16) or 278
mov ax, si
mov bx, 8
cwd
idiv bx
push ax
call pi_slot_put
loc_BD81:
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
graph_accesspage [bp+@@page_access]
graph_showpage [bp+@@page_show]
mov [bp+@@page_access], al
mov al, 1
sub al, [bp+@@page_show]
mov [bp+@@page_show], al
lea ax, [si+36]
2014-08-23 13:47:05 +00:00
mov PaletteTone, ax
2014-08-23 14:11:16 +00:00
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
call graph_copy_page pascal, 1
les bx, _resident
cmp es:[bx+resident_t.demo_num], 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
2014-11-23 21:25:22 +00:00
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 pi_slot_put_mask
loc_BE25:
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
graph_accesspage [bp+@@page_access]
graph_showpage [bp+@@page_show]
mov [bp+@@page_access], al
mov al, 1
sub al, [bp+@@page_show]
mov [bp+@@page_show], 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
call graph_copy_page pascal, 0
pop si
leave
retn
op_animate 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
2015-01-12 21:48:13 +00:00
call grcg_setcolor pascal, (GC_RMW shl 16) + 5
push (12 shl 16) or 300
lea ax, [si+96]
push ax
2014-08-27 22:17:57 +00:00
call grcg_hline
push (12 shl 16) or 300
lea ax, [si+111]
push ax
2014-08-27 22:17:57 +00:00
call grcg_hline
push 12
lea ax, [si+96]
push ax
lea ax, [si+111]
push ax
2014-08-27 22:48:06 +00:00
call grcg_vline
push 300
lea ax, [si+96]
push ax
lea ax, [si+111]
push ax
2014-08-27 22:48:06 +00:00
call grcg_vline
GRCG_OFF_CLOBBERING dx
jmp short loc_BF05
; ---------------------------------------------------------------------------
loc_BEF4:
push 0
lea ax, [si+96]
push ax
push (320 shl 16) or 16
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, 96
push 12
push si
mov al, [bp+var_5]
mov ah, 0
push ax
push [bp+var_2]
push dx
2019-11-24 13:32:32 +00:00
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:
2014-07-03 19:28:21 +00:00
mov ax, musicroom_trackcount
add ax, 2
cmp ax, si
jg short loc_BF55
call graph_putsa_fx pascal, (12 shl 16) or 80, 5, large [MUSICROOM_UP]
call graph_putsa_fx pascal, (12 shl 16) or 288, 5, large [MUSICROOM_DOWN]
push (12 shl 16) or 32
push 3
mov bx, music_game
shl bx, 2
pushd dword ptr MUSICROOM_GAME[bx]
2019-11-24 13:32:32 +00:00
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
call graph_putsa_fx pascal, (320 shl 16) or 32, 7, ds, offset _music_cmt
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
call graph_putsa_fx pascal, 320, @@y, 7, ds, si
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
call bgimage_put_rect pascal, (320 shl 16) or 32, (320 shl 16) or 16
call bgimage_put_rect pascal, (320 shl 16) or 180, (320 shl 16) or 144
call music_flip
call bgimage_put_rect pascal, (320 shl 16) or 32, (320 shl 16) or 16
call bgimage_put_rect pascal, (320 shl 16) or 180, (320 shl 16) or 144
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
call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 256
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]
call bgimage_put_rect pascal, large (0 shl 16) or 32, (320 shl 16) or 16
call bgimage_put_rect pascal, large (0 shl 16) or 96, (320 shl 16) or 192
call draw_tracks pascal, si
call music_flip
call bgimage_put_rect pascal, large (0 shl 16) or 32, (320 shl 16) or 16
call bgimage_put_rect pascal, large (0 shl 16) or 96, (320 shl 16) or 192
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]
2014-07-03 19:28:21 +00:00
mov musicroom_trackcount, ax
mov byte_13E96, 0
call cdg_freeall
2014-08-20 14:45:24 +00:00
call text_clear
mov _music_page, 1
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
graph_showpage 0
graph_accesspage al
2014-08-27 04:03:08 +00:00
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
call graph_copy_page pascal, 0
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, 100
2014-08-23 14:11:16 +00:00
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:
2014-07-03 19:28:21 +00:00
mov al, byte ptr musicroom_trackcount
mov _music_sel, al
2014-07-03 19:28:21 +00:00
mov ax, musicroom_trackcount
add ax, 0FFF5h
mov word_1403A, ax
2014-07-03 19:28:21 +00:00
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
2014-07-03 19:28:21 +00:00
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]
2014-07-03 19:28:21 +00:00
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
2014-07-03 19:28:21 +00:00
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
2014-08-26 22:33:43 +00:00
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
include th04/formats/scoredat_decode_both.asm
include th04/formats/scoredat_encode.asm
include th05/formats/scoredat_recreate_op.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public SCOREDAT_LOAD
scoredat_load proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push ds
push offset aGensou_scr ; "GENSOU.SCR"
2014-08-30 06:46:38 +00:00
call file_exist
or ax, ax
jz short loc_CA0C
push ds
push offset aGensou_scr ; "GENSOU.SCR"
2014-08-30 07:12:17 +00:00
call file_ropen
mov ax, [bp+arg_0]
imul ax, 5
mov dl, _hiscore_rank
mov dh, 0
add ax, dx
imul ax, size scoredat_section_t
movzx eax, ax
call file_seek pascal, large eax, 0
call file_read pascal, ds, offset _hi, size scoredat_section_t
call file_close
call scoredat_decode_func
or al, al
jz short loc_CA15
loc_CA0C:
call scoredat_recreate_op
mov al, 1
pop bp
retn 2
; ---------------------------------------------------------------------------
loc_CA15:
mov al, 0
pop bp
retn 2
scoredat_load 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
@@y = 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, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
cmp ax, 10
jl short loc_CA5B
lea ax, [si-16]
push ax
push [bp+@@y]
mov bx, di
shl bx, 3
mov al, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
mov bx, 10
cwd
idiv bx
push ax
call super_put
loc_CA5B:
push si
push [bp+@@y]
mov bx, di
shl bx, 3
mov al, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
mov bx, 10
cwd
idiv bx
push dx
call super_put
add si, 16
mov [bp+var_2], 6
jmp short loc_CAA4
; ---------------------------------------------------------------------------
loc_CA83:
push si
push [bp+@@y]
mov bx, di
shl bx, 3
add bx, [bp+var_2]
mov al, _hi.score.g_points[bx]
mov ah, 0
add ax, -gb_0_
push ax
call super_put
dec [bp+var_2]
add si, 16
loc_CAA4:
cmp [bp+var_2], 0
jge short loc_CA83
pop di
pop si
leave
retn 6
sub_CA1B endp
include th04/hiscore/hiscore_stage_put.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CB00 proc near
@@color = 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, 328
loc_CB23:
mov di, 88
jmp short loc_CB33
; ---------------------------------------------------------------------------
loc_CB28:
mov si, 8
jmp short loc_CB30
; ---------------------------------------------------------------------------
loc_CB2D:
mov si, 328
loc_CB30:
mov di, 224
loc_CB33:
mov [bp+@@color], 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, 328
loc_CB51:
mov ax, [bp+arg_0]
shl ax, 4
add ax, 96
jmp short loc_CB6D
; ---------------------------------------------------------------------------
loc_CB5C:
mov si, 8
jmp short loc_CB64
; ---------------------------------------------------------------------------
loc_CB61:
mov si, 328
loc_CB64:
mov ax, [bp+arg_0]
shl ax, 4
add ax, 232
loc_CB6D:
mov di, ax
loc_CB6F:
mov [bp+@@color], 2
loc_CB74:
lea ax, [si+2]
push ax
lea ax, [di+2]
push ax
push GAIJI_W
mov ax, [bp+arg_0]
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push 14
2014-09-15 01:03:52 +00:00
call graph_gaiji_puts
push si
push di
push GAIJI_W
mov ax, [bp+arg_0]
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push [bp+@@color]
2014-09-15 01:03:52 +00:00
call graph_gaiji_puts
lea ax, [si+150]
call sub_CA1B pascal, ax, di, [bp+arg_0]
lea ax, [si+286]
push ax
push di
mov bx, [bp+arg_0]
mov al, _hi.score.g_stage[bx]
mov ah, 0
push ax
call hiscore_stage_put
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
score_render 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 scoredat_load
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 (496 shl 16) or 376
mov al, _hiscore_rank
mov ah, 0
add ax, ax
add ax, 20
push ax
call super_put
push (560 shl 16) or 376
mov al, _hiscore_rank
mov ah, 0
add ax, ax
add ax, 21
push ax
call super_put
pop di
pop si
pop bp
retn
score_render endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public SCORE_MENU
score_menu 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
2014-08-26 22:33:43 +00:00
call palette_black_out
les bx, _resident
mov al, es:[bx+resident_t.rank]
mov _hiscore_rank, al
call pi_slot_load pascal, 0, ds, offset aHi01_pi
loc_CC9F:
call score_render
call palette_black_in pascal, 1
loc_CCA9:
call _input_reset_sense_held
call frame_delay pascal, 1
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
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
call score_render
call palette_black_in pascal, 1
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
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
jmp short loc_CC9F
; ---------------------------------------------------------------------------
loc_CD17:
kajacall KAJA_SONG_FADE, 1
call palette_black_out pascal, 1
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
call graph_copy_page pascal, 0
call palette_black_in pascal, 1
loc_CD64:
call _input_reset_sense_held
call frame_delay pascal, 1
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
score_menu endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public SCOREDAT_CLEARED_LOAD
scoredat_cleared_load proc near
push bp
mov bp, sp
push si
mov _extra_unlocked, 0
xor si, si
jmp short loc_CE0E
; ---------------------------------------------------------------------------
loc_CDA1:
mov _hiscore_rank, RANK_EASY
jmp short loc_CE06
; ---------------------------------------------------------------------------
loc_CDA8:
push si
call scoredat_load
or al, al
jnz short loc_CE0D
mov bx, si
imul bx, RANK_COUNT
mov al, _hiscore_rank
mov ah, 0
add bx, ax
mov al, _hi.score.cleared
mov _cleared_with[bx], al
mov bx, si
imul bx, RANK_COUNT
mov al, _hiscore_rank
mov ah, 0
add bx, ax
cmp _cleared_with[bx], SCOREDAT_CLEARED
jz short loc_CDE7
mov bx, si
imul bx, RANK_COUNT
mov al, _hiscore_rank
mov ah, 0
add bx, ax
mov _cleared_with[bx], 0
loc_CDE7:
cmp _hiscore_rank, RANK_EXTRA
jnb short loc_CE02
mov bx, si
imul bx, RANK_COUNT
mov al, _hiscore_rank
mov ah, 0
add bx, ax
mov al, _cleared_with[bx]
or _extra_unlocked, 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, _resident
mov al, es:[bx+resident_t.rank]
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, RANK_COUNT
mov al, _cleared_with[bx].RANK_EASY
mov bx, si
imul bx, RANK_COUNT
or al, _cleared_with[bx].RANK_NORMAL
mov bx, si
imul bx, RANK_COUNT
or al, _cleared_with[bx].RANK_HARD
mov bx, si
imul bx, RANK_COUNT
or al, _cleared_with[bx].RANK_LUNATIC
mov _extra_playable_with[si], al
inc si
loc_CE5D:
cmp si, PLAYCHAR_COUNT
jl short loc_CE34
pop si
pop bp
retn
scoredat_cleared_load endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
darken_pic 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, ( 48 * ROW_SIZE) + ( 16 / 8)
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE83:
mov si, ( 48 * ROW_SIZE) + (272 / 8)
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE88:
mov si, (224 * ROW_SIZE) + (160 / 8)
jmp short loc_CE90
; ---------------------------------------------------------------------------
loc_CE8D:
mov si, (224 * ROW_SIZE) + (400 / 8)
loc_CE90:
2015-01-12 21:48:13 +00:00
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], (224 / 8)
jl short loc_CEC6
inc di
add si, ROW_SIZE - (224 / 8)
loc_CEE5:
cmp di, 160
jl short loc_CEA7
GRCG_OFF_CLOBBERING dx
pop di
pop si
leave
retn 2
darken_pic 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
put_pic proc near
@@y = word ptr -4
@@x = word ptr -2
@@highlight = word ptr 4
enter 4, 0
push si
push di
mov al, _playchar_menu_sel
mov ah, 0
mov bx, ax
cmp bx, PLAYCHAR_COUNT - 1
ja short loc_CF59
add bx, bx
jmp cs:off_D08D[bx]
@@reimu:
mov si, 16
mov di, 48
mov [bp+@@x], 176
mov [bp+@@y], 192
jmp short loc_CF59
; ---------------------------------------------------------------------------
@@marisa:
mov si, 272
mov di, 48
mov [bp+@@x], 432
mov [bp+@@y], 192
jmp short loc_CF59
; ---------------------------------------------------------------------------
@@mima:
mov si, 160
mov di, 224
mov [bp+@@x], 320
jmp short loc_CF54
; ---------------------------------------------------------------------------
@@yuuka:
mov si, 400
mov di, 224
mov [bp+@@x], 560
loc_CF54:
mov [bp+@@y], 368
loc_CF59:
cmp [bp+@@highlight], 0
jnz loc_D012
mov al, _playchar_menu_sel
mov ah, 0
mov bx, ax
cmp _selectable_with[bx], 0
jz short loc_CF82
lea ax, [si-8]
push ax
lea ax, [di-8]
push ax
mov al, _playchar_menu_sel
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
2015-01-12 21:48:13 +00:00
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
2014-08-27 21:20:37 +00:00
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
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
GRCG_OFF_CLOBBERING dx
mov al, _playchar_menu_sel
mov ah, 0
imul ax, RANK_COUNT
mov dl, _rank
mov dh, 0
add ax, dx
mov bx, ax
cmp _cleared_with[bx], 0
jz loc_D086
mov ax, [bp+@@x]
add ax, -8
push ax
mov ax, [bp+@@y]
add ax, -8
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 (224 shl 16) or 8
call bgimage_put_rect
lea ax, [si-8]
call bgimage_put_rect pascal, ax, di, (8 shl 16) or 160
mov al, _playchar_menu_sel
mov ah, 0
mov bx, ax
cmp _selectable_with[bx], 0
jz short loc_D050
push si
push di
mov al, _playchar_menu_sel
mov ah, 0
add ax, 40
push ax
jmp short loc_D054
; ---------------------------------------------------------------------------
loc_D050:
push si
push di
push 45
loc_D054:
call cdg_put_noalpha
mov al, _playchar_menu_sel
mov ah, 0
imul ax, RANK_COUNT
mov dl, _rank
mov dh, 0
add ax, dx
mov bx, ax
cmp _cleared_with[bx], 0
jz short loc_D07F
call cdg_put pascal, [bp+@@x], [bp+@@y], 44
loc_D07F:
call darken_pic pascal, word ptr _playchar_menu_sel
loc_D086:
pop di
pop si
leave
retn 2
db 0
off_D08D dw offset @@reimu
dw offset @@marisa
dw offset @@mima
dw offset @@yuuka
put_pic endp
; ---------------------------------------------------------------------------
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
playchar_menu_init proc near
@@i = word ptr -2
enter 2, 0
push si
mov al, _playchar_menu_sel
mov ah, 0
mov [bp+@@i], ax
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
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
call graph_copy_page pascal, 0
call bgimage_snap
graph_accesspage 1
graph_showpage 0
xor si, si
mov _playchar_menu_sel, PLAYCHAR_REIMU
jmp short loc_D111
; ---------------------------------------------------------------------------
loc_D0F7:
mov al, _playchar_menu_sel
mov ah, 0
cmp ax, [bp+@@i]
jz short loc_D106
mov ax, 1
jmp short loc_D108
; ---------------------------------------------------------------------------
loc_D106:
xor ax, ax
loc_D108:
push ax
call put_pic
inc si
inc _playchar_menu_sel
loc_D111:
cmp si, PLAYCHAR_COUNT
jl short loc_D0F7
mov al, byte ptr [bp+@@i]
mov _playchar_menu_sel, al
call graph_copy_page pascal, 0
push 1
2014-08-26 22:21:45 +00:00
call palette_black_in
pop si
leave
retn
playchar_menu_init endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
playchar_menu proc near
@@i = word ptr -4
@@input_locked = byte ptr -1
enter 4, 0
mov [bp+@@i], 0
jmp short loc_D146
; ---------------------------------------------------------------------------
loc_D138:
mov bx, [bp+@@i]
mov al, _extra_playable_with[bx]
mov _selectable_with[bx], al
inc [bp+@@i]
loc_D146:
cmp [bp+@@i], PLAYCHAR_COUNT
jl short loc_D138
les bx, _resident
cmp es:[bx+resident_t.stage], STAGE_EXTRA
jnz short @@not_extra
mov _rank, RANK_EXTRA
mov _playchar_menu_sel, -1
mov [bp+@@i], 0
jmp short loc_D182
; ---------------------------------------------------------------------------
loc_D168:
cmp _playchar_menu_sel, -1
jnz short loc_D17F
mov bx, [bp+@@i]
cmp _selectable_with[bx], 0
jz short loc_D17F
mov al, byte ptr [bp+@@i]
mov _playchar_menu_sel, al
loc_D17F:
inc [bp+@@i]
loc_D182:
cmp [bp+@@i], PLAYCHAR_COUNT
jl short loc_D168
jmp short loc_D1B2
; ---------------------------------------------------------------------------
@@not_extra:
mov [bp+@@i], 0
jmp short loc_D19C
; ---------------------------------------------------------------------------
loc_D191:
mov bx, [bp+@@i]
mov _selectable_with[bx], 1
inc [bp+@@i]
loc_D19C:
cmp [bp+@@i], PLAYCHAR_COUNT
jl short loc_D191
les bx, _resident
mov al, es:[bx+resident_t.rank]
mov _rank, al
mov _playchar_menu_sel, PLAYCHAR_REIMU
loc_D1B2:
call playchar_menu_init
loc_D1B5:
call _input_reset_sense_held
cmp [bp+@@input_locked], 0
jnz loc_D2EC
test _key_det.lo, low INPUT_LEFT
jnz short @@left_or_right_pressed
test _key_det.lo, low INPUT_RIGHT
jz short loc_D223
@@left_or_right_pressed:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
graph_accesspage 1
call put_pic pascal, 1
xor _playchar_menu_sel, 1 ; 0<->1 2<->3
call put_pic pascal, 0
mov vsync_Count1, 0
call frame_delay pascal, 1
graph_showpage 1
call graph_copy_page pascal, 0
mov vsync_Count1, 0
call frame_delay pascal, 1
graph_showpage 0
loc_D223:
test _key_det.lo, low INPUT_UP
jnz short @@up_or_down_pressed
test _key_det.lo, low INPUT_DOWN
jz short loc_D284
@@up_or_down_pressed:
call snd_se_reset
call snd_se_play pascal, 1
call snd_se_update
graph_accesspage 1
call put_pic pascal, 1
xor _playchar_menu_sel, 2 ; 0<->2 1<->3
call put_pic pascal, 0
mov vsync_Count1, 0
call frame_delay pascal, 1
graph_showpage 1
call graph_copy_page pascal, 0
mov vsync_Count1, 0
call frame_delay pascal, 1
graph_showpage 0
loc_D284:
test _key_det.hi, high INPUT_OK
jnz short @@z_pressed
test _key_det.lo, low INPUT_SHOT
jz short @@unable_to_select
@@z_pressed:
mov al, _playchar_menu_sel
mov ah, 0
mov bx, ax
cmp _selectable_with[bx], 0
jz short @@unable_to_select
call snd_se_reset
call snd_se_play pascal, 11
call snd_se_update
les bx, _resident
mov al, _playchar_menu_sel
mov es:[bx+resident_t.playchar], al
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
call bgimage_free
xor ax, ax
leave
retn
@@unable_to_select:
test _key_det.hi, high INPUT_CANCEL
jz short loc_D2E4
call palette_black_out pascal, 1
call bgimage_free
mov ax, 1
leave
retn
; ---------------------------------------------------------------------------
loc_D2E4:
mov al, _key_det.lo
mov [bp+@@input_locked], al
jmp short loc_D2F7
; ---------------------------------------------------------------------------
loc_D2EC:
cmp _key_det, INPUT_NONE
jnz short loc_D2F7
mov [bp+@@input_locked], 0
loc_D2F7:
call frame_delay pascal, 1
jmp loc_D1B5
; ---------------------------------------------------------------------------
leave
retn
playchar_menu 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
2019-11-19 14:26:47 +00:00
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
include th05/formats/pi_slot_put_mask.asm
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
_menu_sel db 0
_quit db 0
_main_menu_unused_1 db 1
public _MENU_DESC
_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"
_main_menu_initialized db 0
_option_initialized 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
2014-08-23 10:08:48 +00:00
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
2014-08-27 22:05:06 +00:00
include libs/master.lib/edges[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
2014-08-14 12:30:48 +00:00
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
2014-08-23 13:47:05 +00:00
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
2014-08-30 10:13:04 +00:00
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
2014-08-15 12:26:44 +00:00
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
2014-08-27 23:37:48 +00:00
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
2014-08-26 04:18:06 +00:00
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
include th03/formats/pi_slot_put_mask[data].asm
include th05/formats/pi_slot_buffers[bss].asm
include th05/hardware/vram_planes[data].asm
include th03/formats/cdg[data].asm
include th04/setup[data].asm
include th04/zunsoft[data].asm
include th05/formats/cfg[data].asm
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 ; " ---------------- "
2014-07-03 19:28:21 +00:00
MUSICROOM_GAME dd aMUSICROOM_TH01
dd aMUSICROOM_TH02
dd aMUSICROOM_TH03
dd aMUSICROOM_TH04
dd aMUSICROOM_TH05
public _MUSIC_TITLES
_MUSIC_TITLES label dword
2014-07-03 19:28:21 +00:00
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"
2014-07-03 19:28:21 +00:00
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"
2014-07-03 19:28:21 +00:00
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"
2014-07-03 19:28:21 +00:00
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"
2014-07-03 19:28:21 +00:00
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
2014-07-03 19:28:21 +00:00
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
dd 0
music_game dw 4
2014-07-03 19:28:21 +00:00
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 _resident
_resident dd ?
_in_option db ?
db ?
_putfunc dw ?
_main_input_allowed db ?
_option_input_allowed db ?
include libs/master.lib/clip[bss].asm
include libs/master.lib/fil[bss].asm
include libs/master.lib/js[bss].asm
2014-08-23 13:47:05 +00:00
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
include th05/formats/pi_slot_put_mask[bss].asm
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
include th04/setup[bss].asm
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 ?
include th03/music/cmt_back[bss].asm
include th02/music/music_cmt[bss].asm
word_1403A dw ?
word_1403C dw ?
musicroom_trackcount dw ?
extern _hi:scoredat_section_t
extern _hi2:scoredat_section_t
extern _hiscore_rank:byte
extern _cleared_with:byte
extern _extra_unlocked:byte
extern _playchar_menu_sel:byte
extern _rank:byte
extern _extra_playable_with:byte
extern _selectable_with:byte
end