zeus2: Changed texture size selection and attempt to extract last parameters from quad 14 (nw)

This commit is contained in:
Ted Green 2016-06-23 10:48:33 -06:00
parent dce9779388
commit b07e498b11

View File

@ -1094,10 +1094,10 @@ void zeus2_renderer::zeus2_draw_quad(const UINT32 *databuffer, UINT32 texdata, i
// buffer 10-13 ???? 00000000 1FF7FC00 00000000 1FF7FC00 -- quad 14 // buffer 10-13 ???? 00000000 1FF7FC00 00000000 1FF7FC00 -- quad 14
/* extract the translation point from the raw data */ /* extract the translation point from the raw data */
//m_state->zeus_point[0] = m_state->convert_float(databuffer[11]); m_state->zeus_point[0] = m_state->convert_float(databuffer[10]);
//m_state->zeus_point[1] = m_state->convert_float(databuffer[12]); m_state->zeus_point[1] = m_state->convert_float(databuffer[11]);
//m_state->zeus_point[2] = m_state->convert_float(databuffer[13]); m_state->zeus_point[2] = m_state->convert_float(databuffer[12]);
// 10??? // 13???
} }
else { else {
//printf("renderMode: %06X\n", m_state->m_renderMode); //printf("renderMode: %06X\n", m_state->m_renderMode);
@ -1215,58 +1215,72 @@ void zeus2_renderer::zeus2_draw_quad(const UINT32 *databuffer, UINT32 texdata, i
zeus2_poly_extra_data& extra = this->object_data_alloc(); zeus2_poly_extra_data& extra = this->object_data_alloc();
int texmode = texdata & 0xffff; int texmode = texdata & 0xffff;
switch (texmode) // Just a guess but seems to work
switch ((texmode >> 2) & 3)
{ {
//case 0x18e: // atlantis case 3:
// extra.texwidth = 512;
// break;
case 0x14d: // atlantis
case 0x18e: // atlantis
case 0x01d: /* crusnexo: RHS of score bar */
case 0x05d: /* crusnexo: background, road */
case 0x0dd: /* crusnexo: license plate letters */
case 0x11d: /* crusnexo: LHS of score bar */
case 0x15d: /* crusnexo */
case 0x85d: /* crusnexo */
case 0x95d: /* crusnexo */
case 0xc1d: /* crusnexo */
case 0xc5d: /* crusnexo */
extra.texwidth = 256; extra.texwidth = 256;
break; break;
case 2:
case 0x18a: // atlantis
case 0x059: /* crusnexo */
case 0x0d9: /* crusnexo */
case 0x119: /* crusnexo: license plates */
case 0x159: /* crusnexo */
extra.texwidth = 128; extra.texwidth = 128;
break; break;
case 1:
case 0x055: /* crusnexo */
case 0x145: // atlantis
case 0x155: /* crusnexo */
extra.texwidth = 64; extra.texwidth = 64;
break; break;
case 0:
case 0x000: // thegrid guess default:
case 0x120: // thegrid guess
case 0x140: // atlantis
case 0x141: // atlantis
extra.texwidth = 32; extra.texwidth = 32;
break; break;
}
default: //switch (texmode)
{ //{
static UINT8 hits[0x10000]; //case 0x14d: // atlantis
if (!hits[(texdata & 0xffff)]) //case 0x18e: // atlantis
{ //case 0x01d: /* crusnexo: RHS of score bar */
hits[(texdata & 0xffff)] = 1; //case 0x05d: /* crusnexo: background, road */
printf("texMode = %04X\n", (texdata & 0xffff)); //case 0x0dd: /* crusnexo: license plate letters */
} //case 0x11d: /* crusnexo: LHS of score bar */
break; //case 0x15d: /* crusnexo */
} //case 0x85d: /* crusnexo */
} //case 0x95d: /* crusnexo */
//case 0xc1d: /* crusnexo */
//case 0xc5d: /* crusnexo */
// extra.texwidth = 256;
// break;
//case 0x18a: // atlantis
//case 0x059: /* crusnexo */
//case 0x0d9: /* crusnexo */
//case 0x119: /* crusnexo: license plates */
//case 0x159: /* crusnexo */
// extra.texwidth = 128;
// break;
//case 0x055: /* crusnexo */
//case 0x145: // atlantis
//case 0x155: /* crusnexo */
// extra.texwidth = 64;
// break;
//case 0x000: // thegrid guess
//case 0x120: // thegrid guess
//case 0x140: // atlantis
//case 0x141: // atlantis
// extra.texwidth = 32;
// break;
//default:
//{
// static UINT8 hits[0x10000];
// if (!hits[(texdata & 0xffff)])
// {
// hits[(texdata & 0xffff)] = 1;
// printf("texMode = %04X\n", (texdata & 0xffff));
// }
// break;
//}
//}
extra.solidcolor = 0;//m_zeusbase[0x00] & 0x7fff; extra.solidcolor = 0;//m_zeusbase[0x00] & 0x7fff;
extra.zoffset = 0;//m_zeusbase[0x7e] >> 16; extra.zoffset = 0;//m_zeusbase[0x7e] >> 16;