summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/zeus2.cpp
diff options
context:
space:
mode:
author Ted Green <tedgreen99@inbox.com>2016-06-23 10:48:33 -0600
committer Ted Green <tedgreen99@inbox.com>2016-06-23 10:48:33 -0600
commitb07e498b11353c7b35f462ac6402315845019438 (patch)
tree978eea9b5cb2ceb6410851eb3b34011aff44fc51 /src/devices/video/zeus2.cpp
parentdce97793883c16eb61cf41945953b2b19335286e (diff)
zeus2: Changed texture size selection and attempt to extract last parameters from quad 14 (nw)
Diffstat (limited to 'src/devices/video/zeus2.cpp')
-rw-r--r--src/devices/video/zeus2.cpp106
1 files changed, 60 insertions, 46 deletions
diff --git a/src/devices/video/zeus2.cpp b/src/devices/video/zeus2.cpp
index 425e44be326..4887b70c688 100644
--- a/src/devices/video/zeus2.cpp
+++ b/src/devices/video/zeus2.cpp
@@ -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
/* extract the translation point from the raw data */
- //m_state->zeus_point[0] = m_state->convert_float(databuffer[11]);
- //m_state->zeus_point[1] = m_state->convert_float(databuffer[12]);
- //m_state->zeus_point[2] = m_state->convert_float(databuffer[13]);
- // 10???
+ m_state->zeus_point[0] = m_state->convert_float(databuffer[10]);
+ m_state->zeus_point[1] = m_state->convert_float(databuffer[11]);
+ m_state->zeus_point[2] = m_state->convert_float(databuffer[12]);
+ // 13???
}
else {
//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();
int texmode = texdata & 0xffff;
- switch (texmode)
+ // Just a guess but seems to work
+ switch ((texmode >> 2) & 3)
{
- //case 0x18e: // atlantis
- // 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 */
+ case 3:
extra.texwidth = 256;
break;
-
- case 0x18a: // atlantis
- case 0x059: /* crusnexo */
- case 0x0d9: /* crusnexo */
- case 0x119: /* crusnexo: license plates */
- case 0x159: /* crusnexo */
+ case 2:
extra.texwidth = 128;
break;
-
- case 0x055: /* crusnexo */
- case 0x145: // atlantis
- case 0x155: /* crusnexo */
+ case 1:
extra.texwidth = 64;
break;
-
- case 0x000: // thegrid guess
- case 0x120: // thegrid guess
- case 0x140: // atlantis
- case 0x141: // atlantis
- extra.texwidth = 32;
- break;
-
+ case 0:
default:
- {
- static UINT8 hits[0x10000];
- if (!hits[(texdata & 0xffff)])
- {
- hits[(texdata & 0xffff)] = 1;
- printf("texMode = %04X\n", (texdata & 0xffff));
- }
+ extra.texwidth = 32;
break;
}
- }
+
+ //switch (texmode)
+ //{
+ //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;
+ // 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.zoffset = 0;//m_zeusbase[0x7e] >> 16;