[Reverse-engineering] [th01] .GRP palette

Part of P0082, funded by Ember2528.
This commit is contained in:
nmlgc 2020-03-10 23:10:36 +01:00
parent 00050d0e5e
commit 63ed22ba67
6 changed files with 40 additions and 63 deletions

1
th01/formats/grp.h Normal file
View File

@ -0,0 +1 @@
extern Palette4 grp_palette;

View File

@ -0,0 +1,2 @@
public _grp_palette
_grp_palette palette_t <?>

View File

@ -5132,8 +5132,8 @@ loc_C86B:
cmp [bp+arg_0], 64h ; 'd'
jle short loc_C8A9
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
imul bx, size rgb_t
mov al, byte ptr _grp_palette[bx+di]
cbw
mov dx, 0Fh
sub dx, ax
@ -5148,16 +5148,16 @@ loc_C86B:
idiv bx
mov [bp+var_2], ax
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
imul bx, size rgb_t
mov al, byte ptr _grp_palette[bx+di]
add al, byte ptr [bp+var_2]
jmp short loc_C8DE
; ---------------------------------------------------------------------------
loc_C8A9:
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
imul bx, size rgb_t
mov al, byte ptr _grp_palette[bx+di]
cbw
mov [bp+var_2], ax
mov ax, 64h ; 'd'
@ -5170,20 +5170,20 @@ loc_C8A9:
idiv bx
mov [bp+var_2], ax
mov bx, si
imul bx, 3
mov al, [bx+di+170Ah]
imul bx, size rgb_t
mov al, byte ptr _grp_palette[bx+di]
mov dl, byte ptr [bp+var_2]
neg dl
add al, dl
loc_C8DE:
mov bx, si
imul bx, 3
imul bx, size rgb_t
mov _z_Palettes[bx+di], al
inc di
loc_C8E8:
cmp di, 3
cmp di, size rgb_t
jge short loc_C8F0
jmp loc_C86B
; ---------------------------------------------------------------------------
@ -5192,7 +5192,7 @@ loc_C8F0:
inc si
loc_C8F1:
cmp si, 10h
cmp si, COLOR_COUNT
jge short loc_C8F9
jmp loc_C867
; ---------------------------------------------------------------------------
@ -5435,14 +5435,8 @@ arg_2 = word ptr 8
; ---------------------------------------------------------------------------
loc_EA34:
push 0
push 12h
push 0
call file_seek
push ds
push offset unk_141AA
push 30h ; '0'
call file_read
call file_seek pascal, 0, 12h, 0
call file_read pascal, ds, offset _grp_palette, size palette_t
push word_13507
call sub_C842
call file_close
@ -5477,14 +5471,8 @@ arg_2 = word ptr 8
; ---------------------------------------------------------------------------
loc_EA75:
push 0
push 12h
push 0
call file_seek
push ds
push offset unk_141AA
push 30h ; '0'
call file_read
call file_seek pascal, 0, 12h, 0
call file_read pascal, ds, offset _grp_palette, size palette_t
call file_close
xor ax, ax
pop bp
@ -5580,24 +5568,24 @@ loc_EB0D:
loc_EB11:
mov ax, dx
imul ax, 3
imul ax, size rgb_t
les bx, [bp+arg_0]
add bx, ax
add bx, cx
mov al, es:[bx]
mov bx, dx
imul bx, 3
imul bx, size rgb_t
add bx, cx
mov [bx+170Ah], al
mov byte ptr _grp_palette[bx], al
inc cx
loc_EB2C:
cmp cx, 3
cmp cx, size rgb_t
jl short loc_EB11
inc dx
loc_EB32:
cmp dx, 10h
cmp dx, COLOR_COUNT
jl short loc_EB0D
pop bp
retf
@ -6309,7 +6297,7 @@ include th01/hardware/graph[bss].asm
dd ?
dd ?
dd ?
unk_141AA db ? ;
include th01/formats/grp_palette[bss].asm
dd ?
dd ?
dd ?
@ -6594,20 +6582,6 @@ unk_141AA db ? ;
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
db ? ;
db ? ;
db ? ;
; void (*off_1464A)(void)
off_1464A dw ?
word_1464C dw ?

View File

@ -2975,8 +2975,8 @@ arg_0 = dword ptr 6
loc_D9F8:
call file_seek pascal, large 12h, 0
call file_read pascal, ds, offset palette_136D2, size palette_t
call _z_palette_set_all_show c, offset palette_136D2, ds
call file_read pascal, ds, offset _grp_palette, size palette_t
call _z_palette_set_all_show c, offset _grp_palette, ds
call file_close
xor ax, ax
pop bp
@ -3005,7 +3005,7 @@ arg_0 = dword ptr 6
loc_DA37:
call file_seek pascal, large 12h, 0
call file_read pascal, ds, offset palette_136D2, size palette_t
call file_read pascal, ds, offset _grp_palette, size palette_t
call file_close
xor ax, ax
pop bp
@ -3083,7 +3083,7 @@ loc_DAC4:
mov bx, dx
imul bx, size rgb_t
add bx, cx
mov byte ptr palette_136D2[bx], al
mov byte ptr _grp_palette[bx], al
inc cx
loc_DADF:
@ -3731,7 +3731,7 @@ include th01/hardware/vram_planes[bss].asm
dd ?
dd ?
dd ?
palette_136D2 palette_t <?>
include th01/formats/grp_palette[bss].asm
dd ?
dd ?
dd ?

View File

@ -6247,8 +6247,8 @@ arg_0 = dword ptr 6
loc_10ABA:
call file_seek pascal, large 18, 0
call file_read pascal, ds, offset palette_38988, size palette_t
call _z_palette_set_all_show c, offset palette_38988, ds
call file_read pascal, ds, offset _grp_palette, size palette_t
call _z_palette_set_all_show c, offset _grp_palette, ds
call file_close
xor ax, ax
pop bp
@ -6280,7 +6280,7 @@ loc_10AF9:
push 0
call file_seek
push ds
push offset palette_38988
push offset _grp_palette
push 30h ; '0'
call file_read
call file_close
@ -6378,7 +6378,7 @@ loc_10B86:
mov bx, dx
imul bx, size rgb_t
add bx, cx
mov byte ptr palette_38988[bx], al
mov byte ptr _grp_palette[bx], al
inc cx
loc_10BA1:
@ -9024,7 +9024,7 @@ loc_12EC7:
mov bx, [bp+var_C]
imul bx, size rgb_t
add bx, [bp+var_E]
cmp al, byte ptr palette_38988[bx]
cmp al, byte ptr _grp_palette[bx]
jz short loc_12F1B
mov bx, [bp+var_C]
imul bx, 3
@ -9032,7 +9032,7 @@ loc_12EC7:
mov bx, [bp+var_C]
imul bx, 3
add bx, [bp+var_E]
cmp al, byte ptr palette_38988[bx]
cmp al, byte ptr _grp_palette[bx]
jge short loc_12EFF
mov al, 1
jmp short loc_12F01
@ -27784,7 +27784,7 @@ include th01/hardware/vram_planes[bss].asm
dd ?
dd ?
dd ?
palette_38988 palette_t <?>
include th01/formats/grp_palette[bss].asm
dd ?
dd ?
dd ?

View File

@ -30788,14 +30788,14 @@ loc_2C9C6:
; ---------------------------------------------------------------------------
loc_2C9D4:
mov byte ptr palette_38988.colors[15 * size rgb_t][si], 0
mov byte ptr _grp_palette.colors[15 * size rgb_t][si], 0
inc si
loc_2C9DA:
cmp si, size rgb_t
jb short loc_2C9D4
push ds
push offset palette_38988
push offset _grp_palette
push ds
push offset _z_Palettes
push 0
@ -31504,7 +31504,7 @@ loc_2D011:
mov bx, [bp+var_4]
imul bx, size rgb_t
add bx, [bp+var_6]
mov al, byte ptr palette_38988[bx]
mov al, byte ptr _grp_palette[bx]
mov bx, [bp+var_4]
imul bx, size rgb_t
add bx, [bp+var_6]
@ -35916,7 +35916,7 @@ loc_2FB22:
mov bx, [bp+var_2]
imul bx, size rgb_t
add bx, [bp+var_4]
mov al, byte ptr palette_38988[bx]
mov al, byte ptr _grp_palette[bx]
mov bx, [bp+var_2]
imul bx, size rgb_t
add bx, [bp+var_4]