Voodoo now implements texture RGB as a multiplier input in the colour combiner.

This commit is contained in:
SarahW 2016-11-20 17:16:00 +00:00
commit e162b6166e
3 changed files with 41 additions and 1 deletions

View file

@ -1628,6 +1628,13 @@ static inline void voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo
addbyte(0x7e);
addbyte(0xc1);
}
if (cc_mselect == CC_MSELECT_TEXRGB)
{
addbyte(0xf3); /*MOVD XMM4, XMM0*/
addbyte(0x0f);
addbyte(0x7e);
addbyte(0xe0);
}
if ((params->fbzMode & FBZ_CHROMAKEY))
{
@ -2095,6 +2102,16 @@ static inline void voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo
addlong(offsetof(voodoo_state_t, tex_a));
addbyte(2);
break;
case CC_MSELECT_TEXRGB:
addbyte(0x66); /*PUNPCKLBW XMM4, XMM2*/
addbyte(0x0f);
addbyte(0x60);
addbyte(0xe2);
addbyte(0xf3); /*MOVQ XMM3, XMM4*/
addbyte(0x0f);
addbyte(0x7e);
addbyte(0xdc);
break;
default:
addbyte(0x66); /*PXOR XMM3, XMM3*/
addbyte(0x0f);