diff --git a/th03/formats/hfliplut.asm b/th03/formats/hfliplut.asm new file mode 100644 index 00000000..2fd8d383 --- /dev/null +++ b/th03/formats/hfliplut.asm @@ -0,0 +1,28 @@ +; Generates a lookup table for flipping one byte, interpreted as a horizontal +; line of 8 pixels in a single bitplane. + +; int DEFCONV hflip_lut_generate() +proc_defconv hflip_lut_generate + push di + xor ax, ax + mov di, offset hflip_lut + xor dl, dl + jmp short @@check + +@@outer: + xor dl, dl + mov cx, 8 + +@@inner: + rol al, 1 + rcr dl, 1 + loop @@inner + +@@check: + mov [di], dl + inc di + inc al + jnz short @@outer + pop di + ret +endp_defconv diff --git a/th03/formats/hfliplut[bss].asm b/th03/formats/hfliplut[bss].asm new file mode 100644 index 00000000..ba4e5c99 --- /dev/null +++ b/th03/formats/hfliplut[bss].asm @@ -0,0 +1 @@ +hflip_lut db 100h dup(?) diff --git a/th03_main.asm b/th03_main.asm index dc4bd087..18614342 100644 --- a/th03_main.asm +++ b/th03_main.asm @@ -707,7 +707,7 @@ var_2 = word ptr -2 call sub_13CDD mov byte_207E3, 0 call sub_9EBF - call sub_EEC4 + call hflip_lut_generate nopcall sub_D5A2 mov byte_23AFA, 0 les bx, dword_1F2F0 @@ -10051,35 +10051,7 @@ sub_EE77 endp ; --------------------------------------------------------------------------- db 0 -; =============== S U B R O U T I N E ======================================= - - -sub_EEC4 proc far - push di - xor ax, ax - mov di, 1C64h - xor dl, dl - jmp short loc_EED9 -; --------------------------------------------------------------------------- - -loc_EECE: - xor dl, dl - mov cx, 8 - -loc_EED3: - rol al, 1 - rcr dl, 1 - loop loc_EED3 - -loc_EED9: - mov [di], dl - inc di - inc al - jnz short loc_EECE - pop di - retf -sub_EEC4 endp - +include th03/formats/hfliplut.asm ; =============== S U B R O U T I N E ======================================= @@ -10345,7 +10317,7 @@ loc_F0A9: mov bx, [bp+arg_0] shl bx, 2 les di, [bx+1D64h] - mov bx, 1C64h + mov bx, offset hflip_lut loc_F0BB: mov al, es:[di] @@ -38427,70 +38399,7 @@ word_1EFF8 dw ? unk_1EFFA db ? ; byte_1EFFB db ? include th02/formats/pi_slots[bss].asm - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; +include th03/formats/hfliplut[bss].asm dd ? ; dd ? ; dd ? ; diff --git a/th03_mainl.asm b/th03_mainl.asm index 28d61710..8b21240f 100644 --- a/th03_mainl.asm +++ b/th03_mainl.asm @@ -1087,7 +1087,7 @@ loc_9DAD: call gaiji_entry_bfnt call snd_load c, offset aYume_efc, ds, SND_LOAD_SE call snd_se_reset - call sub_D784 + call hflip_lut_generate les bx, dword_105DA cmp byte ptr es:[bx+35h], 0 jz short loc_9E04 @@ -6397,7 +6397,7 @@ arg_4 = word ptr 0Ah add ax, 0A800h mov es, ax assume es:nothing - mov bx, 20D6h + mov bx, offset hflip_lut mov fs, word ptr [si+0Ch] xor si, si @@ -7706,35 +7706,7 @@ sub_D712 endp ; --------------------------------------------------------------------------- nop -; =============== S U B R O U T I N E ======================================= - - -sub_D784 proc far - push di - xor ax, ax - mov di, 20D6h - xor dl, dl - jmp short loc_D799 -; --------------------------------------------------------------------------- - -loc_D78E: - xor dl, dl - mov cx, 8 - -loc_D793: - rol al, 1 - rcr dl, 1 - loop loc_D793 - -loc_D799: - mov [di], dl - inc di - inc al - jnz short loc_D78E - pop di - retf -sub_D784 endp - +include th03/formats/hfliplut.asm mainl_02_TEXT ends .data @@ -8439,70 +8411,7 @@ word_100FC dw ? dd ? ; dd ? ; include th02/formats/pi_slots[bss].asm - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; +include th03/formats/hfliplut[bss].asm dword_105C6 dd ? dword_105CA dd ? byte_105CE db ? diff --git a/th03_op.asm b/th03_op.asm index e46dda3b..12039a9a 100644 --- a/th03_op.asm +++ b/th03_op.asm @@ -3427,7 +3427,7 @@ sub_B38D proc near push bp mov bp, sp push si - call sub_CB68 + call hflip_lut_generate xor si, si jmp short loc_B3B0 ; --------------------------------------------------------------------------- @@ -4999,7 +4999,7 @@ arg_4 = word ptr 0Ah add ax, 0A800h mov es, ax assume es:nothing - mov bx, 1E70h + mov bx, offset hflip_lut mov fs, word ptr [si+0Ch] xor si, si @@ -6216,35 +6216,7 @@ sub_CAF6 endp ; --------------------------------------------------------------------------- nop -; =============== S U B R O U T I N E ======================================= - - -sub_CB68 proc far - push di - xor ax, ax - mov di, 1E70h - xor dl, dl - jmp short loc_CB7D -; --------------------------------------------------------------------------- - -loc_CB72: - xor dl, dl - mov cx, 8 - -loc_CB77: - rol al, 1 - rcr dl, 1 - loop loc_CB77 - -loc_CB7D: - mov [di], dl - inc di - inc al - jnz short loc_CB72 - pop di - retf -sub_CB68 endp - +include th03/formats/hfliplut.asm extern FRAME_DELAY_2:proc op_02_TEXT ends @@ -6688,70 +6660,7 @@ word_F296 dw ? dd ? ; dd ? ; include th02/formats/pi_slots[bss].asm - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; - dd ? ; +include th03/formats/hfliplut[bss].asm unk_F760 db ? ; dd ? ; dd ? ; diff --git a/th04_main.asm b/th04_main.asm index afea778d..36c05b49 100644 --- a/th04_main.asm +++ b/th04_main.asm @@ -18049,31 +18049,7 @@ sub_13117 endp retf 14h include th02/hardware/frame_delay.asm - -; --------------------------------------------------------------------------- - push di - xor ax, ax - mov di, 335Ah - xor dl, dl - jmp short loc_131E1 -; --------------------------------------------------------------------------- - -loc_131D6: - xor dl, dl - mov cx, 8 - -loc_131DB: - rol al, 1 - rcr dl, 1 - loop loc_131DB - -loc_131E1: - mov [di], dl - inc di - inc al - jnz short loc_131D6 - pop di - retf +include th03/formats/hfliplut.asm ; =============== S U B R O U T I N E ======================================= @@ -46718,70 +46694,7 @@ include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm include th01/hardware/vram_planes[bss].asm include libs/master.lib/pfint21[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm dd ? dd ? dd ? diff --git a/th04_maine.asm b/th04_maine.asm index 13d5c673..38bf6787 100644 --- a/th04_maine.asm +++ b/th04_maine.asm @@ -5418,31 +5418,7 @@ include th02/formats/pi_slot_palette_apply.asm include th02/formats/pi_slot_put.asm include th02/formats/pi_slot_load.asm include th03/formats/pi_slot_put_quarter.asm - -; --------------------------------------------------------------------------- - push di - xor ax, ax - mov di, 196Ah - xor dl, dl - jmp short loc_CE71 -; --------------------------------------------------------------------------- - -loc_CE66: - xor dl, dl - mov cx, 8 - -loc_CE6B: - rol al, 1 - rcr dl, 1 - loop loc_CE6B - -loc_CE71: - mov [di], dl - inc di - inc al - jnz short loc_CE66 - pop di - retf +include th03/formats/hfliplut.asm ; =============== S U B R O U T I N E ======================================= @@ -6884,70 +6860,7 @@ include libs/master.lib/superpa[bss].asm include th01/hardware/vram_planes[bss].asm include libs/master.lib/pfint21[bss].asm include th02/formats/pi_slots[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm include th04/snd/interrupt[bss].asm include libs/master.lib/bgm[bss].asm include th02/snd/load[bss].asm diff --git a/th04_op.asm b/th04_op.asm index 6ca8bf1b..b925123e 100644 --- a/th04_op.asm +++ b/th04_op.asm @@ -6115,30 +6115,8 @@ include th02/formats/pi_slot_load.asm ; --------------------------------------------------------------------------- db 0 -; --------------------------------------------------------------------------- - push di - xor ax, ax - mov di, 2538h - xor dl, dl - jmp short loc_DB59 -; --------------------------------------------------------------------------- -loc_DB4E: - xor dl, dl - mov cx, 8 - -loc_DB53: - rol al, 1 - rcr dl, 1 - loop loc_DB53 - -loc_DB59: - mov [di], dl - inc di - inc al - jnz short loc_DB4E - pop di - retf +include th03/formats/hfliplut.asm ; =============== S U B R O U T I N E ======================================= @@ -7896,70 +7874,7 @@ include libs/master.lib/super_put_rect[bss].asm include th01/hardware/vram_planes[bss].asm include libs/master.lib/pfint21[bss].asm include th02/formats/pi_slots[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm include th04/snd/interrupt[bss].asm include libs/master.lib/bgm[bss].asm include th02/snd/load[bss].asm diff --git a/th05_main.asm b/th05_main.asm index 83ee4d0d..cdc7e7a5 100644 --- a/th05_main.asm +++ b/th05_main.asm @@ -21144,36 +21144,7 @@ arg_12 = word ptr 18h retf 14h sub_14B0A endp - -; =============== S U B R O U T I N E ======================================= - - -sub_14B64 proc far - push di - xor ax, ax - mov di, 2EA0h - xor dl, dl - jmp short loc_14B79 -; --------------------------------------------------------------------------- - -loc_14B6E: - xor dl, dl - mov cx, 8 - -loc_14B73: - rol al, 1 - rcr dl, 1 - loop loc_14B73 - -loc_14B79: - mov [di], dl - inc di - inc al - jnz short loc_14B6E - pop di - retf -sub_14B64 endp - +include th03/formats/hfliplut.asm include th04/snd/pmd_res.asm include th02/snd/mmd_res.asm include th04/snd/detmodes.asm @@ -45420,70 +45391,7 @@ include libs/master.lib/vsync[bss].asm include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm include libs/master.lib/super_put_rect[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm include th04/snd/interrupt[bss].asm include libs/master.lib/bgm[bss].asm include th02/snd/load[bss].asm diff --git a/th05_maine.asm b/th05_maine.asm index 57b71ae3..d30dc838 100644 --- a/th05_maine.asm +++ b/th05_maine.asm @@ -8394,30 +8394,8 @@ maine_02_TEXT segment word public 'CODE' use16 assume cs:maine_02_TEXT ;org 0Ch assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing - push di - xor ax, ax - mov di, 25DEh - xor dl, dl - jmp short loc_E811 -; --------------------------------------------------------------------------- - -loc_E806: - xor dl, dl - mov cx, 8 - -loc_E80B: - rol al, 1 - rcr dl, 1 - loop loc_E80B - -loc_E811: - mov [di], dl - inc di - inc al - jnz short loc_E806 - pop di - retf +include th03/formats/hfliplut.asm include th04/snd/pmd_res.asm include th02/snd/mmd_res.asm include th04/snd/detmodes.asm @@ -10291,70 +10269,7 @@ include libs/master.lib/vsync[bss].asm include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm include libs/master.lib/super_put_rect[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm include th04/snd/interrupt[bss].asm include libs/master.lib/bgm[bss].asm include th02/snd/load[bss].asm diff --git a/th05_op.asm b/th05_op.asm index f51ce3a7..abfa08cd 100644 --- a/th05_op.asm +++ b/th05_op.asm @@ -5769,32 +5769,7 @@ op_02_TEXT segment word public 'CODE' use16 ; org 4 assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing -sub_D304 proc near - push di - xor ax, ax - mov di, 3662h - xor dl, dl - jmp short loc_D319 -; --------------------------------------------------------------------------- - -loc_D30E: - xor dl, dl - mov cx, 8 - -loc_D313: - rol al, 1 - rcr dl, 1 - loop loc_D313 - -loc_D319: - mov [di], dl - inc di - inc al - jnz short loc_D30E - pop di - retf -sub_D304 endp - +include th03/formats/hfliplut.asm include th04/snd/pmd_res.asm include th02/snd/mmd_res.asm include th04/snd/detmodes.asm @@ -8682,70 +8657,7 @@ include libs/master.lib/vsync[bss].asm include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm include libs/master.lib/super_put_rect[bss].asm - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? - dd ? +include th03/formats/hfliplut[bss].asm include th04/snd/interrupt[bss].asm include libs/master.lib/bgm[bss].asm dd ? ;