mirror of https://github.com/nmlgc/ReC98.git
4253 lines
99 KiB
NASM
4253 lines
99 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : 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
|
||
|
||
include libs/master.lib/bfnt_entry_pat.asm
|
||
include libs/master.lib/bfnt_header_read.asm
|
||
include libs/master.lib/bfnt_header_analysis.asm
|
||
include libs/master.lib/atrtcmod.asm
|
||
include libs/master.lib/bcloser.asm
|
||
include libs/master.lib/bfill.asm
|
||
include libs/master.lib/bfnt_palette_set.asm
|
||
include libs/master.lib/bgetc.asm
|
||
include libs/master.lib/palette_black_in.asm
|
||
include libs/master.lib/palette_black_out.asm
|
||
include libs/master.lib/bopenr.asm
|
||
include libs/master.lib/bread.asm
|
||
include libs/master.lib/bseek.asm
|
||
include libs/master.lib/bseek_.asm
|
||
include libs/master.lib/dos_axdx.asm
|
||
include libs/master.lib/dos_keyclear.asm
|
||
include libs/master.lib/dos_puts2.asm
|
||
include libs/master.lib/dos_read.asm
|
||
include libs/master.lib/dos_seek.asm
|
||
include libs/master.lib/dos_setvect.asm
|
||
include libs/master.lib/egc.asm
|
||
include libs/master.lib/file_append.asm
|
||
include libs/master.lib/file_close.asm
|
||
include libs/master.lib/file_create.asm
|
||
include libs/master.lib/file_exist.asm
|
||
include libs/master.lib/file_read.asm
|
||
include libs/master.lib/file_ropen.asm
|
||
include libs/master.lib/file_seek.asm
|
||
include libs/master.lib/file_write.asm
|
||
include libs/master.lib/dos_close.asm
|
||
include libs/master.lib/dos_ropen.asm
|
||
include libs/master.lib/grcg_byteboxfill_x.asm
|
||
include libs/master.lib/grcg_hline.asm
|
||
include libs/master.lib/grcg_polygon_c.asm
|
||
include libs/master.lib/grcg_setcolor.asm
|
||
include libs/master.lib/grcg_vline.asm
|
||
include libs/master.lib/get_machine_98.asm
|
||
include libs/master.lib/get_machine_at.asm
|
||
include libs/master.lib/get_machine_dosbox.asm
|
||
include libs/master.lib/check_machine_fmr.asm
|
||
include libs/master.lib/get_machine.asm
|
||
include libs/master.lib/graph_400line.asm
|
||
include libs/master.lib/graph_clear.asm
|
||
include libs/master.lib/graph_copy_page.asm
|
||
include libs/master.lib/graph_extmode.asm
|
||
include libs/master.lib/graph_pi_free.asm
|
||
include libs/master.lib/graph_pi_load_pack.asm
|
||
include libs/master.lib/graph_show.asm
|
||
include libs/master.lib/graph_start.asm
|
||
include libs/master.lib/js_end.asm
|
||
include libs/master.lib/keybeep.asm
|
||
include libs/master.lib/make_linework.asm
|
||
include libs/master.lib/palette_init.asm
|
||
include libs/master.lib/palette_show.asm
|
||
include libs/master.lib/pfclose.asm
|
||
include libs/master.lib/pfgetc.asm
|
||
include libs/master.lib/pfread.asm
|
||
include libs/master.lib/pfrewind.asm
|
||
include libs/master.lib/pfseek.asm
|
||
include libs/master.lib/random.asm
|
||
include libs/master.lib/rottbl.asm
|
||
include libs/master.lib/smem_release.asm
|
||
include libs/master.lib/smem_wget.asm
|
||
include libs/master.lib/soundio.asm
|
||
include libs/master.lib/text_clear.asm
|
||
include libs/master.lib/txesc.asm
|
||
include libs/master.lib/vsync.asm
|
||
include libs/master.lib/vsync_wait.asm
|
||
include libs/master.lib/hmem_lallocate.asm
|
||
include libs/master.lib/mem_assign_dos.asm
|
||
include libs/master.lib/mem_assign.asm
|
||
include libs/master.lib/memheap.asm
|
||
include libs/master.lib/mem_unassign.asm
|
||
include libs/master.lib/super_free.asm
|
||
include libs/master.lib/super_entry_pat.asm
|
||
include libs/master.lib/super_entry_at.asm
|
||
include libs/master.lib/super_entry_bfnt.asm
|
||
include libs/master.lib/super_cancel_pat.asm
|
||
include libs/master.lib/super_put_rect.asm
|
||
include libs/master.lib/super_put.asm
|
||
include libs/master.lib/respal_exist.asm
|
||
include libs/master.lib/respal_free.asm
|
||
include libs/master.lib/js_start.asm
|
||
include libs/master.lib/draw_trapezoid.asm
|
||
include libs/master.lib/js_sense.asm
|
||
include libs/master.lib/bgm_bell_org.asm
|
||
include libs/master.lib/bgm_mget.asm
|
||
include libs/master.lib/bgm_read_sdata.asm
|
||
include libs/master.lib/bgm_timer.asm
|
||
include libs/master.lib/bgm_pinit.asm
|
||
include libs/master.lib/bgm_timerhook.asm
|
||
include libs/master.lib/bgm_play.asm
|
||
include libs/master.lib/bgm_sound.asm
|
||
include libs/master.lib/bgm_effect_sound.asm
|
||
include libs/master.lib/bgm_stop_play.asm
|
||
include libs/master.lib/bgm_set_tempo.asm
|
||
include libs/master.lib/bgm_init_finish.asm
|
||
include libs/master.lib/bgm_stop_sound.asm
|
||
include libs/master.lib/graph_pack_put_8_noclip.asm
|
||
include libs/master.lib/graph_gaiji_puts.asm
|
||
include libs/master.lib/graph_gaiji_putc.asm
|
||
include libs/master.lib/pfint21.asm
|
||
db 0
|
||
include th03/formats/pfopen.asm
|
||
include libs/master.lib/pf_str_ieq.asm
|
||
_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_01_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_01_TEXT
|
||
; org 0Ch
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
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
|
||
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
|
||
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
|
||
call palette_black_out
|
||
call game_exit
|
||
pushd 0
|
||
push ds
|
||
push offset aMain ; "main"
|
||
push ds
|
||
push offset aMain ; "main"
|
||
call _execl
|
||
add sp, 0Ch
|
||
|
||
loc_A5E9:
|
||
pop si
|
||
pop bp
|
||
retn
|
||
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
|
||
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
|
||
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]
|
||
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
|
||
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]
|
||
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
|
||
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
|
||
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
|
||
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
|
||
call text_clear
|
||
call respal_create
|
||
mov _mem_assign_paras, MEM_ASSIGN_PARAS_OP
|
||
call _game_init_op c, offset aKaikidan1_dat0, ds
|
||
or ax, ax
|
||
jz short loc_AF7D
|
||
push ds
|
||
push offset aNotEnoughMem
|
||
call dos_puts2
|
||
call _getch
|
||
|
||
loc_AF7D:
|
||
call 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
|
||
call frame_delay
|
||
|
||
loc_B058:
|
||
cmp _quit, 0
|
||
jz short loc_B00E
|
||
call main_cdg_free
|
||
call cfg_save_exit
|
||
call text_clear
|
||
call game_exit_to_dos
|
||
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
|
||
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
|
||
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
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
push ds
|
||
push offset aMswin_bft ; "mswin.bft"
|
||
call super_entry_bfnt
|
||
graph_accesspage 1
|
||
call pi_slot_load pascal, 0, ds, offset aMs_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
call pi_slot_free pascal, 0
|
||
call graph_copy_page pascal, 0
|
||
push 1
|
||
call palette_black_in
|
||
call sub_B36C
|
||
push 1
|
||
call frame_delay
|
||
call graph_copy_page pascal, 0
|
||
call sub_B489
|
||
push 1
|
||
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
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
call pi_slot_load pascal, 0, ds, offset aOp2a_pi
|
||
call pi_slot_load pascal, 1, ds, offset aOp2b_pi
|
||
call pi_slot_load pascal, 2, ds, offset aOp2c_pi
|
||
call pi_slot_load pascal, 3, ds, offset aOp2d_pi
|
||
call pi_slot_load pascal, 4, ds, offset aOp2e_pi
|
||
call pi_slot_load pascal, 5, ds, offset aOp2f_pi
|
||
call pi_slot_load pascal, 6, ds, offset aOp2g_pi
|
||
call pi_slot_load pascal, 7, ds, offset aOp2h_pi
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
||
graph_accesspage 1
|
||
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
|
||
graph_accesspage 0
|
||
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
|
||
GRCG_OFF_CLOBBERING dx
|
||
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
|
||
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]
|
||
mov PaletteTone, ax
|
||
call far ptr palette_show
|
||
inc si
|
||
|
||
loc_BDAD:
|
||
cmp si, 40h
|
||
jl short loc_BD55
|
||
mov si, 1
|
||
jmp short loc_BDBE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BDB7:
|
||
call pi_slot_free pascal, si
|
||
inc si
|
||
|
||
loc_BDBE:
|
||
cmp si, 8
|
||
jl short loc_BDB7
|
||
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
|
||
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
|
||
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
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 5
|
||
push (12 shl 16) or 300
|
||
lea ax, [si+96]
|
||
push ax
|
||
call grcg_hline
|
||
push (12 shl 16) or 300
|
||
lea ax, [si+111]
|
||
push ax
|
||
call grcg_hline
|
||
push 12
|
||
lea ax, [si+96]
|
||
push ax
|
||
lea ax, [si+111]
|
||
push ax
|
||
call grcg_vline
|
||
push 300
|
||
lea ax, [si+96]
|
||
push ax
|
||
lea ax, [si+111]
|
||
push ax
|
||
call grcg_vline
|
||
GRCG_OFF_CLOBBERING dx
|
||
jmp short loc_BF05
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BEF4:
|
||
push 0
|
||
lea ax, [si+96]
|
||
push ax
|
||
push (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
|
||
call graph_putsa_fx
|
||
|
||
loc_BF48:
|
||
pop si
|
||
leave
|
||
retn 4
|
||
draw_track endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public DRAW_TRACKS
|
||
draw_tracks proc near
|
||
|
||
@@sel = byte ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_BF6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF55:
|
||
push si
|
||
mov al, [bp+@@sel]
|
||
mov ah, 0
|
||
cmp ax, si
|
||
jnz short loc_BF64
|
||
mov ax, 1
|
||
jmp short loc_BF66
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF64:
|
||
xor ax, ax
|
||
|
||
loc_BF66:
|
||
push ax
|
||
call draw_track
|
||
inc si
|
||
|
||
loc_BF6B:
|
||
mov ax, musicroom_trackcount
|
||
add ax, 2
|
||
cmp ax, si
|
||
jg short loc_BF55
|
||
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]
|
||
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]
|
||
mov musicroom_trackcount, ax
|
||
mov byte_13E96, 0
|
||
call cdg_freeall
|
||
call text_clear
|
||
mov _music_page, 1
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
graph_showpage 0
|
||
graph_accesspage al
|
||
call graph_clear
|
||
graph_accesspage 1
|
||
call pi_slot_load pascal, 0, ds, offset aMusic_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
call pi_slot_free pascal, 0
|
||
call _piano_setup
|
||
call screen_back_B_snap
|
||
call bgimage_snap
|
||
call draw_tracks pascal, word ptr _music_sel
|
||
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
|
||
call far ptr palette_show
|
||
|
||
loc_C555:
|
||
call _input_reset_sense_held
|
||
cmp _key_det, INPUT_NONE
|
||
jz short loc_C57F
|
||
cmp si, 18h
|
||
jl short loc_C579
|
||
cmp _key_det, INPUT_UP
|
||
jz short loc_C574
|
||
cmp _key_det, INPUT_DOWN
|
||
jnz short loc_C579
|
||
|
||
loc_C574:
|
||
mov si, 14h
|
||
jmp short loc_C57F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C579:
|
||
inc si
|
||
call music_flip
|
||
jmp short loc_C555
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C57F:
|
||
call _input_reset_sense_held
|
||
test _key_det.lo, low INPUT_UP
|
||
jz short loc_C5EB
|
||
mov al, _music_sel
|
||
mov [bp+@@sel], al
|
||
cmp _music_sel, 0
|
||
jbe short loc_C5D5
|
||
dec _music_sel
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
cmp ax, word_1403A
|
||
jge short loc_C5AE
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
jmp short loc_C61C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C5AE:
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
call music_flip
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
jmp short loc_C5EB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C5D5:
|
||
mov al, byte ptr musicroom_trackcount
|
||
mov _music_sel, al
|
||
mov ax, musicroom_trackcount
|
||
add ax, 0FFF5h
|
||
mov word_1403A, ax
|
||
push musicroom_trackcount
|
||
call sub_C441
|
||
|
||
loc_C5EB:
|
||
test _key_det.lo, low INPUT_DOWN
|
||
jz short loc_C666
|
||
mov al, _music_sel
|
||
mov [bp+@@sel], al
|
||
mov ah, 0
|
||
cmp ax, musicroom_trackcount
|
||
jge short loc_C652
|
||
inc _music_sel
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
mov dx, word_1403A
|
||
add dx, 0Ch
|
||
cmp ax, dx
|
||
jl short loc_C62B
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
add ax, 0FFF5h
|
||
|
||
loc_C61C:
|
||
mov word_1403A, ax
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C441
|
||
jmp loc_C6E3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C62B:
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
call music_flip
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
jmp short loc_C666
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C652:
|
||
mov _music_sel, 0
|
||
mov word_1403A, 0
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C441
|
||
|
||
loc_C666:
|
||
test _key_det.lo, low INPUT_LEFT
|
||
jz short loc_C680
|
||
dec music_game
|
||
cmp music_game, 0
|
||
jge short loc_C698
|
||
mov music_game, 4
|
||
jmp short loc_C698
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C680:
|
||
test _key_det.lo, low INPUT_RIGHT
|
||
jz short loc_C6E3
|
||
inc music_game
|
||
cmp music_game, 5
|
||
jl short loc_C698
|
||
mov music_game, 0
|
||
|
||
loc_C698:
|
||
mov _music_sel, 0
|
||
mov word_1403C, 0
|
||
mov word_1403A, 0
|
||
mov bx, music_game
|
||
add bx, bx
|
||
mov ax, MUSICROOM_TRACKCOUNTS[bx]
|
||
mov musicroom_trackcount, ax
|
||
push 0
|
||
call sub_C441
|
||
kajacall KAJA_SONG_FADE, 32
|
||
call draw_cmt pascal, 0
|
||
mov bx, music_game
|
||
imul bx, 78h
|
||
call snd_load pascal, dword ptr _MUSIC_FILES[bx], SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
|
||
loc_C6E3:
|
||
test _key_det.lo, low INPUT_SHOT
|
||
jnz short loc_C6F1
|
||
test _key_det.hi, high INPUT_OK
|
||
jz short loc_C767
|
||
|
||
loc_C6F1:
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
cmp ax, musicroom_trackcount
|
||
jz loc_C77F
|
||
kajacall KAJA_SONG_FADE, 32
|
||
mov al, byte ptr word_1403C
|
||
mov [bp+@@sel], al
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
mov word_1403C, ax
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
call music_flip
|
||
call draw_track pascal, word ptr [bp+@@sel], 0
|
||
call draw_track pascal, word ptr _music_sel, 1
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
call draw_cmt pascal, ax
|
||
mov bx, music_game
|
||
imul bx, 78h
|
||
mov al, _music_sel
|
||
mov ah, 0
|
||
shl ax, 2
|
||
add bx, ax
|
||
call snd_load pascal, dword ptr _MUSIC_FILES[bx], SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
|
||
loc_C767:
|
||
test _key_det.hi, high INPUT_CANCEL
|
||
jnz short loc_C77F
|
||
cmp _key_det, INPUT_NONE
|
||
jnz loc_C555
|
||
xor si, si
|
||
call music_flip
|
||
jmp loc_C57F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C77F:
|
||
call _input_reset_sense_held
|
||
cmp _key_det, INPUT_NONE
|
||
jz short loc_C790
|
||
call music_flip
|
||
jmp short loc_C77F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C790:
|
||
call pfend
|
||
push ds
|
||
push offset aKaikidan1_dat1
|
||
call pfstart
|
||
kajacall KAJA_SONG_FADE, 16
|
||
call screen_back_B_free
|
||
graph_showpage 0
|
||
graph_accesspage al
|
||
push 1
|
||
call palette_black_out
|
||
call bgimage_free
|
||
call snd_load pascal, ds, offset aH_op+2, SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
pop si
|
||
leave
|
||
retn
|
||
musicroom endp
|
||
|
||
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"
|
||
call file_exist
|
||
or ax, ax
|
||
jz short loc_CA0C
|
||
push ds
|
||
push offset aGensou_scr ; "GENSOU.SCR"
|
||
call file_ropen
|
||
mov ax, [bp+arg_0]
|
||
imul ax, 5
|
||
mov dl, _hiscore_rank
|
||
mov dh, 0
|
||
add ax, dx
|
||
imul ax, 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
|
||
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]
|
||
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
|
||
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
|
||
mov PaletteTone, 0
|
||
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
|
||
mov PaletteTone, 0
|
||
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:
|
||
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
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
||
lea ax, [si+216]
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
push di
|
||
lea ax, [si+223]
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
lea ax, [di+151]
|
||
push ax
|
||
call grcg_byteboxfill_x
|
||
mov ax, si
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
lea ax, [di+152]
|
||
push ax
|
||
lea ax, [si+223]
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
lea ax, [di+159]
|
||
push ax
|
||
call grcg_byteboxfill_x
|
||
GRCG_OFF_CLOBBERING dx
|
||
mov al, _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
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
graph_accesspage 1
|
||
call pi_slot_load pascal, 0, ds, offset aSlb1_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
call pi_slot_free pascal, 0
|
||
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
|
||
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
|
||
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
|
||
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
|
||
include libs/master.lib/bfnt_id[data].asm
|
||
include libs/master.lib/clip[data].asm
|
||
include libs/master.lib/edges[data].asm
|
||
include libs/master.lib/fil[data].asm
|
||
include libs/master.lib/dos_ropen[data].asm
|
||
include libs/master.lib/get_machine_98[data].asm
|
||
include libs/master.lib/get_machine_at[data].asm
|
||
include libs/master.lib/grp[data].asm
|
||
include libs/master.lib/js[data].asm
|
||
include libs/master.lib/machine[data].asm
|
||
include libs/master.lib/pal[data].asm
|
||
include libs/master.lib/pf[data].asm
|
||
include libs/master.lib/rand[data].asm
|
||
include libs/master.lib/sin8[data].asm
|
||
include libs/master.lib/tx[data].asm
|
||
include libs/master.lib/vs[data].asm
|
||
include libs/master.lib/wordmask[data].asm
|
||
include libs/master.lib/mem[data].asm
|
||
include libs/master.lib/super_entry_bfnt[data].asm
|
||
include libs/master.lib/superpa[data].asm
|
||
include libs/master.lib/respal_exist[data].asm
|
||
include libs/master.lib/draw_trapezoid[data].asm
|
||
include libs/master.lib/bgm_timerhook[data].asm
|
||
include libs/master.lib/bgm[data].asm
|
||
include th04/snd/se_priority[data].asm
|
||
include th04/hardware/grppsafx[data].asm
|
||
include th03/snd/se_state[data].asm
|
||
include th04/bgimage[data].asm
|
||
include th05/mem[data].asm
|
||
include th05/music/piano[data].asm
|
||
include th05/snd/load[data].asm
|
||
include th04/snd/snd[data].asm
|
||
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 ; " ---------------- "
|
||
MUSICROOM_GAME dd aMUSICROOM_TH01
|
||
dd aMUSICROOM_TH02
|
||
dd aMUSICROOM_TH03
|
||
dd aMUSICROOM_TH04
|
||
dd aMUSICROOM_TH05
|
||
public _MUSIC_TITLES
|
||
_MUSIC_TITLES label dword
|
||
dd aTH01_01 ; "No.1 A Sacred Lot "
|
||
dd aTH01_02 ; "No.2 <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> "
|
||
dd aTH01_03 ; "No.3 The Positive and Negative "
|
||
dd aTH01_04 ; "No.4 Highly Responsive to Prayers "
|
||
dd aTH01_05
|
||
dd aTH01_06 ; "No.6 <20>V<EFBFBD>g<EFBFBD>`<60><> "
|
||
dd aTH01_07 ; "No.7 Oriental Magician "
|
||
dd aTH01_08 ; "No.8 <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aTH01_09 ; "No.9 <20><><EFBFBD><EFBFBD> "
|
||
dd aTH01_10 ; "No.10 the Legend of KAGE "
|
||
dd aTH01_11 ; "No.11 <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD> "
|
||
dd aTH01_12 ; "No.12 Civilization of Magic "
|
||
dd aTH01_13 ; "No.13 <20><><EFBFBD>H<EFBFBD>V<EFBFBD>g "
|
||
dd aTH01_14 ; "No.14 <20>A<EFBFBD>C<EFBFBD><43><EFBFBD>X "
|
||
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aTH02_01
|
||
dd aTH02_02 ; "No.2 <20>@ <09><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind "
|
||
dd aTH02_03 ; "No.3 <20>@ She's in a temper!! "
|
||
dd aTH02_04 ; "No.4 <20>@ End of Daylight<68>@ "
|
||
dd aTH02_05 ; "No.5 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ "
|
||
dd aTH02_06 ; "No.6 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@ "
|
||
dd aTH02_07
|
||
dd aTH02_08 ; "No.8 <20>Ђ<EFBFBD><D082>났<EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD> "
|
||
dd aTH02_09
|
||
dd aTH02_10
|
||
dd aTH02_11 ; "No.11 Complete Darkness "
|
||
dd aTH02_12 ; "No.12 <09>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u "
|
||
dd aTH02_13 ; "No.13 <09><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aTH02_14 ; "No.14 <20>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ "
|
||
dd aTH02_15
|
||
dd aTH02_16 ; "<22><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>Ћ<EFBFBD><D08B><EFBFBD> "
|
||
dd aTH02_17 ; "<22><><EFBFBD>g<EFBFBD>p.2 <20>@<40>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09>@ "
|
||
dd aTH02_18 ; "<22><><EFBFBD>g<EFBFBD>p.3 <20>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> <09>@ "
|
||
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aTH03_01
|
||
dd aTH03_02 ; "No.2 <20>@ <09>@ Selection "
|
||
dd aTH03_03
|
||
dd aTH03_04 ; "No.4 Reincarnation "
|
||
dd aTH03_05 ; "No.5 Dim. Dream "
|
||
dd aTH03_06
|
||
dd aTH03_07 ; "No.7 <20>@ Maniacal Princess "
|
||
dd aTH03_08 ; "No.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream "
|
||
dd aTH03_09 ; "No.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <09>`Dream War "
|
||
dd aTH03_10 ; "No.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out! "
|
||
dd aTH03_11 ; "No.11 <20>@ Sailor of Time "
|
||
dd aTH03_12 ; "No.12 Strawberry Crisis!! "
|
||
dd aTH03_13
|
||
dd aTH03_14 ; "No.14 <20>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> "
|
||
dd aTH03_15 ; "No.15 <20>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> "
|
||
dd aTH03_16
|
||
dd aTH03_17 ; "No.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> "
|
||
dd aTH03_18 ; "No.18 Maple Dream... "
|
||
dd aTH03_19
|
||
dd aTH03_20 ; "No.20 <20><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66> "
|
||
dd aTH03_21 ; "No.21 <20>Q<EFBFBD>[<5B><><EFBFBD>I<EFBFBD>[<5B>o<EFBFBD>[ "
|
||
dd aTH03_22 ; "<22><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD>̕<EFBFBD> "
|
||
dd aTH03_23 ; "<22><><EFBFBD>g<EFBFBD>p.2 <09>X<EFBFBD>^<5E>[<5B>{<7B>E<EFBFBD>h<EFBFBD><68><EFBFBD>[<5B><> "
|
||
dd aTH03_24 ; "<22><><EFBFBD>g<EFBFBD>p.3 Phantasmagoria "
|
||
dd aMUSICROOM_QUIT2 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aTH04_01 ; "No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story "
|
||
dd aTH04_02 ; "No.2 Witching Dream "
|
||
dd aTH04_03 ; "No.3 Selene's light "
|
||
dd aTH04_04
|
||
dd aTH04_05 ; "No.5 Break the Sabbath "
|
||
dd aTH04_06 ; "No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme "
|
||
dd aTH04_07 ; "No.7 Bad Apple!! "
|
||
dd aTH04_08 ; "No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis "
|
||
dd aTH04_09 ; "No.9 <09>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> "
|
||
dd aTH04_10 ; "No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio "
|
||
dd aTH04_11 ; "No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star "
|
||
dd aTH04_12 ; "No.12 Lotus Love "
|
||
dd aTH04_13 ; "No.13 <20><><EFBFBD><EFBFBD><EFBFBD>鋰<EFBFBD>| <20>`Sleeping Terror "
|
||
dd aTH04_14 ; "No.14 Dream Land "
|
||
dd aTH04_15 ; "No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream "
|
||
dd aTH04_16
|
||
dd aTH04_17 ; "No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic "
|
||
dd aTH04_18 ; "No.18 <20><><EFBFBD>킢<EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence "
|
||
dd aTH04_19 ; "No.19 Days "
|
||
dd aTH04_20 ; "No.20 Peaceful "
|
||
dd aTH04_21 ; "No.21 Arcadian Dream "
|
||
dd aTH04_22 ; "No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l "
|
||
dd aTH04_23 ; "<22><><EFBFBD>g<EFBFBD>p.1 Lotus Road "
|
||
dd aTH04_24 ; "<22><><EFBFBD>g<EFBFBD>p.2 Dreamy pilot "
|
||
dd aTH04_25 ; "<22><><EFBFBD>g<EFBFBD>p.3 Incomplete Plot "
|
||
dd aTH04_26 ; "<22><><EFBFBD>g<EFBFBD>p.4 Border Land "
|
||
dd aTH04_27 ; "<22><><EFBFBD>g<EFBFBD>p.5 Magic Shop of Raspberry "
|
||
dd aTH04_28 ; "<22><><EFBFBD>g<EFBFBD>p.6 Crescent Dream "
|
||
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
|
||
dd 0
|
||
dd aTH05_01
|
||
dd aTH05_02 ; "No.2 Dream Express "
|
||
dd aTH05_03 ; "No.3 <20><><EFBFBD>@<40>w<EFBFBD>@<40>` Magic Square "
|
||
dd aTH05_04
|
||
dd aTH05_05 ; "No.5 <20><><EFBFBD>V<EFBFBD>@<40>` Spiritual Heaven "
|
||
dd aTH05_06 ; "No.6 Romantic Children "
|
||
dd aTH05_07 ; "No.7 <20>v<EFBFBD><76><EFBFBD>X<EFBFBD>`<60>b<EFBFBD>N<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD>h "
|
||
dd aTH05_08 ; "No.8 <20><><EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>Y "
|
||
dd aTH05_09 ; "No.9 <20>֒f<D692>̖<EFBFBD><CC96>@ <20>` Forbidden Magic"
|
||
dd aTH05_10 ; "No.10 <20>^<5E>g<EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Crimson Dead!!"
|
||
dd aTH05_11 ; "No.11 <20><><EFBFBD><EFBFBD><D882>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Judas Kiss "
|
||
dd aTH05_12 ; "No.12 the Last Judgement "
|
||
dd aTH05_13 ; "No.13 <20>߂<EFBFBD><DF82><EFBFBD><EFBFBD>l<EFBFBD>`<60>@<40>` Doll of Misery"
|
||
dd aTH05_14 ; "No.14 <20><><EFBFBD>E<EFBFBD>̉ʂā@<40>` World's End "
|
||
dd aTH05_15 ; "No.15 <20>_<EFBFBD>b<EFBFBD><62><EFBFBD>z<EFBFBD>@<40>` Infinite Being "
|
||
dd aTH05_16 ; "No.16 <20>s<EFBFBD>v<EFBFBD>c<EFBFBD>̍<EFBFBD><CC8D>̃A<CC83><41><EFBFBD>X "
|
||
dd aTH05_17 ; "No.17 the Grimoire of Alice "
|
||
dd aTH05_18 ; "No.18 <20>_<EFBFBD><5F> "
|
||
dd aTH05_19 ; "No.19 Endless "
|
||
dd aTH05_20 ; "No.20 <20>v<EFBFBD><76><EFBFBD>̊y<CC8A><79> "
|
||
dd aTH05_21 ; "No.21 Mystic Dream "
|
||
dd aTH05_22 ; "No.22 Peaceful Romancer "
|
||
dd aTH05_23 ; "No.23 <20><><EFBFBD>̋x<CC8B><78><EFBFBD>ޏ<EFBFBD> "
|
||
dd aMUSICROOM_QUIT1 ; " <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> "
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
public _MUSIC_FILES
|
||
_MUSIC_FILES label dword
|
||
dd aR_00 ; "r_00"
|
||
dd aR_01 ; "r_01"
|
||
dd aR_02 ; "r_02"
|
||
dd aR_03 ; "r_03"
|
||
dd aR_04 ; "r_04"
|
||
dd aR_05 ; "r_05"
|
||
dd aR_06 ; "r_06"
|
||
dd aR_07 ; "r_07"
|
||
dd aR_08 ; "r_08"
|
||
dd aR_09 ; "r_09"
|
||
dd aR_10 ; "r_10"
|
||
dd aR_11 ; "r_11"
|
||
dd aR_12 ; "r_12"
|
||
dd aR_13 ; "r_13"
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aH_op ; "h_op"
|
||
dd aH_st00 ; "h_st00"
|
||
dd aH_st00b ; "h_st00b"
|
||
dd aH_st01 ; "h_st01"
|
||
dd aH_st01b ; "h_st01b"
|
||
dd aH_st02 ; "h_st02"
|
||
dd aH_st02b ; "h_st02b"
|
||
dd aH_st03 ; "h_st03"
|
||
dd aH_st03b ; "h_st03b"
|
||
dd aH_st04 ; "h_st04"
|
||
dd aH_st04b ; "h_st04b"
|
||
dd aH_st05 ; "h_st05"
|
||
dd aH_st05b ; "h_st05b"
|
||
dd aH_end ; "h_end"
|
||
dd aH_staff ; "h_staff"
|
||
dd aH_ng00 ; "h_ng00"
|
||
dd aH_ng01 ; "h_ng01"
|
||
dd aH_ng02 ; "h_ng02"
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aY_op ; "y_op"
|
||
dd aY_select ; "y_select"
|
||
dd aY_00mm ; "y_00mm"
|
||
dd aY_01mm ; "y_01mm"
|
||
dd aY_02mm ; "y_02mm"
|
||
dd aY_03mm ; "y_03mm"
|
||
dd aY_04mm ; "y_04mm"
|
||
dd aY_05mm ; "y_05mm"
|
||
dd aY_06mm ; "y_06mm"
|
||
dd aY_dec ; "y_dec"
|
||
dd aY_07mm ; "y_07mm"
|
||
dd aY_08mm ; "y_08mm"
|
||
dd aY_demo1 ; "y_demo1"
|
||
dd aY_demo2 ; "y_demo2"
|
||
dd aY_demo3 ; "y_demo3"
|
||
dd aY_demo4 ; "y_demo4"
|
||
dd aY_demo5 ; "y_demo5"
|
||
dd aY_ed ; "y_ed"
|
||
dd aY_score ; "y_score"
|
||
dd aY_win ; "y_win"
|
||
dd aY_over ; "y_over"
|
||
dd aY_ng00 ; "y_ng00"
|
||
dd aY_ng01 ; "y_ng01"
|
||
dd aY_ng02 ; "y_ng02"
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd aG_op ; "g_op"
|
||
dd aG_st00 ; "g_st00"
|
||
dd aG_st10 ; "g_st10"
|
||
dd aG_st00b ; "g_st00b"
|
||
dd aG_st01 ; "g_st01"
|
||
dd aG_st01b ; "g_st01b"
|
||
dd aG_st02 ; "g_st02"
|
||
dd aG_st02b ; "g_st02b"
|
||
dd aG_st03 ; "g_st03"
|
||
dd aG_st03c ; "g_st03c"
|
||
dd aG_st03b ; "g_st03b"
|
||
dd aG_st04 ; "g_st04"
|
||
dd aG_st04b ; "g_st04b"
|
||
dd aG_st05 ; "g_st05"
|
||
dd aG_st05b ; "g_st05b"
|
||
dd aG_st06 ; "g_st06"
|
||
dd aG_st06b ; "g_st06b"
|
||
dd aG_st06c ; "g_st06c"
|
||
dd aG_end1 ; "g_end1"
|
||
dd aG_end2 ; "g_end2"
|
||
dd aG_staff ; "g_staff"
|
||
dd aG_name ; "g_name"
|
||
dd aG_ng00 ; "g_ng00"
|
||
dd aG_ng01 ; "g_ng01"
|
||
dd aG_ng02 ; "g_ng02"
|
||
dd aG_ng03 ; "g_ng03"
|
||
dd aG_ng04 ; "g_ng04"
|
||
dd aG_ng05 ; "g_ng05"
|
||
dd 0
|
||
dd 0
|
||
dd aH_op+2
|
||
dd aH_st00+2
|
||
dd aH_st00b+2
|
||
dd aH_st01+2
|
||
dd aH_st01b+2
|
||
dd aH_st02+2
|
||
dd aH_st02b+2
|
||
dd aH_st03+2
|
||
dd aH_st03b+2
|
||
dd aG_st03c+2
|
||
dd aSt03d ; "st03d"
|
||
dd aH_st04+2
|
||
dd aH_st04b+2
|
||
dd aH_st05+2
|
||
dd aH_st05b+2
|
||
dd aG_st06+2
|
||
dd aG_st06b+2
|
||
dd aEd00 ; "ed00"
|
||
dd aEd01 ; "ed01"
|
||
dd aEd02 ; "ed02"
|
||
dd aH_staff+2
|
||
dd aExed ; "exed"
|
||
dd aG_name+2
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
music_game dw 4
|
||
MUSICROOM_TRACKCOUNTS dw 14,18,24,28,23
|
||
include th02/music/polygons[data].asm
|
||
aMUSICROOM_UP db ' ------ <20><> ------ ',0
|
||
aMUSICROOM_DOWN db ' ------ <20><> ------ ',0
|
||
asc_104D5 db ' ---------------- ',0
|
||
aMUSICROOM_TH01 db ' <20><><EFBFBD>P<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>ˈٓ` Arrange ver ',0
|
||
aMUSICROOM_TH02 db ' <20><><EFBFBD>Q<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^ Special MIX ',0
|
||
aMUSICROOM_TH03 db ' <20><><EFBFBD>R<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Special MIX ',0
|
||
aMUSICROOM_TH04 db ' <20><><EFBFBD>S<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A> Special MIX ',0
|
||
aMUSICROOM_TH05 db ' <20><><EFBFBD>T<EFBFBD>e<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>k MysticSquare ',0
|
||
aTH01_01 db 'No.1 A Sacred Lot ',0
|
||
aTH01_02 db 'No.2 <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> ',0
|
||
aTH01_03 db 'No.3 The Positive and Negative ',0
|
||
aTH01_04 db 'No.4 Highly Responsive to Prayers ',0
|
||
aTH01_05 db 'No.5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k ',0
|
||
aTH01_06 db 'No.6 <20>V<EFBFBD>g<EFBFBD>`<60><> ',0
|
||
aTH01_07 db 'No.7 Oriental Magician ',0
|
||
aTH01_08 db 'No.8 <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aTH01_09 db 'No.9 <20><><EFBFBD><EFBFBD> ',0
|
||
aTH01_10 db 'No.10 the Legend of KAGE ',0
|
||
aTH01_11 db 'No.11 <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD> ',0
|
||
aTH01_12 db 'No.12 Civilization of Magic ',0
|
||
aTH01_13 db 'No.13 <20><><EFBFBD>H<EFBFBD>V<EFBFBD>g ',0
|
||
aTH01_14 db 'No.14 <20>A<EFBFBD>C<EFBFBD><43><EFBFBD>X ',0
|
||
aMUSICROOM_QUIT1 db ' <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> ',0
|
||
aTH02_01 db 'No.1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60><><EFBFBD>y<EFBFBD><79>䶗<EFBFBD> ',0
|
||
aTH02_02 db 'No.2 <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind ',0
|
||
aTH02_03 db 'No.3 <20>@ She',27h,'s in a temper!! ',0
|
||
aTH02_04 db 'No.4 <20>@ End of Daylight<68>@ ',0
|
||
aTH02_05 db 'No.5 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ ',0
|
||
aTH02_06 db 'No.6 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@ ',0
|
||
aTH02_07 db 'No.7 <20>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71><EFBFBD>ā@<40>@<40>@ ',0
|
||
aTH02_08 db 'No.8 <20>Ђ<EFBFBD><D082>났<EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD> ',0
|
||
aTH02_09 db 'No.9 <20>@ <20>@ <20><><EFBFBD>F<EFBFBD>}<7D>W<EFBFBD>b<EFBFBD>N <20>@ ',0
|
||
aTH02_10 db 'No.10 <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aTH02_11 db 'No.11 Complete Darkness ',0
|
||
aTH02_12 db 'No.12 <20>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u ',0
|
||
aTH02_13 db 'No.13 <20><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aTH02_14 db 'No.14 <20>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ ',0
|
||
aTH02_15 db 'No.15 <20>̘b<CC98><62><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aTH02_16 db '<27><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>Ћ<EFBFBD><D08B><EFBFBD> ',0
|
||
aTH02_17 db '<27><><EFBFBD>g<EFBFBD>p.2 <20>@<40>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>@ ',0
|
||
aTH02_18 db '<27><><EFBFBD>g<EFBFBD>p.3 <20>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> <20>@ ',0
|
||
aTH03_01 db 'No.1 <20>@<40><><EFBFBD>͎<EFBFBD><CD8E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> ',0
|
||
aTH03_02 db 'No.2 <20>@ <20>@ Selection ',0
|
||
aTH03_03 db 'No.3 <20><><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD>k ',0
|
||
aTH03_04 db 'No.4 Reincarnation ',0
|
||
aTH03_05 db 'No.5 Dim. Dream ',0
|
||
aTH03_06 db 'No.6 Tabula rasa<73>@<40>`<60><EFBFBD><F394928F><EFBFBD> ',0
|
||
aTH03_07 db 'No.7 <20>@ Maniacal Princess ',0
|
||
aTH03_08 db 'No.8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>`Lost Dream ',0
|
||
aTH03_09 db 'No.9 <20><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>Y <20>`Dream War ',0
|
||
aTH03_10 db 'No.10 <20><><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>`Fight it out! ',0
|
||
aTH03_11 db 'No.11 <20>@ Sailor of Time ',0
|
||
aTH03_12 db 'No.12 Strawberry Crisis!! ',0
|
||
aTH03_13 db 'No.13 <20>ꖂ<F1939D88>@<40><><EFBFBD>E<EFBFBD>_ ',0
|
||
aTH03_14 db 'No.14 <20>@<40><><EFBFBD>@<40><><EFBFBD><EFBFBD> ',0
|
||
aTH03_15 db 'No.15 <20>@<40>v<EFBFBD><76><EFBFBD>̖<EFBFBD> ',0
|
||
aTH03_16 db 'No.16 <20><><EFBFBD><EFBFBD><EFBFBD>̐<CC90><C282><EFBFBD> ',0
|
||
aTH03_17 db 'No.17 <20>i<EFBFBD><69><EFBFBD>̖<EFBFBD><CC96><EFBFBD> ',0
|
||
aTH03_18 db 'No.18 Maple Dream... ',0
|
||
aTH03_19 db 'No.19 <20><><EFBFBD>l<EFBFBD>̋x<CC8B><78> ',0
|
||
aTH03_20 db 'No.20 <20><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66> ',0
|
||
aTH03_21 db 'No.21 <20>Q<EFBFBD>[<5B><><EFBFBD>I<EFBFBD>[<5B>o<EFBFBD>[ ',0
|
||
aTH03_22 db '<27><><EFBFBD>g<EFBFBD>p.1 <20><><EFBFBD>̕<EFBFBD> ',0
|
||
aTH03_23 db '<27><><EFBFBD>g<EFBFBD>p.2 <20>X<EFBFBD>^<5E>[<5B>{<7B>E<EFBFBD>h<EFBFBD><68><EFBFBD>[<5B><> ',0
|
||
aTH03_24 db '<27><><EFBFBD>g<EFBFBD>p.3 Phantasmagoria ',0
|
||
aMUSICROOM_QUIT2 db ' <20>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>ɖ߂<C996> ',0
|
||
aTH04_01 db 'No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story ',0
|
||
aTH04_02 db 'No.2 Witching Dream ',0
|
||
aTH04_03 db 'No.3 Selene',27h,'s light ',0
|
||
aTH04_04 db 'No.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Decoration Battle ',0
|
||
aTH04_05 db 'No.5 Break the Sabbath ',0
|
||
aTH04_06 db 'No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme ',0
|
||
aTH04_07 db 'No.7 Bad Apple!! ',0
|
||
aTH04_08 db 'No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis ',0
|
||
aTH04_09 db 'No.9 <20>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> ',0
|
||
aTH04_10 db 'No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio ',0
|
||
aTH04_11 db 'No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star ',0
|
||
aTH04_12 db 'No.12 Lotus Love ',0
|
||
aTH04_13 db 'No.13 <20><><EFBFBD><EFBFBD><EFBFBD>鋰<EFBFBD>| <20>`Sleeping Terror ',0
|
||
aTH04_14 db 'No.14 Dream Land ',0
|
||
aTH04_15 db 'No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream ',0
|
||
aTH04_16 db 'No.16 <20>ւ<EFBFBD><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>V<EFBFBD>Y ',0
|
||
aTH04_17 db 'No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic ',0
|
||
aTH04_18 db 'No.18 <20><><EFBFBD>킢<EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence ',0
|
||
aTH04_19 db 'No.19 Days ',0
|
||
aTH04_20 db 'No.20 Peaceful ',0
|
||
aTH04_21 db 'No.21 Arcadian Dream ',0
|
||
aTH04_22 db 'No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l ',0
|
||
aTH04_23 db '<27><><EFBFBD>g<EFBFBD>p.1 Lotus Road ',0
|
||
aTH04_24 db '<27><><EFBFBD>g<EFBFBD>p.2 Dreamy pilot ',0
|
||
aTH04_25 db '<27><><EFBFBD>g<EFBFBD>p.3 Incomplete Plot ',0
|
||
aTH04_26 db '<27><><EFBFBD>g<EFBFBD>p.4 Border Land ',0
|
||
aTH04_27 db '<27><><EFBFBD>g<EFBFBD>p.5 Magic Shop of Raspberry ',0
|
||
aTH04_28 db '<27><><EFBFBD>g<EFBFBD>p.6 Crescent Dream ',0
|
||
aTH05_01 db 'No.1 <20><><EFBFBD>Y<EFBFBD>k<EFBFBD>@<40>` Mystic Square ',0
|
||
aTH05_02 db 'No.2 Dream Express ',0
|
||
aTH05_03 db 'No.3 <20><><EFBFBD>@<40>w<EFBFBD>@<40>` Magic Square ',0
|
||
aTH05_04 db 'No.4 <20><><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD> ',0
|
||
aTH05_05 db 'No.5 <20><><EFBFBD>V<EFBFBD>@<40>` Spiritual Heaven ',0
|
||
aTH05_06 db 'No.6 Romantic Children ',0
|
||
aTH05_07 db 'No.7 <20>v<EFBFBD><76><EFBFBD>X<EFBFBD>`<60>b<EFBFBD>N<EFBFBD>}<7D>C<EFBFBD><43><EFBFBD>h ',0
|
||
aTH05_08 db 'No.8 <20><><EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>Y ',0
|
||
aTH05_09 db 'No.9 <20>֒f<D692>̖<EFBFBD><CC96>@ <20>` Forbidden Magic',0
|
||
aTH05_10 db 'No.10 <20>^<5E>g<EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Crimson Dead!!',0
|
||
aTH05_11 db 'No.11 <20><><EFBFBD><EFBFBD><D882>̏<EFBFBD><CC8F><EFBFBD><EFBFBD>@<40>` Judas Kiss ',0
|
||
aTH05_12 db 'No.12 the Last Judgement ',0
|
||
aTH05_13 db 'No.13 <20>߂<EFBFBD><DF82><EFBFBD><EFBFBD>l<EFBFBD>`<60>@<40>` Doll of Misery',0
|
||
aTH05_14 db 'No.14 <20><><EFBFBD>E<EFBFBD>̉ʂā@<40>` World',27h,'s End ',0
|
||
aTH05_15 db 'No.15 <20>_<EFBFBD>b<EFBFBD><62><EFBFBD>z<EFBFBD>@<40>` Infinite Being ',0
|
||
aTH05_16 db 'No.16 <20>s<EFBFBD>v<EFBFBD>c<EFBFBD>̍<EFBFBD><CC8D>̃A<CC83><41><EFBFBD>X ',0
|
||
aTH05_17 db 'No.17 the Grimoire of Alice ',0
|
||
aTH05_18 db 'No.18 <20>_<EFBFBD><5F> ',0
|
||
aTH05_19 db 'No.19 Endless ',0
|
||
aTH05_20 db 'No.20 <20>v<EFBFBD><76><EFBFBD>̊y<CC8A><79> ',0
|
||
aTH05_21 db 'No.21 Mystic Dream ',0
|
||
aTH05_22 db 'No.22 Peaceful Romancer ',0
|
||
aTH05_23 db 'No.23 <20><><EFBFBD>̋x<CC8B><78><EFBFBD>ޏ<EFBFBD> ',0
|
||
aR_00 db 'r_00',0
|
||
aR_01 db 'r_01',0
|
||
aR_02 db 'r_02',0
|
||
aR_03 db 'r_03',0
|
||
aR_04 db 'r_04',0
|
||
aR_05 db 'r_05',0
|
||
aR_06 db 'r_06',0
|
||
aR_07 db 'r_07',0
|
||
aR_08 db 'r_08',0
|
||
aR_09 db 'r_09',0
|
||
aR_10 db 'r_10',0
|
||
aR_11 db 'r_11',0
|
||
aR_12 db 'r_12',0
|
||
aR_13 db 'r_13',0
|
||
aH_op db 'h_op',0
|
||
aH_st00 db 'h_st00',0
|
||
aH_st00b db 'h_st00b',0
|
||
aH_st01 db 'h_st01',0
|
||
aH_st01b db 'h_st01b',0
|
||
aH_st02 db 'h_st02',0
|
||
aH_st02b db 'h_st02b',0
|
||
aH_st03 db 'h_st03',0
|
||
aH_st03b db 'h_st03b',0
|
||
aH_st04 db 'h_st04',0
|
||
aH_st04b db 'h_st04b',0
|
||
aH_st05 db 'h_st05',0
|
||
aH_st05b db 'h_st05b',0
|
||
aH_end db 'h_end',0
|
||
aH_staff db 'h_staff',0
|
||
aH_ng00 db 'h_ng00',0
|
||
aH_ng01 db 'h_ng01',0
|
||
aH_ng02 db 'h_ng02',0
|
||
aY_op db 'y_op',0
|
||
aY_select db 'y_select',0
|
||
aY_00mm db 'y_00mm',0
|
||
aY_01mm db 'y_01mm',0
|
||
aY_02mm db 'y_02mm',0
|
||
aY_03mm db 'y_03mm',0
|
||
aY_04mm db 'y_04mm',0
|
||
aY_05mm db 'y_05mm',0
|
||
aY_06mm db 'y_06mm',0
|
||
aY_dec db 'y_dec',0
|
||
aY_07mm db 'y_07mm',0
|
||
aY_08mm db 'y_08mm',0
|
||
aY_demo1 db 'y_demo1',0
|
||
aY_demo2 db 'y_demo2',0
|
||
aY_demo3 db 'y_demo3',0
|
||
aY_demo4 db 'y_demo4',0
|
||
aY_demo5 db 'y_demo5',0
|
||
aY_ed db 'y_ed',0
|
||
aY_score db 'y_score',0
|
||
aY_win db 'y_win',0
|
||
aY_over db 'y_over',0
|
||
aY_ng00 db 'y_ng00',0
|
||
aY_ng01 db 'y_ng01',0
|
||
aY_ng02 db 'y_ng02',0
|
||
aG_op db 'g_op',0
|
||
aG_st00 db 'g_st00',0
|
||
aG_st10 db 'g_st10',0
|
||
aG_st00b db 'g_st00b',0
|
||
aG_st01 db 'g_st01',0
|
||
aG_st01b db 'g_st01b',0
|
||
aG_st02 db 'g_st02',0
|
||
aG_st02b db 'g_st02b',0
|
||
aG_st03 db 'g_st03',0
|
||
aG_st03c db 'g_st03c',0
|
||
aG_st03b db 'g_st03b',0
|
||
aG_st04 db 'g_st04',0
|
||
aG_st04b db 'g_st04b',0
|
||
aG_st05 db 'g_st05',0
|
||
aG_st05b db 'g_st05b',0
|
||
aG_st06 db 'g_st06',0
|
||
aG_st06b db 'g_st06b',0
|
||
aG_st06c db 'g_st06c',0
|
||
aG_end1 db 'g_end1',0
|
||
aG_end2 db 'g_end2',0
|
||
aG_staff db 'g_staff',0
|
||
aG_name db 'g_name',0
|
||
aG_ng00 db 'g_ng00',0
|
||
aG_ng01 db 'g_ng01',0
|
||
aG_ng02 db 'g_ng02',0
|
||
aG_ng03 db 'g_ng03',0
|
||
aG_ng04 db 'g_ng04',0
|
||
aG_ng05 db 'g_ng05',0
|
||
aSt03d db 'st03d',0
|
||
aEd00 db 'ed00',0
|
||
aEd01 db 'ed01',0
|
||
aEd02 db 'ed02',0
|
||
aExed db 'exed',0
|
||
include th05/music/music_cmt_load[data].asm
|
||
aMusic_pi db 'music.pi',0
|
||
aMusic_dat db 'music.dat',0
|
||
aKaikidan1_dat1 db '<27><><EFBFBD>Y<EFBFBD>k1.dat',0
|
||
db 0
|
||
aGensou_scr db 'GENSOU.SCR',0
|
||
aName db 'name',0
|
||
aHi01_pi db 'hi01.pi',0
|
||
aOp1_pi_1 db 'op1.pi',0
|
||
aOp_1 db 'op',0
|
||
aScnum_bft db 'scnum.bft',0
|
||
aHi_m_bft db 'hi_m.bft',0
|
||
db 0
|
||
aSlb1_pi db 'slb1.pi',0
|
||
|
||
.data?
|
||
|
||
public _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
|
||
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
|
||
db 104 dup(?)
|
||
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
|