Clean up namcos21 palette handling; fix gal3.c generic_paletteram regression and add note (nw)

This commit is contained in:
Alex W. Jackson 2014-04-24 09:40:13 +00:00
parent 26a8161792
commit 5021bc907f
4 changed files with 19 additions and 44 deletions

View File

@ -146,7 +146,7 @@ public:
//UINT32 *m_mpSharedRAM1;
UINT16 m_namcos21_video_enable;
required_shared_ptr<UINT16> m_rso_shared_ram;
required_shared_ptr<UINT16> m_generic_paletteram_16;
optional_shared_ptr<UINT16> m_generic_paletteram_16;
UINT32 m_led_mst;
UINT32 m_led_slv;
DECLARE_READ32_MEMBER(led_mst_r);
@ -176,6 +176,11 @@ VIDEO_START_MEMBER(gal3_state,gal3)
}
/* FIXME: this code has simply been copypasted from namcos21.c
(which has subsequently been rewritten to use generic MAME
palette handling) with a 32-bit CPU it's rather unlikely
that the palette RAM is actually laid out this way */
void gal3_state::update_palette( )
{
int i;

View File

@ -1043,18 +1043,6 @@ READ16_MEMBER(namcos21_state::data2_r)
return m_mpDataROM[0x100000/2+offset];
}
/* palette memory handlers */
READ16_MEMBER(namcos21_state::paletteram16_r)
{
return m_generic_paletteram_16[offset];
}
WRITE16_MEMBER(namcos21_state::paletteram16_w)
{
COMBINE_DATA(&m_generic_paletteram_16[offset]);
}
/******************************************************************************/
WRITE16_MEMBER(namcos21_state::NAMCO_C139_SCI_buffer_w){}
READ16_MEMBER(namcos21_state::NAMCO_C139_SCI_buffer_r){ return 0; }
@ -1076,7 +1064,8 @@ READ16_MEMBER(namcos21_state::NAMCO_C139_SCI_register_r){ return 0; }
AM_RANGE(0x480000, 0x4807ff) AM_READWRITE(namcos21_depthcue_r,namcos21_depthcue_w) /* Air Combat */ \
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(c355_obj_ram_r,c355_obj_ram_w) \
AM_RANGE(0x720000, 0x720007) AM_READWRITE(c355_obj_position_r,c355_obj_position_w) \
AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_SHARE("paletteram") \
AM_RANGE(0x740000, 0x74ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") \
AM_RANGE(0x750000, 0x75ffff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") \
AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_SHARE("mpsharedram1") \
@ -1353,7 +1342,8 @@ static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x180000, 0x19ffff) AM_RAM /* work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos21_68k_gpu_C148_r,namcos21_68k_gpu_C148_w)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("winrun_comram")
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_SHARE("paletteram")
AM_RANGE(0x400000, 0x40ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x410000, 0x41ffff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0x600000, 0x6fffff) AM_READ(gpu_data_r)
AM_RANGE(0xc00000, 0xcfffff) AM_READWRITE(winrun_gpu_videoram_r,winrun_gpu_videoram_w)
AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE(winrun_gpu_register_r,winrun_gpu_register_w)
@ -1415,7 +1405,8 @@ ADDRESS_MAP_END
#define DRIVEYES_68K_COMMON \
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(c355_obj_ram_r,c355_obj_ram_w) \
AM_RANGE(0x720000, 0x720007) AM_READWRITE(c355_obj_position_r,c355_obj_position_w) \
AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_SHARE("paletteram") \
AM_RANGE(0x740000, 0x74ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") \
AM_RANGE(0x750000, 0x75ffff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") \
AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_SHARE("mpsharedram1") \
@ -1524,6 +1515,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", namcos21)
MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_PALETTE_FORMAT(XBRG)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
@ -1580,6 +1572,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", namcos21)
MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_PALETTE_FORMAT(XBRG)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
@ -1638,9 +1631,11 @@ static MACHINE_CONFIG_START( winrun, namcos21_state )
MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS)
MCFG_PALETTE_FORMAT(XBRG)
MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

View File

@ -37,8 +37,7 @@ public:
m_mpSharedRAM1(*this,"mpsharedram1"),
m_mpDualPortRAM(*this,"mpdualportram"),
m_master_dsp_code(*this,"master_dsp_code"),
m_dsp(*this, "dsp"),
m_generic_paletteram_16(*this, "paletteram") { }
m_dsp(*this, "dsp") { }
optional_shared_ptr<UINT16> m_winrun_dspbios;
optional_shared_ptr<UINT16> m_winrun_polydata;
@ -49,7 +48,6 @@ public:
optional_shared_ptr<UINT16> m_master_dsp_code;
optional_device<cpu_device> m_dsp;
required_shared_ptr<UINT16> m_generic_paletteram_16;
UINT8 *m_videoram;
UINT16 *m_winrun_dspcomram;
@ -121,8 +119,6 @@ public:
DECLARE_WRITE16_MEMBER(shareram1_w);
DECLARE_READ16_MEMBER(datarom_r);
DECLARE_READ16_MEMBER(data2_r);
DECLARE_READ16_MEMBER(paletteram16_r);
DECLARE_WRITE16_MEMBER(paletteram16_w);
DECLARE_WRITE16_MEMBER(NAMCO_C139_SCI_buffer_w);
DECLARE_READ16_MEMBER(NAMCO_C139_SCI_buffer_r);
DECLARE_WRITE16_MEMBER(NAMCO_C139_SCI_register_w);

View File

@ -126,16 +126,8 @@ VIDEO_START_MEMBER(namcos21_state,namcos21)
namcos2_shared_state::c355_obj_code2tile_delegate() );
}
static void
update_palette( running_machine &machine )
{
namcos21_state *state = machine.driver_data<namcos21_state>();
int i;
INT16 data1,data2;
int r,g,b;
/*
Palette:
/* Palette:
0x0000..0x1fff sprite palettes (0x10 sets of 0x100 colors)
0x2000..0x3fff polygon palette bank0 (0x10 sets of 0x200 colors)
@ -151,18 +143,6 @@ update_palette( running_machine &machine )
Probably the selected palette is determined by most significant bits of z-code.
This is not yet hooked up.
*/
for( i=0; i<NAMCOS21_NUM_COLORS; i++ )
{
data1 = state->m_generic_paletteram_16[0x00000/2+i];
data2 = state->m_generic_paletteram_16[0x10000/2+i];
r = data1>>8;
g = data1&0xff;
b = data2&0xff;
state->m_palette->set_pen_color(i, rgb_t(r,g,b) );
}
} /* update_palette */
UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@ -170,7 +150,6 @@ UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind1
UINT8 *videoram = m_videoram;
int pivot = 3;
int pri;
update_palette(machine());
bitmap.fill(0xff, cliprect );
if( m_gametype != NAMCOS21_WINRUN91 )