From 98688f7b6cb08131e8f8598722ef4c3b049bed37 Mon Sep 17 00:00:00 2001 From: angelosa Date: Fri, 2 Feb 2018 19:54:53 +0100 Subject: namcona1.cpp: fix bogus palette transfers for xday2 [Angelo Salese] --- src/mame/drivers/namcona1.cpp | 11 ++++++++--- src/mame/video/namcona1.cpp | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp index a73f1217153..6186eb5d4e4 100644 --- a/src/mame/drivers/namcona1.cpp +++ b/src/mame/drivers/namcona1.cpp @@ -340,6 +340,11 @@ int namcona1_state::transfer_dword( uint32_t dest, uint32_t source ) { m_spriteram[(dest-0xfff000)/2] = data; } + // xday2 writes to 0x1e01200 / 0x1e01400, assume it's just a mirror for paletteram transfer + else if( dest>=0xf00000*2 && dest<0xf02000*2 ) + { + paletteram_w(space, (dest-0xf00000*2)/2, data, 0xffff ); + } else { logerror( "bad blit dest %08x\n", dest ); @@ -557,9 +562,9 @@ static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16, namcona1_state ) AM_RANGE(0xf00000, 0xf01fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram") AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(gfxram_r, gfxram_w) AM_SHARE("cgram") AM_RANGE(0xff0000, 0xffbfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") - AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */ + AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */ AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_SHARE("scroll") /* scroll registers */ - AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_SHARE("spriteram") /* spriteram */ + AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_SHARE("spriteram") /* spriteram */ ADDRESS_MAP_END @@ -1342,7 +1347,7 @@ ROM_START( xday2 ) ROM_END // NA-1 (C69 MCU) -GAME( 1992, bkrtmaq, 0, namcona1, namcona1_quiz, namcona1_state, bkrtmaq, ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1992, bkrtmaq, 0, namcona1, namcona1_quiz, namcona1_state, bkrtmaq, ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1992, cgangpzl, 0, namcona1, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1992, cgangpzlj, cgangpzl, namcona1, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1992, exvania, 0, namcona1, namcona1_joy, namcona1_state, exvania, ROT0, "Namco", "Exvania (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) diff --git a/src/mame/video/namcona1.cpp b/src/mame/video/namcona1.cpp index b2d8caf4fce..92046d4ed1d 100644 --- a/src/mame/video/namcona1.cpp +++ b/src/mame/video/namcona1.cpp @@ -562,7 +562,7 @@ uint32_t namcona1_state::screen_update(screen_device &screen, bitmap_ind16 &bitm bitmap.fill(0xff, cliprect ); /* background color? */ - if( m_vreg[0x8e/2] && screen_enabled(display_rect) == true) + if( m_vreg[0x8e/2] && screen_enabled(display_rect) == true ) { /* gfx enabled */ if( m_palette_is_dirty ) -- cgit v1.2.3 From 347c7a990ba6bc5cf6c628ba2ae13476d6176532 Mon Sep 17 00:00:00 2001 From: angelosa Date: Fri, 2 Feb 2018 21:52:28 +0100 Subject: namcona1.cpp: fixed horizontal scroll adjust and background color pen, improves X-Day 2 video emulation [Angelo Salese] --- src/mame/video/namcona1.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mame/video/namcona1.cpp b/src/mame/video/namcona1.cpp index 92046d4ed1d..aeea68fc663 100644 --- a/src/mame/video/namcona1.cpp +++ b/src/mame/video/namcona1.cpp @@ -476,7 +476,7 @@ void namcona1_state::draw_background(screen_device &screen, bitmap_ind16 &bitmap const uint16_t *scroll = &m_scroll[which * 0x400/2]; rectangle clip = cliprect; int xadjust = 0x3a - which*2; - int scrollx = 0; + int scrollx = xadjust; int scrolly = 0; for( int line = 0; line < 256; line++ ) @@ -489,7 +489,10 @@ void namcona1_state::draw_background(screen_device &screen, bitmap_ind16 &bitmap if( xdata ) { /* screenwise linescroll */ - scrollx = xadjust+xdata; + if(xdata & 0x4000) // resets current xscroll value (knuckle head) + scrollx = xadjust+xdata; + else + scrollx += xdata & 0x1ff; } if( ydata&0x4000 ) @@ -560,8 +563,10 @@ uint32_t namcona1_state::screen_update(screen_device &screen, bitmap_ind16 &bitm screen.priority().fill(0, cliprect ); - bitmap.fill(0xff, cliprect ); /* background color? */ - + // guess for X-Day 2 (flames in attract), seems wrong for Emeraldia but unsure +// bitmap.fill(0xff, cliprect ); /* background color? */ + bitmap.fill((m_vreg[0xba/2] & 0xf) * 256, cliprect ); + if( m_vreg[0x8e/2] && screen_enabled(display_rect) == true ) { /* gfx enabled */ -- cgit v1.2.3