From 4893a52ed35df67b708ed2eec59f481164195c10 Mon Sep 17 00:00:00 2001 From: nmlgc Date: Sat, 28 Dec 2019 22:51:33 +0100 Subject: [PATCH] [Position independence] [th04/th05] bgimage_put_rect calls Part of P0064, funded by Touhou Patch Center. --- th04_op.asm | 12 +++--------- th05_maine.asm | 22 +++++++--------------- th05_op.asm | 45 ++++++++++++--------------------------------- 3 files changed, 22 insertions(+), 57 deletions(-) diff --git a/th04_op.asm b/th04_op.asm index 76fde058..c277f3e0 100644 --- a/th04_op.asm +++ b/th04_op.asm @@ -2248,13 +2248,9 @@ sub_C33F proc near push bp mov bp, sp mov _graph_putsa_fx_func, 2 - push 1400040h - push 1400140h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320 call music_flip - push 1400040h - push 1400140h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320 pop bp retn sub_C33F endp @@ -2277,9 +2273,7 @@ draw_cmt proc near loc_C37C: call music_cmt_load pascal, [bp+@@track] call screen_back_B_put - push 1400040h - push 1400140h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 320 cmp byte_12DBE, 0 jz short loc_C3A2 call sub_C30E diff --git a/th05_maine.asm b/th05_maine.asm index 8aa5dbcc..998232e9 100644 --- a/th05_maine.asm +++ b/th05_maine.asm @@ -766,10 +766,7 @@ loc_A95C: loc_A962: call _input_reset_sense_held - push 576 - push point_15004.y - push 100010h - call bgimage_put_rect + call bgimage_put_rect pascal, 576, point_15004.y, (16 shl 16) or 16 or si, si jle short loc_A9BD test _key_det.hi, high INPUT_OK @@ -875,9 +872,7 @@ loc_AA3E: mov point_15004.x, 80 mov point_15004.y, 320 graph_accesspage 1 - push 500140h - push 1E00040h - call bgimage_put_rect + call bgimage_put_rect pascal, (80 shl 16) or 320, (480 shl 16) or 64 mov dx, 0A6h mov al, 0 @@ -2636,10 +2631,7 @@ loc_BAFE: mov di, ax loc_BB00: - push si - push di - push 820012h - call bgimage_put_rect + call bgimage_put_rect pascal, si, di, (130 shl 16) or 18 lea ax, [si+2] push ax lea ax, [di+2] @@ -3163,17 +3155,17 @@ loc_BE9B: loc_BEA6: mov ax, [si+6] - mov bx, 10h + mov bx, 16 cwd idiv bx - add ax, 0FFF0h + add ax, -16 push ax mov ax, [si+8] cwd idiv bx - add ax, 0FFF0h + add ax, -16 push ax - push 200020h + push (32 shl 16) or 32 call bgimage_put_rect loc_BEC8: diff --git a/th05_op.asm b/th05_op.asm index 933718a8..cbeb15a7 100644 --- a/th05_op.asm +++ b/th05_op.asm @@ -2422,7 +2422,7 @@ loc_BEF4: push 0 lea ax, [si+96] push ax - push 1400010h + push (320 shl 16) or 16 call bgimage_put_rect loc_BF05: @@ -2590,19 +2590,11 @@ sub_C3A7 proc near push bp mov bp, sp mov _graph_putsa_fx_func, 2 - push 1400020h - push 1400010h - call bgimage_put_rect - push 14000B4h - push 1400090h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 32, (320 shl 16) or 16 + call bgimage_put_rect pascal, (320 shl 16) or 180, (320 shl 16) or 144 call music_flip - push 1400020h - push 1400010h - call bgimage_put_rect - push 14000B4h - push 1400090h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 32, (320 shl 16) or 16 + call bgimage_put_rect pascal, (320 shl 16) or 180, (320 shl 16) or 144 pop bp retn sub_C3A7 endp @@ -2625,9 +2617,7 @@ draw_cmt proc near loc_C406: call music_cmt_load pascal, [bp+@@track] call screen_back_B_put - push 1400040h - push 1400100h - call bgimage_put_rect + call bgimage_put_rect pascal, (320 shl 16) or 64, (320 shl 16) or 256 cmp byte_13E96, 0 jz short loc_C42C call sub_C376 @@ -2659,20 +2649,12 @@ arg_0 = word ptr 4 mov bp, sp push si mov si, [bp+arg_0] - pushd 20h ; ' ' - push 1400010h - call bgimage_put_rect - pushd 60h - push 14000C0h - call bgimage_put_rect + call bgimage_put_rect pascal, large (0 shl 16) or 32, (320 shl 16) or 16 + call bgimage_put_rect pascal, large (0 shl 16) or 96, (320 shl 16) or 192 call draw_tracks pascal, si call music_flip - pushd 20h ; ' ' - push 1400010h - call bgimage_put_rect - pushd 60h - push 14000C0h - call bgimage_put_rect + call bgimage_put_rect pascal, large (0 shl 16) or 32, (320 shl 16) or 16 + call bgimage_put_rect pascal, large (0 shl 16) or 96, (320 shl 16) or 192 call draw_tracks pascal, si pop si pop bp @@ -3734,13 +3716,10 @@ loc_D012: push ax lea ax, [di-8] push ax - push 0E00008h + push (224 shl 16) or 8 call bgimage_put_rect lea ax, [si-8] - push ax - push di - push 800A0h - call bgimage_put_rect + call bgimage_put_rect pascal, ax, di, (8 shl 16) or 160 mov al, _playchar_menu_sel mov ah, 0 mov bx, ax