; ; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 2CAAD6F798E32B912A08DA327A97DDB4 ; File Name : th01/FUUIN.EXE ; Format : MS-DOS executable (EXE) ; Base Address: 0h Range: 0h-147E0h Loaded length: 13ED8h ; 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 = 'E' include ReC98.inc include th01/th01.inc option emulator extern @$bdla$qnv:proc extern @$bnwa$qui:proc extern FTOL@:proc extern F_LUDIV@:proc extern LUMOD@:proc extern LXLSH@:proc extern LXMUL@:proc extern SCOPY@:proc extern __mbcjmstojis:proc extern __setargv__:proc ; main() needs both to be set extern __setenvp__:proc extern _access:proc extern _close:proc extern _execl:proc extern _exit:proc extern _farfree:proc extern _farmalloc:proc extern _fclose:proc extern _filelength:proc extern _fopen:proc extern _int86:proc extern _intdosx:proc extern _memcmp:proc extern _open:proc extern _printf:proc extern _proc:proc extern _puts:proc extern _read:proc extern _segread:proc extern _strcmp:proc extern _strcpy:proc extern _vsprintf:proc extern _write:proc fuuin_02 group fuuin_02_TEXT, fuuin_02__TEXT ; =========================================================================== ; Segment type: Pure code _TEXT segment word public 'CODE' use16 assume cs:_TEXT assume es:nothing, ds:_DATA, fs:nothing, gs:nothing include libs/piloadc/piloadc.asm include libs/master.lib/graph_400line.asm include libs/master.lib/graph_clear.asm include libs/master.lib/graph_show.asm include libs/master.lib/graph_start.asm include libs/master.lib/graph_scrollup.asm include libs/master.lib/palette_show.asm include libs/master.lib/palette_init.asm include libs/master.lib/respal_exist.asm include libs/master.lib/respal_free.asm include libs/master.lib/resdata.asm include libs/master.lib/file_read.asm include libs/master.lib/file_close.asm include libs/master.lib/file_ropen.asm include libs/master.lib/file_seek.asm include libs/master.lib/key_sense.asm include libs/master.lib/dos_ropen.asm include libs/master.lib/egc.asm include libs/master.lib/gdc_outpw.asm db 0 include libs/master.lib/random.asm _TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_01_TEXT segment byte public 'CODE' use16 assume cs:fuuin_01_TEXT ;org 9 assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9F49 proc far var_4 = dword ptr -4 enter 4, 0 push si push di push ds push offset aReiidenconfig ; "ReiidenConfig" push 0Dh push 5 call resdata_exist mov di, ax or di, di jnz short loc_9F65 jmp loc_A05D ; --------------------------------------------------------------------------- loc_9F65: mov word ptr [bp+reiidenconfig+2], di mov word ptr [bp+reiidenconfig], 0 les bx, [bp+reiidenconfig] cmp es:[bx+reiidenconfig_t.end_flag], 0 jnz short loc_9F7A jmp loc_A053 ; --------------------------------------------------------------------------- loc_9F7A: les bx, [bp+reiidenconfig] mov dx, word ptr es:[bx+reiidenconfig_t.score+2] mov ax, word ptr es:[bx+reiidenconfig_t.score] mov word ptr _score+2, dx mov word ptr _score, ax mov word ptr _continues_total+2, 0 mov word ptr _continues_total, 0 les bx, [bp+reiidenconfig] mov al, es:[bx+reiidenconfig_t.end_flag] mov byte_14021, al les bx, [bp+reiidenconfig] mov al, es:[bx+reiidenconfig_t.rank] mov _rank, al les bx, [bp+reiidenconfig] mov dx, word ptr es:[bx+reiidenconfig_t.score_highest+2] mov ax, word ptr es:[bx+reiidenconfig_t.score_highest] mov word ptr _score_highest+2, dx mov word ptr _score_highest, ax xor si, si jmp short loc_A003 ; --------------------------------------------------------------------------- loc_9FC2: mov ax, si add ax, ax les bx, [bp+reiidenconfig] add bx, ax mov ax, es:[bx+reiidenconfig_t.continues_per_scene] mov bx, si shl bx, 2 mov word ptr [bx+143Eh], 0 mov [bx+143Ch], ax mov ax, si add ax, ax les bx, [bp+reiidenconfig] add bx, ax mov es:[bx+reiidenconfig_t.continues_per_scene], 0 mov bx, si shl bx, 2 mov dx, [bx+143Eh] mov ax, [bx+143Ch] add word ptr _continues_total, ax adc word ptr _continues_total+2, dx inc si loc_A003: cmp si, 4 jl short loc_9FC2 les bx, [bp+reiidenconfig] mov dx, word ptr es:[bx+reiidenconfig_t.rand+2] mov ax, word ptr es:[bx+reiidenconfig_t.rand] mov word ptr random_seed+2, dx mov word ptr random_seed, ax les bx, [bp+reiidenconfig] mov al, es:[bx+reiidenconfig_t.start_lives_extra] mov byte_14020, al les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.score+2], 0 mov word ptr es:[bx+reiidenconfig_t.score], 0 les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0 mov word ptr es:[bx+reiidenconfig_t.continues_total], 0 les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0 mov word ptr es:[bx+reiidenconfig_t.score_highest], 0 jmp short loc_A05B ; --------------------------------------------------------------------------- loc_A053: push ds push offset aErrorEnd_flagI ; "ERROR : end_flag is not ture !!" jmp short loc_A061 ; --------------------------------------------------------------------------- jmp short loc_A069 ; --------------------------------------------------------------------------- loc_A05B: jmp short loc_A06D ; --------------------------------------------------------------------------- loc_A05D: push ds push offset s ; "ERROR : cfg_id is not alloc!!" loc_A061: call _puts add sp, 4 loc_A069: xor ax, ax jmp short loc_A072 ; --------------------------------------------------------------------------- loc_A06D: mov ax, 1 jmp short $+2 loc_A072: pop di pop si leave retf sub_9F49 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A076 proc far reiidenconfig = dword ptr -4 enter 4, 0 push si push di push ds push offset aReiidenconfi_0 ; "ReiidenConfig" push 0Dh push 5 call resdata_exist mov di, ax or di, di jz short loc_A0EE mov word ptr [bp+reiidenconfig+2], di mov word ptr [bp+reiidenconfig], 0 les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.score+2], 0 mov word ptr es:[bx+reiidenconfig_t.score], 0 les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0 mov word ptr es:[bx+reiidenconfig_t.continues_total], 0 les bx, [bp+reiidenconfig] mov es:[bx+reiidenconfig_t.end_flag], 0 les bx, [bp+reiidenconfig] mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0 mov word ptr es:[bx+reiidenconfig_t.score_highest], 0 xor si, si jmp short loc_A0E0 ; --------------------------------------------------------------------------- loc_A0D0: mov ax, si add ax, ax les bx, [bp+reiidenconfig] add bx, ax mov es:[bx+reiidenconfig_t.continues_per_scene], 0 inc si loc_A0E0: cmp si, 4 jl short loc_A0D0 les bx, [bp+reiidenconfig] mov es:[bx+reiidenconfig_t.stage], 0 loc_A0EE: mov ax, 1 jmp short $+2 pop di pop si leave retf sub_A076 endp ; =============== 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 call _mdrv2_resident or ax, ax jnz short loc_A105 pop bp retf ; --------------------------------------------------------------------------- loc_A105: les bx, [bp+_argv] les bx, es:[bx+4] mov al, es:[bx] cbw cmp ax, 74h ; 't' jz short loc_A121 call sub_9F49 or ax, ax jnz short loc_A11F pop bp retf ; --------------------------------------------------------------------------- loc_A11F: jmp short loc_A13E ; --------------------------------------------------------------------------- loc_A121: les bx, [bp+_argv] les bx, es:[bx+4] mov al, es:[bx+1] cbw cmp ax, 31h ; '1' jnz short loc_A139 mov byte_14021, 1 jmp short loc_A13E ; --------------------------------------------------------------------------- loc_A139: mov byte_14021, 2 loc_A13E: call _mdrv2_check_board call _game_init call sub_B945 call _game_switch_binary push 0 push 0 push ds push offset arg0 ; "op" push ds push offset path ; "op" call _execl add sp, 0Ch pop bp retf _main endp fuuin_01_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_02_TEXT segment byte public 'CODE' use16 extern _graph_putfwnum_fx:proc extern _input_sense:proc extern _input_reset_sense:proc extern _scoredat_name_byte_encode:proc extern _scoredat_load:proc extern _scoredat_name_get:proc fuuin_02_TEXT ends fuuin_02__TEXT segment byte public 'CODE' use16 assume cs:fuuin_02 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A801 proc far var_2 = word ptr -2 enter 2, 0 push si push di mov [bp+var_2], 27h ; ''' mov di, 8282h mov si, 1 jmp short loc_A84F ; --------------------------------------------------------------------------- loc_A814: mov ax, di and ax, 0FFh push ax mov ax, di shr ax, 8 push ax ; arglist push ds push offset aCC ; "%c%c" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 0F0h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Eh inc di inc si loc_A84F: cmp si, 1Ah jl short loc_A814 call _graph_putsa_fx c, 32, 240, FX_REVERSE or 23h, offset aVb, ds ; "a" mov di, 8260h xor si, si jmp short loc_A8AA ; --------------------------------------------------------------------------- loc_A86F: mov ax, di and ax, 0FFh push ax mov ax, di shr ax, 8 push ax ; arglist push ds push offset aCC_0 ; "%c%c" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 120h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Eh inc di inc si loc_A8AA: cmp si, 1Ah jl short loc_A86F xor si, si jmp short loc_A8F5 ; --------------------------------------------------------------------------- loc_A8B3: mov bx, si add bx, bx mov di, [bx+108h] mov ax, di and ax, 0FFh push ax mov ax, di shr ax, 8 push ax ; arglist push ds push offset aCC_1 ; "%c%c" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 150h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Eh inc si loc_A8F5: cmp si, 12h jl short loc_A8B3 mov di, 824Fh xor si, si jmp short loc_A93C ; --------------------------------------------------------------------------- loc_A901: mov ax, di and ax, 0FFh push ax mov ax, di shr ax, 8 push ax ; arglist push ds push offset aCC_2 ; "%c%c" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 168h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Eh inc di inc si loc_A93C: cmp si, 0Ah jl short loc_A901 push ds push offset aSp ; "SP" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 168h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Ah mov si, 0Fh push ds push offset aBi ; "←" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 168h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Ah inc si push ds push offset aBi_0 ; "→" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 168h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Ah inc si push ds push offset aPi ; "終" push [bp+var_2] ; int mov ax, si mov bx, 12h cwd idiv bx imul ax, 18h add ax, 168h push ax ; int mov ax, si mov bx, 12h cwd idiv bx shl dx, 5 add dx, 20h ; ' ' push dx ; int call _graph_printf_fx add sp, 0Ah inc si pop di pop si leave retf sub_A801 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A9FF proc far var_12 = byte ptr -12h arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch arg_8 = dword ptr 0Eh arg_C = word ptr 12h arg_E = word ptr 14h enter 12h, 0 push si push di mov di, [bp+arg_0] lea ax, [bp+var_12] push ss push ax push ds push offset aBqbqbqbqbqbqbq ; "________" mov cx, 11h call SCOPY@ push 0 call _graph_accesspage_func pop cx call _graph_putsa_fx c, 32, 48, 33h, offset aB@cB@iB@, ds ; " 霊 位 " call _graph_putsa_fx c, 144, 48, 33h, offset aB@b@cB@b@sob@b, ds ; "  名  前  " call _graph_putsa_fx c, 352, 48, 33h, offset aB@b@uB@b@u_b@b, ds ; "  得  点  " call _graph_putsa_fx c, 512, 48, 33h, offset aGxgebGwbeglbGg, ds ; "ステージ・ルート" xor si, si jmp loc_AD66 ; --------------------------------------------------------------------------- loc_AA71: mov bx, si cmp bx, 9 jbe short loc_AA7B jmp loc_AB4F ; --------------------------------------------------------------------------- loc_AA7B: add bx, bx jmp cs:off_AD72[bx] loc_AA82: push ds push offset aB@sB@r_b@ ; " 靈 神 " cmp si, di jnz short loc_AA8F mov ax, 3 jmp short loc_AA92 ; --------------------------------------------------------------------------- loc_AA8F: mov ax, 7 loc_AA92: jmp loc_AB36 ; --------------------------------------------------------------------------- loc_AA95: push ds push offset aSMRgcId ; "太元帥明王" cmp si, di jnz short loc_AAA2 mov ax, 3 jmp short loc_AAA5 ; --------------------------------------------------------------------------- loc_AAA2: mov ax, 7 loc_AAA5: jmp loc_AB36 ; --------------------------------------------------------------------------- loc_AAA8: push ds push offset aB@uvb@rxb@ ; " 天 仙 " cmp si, di jnz short loc_AAB5 mov ax, 3 jmp short loc_AAB8 ; --------------------------------------------------------------------------- loc_AAB5: mov ax, 7 loc_AAB8: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AABA: push ds push offset aB@r_b@rxb@ ; " 神 仙 " cmp si, di jnz short loc_AAC7 mov ax, 3 jmp short loc_AACA ; --------------------------------------------------------------------------- loc_AAC7: mov ax, 7 loc_AACA: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AACC: push ds push offset aB@tnb@rxb@ ; " 地 仙 " cmp si, di jnz short loc_AAD9 mov ax, 3 jmp short loc_AADC ; --------------------------------------------------------------------------- loc_AAD9: mov ax, 7 loc_AADC: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AADE: push ds push offset aB@rlb@rxb@ ; " 人 仙 " cmp si, di jnz short loc_AAEB mov ax, 3 jmp short loc_AAEE ; --------------------------------------------------------------------------- loc_AAEB: mov ax, 7 loc_AAEE: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AAF0: push ds push offset aB@rxb@pcb@ ; " 仙 女 " cmp si, di jnz short loc_AAFD mov ax, 3 jmp short loc_AB00 ; --------------------------------------------------------------------------- loc_AAFD: mov ax, 7 loc_AB00: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AB02: push ds push offset aIab@czb@ot ; "陰 陽 師" cmp si, di jnz short loc_AB0F mov ax, 3 jmp short loc_AB12 ; --------------------------------------------------------------------------- loc_AB0F: mov ax, 7 loc_AB12: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AB14: push ds push offset aSB@fB@ot ; "靈 媒 師" cmp si, di jnz short loc_AB21 mov ax, 3 jmp short loc_AB24 ; --------------------------------------------------------------------------- loc_AB21: mov ax, 7 loc_AB24: jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AB26: push ds push offset aPcb@lB@o ; "修 業 者" cmp si, di jnz short loc_AB33 mov ax, 3 jmp short loc_AB36 ; --------------------------------------------------------------------------- loc_AB33: mov ax, 7 loc_AB36: or ax, 20h push ax mov ax, si shl ax, 4 add ax, 64 push ax push 32 call _graph_putsa_fx add sp, 0Ah jmp short $+2 loc_AB4F: cmp si, di jnz short loc_AB5A mov dx, ss lea ax, [bp+var_12] jmp short loc_AB69 ; --------------------------------------------------------------------------- loc_AB5A: mov ax, si imul ax, 12h mov dx, [bp+arg_E] push ax mov ax, [bp+arg_C] pop bx add ax, bx loc_AB69: push dx push ax cmp si, di jnz short loc_AB74 mov ax, 3 jmp short loc_AB77 ; --------------------------------------------------------------------------- loc_AB74: mov ax, 7 loc_AB77: or ax, 20h push ax mov ax, si shl ax, 4 add ax, 64 push ax push 144 call _graph_putsa_fx add sp, 0Ah push 0 ; put_leading_zeroes push 0 ; num_prev (high) push 0 ; num_prev (low) cmp di, si jnz short loc_ABA1 mov dx, [bp+arg_4] mov ax, [bp+arg_2] jmp short loc_ABB3 ; --------------------------------------------------------------------------- loc_ABA1: mov ax, si shl ax, 2 les bx, _scoredat_points add bx, ax mov dx, es:[bx+2] mov ax, es:[bx] loc_ABB3: push dx ; num (high) push ax ; num (low) push 7 ; digits cmp si, di jnz short loc_ABC0 mov ax, 3 jmp short loc_ABC3 ; --------------------------------------------------------------------------- loc_ABC0: mov ax, 7 loc_ABC3: or ax, 30h push ax ; fx mov ax, si shl ax, 4 add ax, 64 push ax ; top push 352 ; left call fuuin_02:_graph_putfwnum_fx add sp, 12h cmp si, di jz short loc_ABEE mov ax, si add ax, ax les bx, _scoredat_stages add bx, ax cmp word ptr es:[bx], SCOREDAT_CLEARED jl short loc_ABF8 loc_ABEE: cmp si, di jnz short loc_AC3F cmp [bp+arg_6], SCOREDAT_CLEARED jge short loc_AC3F loc_ABF8: push 0 ; put_leading_zeroes push 0 ; num_prev (high) push 0 ; num_prev (low) cmp si, di jnz short loc_AC07 mov ax, [bp+arg_6] jmp short loc_AC14 ; --------------------------------------------------------------------------- loc_AC07: mov ax, si add ax, ax les bx, _scoredat_stages add bx, ax mov ax, es:[bx] loc_AC14: cwd push dx ; num (high) push ax ; num (low) push 2 ; digits cmp si, di jnz short loc_AC22 mov ax, 3 jmp short loc_AC25 ; --------------------------------------------------------------------------- loc_AC22: mov ax, 7 loc_AC25: or ax, 20h push ax ; fx mov ax, si shl ax, 4 add ax, 64 push ax ; top push 528 ; left call fuuin_02:_graph_putfwnum_fx add sp, 12h jmp loc_ACCD ; --------------------------------------------------------------------------- loc_AC3F: cmp si, di jz short loc_AC53 mov ax, si add ax, ax les bx, _scoredat_stages add bx, ax cmp word ptr es:[bx], SCOREDAT_CLEARED_MAKAI jz short loc_AC5D loc_AC53: cmp si, di jnz short loc_AC87 cmp [bp+arg_6], SCOREDAT_CLEARED_MAKAI jnz short loc_AC87 loc_AC5D: push ds push offset aCvke ; "魔界" cmp si, di jnz short loc_AC6A mov ax, 3 jmp short loc_AC6D ; --------------------------------------------------------------------------- loc_AC6A: mov ax, 7 loc_AC6D: or ax, 20h push ax mov ax, si shl ax, 4 add ax, 64 push ax push 528 call _graph_putsa_fx add sp, 0Ah jmp short loc_ACCD ; --------------------------------------------------------------------------- loc_AC87: cmp si, di jz short loc_AC9B mov ax, si add ax, ax les bx, _scoredat_stages add bx, ax cmp word ptr es:[bx], SCOREDAT_CLEARED_JIGOKU jz short loc_ACA5 loc_AC9B: cmp si, di jnz short loc_ACCD cmp [bp+arg_6], SCOREDAT_CLEARED_JIGOKU jnz short loc_ACCD loc_ACA5: push ds push offset aTnnc ; "地獄" cmp si, di jnz short loc_ACB2 mov ax, 3 jmp short loc_ACB5 ; --------------------------------------------------------------------------- loc_ACB2: mov ax, 7 loc_ACB5: or ax, 20h push ax mov ax, si shl ax, 4 add ax, 64 push ax push 528 call _graph_putsa_fx add sp, 0Ah loc_ACCD: push ds push offset aB ; "−" cmp si, di jnz short loc_ACDA mov ax, 3 jmp short loc_ACDD ; --------------------------------------------------------------------------- loc_ACDA: mov ax, 7 loc_ACDD: or ax, 20h push ax mov ax, si shl ax, 4 add ax, 64 push ax push 560 call _graph_putsa_fx add sp, 0Ah cmp si, di jnz short loc_ACFE les bx, [bp+arg_8] jmp short loc_AD0A ; --------------------------------------------------------------------------- loc_ACFE: mov bx, si add bx, bx mov es, word ptr _scoredat_routes+2 add bx, word ptr _scoredat_routes loc_AD0A: mov al, es:[bx+1] cbw push ax cmp si, di jnz short loc_AD19 les bx, [bp+arg_8] jmp short loc_AD23 ; --------------------------------------------------------------------------- loc_AD19: mov ax, si add ax, ax les bx, _scoredat_routes add bx, ax loc_AD23: mov al, es:[bx] cbw push ax ; arglist push ds push offset aCC_3 ; "%c%c" cmp si, di jnz short loc_AD35 mov ax, 3 jmp short loc_AD38 ; --------------------------------------------------------------------------- loc_AD35: mov ax, 7 loc_AD38: or ax, 20h push ax ; int mov ax, si shl ax, 4 add ax, 40h push ax ; int push 240h ; int call _graph_printf_fx add sp, 0Eh cmp di, si jnz short loc_AD65 mov _name_entered_left, 144 mov ax, si shl ax, 4 add ax, 64 mov _name_entered_top, ax loc_AD65: inc si loc_AD66: cmp si, SCOREDAT_PLACES jge short loc_AD6E jmp loc_AA71 ; --------------------------------------------------------------------------- loc_AD6E: pop di pop si leave retf sub_A9FF endp ; --------------------------------------------------------------------------- off_AD72 dw offset loc_AA82 dw offset loc_AA95 dw offset loc_AAA8 dw offset loc_AABA dw offset loc_AACC dw offset loc_AADE dw offset loc_AAF0 dw offset loc_AB02 dw offset loc_AB14 dw offset loc_AB26 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AD86 proc far var_4 = word ptr -4 var_2 = word ptr -2 @@left = word ptr 6 @@top = word ptr 8 arg_4 = word ptr 0Ah enter 4, 0 push si push di mov si, [bp+@@left] mov di, [bp+@@top] mov [bp+var_2], 0 call _egc_copy_rect_1_to_0 c, si, di, 32, 16 cmp [bp+arg_4], 0 jnz short loc_ADB0 mov ax, 7 jmp short loc_ADB3 ; --------------------------------------------------------------------------- loc_ADB0: mov ax, 803h loc_ADB3: or ax, 20h mov [bp+var_4], ax cmp di, 0F0h jnz short loc_ADD1 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8281h mov [bp+var_2], ax jmp loc_AECD ; --------------------------------------------------------------------------- loc_ADD1: cmp di, 108h jnz short loc_ADE9 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8293h mov [bp+var_2], ax jmp loc_AECD ; --------------------------------------------------------------------------- loc_ADE9: cmp di, 120h jnz short loc_AE01 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8260h mov [bp+var_2], ax jmp loc_AECD ; --------------------------------------------------------------------------- loc_AE01: cmp di, 138h jnz short loc_AE19 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8272h mov [bp+var_2], ax jmp loc_AECD ; --------------------------------------------------------------------------- loc_AE19: cmp di, 150h jnz short loc_AE36 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, ax mov bx, ax mov ax, [bx+108h] mov [bp+var_2], ax jmp loc_AECD ; --------------------------------------------------------------------------- loc_AE36: cmp di, 168h jnz short loc_AE53 cmp si, 160h jge short loc_AE53 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 824Fh mov [bp+var_2], ax jmp short loc_AECD ; --------------------------------------------------------------------------- loc_AE53: cmp di, 168h jnz short loc_AE72 cmp si, 160h jnz short loc_AE72 push ds push offset aSp_0 ; "SP" push [bp+var_4] ; int push di ; int push si ; int call _graph_printf_fx add sp, 0Ah jmp short loc_AECD ; --------------------------------------------------------------------------- loc_AE72: cmp di, 168h jnz short loc_AE91 cmp si, 200h jnz short loc_AE91 push ds push offset aBi_1 ; "←" push [bp+var_4] ; int push di ; int push si ; int call _graph_printf_fx add sp, 0Ah jmp short loc_AECD ; --------------------------------------------------------------------------- loc_AE91: cmp di, 168h jnz short loc_AEB0 cmp si, 220h jnz short loc_AEB0 push ds push offset aBi_2 ; "→" push [bp+var_4] ; int push di ; int push si ; int call _graph_printf_fx add sp, 0Ah jmp short loc_AECD ; --------------------------------------------------------------------------- loc_AEB0: cmp di, 168h jnz short loc_AECD cmp si, 240h jnz short loc_AECD push ds push offset aPi_0 ; "終" push [bp+var_4] ; int push di ; int push si ; int call _graph_printf_fx add sp, 0Ah loc_AECD: cmp [bp+var_2], 0 jz short loc_AEF2 mov ax, [bp+var_2] and ax, 0FFh push ax mov ax, [bp+var_2] sar ax, 8 push ax ; arglist push ds push offset aCC_4 ; "%c%c" push [bp+var_4] ; int push di ; int push si ; int call _graph_printf_fx add sp, 0Eh loc_AEF2: pop di pop si leave retf sub_AD86 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl __far sub_AEF6(int, int, char arglist, int, __int32) sub_AEF6 proc far var_14 = byte ptr -14h var_13 = byte ptr -13h var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 _arglist = byte ptr 0Ah arg_8 = dword ptr 0Eh enter 14h, 0 push si push di mov si, [bp+arg_0] mov di, [bp+arg_2] mov [bp+var_2], 0 lea ax, [bp+var_14] push ss push ax push ds push offset aB@b@b@b@b@b@b@ ; "        " mov cx, 11h call SCOPY@ cmp di, 0F0h jnz short loc_AF30 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8281h mov [bp+var_2], ax jmp loc_B021 ; --------------------------------------------------------------------------- loc_AF30: cmp di, 108h jnz short loc_AF48 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8293h mov [bp+var_2], ax jmp loc_B021 ; --------------------------------------------------------------------------- loc_AF48: cmp di, 120h jnz short loc_AF60 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8260h mov [bp+var_2], ax jmp loc_B021 ; --------------------------------------------------------------------------- loc_AF60: cmp di, 138h jnz short loc_AF78 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 8272h mov [bp+var_2], ax jmp loc_B021 ; --------------------------------------------------------------------------- loc_AF78: cmp di, 150h jnz short loc_AF95 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, ax mov bx, ax mov ax, [bx+108h] mov [bp+var_2], ax jmp loc_B021 ; --------------------------------------------------------------------------- loc_AF95: cmp di, 168h jnz short loc_AFB2 cmp si, 160h jge short loc_AFB2 lea ax, [si-20h] mov bx, 20h ; ' ' cwd idiv bx add ax, 824Fh mov [bp+var_2], ax jmp short loc_B021 ; --------------------------------------------------------------------------- loc_AFB2: cmp di, 168h jnz short loc_AFC5 cmp si, 160h jnz short loc_AFC5 mov [bp+var_2], 8140h jmp short loc_B021 ; --------------------------------------------------------------------------- loc_AFC5: cmp di, 168h jnz short loc_AFEA cmp si, 200h jnz short loc_AFEA les bx, [bp+arg_8] dec word ptr es:[bx] les bx, [bp+arg_8] cmp word ptr es:[bx], 0 jge short loc_AFE8 les bx, [bp+arg_8] mov word ptr es:[bx], 0 loc_AFE8: jmp short loc_B021 ; --------------------------------------------------------------------------- loc_AFEA: cmp di, 168h jnz short loc_B00F cmp si, 220h jnz short loc_B00F les bx, [bp+arg_8] inc word ptr es:[bx] les bx, [bp+arg_8] cmp word ptr es:[bx], 7 jle short loc_B00D les bx, [bp+arg_8] mov word ptr es:[bx], 7 loc_B00D: jmp short loc_B021 ; --------------------------------------------------------------------------- loc_B00F: cmp di, 168h jnz short loc_B021 cmp si, 240h jnz short loc_B021 mov ax, 1 jmp loc_B0D5 ; --------------------------------------------------------------------------- loc_B021: cmp [bp+var_2], 0 jz short loc_B063 mov ax, [bp+var_2] sar ax, 8 les bx, [bp+arg_8] mov dx, es:[bx] add dx, dx les bx, dword ptr [bp+_arglist] add bx, dx mov es:[bx], al les bx, [bp+arg_8] mov bx, es:[bx] add bx, bx mov es, word ptr [bp+0Ch] add bx, word ptr [bp+_arglist] mov al, byte ptr [bp+var_2] and al, 0FFh mov es:[bx+1], al les bx, [bp+arg_8] cmp word ptr es:[bx], 7 jge short loc_B063 les bx, [bp+arg_8] inc word ptr es:[bx] loc_B063: call _egc_copy_rect_1_to_0 c, _name_entered_left, _name_entered_top, 128, 16 push word ptr [bp+0Ch] push word ptr [bp+_arglist] ; arglist push ds push offset aS ; "%s" push 23h ; '#' ; int push _name_entered_top ; int push _name_entered_left ; int call _graph_printf_fx add sp, 0Eh les bx, [bp+arg_8] mov bx, es:[bx] add bx, bx lea ax, [bp+var_14] add bx, ax mov byte ptr ss:[bx], 81h les bx, [bp+arg_8] mov bx, es:[bx] add bx, bx lea ax, [bp+var_13] add bx, ax mov byte ptr ss:[bx], 51h ; 'Q' push ss lea ax, [bp+var_14] push ax ; arglist push ds push offset aS_0 ; "%s" push 3 ; int push _name_entered_top ; int push _name_entered_left ; int call _graph_printf_fx add sp, 0Eh xor ax, ax jmp short $+2 loc_B0D5: pop di pop si leave retf sub_AEF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl __far sub_B0D9(__int32, __int32, char arglist, int, __int32) sub_B0D9 proc far arg_0 = dword ptr 6 arg_4 = dword ptr 0Ah _arglist = byte ptr 0Eh arg_A = word ptr 10h arg_C = dword ptr 12h push bp mov bp, sp cmp _input_up, 1 jz short loc_B0E6 jmp loc_B18F ; --------------------------------------------------------------------------- loc_B0E6: push 0 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 les bx, [bp+arg_4] sub word ptr es:[bx], 18h les bx, [bp+arg_4] cmp word ptr es:[bx], 0F0h jge short loc_B114 les bx, [bp+arg_4] mov word ptr es:[bx], 168h loc_B114: les bx, [bp+arg_4] cmp word ptr es:[bx], 108h jnz short loc_B130 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B130 les bx, [bp+arg_4] mov word ptr es:[bx], 0F0h loc_B130: les bx, [bp+arg_4] cmp word ptr es:[bx], 138h jnz short loc_B14C les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B14C les bx, [bp+arg_4] mov word ptr es:[bx], 120h loc_B14C: les bx, [bp+arg_4] cmp word ptr es:[bx], 168h jnz short loc_B172 les bx, [bp+arg_0] cmp word ptr es:[bx], 160h jle short loc_B172 les bx, [bp+arg_0] cmp word ptr es:[bx], 200h jge short loc_B172 les bx, [bp+arg_4] mov word ptr es:[bx], 150h loc_B172: push 1 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 mov _input_up, 0 jmp loc_B408 ; --------------------------------------------------------------------------- loc_B18F: cmp _input_down, 1 jz short loc_B199 jmp loc_B242 ; --------------------------------------------------------------------------- loc_B199: push 0 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 les bx, [bp+arg_4] add word ptr es:[bx], 18h les bx, [bp+arg_4] cmp word ptr es:[bx], 168h jle short loc_B1C7 les bx, [bp+arg_4] mov word ptr es:[bx], 0F0h loc_B1C7: les bx, [bp+arg_4] cmp word ptr es:[bx], 108h jnz short loc_B1E3 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B1E3 les bx, [bp+arg_4] mov word ptr es:[bx], 120h loc_B1E3: les bx, [bp+arg_4] cmp word ptr es:[bx], 138h jnz short loc_B1FF les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B1FF les bx, [bp+arg_4] mov word ptr es:[bx], 150h loc_B1FF: les bx, [bp+arg_4] cmp word ptr es:[bx], 168h jnz short loc_B225 les bx, [bp+arg_0] cmp word ptr es:[bx], 160h jle short loc_B225 les bx, [bp+arg_0] cmp word ptr es:[bx], 200h jge short loc_B225 les bx, [bp+arg_4] mov word ptr es:[bx], 0F0h loc_B225: push 1 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 mov _input_down, 0 jmp loc_B408 ; --------------------------------------------------------------------------- loc_B242: cmp _input_lr, INPUT_LEFT jz short loc_B24C jmp loc_B2F4 ; --------------------------------------------------------------------------- loc_B24C: push 0 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 les bx, [bp+arg_0] sub word ptr es:[bx], 20h ; ' ' les bx, [bp+arg_0] cmp word ptr es:[bx], 20h ; ' ' jge short loc_B279 les bx, [bp+arg_0] mov word ptr es:[bx], 240h loc_B279: les bx, [bp+arg_4] cmp word ptr es:[bx], 108h jnz short loc_B295 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B295 les bx, [bp+arg_0] mov word ptr es:[bx], 100h loc_B295: les bx, [bp+arg_4] cmp word ptr es:[bx], 138h jnz short loc_B2B1 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B2B1 les bx, [bp+arg_0] mov word ptr es:[bx], 100h loc_B2B1: les bx, [bp+arg_4] cmp word ptr es:[bx], 168h jnz short loc_B2D7 les bx, [bp+arg_0] cmp word ptr es:[bx], 160h jle short loc_B2D7 les bx, [bp+arg_0] cmp word ptr es:[bx], 200h jge short loc_B2D7 les bx, [bp+arg_0] mov word ptr es:[bx], 160h loc_B2D7: push 1 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 mov _input_lr, 0 jmp loc_B408 ; --------------------------------------------------------------------------- loc_B2F4: cmp _input_lr, INPUT_RIGHT jz short loc_B2FE jmp loc_B3A6 ; --------------------------------------------------------------------------- loc_B2FE: push 0 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 les bx, [bp+arg_0] add word ptr es:[bx], 20h ; ' ' les bx, [bp+arg_0] cmp word ptr es:[bx], 240h jle short loc_B32C les bx, [bp+arg_0] mov word ptr es:[bx], 20h ; ' ' loc_B32C: les bx, [bp+arg_4] cmp word ptr es:[bx], 108h jnz short loc_B348 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B348 les bx, [bp+arg_0] mov word ptr es:[bx], 20h ; ' ' loc_B348: les bx, [bp+arg_4] cmp word ptr es:[bx], 138h jnz short loc_B364 les bx, [bp+arg_0] cmp word ptr es:[bx], 120h jl short loc_B364 les bx, [bp+arg_0] mov word ptr es:[bx], 20h ; ' ' loc_B364: les bx, [bp+arg_4] cmp word ptr es:[bx], 168h jnz short loc_B38A les bx, [bp+arg_0] cmp word ptr es:[bx], 160h jle short loc_B38A les bx, [bp+arg_0] cmp word ptr es:[bx], 200h jge short loc_B38A les bx, [bp+arg_0] mov word ptr es:[bx], 200h loc_B38A: push 1 les bx, [bp+arg_4] push word ptr es:[bx] les bx, [bp+arg_0] push word ptr es:[bx] call sub_AD86 add sp, 6 mov _input_lr, 0 jmp short loc_B408 ; --------------------------------------------------------------------------- loc_B3A6: cmp _input_shot, 1 jnz short loc_B3DC push word ptr [bp+arg_C+2] push word ptr [bp+arg_C] ; __int32 push [bp+arg_A] ; int push word ptr [bp+_arglist] ; arglist les bx, [bp+arg_4] push word ptr es:[bx] ; int les bx, [bp+arg_0] push word ptr es:[bx] ; int call sub_AEF6 add sp, 0Ch or ax, ax jz short loc_B3D5 mov ax, 1 pop bp retf ; --------------------------------------------------------------------------- loc_B3D5: mov _input_shot, 0 jmp short loc_B408 ; --------------------------------------------------------------------------- loc_B3DC: cmp _input_strike, 1 jnz short loc_B403 push word ptr [bp+arg_C+2] push word ptr [bp+arg_C] ; __int32 push [bp+arg_A] ; int push word ptr [bp+_arglist] ; arglist push 168h ; int push 200h ; int call sub_AEF6 add sp, 0Ch mov _input_strike, 0 jmp short loc_B408 ; --------------------------------------------------------------------------- loc_B403: mov ax, 2 pop bp retf ; --------------------------------------------------------------------------- loc_B408: xor ax, ax pop bp retf sub_B0D9 endp ; --------------------------------------------------------------------------- pop bp retf ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B40E proc far dest = byte ptr -1Ch var_C = byte ptr -0Ch stream = dword ptr -4 enter 1Ch, 0 push si lea ax, [bp+var_C] push ss push ax push ds push offset aHiscore_0 ; "HISCORE" mov cx, 8 call SCOPY@ mov al, _rank mov ah, 0 mov bx, ax cmp bx, RANK_LUNATIC ja short loc_B45C add bx, bx jmp cs:off_B533[bx] loc_B437: push ds push offset aReyhies_dat_1 ; "REYHIES.DAT" jmp short loc_B44D ; --------------------------------------------------------------------------- loc_B43D: push ds push offset aReyhino_dat_1 ; "REYHINO.DAT" jmp short loc_B44D ; --------------------------------------------------------------------------- loc_B443: push ds push offset aReyhiha_dat_1 ; "REYHIHA.DAT" jmp short loc_B44D ; --------------------------------------------------------------------------- loc_B449: push ds push offset aReyhilu_dat_1 ; "REYHILU.DAT" loc_B44D: push ss lea ax, [bp+dest] push ax ; dest call _strcpy add sp, 8 jmp short $+2 loc_B45C: push ds push offset aWb_0 ; "wb" push ss lea ax, [bp+dest] push ax ; path call _fopen add sp, 8 mov word ptr [bp+stream+2], dx mov word ptr [bp+stream], ax or ax, dx jnz short loc_B47A jmp loc_B530 ; --------------------------------------------------------------------------- loc_B47A: push 7 push ss lea ax, [bp+var_C] push ax les bx, [bp+stream] mov al, es:[bx+4] cbw push ax call _write add sp, 8 xor si, si jmp short loc_B4AF ; --------------------------------------------------------------------------- loc_B496: les bx, _scoredat_names add bx, si mov al, es:[bx] call fuuin_02:_scoredat_name_byte_encode pascal, ax pop cx les bx, _scoredat_names add bx, si mov es:[bx], al inc si loc_B4AF: cmp si, size scoredat_names_t jl short loc_B496 push size scoredat_names_t push word ptr _scoredat_names+2 push word ptr _scoredat_names les bx, [bp+stream] mov al, es:[bx+4] cbw push ax call _write add sp, 8 push size scoredat_points_t push word ptr _scoredat_points+2 push word ptr _scoredat_points les bx, [bp+stream] mov al, es:[bx+4] cbw push ax call _write add sp, 8 push size scoredat_stages_t push word ptr _scoredat_stages+2 push word ptr _scoredat_stages les bx, [bp+stream] mov al, es:[bx+4] cbw push ax call _write add sp, 8 push size scoredat_routes_t push word ptr _scoredat_routes+2 push word ptr _scoredat_routes les bx, [bp+stream] mov al, es:[bx+4] cbw push ax call _write add sp, 8 push word ptr [bp+stream+2] push word ptr [bp+stream] ; stream call _fclose add sp, 4 loc_B530: pop si leave retf sub_B40E endp ; --------------------------------------------------------------------------- off_B533 dw offset loc_B437 dw offset loc_B43D dw offset loc_B443 dw offset loc_B449 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B53B proc far _arglist = byte ptr -18h var_8 = byte ptr -8 var_6 = dword ptr -6 arg_0 = word ptr 6 enter 18h, 0 push si push di mov word ptr [bp+var_6], 0 mov word ptr [bp-2], 20h ; ' ' mov word ptr [bp+var_6+2], 0F0h xor si, si jmp short loc_B559 ; --------------------------------------------------------------------------- loc_B554: mov [bp+si+_arglist], 20h ; ' ' inc si loc_B559: cmp si, 10h jl short loc_B554 mov [bp+var_8], 0 call fuuin_02:_input_reset_sense loc_B566: call fuuin_02:_input_sense stdcall, 0 pop cx push ss lea ax, [bp+var_6] push ax ; __int32 push ss ; int lea ax, [bp+_arglist] push ax ; arglist push ss lea ax, [bp+var_6+2] push ax ; __int32 push ss lea ax, [bp-2] push ax ; __int32 call sub_B0D9 add sp, 10h mov di, ax cmp di, 1 jnz short loc_B591 jmp short loc_B5AB ; --------------------------------------------------------------------------- loc_B591: cmp _input_ok, 0 jz short loc_B59A jmp short loc_B5AB ; --------------------------------------------------------------------------- loc_B59A: cmp di, 2 jnz short loc_B5A1 jmp short loc_B5A9 ; --------------------------------------------------------------------------- loc_B5A1: call _frame_delay stdcall, 4 pop cx loc_B5A9: jmp short loc_B566 ; --------------------------------------------------------------------------- loc_B5AB: mov _input_ok, 0 xor si, si jmp short loc_B5CB ; --------------------------------------------------------------------------- loc_B5B4: mov al, [bp+si+_arglist] mov bx, [bp+arg_0] shl bx, 4 add bx, si mov es, word ptr _scoredat_names+2 add bx, word ptr _scoredat_names mov es:[bx], al inc si loc_B5CB: cmp si, SCOREDAT_NAME_BYTES jl short loc_B5B4 call sub_B40E pop di pop si leave retf sub_B53B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B5D8 proc far var_D2 = byte ptr -0D2h var_D0 = byte ptr -0D0h var_C0 = byte ptr -0C0h var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 @@place = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah @@route = dword ptr 0Ch enter 0D0h, 0 push si push di mov di, [bp+arg_4] lea ax, [bp+var_D0] push ss push ax push ds push offset off_12C1E mov cx, 10h call SCOPY@ push 1 call _graph_accesspage_func pop cx mov al, _rank mov ah, 0 shl ax, 2 lea dx, [bp+var_D0] add ax, dx mov bx, ax push word ptr ss:[bx+2] push word ptr ss:[bx] ; arglist push ds push offset aUmx ; "東方靈異伝 強者の記録 %s" push 227h ; int push 0 ; int push 0 ; int call _graph_printf_fx add sp, 0Eh push 0 call _graph_accesspage_func pop cx cmp di, 1Eh jge short loc_B666 push 10h push 120h push 180h push 0 push 0 push 30h ; '0' call _graph_slow_2xscale_rect_1_to_0 add sp, 0Ch call _graph_move_byterect_interpage c, 0, 384, 288, RES_Y, 0, 384, 0, 1 jmp short loc_B67B ; --------------------------------------------------------------------------- loc_B666: push 10h push 120h push 0 push 0 push 0 push 30h ; '0' call _graph_slow_2xscale_rect_1_to_0 add sp, 0Ch loc_B67B: call fuuin_02:_scoredat_load or ax, ax jz short loc_B686 jmp loc_B941 ; --------------------------------------------------------------------------- loc_B686: mov [bp+var_2], 0 mov [bp+@@place], 0 jmp short loc_B6B2 ; --------------------------------------------------------------------------- loc_B692: mov ax, [bp+@@place] imul ax, ((SCOREDAT_NAME_KANJI + 1) * word) lea dx, [bp+var_C0] add ax, dx call fuuin_02:_scoredat_name_get c, [bp+@@place], ax, ss add [bp+@@place], 1 adc [bp+var_2], 0 loc_B6B2: cmp [bp+var_2], 0 jl short loc_B692 jnz short loc_B6C0 cmp [bp+@@place], SCOREDAT_PLACES jb short loc_B692 loc_B6C0: mov [bp+var_2], 0 mov [bp+@@place], 0 jmp short loc_B6F5 ; --------------------------------------------------------------------------- loc_B6CC: mov ax, [bp+@@place] shl ax, 2 les bx, _scoredat_points add bx, ax mov dx, es:[bx+2] mov ax, es:[bx] cmp dx, [bp+arg_2] jg short loc_B6ED jnz short loc_B6EB cmp ax, [bp+arg_0] ja short loc_B6ED loc_B6EB: jmp short loc_B703 ; --------------------------------------------------------------------------- loc_B6ED: add [bp+@@place], 1 adc [bp+var_2], 0 loc_B6F5: cmp [bp+var_2], 0 jl short loc_B6CC jnz short loc_B703 cmp [bp+@@place], SCOREDAT_PLACES jb short loc_B6CC loc_B703: call fuuin_02:_input_reset_sense cmp [bp+var_2], 0 jle short loc_B710 jmp loc_B8BD ; --------------------------------------------------------------------------- loc_B710: jl short loc_B71B cmp [bp+@@place], SCOREDAT_PLACES jb short loc_B71B jmp loc_B8BD ; --------------------------------------------------------------------------- loc_B71B: mov [bp+var_6], 0 mov [bp+var_8], (SCOREDAT_PLACES - 1) jmp loc_B7D9 ; --------------------------------------------------------------------------- loc_B728: push ss mov ax, [bp+var_8] imul ax, ((SCOREDAT_NAME_KANJI + 1) * word) lea dx, [bp+var_D2] add ax, dx push ax ; src mov ax, [bp+var_8] imul ax, ((SCOREDAT_NAME_KANJI + 1) * word) lea dx, [bp+var_C0] add ax, dx push ss push ax ; dest call _strcpy add sp, 8 mov ax, [bp+var_8] dec ax shl ax, 2 les bx, _scoredat_points add bx, ax mov dx, es:[bx+2] mov ax, es:[bx] mov bx, [bp+var_8] shl bx, 2 les si, _scoredat_points add si, bx mov es:[si+2], dx mov es:[si], ax mov ax, [bp+var_8] dec ax add ax, ax les bx, _scoredat_stages add bx, ax mov ax, es:[bx] mov dx, [bp+var_8] add dx, dx les bx, _scoredat_stages add bx, dx mov es:[bx], ax mov bx, [bp+var_8] add bx, bx mov es, word ptr _scoredat_routes+2 add bx, word ptr _scoredat_routes mov al, es:[bx-2] mov dx, [bp+var_8] add dx, dx les bx, _scoredat_routes add bx, dx mov es:[bx], al mov bx, [bp+var_8] add bx, bx mov es, word ptr _scoredat_routes+2 add bx, word ptr _scoredat_routes mov al, es:[bx-1] mov bx, [bp+var_8] add bx, bx mov es, word ptr _scoredat_routes+2 add bx, word ptr _scoredat_routes mov es:[bx+1], al sub [bp+var_8], 1 sbb [bp+var_6], 0 loc_B7D9: mov dx, [bp+var_6] mov ax, [bp+var_8] cmp dx, [bp+var_2] jle short loc_B7E7 jmp loc_B728 ; --------------------------------------------------------------------------- loc_B7E7: jnz short loc_B7F1 cmp ax, [bp+@@place] jbe short loc_B7F1 jmp loc_B728 ; --------------------------------------------------------------------------- loc_B7F1: mov [bp+var_A], 0 mov [bp+var_C], (size scoredat_names_t - 1) jmp short loc_B81E ; --------------------------------------------------------------------------- loc_B7FD: mov bx, [bp+var_C] mov es, word ptr _scoredat_names+2 add bx, word ptr _scoredat_names mov al, es:[bx-SCOREDAT_NAME_BYTES] les bx, _scoredat_names add bx, [bp+var_C] mov es:[bx], al sub [bp+var_C], 1 sbb [bp+var_A], 0 loc_B81E: mov dx, [bp+var_2] mov ax, [bp+@@place] mov cl, 4 call far ptr LXLSH@ add ax, 10h adc dx, 0 cmp dx, [bp+var_A] jl short loc_B7FD jg short loc_B83D cmp ax, [bp+var_C] jbe short loc_B7FD loc_B83D: push ss lea ax, [bp+var_C0] push ax push word ptr [bp+@@route+2] push word ptr [bp+@@route] push di push [bp+arg_2] push [bp+arg_0] push [bp+@@place] call sub_A9FF add sp, 10h call sub_A801 mov ax, [bp+@@place] shl ax, 2 les bx, _scoredat_points add bx, ax mov dx, [bp+arg_2] mov ax, [bp+arg_0] mov es:[bx+2], dx mov es:[bx], ax mov ax, [bp+@@place] add ax, ax les bx, _scoredat_stages add bx, ax mov es:[bx], di mov ax, [bp+@@place] add ax, ax les bx, _scoredat_routes add bx, ax push es les si, [bp+@@route] mov al, es:[si] pop es mov es:[bx], al les bx, [bp+@@route] mov al, es:[bx+1] mov bx, [bp+@@place] add bx, bx mov es, word ptr _scoredat_routes+2 add bx, word ptr _scoredat_routes mov es:[bx+1], al push [bp+@@place] call sub_B53B pop cx jmp short loc_B8FC ; --------------------------------------------------------------------------- loc_B8BD: push ss lea ax, [bp+var_C0] push ax push word ptr [bp+@@route+2] push word ptr [bp+@@route] push di push [bp+arg_2] push [bp+arg_0] push 1Eh call sub_A9FF add sp, 10h mov _input_ok, 1 mov _input_shot, 1 loc_B8E3: call fuuin_02:_input_sense stdcall, 0 pop cx cmp _input_ok, 0 jz short loc_B8F8 cmp _input_shot, 0 jnz short loc_B8FA loc_B8F8: jmp short loc_B8FC ; --------------------------------------------------------------------------- loc_B8FA: jmp short loc_B8E3 ; --------------------------------------------------------------------------- loc_B8FC: mov ax, seg fuuin_08_TEXT mov es, ax assume es:fuuin_08_TEXT call @$bdla$qnv c, word ptr _scoredat_names, word ptr _scoredat_names+2 call @$bdla$qnv c, word ptr _scoredat_stages, word ptr _scoredat_stages+2 call @$bdla$qnv c, word ptr _scoredat_routes, word ptr _scoredat_routes+2 call @$bdla$qnv c, word ptr _scoredat_points, word ptr _scoredat_points+2 loc_B941: pop di pop si leave retf sub_B5D8 endp fuuin_02__TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_03_TEXT segment byte public 'CODE' use16 assume cs:fuuin_03_TEXT ;org 5 assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B945 proc far push bp mov bp, sp push si push ds push offset aIris_mdt ; "iris.mdt" call _mdrv2_bgm_load add sp, 4 call _mdrv2_bgm_play call grp_palette_settone pascal, 0 call grp_put_palette_show_1 pascal, ds, offset aEd1a_grp ; "ED1A.grp" push 0 call sub_C78B pop cx call grp_palette_black_in pascal, 6 call _frame_delay stdcall, 100 pop cx call grp_palette_white_out pascal, 5 call _frame_delay stdcall, 100 pop cx push 1 call sub_C78B pop cx call grp_palette_settone pascal, 100 call _frame_delay stdcall, 13 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 13 pop cx push 3 call sub_C78B pop cx call _frame_delay stdcall, 50 pop cx call grp_put_palette_show_1 pascal, ds, offset aEd1b_grp ; "ED1B.grp" push 0 call sub_C78B pop cx call _frame_delay stdcall, 10 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 10 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx call grp_palette_black_out pascal, 6 push 0 call _graph_accesspage_func pop cx call _z_graph_clear call grp_palette_settone pascal, 100 call grp_put_palette_show_1 pascal, ds, offset aEd1c_grp ; "ED1C.GRP" xor si, si jmp short loc_BA49 ; --------------------------------------------------------------------------- loc_BA28: push 0 call sub_C78B pop cx call _frame_delay stdcall, 20 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 20 pop cx inc si loc_BA49: cmp si, 6 jl short loc_BA28 push 0 call sub_C78B pop cx call _frame_delay stdcall, 40 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 40 pop cx call grp_put_palette_show_1 pascal, ds, offset aEd1d_grp ; "ED1D.GRP" push 3 call sub_C78B pop cx call _frame_delay stdcall, 70 pop cx xor si, si jmp loc_BB16 ; --------------------------------------------------------------------------- loc_BA8C: or si, si jnz short loc_BA98 push 0 call sub_C78B pop cx loc_BA98: cmp si, 14h jnz short loc_BAA5 push 1 call sub_C78B pop cx loc_BAA5: cmp si, 18h jnz short loc_BAB2 push 2 call sub_C78B pop cx loc_BAB2: cmp si, 1Ch jnz short loc_BABF push 0 call sub_C78B pop cx loc_BABF: cmp si, 32h ; '2' jnz short loc_BACC push 1 call sub_C78B pop cx loc_BACC: cmp si, 36h ; '6' jnz short loc_BAD9 push 2 call sub_C78B pop cx loc_BAD9: cmp si, 3Ah ; ':' jnz short loc_BAE6 push 0 call sub_C78B pop cx loc_BAE6: cmp si, 5Ah ; 'Z' jnz short loc_BAF3 push 1 call sub_C78B pop cx loc_BAF3: cmp si, 5Eh ; '^' jnz short loc_BB00 push 2 call sub_C78B pop cx loc_BB00: cmp si, 62h ; 'b' jnz short loc_BB0D push 0 call sub_C78B pop cx loc_BB0D: call _frame_delay stdcall, 2 pop cx inc si loc_BB16: cmp si, 64h ; 'd' jge short loc_BB1E jmp loc_BA8C ; --------------------------------------------------------------------------- loc_BB1E: push 3 call sub_C78B pop cx call _frame_delay stdcall, 60 pop cx push 0 call sub_C78B pop cx call _frame_delay stdcall, 20 pop cx push 3 call sub_C78B pop cx call grp_palette_settone pascal, 105 call grp_put_palette_show_1 pascal, ds, offset aEd1e_grp ; "ED1E.GRP" push 0 call sub_C78B pop cx xor si, si jmp short loc_BB79 ; --------------------------------------------------------------------------- loc_BB62: mov ax, si imul ax, 5 add ax, 110 call grp_palette_settone pascal, ax call _frame_delay stdcall, 16 pop cx inc si loc_BB79: cmp si, 4 jl short loc_BB62 xor si, si jmp short loc_BBB1 ; --------------------------------------------------------------------------- loc_BB82: push 1 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx mov ax, si imul ax, 5 add ax, 130 call grp_palette_settone pascal, ax inc si loc_BBB1: cmp si, 0Fh jl short loc_BB82 mov ax, word ptr _continues_total or ax, word ptr _continues_total+2 jnz short loc_BBC7 call sub_BDBD call sub_C03D jmp short loc_BBF1 ; --------------------------------------------------------------------------- loc_BBC7: call sub_BC7C call _mdrv2_bgm_fade_out_nonblock call grp_palette_black_out pascal, 10 call _z_graph_clear call _mdrv2_bgm_stop push ds push offset aSt1_mdt ; "st1.mdt" call _mdrv2_bgm_load add sp, 4 call _mdrv2_bgm_play loc_BBF1: nopcall sub_C446 pop si pop bp retf sub_B945 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BBF9 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si xor si, si jmp short loc_BC35 ; --------------------------------------------------------------------------- loc_BC01: test si, 3 jnz short loc_BC0B push 8 jmp short loc_BC0D ; --------------------------------------------------------------------------- loc_BC0B: push 0 loc_BC0D: call graph_scrollup push 1 call sub_C78B pop cx call _frame_delay stdcall, 1 pop cx test si, 1 jz short loc_BC2D push 170 jmp short loc_BC2F ; --------------------------------------------------------------------------- loc_BC2D: push 100 loc_BC2F: call grp_palette_settone inc si loc_BC35: cmp si, [bp+arg_2] jle short loc_BC01 xor si, si jmp short loc_BC72 ; --------------------------------------------------------------------------- loc_BC3E: test si, 3 jnz short loc_BC48 push 8 jmp short loc_BC4A ; --------------------------------------------------------------------------- loc_BC48: push 0 loc_BC4A: call graph_scrollup push 1 call sub_C78B pop cx call _frame_delay stdcall, 2 pop cx test si, 1 jz short loc_BC69 push 2 jmp short loc_BC6B ; --------------------------------------------------------------------------- loc_BC69: push 1 loc_BC6B: call sub_C78B pop cx inc si loc_BC72: cmp si, [bp+arg_0] jle short loc_BC3E pop si pop bp retn 4 sub_BBF9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BC7C proc near push bp mov bp, sp push si call grp_put_palette_show_1 pascal, ds, offset aEd2a_grp ; "ed2a.grp" call grp_palette_settone pascal, 200 push 0 call sub_C78B pop cx call grp_palette_white_in pascal, 5 call _frame_delay stdcall, 120 pop cx cmp byte_14021, 2 jnz short loc_BCFC push 40h push 10h call sub_BBF9 push 20h ; ' ' push 20h ; ' ' call sub_BBF9 call graph_scrollup pascal, 0 call _frame_delay stdcall, 50 pop cx push 3 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx call graph_type_ank pascal, 232, 316, 22, ds, offset aTryToNoContinu ; "Try to 'No continue'!!" push 232 push 348 push 22 push ds push offset aBadEnding2 ; " Bad Ending2 " jmp loc_BDAC ; --------------------------------------------------------------------------- loc_BCFC: call grp_put_palette_show_1 pascal, ds, offset aEd4a_grp ; "ed4a.grp" xor si, si jmp short loc_BD2A ; --------------------------------------------------------------------------- loc_BD09: push 0 call sub_C78B pop cx call _frame_delay stdcall, 3 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 3 pop cx inc si loc_BD2A: cmp si, 14h jl short loc_BD09 xor si, si jmp short loc_BD62 ; --------------------------------------------------------------------------- loc_BD33: push 0 call sub_C78B pop cx call _frame_delay stdcall, 3 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 3 pop cx mov ax, si imul ax, 5 add ax, 100 call grp_palette_settone pascal, ax inc si loc_BD62: cmp si, 14h jl short loc_BD33 push 2 call sub_C78B pop cx call grp_palette_white_in pascal, 5 call _frame_delay stdcall, 200 pop cx push 3 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx call graph_type_ank pascal, 232, 316, 22, ds, offset aTryToNoConti_0 ; "Try to 'No continue'!!" push 232 push 348 push 22 push ds push offset aBadEnding1 ; " Bad Ending1 " loc_BDAC: call graph_type_ank call _frame_delay stdcall, 300 pop cx pop si pop bp retn sub_BC7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BDBD proc near push bp mov bp, sp push si call grp_put_palette_show_1 pascal, ds, offset aEd3a_grp ; "ed3a.grp" call grp_palette_settone pascal, 200 xor si, si jmp short loc_BE07 ; --------------------------------------------------------------------------- loc_BDD6: push 0 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx mov ax, si imul ax, 5 mov dx, 200 sub dx, ax call grp_palette_settone pascal, dx inc si loc_BE07: cmp si, 14h jl short loc_BDD6 call grp_palette_settone pascal, 100 xor si, si jmp short loc_BE38 ; --------------------------------------------------------------------------- loc_BE17: push 0 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx inc si loc_BE38: cmp si, 0Ah jl short loc_BE17 xor si, si jmp short loc_BE64 ; --------------------------------------------------------------------------- loc_BE41: mov ax, si and ax, 1 push ax call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx mov ax, si imul ax, 10 add ax, 100 call grp_palette_settone pascal, ax inc si loc_BE64: cmp si, 0Ah jl short loc_BE41 call grp_palette_settone pascal, 200 cmp byte_14021, 1 jnz short loc_BE7D call sub_BF07 jmp short loc_BE80 ; --------------------------------------------------------------------------- loc_BE7D: call sub_BE83 loc_BE80: pop si pop bp retn sub_BDBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BE83 proc near push bp mov bp, sp call grp_put_palette_show_1 pascal, ds, offset aEd3b_grp ; "ed3b.grp" push 0 call sub_C78B pop cx call grp_palette_white_in pascal, 4 call _frame_delay stdcall, 250 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 200 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 150 pop cx push 3 call sub_C78B pop cx call _frame_delay stdcall, 150 pop cx call graph_type_ank pascal, 256, 316, 16, ds, offset aCongratulation ; "Congratulations!" call graph_type_ank pascal, 232, 348, 22, ds, offset aGoodEnding2 ; " Good Ending2 " call _frame_delay stdcall, 300 pop cx pop bp retn sub_BE83 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BF07 proc near push bp mov bp, sp push si call grp_put_palette_show_1 pascal, ds, offset aEd5a_grp ; "ed5a.grp" push 0 call sub_C78B pop cx call grp_palette_white_in pascal, 4 call _frame_delay stdcall, 300 pop cx xor si, si jmp short loc_BF51 ; --------------------------------------------------------------------------- loc_BF30: push 1 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 8 pop cx inc si loc_BF51: cmp si, 0Fh jl short loc_BF30 call grp_put_palette_show_1 pascal, ds, offset aEd5b_grp ; "ed5b.grp" push 0 call sub_C78B pop cx call _frame_delay stdcall, 150 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx push 3 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx call grp_put_palette_show_1 pascal, ds, offset aEd5c_grp ; "ed5c.grp" push 0 call sub_C78B pop cx call _frame_delay stdcall, 100 pop cx push 1 call sub_C78B pop cx call _frame_delay stdcall, 150 pop cx push 2 call sub_C78B pop cx call _frame_delay stdcall, 150 pop cx call graph_type_ank pascal, 256, 316, 16, ds, offset aCongratulati_0 ; "Congratulations!" call graph_type_ank pascal, 232, 348, 22, ds, offset aGoodEnding1 ; " Good Ending1 " call _frame_delay stdcall, 300 pop cx pop si pop bp retn sub_BF07 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C009 proc near arg_0 = word ptr 4 push bp mov bp, sp call _frame_delay stdcall, 150 pop cx call grp_palette_black_out pascal, 5 call _z_graph_clear push [bp+arg_0] call sub_C78B pop cx call grp_palette_black_in pascal, 5 call _frame_delay stdcall, 50 pop cx pop bp retn 2 sub_C009 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C03D proc near push bp mov bp, sp call _mdrv2_bgm_fade_out_nonblock call grp_palette_black_out pascal, 10 call _z_graph_clear call _mdrv2_bgm_stop push ds push offset aSt1_mdt_0 ; "st1.mdt" call _mdrv2_bgm_load add sp, 4 call _mdrv2_bgm_play cmp byte_14021, 1 jnz short loc_C074 push ds push offset aEndb_a_grp ; "endb_a.grp" jmp short loc_C078 ; --------------------------------------------------------------------------- loc_C074: push ds push offset aEndb_b_grp ; "endb_b.grp" loc_C078: call grp_put_palette_show_1 push 0 call sub_C78B pop cx call grp_palette_settone pascal, 100 call _frame_delay stdcall, 50 pop cx call graph_type_ank pascal, 272, 316, 13, ds, offset aStage5Boss ; "STAGE 5 BOSS" call graph_type_ank pascal, 232, 348, 22, ds, offset aGatekeeperSing ; "Gatekeeper 'SinGyoku'" push 1 call sub_C009 cmp byte_14021, 1 jnz short loc_C0E1 call graph_type_ank pascal, 272, 316, 13, ds, offset aStage10Boss ; "STAGE 10 BOSS" push 232 push 348 push 22 push ds push offset aEvileyesYuugen ; "EvilEyes 'YuugenMagan'" jmp short loc_C0FE ; --------------------------------------------------------------------------- loc_C0E1: call graph_type_ank pascal, 272, 316, 13, ds, offset aStage10Boss_0 ; "STAGE 10 BOSS" push 232 push 348 push 23 push ds push offset aRevengefulGhos ; "Revengeful Ghost 'Mima'" loc_C0FE: call graph_type_ank push 2 call sub_C009 cmp byte_14021, 1 jnz short loc_C12E call graph_type_ank pascal, 272, 316, 13, ds, offset aStage15Boss ; "STAGE 15 BOSS" push 232 push 348 push 22 push ds push offset aInnocenceDevil ; "Innocence Devil 'Elis'" jmp short loc_C14B ; --------------------------------------------------------------------------- loc_C12E: call graph_type_ank pascal, 272, 316, 13, ds, offset aStage15Boss_0 ; "STAGE 15 BOSS" push 256 push 348 push 17 push ds push offset aHellmoonKikuri ; "HellMoon 'Kikuri'" loc_C14B: call graph_type_ank push 3 call sub_C009 cmp byte_14021, 1 jnz short loc_C17B call graph_type_ank pascal, 272, 316, 13, ds, offset aStage20Boss ; "STAGE 20 BOSS" push 232 push 348 push 22 push ds push offset aAngelOfDeathSa ; "Angel of Death'Sariel'" jmp short loc_C198 ; --------------------------------------------------------------------------- loc_C17B: call graph_type_ank pascal, 272, 316, 13, ds, offset aStage20Boss_0 ; "STAGE 20 BOSS" push 224 push 348 push 24 push ds push offset aAstralKnightKo ; "Astral Knight 'Konngara'" loc_C198: call graph_type_ank call _frame_delay stdcall, 150 pop cx pop bp retn sub_C03D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C1A8 proc far var_2 = word ptr -2 enter 2, 0 push si push di xor si, si cmp word ptr _score+2, 26h ; '&' jl short loc_C1C6 jnz short loc_C1C1 cmp word ptr _score, 25A0h jb short loc_C1C6 loc_C1C1: add si, 0Ah jmp short loc_C21C ; --------------------------------------------------------------------------- loc_C1C6: cmp word ptr _score+2, 1Eh jl short loc_C1DC jnz short loc_C1D7 cmp word ptr _score, 8480h jb short loc_C1DC loc_C1D7: add si, 8 jmp short loc_C21C ; --------------------------------------------------------------------------- loc_C1DC: cmp word ptr _score+2, 16h jl short loc_C1F2 jnz short loc_C1ED cmp word ptr _score, 0E360h jb short loc_C1F2 loc_C1ED: add si, 6 jmp short loc_C21C ; --------------------------------------------------------------------------- loc_C1F2: cmp word ptr _score+2, 0Fh jl short loc_C208 jnz short loc_C203 cmp word ptr _score, 4240h jb short loc_C208 loc_C203: add si, 4 jmp short loc_C21C ; --------------------------------------------------------------------------- loc_C208: cmp word ptr _score+2, 7 jl short loc_C21C jnz short loc_C219 cmp word ptr _score, 0A120h jb short loc_C21C loc_C219: add si, 2 loc_C21C: cmp word ptr _score_highest+2, 2Dh ; '-' jl short loc_C232 jnz short loc_C22D cmp word ptr _score_highest, 0C6C0h jb short loc_C232 loc_C22D: add si, 0Ah jmp short loc_C288 ; --------------------------------------------------------------------------- loc_C232: cmp word ptr _score_highest+2, 27h ; ''' jl short loc_C248 jnz short loc_C243 cmp word ptr _score_highest, 0AC40h jb short loc_C248 loc_C243: add si, 8 jmp short loc_C288 ; --------------------------------------------------------------------------- loc_C248: cmp word ptr _score_highest+2, 21h ; '!' jl short loc_C25E jnz short loc_C259 cmp word ptr _score_highest, 91C0h jb short loc_C25E loc_C259: add si, 6 jmp short loc_C288 ; --------------------------------------------------------------------------- loc_C25E: cmp word ptr _score_highest+2, 1Bh jl short loc_C274 jnz short loc_C26F cmp word ptr _score_highest, 7740h jb short loc_C274 loc_C26F: add si, 4 jmp short loc_C288 ; --------------------------------------------------------------------------- loc_C274: cmp word ptr _score_highest+2, 15h jl short loc_C288 jnz short loc_C285 cmp word ptr _score_highest, 5CC0h jb short loc_C288 loc_C285: add si, 2 loc_C288: mov ax, word ptr _continues_total or ax, word ptr _continues_total+2 jnz short loc_C297 add si, 1Eh jmp loc_C36C ; --------------------------------------------------------------------------- loc_C297: cmp word ptr _continues_total+2, 0 jg short loc_C2AD jnz short loc_C2A7 cmp word ptr _continues_total, 2 ja short loc_C2AD loc_C2A7: add si, 0Ah jmp loc_C36C ; --------------------------------------------------------------------------- loc_C2AD: cmp word ptr _continues_total+2, 0 jg short loc_C2C3 jnz short loc_C2BD cmp word ptr _continues_total, 4 ja short loc_C2C3 loc_C2BD: add si, 8 jmp loc_C36C ; --------------------------------------------------------------------------- loc_C2C3: cmp word ptr _continues_total+2, 0 jg short loc_C2D9 jnz short loc_C2D3 cmp word ptr _continues_total, 6 ja short loc_C2D9 loc_C2D3: add si, 6 jmp loc_C36C ; --------------------------------------------------------------------------- loc_C2D9: cmp word ptr _continues_total+2, 0 jg short loc_C2EE jnz short loc_C2E9 cmp word ptr _continues_total, 8 ja short loc_C2EE loc_C2E9: add si, 4 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C2EE: cmp word ptr _continues_total+2, 0 jg short loc_C303 jnz short loc_C2FE cmp word ptr _continues_total, 0Ah ja short loc_C303 loc_C2FE: add si, 2 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C303: cmp word ptr _continues_total+2, 0 jg short loc_C315 jnz short loc_C313 cmp word ptr _continues_total, 0Ch ja short loc_C315 loc_C313: jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C315: cmp word ptr _continues_total+2, 0 jg short loc_C32A jnz short loc_C325 cmp word ptr _continues_total, 0Eh ja short loc_C32A loc_C325: sub si, 2 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C32A: cmp word ptr _continues_total+2, 0 jg short loc_C33F jnz short loc_C33A cmp word ptr _continues_total, 10h ja short loc_C33F loc_C33A: sub si, 4 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C33F: cmp word ptr _continues_total+2, 0 jg short loc_C354 jnz short loc_C34F cmp word ptr _continues_total, 12h ja short loc_C354 loc_C34F: sub si, 6 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C354: cmp word ptr _continues_total+2, 0 jg short loc_C369 jnz short loc_C364 cmp word ptr _continues_total, 14h ja short loc_C369 loc_C364: sub si, 8 jmp short loc_C36C ; --------------------------------------------------------------------------- loc_C369: sub si, 0Ah loc_C36C: cmp _rank, RANK_LUNATIC jnz short loc_C378 add si, 32h ; '2' jmp short loc_C39A ; --------------------------------------------------------------------------- loc_C378: cmp _rank, RANK_HARD jnz short loc_C384 add si, 1Eh jmp short loc_C39A ; --------------------------------------------------------------------------- loc_C384: cmp _rank, RANK_NORMAL jnz short loc_C390 add si, 0Ah jmp short loc_C39A ; --------------------------------------------------------------------------- loc_C390: cmp _rank, RANK_EASY jnz short loc_C39A sub si, 0Ah loc_C39A: cmp byte_14021, 2 jnz short loc_C3A4 add si, 5 loc_C3A4: mov al, byte_14020 cbw cmp ax, 4 jnz short loc_C3B2 sub si, 0Ah jmp short loc_C3D8 ; --------------------------------------------------------------------------- loc_C3B2: mov al, byte_14020 cbw cmp ax, 3 jnz short loc_C3C0 sub si, 5 jmp short loc_C3D8 ; --------------------------------------------------------------------------- loc_C3C0: mov al, byte_14020 cbw cmp ax, 1 jnz short loc_C3CE add si, 5 jmp short loc_C3D8 ; --------------------------------------------------------------------------- loc_C3CE: cmp byte_14020, 0 jnz short loc_C3D8 add si, 0Ah loc_C3D8: call IRand mov bx, 3 cwd idiv bx mov [bp+var_2], dx cmp si, 50h ; 'P' jl short loc_C3F0 mov di, 5 jmp short loc_C419 ; --------------------------------------------------------------------------- loc_C3F0: cmp si, 3Ch ; '<' jl short loc_C3FA mov di, 4 jmp short loc_C419 ; --------------------------------------------------------------------------- loc_C3FA: cmp si, 28h ; '(' jl short loc_C404 mov di, 3 jmp short loc_C419 ; --------------------------------------------------------------------------- loc_C404: cmp si, 14h jl short loc_C40E mov di, 2 jmp short loc_C419 ; --------------------------------------------------------------------------- loc_C40E: or si, si jl short loc_C417 mov di, 1 jmp short loc_C419 ; --------------------------------------------------------------------------- loc_C417: xor di, di loc_C419: mov bx, [bp+var_2] imul bx, 18h mov ax, di shl ax, 2 add bx, ax push word ptr [bx+3DAh] push word ptr [bx+3D8h] ; arglist push ds push offset aS_1 ; "%s" push 12h ; int push 180h ; int push 1E8h ; int call _graph_printf_fx add sp, 0Eh pop di pop si leave retf sub_C1A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C446 proc far var_10 = byte ptr -10h enter 10h, 0 push si lea ax, [bp+var_10] push ss push ax push ds push offset off_12EC0 mov cx, 10h call SCOPY@ call grp_palette_black_out pascal, 10 push 1 call _graph_accesspage_func pop cx call _grp_put_palette_show c, offset aEndm_a_grp, ds ; "endm_a.grp" call _graph_copy_page_back_to_front push 0 call _graph_accesspage_func pop cx call grp_palette_black_in pascal, 8 call graph_type_kanji pascal, 400, 32, 5, ds, offset aUmx_1 ; "東方靈異伝" call graph_type_ank pascal, 496, 32, 3, ds, offset aVer ; "ver" call graph_type_ank pascal, 528, 32, 4, ds, offset a1_10 ; "1.10" call _frame_delay stdcall, 30 pop cx mov al, _rank mov ah, 0 shl ax, 2 lea dx, [bp+var_10] add ax, dx mov bx, ax push word ptr ss:[bx+2] push word ptr ss:[bx] ; arglist push ds push offset aUqiUxb@b@b@b@b ; "難易度           %s" push 0Fh ; int push 40h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx push word ptr _score_highest+2 push word ptr _score_highest ; arglist push ds push offset aNbi ; "今回の最高得点       %7lu" push 0Fh ; int push 60h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx push word ptr _score+2 push word ptr _score ; arglist push ds push offset aNPiuU_b@b@b@b@ ; "最終得点          %7lu" push 0Fh ; int push 80h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx push ds push offset aGrgugegbgjgebI ; "コンティニュー回数" push 0Fh ; int push 0A0h ; int push 128h ; int call _graph_printf_fx add sp, 0Ah call _frame_delay stdcall, 30 pop cx push word_13EDE push word_13EDC ; arglist push ds push offset aB@r_oB@b@b@b@b ; " 神社    (1面〜5面)   %3lu" push 0Fh ; int push 0C0h ;int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx cmp byte_14021, 1 jnz short loc_C590 push word_13EE2 push word_13EE0 push ds push offset aB@gqbGgb@b@b@b ; " ゲート   (6面〜10面) %3lu" jmp short loc_C59C ; --------------------------------------------------------------------------- loc_C590: push word_13EE2 push word_13EE0 ; arglist push ds push offset aB@tkb@b@b@b@b@ ; " 祠     (6面〜10面) %3lu" loc_C59C: push 0Fh ; int push 0E0h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx cmp byte_14021, 1 jnz short loc_C5C9 push word_13EE6 push word_13EE4 push ds push offset aGfgbgivFpBivpv ; " ヴィナの廃墟(11面〜15面)%3lu" jmp short loc_C5D5 ; --------------------------------------------------------------------------- loc_C5C9: push word_13EE6 push word_13EE4 ; arglist push ds push offset aB@ikvXekeb@b@b ; " 炎の腐界  (11面〜15面)%3lu" loc_C5D5: push 0Fh ; int push 100h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx cmp byte_14021, 1 jnz short loc_C602 push word_13EEA push word_13EE8 push ds push offset aSVVVsr_uabivpv ; " 堕ちたる神殿(15面〜20面)%3lu" jmp short loc_C60E ; --------------------------------------------------------------------------- loc_C602: push word_13EEA push word_13EE8 ; arglist push ds push offset aB@rVivVsr_uabi ; " 静かなる神殿(15面〜20面)%3lu" loc_C60E: push 0Fh ; int push 120h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx cmp byte_14021, 1 jnz short loc_C63B push word ptr _continues_total+2 push word ptr _continues_total push ds push offset aCvkeglbGgsnnzb ; " 魔界ルート総合       %5lu" jmp short loc_C647 ; --------------------------------------------------------------------------- loc_C63B: push word ptr _continues_total+2 push word ptr _continues_total ; arglist push ds push offset aB@tnncglbGgsnn ; " 地獄ルート総合       %5lu" loc_C647: push 0Fh ; int push 140h ; int push 128h ; int call _graph_printf_fx add sp, 0Eh call _frame_delay stdcall, 30 pop cx call graph_type_ank pascal, 296, 352, 29, ds, offset aThankYouForPla ; " Thank you for Playing !! " push ds push offset aBBBVavVVPNjbBB ; "★★★あなたの称号★★★" push 12h ; int push 180h ; int push 108h ; int call _graph_printf_fx add sp, 0Ah call _frame_delay stdcall, 50 pop cx call sub_C1A8 xor si, si call _frame_delay stdcall, 100 pop cx call _input_reset_sense jmp short loc_C6B1 ; --------------------------------------------------------------------------- loc_C6A1: call _input_sense stdcall, 0 pop cx call _frame_delay stdcall, 1 pop cx loc_C6B1: mov ax, si inc si cmp ax, 7D0h jge short loc_C6C7 cmp _input_ok, 0 jnz short loc_C6C7 cmp _input_shot, 0 jz short loc_C6A1 loc_C6C7: push 1 call _graph_accesspage_func pop cx call _graph_copy_page_back_to_front push 0 call _graph_accesspage_func pop cx call grp_palette_settone pascal, 50 mov _z_Palettes[3 * 3].r, 07h mov _z_Palettes[3 * 3].g, 0Fh mov _z_Palettes[3 * 3].b, 07h mov _z_Palettes[7 * 3].r, 0Fh mov _z_Palettes[7 * 3].g, 0Fh mov _z_Palettes[7 * 3].b, 0Fh call _z_palette_set_all_show c, offset _z_Palettes, ds cmp byte_14021, 1 jnz short loc_C71C push ds push offset aKo ; "完" push 32h ; '2' jmp short loc_C722 ; --------------------------------------------------------------------------- loc_C71C: push ds push offset aKo_0 ; "完" push 3Ch ; '<' loc_C722: push word ptr _score+2 push word ptr _score call sub_B5D8 add sp, 0Ah call sub_A076 pop si leave retf sub_C446 endp fuuin_03_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_04_TEXT segment byte public 'CODE' use16 assume cs:fuuin_04_TEXT ;org 0Ah assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing include th01/formats/grp_put_palette_show_1.asm EGC_START_COPY_DEF 1, far ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C78B proc far var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 6 enter 0Ah, 0 push si push di call egc_start_copy_1 mov ax, [bp+arg_0] mov bx, 2 cwd idiv bx imul dx, 140h mov [bp+var_2], dx mov ax, [bp+arg_0] cwd sub ax, dx sar ax, 1 imul ax, 0C8h mov [bp+var_4], ax mov ax, [bp+var_2] sar ax, 3 mov dx, [bp+var_4] shl dx, 6 add ax, dx mov dx, [bp+var_4] shl dx, 4 add ax, dx mov si, ax mov di, 1F54h mov [bp+var_8], 0 jmp short loc_C81D ; --------------------------------------------------------------------------- loc_C7D6: mov [bp+var_6], 0 jmp short loc_C80E ; --------------------------------------------------------------------------- loc_C7DD: push 1 call _graph_accesspage_func pop cx les bx, _VRAM_PLANE_B add bx, si mov ax, es:[bx] mov [bp+var_A], ax push 0 call _graph_accesspage_func pop cx les bx, _VRAM_PLANE_B add bx, di mov ax, [bp+var_A] mov es:[bx], ax add si, 2 add di, 2 inc [bp+var_6] loc_C80E: cmp [bp+var_6], 14h jl short loc_C7DD add si, 28h ; '(' add di, 28h ; '(' inc [bp+var_8] loc_C81D: cmp [bp+var_8], 0C8h ; 'ネ' jl short loc_C7D6 call egc_off pop di pop si leave retf sub_C78B endp extern _frame_delay:proc extern GRP_PALETTE_SETTONE:proc extern GRP_PALETTE_BLACK_OUT:proc extern GRP_PALETTE_BLACK_IN:proc extern GRP_PALETTE_WHITE_OUT:proc extern GRP_PALETTE_WHITE_IN:proc extern GRAPH_TYPE_ANK:proc extern GRAPH_TYPE_KANJI:proc fuuin_04_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_05_TEXT segment byte public 'CODE' use16 extern _vsync_init:proc extern _vsync_exit:proc extern _z_vsync_wait:proc fuuin_05_TEXT ends ; =========================================================================== fuuin_06_TEXT segment byte public 'CODE' use16 extern _z_text_init:proc extern _z_text_25line:proc extern _z_text_setcursor:proc extern _z_text_clear:proc extern _z_text_show:proc extern _z_text_print:proc fuuin_06_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_07_TEXT segment byte public 'CODE' use16 extern _game_init:proc extern _game_switch_binary:proc fuuin_07_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_08_TEXT segment byte public 'CODE' use16 extern _z_graph_exit:proc extern _graph_showpage_func:proc extern _graph_accesspage_func:proc extern _z_palette_set_all_show:proc extern _z_palette_set_show:proc extern _z_graph_clear:proc extern _z_graph_clear_0:proc extern _graph_copy_page_back_to_front:proc extern _z_palette_black:proc extern _z_palette_black_out:proc extern _graph_putsa_fx:proc extern _graph_move_byterect_interpage:proc extern _z_respal_set:proc fuuin_08_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_09_TEXT segment byte public 'CODE' use16 extern _graph_printf_fx:proc fuuin_09_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_10_TEXT segment byte public 'CODE' use16 extern _grp_put_palette_show:proc fuuin_10_TEXT ends ; =========================================================================== fuuin_11_TEXT segment byte public 'CODE' use16 extern VRAM_PLANES_SET:proc extern _egc_copy_rect_1_to_0:proc fuuin_11_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_12_TEXT segment byte public 'CODE' use16 extern _graph_slow_2xscale_rect_1_to_0:proc fuuin_12_TEXT ends ; =========================================================================== ; Segment type: Pure code fuuin_13_TEXT segment byte public 'CODE' use16 extern _mdrv2_resident:proc extern _mdrv2_bgm_load:proc extern _mdrv2_se_load:proc extern _mdrv2_bgm_play:proc extern _mdrv2_bgm_stop:proc extern _mdrv2_bgm_fade_out_nonblock:proc extern _mdrv2_check_board:proc extern _mdrv2_se_play:proc fuuin_13_TEXT ends .data _score dd 100000 _score_highest dd 100000 aReiidenconfig db 'ReiidenConfig',0 aErrorEnd_flagI db 'ERROR : end_flag is not ture !!',0 ; char s[] s db 'ERROR : cfg_id is not alloc!!',0 aReiidenconfi_0 db 'ReiidenConfig',0 ; char path[] path db 'op',0 ; char arg0[3] arg0 db 'op',0 db 0 include th01/hardware/input_main_end[data].asm dd 0 db 49h ; I db 81h db 48h ; H db 81h db 94h db 81h db 95h db 81h db 96h db 81h db 98h db 81h db 99h db 81h db 9Fh db 81h db 87h db 81h db 88h db 81h db 89h db 81h db 8Ah db 81h db 63h ; c db 81h db 67h ; g db 81h db 68h ; h db 81h db 5Eh ; ^ db 81h db 44h ; D db 81h db 45h ; E db 81h include th01/hardware/grppfnfx_ptrs[data].asm aBqbqbqbqbqbqbq db '________',0 aB@b@b@b@b@b@b@ db '        ',0 aHiscore_0 db 'HISCORE',0 off_12C1E dd aB@gcbGwbB@ ; " イージー " dd aB@gmbGGlb@ ; " ノーマル " dd aB@gnbGhb@b@ ; " ハード  " dd aGlgigegbgbgn ; "ルナティック" include th01/hardware/grppfnfx[data].asm include th01/hiscore/scorelod[data].asm ; char aCC[] aCC db '%c%c',0 aVb db 'a',0 ; char aCC_0[] aCC_0 db '%c%c',0 ; char aCC_1[] aCC_1 db '%c%c',0 ; char aCC_2[] aCC_2 db '%c%c',0 ; char aSp[] aSp db 'SP',0 ; char aBi[] aBi db '←',0 ; char aBi_0[] aBi_0 db '→',0 ; char aPi[] aPi db '終',0 aB@cB@iB@ db ' 霊 位 ',0 aB@b@cB@b@sob@b db '  名  前  ',0 aB@b@uB@b@u_b@b db '  得  点  ',0 aGxgebGwbeglbGg db 'ステージ・ルート',0 aB@sB@r_b@ db ' 靈 神 ',0 aSMRgcId db '太元帥明王',0 aB@uvb@rxb@ db ' 天 仙 ',0 aB@r_b@rxb@ db ' 神 仙 ',0 aB@tnb@rxb@ db ' 地 仙 ',0 aB@rlb@rxb@ db ' 人 仙 ',0 aB@rxb@pcb@ db ' 仙 女 ',0 aIab@czb@ot db '陰 陽 師',0 aSB@fB@ot db '靈 媒 師',0 aPcb@lB@o db '修 業 者',0 aCvke db '魔界',0 aTnnc db '地獄',0 aB db '−',0 ; char aCC_3[] aCC_3 db '%c%c',0 ; char aSp_0[] aSp_0 db 'SP',0 ; char aBi_1[] aBi_1 db '←',0 ; char aBi_2[] aBi_2 db '→',0 ; char aPi_0[] aPi_0 db '終',0 ; char aCC_4[] aCC_4 db '%c%c',0 ; char aS[] aS db '%s',0 ; char aS_0[] aS_0 db '%s',0 aReyhies_dat_1 db 'REYHIES.DAT',0 aReyhino_dat_1 db 'REYHINO.DAT',0 aReyhiha_dat_1 db 'REYHIHA.DAT',0 ; char aReyhilu_dat_1[] aReyhilu_dat_1 db 'REYHILU.DAT',0 ; char aWb_0[] aWb_0 db 'wb',0 aB@gcbGwbB@ db ' イージー ',0 aB@gmbGGlb@ db ' ノーマル ',0 aB@gnbGhb@b@ db ' ハード  ',0 aGlgigegbgbgn db 'ルナティック',0 ; char aUmx[3] aUmx db '東方靈異伝 強者の記録 %s',0 dd aB@gvguglbB@ ; " モンキー " dd aB@cRlio ; " 類人猿" dd aGzgvgtgsgggugx ; "ホモサピエンス" dd aB@tRl ; " 超人" dd aB@sR_b@ ; " 靈神 " dd aB@r_v ; " 神を超越" dd aVioqclgqbGB ; "お子様ゲーマー" dd aOcf ; "似非スコアラー" dd aGGhglgxgrgagib ; "ミドルスコアラー" dd aGngcgxgrgagib ; "ハイスコアラー" dd aGxbGpbGqbGB ; "スーパーゲーマー" dd aGqbGBV ; "ゲーマーを超越" dd aXevVVViv ; "腐ったみかん" dd aGugbgnbGavO ; "ザックームの実" dd aLTfvCMc ; "禁断の林檎" dd aRvkeo ; "世界樹の葉" dd aIitsluucr_tomo ; "黄帝九鼎神丹経" dd aB@gagagkg ; " アムリタ" off_12EC0 dd aEasy ; " EASY " dd aNormal ; "NORMAL" dd aHard ; " HARD " dd aLunatic ; "LUNATIC" aB@gvguglbB@ db ' モンキー ',0 aB@cRlio db ' 類人猿',0 aGzgvgtgsgggugx db 'ホモサピエンス',0 aB@tRl db ' 超人',0 aB@sR_b@ db ' 靈神 ',0 aB@r_v db ' 神を超越',0 aVioqclgqbGB db 'お子様ゲーマー',0 aOcf db '似非スコアラー',0 aGGhglgxgrgagib db 'ミドルスコアラー',0 aGngcgxgrgagib db 'ハイスコアラー',0 aGxbGpbGqbGB db 'スーパーゲーマー',0 aGqbGBV db 'ゲーマーを超越',0 aXevVVViv db '腐ったみかん',0 aGugbgnbGavO db 'ザックームの実',0 aLTfvCMc db '禁断の林檎',0 aRvkeo db '世界樹の葉',0 aIitsluucr_tomo db '黄帝九鼎神丹経',0 aB@gagagkg db ' アムリタ',0 ; char aIris_mdt[] aIris_mdt db 'iris.mdt',0 aEd1a_grp db 'ED1A.grp',0 aEd1b_grp db 'ED1B.grp',0 aEd1c_grp db 'ED1C.GRP',0 aEd1d_grp db 'ED1D.GRP',0 aEd1e_grp db 'ED1E.GRP',0 ; char aSt1_mdt[] aSt1_mdt db 'st1.mdt',0 aEd2a_grp db 'ed2a.grp',0 aTryToNoContinu db 'Try to ',27h,'No continue',27h,'!!',0 aBadEnding2 db ' Bad Ending2 ',0 aEd4a_grp db 'ed4a.grp',0 aTryToNoConti_0 db 'Try to ',27h,'No continue',27h,'!!',0 aBadEnding1 db ' Bad Ending1 ',0 aEd3a_grp db 'ed3a.grp',0 aEd3b_grp db 'ed3b.grp',0 aCongratulation db 'Congratulations!',0 aGoodEnding2 db ' Good Ending2 ',0 aEd5a_grp db 'ed5a.grp',0 aEd5b_grp db 'ed5b.grp',0 aEd5c_grp db 'ed5c.grp',0 aCongratulati_0 db 'Congratulations!',0 aGoodEnding1 db ' Good Ending1 ',0 ; char aSt1_mdt_0[] aSt1_mdt_0 db 'st1.mdt',0 aEndb_a_grp db 'endb_a.grp',0 aEndb_b_grp db 'endb_b.grp',0 aStage5Boss db 'STAGE 5 BOSS',0 aGatekeeperSing db 'Gatekeeper ',27h,'SinGyoku',27h,0 aStage10Boss db 'STAGE 10 BOSS',0 aEvileyesYuugen db 'EvilEyes ',27h,'YuugenMagan',27h,0 aStage10Boss_0 db 'STAGE 10 BOSS',0 aRevengefulGhos db 'Revengeful Ghost ',27h,'Mima',27h,0 aStage15Boss db 'STAGE 15 BOSS',0 aInnocenceDevil db 'Innocence Devil ',27h,'Elis',27h,0 aStage15Boss_0 db 'STAGE 15 BOSS',0 aHellmoonKikuri db 'HellMoon ',27h,'Kikuri',27h,0 aStage20Boss db 'STAGE 20 BOSS',0 aAngelOfDeathSa db 'Angel of Death',27h,'Sariel',27h,0 aStage20Boss_0 db 'STAGE 20 BOSS',0 aAstralKnightKo db 'Astral Knight ',27h,'Konngara',27h,0 ; char aS_1[] aS_1 db '%s',0 aEasy db ' EASY ',0 aNormal db 'NORMAL',0 aHard db ' HARD ',0 aLunatic db 'LUNATIC',0 aEndm_a_grp db 'endm_a.grp',0 aUmx_1 db '東方靈異伝',0 aVer db 'ver',0 a1_10 db '1.10',0 ; char aUqiUxb[] aUqiUxb@b@b@b@b db '難易度           %s',0 ; char aNbi[3] aNbi db '今回の最高得点       %7lu',0 ; char aNPiuU_b[] aNPiuU_b@b@b@b@ db '最終得点          %7lu',0 ; char aGrgugegbgjgebI[15] aGrgugegbgjgebI db 'コンティニュー回数',0 ; char aB[] aB@r_oB@b@b@b@b db ' 神社    (1面〜5面)   %3lu',0 aB@gqbGgb@b@b@b db ' ゲート   (6面〜10面) %3lu',0 ; char aB[] aB@tkb@b@b@b@b@ db ' 祠     (6面〜10面) %3lu',0 aGfgbgivFpBivpv db ' ヴィナの廃墟(11面〜15面)%3lu',0 ; char aB[] aB@ikvXekeb@b@b db ' 炎の腐界  (11面〜15面)%3lu',0 aSVVVsr_uabivpv db ' 堕ちたる神殿(15面〜20面)%3lu',0 ; char aB[] aB@rVivVsr_uabi db ' 静かなる神殿(15面〜20面)%3lu',0 aCvkeglbGgsnnzb db ' 魔界ルート総合       %5lu',0 ; char aB[] aB@tnncglbGgsnn db ' 地獄ルート総合       %5lu',0 aThankYouForPla db ' Thank you for Playing !! ',0 ; char aBBBVavVVPNjbBB[] aBBBVavVVPNjbBB db '★★★あなたの称号★★★',0 aKo db '完',0 aKo_0 db '完',0 db 0 include th01/end/type[data].asm include th01/hardware/vsync[data].asm include th01/hardware/ztext[data].asm include th01/core/initexit[data].asm include th01/hardware/palette[data].asm include th01/hardware/graph_r[data].asm include th01/hardware/respal[data].asm include th01/formats/grp_ptn[data].asm include th01/mdrv2[data].asm include libs/master.lib/version[data].asm include libs/master.lib/grp[data].asm include libs/master.lib/pal[data].asm include libs/master.lib/respal_exist[data].asm include libs/master.lib/resdata[data].asm include libs/master.lib/fil[data].asm include libs/master.lib/dos_ropen[data].asm include libs/master.lib/clip[data].asm include libs/master.lib/rand[data].asm .data? ; TODO: Missing clip[bss].asm (16 bytes) somewhere in there... _continues_total dd ? ; char word_13EDC[] word_13EDC dw ? word_13EDE dw ? ; char word_13EE0[] word_13EE0 dw ? word_13EE2 dw ? ; char word_13EE4[] word_13EE4 dw ? word_13EE6 dw ? ; char word_13EE8[] word_13EE8 dw ? word_13EEA dw ? db 308 dup(?) byte_14020 db ? byte_14021 db ? public _rank _rank db ? db ? include th01/hiscore/hiscore[bss].asm db ? ; public _input_prev _input_prev db 10 dup(?) evendata include th01/hardware/vsync[bss].asm db 256 dup(?) include th01/core/initexit[bss].asm include th01/hardware/graph[bss].asm db 80 dup(?) include th01/formats/grp_palette[bss].asm db 1136 dup(?) include th01/formats/grp_buf[bss].asm include th01/hardware/vram_planes[bss].asm include libs/master.lib/pal[bss].asm include libs/master.lib/fil[bss].asm db 16 dup (?) end