2014-06-29 14:51:19 +00:00
|
|
|
|
;
|
|
|
|
|
; +-------------------------------------------------------------------------+
|
|
|
|
|
; | This file has been generated by The Interactive Disassembler (IDA) |
|
|
|
|
|
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
|
|
|
|
; +-------------------------------------------------------------------------+
|
|
|
|
|
;
|
|
|
|
|
; Input MD5 : 492DA6ACEE8714C252630BCE0D3C12FD
|
|
|
|
|
|
|
|
|
|
; File Name : th04/OP.EXE
|
|
|
|
|
; Format : MS-DOS executable (EXE)
|
|
|
|
|
; Base Address: 0h Range: 0h-133E0h Loaded length: 11A40h
|
|
|
|
|
; Entry Point : 0:0
|
|
|
|
|
; OS type : MS DOS
|
|
|
|
|
; Application type: Executable 16bit
|
|
|
|
|
|
2014-10-31 06:17:05 +00:00
|
|
|
|
.286 ; Force the .model directive to create 16-bit default segments...
|
2020-09-05 21:22:20 +00:00
|
|
|
|
.model large seg2
|
2014-10-31 06:17:05 +00:00
|
|
|
|
.386 ; ... then switch to what we actually need.
|
|
|
|
|
; And yes, we can't move this to an include file for some reason.
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2019-12-27 20:02:26 +00:00
|
|
|
|
BINARY = 'O'
|
|
|
|
|
|
2014-08-22 15:06:33 +00:00
|
|
|
|
include ReC98.inc
|
2019-09-20 19:02:20 +00:00
|
|
|
|
include th04/th04.inc
|
2014-12-24 20:39:34 +00:00
|
|
|
|
include th04/music/music.inc
|
Include RULES.ASI from every executable's dump file.
Having thought this over for a while, I've decided to stay with the "include
slice" model for now, due to various bugs and other reasons.
We need to compile for the 386 CPU, but this causes TASM to automatically
default every segment to 32-bit mode, which of course is not what we want (and
no, .MODEL USE16 sadly does not help either). Appending USE16 to every segment
declaration in all included files seems to work, but for some reason, this
messes up certain jump instructions. WTF? And even if it did work, we would
still have to do this for every single file we include.
The alternative would be to build proper libraries and let the linker merge
all the code. This would add a lot of unwarranted complexity to the build
process. Not to mention all the EXTERN statements we'd have to maintain.
Ultimately, all of the C runtime ASM code is going to vanish anyway once we've
completed the reduction step. Once we're there, we can simply link to the
original version of the library. These initial dumps are not pretty, and I see
no point in wasting time on making intermediary stages of development look
pretty.
Since including RULES.ASI from every slice seems a bit inefficient (and even
potentiall harmful, considering the age of the development tools we have to
work with), we'll only include it once at the top of every main dump file.
[Binary change] Relocations in TH01's REIIDEN.EXE, again.
2014-08-14 06:01:36 +00:00
|
|
|
|
|
2015-02-19 06:46:36 +00:00
|
|
|
|
extern SCOPY@:proc
|
|
|
|
|
extern _execl:proc
|
|
|
|
|
extern _getch:proc
|
|
|
|
|
extern _memcpy:proc
|
|
|
|
|
extern _strlen:proc
|
|
|
|
|
|
2014-06-29 14:51:19 +00:00
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2015-02-18 11:07:37 +00:00
|
|
|
|
_TEXT segment word public 'CODE' use16
|
|
|
|
|
assume cs:_TEXT
|
2015-02-19 06:46:36 +00:00
|
|
|
|
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-23 09:51:14 +00:00
|
|
|
|
include libs/master.lib/bfnt_entry_pat.asm
|
2014-08-23 10:23:03 +00:00
|
|
|
|
include libs/master.lib/bfnt_extend_header_skip.asm
|
2014-08-23 10:08:48 +00:00
|
|
|
|
include libs/master.lib/bfnt_header_read.asm
|
2014-08-23 11:18:32 +00:00
|
|
|
|
include libs/master.lib/bfnt_header_analysis.asm
|
2014-08-26 05:25:43 +00:00
|
|
|
|
include libs/master.lib/atrtcmod.asm
|
2014-08-26 18:54:57 +00:00
|
|
|
|
include libs/master.lib/bcloser.asm
|
2014-08-10 09:47:36 +00:00
|
|
|
|
include libs/master.lib/bfill.asm
|
2014-08-23 14:56:01 +00:00
|
|
|
|
include libs/master.lib/bfnt_palette_set.asm
|
2014-08-26 19:23:54 +00:00
|
|
|
|
include libs/master.lib/bgetc.asm
|
2014-08-26 22:21:45 +00:00
|
|
|
|
include libs/master.lib/palette_black_in.asm
|
2014-08-26 22:33:43 +00:00
|
|
|
|
include libs/master.lib/palette_black_out.asm
|
2014-08-27 00:54:57 +00:00
|
|
|
|
include libs/master.lib/bopenr.asm
|
2014-08-26 19:34:06 +00:00
|
|
|
|
include libs/master.lib/bread.asm
|
2014-08-26 20:04:11 +00:00
|
|
|
|
include libs/master.lib/bseek.asm
|
2014-08-26 20:15:00 +00:00
|
|
|
|
include libs/master.lib/bseek_.asm
|
2014-08-23 01:03:17 +00:00
|
|
|
|
include libs/master.lib/dos_axdx.asm
|
2014-08-23 01:02:18 +00:00
|
|
|
|
include libs/master.lib/dos_keyclear.asm
|
2014-08-22 23:48:16 +00:00
|
|
|
|
include libs/master.lib/dos_puts2.asm
|
2014-08-22 23:07:04 +00:00
|
|
|
|
include libs/master.lib/dos_read.asm
|
2014-08-22 22:59:10 +00:00
|
|
|
|
include libs/master.lib/dos_seek.asm
|
2014-08-22 23:38:22 +00:00
|
|
|
|
include libs/master.lib/dos_setvect.asm
|
2014-08-20 20:24:05 +00:00
|
|
|
|
include libs/master.lib/egc.asm
|
2014-08-30 05:58:36 +00:00
|
|
|
|
include libs/master.lib/file_append.asm
|
2014-08-30 06:15:42 +00:00
|
|
|
|
include libs/master.lib/file_close.asm
|
2014-08-30 06:32:10 +00:00
|
|
|
|
include libs/master.lib/file_create.asm
|
2014-08-30 06:46:38 +00:00
|
|
|
|
include libs/master.lib/file_exist.asm
|
2014-08-30 07:00:31 +00:00
|
|
|
|
include libs/master.lib/file_read.asm
|
2014-08-30 07:12:17 +00:00
|
|
|
|
include libs/master.lib/file_ropen.asm
|
2014-08-30 07:21:44 +00:00
|
|
|
|
include libs/master.lib/file_seek.asm
|
2014-08-30 07:38:09 +00:00
|
|
|
|
include libs/master.lib/file_write.asm
|
2014-08-22 22:46:33 +00:00
|
|
|
|
include libs/master.lib/dos_close.asm
|
2014-08-21 20:07:58 +00:00
|
|
|
|
include libs/master.lib/dos_ropen.asm
|
2014-08-28 03:31:57 +00:00
|
|
|
|
include libs/master.lib/grcg_boxfill.asm
|
2014-08-27 21:20:37 +00:00
|
|
|
|
include libs/master.lib/grcg_byteboxfill_x.asm
|
2014-08-27 22:17:57 +00:00
|
|
|
|
include libs/master.lib/grcg_hline.asm
|
2014-09-01 04:52:28 +00:00
|
|
|
|
include libs/master.lib/grcg_polygon_c.asm
|
2014-09-01 19:08:57 +00:00
|
|
|
|
include libs/master.lib/grcg_round_boxfill.asm
|
2014-08-27 04:52:58 +00:00
|
|
|
|
include libs/master.lib/grcg_setcolor.asm
|
2014-08-14 12:30:48 +00:00
|
|
|
|
include libs/master.lib/get_machine_98.asm
|
2014-08-14 11:57:40 +00:00
|
|
|
|
include libs/master.lib/get_machine_at.asm
|
2014-08-14 10:20:01 +00:00
|
|
|
|
include libs/master.lib/get_machine_dosbox.asm
|
2014-08-14 09:48:52 +00:00
|
|
|
|
include libs/master.lib/check_machine_fmr.asm
|
2014-08-14 12:48:55 +00:00
|
|
|
|
include libs/master.lib/get_machine.asm
|
2014-08-31 08:23:41 +00:00
|
|
|
|
include libs/master.lib/gaiji_backup.asm
|
2014-08-31 08:08:09 +00:00
|
|
|
|
include libs/master.lib/gaiji_entry_bfnt.asm
|
2014-08-31 07:40:28 +00:00
|
|
|
|
include libs/master.lib/gaiji_read.asm
|
2014-08-31 07:50:38 +00:00
|
|
|
|
include libs/master.lib/gaiji_write.asm
|
2014-08-27 22:58:40 +00:00
|
|
|
|
include libs/master.lib/graph_400line.asm
|
2014-08-27 04:03:08 +00:00
|
|
|
|
include libs/master.lib/graph_clear.asm
|
2014-08-27 04:13:48 +00:00
|
|
|
|
include libs/master.lib/graph_copy_page.asm
|
2014-08-15 14:11:51 +00:00
|
|
|
|
include libs/master.lib/graph_extmode.asm
|
2014-08-21 23:39:42 +00:00
|
|
|
|
include libs/master.lib/graph_pi_free.asm
|
2014-08-22 19:15:44 +00:00
|
|
|
|
include libs/master.lib/graph_pi_load_pack.asm
|
2014-08-31 05:26:45 +00:00
|
|
|
|
include libs/master.lib/graph_pack_put_8.asm
|
2014-08-27 03:18:17 +00:00
|
|
|
|
include libs/master.lib/graph_show.asm
|
2014-08-27 23:16:54 +00:00
|
|
|
|
include libs/master.lib/graph_start.asm
|
2014-08-23 11:46:31 +00:00
|
|
|
|
include libs/master.lib/js_end.asm
|
2014-08-23 12:01:53 +00:00
|
|
|
|
include libs/master.lib/keybeep.asm
|
2014-08-27 03:05:30 +00:00
|
|
|
|
include libs/master.lib/make_linework.asm
|
2014-08-23 14:18:30 +00:00
|
|
|
|
include libs/master.lib/palette_init.asm
|
2014-08-23 14:11:16 +00:00
|
|
|
|
include libs/master.lib/palette_show.asm
|
2014-08-27 01:11:13 +00:00
|
|
|
|
include libs/master.lib/pfclose.asm
|
2014-09-07 13:07:36 +00:00
|
|
|
|
include libs/master.lib/pfgetc.asm
|
2014-08-30 10:50:48 +00:00
|
|
|
|
include libs/master.lib/pfread.asm
|
2014-08-30 10:33:48 +00:00
|
|
|
|
include libs/master.lib/pfrewind.asm
|
2014-08-30 10:26:02 +00:00
|
|
|
|
include libs/master.lib/pfseek.asm
|
2014-08-30 10:13:04 +00:00
|
|
|
|
include libs/master.lib/random.asm
|
2014-08-23 01:15:17 +00:00
|
|
|
|
include libs/master.lib/rottbl.asm
|
2014-08-21 22:59:18 +00:00
|
|
|
|
include libs/master.lib/smem_release.asm
|
2014-08-21 23:04:46 +00:00
|
|
|
|
include libs/master.lib/smem_wget.asm
|
2014-08-31 04:27:47 +00:00
|
|
|
|
include libs/master.lib/soundio.asm
|
2014-10-20 15:20:04 +00:00
|
|
|
|
include libs/master.lib/text_clear.asm
|
|
|
|
|
include libs/master.lib/txesc.asm
|
2014-08-26 21:58:08 +00:00
|
|
|
|
include libs/master.lib/vsync.asm
|
2014-08-26 22:11:29 +00:00
|
|
|
|
include libs/master.lib/vsync_wait.asm
|
2014-08-26 22:52:29 +00:00
|
|
|
|
include libs/master.lib/palette_white_in.asm
|
2014-08-21 23:19:52 +00:00
|
|
|
|
include libs/master.lib/hmem_lallocate.asm
|
2014-08-21 21:30:20 +00:00
|
|
|
|
include libs/master.lib/mem_assign_dos.asm
|
2014-08-21 21:05:54 +00:00
|
|
|
|
include libs/master.lib/mem_assign.asm
|
2014-08-21 22:17:53 +00:00
|
|
|
|
include libs/master.lib/memheap.asm
|
2014-09-08 18:30:15 +00:00
|
|
|
|
include libs/master.lib/mem_unassign.asm
|
2014-08-22 21:45:21 +00:00
|
|
|
|
include libs/master.lib/super_free.asm
|
2014-08-22 22:17:59 +00:00
|
|
|
|
include libs/master.lib/super_entry_pat.asm
|
2014-08-22 21:56:33 +00:00
|
|
|
|
include libs/master.lib/super_entry_at.asm
|
2014-08-23 16:07:02 +00:00
|
|
|
|
include libs/master.lib/super_entry_bfnt.asm
|
2014-08-22 21:33:18 +00:00
|
|
|
|
include libs/master.lib/super_cancel_pat.asm
|
2014-08-31 02:46:46 +00:00
|
|
|
|
include libs/master.lib/super_put_rect.asm
|
2014-08-28 00:13:13 +00:00
|
|
|
|
include libs/master.lib/super_put.asm
|
2014-09-03 13:23:51 +00:00
|
|
|
|
include libs/master.lib/respal_exist.asm
|
2014-09-03 13:41:25 +00:00
|
|
|
|
include libs/master.lib/respal_free.asm
|
2014-11-16 03:00:41 +00:00
|
|
|
|
include libs/master.lib/pfint21.asm
|
|
|
|
|
db 0
|
2018-04-15 12:51:57 +00:00
|
|
|
|
include libs/master.lib/js_start.asm
|
2014-08-31 16:08:50 +00:00
|
|
|
|
include libs/master.lib/draw_trapezoid.asm
|
2014-11-17 03:54:40 +00:00
|
|
|
|
include th03/formats/pfopen.asm
|
|
|
|
|
include libs/master.lib/pf_str_ieq.asm
|
2018-04-15 21:31:38 +00:00
|
|
|
|
include libs/master.lib/js_sense.asm
|
2014-08-25 02:49:19 +00:00
|
|
|
|
include libs/master.lib/bgm_bell_org.asm
|
2014-08-25 21:08:17 +00:00
|
|
|
|
include libs/master.lib/bgm_mget.asm
|
2014-08-26 04:07:19 +00:00
|
|
|
|
include libs/master.lib/bgm_read_sdata.asm
|
2014-08-26 05:39:57 +00:00
|
|
|
|
include libs/master.lib/bgm_timer.asm
|
2014-08-25 22:01:58 +00:00
|
|
|
|
include libs/master.lib/bgm_pinit.asm
|
2014-08-26 04:18:06 +00:00
|
|
|
|
include libs/master.lib/bgm_timerhook.asm
|
2014-08-25 22:25:48 +00:00
|
|
|
|
include libs/master.lib/bgm_play.asm
|
2014-08-25 23:51:57 +00:00
|
|
|
|
include libs/master.lib/bgm_sound.asm
|
2014-08-25 22:34:16 +00:00
|
|
|
|
include libs/master.lib/bgm_effect_sound.asm
|
2014-08-25 22:40:14 +00:00
|
|
|
|
include libs/master.lib/bgm_stop_play.asm
|
2014-08-25 20:57:49 +00:00
|
|
|
|
include libs/master.lib/bgm_set_tempo.asm
|
2014-08-26 05:58:33 +00:00
|
|
|
|
include libs/master.lib/bgm_init_finish.asm
|
2014-08-25 23:41:08 +00:00
|
|
|
|
include libs/master.lib/bgm_stop_sound.asm
|
2014-09-15 01:03:52 +00:00
|
|
|
|
include libs/master.lib/graph_gaiji_puts.asm
|
2014-09-14 15:39:30 +00:00
|
|
|
|
include libs/master.lib/graph_gaiji_putc.asm
|
2015-02-18 11:07:37 +00:00
|
|
|
|
_TEXT ends
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2015-02-21 11:47:24 +00:00
|
|
|
|
op_01_TEXT segment byte public 'CODE' use16
|
|
|
|
|
assume cs:op_01_TEXT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
;org 0Ch
|
2015-02-18 11:07:37 +00:00
|
|
|
|
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2020-02-22 11:55:34 +00:00
|
|
|
|
include th04/formats/cfg.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public START_GAME
|
|
|
|
|
start_game proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
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
|
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_REIMU
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '0'
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call playchar_menu
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jnz short loc_A96A
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.demo_num], 0
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_free
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call cfg_save
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 10
|
2020-09-06 18:38:59 +00:00
|
|
|
|
call _game_exit
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.debug_mode], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_A957
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
jmp short loc_A962
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A957:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset path ; "deb"
|
|
|
|
|
push ds
|
|
|
|
|
push offset path ; "deb"
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A962:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call _execl
|
|
|
|
|
add sp, 0Ch
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A96A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
start_game endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public START_EXTRA
|
|
|
|
|
start_extra proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.stage], STAGE_EXTRA
|
|
|
|
|
mov es:[bx+resident_t.credit_lives], 3
|
|
|
|
|
mov es:[bx+resident_t.credit_bombs], 2
|
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_REIMU
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '6'
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call playchar_menu
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jnz short loc_A9C7
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.demo_num], 0
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_free
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call cfg_save
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 10
|
2020-09-06 18:38:59 +00:00
|
|
|
|
call _game_exit
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
call _execl
|
|
|
|
|
add sp, 0Ch
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9C7:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
start_extra endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public START_DEMO
|
|
|
|
|
start_demo proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
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
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe short loc_A9EF
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.demo_num], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9EF:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.demo_num]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
dec ax
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 3
|
|
|
|
|
ja short loc_AA6E
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_AAAD[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA08:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_REIMU
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '3'
|
|
|
|
|
mov es:[bx+resident_t.shottype], SHOTTYPE_A
|
|
|
|
|
mov es:[bx+resident_t.demo_stage], 3
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AA6E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA22:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_MARISA
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '0'
|
|
|
|
|
mov es:[bx+resident_t.shottype], SHOTTYPE_A
|
|
|
|
|
mov es:[bx+resident_t.demo_stage], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AA6E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA3C:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_REIMU
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '2'
|
|
|
|
|
mov es:[bx+resident_t.shottype], SHOTTYPE_B
|
|
|
|
|
mov es:[bx+resident_t.demo_stage], 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AA6E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA56:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], '0' + PLAYCHAR_MARISA
|
|
|
|
|
mov es:[bx+resident_t.stage_ascii], '1'
|
|
|
|
|
mov es:[bx+resident_t.shottype], SHOTTYPE_B
|
|
|
|
|
mov es:[bx+resident_t.demo_stage], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA6E:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-08-22 21:45:21 +00:00
|
|
|
|
call super_free
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_free
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call cfg_save
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2020-09-06 18:38:59 +00:00
|
|
|
|
call _game_exit
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
call _execl
|
|
|
|
|
add sp, 0Ch
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
start_demo endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_AAAD dw offset loc_AA08
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_AA22
|
|
|
|
|
dw offset loc_AA3C
|
|
|
|
|
dw offset loc_AA56
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public MAIN_PUT
|
|
|
|
|
main_put proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
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
|
2019-12-29 14:37:23 +00:00
|
|
|
|
imul ax, 20
|
|
|
|
|
add ax, 224
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov di, ax
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, 256, ax, (128 shl 16) or 16
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, GC_RMW, [bp+arg_0]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], si
|
|
|
|
|
mov bx, si
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja short loc_AB59
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_ABCB[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AAF3:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (272 shl 16) or 224, 10
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 16h
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
jmp short loc_AB59
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB12:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _extra_unlocked, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AB24
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 12
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB24:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 244
|
|
|
|
|
push 11
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AB54
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB2E:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 264
|
|
|
|
|
push 12
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AB54
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB38:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 284
|
|
|
|
|
push 13
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AB54
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB42:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 304
|
|
|
|
|
push 14
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AB54
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB4C:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 324
|
|
|
|
|
push 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB54:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB59:
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+arg_0], 8
|
|
|
|
|
jnz short loc_ABC4
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_8 pascal, 256, di, 35
|
|
|
|
|
call cdg_put_8 pascal, 352, di, 36
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, large (0 shl 16) or 384, (RES_X shl 16) or 16
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 2
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd _MENU_DESC[bx]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call _strlen
|
|
|
|
|
add sp, 4
|
|
|
|
|
shl ax, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov dx, 624
|
2014-06-29 14:51:19 +00:00
|
|
|
|
sub dx, ax
|
|
|
|
|
push dx
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push (384 shl 16) or 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 2
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd _MENU_DESC[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABC4:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_put endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_ABCB dw offset loc_AAF3
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_AB12
|
|
|
|
|
dw offset loc_AB2E
|
|
|
|
|
dw offset loc_AB38
|
|
|
|
|
dw offset loc_AB42
|
|
|
|
|
dw offset loc_AB4C
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public OPTION_PUT
|
|
|
|
|
option_put proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2019-12-29 14:37:23 +00:00
|
|
|
|
@@y = word ptr -4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov di, 224
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+arg_2]
|
|
|
|
|
shl ax, 4
|
2019-12-29 14:37:23 +00:00
|
|
|
|
add ax, 224
|
|
|
|
|
mov [bp+@@y], ax
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+arg_2], 7
|
|
|
|
|
jnz short loc_ABF7
|
2019-12-29 14:37:23 +00:00
|
|
|
|
mov [bp+@@y], 340
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABF7:
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, 224, [bp+@@y], (192 shl 16) or 16
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC08:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, GC_RMW, [bp+arg_0]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, [bp+arg_2]
|
|
|
|
|
cmp bx, 7
|
|
|
|
|
ja loc_AD9A
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_AE18[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC24:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (224 shl 16) or 224, 16
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (320 shl 16) or 224
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2017-01-25 22:54:06 +00:00
|
|
|
|
add ax, 21
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 6
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC57:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, ax
|
|
|
|
|
jmp loc_AD9A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC5C:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (224 shl 16) or 240, 17
|
2019-12-29 15:10:44 +00:00
|
|
|
|
push (320 shl 16) or 240
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.cfg_lives]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, 0Ah
|
|
|
|
|
jmp loc_AD9A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC85:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (224 shl 16) or 256, 18
|
2019-12-29 15:10:44 +00:00
|
|
|
|
push (320 shl 16) or 256
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.cfg_bombs]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, 0Bh
|
|
|
|
|
jmp loc_AD9A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACAE:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (224 shl 16) or 272, 19
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.bgm_mode], SND_BGM_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_ACCB
|
|
|
|
|
mov ax, 1Ch
|
|
|
|
|
jmp short loc_ACD8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACCB:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 18h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACD8:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (320 shl 16) or 272, ax
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0Ch
|
|
|
|
|
jmp loc_AC57
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACF7:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (224 shl 16) or 288, 20
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.se_mode], SND_SE_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AD14
|
|
|
|
|
mov ax, 1Ch
|
|
|
|
|
jmp short loc_AD25
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD14:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, 1Fh
|
|
|
|
|
pop dx
|
|
|
|
|
sub ax, dx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD25:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (320 shl 16) or 288, ax
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0Fh
|
|
|
|
|
jmp loc_AC57
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD44:
|
2017-01-25 22:54:06 +00:00
|
|
|
|
push (272 shl 16) or 304
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.turbo_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2020-09-19 16:41:48 +00:00
|
|
|
|
mov dx, 33
|
2014-06-29 14:51:19 +00:00
|
|
|
|
sub dx, ax
|
|
|
|
|
push dx
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov di, 256
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.turbo_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 12h
|
|
|
|
|
jmp loc_AC57
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD72:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (272 shl 16) or 320, 31
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov di, 256
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, 14h
|
|
|
|
|
jmp short loc_AD9A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD87:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_nocolors_8 pascal, large (272 shl 16) or 340, 15
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov di, 256
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, 15h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD9A:
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+arg_0], 8
|
|
|
|
|
jnz short loc_AE11
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_8 pascal, di, [bp+@@y], 35
|
2017-01-21 17:10:53 +00:00
|
|
|
|
cmp di, 256
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_ADBD
|
2019-12-29 15:10:44 +00:00
|
|
|
|
lea ax, [di+96]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
jmp short loc_ADC0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADBD:
|
2017-01-21 17:10:53 +00:00
|
|
|
|
push 384
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADC0:
|
2019-12-29 14:37:23 +00:00
|
|
|
|
push [bp+@@y]
|
2017-01-21 17:10:53 +00:00
|
|
|
|
push 36
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_8
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, large (0 shl 16) or 384, (RES_X shl 16) or 16
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 2
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd _MENU_DESC[bx]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call _strlen
|
|
|
|
|
add sp, 4
|
|
|
|
|
shl ax, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov dx, 624
|
2014-06-29 14:51:19 +00:00
|
|
|
|
sub dx, ax
|
|
|
|
|
push dx
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push (384 shl 16) or 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 2
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd _MENU_DESC[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE11:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
2019-12-08 05:32:01 +00:00
|
|
|
|
option_put endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_AE18 dw offset loc_AC24
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_AC5C
|
|
|
|
|
dw offset loc_AC85
|
|
|
|
|
dw offset loc_ACAE
|
|
|
|
|
dw offset loc_ACF7
|
|
|
|
|
dw offset loc_AD44
|
|
|
|
|
dw offset loc_AD72
|
|
|
|
|
dw offset loc_AD87
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public MENU_SEL_MOVE
|
|
|
|
|
menu_sel_move proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
arg_2 = byte ptr 6
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
push ax
|
|
|
|
|
push 1
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call _putfunc
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, [bp+arg_0]
|
2019-12-08 05:32:01 +00:00
|
|
|
|
add _menu_sel, al
|
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
or ax, ax
|
|
|
|
|
jge short loc_AE4B
|
|
|
|
|
mov al, [bp+arg_2]
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _menu_sel, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE4B:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp al, [bp+arg_2]
|
|
|
|
|
jle short loc_AE58
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _menu_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE58:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _extra_unlocked, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AE76
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jnz short loc_AE76
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _in_option, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AE76
|
|
|
|
|
mov al, [bp+arg_0]
|
2019-12-08 05:32:01 +00:00
|
|
|
|
add _menu_sel, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE76:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call _putfunc
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 1
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn 4
|
2019-12-08 05:32:01 +00:00
|
|
|
|
menu_sel_move endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public MAIN_UPDATE_AND_RENDER
|
|
|
|
|
main_update_and_render proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _main_menu_initialized, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AEEB
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_unused_1, 0
|
|
|
|
|
mov _main_input_allowed, 0
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, (192 shl 16) or 224, (288 shl 16) or 160
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_AED6
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEC0:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_AECE
|
|
|
|
|
mov ax, 8
|
|
|
|
|
jmp short loc_AED1
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AECE:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AED1:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AED6:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 6
|
|
|
|
|
jl short loc_AEC0
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _putfunc, offset main_put
|
|
|
|
|
mov _main_menu_initialized, 1
|
|
|
|
|
mov _main_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEEB:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AEF7
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_input_allowed, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEF7:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _main_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B043
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_AF0E
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call menu_sel_move pascal, 5, -1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF0E:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_AF1C
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call menu_sel_move pascal, 5, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF1C:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_AF2C
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B02B
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF2C:
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 11
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja loc_B02B
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_B046[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF51:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call start_game
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_AFBD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF56:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call start_extra
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aOp1_pi
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 100
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_initialized, 0
|
|
|
|
|
mov _in_option, 0
|
|
|
|
|
mov _menu_sel, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_B043
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AFAD:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_CA94
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_initialized, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B02B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AFB7:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call musicroom
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_load
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AFBD:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aOp1_pi
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 100
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_initialized, 0
|
|
|
|
|
mov _in_option, 0
|
|
|
|
|
mov _menu_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B043
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B010:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_initialized, 0
|
|
|
|
|
mov _in_option, 1
|
|
|
|
|
mov _menu_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B02B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B021:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_menu_initialized, 0
|
|
|
|
|
mov _quit, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B02B:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B037
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _quit, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B037:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B043
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _main_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B043:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_update_and_render endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_B046 dw offset loc_AF51
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_AF56
|
|
|
|
|
dw offset loc_AFAD
|
|
|
|
|
dw offset loc_AFB7
|
|
|
|
|
dw offset loc_B010
|
|
|
|
|
dw offset loc_B021
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-08 05:32:01 +00:00
|
|
|
|
public OPTION_UPDATE_AND_RENDER
|
|
|
|
|
option_update_and_render proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _option_initialized, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B0A2
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_input_allowed, 0
|
2020-07-04 18:20:51 +00:00
|
|
|
|
call egc_copy_rect_1_to_0_16 pascal, (272 shl 16) or 224, (160 shl 16) or 144
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_B08D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B077:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_B085
|
|
|
|
|
mov ax, 8
|
|
|
|
|
jmp short loc_B088
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B085:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B088:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call option_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B08D:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 8
|
|
|
|
|
jl short loc_B077
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _putfunc, offset option_put
|
|
|
|
|
mov _option_initialized, 1
|
|
|
|
|
mov _option_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0A2:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B0AE
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_input_allowed, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0AE:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _option_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B35B
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B0C5
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call menu_sel_move pascal, 7, -1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0C5:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B0D3
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call menu_sel_move pascal, 7, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0D3:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B0E3
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B16F
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0E3:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
cmp ax, 6
|
|
|
|
|
jz short loc_B0F4
|
|
|
|
|
cmp ax, 7
|
|
|
|
|
jz short loc_B14F
|
|
|
|
|
jmp loc_B178
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0F4:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.rank], RANK_NORMAL
|
2020-02-22 16:39:23 +00:00
|
|
|
|
mov es:[bx+resident_t.cfg_lives], CFG_LIVES_DEFAULT
|
|
|
|
|
mov es:[bx+resident_t.cfg_bombs], CFG_BOMBS_DEFAULT
|
2020-01-02 19:55:22 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_modes
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_initialized, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B16F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B14F:
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 11
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_initialized, 0
|
|
|
|
|
mov _menu_sel, 4
|
|
|
|
|
mov _in_option, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B16F:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_RIGHT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B250
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B178:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja loc_B246
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_B36B[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B18C:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.rank]
|
|
|
|
|
cmp es:[bx+resident_t.rank], RANK_LUNATIC
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe loc_B246
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.rank], RANK_EASY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B1A5:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.cfg_lives]
|
2020-02-22 16:39:23 +00:00
|
|
|
|
cmp es:[bx+resident_t.cfg_lives], CFG_LIVES_MAX
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe loc_B246
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.cfg_lives], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B1BE:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.cfg_bombs]
|
2020-02-22 16:39:23 +00:00
|
|
|
|
cmp es:[bx+resident_t.cfg_bombs], CFG_BOMBS_MAX
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe short loc_B246
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.cfg_bombs], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B1D4:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.bgm_mode]
|
|
|
|
|
cmp es:[bx+resident_t.bgm_mode], SND_BGM_MODE_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jb short loc_B1E8
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.bgm_mode], SND_BGM_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B1E8:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_modes
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B21C:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.se_mode], SND_SE_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B22E
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.se_mode], SND_SE_BEEP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B22E:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
dec es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B246
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B238:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
2020-01-02 19:55:22 +00:00
|
|
|
|
sub al, es:[bx+resident_t.turbo_mode]
|
|
|
|
|
mov es:[bx+resident_t.turbo_mode], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B246:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call option_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B250:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_LEFT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz loc_B339
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja loc_B32F
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_B35F[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B26D:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.rank], RANK_EASY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B27D
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.rank], RANK_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B27D:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
dec es:[bx+resident_t.rank]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_B32F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B288:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.cfg_lives], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B298
|
2020-02-22 16:39:23 +00:00
|
|
|
|
mov es:[bx+resident_t.cfg_lives], (CFG_LIVES_MAX + 1)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B298:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
dec es:[bx+resident_t.cfg_lives]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_B32F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2A3:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.cfg_bombs], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B2B3
|
2020-02-22 16:39:23 +00:00
|
|
|
|
mov es:[bx+resident_t.cfg_bombs], (CFG_BOMBS_MAX + 1)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2B3:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
dec es:[bx+resident_t.cfg_bombs]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B32F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2BD:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.bgm_mode], SND_BGM_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B2CF
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.bgm_mode], SND_BGM_FM86
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B2D7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2CF:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
dec es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2D7:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_modes
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B32F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B30B:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.se_mode]
|
|
|
|
|
cmp es:[bx+resident_t.se_mode], SND_SE_MODE_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jb short loc_B32F
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.se_mode], SND_SE_OFF
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B32F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B321:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
2020-01-02 19:55:22 +00:00
|
|
|
|
sub al, es:[bx+resident_t.turbo_mode]
|
|
|
|
|
mov es:[bx+resident_t.turbo_mode], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B32F:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _menu_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call option_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B339:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B34F
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_initialized, 0
|
|
|
|
|
mov _menu_sel, 4
|
|
|
|
|
mov _in_option, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B34F:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B35B
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov _option_input_allowed, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B35B:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
option_update_and_render endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_B35F dw offset loc_B26D
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_B288
|
|
|
|
|
dw offset loc_B2A3
|
|
|
|
|
dw offset loc_B2BD
|
|
|
|
|
dw offset loc_B30B
|
|
|
|
|
dw offset loc_B321
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_B36B dw offset loc_B18C
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dw offset loc_B1A5
|
|
|
|
|
dw offset loc_B1BE
|
|
|
|
|
dw offset loc_B1D4
|
|
|
|
|
dw offset loc_B21C
|
|
|
|
|
dw offset loc_B238
|
|
|
|
|
|
|
|
|
|
; =============== 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)
|
2015-02-19 06:46:36 +00:00
|
|
|
|
public _main
|
2014-08-10 01:44:54 +00:00
|
|
|
|
_main proc far
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
_argc = word ptr 6
|
|
|
|
|
_argv = dword ptr 8
|
|
|
|
|
_envp = dword ptr 0Ch
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
xor si, si
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2014-09-03 13:23:51 +00:00
|
|
|
|
call respal_create
|
2019-11-23 20:28:21 +00:00
|
|
|
|
mov _mem_assign_paras, MEM_ASSIGN_PARAS_OP
|
2019-11-19 14:26:47 +00:00
|
|
|
|
call _game_init_op c, offset aMSzlEd_dat, ds
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_B3AB
|
|
|
|
|
push ds
|
|
|
|
|
push offset asc_F7F7 ; "\n<><EFBFBD><F382AB83><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>ł<EFBFBD><C582>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𑝂₵"...
|
2014-08-22 23:48:16 +00:00
|
|
|
|
call dos_puts2
|
2015-02-19 06:46:36 +00:00
|
|
|
|
call _getch
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B3AB:
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_backup
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aGameft_bft ; "GAMEFT.bft"
|
2014-08-31 08:08:09 +00:00
|
|
|
|
call gaiji_entry_bfnt
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call cfg_load
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.rank], RANK_DEFAULT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B3D3
|
|
|
|
|
call sub_B9CE
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.rank], RANK_NORMAL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B3D3:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.bgm_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.se_mode]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_modes
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.zunsoft_shown], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B40D
|
2019-12-01 11:03:31 +00:00
|
|
|
|
call zunsoft
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.zunsoft_shown], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B40D:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.demo_num], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B420
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B420:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call op_animate
|
2019-12-26 15:07:35 +00:00
|
|
|
|
call scoredat_cleared_load
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_load
|
|
|
|
|
mov _in_option, 0
|
|
|
|
|
mov _quit, 0
|
|
|
|
|
mov _menu_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B47B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B43A:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-12-08 05:32:01 +00:00
|
|
|
|
mov al, _in_option
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cbw
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_B44E
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_B45C
|
|
|
|
|
jmp short loc_B45F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B44E:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_update_and_render
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp si, 640
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_B45F
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call start_demo
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B45F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B45C:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call option_update_and_render
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B45F:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B469
|
|
|
|
|
inc si
|
|
|
|
|
jmp short loc_B46B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B469:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B46B:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
inc es:[bx+resident_t.rand]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B47B:
|
2019-12-08 05:32:01 +00:00
|
|
|
|
cmp _quit, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B43A
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call main_cdg_free
|
2019-12-08 05:32:01 +00:00
|
|
|
|
call cfg_save_exit
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2020-09-06 18:38:59 +00:00
|
|
|
|
call _game_exit_to_dos
|
2014-09-03 13:41:25 +00:00
|
|
|
|
call respal_free
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retf
|
|
|
|
|
_main endp
|
|
|
|
|
|
2019-12-21 20:15:20 +00:00
|
|
|
|
include th04/setup.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B794 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
|
|
|
|
call window_singleline pascal, (96 shl 16) or 80
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_BGM_HEAD
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
|
|
|
|
mov _window_tiles.y, 1 + 3
|
|
|
|
|
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_B7EB
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7D4:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
cmp [bp+var_2], 2
|
|
|
|
|
jnz short loc_B7E2
|
2019-12-21 20:15:20 +00:00
|
|
|
|
mov ax, 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B7E4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7E2:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7E4:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_choice_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7EB:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 3
|
|
|
|
|
jl short loc_B7D4
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
|
|
|
|
mov _window_tiles.y, 1 + 9
|
|
|
|
|
call window_dropdown_animate pascal, (192 shl 16) or 128
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_help_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B80E:
|
2019-11-30 14:48:36 +00:00
|
|
|
|
call input_wait_for_change pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B87A
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B87A
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B851
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_choice_put pascal, [bp+var_2], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 2
|
|
|
|
|
jnz short loc_B846
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_B849
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B846:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B849:
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_choice_put pascal, [bp+var_2], 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B851:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B80E
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_choice_put pascal, [bp+var_2], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jnz short loc_B86D
|
|
|
|
|
mov [bp+var_2], 2
|
|
|
|
|
jmp short loc_B870
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B86D:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B870:
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_bgm_choice_put pascal, [bp+var_2], 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B80E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B87A:
|
2019-12-29 14:25:34 +00:00
|
|
|
|
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
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, byte ptr [bp+var_2]
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.bgm_mode], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_B794 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B8B1 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
|
|
|
|
call window_singleline pascal, (96 shl 16) or 80
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_SE_HEAD
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
|
|
|
|
mov _window_tiles.y, 1 + 3
|
|
|
|
|
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_B908
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8F1:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
cmp [bp+var_2], 1
|
|
|
|
|
jnz short loc_B8FF
|
2019-12-21 20:15:20 +00:00
|
|
|
|
mov ax, 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B901
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8FF:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B901:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_choice_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B908:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 3
|
|
|
|
|
jl short loc_B8F1
|
2019-12-29 14:25:34 +00:00
|
|
|
|
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
|
|
|
|
mov _window_tiles.y, 1 + 9
|
|
|
|
|
call window_dropdown_animate pascal, (192 shl 16) or 128
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_help_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B92B:
|
2019-11-30 14:48:36 +00:00
|
|
|
|
call input_wait_for_change pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B997
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_B997
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B96E
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_choice_put pascal, [bp+var_2], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 2
|
|
|
|
|
jnz short loc_B963
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_B966
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B963:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B966:
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_choice_put pascal, [bp+var_2], 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B96E:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_B92B
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_choice_put pascal, [bp+var_2], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jnz short loc_B98A
|
|
|
|
|
mov [bp+var_2], 2
|
|
|
|
|
jmp short loc_B98D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B98A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B98D:
|
2019-12-21 20:15:20 +00:00
|
|
|
|
call setup_se_choice_put pascal, [bp+var_2], 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_B92B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B997:
|
2019-12-29 14:25:34 +00:00
|
|
|
|
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
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, byte ptr [bp+var_2]
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.se_mode], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_B8B1 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B9CE proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-22 13:04:34 +00:00
|
|
|
|
call super_entry_bfnt pascal, ds, offset aMswin_bft ; "mswin.bft"
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aMs_pi
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_B794
|
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_B8B1
|
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-08-22 21:45:21 +00:00
|
|
|
|
call super_free
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_B9CE endp
|
|
|
|
|
|
2018-03-21 22:20:04 +00:00
|
|
|
|
include th04/zunsoft.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-11-25 11:09:11 +00:00
|
|
|
|
public DRAW_TRACK
|
|
|
|
|
draw_track proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_1 = byte ptr -1
|
2019-11-25 11:09:11 +00:00
|
|
|
|
@@color = byte ptr 4
|
|
|
|
|
@@sel = byte ptr 6
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
mov al, 1
|
2019-11-25 11:09:11 +00:00
|
|
|
|
sub al, _music_page
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_1], al
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage al
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 16
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@sel]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@color]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@sel]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 2
|
|
|
|
|
mov bx, ax
|
2019-12-05 02:53:01 +00:00
|
|
|
|
pushd _MUSIC_TITLES[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2019-11-25 11:09:11 +00:00
|
|
|
|
graph_accesspage _music_page
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 16
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@sel]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@color]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@sel]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 2
|
|
|
|
|
mov bx, ax
|
2019-12-05 02:53:01 +00:00
|
|
|
|
pushd _MUSIC_TITLES[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
leave
|
|
|
|
|
retn 4
|
2019-11-25 11:09:11 +00:00
|
|
|
|
draw_track endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-11-25 11:09:11 +00:00
|
|
|
|
public DRAW_TRACKS
|
|
|
|
|
draw_tracks proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2019-11-25 11:09:11 +00:00
|
|
|
|
@@sel = byte ptr 4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_BF5E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF49:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, [bp+@@sel]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_BF57
|
|
|
|
|
mov al, 3
|
|
|
|
|
jmp short loc_BF59
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF57:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 5
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF59:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_track
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF5E:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 18h
|
|
|
|
|
jl short loc_BF49
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
2019-11-25 11:09:11 +00:00
|
|
|
|
draw_tracks endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2019-11-25 11:09:11 +00:00
|
|
|
|
include th02/music/music.asm
|
2014-12-24 20:39:34 +00:00
|
|
|
|
include th02/music/music_cmt_load.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-11-25 11:09:11 +00:00
|
|
|
|
public DRAW_CMT_LINES
|
|
|
|
|
draw_cmt_lines proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
2019-12-21 17:08:24 +00:00
|
|
|
|
call graph_putsa_fx pascal, (320 shl 16) or 64, 7, ds, offset _music_cmt
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov si, 1
|
|
|
|
|
jmp short loc_C306
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C2DE:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
2014-12-24 20:39:34 +00:00
|
|
|
|
imul bx, MUSIC_CMT_LINE_LEN
|
2015-02-24 14:45:38 +00:00
|
|
|
|
cmp _music_cmt[bx], ';'
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C305
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 320
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
shl ax, 4
|
|
|
|
|
push ax
|
|
|
|
|
push 7
|
|
|
|
|
push ds
|
|
|
|
|
mov ax, si
|
2014-12-24 20:39:34 +00:00
|
|
|
|
imul ax, MUSIC_CMT_LINE_LEN
|
2015-02-24 14:45:38 +00:00
|
|
|
|
add ax, offset _music_cmt
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C305:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C306:
|
2014-12-24 20:39:34 +00:00
|
|
|
|
cmp si, MUSIC_CMT_LINE_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_C2DE
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-11-25 11:09:11 +00:00
|
|
|
|
draw_cmt_lines endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C30E proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
mov si, 4
|
|
|
|
|
jmp short loc_C328
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C317:
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, si
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C328:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 8
|
|
|
|
|
jl short loc_C317
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_C30E endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C33F proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2019-12-28 21:51:33 +00:00
|
|
|
|
call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2019-12-28 21:51:33 +00:00
|
|
|
|
call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_C33F endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-11-25 11:09:11 +00:00
|
|
|
|
public DRAW_CMT
|
|
|
|
|
draw_cmt proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-12-24 20:39:34 +00:00
|
|
|
|
@@track = word ptr 4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
cmp byte_12DBE, 0
|
|
|
|
|
jz short loc_C37C
|
|
|
|
|
call sub_C33F
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C37C:
|
2014-12-24 20:39:34 +00:00
|
|
|
|
call music_cmt_load pascal, [bp+@@track]
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call screen_back_B_put
|
2019-12-28 21:51:33 +00:00
|
|
|
|
call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp byte_12DBE, 0
|
|
|
|
|
jz short loc_C3A2
|
|
|
|
|
call sub_C30E
|
|
|
|
|
jmp short loc_C3B0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3A2:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov byte_12DBE, 1
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt_lines
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3B0:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call screen_back_B_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
2019-11-25 11:09:11 +00:00
|
|
|
|
draw_cmt endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-11-25 11:09:11 +00:00
|
|
|
|
public MUSICROOM
|
|
|
|
|
musicroom proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
mov byte_12DBE, 0
|
2020-09-05 15:52:09 +00:00
|
|
|
|
call cdg_free_all
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov _music_page, 1
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
|
|
|
|
graph_accesspage al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aMusic_pi
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2017-01-09 20:10:33 +00:00
|
|
|
|
mov al, music_track_playing
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov _music_sel, al
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_tracks pascal, word ptr _music_sel
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2019-12-08 12:09:13 +00:00
|
|
|
|
call bgimage_snap
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
|
|
|
|
graph_showpage 0
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call screen_back_B_snap
|
2017-01-09 20:10:33 +00:00
|
|
|
|
mov al, music_track_playing
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt pascal, ax
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 100
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C454:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C465
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_C454
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C465:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C4A0
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_track pascal, word ptr _music_sel, 5
|
2019-11-25 11:09:11 +00:00
|
|
|
|
cmp _music_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe short loc_C487
|
2019-11-25 11:09:11 +00:00
|
|
|
|
dec _music_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_C48C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C487:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov _music_sel, 17h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C48C:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
cmp _music_sel, 16h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_C497
|
2019-11-25 11:09:11 +00:00
|
|
|
|
dec _music_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C497:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_track pascal, word ptr _music_sel, 3
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4A0:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C4D6
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_track pascal, word ptr _music_sel, 5
|
2019-11-25 11:09:11 +00:00
|
|
|
|
cmp _music_sel, 17h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnb short loc_C4BD
|
2019-11-25 11:09:11 +00:00
|
|
|
|
inc _music_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_C4C2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4BD:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov _music_sel, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4C2:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
cmp _music_sel, 16h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_C4CD
|
2019-11-25 11:09:11 +00:00
|
|
|
|
inc _music_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4CD:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_track pascal, word ptr _music_sel, 3
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4D6:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_C4E4
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C51D
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4E4:
|
2019-11-25 11:09:11 +00:00
|
|
|
|
cmp _music_sel, 17h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C533
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 32
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, _music_sel
|
2017-01-09 20:10:33 +00:00
|
|
|
|
mov music_track_playing, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call draw_cmt pascal, ax
|
2019-11-25 11:09:11 +00:00
|
|
|
|
mov al, _music_sel
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 2
|
|
|
|
|
mov bx, ax
|
2019-12-05 02:53:01 +00:00
|
|
|
|
call snd_load pascal, dword ptr _MUSIC_FILES[bx], SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C51D:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_C533
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz loc_C454
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_C465
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C533:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_C544
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call music_flip
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_C533
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C544:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 16
|
2019-11-25 11:09:11 +00:00
|
|
|
|
call screen_back_B_free
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
|
|
|
|
graph_accesspage al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2019-12-08 12:09:13 +00:00
|
|
|
|
call bgimage_free
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp_2, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-11-25 11:09:11 +00:00
|
|
|
|
musicroom endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2019-12-27 21:28:54 +00:00
|
|
|
|
include th04/formats/scoredat_decode_both.asm
|
|
|
|
|
include th04/formats/scoredat_encode.asm
|
|
|
|
|
include th04/formats/scoredat_recreate.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-26 15:07:35 +00:00
|
|
|
|
public SCOREDAT_LOAD
|
|
|
|
|
scoredat_load proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr ; "GENSOU.SCR"
|
2014-08-30 06:46:38 +00:00
|
|
|
|
call file_exist
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_C793
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr ; "GENSOU.SCR"
|
2014-08-30 07:12:17 +00:00
|
|
|
|
call file_ropen
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, size scoredat_section_t
|
2014-06-29 14:51:19 +00:00
|
|
|
|
movzx eax, ax
|
2019-12-26 16:19:44 +00:00
|
|
|
|
call file_seek pascal, large eax, 0
|
|
|
|
|
call file_read pascal, ds, offset _hi, size scoredat_section_t
|
|
|
|
|
call file_seek pascal, large (RANK_COUNT - 1) * size scoredat_section_t, 1
|
|
|
|
|
call file_read pascal, ds, offset _hi2, size scoredat_section_t
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2019-12-27 21:28:54 +00:00
|
|
|
|
call scoredat_decode_func
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or al, al
|
|
|
|
|
jz short loc_C79A
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C793:
|
2019-12-27 21:28:54 +00:00
|
|
|
|
call scoredat_recreate
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C79A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 0
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-26 15:07:35 +00:00
|
|
|
|
scoredat_load endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C79E proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_2]
|
|
|
|
|
mov si, [bp+arg_0]
|
2019-12-22 13:04:34 +00:00
|
|
|
|
mov [bp+var_4], 16
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
cmp ax, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_C7E0
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push 140
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
mov bx, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7E0:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_marisa.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
cmp ax, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_C811
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push 448
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_marisa.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
mov bx, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C811:
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push 156
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
mov bx, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push dx
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push 464
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_marisa.score.g_points[bx][SCORE_DIGITS - 1]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2019-12-22 13:04:34 +00:00
|
|
|
|
mov bx, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push dx
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 6
|
|
|
|
|
jmp short loc_C899
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C854:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_4]
|
2019-12-22 13:04:34 +00:00
|
|
|
|
add ax, 156
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, [bp+var_2]
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_points[bx]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_4]
|
2019-12-22 13:04:34 +00:00
|
|
|
|
add ax, 464
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, [bp+var_2]
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_marisa.score.g_points[bx]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
add ax, -gb_0_
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dec [bp+var_2]
|
2019-12-22 13:04:34 +00:00
|
|
|
|
add [bp+var_4], 16
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C899:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jge short loc_C854
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_C79E endp
|
|
|
|
|
|
2019-12-29 16:47:23 +00:00
|
|
|
|
include th04/hiscore/hiscore_stage_put.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C8F5 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_0]
|
|
|
|
|
or si, si
|
|
|
|
|
jnz loc_C989
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push (10 shl 16) or 98
|
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_reimu.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 14
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push (8 shl 16) or 96
|
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_reimu.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 7
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push (322 shl 16) or 98
|
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_marisa.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 14
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push (320 shl 16) or 96
|
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_marisa.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 7
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 600000h
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_C79E
|
2019-12-29 16:47:23 +00:00
|
|
|
|
push (292 shl 16) or 96
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_stage[si]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2019-12-29 16:47:23 +00:00
|
|
|
|
call hiscore_stage_put
|
|
|
|
|
push (600 shl 16) or 96
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_CA0A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C989:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
shl ax, 4
|
2019-12-28 21:05:25 +00:00
|
|
|
|
add ax, 112
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov di, ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_reimu.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 14
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 8
|
|
|
|
|
push di
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_reimu.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 2
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 322
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+2]
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_marisa.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 14
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push 320
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
2019-12-28 21:05:25 +00:00
|
|
|
|
push GAIJI_W
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
2019-12-26 16:19:44 +00:00
|
|
|
|
imul ax, (SCOREDAT_NAME_LEN + 1)
|
|
|
|
|
add ax, offset _hi_marisa.score.g_name
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 2
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
push si
|
|
|
|
|
call sub_C79E
|
2019-12-29 16:47:23 +00:00
|
|
|
|
push 292
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_reimu.score.g_stage[si]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2019-12-29 16:47:23 +00:00
|
|
|
|
call hiscore_stage_put
|
|
|
|
|
push 600
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA0A:
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov al, _hi_marisa.score.g_stage[si]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2019-12-29 16:47:23 +00:00
|
|
|
|
call hiscore_stage_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
|
|
|
|
sub_C8F5 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-07 10:37:53 +00:00
|
|
|
|
public SCORE_MENU
|
|
|
|
|
score_menu proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 0
|
|
|
|
|
call sub_C8F5
|
|
|
|
|
mov si, 1
|
|
|
|
|
jmp short loc_CA5B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA56:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_C8F5
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA5B:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 9
|
|
|
|
|
jl short loc_CA56
|
|
|
|
|
push 9
|
|
|
|
|
call sub_C8F5
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push (496 shl 16) or 376
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
2019-12-22 13:04:34 +00:00
|
|
|
|
add ax, 10
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2019-12-22 13:04:34 +00:00
|
|
|
|
push (560 shl 16) or 376
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
2019-12-22 13:04:34 +00:00
|
|
|
|
add ax, 11
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-07 10:37:53 +00:00
|
|
|
|
score_menu endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_CA94 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aName, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
|
|
|
|
kajacall KAJA_SONG_FADE, -128
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
assume es:nothing
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov _rank, al
|
2019-12-26 15:07:35 +00:00
|
|
|
|
call scoredat_load
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aHi01_pi
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CADA:
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call score_menu
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAE4:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CB58
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CB58
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CB58
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CB58
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_LEFT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_CB36
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _rank, RANK_EASY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_CB36
|
2019-03-01 15:16:54 +00:00
|
|
|
|
dec _rank
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-26 15:07:35 +00:00
|
|
|
|
call scoredat_load
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call score_menu
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB36:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_RIGHT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_CAE4
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _rank, RANK_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnb short loc_CAE4
|
2019-03-01 15:16:54 +00:00
|
|
|
|
inc _rank
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-26 15:07:35 +00:00
|
|
|
|
call scoredat_load
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_CADA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB58:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aOp1_pi_0
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CBB3:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CBB3
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp_0, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_CA94 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
2019-12-26 15:07:35 +00:00
|
|
|
|
public SCOREDAT_CLEARED_LOAD
|
|
|
|
|
scoredat_cleared_load proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov _rank, RANK_EASY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_CC6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CBEE:
|
2019-12-26 15:07:35 +00:00
|
|
|
|
call scoredat_load
|
2014-06-29 14:51:19 +00:00
|
|
|
|
or al, al
|
|
|
|
|
jnz loc_CC78
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov dl, _hi_reimu.score.cleared
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov _cleared_with_reimu[bx], dl
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-26 16:19:44 +00:00
|
|
|
|
mov dl, _hi_marisa.score.cleared
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov _cleared_with_marisa[bx], dl
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
cmp _cleared_with_reimu[bx], SCOREDAT_CLEARED_BOTH
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe short loc_CC2F
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov _cleared_with_reimu[bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC2F:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
cmp _cleared_with_marisa[bx], SCOREDAT_CLEARED_BOTH
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jbe short loc_CC49
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov _cleared_with_marisa[bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC49:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _rank, RANK_EASY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_CC6B
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, _cleared_with_reimu[bx]
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov dl, _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov dh, 0
|
|
|
|
|
mov bx, dx
|
2019-12-28 22:28:10 +00:00
|
|
|
|
or al, _cleared_with_marisa[bx]
|
2019-12-08 05:32:01 +00:00
|
|
|
|
or _extra_unlocked, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC6B:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
inc _rank
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC6F:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _rank, RANK_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jb loc_CBEE
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC78:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov _rank, al
|
2019-12-22 13:04:34 +00:00
|
|
|
|
call super_entry_bfnt pascal, ds, offset aScnum_bft ; "scnum.bft"
|
|
|
|
|
call super_entry_bfnt pascal, ds, offset aHi_m_bft ; "hi_m.bft"
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-26 15:07:35 +00:00
|
|
|
|
scoredat_cleared_load endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_cdg_load proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-09-15 14:22:36 +00:00
|
|
|
|
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_all_noalpha pascal, 40, ds, offset aSl_cd2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_cdg_load endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_cdg_free proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2020-09-05 15:52:09 +00:00
|
|
|
|
call cdg_free_all
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
main_cdg_free endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-08 05:32:01 +00:00
|
|
|
|
op_animate proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2018-12-29 19:08:52 +00:00
|
|
|
|
@@page = byte ptr -4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
var_3 = byte ptr -3
|
2019-11-26 21:47:07 +00:00
|
|
|
|
@@component = word ptr -2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 15
|
2019-11-10 23:18:22 +00:00
|
|
|
|
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aOp5b_pi
|
|
|
|
|
call pi_load pascal, 1, ds, offset aOp4b_pi
|
|
|
|
|
call pi_load pascal, 2, ds, offset aOp3b_pi
|
|
|
|
|
call pi_load pascal, 3, ds, offset aOp2b_pi
|
|
|
|
|
call pi_load pascal, 4, ds, offset aOp1b_pi
|
|
|
|
|
call pi_load pascal, 5, ds, offset aOp0b_pi
|
|
|
|
|
call pi_palette_apply pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 4
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
|
|
|
|
graph_accesspage 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
mov [bp+var_3], 0
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov di, 100
|
2018-12-29 19:08:52 +00:00
|
|
|
|
mov [bp+@@page], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_CDC4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CD7A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
mov bx, 4
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
or dx, dx
|
|
|
|
|
jnz short loc_CDB0
|
|
|
|
|
cmp [bp+var_3], 6
|
|
|
|
|
jnb short loc_CDB0
|
2014-12-18 13:36:43 +00:00
|
|
|
|
pushd 38
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, [bp+var_3]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_put
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc [bp+var_3]
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage [bp+@@page]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub al, [bp+@@page]
|
|
|
|
|
mov [bp+@@page], al
|
|
|
|
|
graph_showpage al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CDB0:
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, di
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add di, 2
|
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CDC4:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp si, 1Ch
|
|
|
|
|
jl short loc_CD7A
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 200
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
|
|
|
|
graph_accesspage al
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
|
|
|
|
freePISlotLarge 1
|
|
|
|
|
freePISlotLarge 2
|
|
|
|
|
freePISlotLarge 3
|
|
|
|
|
freePISlotLarge 4
|
|
|
|
|
freePISlotLarge 5
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.demo_num], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_CE50
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aOp_1, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CE50:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aOp1_pi_1
|
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_CEAA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CE8B:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov Palettes[bx].r, 255
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov Palettes[bx].g, 255
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, si
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov Palettes[bx].b, 255
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEAA:
|
2019-11-26 21:47:07 +00:00
|
|
|
|
cmp si, PALETTE_COLORS
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_CE8B
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 100
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor si, si
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov [bp+var_3], 240
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_CEE8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEC7:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, [bp+var_3]
|
2019-11-26 21:47:07 +00:00
|
|
|
|
mov Palettes[0 * size rgb_t].r, al
|
|
|
|
|
mov Palettes[0 * size rgb_t].g, al
|
|
|
|
|
mov Palettes[0 * size rgb_t].b, al
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
mov al, [bp+var_3]
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add al, -16
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_3], al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEE8:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp si, 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_CEC7
|
|
|
|
|
xor si, si
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov [bp+var_3], 252
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_CF4E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEF5:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov di, 1
|
|
|
|
|
jmp short loc_CF34
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEFA:
|
2019-11-26 21:47:07 +00:00
|
|
|
|
mov [bp+@@component], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_CF2D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF01:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, di
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
|
|
|
|
add bx, [bp+@@component]
|
2017-01-11 15:12:39 +00:00
|
|
|
|
mov al, _pi_headers._palette[bx]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, di
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
|
|
|
|
add bx, [bp+@@component]
|
|
|
|
|
cmp al, Palettes[bx].r
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnb short loc_CF2A
|
|
|
|
|
mov bx, di
|
2019-11-26 21:47:07 +00:00
|
|
|
|
imul bx, size rgb_t
|
|
|
|
|
add bx, [bp+@@component]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, [bp+var_3]
|
2019-11-26 21:47:07 +00:00
|
|
|
|
mov Palettes[bx].r, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF2A:
|
2019-11-26 21:47:07 +00:00
|
|
|
|
inc [bp+@@component]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF2D:
|
2019-11-26 21:47:07 +00:00
|
|
|
|
cmp [bp+@@component], size rgb_t
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_CF01
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF34:
|
2019-11-26 21:47:07 +00:00
|
|
|
|
cmp di, PALETTE_COLORS
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_CEFA
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc si
|
|
|
|
|
mov al, [bp+var_3]
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add al, -4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_3], al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF4E:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp si, 63
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_CEF5
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_palette_apply pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
2019-12-08 05:32:01 +00:00
|
|
|
|
op_animate endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_CF5E proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
enter 0Ah, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2019-12-29 15:10:44 +00:00
|
|
|
|
call hmem_allocbyte pascal, (((256 / 8) * 8) + ((8 / 8) * 244)) * 4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov word ptr dword_132BA+2, ax
|
|
|
|
|
mov word ptr dword_132BA, 0
|
2019-12-29 15:10:44 +00:00
|
|
|
|
call hmem_allocbyte pascal, (((256 / 8) * 8) + ((8 / 8) * 244)) * 4
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov word ptr dword_132BE+2, ax
|
|
|
|
|
mov word ptr dword_132BE, 0
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov di, (44 * ROW_SIZE) + (40 / 8)
|
|
|
|
|
mov [bp+var_8], (44 * ROW_SIZE) + (328 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp loc_D050
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CF98:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
mov [bp+var_6], di
|
|
|
|
|
mov ax, [bp+var_8]
|
|
|
|
|
mov [bp+var_A], ax
|
|
|
|
|
jmp loc_D03E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CFA9:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_6]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_A]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_6]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_A]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_6]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_A]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_6]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_A]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
inc [bp+var_6]
|
|
|
|
|
inc [bp+var_A]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D03E:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp [bp+var_4], (256 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl loc_CFA9
|
|
|
|
|
inc [bp+var_2]
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add di, ROW_SIZE
|
|
|
|
|
add [bp+var_8], ROW_SIZE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D050:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp [bp+var_2], 8
|
|
|
|
|
jl loc_CF98
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp loc_D0F2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D060:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BA
|
|
|
|
|
mov es:[bx+si], al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov al, es:[bx]
|
|
|
|
|
les bx, dword_132BE
|
|
|
|
|
mov es:[bx+si], al
|
|
|
|
|
inc si
|
|
|
|
|
inc [bp+var_2]
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add di, ROW_SIZE
|
|
|
|
|
add [bp+var_8], ROW_SIZE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D0F2:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp [bp+var_2], 244
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl loc_D060
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_CF5E endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D0FF proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_6 = dword ptr -6
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
cmp [bp+arg_0], 0
|
|
|
|
|
jnz short loc_D114
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov dx, (44 * ROW_SIZE) + ( 40 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov eax, dword_132BA
|
|
|
|
|
jmp short loc_D11B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D114:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov dx, (44 * ROW_SIZE) + (328 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov eax, dword_132BE
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D11B:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_6], eax
|
|
|
|
|
xor cx, cx
|
|
|
|
|
jmp short loc_D18A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D123:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
mov di, dx
|
|
|
|
|
jmp short loc_D180
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D12C:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D180:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp [bp+var_2], (256 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D12C
|
|
|
|
|
inc cx
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add dx, ROW_SIZE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D18A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
cmp cx, 8
|
|
|
|
|
jl short loc_D123
|
|
|
|
|
xor cx, cx
|
|
|
|
|
jmp short loc_D1E7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D193:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, dx
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, dx
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, dx
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, dx
|
|
|
|
|
push es
|
|
|
|
|
les si, [bp+var_6]
|
|
|
|
|
mov al, es:[si]
|
|
|
|
|
pop es
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
inc word ptr [bp+var_6]
|
|
|
|
|
inc cx
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add dx, ROW_SIZE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D1E7:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp cx, 244
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D193
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_D0FF endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D1F3 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push word ptr dword_132BA+2
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push word ptr dword_132BE+2
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_D1F3 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-07 10:37:53 +00:00
|
|
|
|
darken_pic proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_6 = dword ptr -6
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
cmp [bp+arg_0], 0
|
|
|
|
|
jnz short loc_D21B
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov si, (52 * ROW_SIZE) + ( 48 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D21E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D21B:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
mov si, (52 * ROW_SIZE) + (336 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D21E:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_6], 0AAAAAAAAh
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_D273
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D235:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
test di, 1
|
|
|
|
|
jnz short loc_D243
|
|
|
|
|
mov eax, 0AAAAAAAAh
|
|
|
|
|
jmp short loc_D249
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D243:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov eax, 55555555h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D249:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_6], eax
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_D269
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D254:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add bx, si
|
|
|
|
|
mov eax, [bp+var_6]
|
|
|
|
|
mov es:[bx], eax
|
|
|
|
|
add [bp+var_2], 4
|
|
|
|
|
add si, 4
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D269:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp [bp+var_2], (256 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D254
|
|
|
|
|
inc di
|
2019-12-29 15:10:44 +00:00
|
|
|
|
add si, ROW_SIZE - (256 / 8)
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D273:
|
2019-12-29 15:10:44 +00:00
|
|
|
|
cmp di, 244
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D235
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
2019-12-07 10:37:53 +00:00
|
|
|
|
darken_pic endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D285 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_0]
|
|
|
|
|
mov ax, si
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D29B
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_D2A0
|
|
|
|
|
jmp short loc_D2A3
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D29B:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov di, 80
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D2A3
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2A0:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov di, 368
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2A3:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov [bp+var_2], 312
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
|
|
|
|
push 0Fh
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_NAME_AND_TITLE[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
2019-12-21 17:08:24 +00:00
|
|
|
|
add ax, 40
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 0Fh
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_TYPE[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
sub ax, si
|
|
|
|
|
mov si, ax
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D2F2
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_D2F7
|
|
|
|
|
jmp short loc_D2FA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2F2:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov di, 80
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D2FA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2F7:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov di, 368
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2FA:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_NAME_AND_TITLE[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
2019-12-21 17:08:24 +00:00
|
|
|
|
add ax, 40
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 3
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_TYPE[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_D285 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D338 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov ax, [bp+arg_0]
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D34B
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_D350
|
|
|
|
|
jmp short loc_D353
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D34B:
|
2019-11-10 23:18:22 +00:00
|
|
|
|
mov si, 80
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D353
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D350:
|
2019-11-10 23:18:22 +00:00
|
|
|
|
mov si, 368
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D353:
|
2019-11-10 23:18:22 +00:00
|
|
|
|
mov di, 312
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [si+8]
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+200]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+72]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
|
|
|
|
push di
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+192]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+64]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
|
|
|
|
sub_D338 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D3A2 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-28 22:28:10 +00:00
|
|
|
|
cmp playchar_132B8, PLAYCHAR_REIMU
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D407
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_noalpha_8 pascal, large (40 shl 16) or 44, 40
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
|
|
|
|
call sub_D0FF
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_noalpha_8 pascal, large (336 shl 16) or 52, 41
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call darken_pic
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2019-11-10 23:18:22 +00:00
|
|
|
|
call grcg_byteboxfill_x pascal, ((296 / 8) shl 16) or 52, ((296 / 8) shl 16) or 287
|
|
|
|
|
call grcg_byteboxfill_x pascal, (( 48 / 8) shl 16) or 288, ((296 / 8) shl 16) or 295
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 0
|
|
|
|
|
jmp short loc_D460
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D407:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_noalpha_8 pascal, large (328 shl 16) or 44, 41
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 0
|
|
|
|
|
call sub_D0FF
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_noalpha_8 pascal, large (48 shl 16) or 52, 40
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 0
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call darken_pic
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2019-11-10 23:18:22 +00:00
|
|
|
|
call grcg_byteboxfill_x pascal, ((584 / 8) shl 16) or 52, ((584 / 8) shl 16) or 287
|
|
|
|
|
call grcg_byteboxfill_x pascal, ((336 / 8) shl 16) or 288, ((584 / 8) shl 16) or 295
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D460:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D285
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_D3A2 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D465 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_5 = byte ptr -5
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_0]
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.stage], STAGE_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D47E
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov ax, RANK_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D488
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D47E:
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov al, es:[bx+resident_t.rank]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D488:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_4], ax
|
|
|
|
|
mov ax, di
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D498
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_D4A1
|
|
|
|
|
jmp short loc_D4A8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D498:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov si, 312
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov [bp+var_5], SCOREDAT_CLEARED_A
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D4A8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D4A1:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov si, 336
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov [bp+var_5], SCOREDAT_CLEARED_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D4A8:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov [bp+var_2], 320
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-28 22:28:10 +00:00
|
|
|
|
imul ax, RANK_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add ax, [bp+var_4]
|
|
|
|
|
mov dl, [bp+var_5]
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
test _cleared_with[bx], dl
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D4E5
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_2]
|
2019-12-21 17:08:24 +00:00
|
|
|
|
add ax, -8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
push ax
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aStar
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D4E5:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
push ax
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 15
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 3
|
|
|
|
|
mov dx, di
|
|
|
|
|
shl dx, 2
|
|
|
|
|
add ax, dx
|
|
|
|
|
mov bx, ax
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_SHOT[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
sub ax, di
|
|
|
|
|
mov di, ax
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D51F
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_D528
|
|
|
|
|
jmp short loc_D52F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D51F:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov si, 312
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov [bp+var_5], SCOREDAT_CLEARED_A
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D52F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D528:
|
2019-12-21 17:08:24 +00:00
|
|
|
|
mov si, 336
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov [bp+var_5], SCOREDAT_CLEARED_B
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D52F:
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
2019-12-28 22:28:10 +00:00
|
|
|
|
imul ax, RANK_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
add ax, [bp+var_4]
|
|
|
|
|
mov dl, [bp+var_5]
|
|
|
|
|
mov bx, ax
|
2019-12-28 22:28:10 +00:00
|
|
|
|
test _cleared_with[bx], dl
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D567
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_2]
|
2019-12-21 17:08:24 +00:00
|
|
|
|
add ax, -8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
push ax
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 15
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aStar
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2019-11-25 08:44:38 +00:00
|
|
|
|
mov _graph_putsa_fx_func, 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D567:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 8
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 3
|
|
|
|
|
mov dx, di
|
|
|
|
|
shl dx, 2
|
|
|
|
|
add ax, dx
|
|
|
|
|
mov bx, ax
|
2019-12-21 17:08:24 +00:00
|
|
|
|
pushd aPLAYCHAR_SHOT[bx]
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_D465 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D595 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2019-11-10 23:18:22 +00:00
|
|
|
|
mov si, 312
|
|
|
|
|
mov di, 320
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [si+8]
|
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+199]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+31]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [di+8]
|
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+32]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+199]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+55]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2019-11-10 23:18:22 +00:00
|
|
|
|
push 136
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [si+8]
|
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
push 327
|
|
|
|
|
lea ax, [si+31]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 2
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
|
|
|
|
push si
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+192]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+23]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push di
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+24]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [di+192]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
2019-11-10 23:18:22 +00:00
|
|
|
|
lea ax, [si+47]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2019-11-10 23:18:22 +00:00
|
|
|
|
push 128
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push si
|
2019-11-10 23:18:22 +00:00
|
|
|
|
push 319
|
|
|
|
|
lea ax, [si+23]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 8
|
2014-09-01 19:08:57 +00:00
|
|
|
|
call grcg_round_boxfill
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2019-12-21 17:08:24 +00:00
|
|
|
|
push 152
|
2014-06-29 14:51:19 +00:00
|
|
|
|
lea ax, [si+4]
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGtgugegfgGuvSi ; "<22>T<EFBFBD>u<EFBFBD>E<EFBFBD>F<EFBFBD>|<7C><><EFBFBD>̑I<CC91><49>"
|
2019-11-24 13:32:32 +00:00
|
|
|
|
call graph_putsa_fx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_D595 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D650 proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2019-12-28 22:28:10 +00:00
|
|
|
|
cmp playchar_132B8, PLAYCHAR_REIMU
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D664
|
2017-01-22 21:23:15 +00:00
|
|
|
|
push (184 shl 16) or 44
|
|
|
|
|
push 40
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D66C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D664:
|
2017-01-22 21:23:15 +00:00
|
|
|
|
push (184 shl 16) or 44
|
|
|
|
|
push 41
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D66C:
|
2020-09-19 16:41:48 +00:00
|
|
|
|
call cdg_put_noalpha_8
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
|
2019-11-10 23:18:22 +00:00
|
|
|
|
call grcg_byteboxfill_x pascal, ((440 / 8) shl 16) or 52, ((440 / 8) shl 16) or 287
|
|
|
|
|
call grcg_byteboxfill_x pascal, ((192 / 8) shl 16) or 288, ((440 / 8) shl 16) or 295
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D595
|
|
|
|
|
mov al, byte_132B9
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_D465
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_D650 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-07 10:37:53 +00:00
|
|
|
|
playchar_menu_init proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_load pascal, 0, ds, offset aSlb1_pi
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
|
|
|
|
graph_showpage 0
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_palette_apply pascal, 0
|
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_CF5E
|
|
|
|
|
push 0
|
|
|
|
|
call sub_D338
|
|
|
|
|
push 1
|
|
|
|
|
call sub_D338
|
|
|
|
|
call sub_D3A2
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2019-12-07 10:37:53 +00:00
|
|
|
|
playchar_menu_init endp
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2019-12-07 10:37:53 +00:00
|
|
|
|
playchar_menu proc near
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
var_2 = byte ptr -2
|
2019-12-07 10:37:53 +00:00
|
|
|
|
@@input_locked = byte ptr -1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2020-01-02 19:55:22 +00:00
|
|
|
|
cmp es:[bx+resident_t.stage], STAGE_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D78D
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_D786
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D71D:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
2019-12-29 11:14:54 +00:00
|
|
|
|
mov si, RANK_NORMAL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D735
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D726:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, di
|
2019-12-28 22:28:10 +00:00
|
|
|
|
imul bx, RANK_COUNT
|
|
|
|
|
mov al, _cleared_with[bx+si]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
and al, 1
|
|
|
|
|
or [bp+var_2], al
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D735:
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp si, RANK_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D726
|
|
|
|
|
mov bx, di
|
|
|
|
|
add bx, bx
|
|
|
|
|
push bx
|
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jz short loc_D74A
|
|
|
|
|
mov ax, 1
|
|
|
|
|
jmp short loc_D74C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D74A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D74C:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bx
|
2019-12-29 11:14:54 +00:00
|
|
|
|
mov _selectable_with[SHOTTYPE_A][bx], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov [bp+var_2], 0
|
2019-12-29 11:14:54 +00:00
|
|
|
|
mov si, RANK_NORMAL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D769
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D75A:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov bx, di
|
2019-12-28 22:28:10 +00:00
|
|
|
|
imul bx, RANK_COUNT
|
|
|
|
|
mov al, _cleared_with[bx+si]
|
2014-06-29 14:51:19 +00:00
|
|
|
|
and al, 2
|
|
|
|
|
or [bp+var_2], al
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D769:
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp si, RANK_EXTRA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D75A
|
|
|
|
|
mov bx, di
|
|
|
|
|
add bx, bx
|
|
|
|
|
push bx
|
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jz short loc_D77E
|
|
|
|
|
mov ax, 1
|
|
|
|
|
jmp short loc_D780
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D77E:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D780:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop bx
|
2019-12-29 11:14:54 +00:00
|
|
|
|
mov _selectable_with[SHOTTYPE_B][bx], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D786:
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp di, PLAYCHAR_COUNT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jl short loc_D71D
|
|
|
|
|
jmp short loc_D7A1
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D78D:
|
2019-12-29 11:14:54 +00:00
|
|
|
|
mov _selectable_with[PLAYCHAR_REIMU * PLAYCHAR_COUNT][SHOTTYPE_A], 1
|
|
|
|
|
mov _selectable_with[PLAYCHAR_REIMU * PLAYCHAR_COUNT][SHOTTYPE_B], 1
|
|
|
|
|
mov _selectable_with[PLAYCHAR_MARISA * PLAYCHAR_COUNT][SHOTTYPE_A], 1
|
|
|
|
|
mov _selectable_with[PLAYCHAR_MARISA * PLAYCHAR_COUNT][SHOTTYPE_B], 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7A1:
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[PLAYCHAR_REIMU * PLAYCHAR_COUNT][SHOTTYPE_A], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D7AF
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[PLAYCHAR_REIMU * PLAYCHAR_COUNT][SHOTTYPE_B], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D7B3
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7AF:
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, PLAYCHAR_REIMU
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D7B5
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7B3:
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, PLAYCHAR_MARISA
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7B5:
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov playchar_132B8, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7B8:
|
2019-12-07 10:37:53 +00:00
|
|
|
|
call playchar_menu_init
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7BB:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-12-07 10:37:53 +00:00
|
|
|
|
cmp [bp+@@input_locked], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz loc_D8DF
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_LEFT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D7D6
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_RIGHT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D84C
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D7D6:
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 1
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
2019-12-28 22:28:10 +00:00
|
|
|
|
sub al, playchar_132B8
|
|
|
|
|
mov playchar_132B8, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[SHOTTYPE_A][bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D816
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[SHOTTYPE_B][bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D816
|
|
|
|
|
mov al, 1
|
2019-12-28 22:28:10 +00:00
|
|
|
|
sub al, playchar_132B8
|
|
|
|
|
mov playchar_132B8, al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D816:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D3A2
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 1
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D84C:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D85A
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D8B2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D85A:
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 11
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D87F
|
|
|
|
|
mov al, 0
|
|
|
|
|
jmp short loc_D881
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D87F:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D881:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov byte_132B9, al
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2019-12-28 22:45:48 +00:00
|
|
|
|
mov PaletteTone, 200
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2017-01-11 15:12:39 +00:00
|
|
|
|
call pi_put pascal, large 0, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D650
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:52:29 +00:00
|
|
|
|
call palette_white_in
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8B0:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D8F4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8B2:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D8D7
|
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D1F3
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
jmp loc_DA0D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8D7:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
mov al, _key_det.lo
|
2019-12-07 10:37:53 +00:00
|
|
|
|
mov [bp+@@input_locked], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_D8EA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8DF:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D8EA
|
2019-12-07 10:37:53 +00:00
|
|
|
|
mov [bp+@@input_locked], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8EA:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_D7BB
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D8F4:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2019-12-07 10:37:53 +00:00
|
|
|
|
cmp [bp+@@input_locked], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz loc_D9F8
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_UP
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D90F
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_DOWN
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D986
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D90F:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
sub al, byte_132B9
|
|
|
|
|
mov byte_132B9, al
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov dl, byte_132B9
|
|
|
|
|
mov dh, 0
|
|
|
|
|
add ax, dx
|
|
|
|
|
mov bx, ax
|
2019-12-29 11:14:54 +00:00
|
|
|
|
cmp _selectable_with[bx], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_D939
|
|
|
|
|
mov al, 1
|
|
|
|
|
sub al, byte_132B9
|
|
|
|
|
mov byte_132B9, al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D939:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, byte_132B9
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_D465
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 1
|
2019-12-28 21:05:25 +00:00
|
|
|
|
call graph_copy_page pascal, 0
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 1
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D986:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_OK
|
2019-12-07 10:37:53 +00:00
|
|
|
|
jnz short @@z_pressed
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.lo, low INPUT_SHOT
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D9D5
|
|
|
|
|
|
2019-12-07 10:37:53 +00:00
|
|
|
|
@@z_pressed:
|
2020-09-06 16:13:07 +00:00
|
|
|
|
call _snd_se_reset
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_play pascal, 11
|
2020-09-18 11:58:58 +00:00
|
|
|
|
call _snd_se_update
|
2019-12-30 14:48:17 +00:00
|
|
|
|
les bx, _resident
|
2014-06-29 14:51:19 +00:00
|
|
|
|
mov al, byte_132B9
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.shottype], al
|
2019-12-28 22:28:10 +00:00
|
|
|
|
mov al, playchar_132B8
|
|
|
|
|
add al, '0'
|
2020-01-02 19:55:22 +00:00
|
|
|
|
mov es:[bx+resident_t.playchar_ascii], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 14:51:19 +00:00
|
|
|
|
call sub_D1F3
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
jmp short loc_DA0D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D9D5:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
test _key_det.hi, high INPUT_CANCEL
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jz short loc_D9F0
|
|
|
|
|
call sub_D1F3
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_D7B8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D9F0:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
mov al, _key_det.lo
|
2019-12-07 10:37:53 +00:00
|
|
|
|
mov [bp+@@input_locked], al
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp short loc_DA03
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D9F8:
|
2019-11-30 15:15:03 +00:00
|
|
|
|
cmp _key_det, INPUT_NONE
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jnz short loc_DA03
|
2019-12-07 10:37:53 +00:00
|
|
|
|
mov [bp+@@input_locked], 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_DA03:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 14:51:19 +00:00
|
|
|
|
jmp loc_D8B0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_DA0D:
|
2014-06-29 14:51:19 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
2019-12-07 10:37:53 +00:00
|
|
|
|
playchar_menu endp
|
2014-11-22 08:29:09 +00:00
|
|
|
|
db 0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2015-02-21 11:47:24 +00:00
|
|
|
|
op_01_TEXT ends
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2020-09-05 21:22:20 +00:00
|
|
|
|
seg2 segment word public 'CODE' use16
|
|
|
|
|
assume cs:seg2
|
2014-11-22 08:29:09 +00:00
|
|
|
|
;org 2
|
2015-02-18 11:07:37 +00:00
|
|
|
|
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
[Reverse-engineering] 32-bit VRAM plane pointers
I've looked at every openly available piece of PC-98 documentation, and there
don't seem to be any official names for the individual planes. The closest
thing I could find was the description at
http://island.geocities.jp/cklouch/column/pc98bas/pc98disphw2.htm
explaining that they represent the blue, red, green, and brightness component
when using the default PC-98 palette. However, these planes correspond to
nothing else but the 4 individual bits of the final index into the color
palette, and you can assign any color to every single palette slot. Therefore,
it's merely a convention that your own palettes don't have to follow (and in
Touhou, they don't).
Nevertheless, there doesn't seem to be an alternative, and the Neko Project II
source code uses the same B/R/G/E convention, so I'll go with that as well.
2015-02-10 22:43:34 +00:00
|
|
|
|
include th01/hardware/vram_planes_set.asm
|
2015-02-23 09:29:12 +00:00
|
|
|
|
include th02/hardware/frame_delay.asm
|
2017-01-11 15:12:39 +00:00
|
|
|
|
include th02/formats/pi_palette_apply.asm
|
|
|
|
|
include th02/formats/pi_put.asm
|
|
|
|
|
include th02/formats/pi_load.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
db 0
|
2017-01-07 21:30:46 +00:00
|
|
|
|
include th03/formats/hfliplut.asm
|
2018-09-17 20:10:42 +00:00
|
|
|
|
include th04/hardware/input_wait.asm
|
2017-01-08 20:01:13 +00:00
|
|
|
|
include th04/math/vector1_at.asm
|
|
|
|
|
include th04/math/vector2_at.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/pmd_res.asm
|
|
|
|
|
include th02/snd/mmd_res.asm
|
2015-03-15 22:26:44 +00:00
|
|
|
|
include th04/snd/kajaint.asm
|
2017-01-25 22:54:06 +00:00
|
|
|
|
include th04/formats/cdg_put_nocolors.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/detmodes.asm
|
2019-11-24 07:49:46 +00:00
|
|
|
|
include th03/snd/delaymea.asm
|
2019-11-19 14:26:47 +00:00
|
|
|
|
include th02/exit_dos.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/load.asm
|
2019-11-25 08:44:38 +00:00
|
|
|
|
include th04/hardware/grppsafx.asm
|
2017-01-21 17:10:53 +00:00
|
|
|
|
include th04/formats/cdg_put.asm
|
2019-11-19 14:26:47 +00:00
|
|
|
|
include th02/exit.asm
|
2019-11-19 14:26:47 +00:00
|
|
|
|
include th02/initop.asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
db 0
|
2017-01-22 21:23:15 +00:00
|
|
|
|
include th04/formats/cdg_put_noalpha.asm
|
2018-09-11 17:34:19 +00:00
|
|
|
|
include th04/hardware/input_sense.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/se.asm
|
2019-12-07 07:37:29 +00:00
|
|
|
|
include th04/hardware/egccopyr.asm
|
|
|
|
|
even
|
2019-12-08 12:09:13 +00:00
|
|
|
|
include th04/bgimage.asm
|
|
|
|
|
include th04/bgimage_put_rect.asm
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th04/formats/cdg_load.asm
|
2015-03-03 09:20:20 +00:00
|
|
|
|
extern FRAME_DELAY_2:proc
|
2020-09-05 21:22:20 +00:00
|
|
|
|
seg2 ends
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2015-02-18 11:07:37 +00:00
|
|
|
|
.data
|
2014-08-19 20:33:43 +00:00
|
|
|
|
|
2020-02-22 11:55:34 +00:00
|
|
|
|
include th03/formats/cfg[data].asm
|
2019-12-08 05:32:01 +00:00
|
|
|
|
_menu_sel db 0
|
|
|
|
|
_quit db 0
|
|
|
|
|
_main_menu_unused_1 db 1
|
2019-12-21 17:08:24 +00:00
|
|
|
|
public _MENU_DESC
|
|
|
|
|
_MENU_DESC label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aGqbGav ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aGgglgxgggigxge ; "<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 aMNVGngcgxgrgav ; "<22><><EFBFBD>݂̃n<CC83>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>\\<5C><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aIKyoVU ; "<22><><EFBFBD>y<EFBFBD><79><EFBFBD>ɓ<EFBFBD><C993><EFBFBD><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aKeoarTsv ; "<22>e<EFBFBD><65><EFBFBD>ݒ<EFBFBD><DD92><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aVcvnvrvCVsvV ; "<22>c<EFBFBD>n<EFBFBD>r<EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>"
|
2014-09-18 15:20:12 +00:00
|
|
|
|
dd aUqiUxv ; "<22><><EFBFBD>Փx<D593><78><EFBFBD>₳<EFBFBD><E282B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>i<EFBFBD><69><EFBFBD>S<EFBFBD>Ҍ<EFBFBD><D28C><EFBFBD><EFBFBD>A<EFBFBD>E...
|
|
|
|
|
dd aUqiUxv_1 ; "<22><><EFBFBD>Փx<D593><78><EFBFBD>W<EFBFBD><57><EFBFBD>ɂ<EFBFBD><C982>܂<EFBFBD><DC82>@<40>@<40>@<40>i<EFBFBD><69><EFBFBD>ʌ<EFBFBD><CA8C><EFBFBD><EFBFBD>A<EFBFBD>E...
|
|
|
|
|
dd aUqiUxv_0 ; "<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 aUqiUxv_2 ; "<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 aGqbGagxgBGgouv ; "<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 aGGavOgcpi ; "<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...
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aVavfvlvCmvVVV ; "<22>a<EFBFBD>f<EFBFBD>l<EFBFBD>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>"
|
|
|
|
|
dd aVavfvlvVqvuvji ; "<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 aVavfvlvVwvuiMM ; "<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 aM_0 ; "<22><><EFBFBD>ʉ<EFBFBD><CA89>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>"
|
|
|
|
|
dd aM_2 ; "<22><><EFBFBD>ʉ<EFBFBD><CA89>ɂe<C982>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aM_1 ; "<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>"
|
2014-09-18 15:20:12 +00:00
|
|
|
|
dd aUgtevSVvpPkvBa ; "<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 aPicacovV ; "<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...
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aVVGigvgvgzguv ; "<22><><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>ĕW<C495><57><EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>"
|
|
|
|
|
dd aGigvgvgzguv ; "<22>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>"
|
|
|
|
|
dd aGqbGav_0 ; "<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 aGqbGav_1 ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>m<EFBFBD>[<5B>}<7D><><EFBFBD>j"
|
|
|
|
|
dd aGqbGav_2 ; "<22>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD><DC82>i<EFBFBD>n<EFBFBD>[<5B>h<EFBFBD>j"
|
|
|
|
|
dd aGqbGav_3 ; "<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"
|
2019-12-08 05:32:01 +00:00
|
|
|
|
_main_menu_initialized db 0
|
|
|
|
|
_option_initialized db 0
|
2020-02-22 11:55:34 +00:00
|
|
|
|
public _cfg_fn
|
|
|
|
|
_cfg_fn db 'MIKO.CFG',0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
; char aMain[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aMain db 'main',0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
; char path[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
path db 'deb',0
|
|
|
|
|
aGqbGav db '<27>Q<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aGgglgxgggigxge 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
|
|
|
|
|
aMNVGngcgxgrgav db '<27><><EFBFBD>݂̃n<CC83>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aIKyoVU db '<27><><EFBFBD>y<EFBFBD><79><EFBFBD>ɓ<EFBFBD><C993><EFBFBD><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aKeoarTsv db '<27>e<EFBFBD><65><EFBFBD>ݒ<EFBFBD><DD92><EFBFBD><EFBFBD>ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aVcvnvrvCVsvV db '<27>c<EFBFBD>n<EFBFBD>r<EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD>',0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
aUqiUxv db '<27><><EFBFBD>Փx<D593><78><EFBFBD>₳<EFBFBD><E282B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>@<40>i<EFBFBD><69><EFBFBD>S<EFBFBD>Ҍ<EFBFBD><D28C><EFBFBD><EFBFBD>A<EFBFBD>T<EFBFBD>ʃG<CA83><47><EFBFBD>h<EFBFBD>j',0
|
|
|
|
|
aUqiUxv_1 db '<27><><EFBFBD>Փx<D593><78><EFBFBD>W<EFBFBD><57><EFBFBD>ɂ<EFBFBD><C982>܂<EFBFBD><DC82>@<40>@<40>@<40>i<EFBFBD><69><EFBFBD>ʌ<EFBFBD><CA8C><EFBFBD><EFBFBD>A<EFBFBD>S<EFBFBD>U<EFBFBD>ʁj<CA81>@<40>@',0
|
|
|
|
|
aUqiUxv_0 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<EFBFBD>@<40>@',0
|
|
|
|
|
aUqiUxv_2 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<EFBFBD>@<40>@',0
|
|
|
|
|
aGqbGagxgBGgouv 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
|
|
|
|
|
aGGavOgcpi 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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aVavfvlvCmvVVV db '<27>a<EFBFBD>f<EFBFBD>l<EFBFBD>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
|
|
|
|
|
aVavfvlvVqvuvji 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
|
|
|
|
|
aVavfvlvVwvuiMM 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
|
|
|
|
|
aM_0 db '<27><><EFBFBD>ʉ<EFBFBD><CA89>͗<EFBFBD><CD97><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
|
|
|
|
|
aM_2 db '<27><><EFBFBD>ʉ<EFBFBD><CA89>ɂe<C982>l<EFBFBD><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aM_1 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
|
2014-06-29 14:51:19 +00:00
|
|
|
|
aUgtevSVvpPkvBa 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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aPicacovV 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
|
|
|
|
|
aVVGigvgvgzguv 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
|
|
|
|
|
aGigvgvgzguv db '<27>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>',0
|
|
|
|
|
aGqbGav_0 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
|
|
|
|
|
aGqbGav_1 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
|
|
|
|
|
aGqbGav_2 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
|
|
|
|
|
aGqbGav_3 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
|
|
|
|
|
aOp db 'op',0
|
|
|
|
|
aMSzlEd_dat db '<27><><EFBFBD>z<EFBFBD><7A>ed.dat',0
|
|
|
|
|
asc_F7F7 db 0Ah
|
2014-06-29 14:51:19 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aGameft_bft db 'GAMEFT.bft',0
|
|
|
|
|
aMiko db 'miko',0
|
2014-08-26 05:25:43 +00:00
|
|
|
|
include libs/master.lib/atrtcmod[data].asm
|
2014-08-23 10:08:48 +00:00
|
|
|
|
include libs/master.lib/bfnt_id[data].asm
|
2014-08-27 20:57:18 +00:00
|
|
|
|
include libs/master.lib/clip[data].asm
|
2014-08-27 22:05:06 +00:00
|
|
|
|
include libs/master.lib/edges[data].asm
|
2014-08-30 05:49:51 +00:00
|
|
|
|
include libs/master.lib/fil[data].asm
|
2014-08-21 20:07:58 +00:00
|
|
|
|
include libs/master.lib/dos_ropen[data].asm
|
2014-08-14 12:30:48 +00:00
|
|
|
|
include libs/master.lib/get_machine_98[data].asm
|
2014-08-14 11:57:40 +00:00
|
|
|
|
include libs/master.lib/get_machine_at[data].asm
|
2014-08-31 08:23:41 +00:00
|
|
|
|
include libs/master.lib/gaiji_backup[data].asm
|
2014-08-31 08:08:09 +00:00
|
|
|
|
include libs/master.lib/gaiji_entry_bfnt[data].asm
|
2014-08-27 03:42:48 +00:00
|
|
|
|
include libs/master.lib/grp[data].asm
|
2018-04-15 14:05:57 +00:00
|
|
|
|
include libs/master.lib/js[data].asm
|
2014-08-14 10:09:09 +00:00
|
|
|
|
include libs/master.lib/machine[data].asm
|
2014-08-23 13:47:05 +00:00
|
|
|
|
include libs/master.lib/pal[data].asm
|
2014-08-27 00:40:09 +00:00
|
|
|
|
include libs/master.lib/pf[data].asm
|
2014-08-30 10:13:04 +00:00
|
|
|
|
include libs/master.lib/rand[data].asm
|
2014-08-28 05:54:38 +00:00
|
|
|
|
include libs/master.lib/sin8[data].asm
|
2014-08-15 12:26:44 +00:00
|
|
|
|
include libs/master.lib/tx[data].asm
|
2014-08-26 20:52:26 +00:00
|
|
|
|
include libs/master.lib/vs[data].asm
|
2014-08-27 23:37:48 +00:00
|
|
|
|
include libs/master.lib/wordmask[data].asm
|
2014-08-21 20:53:12 +00:00
|
|
|
|
include libs/master.lib/mem[data].asm
|
2014-08-23 16:07:02 +00:00
|
|
|
|
include libs/master.lib/super_entry_bfnt[data].asm
|
2014-08-22 20:31:44 +00:00
|
|
|
|
include libs/master.lib/superpa[data].asm
|
2014-09-03 13:23:51 +00:00
|
|
|
|
include libs/master.lib/respal_exist[data].asm
|
2014-08-31 16:08:50 +00:00
|
|
|
|
include libs/master.lib/draw_trapezoid[data].asm
|
2014-11-17 03:54:40 +00:00
|
|
|
|
include th02/formats/pfopen[data].asm
|
2014-08-26 04:18:06 +00:00
|
|
|
|
include libs/master.lib/bgm_timerhook[data].asm
|
2014-08-25 20:32:21 +00:00
|
|
|
|
include libs/master.lib/bgm[data].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/se_priority[data].asm
|
|
|
|
|
include th04/snd/snd[data].asm
|
2014-06-29 14:51:19 +00:00
|
|
|
|
db 0
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/load[data].asm
|
2019-11-25 08:44:38 +00:00
|
|
|
|
include th04/hardware/grppsafx[data].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th03/snd/se_state[data].asm
|
2019-12-08 12:09:13 +00:00
|
|
|
|
include th04/bgimage[data].asm
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th03/formats/cdg[data].asm
|
2019-12-21 20:15:20 +00:00
|
|
|
|
include th04/setup[data].asm
|
2019-12-01 11:03:31 +00:00
|
|
|
|
include th04/zunsoft[data].asm
|
2019-12-05 02:53:01 +00:00
|
|
|
|
public _MUSIC_TITLES
|
|
|
|
|
_MUSIC_TITLES label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aNo_1MSzlBLotus ; "No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story"
|
|
|
|
|
dd aNo_2WitchingDr ; "No.2 Witching Dream "
|
|
|
|
|
dd aNo_3SeleneSLig ; "No.3 Selene's light "
|
|
|
|
|
dd aNo_4Sxp ; "No.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Decoration Battle"
|
|
|
|
|
dd aNo_5BreakTheSa ; "No.5 Break the Sabbath "
|
|
|
|
|
dd aNo_6NglLBScarl ; "No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme "
|
|
|
|
|
dd aNo_7BadApple ; "No.7 Bad Apple!! "
|
|
|
|
|
dd aNo_8CRab@bPerd ; "No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis "
|
|
|
|
|
dd aNo_9GagkgxgGgg ; "No.9 <20>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> "
|
|
|
|
|
dd aNo_10Pnpcuyszl ; "No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio "
|
|
|
|
|
dd aNo_11RpvKab@bC ; "No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star "
|
|
|
|
|
dd aNo_12LotusLove ; "No.12 Lotus Love "
|
|
|
|
|
dd aNo_13CVVslXBSl ; "No.13 <20><><EFBFBD><EFBFBD><EFBFBD>鋰<EFBFBD>| <20>`Sleeping Terror"
|
|
|
|
|
dd aNo_14DreamLand ; "No.14 Dream Land "
|
|
|
|
|
dd aNo_15ChcB@bIna ; "No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream "
|
|
|
|
|
dd aNo_16LVVVsv ; "No.16 <20>ւ<EFBFBD><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>V<EFBFBD>Y "
|
|
|
|
|
dd aNo_17GbgcghmSz ; "No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic"
|
|
|
|
|
dd aNo_18Vivavvvvi ; "No.18 <20><><EFBFBD>킢<EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence "
|
|
|
|
|
dd aNo_19Days ; "No.19 Days "
|
|
|
|
|
dd aNo_20Peaceful ; "No.20 Peaceful "
|
|
|
|
|
dd aNo_21ArcadianD ; "No.21 Arcadian Dream "
|
|
|
|
|
dd aNo_22MSzvPzrl ; "No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l "
|
|
|
|
|
dd asc_105B2 ; " "
|
|
|
|
|
dd aB@b@vpvxvivf ; " <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
2019-12-05 02:53:01 +00:00
|
|
|
|
public _MUSIC_FILES
|
|
|
|
|
_MUSIC_FILES label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aOp_2 ; "op"
|
|
|
|
|
dd aSt00 ; "st00"
|
|
|
|
|
dd aSt10 ; "st10"
|
|
|
|
|
dd aSt00b ; "st00b"
|
|
|
|
|
dd aSt01 ; "st01"
|
|
|
|
|
dd aSt01b ; "st01b"
|
|
|
|
|
dd aSt02 ; "st02"
|
|
|
|
|
dd aSt02b ; "st02b"
|
|
|
|
|
dd aSt03 ; "st03"
|
|
|
|
|
dd aSt03c ; "st03c"
|
|
|
|
|
dd aSt03b ; "st03b"
|
|
|
|
|
dd aSt04 ; "st04"
|
|
|
|
|
dd aSt04b ; "st04b"
|
|
|
|
|
dd aSt05 ; "st05"
|
|
|
|
|
dd aSt05b ; "st05b"
|
|
|
|
|
dd aSt06 ; "st06"
|
|
|
|
|
dd aSt06b ; "st06b"
|
|
|
|
|
dd aSt06c ; "st06c"
|
|
|
|
|
dd aEnd1 ; "end1"
|
|
|
|
|
dd aEnd2 ; "end2"
|
|
|
|
|
dd aStaff ; "staff"
|
|
|
|
|
dd aName_0 ; "name"
|
2017-01-09 20:10:33 +00:00
|
|
|
|
include th02/music/polygons[data].asm
|
|
|
|
|
music_track_playing db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aNo_1MSzlBLotus db 'No.1 <20><><EFBFBD>z<EFBFBD><7A> <20>` Lotus Land Story',0
|
|
|
|
|
aNo_2WitchingDr db 'No.2 Witching Dream ',0
|
|
|
|
|
aNo_3SeleneSLig db 'No.3 Selene',27h,'s light ',0
|
|
|
|
|
aNo_4Sxp db 'No.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Decoration Battle',0
|
|
|
|
|
aNo_5BreakTheSa db 'No.5 Break the Sabbath ',0
|
|
|
|
|
aNo_6NglLBScarl db 'No.6 <20>g<EFBFBD><67><EFBFBD><EFBFBD> <20>` Scarlet Phoneme ',0
|
|
|
|
|
aNo_7BadApple db 'No.7 Bad Apple!! ',0
|
|
|
|
|
aNo_8CRab@bPerd db 'No.8 <20><><EFBFBD><EFBFBD><EFBFBD>@<40>` Perdition crisis ',0
|
|
|
|
|
aNo_9GagkgxgGgg db 'No.9 <20>A<EFBFBD><41><EFBFBD>X<EFBFBD>}<7D>G<EFBFBD>X<EFBFBD>e<EFBFBD><65> ',0
|
|
|
|
|
aNo_10Pnpcuyszl db 'No.10 <20><><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>z<EFBFBD>ȁ@<40>` Capriccio ',0
|
|
|
|
|
aNo_11RpvKab@bC db 'No.11 <20><><EFBFBD>̊<EFBFBD><CC8A>@<40>` Casket of Star ',0
|
|
|
|
|
aNo_12LotusLove db 'No.12 Lotus Love ',0
|
|
|
|
|
aNo_13CVVslXBSl db 'No.13 <20><><EFBFBD><EFBFBD><EFBFBD>鋰<EFBFBD>| <20>`Sleeping Terror',0
|
|
|
|
|
aNo_14DreamLand db 'No.14 Dream Land ',0
|
|
|
|
|
aNo_15ChcB@bIna db 'No.15 <20>H<EFBFBD><48><EFBFBD>@<40>` Inanimate Dream ',0
|
|
|
|
|
aNo_16LVVVsv db 'No.16 <20>ւ<EFBFBD><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>V<EFBFBD>Y ',0
|
|
|
|
|
aNo_17GbgcghmSz db 'No.17 <20><><EFBFBD>C<EFBFBD>h<EFBFBD><68><EFBFBD>z<EFBFBD>@<40>` Icemilk Magic',0
|
|
|
|
|
aNo_18Vivavvvvi db 'No.18 <20><><EFBFBD>킢<EFBFBD><ED82A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>` Innocence ',0
|
|
|
|
|
aNo_19Days db 'No.19 Days ',0
|
|
|
|
|
aNo_20Peaceful db 'No.20 Peaceful ',0
|
|
|
|
|
aNo_21ArcadianD db 'No.21 Arcadian Dream ',0
|
|
|
|
|
aNo_22MSzvPzrl db 'No.22 <20><><EFBFBD>z<EFBFBD>̏Z<CC8F>l ',0
|
|
|
|
|
asc_105B2 db ' ',0
|
|
|
|
|
aB@b@vpvxvivf db ' <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
|
|
|
|
aOp_2 db 'op',0
|
|
|
|
|
aSt00 db 'st00',0
|
|
|
|
|
aSt10 db 'st10',0
|
|
|
|
|
aSt00b db 'st00b',0
|
|
|
|
|
aSt01 db 'st01',0
|
|
|
|
|
aSt01b db 'st01b',0
|
|
|
|
|
aSt02 db 'st02',0
|
|
|
|
|
aSt02b db 'st02b',0
|
|
|
|
|
aSt03 db 'st03',0
|
|
|
|
|
aSt03c db 'st03c',0
|
|
|
|
|
aSt03b db 'st03b',0
|
|
|
|
|
aSt04 db 'st04',0
|
|
|
|
|
aSt04b db 'st04b',0
|
|
|
|
|
aSt05 db 'st05',0
|
|
|
|
|
aSt05b db 'st05b',0
|
|
|
|
|
aSt06 db 'st06',0
|
|
|
|
|
aSt06b db 'st06b',0
|
|
|
|
|
aSt06c db 'st06c',0
|
|
|
|
|
aEnd1 db 'end1',0
|
|
|
|
|
aEnd2 db 'end2',0
|
|
|
|
|
aStaff db 'staff',0
|
|
|
|
|
aName_0 db 'name',0
|
2014-12-24 20:39:34 +00:00
|
|
|
|
include th04/music/music_cmt_load[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aMusic_pi db 'music.pi',0
|
|
|
|
|
aGensou_scr db 'GENSOU.SCR',0
|
|
|
|
|
aName db 'name',0
|
|
|
|
|
aHi01_pi db 'hi01.pi',0
|
|
|
|
|
aOp1_pi_0 db 'op1.pi',0
|
|
|
|
|
aOp_0 db 'op',0
|
|
|
|
|
aScnum_bft db 'scnum.bft',0
|
|
|
|
|
aHi_m_bft db 'hi_m.bft',0
|
|
|
|
|
db 0
|
|
|
|
|
aSft1_cd2 db 'sft1.cd2',0
|
|
|
|
|
aSft2_cd2 db 'sft2.cd2',0
|
|
|
|
|
aCar_cd2 db 'car.cd2',0
|
|
|
|
|
aSl_cd2 db 'sl.cd2',0
|
|
|
|
|
aOp5b_pi db 'op5b.pi',0
|
|
|
|
|
aOp4b_pi db 'op4b.pi',0
|
|
|
|
|
aOp3b_pi db 'op3b.pi',0
|
|
|
|
|
aOp2b_pi db 'op2b.pi',0
|
|
|
|
|
aOp1b_pi db 'op1b.pi',0
|
|
|
|
|
aOp0b_pi db 'op0b.pi',0
|
|
|
|
|
aOp_1 db 'op',0
|
|
|
|
|
aOp1_pi_1 db 'op1.pi',0
|
2014-06-29 14:51:19 +00:00
|
|
|
|
db 0
|
2019-12-21 17:08:24 +00:00
|
|
|
|
aPLAYCHAR_NAME_AND_TITLE label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aB@focasCBiiPcv ; "<22>@<40><><EFBFBD><EFBFBD><EFBFBD>˖<EFBFBD><CB96>i<EFBFBD>ޏ<EFBFBD><DE8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j "
|
2019-12-21 17:08:24 +00:00
|
|
|
|
aPLAYCHAR_TYPE label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aNlfINumvmB@ ; " <09>L<EFBFBD>͈͍U<CD8D><55><EFBFBD>^<5E>@ "
|
|
|
|
|
dd aCIjcvcanBicvc@ ; " <20><><EFBFBD>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD>@<40>g<EFBFBD><67><EFBFBD>j"
|
|
|
|
|
dd aNumvcPdolm ; " <09>U<EFBFBD><55><EFBFBD>͏d<CD8F><64><EFBFBD>^ "
|
2019-12-21 17:08:24 +00:00
|
|
|
|
aPLAYCHAR_SHOT label dword
|
2014-06-29 14:51:19 +00:00
|
|
|
|
dd aB@GtbGGvgzgbgg ; "<22>@ <20>T<EFBFBD>[<5B>`<60>V<EFBFBD><56><EFBFBD>b<EFBFBD>g<EFBFBD>@ "
|
|
|
|
|
dd aGpgcghgvgzgbgg ; " <20><><EFBFBD>C<EFBFBD>h<EFBFBD>V<EFBFBD><56><EFBFBD>b<EFBFBD>g "
|
|
|
|
|
dd aGcgkgebGwgzgug ; "<22>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B>U<EFBFBD>["
|
|
|
|
|
dd aGigsgbghgvgzgb ; " <20><><EFBFBD>s<EFBFBD>b<EFBFBD>h<EFBFBD>V<EFBFBD><56><EFBFBD>b<EFBFBD>g "
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aB@focasCBiiPcv db '<27>@<40><><EFBFBD><EFBFBD><EFBFBD>˖<EFBFBD><CB96>i<EFBFBD>ޏ<EFBFBD><DE8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j ',0
|
|
|
|
|
aNlfINumvmB@ db ' <20>L<EFBFBD>͈͍U<CD8D><55><EFBFBD>^<5E>@ ',0
|
|
|
|
|
aCIjcvcanBicvc@ db ' <20><><EFBFBD>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD>@<40>g<EFBFBD><67><EFBFBD>j',0
|
|
|
|
|
aNumvcPdolm db ' <20>U<EFBFBD><55><EFBFBD>͏d<CD8F><64><EFBFBD>^ ',0
|
|
|
|
|
aB@GtbGGvgzgbgg db '<27>@ <20>T<EFBFBD>[<5B>`<60>V<EFBFBD><56><EFBFBD>b<EFBFBD>g<EFBFBD>@ ',0
|
|
|
|
|
aGpgcghgvgzgbgg db ' <20><><EFBFBD>C<EFBFBD>h<EFBFBD>V<EFBFBD><56><EFBFBD>b<EFBFBD>g ',0
|
|
|
|
|
aGcgkgebGwgzgug db '<27>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B>U<EFBFBD>[',0
|
|
|
|
|
aGigsgbghgvgzgb db ' <20><><EFBFBD>s<EFBFBD>b<EFBFBD>h<EFBFBD>V<EFBFBD><56><EFBFBD>b<EFBFBD>g ',0
|
|
|
|
|
aStar db '<27><>',0
|
|
|
|
|
aGtgugegfgGuvSi db '<27>T<EFBFBD>u<EFBFBD>E<EFBFBD>F<EFBFBD>|<7C><><EFBFBD>̑I<CC91><49>',0
|
|
|
|
|
aSlb1_pi db 'slb1.pi',0
|
2014-08-17 21:55:59 +00:00
|
|
|
|
|
2015-02-18 11:07:37 +00:00
|
|
|
|
.data?
|
|
|
|
|
|
2019-12-30 14:48:17 +00:00
|
|
|
|
public _resident
|
|
|
|
|
_resident dd ?
|
2019-12-08 05:32:01 +00:00
|
|
|
|
_in_option db ?
|
2015-02-18 11:07:37 +00:00
|
|
|
|
db ?
|
2019-12-08 05:32:01 +00:00
|
|
|
|
_putfunc dw ?
|
|
|
|
|
_main_input_allowed db ?
|
|
|
|
|
_option_input_allowed db ?
|
2014-08-27 20:57:18 +00:00
|
|
|
|
include libs/master.lib/clip[bss].asm
|
2014-08-30 05:49:51 +00:00
|
|
|
|
include libs/master.lib/fil[bss].asm
|
2018-04-15 14:05:57 +00:00
|
|
|
|
include libs/master.lib/js[bss].asm
|
2014-08-23 13:47:05 +00:00
|
|
|
|
include libs/master.lib/pal[bss].asm
|
2014-08-26 20:52:26 +00:00
|
|
|
|
include libs/master.lib/vs[bss].asm
|
2014-08-26 21:58:08 +00:00
|
|
|
|
include libs/master.lib/vsync[bss].asm
|
2014-08-21 20:53:12 +00:00
|
|
|
|
include libs/master.lib/mem[bss].asm
|
2014-08-22 20:31:44 +00:00
|
|
|
|
include libs/master.lib/superpa[bss].asm
|
2014-08-31 02:46:46 +00:00
|
|
|
|
include libs/master.lib/super_put_rect[bss].asm
|
[Reverse-engineering] 32-bit VRAM plane pointers
I've looked at every openly available piece of PC-98 documentation, and there
don't seem to be any official names for the individual planes. The closest
thing I could find was the description at
http://island.geocities.jp/cklouch/column/pc98bas/pc98disphw2.htm
explaining that they represent the blue, red, green, and brightness component
when using the default PC-98 palette. However, these planes correspond to
nothing else but the 4 individual bits of the final index into the color
palette, and you can assign any color to every single palette slot. Therefore,
it's merely a convention that your own palettes don't have to follow (and in
Touhou, they don't).
Nevertheless, there doesn't seem to be an alternative, and the Neko Project II
source code uses the same B/R/G/E convention, so I'll go with that as well.
2015-02-10 22:43:34 +00:00
|
|
|
|
include th01/hardware/vram_planes[bss].asm
|
2014-11-16 03:00:41 +00:00
|
|
|
|
include libs/master.lib/pfint21[bss].asm
|
2014-11-18 16:56:13 +00:00
|
|
|
|
include th02/formats/pi_slots[bss].asm
|
2017-01-07 21:30:46 +00:00
|
|
|
|
include th03/formats/hfliplut[bss].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/interrupt[bss].asm
|
2014-08-25 20:32:21 +00:00
|
|
|
|
include libs/master.lib/bgm[bss].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th02/snd/load[bss].asm
|
2019-11-23 17:56:00 +00:00
|
|
|
|
include th04/mem[bss].asm
|
2018-09-11 17:34:19 +00:00
|
|
|
|
include th04/hardware/input[bss].asm
|
2019-12-07 07:37:29 +00:00
|
|
|
|
include th04/hardware/egccopyr[bss].asm
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th04/formats/cdg[bss].asm
|
2019-12-29 14:25:34 +00:00
|
|
|
|
include th04/setup[bss].asm
|
2018-03-21 22:20:04 +00:00
|
|
|
|
include th04/zunsoft[bss].asm
|
2020-03-21 15:21:33 +00:00
|
|
|
|
db 56 dup(?)
|
2019-11-25 11:09:11 +00:00
|
|
|
|
include th02/music/music[bss].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_12DBE db ?
|
2014-06-29 14:51:19 +00:00
|
|
|
|
db ? ;
|
2019-12-21 09:30:02 +00:00
|
|
|
|
include th03/music/cmt_back[bss].asm
|
2014-12-24 20:39:34 +00:00
|
|
|
|
include th02/music/music_cmt[bss].asm
|
2019-12-26 16:19:44 +00:00
|
|
|
|
include th04/formats/scoredat_op[bss].asm
|
2019-03-01 15:16:54 +00:00
|
|
|
|
_rank db ?
|
2019-12-28 22:28:10 +00:00
|
|
|
|
public _cleared_with
|
|
|
|
|
_cleared_with label byte
|
|
|
|
|
_cleared_with_reimu db RANK_COUNT dup (?)
|
|
|
|
|
_cleared_with_marisa db RANK_COUNT dup (?)
|
2019-12-08 05:32:01 +00:00
|
|
|
|
_extra_unlocked db ?
|
2020-03-21 15:21:33 +00:00
|
|
|
|
db 49 dup(?)
|
2019-12-28 22:28:10 +00:00
|
|
|
|
playchar_132B8 db ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_132B9 db ?
|
|
|
|
|
dword_132BA dd ?
|
|
|
|
|
dword_132BE dd ?
|
2019-12-29 11:14:54 +00:00
|
|
|
|
extern _selectable_with:byte
|
2014-06-29 14:51:19 +00:00
|
|
|
|
|
2015-02-19 06:46:36 +00:00
|
|
|
|
end
|