summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@gmail.com>2018-02-02 15:57:26 -0500
committer Scott Stone <tafoid@gmail.com>2018-02-02 15:57:26 -0500
commit79f1113345f4abaaed17466f5b0243653c0d9781 (patch)
treee5a7bf3dab7ce8288618e226642c37540ec81d2d
parent10fe52177ca9fa20dc54561e7c17242ef70c1f94 (diff)
parent347c7a990ba6bc5cf6c628ba2ae13476d6176532 (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--src/mame/drivers/namcona1.cpp11
-rw-r--r--src/mame/video/namcona1.cpp15
2 files changed, 18 insertions, 8 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..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,9 +563,11 @@ uint32_t namcona1_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
screen.priority().fill(0, cliprect );
- bitmap.fill(0xff, cliprect ); /* background color? */
-
- if( m_vreg[0x8e/2] && screen_enabled(display_rect) == true)
+ // 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 */
if( m_palette_is_dirty )