[Maintenance] [th04/th05] Declare GRCG register setting functions in C land

Part of P0089, funded by [Anonymous] and Blue Bolt.
This commit is contained in:
nmlgc 2020-04-26 16:26:40 +02:00
parent 7db8821c41
commit bf40b4e375
21 changed files with 151 additions and 150 deletions

View File

@ -120,19 +120,7 @@ endm
; GRCG color setting macros
; -------------------------
; In contrast to master.lib's own grcg_setcolor(), these keep the current
; GRCG mode.
GRCG_SETCOLOR_DIRECT_CLOBBERING macro port_reg:req, col_reg:req
mov port_reg, 7Eh
rept 4
shr ah, 1
sbb al, al
out dx, al
endm
endm
; Yup, regular GRCG_SETCOLOR_DIRECT is an exported function, so...
GRCG_SETCOLOR_DIRECT_INLINED macro col_reg:req
GRCG_SETCOLOR_DIRECT macro col_reg:req
rept 4
shr col_reg, 1
sbb al, al

View File

@ -106,7 +106,7 @@ z_super_roll_put_tiny_32x32_raw proc near
jnz short @@ODD_COLOR_LOOP
@@EVEN_COLOR_LOOP:
call grcg_setcolor_direct
call @@grcg_setcolor
mov @@rows_left, @@PATTERN_HEIGHT
mov di, cs:srpt32x32_vram_topleft
cmp di, (RES_Y - @@PATTERN_HEIGHT + 1) * ROW_SIZE
@ -131,7 +131,7 @@ z_super_roll_put_tiny_32x32_raw proc near
; ---------------------------------------------------------------------------
@@ODD_COLOR_LOOP:
call grcg_setcolor_direct
call @@grcg_setcolor
mov @@rows_left, @@PATTERN_HEIGHT
mov di, cs:srpt32x32_vram_topleft
cmp di, (RES_Y - @@PATTERN_HEIGHT + 1) * ROW_SIZE
@ -153,9 +153,9 @@ z_super_roll_put_tiny_32x32_raw proc near
MRETURN
; ---------------------------------------------------------------------------
; void __usercall near grcg_setcolor_direct(uint4_t col<ah>);
grcg_setcolor_direct:
GRCG_SETCOLOR_DIRECT_INLINED ah
; void __usercall near @@grcg_setcolor(uint4_t col<ah>);
@@grcg_setcolor:
GRCG_SETCOLOR_DIRECT ah
ret
even

15
th04/hardware/grcg.h Normal file
View File

@ -0,0 +1,15 @@
// Redefined versions of master.lib's grcg_setmode() and grcg_setcolor().
void near grcg_setmode_rmw_seg1(void);
void near grcg_setmode_tdw(void);
// In contrast to master.lib's own grcg_setcolor(), these keep the current
// GRCG mode, and reenable interrupts before returning.
#define grcg_setcolor_direct_seg1(col) \
_AH = col; \
grcg_setcolor_direct_seg1_raw();
void near grcg_setcolor_direct_seg1_raw(void);
#define grcg_setcolor_direct_seg3(col) \
_AH = col; \
grcg_setcolor_direct_seg3_raw();
void near grcg_setcolor_direct_seg3_raw(void);

View File

@ -1,26 +1,25 @@
; Redefined versions of master.lib's grcg_setmode() and grcg_setcolor().
GRCG_SETMODE_RMW_DEF macro instance
; void pascal near grcg_setmode_rmw(void);
public GRCG_SETMODE_RMW_&instance
grcg_setmode_rmw_&instance proc near
GRCG_SETMODE_RMW_DEF macro sgm
public _grcg_setmode_rmw_seg&sgm
_grcg_setmode_rmw_seg&sgm proc near
GRCG_SETMODE_VIA_MOV al, GC_RMW
ret
grcg_setmode_rmw_&instance endp
_grcg_setmode_rmw_seg&sgm endp
nop
endm
GRCG_SETCOLOR_DIRECT_NOINT_DEF macro instance
; Takes the GC_* color parameter in AH.
; void pascal near grcg_setcolor_direct_noint(void);
public GRCG_SETCOLOR_DIRECT_NOINT_&instance
grcg_setcolor_direct_noint_&instance proc near
GRCG_SETCOLOR_DIRECT_DEF macro sgm
public _grcg_setcolor_direct_seg&sgm&_raw
_grcg_setcolor_direct_seg&sgm&_raw proc near
cli
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
mov dx, 7Eh
rept 4
shr ah, 1
sbb al, al
out dx, al
endm
sti
ret
grcg_setcolor_direct_noint_&instance endp
_grcg_setcolor_direct_seg&sgm&_raw endp
endm
; Convenience macro to prepare ES:DI.

View File

@ -1,6 +1,5 @@
GRCG_SETMODE_RMW_DEF 1
; void pascal near grcg_setmode_tdw(void);
public GRCG_SETMODE_TDW
grcg_setmode_tdw proc near
GRCG_SETMODE_VIA_MOV al, GC_TDW
@ -8,4 +7,4 @@ grcg_setmode_tdw proc near
grcg_setmode_tdw endp
even
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1
GRCG_SETCOLOR_DIRECT_DEF 1

View File

@ -13,7 +13,7 @@ graph_putsa_fx proc far
push ds
mov dx, [bp+@@color]
GRCG_NOINT_SETMODE_VIA_MOV al, GC_RMW
GRCG_SETCOLOR_DIRECT_INLINED dx
GRCG_SETCOLOR_DIRECT dx
mov ax, GRAM_400
mov es, ax
assume es:nothing

View File

@ -14,7 +14,7 @@ boss_backdrop_render proc near
call cdg_put_noalpha pascal, [bp+@@x], [bp+@@y], 16
call grcg_setmode_tdw
mov ah, [bp+@@color]
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call _boss_backdrop_colorfill
GRCG_OFF_CLOBBERING dx
pop bp

View File

@ -12,7 +12,7 @@ explosions_small_update_and_render proc near
mov ax, GRAM_400
mov es, ax
assume es:nothing
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov si, offset _explosions_small
mov [bp+@@i], 0
jmp @@more_explosions?

View File

@ -144,7 +144,7 @@ circles_render proc near
push si
push di
mov ah, _circles_color
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov si, offset _circles
xor di, di
jmp short @@more?

View File

@ -50,7 +50,7 @@ gather_render proc far
jz short @@same_color
mov [bp+@@col], al
mov ah, [bp+@@col]
call grcg_setcolor_direct_noint_2
call _grcg_setcolor_direct_seg3_raw
@@same_color:
xor di, di

View File

@ -8,7 +8,7 @@ item_splashes_render proc near
push si
push di
mov ah, 15
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov si, offset _item_splashes
mov [bp+@@i], 0
jmp short @@more?

View File

@ -53,7 +53,7 @@ player_render proc near
@@got_options?:
cmp _shot_level, 2
jb @@ret
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ax, _player_option_pos_cur.x
sar ax, 4
; Technically, DI = AX + PLAYFIELD_X - PLAYER_OPTION_DISTANCE - (PLAYER_OPTION_W / 2)

View File

@ -52,7 +52,7 @@ sparks_render proc near
push si
push di
mov ah, GC_BR
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, GRAM_400
mov es, ax
assume es:nothing

View File

@ -393,7 +393,7 @@ loc_ABD8:
call main_01:enemies_render
call main_01:shots_render
call main_01:player_render
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
call gather_render
call main_01:sparks_render
call main_01:items_render
@ -5119,7 +5119,7 @@ loc_E276:
mov al, _stage_frame_mod2
add al, 8
mov ah, al
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov si, word ptr dword_2560C+2
call main_01:scroll_subpixel_y_to_vram_seg1 pascal, (16 shl 4)
mov dx, ax
@ -5933,9 +5933,9 @@ loc_E98E:
sar ax, 4
add ax, -16
mov di, ax
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, _boss_phase_frame
add ax, ax
mov dx, 80
@ -5963,9 +5963,9 @@ loc_E9DD:
sar ax, 4
add ax, 16
mov di, ax
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call grcg_circlefill pascal, si, di, 16
jmp short loc_EA55
; ---------------------------------------------------------------------------
@ -5980,9 +5980,9 @@ loc_EA0D:
sar ax, 4
add ax, -16
mov di, ax
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, _boss_phase_frame
shl ax, 3
add ax, 16
@ -6328,9 +6328,9 @@ var_2 = word ptr -2
enter 4, 0
push si
push di
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_RG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov di, 1
jmp short loc_ECC7
; ---------------------------------------------------------------------------
@ -8871,7 +8871,7 @@ var_1 = byte ptr -1
enter 2, 0
call main_01:grcg_setmode_tdw
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fillm_0_40_384_274
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 56
@ -8923,9 +8923,9 @@ loc_10096:
call snd_se_play pascal, 9
loc_100FE:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_B
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 0
call main_01:sub_1030D
GRCG_OFF_CLOBBERING dx
@ -8946,7 +8946,7 @@ var_2 = word ptr -2
push si
call main_01:grcg_setmode_tdw
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fillm_0_40_384_274
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 56
@ -9027,9 +9027,9 @@ loc_101D7:
call snd_se_play pascal, 9
loc_101F4:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_BRG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 1
call main_01:sub_1030D
GRCG_OFF_CLOBBERING dx
@ -9490,7 +9490,7 @@ shots_render proc near
push di
mov ax, GRAM_400
mov es, ax
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
cmp word_25608, 20h ; ' '
jbe short loc_10569
call main_01:sub_E1F4
@ -10208,9 +10208,9 @@ loc_10F5E:
; ---------------------------------------------------------------------------
loc_10F80:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp stage_id, 5
jnb short loc_10F99
push 150A80h
@ -10230,7 +10230,7 @@ loc_10FA1:
push 16800002h
call main_01:sub_10EA5
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _stage_bgm_title_len
push ax
@ -10347,9 +10347,9 @@ loc_110A1:
call text_putsa
loc_11107:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp stage_id, 5
jnb short loc_11120
push 150A80h
@ -10369,7 +10369,7 @@ loc_11128:
push 16800002h
call main_01:sub_10EA5
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _stage_bgm_title_len
push ax
@ -10436,16 +10436,16 @@ loc_111BB:
; ---------------------------------------------------------------------------
loc_111D8:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 30h ; '0'
sub ax, _boss_bgm_title_len
push ax
push 16800002h
call main_01:sub_10EA5
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _boss_bgm_title_len
push ax
@ -10488,16 +10488,16 @@ loc_11237:
call text_putsa
loc_1127E:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 30h ; '0'
sub ax, _boss_bgm_title_len
push ax
push 16800002h
call main_01:sub_10EA5
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _boss_bgm_title_len
push ax
@ -10696,12 +10696,12 @@ var_2 = word ptr -2
mov [bp+var_2], ax
add si, 20h ; ' '
add di, 18h
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_I
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call grcg_circle pascal, si, di, [bp+var_2]
mov ah, GC_BI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push si
push di
mov ax, [bp+var_2]
@ -10770,9 +10770,9 @@ loc_118AE:
call super_put_1plane pascal, si, di, [bp+var_2], large PLANE_PUT or GC_BRGI
loc_118BE:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_RG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov [bp+var_A], 0B204h
mov [bp+var_4], 0
jmp short loc_11932
@ -10893,12 +10893,12 @@ var_2 = word ptr -2
mov [bp+var_2], ax
add si, 24
add di, 8
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call grcg_circle pascal, si, di, [bp+var_2]
mov ah, GC_RG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push si
push di
mov ax, [bp+var_2]
@ -11137,14 +11137,14 @@ loc_11BD1:
jl loc_11B52
cmp byte ptr [si], 0
jz short loc_11C16
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_BGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call grcg_circlefill pascal, word ptr [si+2], word ptr [si+4], word ptr [si+10h]
cmp byte ptr [si], 1
jz short loc_11C16
mov ah, [si+18h]
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push word ptr [si+2]
push word ptr [si+4]
mov ax, [si+12h]
@ -11965,7 +11965,7 @@ loc_122EB:
loc_12309:
call main_01:grcg_setmode_tdw
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fillm_64_56_256_256
GRCG_OFF_CLOBBERING dx
push (96 shl 16) or 72
@ -12043,7 +12043,7 @@ loc_12378:
loc_12396:
call main_01:grcg_setmode_tdw
mov ah, GC_BRGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fillm_96_112_288_256
GRCG_OFF_CLOBBERING dx
push (128 shl 16) or 128
@ -12200,7 +12200,7 @@ loc_1248C:
mov fp_2CF2C, offset sub_123F1
loc_12492:
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
cmp byte_2CDD1, 80h
jnb short loc_124A1
mov al, byte_2CDD1
@ -12216,7 +12216,7 @@ loc_124A7:
cmp byte_2CDD0, 10h
jnb short loc_124D7
mov ah, GC_BRG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
test byte_2CDD0, 1
jz short loc_124C5
mov al, [bp+var_9]
@ -12239,7 +12239,7 @@ loc_124D2:
loc_124D7:
mov ah, GC_RG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp byte_23242, 0
jnz short loc_12508
mov Palettes, 0
@ -12711,7 +12711,7 @@ var_1 = byte ptr -1
cmp _boss_phase, 0
jnz short loc_12921
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fill
GRCG_OFF_CLOBBERING dx
cmp _boss_phase_frame, 2
@ -12752,7 +12752,7 @@ loc_12921:
idiv bx
mov [bp+var_1], al
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp [bp+var_1], 8
jnb short loc_12944
call main_01:playfield_fill
@ -12781,7 +12781,7 @@ loc_12958:
loc_12964:
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fill
GRCG_OFF_CLOBBERING dx
@ -12834,7 +12834,7 @@ loc_12996:
loc_129B4:
call main_01:grcg_setmode_tdw
mov ah, GC_RGI
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:playfield_fillm_0_0_384_192
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16
@ -13268,10 +13268,10 @@ loc_12D6D:
cmp _bullet_clear_time, 0
jnz short loc_12DBE
mov ah, 0Fh
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:_pellets_render_top
mov ah, GC_RG
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call main_01:_pellets_render_bottom
jmp short @@ret
; ---------------------------------------------------------------------------
@ -13612,7 +13612,7 @@ loc_13083:
jl short loc_130E9
cmp _boss_phase_frame, 96
jge short loc_130E9
call main_01:grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
cmp _stage_frame_mod2, 0
jz short loc_130B6
mov ah, GC_RG
@ -13623,7 +13623,7 @@ loc_130B6:
mov ah, 0Fh
loc_130B8:
call main_01:grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov [bp+var_2], 0B204h
xor si, si
jmp short loc_130E4
@ -13920,8 +13920,8 @@ include th04/main/pointnum/add.asm
include th04/math/vector2_near.asm
nop
include th04/main/sparks_add.asm
GRCG_SETCOLOR_DIRECT_NOINT_DEF 2
GRCG_SETMODE_RMW_DEF 2
GRCG_SETCOLOR_DIRECT_DEF 3
GRCG_SETMODE_RMW_DEF 3
include th04/main/item/splashes_update.asm
; =============== S U B R O U T I N E =======================================

View File

@ -15,7 +15,7 @@ b6balls_render proc near
cmp [si+b6ball_t.flag], 1
jnz short @@no_cloud
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, [si+b6ball_t.pos.cur.x]
sar ax, 4
add ax, PLAYFIELD_X

View File

@ -50,7 +50,7 @@ endm
cmp [di+curvebullet_trail_t.flag], 0
jz @@bullet_next
mov ah, [di+curvebullet_trail_t.CBT_col]
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov si, (CURVEBULLET_TRAIL_NODE_COUNT - 1)
jmp short @@nodes_more?
; ---------------------------------------------------------------------------

View File

@ -224,7 +224,7 @@ lasers_render proc near
cmp [si+laser_t.coords.LASER_width], 3
jb short @@draw_inner_circle?
mov ah, [si+laser_t.LASER_color]
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp [si+laser_t.coords.starts_at_distance], (16 shl 4)
jg short @@draw_outer_ray?
push [bp+@@draw_x]
@ -265,7 +265,7 @@ lasers_render proc near
@@draw_inner_circle?:
mov ah, 15
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp [si+laser_t.coords.starts_at_distance], (16 shl 4)
jg short @@draw_inner_ray_or_line?
push [bp+@@draw_x]
@ -329,7 +329,7 @@ lasers_render proc near
@@decay:
mov ah, 15
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
shl [bp+@@radius], 3
push offset _drawpoint
push [si+laser_t.coords.origin.x]

View File

@ -19,7 +19,7 @@ _piano_setup proc far
mov di, (PIANO_Y + (5 * PIANO_H_PADDED)) * ROW_SIZE
call piano_draw_part_keys
mov ah, GC_RI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
piano_label_puts 0, pl_F, pl_M, pl_1
piano_label_puts 1, pl_F, pl_M, pl_2
piano_label_puts 2, pl_F, pl_M, pl_3
@ -73,7 +73,7 @@ _piano_render proc far
mov si, offset piano_notes_t.fm[4]
call piano_part_render
mov ah, GC_RI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov di, (PIANO_Y + (5 * PIANO_H_PADDED)) * ROW_SIZE
add bx, 4 ; SSGPart[0]
call piano_get_note
@ -111,7 +111,7 @@ piano_part_render proc near
mov _piano_notes_cur.fm[si], al
call piano_draw_part_keys
mov ah, GC_RI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov al, _piano_notes_cur.fm[si]
call piano_draw_pressed_key
@ -155,7 +155,7 @@ piano_draw_part_keys proc near
push di
push si
mov ah, GC_GI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
add di, PIANO_VRAM_X
mov ax, PIANO_KEYS_WHITE
mov dl, PIANO_H
@ -167,7 +167,7 @@ piano_draw_part_keys proc near
dec dl
jnz short @@white_key_loop
mov ah, GC_RGI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov si, offset _PIANO_KEYS_BLACK
sub di, ROW_SIZE * PIANO_H
mov dl, PIANO_BLACK_H

View File

@ -441,7 +441,7 @@ loc_AF2D:
call enemies_render
call shots_render
call player_render
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
call _boss_custombullets_render
call lasers_render
call gather_render
@ -2529,7 +2529,7 @@ loc_C8CE:
loc_C8D4:
call far ptr palette_show
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov si, 38C2h
xor di, di
jmp loc_C98D
@ -2550,7 +2550,7 @@ loc_C8E4:
add ax, 10h
mov [bp+var_4], ax
mov ah, GC_BRG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, [si+6]
cwd
sub ax, dx
@ -2566,7 +2566,7 @@ loc_C8E4:
push [bp+var_4]
call grcg_boxfill
mov ah, GC_RG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
dec [bp+var_6]
mov ax, [bp+var_2]
sub ax, [bp+var_6]
@ -2578,7 +2578,7 @@ loc_C8E4:
push [bp+var_4]
call grcg_boxfill
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
dec [bp+var_6]
mov ax, [bp+var_2]
sub ax, [bp+var_6]
@ -2823,13 +2823,13 @@ sub_CB30 proc near
call grcg_vline pascal, (238 shl 16) or PLAYFIELD_Y, PLAYFIELD_Y + 47
call grcg_vline pascal, (238 shl 16) or 336, PLAYFIELD_BOTTOM - 1
mov ah, GC_BI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call grcg_vline pascal, (208 shl 16) or PLAYFIELD_Y, PLAYFIELD_Y + 47
call grcg_vline pascal, (208 shl 16) or 336, PLAYFIELD_BOTTOM - 1
call grcg_vline pascal, (239 shl 16) or PLAYFIELD_Y, PLAYFIELD_Y + 47
call grcg_vline pascal, (239 shl 16) or 336, PLAYFIELD_BOTTOM - 1
mov ah, 15
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call sub_CA7B
mov al, byte_2429B
mov ah, 0
@ -3526,7 +3526,7 @@ loc_D108:
loc_D124:
call grcg_setmode_tdw
mov ah, GC_RGI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call playfield_fillm_0_0_384_192__1
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16
@ -3603,7 +3603,7 @@ loc_D194:
loc_D1B0:
call grcg_setmode_tdw
mov ah, GC_RGI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call playfield_fillm_0_205_384_163
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 221
@ -3681,7 +3681,7 @@ loc_D220:
loc_D23E:
call grcg_setmode_tdw
mov ah, GC_RGI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call playfield_fillm_64_56_256_256
GRCG_OFF_CLOBBERING dx
push (96 shl 16) or 72
@ -3755,7 +3755,7 @@ var_1 = byte ptr -1
loc_D2C7:
call grcg_setmode_tdw
mov ah, GC_RGI
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call playfield_fillm_0_0_384_192__2
GRCG_OFF_CLOBBERING dx
push (32 shl 16) or 16
@ -4208,9 +4208,9 @@ loc_D62B:
loc_D630:
cmp di, 2
jl short loc_D5F1
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_BRG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call sub_D327
push 3AC0h
push 12h
@ -4225,7 +4225,7 @@ loc_D630:
push 0Ch
call sub_D4F8
mov ah, GC_RG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 6
call sub_D4F8
@ -4233,7 +4233,7 @@ loc_D630:
push 6
call sub_D4F8
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 0
call sub_D4F8
@ -4472,9 +4472,9 @@ loc_D829:
jl short loc_D808
loc_D82E:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_BRG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call sub_D327
push 3AC0h
push 12h
@ -4489,7 +4489,7 @@ loc_D82E:
push 0Ch
call sub_D4F8
mov ah, GC_RG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 6
call sub_D4F8
@ -4497,7 +4497,7 @@ loc_D82E:
push 6
call sub_D4F8
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 0
call sub_D4F8
@ -4698,9 +4698,9 @@ loc_D9C1:
jl short loc_D9A0
loc_D9C6:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_BRG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call sub_D327
push 3AC0h
push 12h
@ -4715,7 +4715,7 @@ loc_D9C6:
push 0Ch
call sub_D4F8
mov ah, GC_RG
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 6
call sub_D4F8
@ -4723,7 +4723,7 @@ loc_D9C6:
push 6
call sub_D4F8
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
push 3AC0h
push 0
call sub_D4F8
@ -7415,10 +7415,10 @@ loc_101BD:
or ax, ax
jnz short loc_1018A
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call _pellets_render_top
mov ah, byte ptr _pellet_bottom_col
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
call _pellets_render_bottom
jmp short @@ret
; ---------------------------------------------------------------------------
@ -10337,9 +10337,9 @@ loc_11AD6:
; ---------------------------------------------------------------------------
loc_11AF8:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp stage_id, 5
jnb short loc_11B11
push 150A80h
@ -10359,7 +10359,7 @@ loc_11B19:
push 16800002h
call sub_11A1D
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _stage_bgm_title_len
push ax
@ -10437,9 +10437,9 @@ loc_11BDB:
call text_putsa pascal, ax, 23, _stage_bgm_title, TX_WHITE
loc_11C2D:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
cmp stage_id, 5
jnb short loc_11C46
push 150A80h
@ -10459,7 +10459,7 @@ loc_11C4E:
push 16800002h
call sub_11A1D
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _stage_bgm_title_len
push ax
@ -10526,16 +10526,16 @@ loc_11CE1:
; ---------------------------------------------------------------------------
loc_11CFE:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 30h ; '0'
sub ax, _boss_bgm_title_len
push ax
push 16800002h
call sub_11A1D
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _boss_bgm_title_len
push ax
@ -10566,16 +10566,16 @@ loc_11D53:
call text_putsa pascal, ax, 23, _boss_bgm_title, TX_WHITE
loc_11D90:
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov ah, GC_G
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 30h ; '0'
sub ax, _boss_bgm_title_len
push ax
push 16800002h
call sub_11A1D
mov ah, 0Fh
call grcg_setcolor_direct_noint_1
call _grcg_setcolor_direct_seg1_raw
mov ax, 33h ; '3'
sub ax, _boss_bgm_title_len
push ax
@ -11132,7 +11132,7 @@ shots_render proc near
mov ax, GRAM_400
mov es, ax
assume es:nothing
call grcg_setmode_rmw_1
call _grcg_setmode_rmw_seg1
mov di, offset _shots_alive
mov [bp+@@i], 0
jmp short @@shots_more?
@ -12365,8 +12365,8 @@ include th04/math/vector2_near.asm
include th04/main/sparks_add.asm
include th05/main/bullet/patnum_for_angle.asm
GRCG_SETCOLOR_DIRECT_NOINT_DEF 2
GRCG_SETMODE_RMW_DEF 2
GRCG_SETCOLOR_DIRECT_DEF 3
GRCG_SETMODE_RMW_DEF 3
include th05/main/player/angle.asm
include th05/main/playperf_adjust_speed.asm

View File

@ -170,7 +170,7 @@ arg_4 = word ptr 0Ah
nop
loc_2E02:
GRCG_SETCOLOR_DIRECT_INLINED ah
GRCG_SETCOLOR_DIRECT ah
mov ch, dl
loc_2E1C:

View File

@ -3505,7 +3505,7 @@ include th02/exit.asm
include th04/math/vector1_at.asm
include th04/math/vector2_at.asm
include th05/music/piano.asm
GRCG_SETCOLOR_DIRECT_NOINT_DEF 1
GRCG_SETCOLOR_DIRECT_DEF 1
db 0
include th04/bgimage_put_rect.asm
include th05/snd/load.asm