mirror of
https://github.com/holub/mame
synced 2025-06-04 20:06:28 +03:00
Clean up namcos21 palette handling; fix gal3.c generic_paletteram regression and add note (nw)
This commit is contained in:
parent
26a8161792
commit
5021bc907f
@ -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;
|
||||
|
@ -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")
|
||||
|
@ -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);
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user