From 0601d2d9197dddb539c0fb7ee5960ffcbabd963c Mon Sep 17 00:00:00 2001 From: TomW Date: Thu, 14 Jan 2016 20:41:34 +0000 Subject: [PATCH] Fixed clamping of T coordinate in Voodoo recompiler - fixes lightmaps in Starsiege Tribes --- src/vid_voodoo_codegen_x86.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/vid_voodoo_codegen_x86.h b/src/vid_voodoo_codegen_x86.h index f02c0bc..b1c145d 100644 --- a/src/vid_voodoo_codegen_x86.h +++ b/src/vid_voodoo_codegen_x86.h @@ -493,27 +493,27 @@ static inline void voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo addbyte(0xeb); addbyte(0xd3); /*SAR EAX, CL*/ addbyte(0xf8); - addbyte(0x80); /*SUB CL, 4*/ - addbyte(0xe9); - addbyte(4); + addbyte(0xd3); /*SAR EBX, CL*/ + addbyte(0xfb); addbyte(0x89); /*MOV EBP, EAX*/ addbyte(0xc5); - addbyte(0xd3); /*ROR EBX, CL*/ - addbyte(0xcb); + addbyte(0x89); /*MOV ECX, EBX*/ + addbyte(0xd9); addbyte(0x83); /*AND EBP, 0xf*/ addbyte(0xe5); addbyte(0xf); - addbyte(0x89); /*MOV ECX, EBX*/ - addbyte(0xd9); + addbyte(0xc1); /*SHL ECX, 4*/ + addbyte(0xe1); + addbyte(4); addbyte(0xc1); /*SAR EAX, 4*/ addbyte(0xf8); addbyte(4); addbyte(0x81); /*AND ECX, 0xf0*/ addbyte(0xe1); addlong(0xf0); - addbyte(0xc1); /*SAR EBX, 8*/ + addbyte(0xc1); /*SAR EBX, 4*/ addbyte(0xfb); - addbyte(8); + addbyte(4); addbyte(0x09); /*OR EBP, ECX*/ addbyte(0xcd); addbyte(0x8b); /*MOV ECX, state->lod[EDI]*/