[Reduction] [th04/th05] Redefined GRCG mode/color setting functions

Funded by -Tom-.
This commit is contained in:
nmlgc 2018-12-06 20:11:13 +01:00
parent 70d1e1c230
commit d08a7f49b6
8 changed files with 273 additions and 354 deletions

24
th04/hardware/grcg.inc Normal file
View File

@ -0,0 +1,24 @@
; Redefined versions of master.lib's grcg_setmode() and grcg_setcolor().
GRCG_SETMODE_RMW_DEF macro instance
; void grcg_setmode_rmw(void);
public _grcg_setmode_rmw_&instance
_grcg_setmode_rmw_&instance proc near
GRCG_SETMODE_VIA_MOV al, GC_RMW
ret
_grcg_setmode_rmw_&instance endp
nop
endm
GRCG_SETCOLOR_DIRECT_NOINT_DEF macro instance
; Takes the GC_* color parameter in AH.
; void grcg_setcolor_direct_noint(void);
public _grcg_setcolor_direct_noint_&instance
_grcg_setcolor_direct_noint_&instance proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
ret
_grcg_setcolor_direct_noint_&instance endp
endm

View File

@ -0,0 +1,11 @@
GRCG_SETMODE_RMW_DEF 1
; void grcg_setmode_tdw(void)
public _grcg_setmode_tdw
_grcg_setmode_tdw proc near
GRCG_SETMODE_VIA_MOV al, GC_TDW
ret
_grcg_setmode_tdw endp
even
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1

View File

@ -0,0 +1,9 @@
; Takes the GC_* color parameter in AH.
; void grcg_setcolor_direct(void);
public _grcg_setcolor_direct
_grcg_setcolor_direct proc near
GRCG_SETCOLOR_DIRECT ah
ret
_grcg_setcolor_direct endp
even

View File

@ -2,6 +2,7 @@ GAME = 4
include defconv_pascal.inc include defconv_pascal.inc
include th04/formats/map.inc include th04/formats/map.inc
include th04/hardware/grcg.inc
include th04/hardware/input.inc include th04/hardware/input.inc
include th04/math/randring_next.inc include th04/math/randring_next.inc
include th04/math/motion.inc include th04/math/motion.inc

View File

@ -386,7 +386,7 @@ loc_ABD8:
call sub_10713 call sub_10713
call sub_10552 call sub_10552
call sub_10BFD call sub_10BFD
call sub_C156 call _grcg_setmode_rmw_1
call sub_13C5C call sub_13C5C
call sub_C2B2 call sub_C2B2
call sub_12DF0 call sub_12DF0
@ -2933,39 +2933,7 @@ sub_C148 proc near
retn retn
sub_C148 endp sub_C148 endp
include th04/hardware/grcg_modecol.asm
; =============== S U B R O U T I N E =======================================
sub_C156 proc near
GRCG_SETMODE_VIA_MOV al, GC_RMW
retn
sub_C156 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_C15C proc near
GRCG_SETMODE_VIA_MOV al, GC_TDW
retn
sub_C15C endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_C162 proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
retn
sub_C162 endp
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -2980,7 +2948,7 @@ var_2 = word ptr -2
push si push si
push di push di
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov si, 41F6h mov si, 41F6h
mov [bp+var_2], 0 mov [bp+var_2], 0
jmp short loc_C1F5 jmp short loc_C1F5
@ -3166,8 +3134,8 @@ sub_C266 endp
sub_C2B2 proc near sub_C2B2 proc near
push si push si
push di push di
mov ah, 0Ch mov ah, GC_BR
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
assume es:nothing assume es:nothing
@ -3449,7 +3417,7 @@ sub_C42C proc near
jnz short loc_C492 jnz short loc_C492
loc_C464: loc_C464:
call sub_C4C0 call _grcg_setcolor_direct
mov ch, 20h ; ' ' mov ch, 20h ; ' '
mov di, cs:word_C42A mov di, cs:word_C42A
cmp di, 7350h cmp di, 7350h
@ -3477,7 +3445,7 @@ loc_C48C:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_C492: loc_C492:
call sub_C4C0 call _grcg_setcolor_direct
mov ch, 20h ; ' ' mov ch, 20h ; ' '
mov di, cs:word_C42A mov di, cs:word_C42A
cmp di, 7350h cmp di, 7350h
@ -3502,17 +3470,7 @@ loc_C4B0:
retn 2 retn 2
sub_C42C endp sub_C42C endp
include th04/hardware/grcg_setcolor_direct.asm
; =============== S U B R O U T I N E =======================================
sub_C4C0 proc near
GRCG_SETCOLOR_DIRECT ah
retn
sub_C4C0 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -3870,8 +3828,8 @@ sub_C718 proc near
mov bp, sp mov bp, sp
push si push si
push di push di
mov ah, byte_25592 mov ah, grcgcolor_25592
call sub_C162 call _grcg_setcolor_direct_noint_1
mov si, 9594h mov si, 9594h
xor di, di xor di, di
jmp short loc_C742 jmp short loc_C742
@ -6243,7 +6201,7 @@ var_2 = word ptr -2
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
assume es:nothing assume es:nothing
call sub_C156 call _grcg_setmode_rmw_1
mov si, 4298h mov si, 4298h
mov [bp+var_6], 0 mov [bp+var_6], 0
jmp loc_D943 jmp loc_D943
@ -7663,7 +7621,7 @@ loc_E276:
mov al, frame_mod2 mov al, frame_mod2
add al, 8 add al, 8
mov ah, al mov ah, al
call sub_C162 call _grcg_setcolor_direct_noint_1
mov si, word ptr dword_2560C+2 mov si, word ptr dword_2560C+2
push 100h push 100h
call sub_BC10 call sub_BC10
@ -8499,9 +8457,9 @@ loc_E98E:
sar ax, 4 sar ax, 4
add ax, 0FFF0h add ax, 0FFF0h
mov di, ax mov di, ax
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, word_2671A mov ax, word_2671A
add ax, ax add ax, ax
mov dx, 50h ; 'P' mov dx, 50h ; 'P'
@ -8532,9 +8490,9 @@ loc_E9DD:
sar ax, 4 sar ax, 4
add ax, 10h add ax, 10h
mov di, ax mov di, ax
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
push si push si
push di push di
push 10h push 10h
@ -8552,9 +8510,9 @@ loc_EA0D:
sar ax, 4 sar ax, 4
add ax, 0FFF0h add ax, 0FFF0h
mov di, ax mov di, ax
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, word_2671A mov ax, word_2671A
shl ax, 3 shl ax, 3
add ax, 10h add ax, 10h
@ -8913,9 +8871,9 @@ var_2 = word ptr -2
enter 4, 0 enter 4, 0
push si push si
push di push di
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 9 mov ah, GC_RG
call sub_C162 call _grcg_setcolor_direct_noint_1
mov di, 1 mov di, 1
jmp short loc_ECC7 jmp short loc_ECC7
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -11605,9 +11563,9 @@ sub_1004D proc near
var_1 = byte ptr -1 var_1 = byte ptr -1
enter 2, 0 enter 2, 0
call sub_C15C call _grcg_setmode_tdw
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_1200A call sub_1200A
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 56 push (32 shl 16) or 56
@ -11615,7 +11573,7 @@ var_1 = byte ptr -1
call _cdg_put_noalpha call _cdg_put_noalpha
cmp byte_256A9, 50h ; 'P' cmp byte_256A9, 50h ; 'P'
ja short loc_10096 ja short loc_10096
mov byte_25592, 9 mov grcgcolor_25592, GC_RG
mov al, byte_256A9 mov al, byte_256A9
mov ah, 0 mov ah, 0
add ax, 0FFD0h add ax, 0FFD0h
@ -11659,9 +11617,9 @@ loc_10096:
call snd_se_play pascal, 9 call snd_se_play pascal, 9
loc_100FE: loc_100FE:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Eh mov ah, GC_B
call sub_C162 call _grcg_setcolor_direct_noint_1
push 0 push 0
call sub_1030D call sub_1030D
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
@ -11680,9 +11638,9 @@ var_2 = word ptr -2
enter 2, 0 enter 2, 0
push si push si
call sub_C15C call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_1200A call sub_1200A
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 56 push (32 shl 16) or 56
@ -11690,7 +11648,7 @@ var_2 = word ptr -2
call _cdg_put_noalpha call _cdg_put_noalpha
cmp byte_256A9, 50h ; 'P' cmp byte_256A9, 50h ; 'P'
ja short loc_1015E ja short loc_1015E
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
mov al, byte_256A9 mov al, byte_256A9
mov ah, 0 mov ah, 0
add ax, 0FFD0h add ax, 0FFD0h
@ -11763,9 +11721,9 @@ loc_101D7:
call snd_se_play pascal, 9 call snd_se_play pascal, 9
loc_101F4: loc_101F4:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 8 mov ah, GC_BRG
call sub_C162 call _grcg_setcolor_direct_noint_1
push 1 push 1
call sub_1030D call sub_1030D
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
@ -11881,7 +11839,7 @@ loc_102F2:
mov byte_256A8, 0 mov byte_256A8, 0
mov PaletteTone, 64h ; 'd' mov PaletteTone, 64h ; 'd'
mov byte_266D3, 1 mov byte_266D3, 1
mov byte_25592, 0Dh mov grcgcolor_25592, GC_R
loc_10307: loc_10307:
inc byte_256A9 inc byte_256A9
@ -12231,7 +12189,7 @@ sub_10552 proc near
push di push di
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
call sub_C156 call _grcg_setmode_rmw_1
cmp word_25608, 20h ; ' ' cmp word_25608, 20h ; ' '
jbe short loc_10569 jbe short loc_10569
call sub_E1F4 call sub_E1F4
@ -13083,7 +13041,7 @@ loc_10C65:
loc_10C6F: loc_10C6F:
cmp shot_level, 2 cmp shot_level, 2
jb loc_10D47 jb loc_10D47
call sub_C156 call _grcg_setmode_rmw_1
mov ax, word ptr dword_259AC mov ax, word ptr dword_259AC
sar ax, 4 sar ax, 4
mov di, ax mov di, ax
@ -13527,9 +13485,9 @@ loc_10F5E:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_10F80: loc_10F80:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_C162 call _grcg_setcolor_direct_noint_1
cmp stage_id, 5 cmp stage_id, 5
jnb short loc_10F99 jnb short loc_10F99
push 150A80h push 150A80h
@ -13549,7 +13507,7 @@ loc_10FA1:
push 16800002h push 16800002h
call sub_10EA5 call sub_10EA5
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, bgm_title_len sub ax, bgm_title_len
push ax push ax
@ -13670,9 +13628,9 @@ loc_110A1:
call text_putsa call text_putsa
loc_11107: loc_11107:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_C162 call _grcg_setcolor_direct_noint_1
cmp stage_id, 5 cmp stage_id, 5
jnb short loc_11120 jnb short loc_11120
push 150A80h push 150A80h
@ -13692,7 +13650,7 @@ loc_11128:
push 16800002h push 16800002h
call sub_10EA5 call sub_10EA5
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, bgm_title_len sub ax, bgm_title_len
push ax push ax
@ -13759,16 +13717,16 @@ loc_111BB:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_111D8: loc_111D8:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 30h ; '0' mov ax, 30h ; '0'
sub ax, word_259C6 sub ax, word_259C6
push ax push ax
push 16800002h push 16800002h
call sub_10EA5 call sub_10EA5
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_259C6 sub ax, word_259C6
push ax push ax
@ -13813,16 +13771,16 @@ loc_11237:
call text_putsa call text_putsa
loc_1127E: loc_1127E:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 30h ; '0' mov ax, 30h ; '0'
sub ax, word_259C6 sub ax, word_259C6
push ax push ax
push 16800002h push 16800002h
call sub_10EA5 call sub_10EA5
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_259C6 sub ax, word_259C6
push ax push ax
@ -14469,15 +14427,15 @@ var_2 = word ptr -2
mov [bp+var_2], ax mov [bp+var_2], ax
add si, 20h ; ' ' add si, 20h ; ' '
add di, 18h add di, 18h
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 7 mov ah, GC_I
call sub_C162 call _grcg_setcolor_direct_noint_1
push si push si
push di push di
push [bp+var_2] push [bp+var_2]
call grcg_circle call grcg_circle
mov ah, 6 mov ah, GC_BI
call sub_C162 call _grcg_setcolor_direct_noint_1
push si push si
push di push di
mov ax, [bp+var_2] mov ax, [bp+var_2]
@ -14553,9 +14511,9 @@ loc_118AE:
call super_put_1plane call super_put_1plane
loc_118BE: loc_118BE:
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 9 mov ah, GC_RG
call sub_C162 call _grcg_setcolor_direct_noint_1
mov [bp+var_A], 0B204h mov [bp+var_A], 0B204h
mov [bp+var_4], 0 mov [bp+var_4], 0
jmp short loc_11932 jmp short loc_11932
@ -14683,15 +14641,15 @@ var_2 = word ptr -2
mov [bp+var_2], ax mov [bp+var_2], ax
add si, 18h add si, 18h
add di, 8 add di, 8
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
push si push si
push di push di
push [bp+var_2] push [bp+var_2]
call grcg_circle call grcg_circle
mov ah, 9 mov ah, GC_RG
call sub_C162 call _grcg_setcolor_direct_noint_1
push si push si
push di push di
mov ax, [bp+var_2] mov ax, [bp+var_2]
@ -14938,9 +14896,9 @@ loc_11BD1:
jl loc_11B52 jl loc_11B52
cmp byte ptr [si], 0 cmp byte ptr [si], 0
jz short loc_11C16 jz short loc_11C16
call sub_C156 call _grcg_setmode_rmw_1
mov ah, 2 mov ah, GC_BGI
call sub_C162 call _grcg_setcolor_direct_noint_1
push word ptr [si+2] push word ptr [si+2]
push word ptr [si+4] push word ptr [si+4]
push word ptr [si+10h] push word ptr [si+10h]
@ -14948,7 +14906,7 @@ loc_11BD1:
cmp byte ptr [si], 1 cmp byte ptr [si], 1
jz short loc_11C16 jz short loc_11C16
mov ah, [si+18h] mov ah, [si+18h]
call sub_C162 call _grcg_setcolor_direct_noint_1
push word ptr [si+2] push word ptr [si+2]
push word ptr [si+4] push word ptr [si+4]
mov ax, [si+12h] mov ax, [si+12h]
@ -15333,7 +15291,7 @@ sub_11ECB proc near
mov byte_266D3, 0 mov byte_266D3, 0
mov byte_2CFF9, 0 mov byte_2CFF9, 0
mov word_2CFFC, 0 mov word_2CFFC, 0
mov byte_25592, 0Dh mov grcgcolor_25592, GC_R
push 200010h push 200010h
push 19F017Fh push 19F017Fh
call grc_setclip call grc_setclip
@ -15667,9 +15625,9 @@ arg_0 = byte ptr 4
push bp push bp
mov bp, sp mov bp, sp
call _cdg_put_noalpha pascal, [bp+@@x], [bp+@@y], 16 call _cdg_put_noalpha pascal, [bp+@@x], [bp+@@y], 16
call sub_C15C call _grcg_setmode_tdw
mov ah, [bp+arg_0] mov ah, [bp+arg_0]
call sub_C162 call _grcg_setcolor_direct_noint_1
call fp_2CDCC call fp_2CDCC
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
pop bp pop bp
@ -15907,9 +15865,9 @@ loc_122EB:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_12309: loc_12309:
call sub_C15C call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_BEDA call sub_BEDA
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (96 shl 16) or 72 push (96 shl 16) or 72
@ -15987,9 +15945,9 @@ loc_12378:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_12396: loc_12396:
call sub_C15C call _grcg_setmode_tdw
mov ah, 0 mov ah, GC_BRGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_BFF8 call sub_BFF8
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (128 shl 16) or 128 push (128 shl 16) or 128
@ -16148,7 +16106,7 @@ loc_1248C:
mov fp_2CF2C, offset sub_123F1 mov fp_2CF2C, offset sub_123F1
loc_12492: loc_12492:
call sub_C156 call _grcg_setmode_rmw_1
cmp byte_2CDD1, 80h cmp byte_2CDD1, 80h
jnb short loc_124A1 jnb short loc_124A1
mov al, byte_2CDD1 mov al, byte_2CDD1
@ -16163,8 +16121,8 @@ loc_124A7:
mov [bp+var_9], al mov [bp+var_9], al
cmp byte_2CDD0, 10h cmp byte_2CDD0, 10h
jnb short loc_124D7 jnb short loc_124D7
mov ah, 8 mov ah, GC_BRG
call sub_C162 call _grcg_setcolor_direct_noint_1
test byte_2CDD0, 1 test byte_2CDD0, 1
jz short loc_124C5 jz short loc_124C5
mov al, [bp+var_9] mov al, [bp+var_9]
@ -16186,8 +16144,8 @@ loc_124D2:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_124D7: loc_124D7:
mov ah, 9 mov ah, GC_RG
call sub_C162 call _grcg_setcolor_direct_noint_1
cmp byte_23242, 0 cmp byte_23242, 0
jnz short loc_12508 jnz short loc_12508
mov Palettes, 0 mov Palettes, 0
@ -16655,11 +16613,11 @@ var_1 = byte ptr -1
enter 2, 0 enter 2, 0
push si push si
push di push di
call sub_C15C call _grcg_setmode_tdw
cmp byte_26719, 0 cmp byte_26719, 0
jnz short loc_12921 jnz short loc_12921
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_1205A call sub_1205A
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
cmp word_2671A, 2 cmp word_2671A, 2
@ -16699,8 +16657,8 @@ loc_12921:
cwd cwd
idiv bx idiv bx
mov [bp+var_1], al mov [bp+var_1], al
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
cmp [bp+var_1], 8 cmp [bp+var_1], 8
jnb short loc_12944 jnb short loc_12944
call sub_1205A call sub_1205A
@ -16728,8 +16686,8 @@ loc_12958:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_12964: loc_12964:
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_1205A call sub_1205A
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
@ -16780,9 +16738,9 @@ loc_12996:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_129B4: loc_129B4:
call sub_C15C call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_C148 call sub_C148
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16 push (32 shl 16) or 16
@ -17341,10 +17299,10 @@ loc_12D96:
cmp byte_2CFFA, 0 cmp byte_2CFFA, 0
jnz short loc_12DBE jnz short loc_12DBE
mov ah, 0Fh mov ah, 0Fh
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_C99C call sub_C99C
mov ah, 9 mov ah, GC_RG
call sub_C162 call _grcg_setcolor_direct_noint_1
call sub_CA2E call sub_CA2E
jmp short loc_12DEC jmp short loc_12DEC
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -17743,10 +17701,10 @@ loc_13083:
jl short loc_130E9 jl short loc_130E9
cmp word_2671A, 60h cmp word_2671A, 60h
jge short loc_130E9 jge short loc_130E9
call sub_C156 call _grcg_setmode_rmw_1
cmp frame_mod2, 0 cmp frame_mod2, 0
jz short loc_130B6 jz short loc_130B6
mov ah, 9 mov ah, GC_RG
jmp short loc_130B8 jmp short loc_130B8
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -17754,7 +17712,7 @@ loc_130B6:
mov ah, 0Fh mov ah, 0Fh
loc_130B8: loc_130B8:
call sub_C162 call _grcg_setcolor_direct_noint_1
mov [bp+var_2], 0B204h mov [bp+var_2], 0B204h
xor si, si xor si, si
jmp short loc_130E4 jmp short loc_130E4
@ -18426,7 +18384,7 @@ loc_13C75:
jz short loc_13C8B jz short loc_13C8B
mov [bp+var_4], al mov [bp+var_4], al
mov ah, [bp+var_4] mov ah, [bp+var_4]
call sub_13EF6 call _grcg_setcolor_direct_noint_2
loc_13C8B: loc_13C8B:
xor di, di xor di, di
@ -18717,27 +18675,8 @@ sub_13E8C endp
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
nop nop
; =============== S U B R O U T I N E ======================================= GRCG_SETCOLOR_DIRECT_NOINT_DEF 2
GRCG_SETMODE_RMW_DEF 2
sub_13EF6 proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
retn
sub_13EF6 endp
; =============== S U B R O U T I N E =======================================
sub_13F10 proc near
GRCG_SETMODE_VIA_MOV al, GC_RMW
retn
sub_13F10 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -22812,7 +22751,7 @@ loc_16228:
push word ptr dword_266E4 ; jumptable 000161F6 case 17 push word ptr dword_266E4 ; jumptable 000161F6 case 17
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
mov byte_266E2, 2 mov byte_266E2, 2
mov byte_266EE, 10h mov byte_266EE, 10h
mov byte_266F2, 87h mov byte_266F2, 87h
@ -22988,7 +22927,7 @@ loc_163B5:
mov byte_25666, 64h ; 'd' mov byte_25666, 64h ; 'd'
loc_163C6: loc_163C6:
mov byte_25592, 0Fh ; jumptable 000163A9 cases 56,64,72,80 mov grcgcolor_25592, 0Fh ; jumptable 000163A9 cases 56,64,72,80
push word ptr dword_266E4 push word ptr dword_266E4
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C696 call sub_C696
@ -23133,7 +23072,7 @@ sub_1653D proc near
push word ptr dword_266E4 push word ptr dword_266E4
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
mov byte_2671E, 10h mov byte_2671E, 10h
mov byte_2D02D, 10h mov byte_2D02D, 10h
mov byte_266F2, 0FFh mov byte_266F2, 0FFh
@ -26287,7 +26226,7 @@ loc_18097:
push word ptr dword_2A8C6 ; jumptable 00018067 case 48 push word ptr dword_2A8C6 ; jumptable 00018067 case 48
push word ptr dword_2A8C6+2 push word ptr dword_2A8C6+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_180A9: locret_180A9:
leave ; default leave ; default
@ -27600,7 +27539,7 @@ loc_18AFA:
jl short loc_18AEC jl short loc_18AEC
inc byte ptr [si] inc byte ptr [si]
call snd_se_play pascal, 6 call snd_se_play pascal, 6
mov byte_25592, 9 mov grcgcolor_25592, GC_RG
push word ptr dword_266E4 push word ptr dword_266E4
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C64A call sub_C64A
@ -27734,7 +27673,7 @@ loc_18BF7:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
pop bp pop bp
retn retn
@ -27799,7 +27738,7 @@ loc_18C87:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
pop bp pop bp
retn retn
@ -27872,7 +27811,7 @@ loc_18D16:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
leave leave
retn retn
@ -28006,7 +27945,7 @@ loc_18E54:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
pop bp pop bp
retn retn
@ -28084,7 +28023,7 @@ loc_18EF8:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
pop bp pop bp
retn retn
@ -28170,7 +28109,7 @@ loc_18F9C:
add ax, 0FF60h add ax, 0FF60h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
call snd_se_play pascal, 8 call snd_se_play pascal, 8
pop bp pop bp
retn retn
@ -28664,7 +28603,7 @@ loc_19444:
push word ptr dword_2670A push word ptr dword_2670A
push word ptr dword_2670A+2 push word ptr dword_2670A+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
loc_1945E: loc_1945E:
cmp word_2671A, 40h cmp word_2671A, 40h
@ -28888,7 +28827,7 @@ loc_19656:
push word ptr dword_2670A push word ptr dword_2670A
push word ptr dword_2670A+2 push word ptr dword_2670A+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
jmp short loc_19682 jmp short loc_19682
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -29289,7 +29228,7 @@ loc_199DB:
push word ptr dword_266E4 push word ptr dword_266E4
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
loc_199ED: loc_199ED:
cmp frame_mod4, 0 cmp frame_mod4, 0
@ -29622,7 +29561,7 @@ loc_19D2B:
push word ptr dword_266E4 push word ptr dword_266E4
push word ptr dword_266E4+2 push word ptr dword_266E4+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
loc_19D44: loc_19D44:
cmp word_2671A, 80h cmp word_2671A, 80h
@ -31347,7 +31286,7 @@ loc_1A981:
push ax push ax
push word ptr dword_2A8C6+2 push word ptr dword_2A8C6+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_1A9A3: locret_1A9A3:
leave ; default leave ; default
@ -31430,7 +31369,7 @@ loc_1AA20:
push word ptr dword_2A8C6 ; jumptable 0001A9E9 case 64 push word ptr dword_2A8C6 ; jumptable 0001A9E9 case 64
push word ptr dword_2A8C6+2 push word ptr dword_2A8C6+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_1AA32: locret_1AA32:
leave ; default leave ; default
@ -31511,7 +31450,7 @@ loc_1AAAD:
add ax, 200h add ax, 200h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_1AAD2: locret_1AAD2:
leave ; default leave ; default
@ -31578,7 +31517,7 @@ loc_1AB38:
push word ptr dword_2A8C6 ; jumptable 0001AB04 case 32 push word ptr dword_2A8C6 ; jumptable 0001AB04 case 32
push word ptr dword_2A8C6+2 push word ptr dword_2A8C6+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_1AB4A: locret_1AB4A:
leave ; default leave ; default
@ -31737,7 +31676,7 @@ loc_1ACA5:
add ax, 280h add ax, 280h
push ax push ax
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
leave leave
retn retn
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -33664,7 +33603,7 @@ loc_1BE11:
push word ptr dword_2670A push word ptr dword_2670A
push word ptr dword_2670A+2 push word ptr dword_2670A+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
loc_1BE23: loc_1BE23:
mov byte_2A8D2, 7 mov byte_2A8D2, 7
@ -38881,7 +38820,7 @@ loc_1EA6F:
call sub_13B21 call sub_13B21
mov byte_26718, 81h mov byte_26718, 81h
call snd_se_play pascal, 8 call snd_se_play pascal, 8
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
jmp short loc_1EAF9 ; default jmp short loc_1EAF9 ; default
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -40597,7 +40536,7 @@ loc_1F955:
push word ptr dword_2A8C6 push word ptr dword_2A8C6
push word ptr dword_2A8C6+2 push word ptr dword_2A8C6+2
call sub_C696 call sub_C696
mov byte_25592, 0Fh mov grcgcolor_25592, 0Fh
locret_1F967: locret_1F967:
leave ; default leave ; default
@ -45875,7 +45814,7 @@ word_25534 dw ?
db ? ; db ? ;
byte_25590 db ? byte_25590 db ?
db ? db ?
byte_25592 db ? grcgcolor_25592 db ?
db ? db ?
byte_25594 db ? byte_25594 db ?
db ? db ?

View File

@ -2,6 +2,7 @@ GAME = 5
include defconv_pascal.inc include defconv_pascal.inc
include th04/formats/map.inc include th04/formats/map.inc
include th04/hardware/grcg.inc
include th04/hardware/input.inc include th04/hardware/input.inc
include th04/math/randring_next.inc include th04/math/randring_next.inc
include th04/math/motion.inc include th04/math/motion.inc

View File

@ -434,7 +434,7 @@ loc_AF2D:
call sub_EBB7 call sub_EBB7
call sub_125A3 call sub_125A3
call sub_12263 call sub_12263
call sub_E6E2 call _grcg_setmode_rmw_1
call fp_2D06C call fp_2D06C
call sub_FD33 call sub_FD33
call sub_16B4E call sub_16B4E
@ -916,7 +916,7 @@ loc_B3C5:
loc_B3CA: loc_B3CA:
nopcall sub_BF27 nopcall sub_BF27
mov word_2CC8E, 9 mov grcgcolor_2CC8E, GC_RG
mov al, stage_id mov al, stage_id
mov ah, 0 mov ah, 0
mov bx, ax mov bx, ax
@ -2729,8 +2729,8 @@ sub_C1B6 endp
sub_C202 proc near sub_C202 proc near
push si push si
push di push di
mov ah, 0Ch mov ah, GC_BR
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
mov di, 40h mov di, 40h
@ -3454,7 +3454,7 @@ sub_C73A proc near
call _cdg_put_noalpha call _cdg_put_noalpha
call sub_CEC2 call sub_CEC2
call sub_C567 call sub_C567
mov byte_2C92C, 9 mov grcgcolor_2C92C, GC_RG
cmp byte_2429B, 40h cmp byte_2429B, 40h
ja short loc_C777 ja short loc_C777
mov al, byte_2429B mov al, byte_2429B
@ -3640,7 +3640,7 @@ loc_C8CE:
loc_C8D4: loc_C8D4:
call far ptr palette_show call far ptr palette_show
call sub_E6E2 call _grcg_setmode_rmw_1
mov si, 38C2h mov si, 38C2h
xor di, di xor di, di
jmp loc_C98D jmp loc_C98D
@ -3660,8 +3660,8 @@ loc_C8E4:
idiv bx idiv bx
add ax, 10h add ax, 10h
mov [bp+var_4], ax mov [bp+var_4], ax
mov ah, 8 mov ah, GC_BRG
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, [si+6] mov ax, [si+6]
cwd cwd
sub ax, dx sub ax, dx
@ -3676,8 +3676,8 @@ loc_C8E4:
push ax push ax
push [bp+var_4] push [bp+var_4]
call grcg_boxfill call grcg_boxfill
mov ah, 9 mov ah, GC_RG
call sub_E6EE call _grcg_setcolor_direct_noint_1
dec [bp+var_6] dec [bp+var_6]
mov ax, [bp+var_2] mov ax, [bp+var_2]
sub ax, [bp+var_6] sub ax, [bp+var_6]
@ -3689,7 +3689,7 @@ loc_C8E4:
push [bp+var_4] push [bp+var_4]
call grcg_boxfill call grcg_boxfill
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
dec [bp+var_6] dec [bp+var_6]
mov ax, [bp+var_2] mov ax, [bp+var_2]
sub ax, [bp+var_6] sub ax, [bp+var_6]
@ -3946,8 +3946,8 @@ sub_CB30 proc near
push 0EE0150h push 0EE0150h
push 17Fh push 17Fh
call grcg_vline call grcg_vline
mov ah, 6 mov ah, GC_BI
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 0D00010h push 0D00010h
push 3Fh ; '?' push 3Fh ; '?'
call grcg_vline call grcg_vline
@ -3961,7 +3961,7 @@ sub_CB30 proc near
push 17Fh push 17Fh
call grcg_vline call grcg_vline
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_CA7B call sub_CA7B
mov al, byte_2429B mov al, byte_2429B
mov ah, 0 mov ah, 0
@ -4128,7 +4128,7 @@ sub_CD1C proc near
call _cdg_put_noalpha call _cdg_put_noalpha
call sub_CFBA call sub_CFBA
call sub_CC9E call sub_CC9E
mov byte_2C92C, 9 mov grcgcolor_2C92C, GC_RG
cmp byte_2429B, 40h cmp byte_2429B, 40h
ja short loc_CD59 ja short loc_CD59
mov al, byte_2429B mov al, byte_2429B
@ -4630,9 +4630,9 @@ arg_4 = word ptr 8
push bp push bp
mov bp, sp mov bp, sp
call _cdg_put_noalpha pascal, [bp+arg_4], [bp+arg_2], 16 call _cdg_put_noalpha pascal, [bp+arg_4], [bp+arg_2], 16
call sub_E6E8 call _grcg_setmode_tdw
mov ah, [bp+arg_0] mov ah, [bp+arg_0]
call sub_E6EE call _grcg_setcolor_direct_noint_1
call fp_2449A call fp_2449A
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
pop bp pop bp
@ -4732,9 +4732,9 @@ loc_D108:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_D124: loc_D124:
call sub_E6E8 call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_DEA6 call sub_DEA6
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16 push (32 shl 16) or 16
@ -4810,9 +4810,9 @@ loc_D194:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_D1B0: loc_D1B0:
call sub_E6E8 call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_DEB4 call sub_DEB4
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 221 push (32 shl 16) or 221
@ -4889,9 +4889,9 @@ loc_D220:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_D23E: loc_D23E:
call sub_E6E8 call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_DEC2 call sub_DEC2
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (96 shl 16) or 72 push (96 shl 16) or 72
@ -4964,9 +4964,9 @@ var_1 = byte ptr -1
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_D2C7: loc_D2C7:
call sub_E6E8 call _grcg_setmode_tdw
mov ah, 1 mov ah, GC_RGI
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_E01E call sub_E01E
GRCG_OFF_CLOBBERING dx GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16 push (32 shl 16) or 16
@ -5426,9 +5426,9 @@ loc_D62B:
loc_D630: loc_D630:
cmp di, 2 cmp di, 2
jl short loc_D5F1 jl short loc_D5F1
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 8 mov ah, GC_BRG
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_D327 call sub_D327
push 3AC0h push 3AC0h
push 12h push 12h
@ -5442,8 +5442,8 @@ loc_D630:
push 3B4Eh push 3B4Eh
push 0Ch push 0Ch
call sub_D4F8 call sub_D4F8
mov ah, 9 mov ah, GC_RG
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 6 push 6
call sub_D4F8 call sub_D4F8
@ -5451,7 +5451,7 @@ loc_D630:
push 6 push 6
call sub_D4F8 call sub_D4F8
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 0 push 0
call sub_D4F8 call sub_D4F8
@ -5690,9 +5690,9 @@ loc_D829:
jl short loc_D808 jl short loc_D808
loc_D82E: loc_D82E:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 8 mov ah, GC_BRG
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_D327 call sub_D327
push 3AC0h push 3AC0h
push 12h push 12h
@ -5706,8 +5706,8 @@ loc_D82E:
push 3B4Eh push 3B4Eh
push 0Ch push 0Ch
call sub_D4F8 call sub_D4F8
mov ah, 9 mov ah, GC_RG
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 6 push 6
call sub_D4F8 call sub_D4F8
@ -5715,7 +5715,7 @@ loc_D82E:
push 6 push 6
call sub_D4F8 call sub_D4F8
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 0 push 0
call sub_D4F8 call sub_D4F8
@ -5916,9 +5916,9 @@ loc_D9C1:
jl short loc_D9A0 jl short loc_D9A0
loc_D9C6: loc_D9C6:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 8 mov ah, GC_BRG
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_D327 call sub_D327
push 3AC0h push 3AC0h
push 12h push 12h
@ -5932,8 +5932,8 @@ loc_D9C6:
push 3B4Eh push 3B4Eh
push 0Ch push 0Ch
call sub_D4F8 call sub_D4F8
mov ah, 9 mov ah, GC_RG
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 6 push 6
call sub_D4F8 call sub_D4F8
@ -5941,7 +5941,7 @@ loc_D9C6:
push 6 push 6
call sub_D4F8 call sub_D4F8
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
push 3AC0h push 3AC0h
push 0 push 0
call sub_D4F8 call sub_D4F8
@ -6886,7 +6886,7 @@ sub_E02E proc near
jnz short loc_E094 jnz short loc_E094
loc_E066: loc_E066:
call sub_E0C2 call _grcg_setcolor_direct
mov ch, 20h ; ' ' mov ch, 20h ; ' '
mov di, cs:word_E02C mov di, cs:word_E02C
cmp di, 7350h cmp di, 7350h
@ -6914,7 +6914,7 @@ loc_E08E:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_E094: loc_E094:
call sub_E0C2 call _grcg_setcolor_direct
mov ch, 20h ; ' ' mov ch, 20h ; ' '
mov di, cs:word_E02C mov di, cs:word_E02C
cmp di, 7350h cmp di, 7350h
@ -6939,17 +6939,7 @@ loc_E0B2:
retn 2 retn 2
sub_E02E endp sub_E02E endp
include th04/hardware/grcg_setcolor_direct.asm
; =============== S U B R O U T I N E =======================================
sub_E0C2 proc near
GRCG_SETCOLOR_DIRECT ah
retn
sub_E0C2 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -7840,39 +7830,7 @@ sub_E696 endp
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
nop nop
include th04/hardware/grcg_modecol.asm
; =============== S U B R O U T I N E =======================================
sub_E6E2 proc near
GRCG_SETMODE_VIA_MOV al, GC_RMW
retn
sub_E6E2 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_E6E8 proc near
GRCG_SETMODE_VIA_MOV al, GC_TDW
retn
sub_E6E8 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_E6EE proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
retn
sub_E6EE endp
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -8516,7 +8474,7 @@ sub_EACE proc near
mov byte_25FE9, 0 mov byte_25FE9, 0
mov byte_2C978, 0 mov byte_2C978, 0
mov word_2C97A, 0 mov word_2C97A, 0
mov byte_2C92C, 0Dh mov grcgcolor_2C92C, GC_R
push 200010h push 200010h
push 19F017Fh push 19F017Fh
call grc_setclip call grc_setclip
@ -8824,8 +8782,8 @@ sub_ED54 proc near
mov bp, sp mov bp, sp
push si push si
push di push di
mov ah, byte_2C92C mov ah, grcgcolor_2C92C
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov si, 9D50h mov si, 9D50h
xor di, di xor di, di
jmp short loc_ED7E jmp short loc_ED7E
@ -9845,7 +9803,7 @@ var_2 = word ptr -2
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
assume es:nothing assume es:nothing
call sub_E6E2 call _grcg_setmode_rmw_1
mov si, 0BF5Ch mov si, 0BF5Ch
mov [bp+var_6], 0 mov [bp+var_6], 0
jmp loc_F5D8 jmp loc_F5D8
@ -10907,7 +10865,7 @@ loc_FD96:
cmp byte ptr [si+0Bh], 3 cmp byte ptr [si+0Bh], 3
jb short loc_FDF4 jb short loc_FDF4
mov ah, [si+1] mov ah, [si+1]
call sub_E6EE call _grcg_setcolor_direct_noint_1
cmp word ptr [si+6], 100h cmp word ptr [si+6], 100h
jg short loc_FDC2 jg short loc_FDC2
push [bp+var_4] push [bp+var_4]
@ -10949,7 +10907,7 @@ loc_FDF1:
loc_FDF4: loc_FDF4:
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
cmp word ptr [si+6], 100h cmp word ptr [si+6], 100h
jg short loc_FE11 jg short loc_FE11
push [bp+var_4] push [bp+var_4]
@ -11014,7 +10972,7 @@ loc_FE8A:
loc_FE9D: loc_FE9D:
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
shl [bp+var_A], 3 shl [bp+var_A], 3
push 48FEh push 48FEh
push word ptr [si+2] push word ptr [si+2]
@ -11132,7 +11090,7 @@ loc_FF96:
cmp byte ptr [di], 0 cmp byte ptr [di], 0
jz loc_1002D jz loc_1002D
mov ah, [di+1] mov ah, [di+1]
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov si, 0Fh mov si, 0Fh
jmp short loc_FFF0 jmp short loc_FFF0
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -11225,7 +11183,7 @@ var_2 = word ptr -2
push si push si
push di push di
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov si, 0C252h mov si, 0C252h
mov [bp+var_2], 0 mov [bp+var_2], 0
jmp short loc_100BC jmp short loc_100BC
@ -11412,10 +11370,10 @@ loc_101BD:
or ax, ax or ax, ax
jnz short loc_1018A jnz short loc_1018A
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_C054 call sub_C054
mov ah, byte ptr word_2CC8E mov ah, byte ptr grcgcolor_2CC8E
call sub_E6EE call _grcg_setcolor_direct_noint_1
call sub_C0E6 call sub_C0E6
jmp short loc_10210 jmp short loc_10210
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
@ -13343,7 +13301,7 @@ loc_11080:
cmp byte ptr [si], 1 cmp byte ptr [si], 1
jnz short loc_110B4 jnz short loc_110B4
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, [si+2] mov ax, [si+2]
sar ax, 4 sar ax, 4
add ax, 20h ; ' ' add ax, 20h ; ' '
@ -14724,9 +14682,9 @@ loc_11AD6:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_11AF8: loc_11AF8:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_E6EE call _grcg_setcolor_direct_noint_1
cmp stage_id, 5 cmp stage_id, 5
jnb short loc_11B11 jnb short loc_11B11
push 150A80h push 150A80h
@ -14746,7 +14704,7 @@ loc_11B19:
push 16800002h push 16800002h
call sub_11A1D call sub_11A1D
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_2CE6C sub ax, word_2CE6C
push ax push ax
@ -14828,9 +14786,9 @@ loc_11BDB:
call text_putsa pascal, ax, 23, dword_2CE96, TX_WHITE call text_putsa pascal, ax, 23, dword_2CE96, TX_WHITE
loc_11C2D: loc_11C2D:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_E6EE call _grcg_setcolor_direct_noint_1
cmp stage_id, 5 cmp stage_id, 5
jnb short loc_11C46 jnb short loc_11C46
push 150A80h push 150A80h
@ -14850,7 +14808,7 @@ loc_11C4E:
push 16800002h push 16800002h
call sub_11A1D call sub_11A1D
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_2CE6C sub ax, word_2CE6C
push ax push ax
@ -14917,16 +14875,16 @@ loc_11CE1:
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
loc_11CFE: loc_11CFE:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 30h ; '0' mov ax, 30h ; '0'
sub ax, word_2CE6E sub ax, word_2CE6E
push ax push ax
push 16800002h push 16800002h
call sub_11A1D call sub_11A1D
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_2CE6E sub ax, word_2CE6E
push ax push ax
@ -14959,16 +14917,16 @@ loc_11D53:
call text_putsa pascal, ax, 23, dword_2CE9A, TX_WHITE call text_putsa pascal, ax, 23, dword_2CE9A, TX_WHITE
loc_11D90: loc_11D90:
call sub_E6E2 call _grcg_setmode_rmw_1
mov ah, 0Bh mov ah, GC_G
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 30h ; '0' mov ax, 30h ; '0'
sub ax, word_2CE6E sub ax, word_2CE6E
push ax push ax
push 16800002h push 16800002h
call sub_11A1D call sub_11A1D
mov ah, 0Fh mov ah, 0Fh
call sub_E6EE call _grcg_setcolor_direct_noint_1
mov ax, 33h ; '3' mov ax, 33h ; '3'
sub ax, word_2CE6E sub ax, word_2CE6E
push ax push ax
@ -15516,7 +15474,7 @@ loc_122CB:
loc_122D5: loc_122D5:
cmp shot_level, 2 cmp shot_level, 2
jb loc_123A9 jb loc_123A9
call sub_E6E2 call _grcg_setmode_rmw_1
mov ax, word ptr dword_2CEB4 mov ax, word ptr dword_2CEB4
sar ax, 4 sar ax, 4
mov di, ax mov di, ax
@ -15901,7 +15859,7 @@ var_2 = word ptr -2
mov ax, 0A800h mov ax, 0A800h
mov es, ax mov es, ax
assume es:nothing assume es:nothing
call sub_E6E2 call _grcg_setmode_rmw_1
mov di, 0C4FAh mov di, 0C4FAh
mov [bp+var_2], 0 mov [bp+var_2], 0
jmp short loc_125F6 jmp short loc_125F6
@ -21925,21 +21883,8 @@ sub_159E6 endp
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
nop nop
; =============== S U B R O U T I N E ======================================= GRCG_SETCOLOR_DIRECT_NOINT_DEF 2
GRCG_SETMODE_RMW_DEF 2
sub_15A04 proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
retn
sub_15A04 endp
; ---------------------------------------------------------------------------
GRCG_SETMODE_VIA_MOV al, GC_RMW
retn
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================
@ -24152,7 +24097,7 @@ loc_16B67:
jz short loc_16B7D jz short loc_16B7D
mov [bp+var_4], al mov [bp+var_4], al
mov ah, [bp+var_4] mov ah, [bp+var_4]
call sub_15A04 call _grcg_setcolor_direct_noint_2
loc_16B7D: loc_16B7D:
xor di, di xor di, di
@ -35033,7 +34978,7 @@ var_2 = word ptr -2
call sub_15A42 call sub_15A42
mov ah, 0 mov ah, 0
mov [bp+var_2], ax mov [bp+var_2], ax
mov byte_2C92C, 9 mov grcgcolor_2C92C, GC_RG
mov si, 0B2AAh mov si, 0B2AAh
mov di, 1 mov di, 1
jmp short loc_1C89A jmp short loc_1C89A
@ -38711,7 +38656,7 @@ sub_1EA14 proc near
jnz short loc_1EA2E jnz short loc_1EA2E
mov byte_2D084, 40h mov byte_2D084, 40h
mov byte_2D083, 0 mov byte_2D083, 0
mov word_2CC8E, 7 mov grcgcolor_2CC8E, GC_I
loc_1EA2E: loc_1EA2E:
mov ax, boss_phase_frame mov ax, boss_phase_frame
@ -39905,7 +39850,7 @@ loc_1F51A:
call sub_1F23B call sub_1F23B
loc_1F523: loc_1F523:
mov word_2CC8E, 9 mov grcgcolor_2CC8E, GC_RG
mov word_2CE64, 0C8h mov word_2CE64, 0C8h
inc byte_2D07F inc byte_2D07F
jmp loc_1F666 jmp loc_1F666
@ -52969,7 +52914,7 @@ word_2C0C8 dw ?
dword_2C922 dd ? dword_2C922 dd ?
farfp_2C926 dd ? farfp_2C926 dd ?
word_2C92A dw ? word_2C92A dw ?
byte_2C92C db ? grcgcolor_2C92C db ?
db ? db ?
fp_2C92E dw ? fp_2C92E dw ?
dword_2C930 dd ? dword_2C930 dd ?
@ -53217,7 +53162,7 @@ word_2C9A0 dw ?
db ? ; db ? ;
byte_2CC8C db ? byte_2CC8C db ?
db ? db ?
word_2CC8E dw ? grcgcolor_2CC8E dw ?
dd ? ; dd ? ;
dd ? ; dd ? ;
dd ? ; dd ? ;

View File

@ -5495,8 +5495,8 @@ sub_D894 proc far
call sub_DA30 call sub_DA30
mov di, 3020h mov di, 3020h
call sub_DA30 call sub_DA30
mov ah, 5 mov ah, GC_RI
call sub_DB21 call _grcg_setcolor_direct_noint_1
mov al, 0 mov al, 0
mov di, 156Ch mov di, 156Ch
call sub_DB0D call sub_DB0D
@ -5599,8 +5599,8 @@ sub_D96E proc far
mov di, 2A80h mov di, 2A80h
mov si, 4 mov si, 4
call sub_D9E2 call sub_D9E2
mov ah, 5 mov ah, GC_RI
call sub_DB21 call _grcg_setcolor_direct_noint_1
mov di, 3020h mov di, 3020h
add bx, 4 add bx, 4
call sub_DA12 call sub_DA12
@ -5634,8 +5634,8 @@ loc_D9F5:
mov [si+3832h], ah mov [si+3832h], ah
mov [si+382Ah], al mov [si+382Ah], al
call sub_DA30 call sub_DA30
mov ah, 5 mov ah, GC_RI
call sub_DB21 call _grcg_setcolor_direct_noint_1
mov al, [si+382Ah] mov al, [si+382Ah]
call near ptr sub_DA6B call near ptr sub_DA6B
@ -5680,8 +5680,8 @@ sub_DA12 endp
sub_DA30 proc near sub_DA30 proc near
push di push di
push si push si
mov ah, 3 mov ah, GC_GI
call sub_DB21 call _grcg_setcolor_direct_noint_1
add di, 30h ; '0' add di, 30h ; '0'
mov ax, 0EEEEh mov ax, 0EEEEh
mov dl, 0Fh mov dl, 0Fh
@ -5692,8 +5692,8 @@ loc_DA3F:
add di, 34h ; '4' add di, 34h ; '4'
dec dl dec dl
jnz short loc_DA3F jnz short loc_DA3F
mov ah, 1 mov ah, GC_RGI
call sub_DB21 call _grcg_setcolor_direct_noint_1
mov si, 9EEh mov si, 9EEh
sub di, 4B0h sub di, 4B0h
mov dl, 9 mov dl, 9
@ -5826,18 +5826,7 @@ loc_DB1A:
retn retn
sub_DB0D endp sub_DB0D endp
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1
; =============== S U B R O U T I N E =======================================
sub_DB21 proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
sti
retn
sub_DB21 endp
; ---------------------------------------------------------------------------
db 0 db 0
; =============== S U B R O U T I N E ======================================= ; =============== S U B R O U T I N E =======================================