Previous 199869 Revisions Next

r31725 Thursday 21st August, 2014 at 12:15:11 UTC by Osso
tc0480scp.c: added missing save states + small cleanup, improves but doesn't totally fix racingb save state (nw)
[src/mame/drivers]taito_z.c
[src/mame/video]tc0480scp.c tc0480scp.h

trunk/src/mame/drivers/taito_z.c
r31724r31725
951951
952952Graphics problems:
953953- tearing in the main road (tile layer 3 offset?)
954  likely cause is mame/video/taitoic.c in tc0480scp_bg23_draw:
954  likely cause is mame/video/tc0480scp.c in bg23_draw:
955955      ** flawed calc ?? **
956      x_index -= (tc0480scp->x_offs - 0x1f + layer * 4) * ((row_zoom & 0xff) << 8);
956      x_index -= (m_x_offset - 0x1f + layer * 4) * ((row_zoom & 0xff) << 8);
957957- car sprites palette flickering
958958- layer missing sometimes (random?) ie. motor block sprite after inserting coin
959959
trunk/src/mame/video/tc0480scp.c
r31724r31725
139139
140140tc0480scp_device::tc0480scp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
141141   : device_t(mconfig, TC0480SCP, "Taito TC0480SCP", tag, owner, clock, "tc0480scp", __FILE__),
142   // m_ctrl[0x18](0),
143   m_ram(NULL),
144   //m_bg_ram[4](NULL),
145142   m_tx_ram(NULL),
146143   m_char_ram(NULL),
147   //m_bgscroll_ram[4](NULL),
148   //m_rowzoom_ram[4](NULL),
149   //m_bgcolumn_ram[4](NULL),
150   //m_bgscrollx[4](NULL),
151   //m_bgscrolly[4](NULL),
152144   m_pri_reg(0),
153145   m_dblwidth(0),
154146   m_gfxnum(0),
r31724r31725
163155   m_gfxdecode(*this),
164156   m_palette(*this)
165157{
158   memset(m_ctrl, 0, sizeof(m_ctrl));
159   
160   for (int i = 0; i < 4; i++)
161   {
162      m_bg_ram[i] = NULL;
163      m_bgscroll_ram[i] = NULL;
164      m_rowzoom_ram[i] = NULL;
165      m_bgcolumn_ram[i] = NULL;
166      m_bgscrollx[i] = NULL;
167      m_bgscrolly[i] = NULL;
168   }
166169}
167170
168171//-------------------------------------------------
r31724r31725
275278      m_tilemap[3][i]->set_scroll_rows(512);
276279   }
277280
278   m_ram = auto_alloc_array_clear(machine(), UINT16, TC0480SCP_RAM_SIZE / 2);
279
281   m_ram.resize_and_clear(TC0480SCP_RAM_SIZE / 2);
280282   set_layer_ptrs();
281283
282284   /* create the char set (gfx will then be updated dynamically from RAM) */
283285   m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, tc0480scp_charlayout, (UINT8 *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, 0)));
284286
285   save_pointer(NAME(m_ram), TC0480SCP_RAM_SIZE / 2);
287   save_item(NAME(m_ram));
286288   save_item(NAME(m_ctrl));
289   save_item(NAME(m_bgscrollx));
290   save_item(NAME(m_bgscrolly));
291   save_item(NAME(m_pri_reg));
287292   save_item(NAME(m_dblwidth));
288293   machine().save().register_postload(save_prepost_delegate(FUNC(tc0480scp_device::postload), this));
289294}
trunk/src/mame/video/tc0480scp.h
r31724r31725
6969   // internal state
7070   UINT16           m_ctrl[0x18];
7171
72   UINT16 *        m_ram;
72   dynamic_array<UINT16> m_ram;
7373   UINT16 *         m_bg_ram[4];
7474   UINT16 *         m_tx_ram;
7575   UINT16 *         m_char_ram;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team