Previous 199869 Revisions Next

r31977 Sunday 7th September, 2014 at 22:46:10 UTC by Alex Jackson
ddragon3.c: fix m68k byte smearing regression in wwfwfest (nw)
[src/mame/drivers]ddragon3.c
[src/mame/includes]ddragon3.h
[src/mame/video]ddragon3.c

trunk/src/mame/drivers/ddragon3.c
r31976r31977
277277/*- Priority Control -*/
278278
279279
280WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write)
280WRITE8_MEMBER(wwfwfest_state::wwfwfest_priority_w)
281281{
282   m_pri = data & 0xff;
282   m_pri = data;
283283}
284284
285285
r31976r31977
362362   AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w)
363363   AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w)
364364   AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite)
365   AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write)
365   AM_RANGE(0x140010, 0x140011) AM_WRITE8(wwfwfest_priority_w, 0x00ff)
366366   AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1")
367367   AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2")
368368   AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3")
trunk/src/mame/includes/ddragon3.h
r31976r31977
4949
5050   /* misc */
5151   UINT16          m_io_reg[8];
52   UINT16 m_pri;
52   UINT8 m_pri;
5353
5454   /* devices */
5555   required_device<cpu_device> m_maincpu;
r31976r31977
100100
101101
102102   //required_device<buffered_spriteram16_device> m_spriteram;
103   DECLARE_WRITE16_MEMBER(wwfwfest_1410_write);
103   DECLARE_WRITE8_MEMBER(wwfwfest_priority_w);
104104   DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write);
105105   DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w);
106106   DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w);
trunk/src/mame/video/ddragon3.c
r31976r31977
110110
111111WRITE16_MEMBER(wwfwfest_state::wwfwfest_fg0_videoram_w)
112112{
113   /* Videoram is 8 bit, upper & lower byte writes end up in the same place */
114   if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7) {
115      COMBINE_DATA(&m_fg0_videoram[offset]);
116   } else if (ACCESSING_BITS_8_15) {
117      m_fg0_videoram[offset]=(data>>8)&0xff;
118   } else {
119      m_fg0_videoram[offset]=data&0xff;
120   }
113   /* Videoram is 8 bit, upper & lower byte writes end up in the same place due to m68k byte smearing */
114   m_fg0_videoram[offset]=data&0xff;
121115
122116   m_fg0_tilemap->mark_tile_dirty(offset/2);
123117}
r31976r31977
292286
293287UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
294288{
295   if (m_pri == 0x0078) {
289   if (m_pri == 0x78) {
296290      m_fg_tilemap->set_scrolly(0, m_fg_scrolly  );
297291      m_fg_tilemap->set_scrollx(0, m_fg_scrollx  + m_bg0_dx);
298292      m_bg_tilemap->set_scrolly(0, m_bg_scrolly  );
r31976r31977
306300
307301   /* todo : which bits of pri are significant to the order */
308302
309   if (m_pri == 0x007b) {
303   if (m_pri == 0x7b) {
310304      m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
311305      m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
312306      draw_sprites(bitmap,cliprect);
313307   }
314308
315   if (m_pri == 0x007c) {
309   if (m_pri == 0x7c) {
316310      m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
317311      draw_sprites(bitmap,cliprect);
318312      m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
319313   }
320314
321   if (m_pri == 0x0078) {
315   if (m_pri == 0x78) {
322316      m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
323317      m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0);
324318      draw_sprites(bitmap,cliprect);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team