mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
itech32.c, btime.c, scregg.c: fix generic_paletteram regression (nw)
This commit is contained in:
parent
892ef2fba9
commit
344a7c89d5
@ -153,6 +153,7 @@
|
||||
#define PALETTE_FORMAT_XBRG raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 8,0,16>)
|
||||
#define PALETTE_FORMAT_XGRB raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 8,16,0>)
|
||||
#define PALETTE_FORMAT_RGBX raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 24,16,8>)
|
||||
#define PALETTE_FORMAT_GRBX raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 16,24,8>)
|
||||
|
||||
|
||||
|
||||
|
@ -880,7 +880,7 @@ static ADDRESS_MAP_START( timekill_map, AS_PROGRAM, 16, itech32_state )
|
||||
AM_RANGE(0x078000, 0x078001) AM_WRITE(sound_data_w)
|
||||
AM_RANGE(0x080000, 0x08007f) AM_READWRITE(itech32_video_r, itech32_video_w) AM_SHARE("video")
|
||||
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(int1_ack_w)
|
||||
AM_RANGE(0x0c0000, 0x0c7fff) AM_RAM_WRITE(timekill_paletteram_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x0c0000, 0x0c7fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("main_rom")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -898,7 +898,7 @@ static ADDRESS_MAP_START( bloodstm_map, AS_PROGRAM, 16, itech32_state )
|
||||
AM_RANGE(0x400000, 0x400001) AM_WRITE(watchdog_reset16_w)
|
||||
AM_RANGE(0x480000, 0x480001) AM_WRITE(sound_data_w)
|
||||
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE(bloodstm_video_r, bloodstm_video_w) AM_SHARE("video")
|
||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(bloodstm_paletteram_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(bloodstm_paletteram_w) AM_SHARE("palette")
|
||||
AM_RANGE(0x700000, 0x700001) AM_WRITE(bloodstm_plane_w)
|
||||
AM_RANGE(0x780000, 0x780001) AM_READ_PORT("EXTRA")
|
||||
AM_RANGE(0x800000, 0x87ffff) AM_MIRROR(0x780000) AM_ROM AM_REGION("user1", 0) AM_SHARE("main_rom")
|
||||
@ -962,7 +962,7 @@ AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
|
||||
AM_RANGE(0x08e000, 0x08e003) AM_READ_PORT("8e000") AM_WRITENOP
|
||||
AM_RANGE(0x100000, 0x10000f) AM_WRITE(drivedge_zbuf_control_w) AM_SHARE("drivedge_zctl")
|
||||
AM_RANGE(0x180000, 0x180003) AM_WRITE(drivedge_color0_w)
|
||||
AM_RANGE(0x1a0000, 0x1bffff) AM_RAM_WRITE(drivedge_paletteram_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x1a0000, 0x1bffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x1c0000, 0x1c0003) AM_WRITENOP
|
||||
AM_RANGE(0x1e0000, 0x1e0113) AM_READWRITE(itech020_video_r, itech020_video_w) AM_SHARE("video")
|
||||
AM_RANGE(0x1e4000, 0x1e4003) AM_WRITE(tms_reset_assert_w)
|
||||
@ -1000,7 +1000,7 @@ static ADDRESS_MAP_START( itech020_map, AS_PROGRAM, 32, itech32_state )
|
||||
AM_RANGE(0x480000, 0x480003) AM_WRITE(sound_data32_w)
|
||||
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE(itech020_video_r, itech020_video_w) AM_SHARE("video")
|
||||
AM_RANGE(0x578000, 0x57ffff) AM_READNOP /* touched by protection */
|
||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(itech020_paletteram_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_SHARE("nvram")
|
||||
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
|
||||
AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
|
||||
@ -1679,6 +1679,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PALETTE_ADD("palette", 8192)
|
||||
MCFG_PALETTE_FORMAT(GRBX)
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||
@ -1711,10 +1712,12 @@ static MACHINE_CONFIG_DERIVED( bloodstm, timekill )
|
||||
/* video hardware */
|
||||
MCFG_PALETTE_MODIFY("palette")
|
||||
MCFG_PALETTE_ENTRIES(32768)
|
||||
MCFG_PALETTE_FORMAT(XBGR)
|
||||
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_LITTLE)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( drivedge, bloodstm )
|
||||
static MACHINE_CONFIG_DERIVED( drivedge, timekill )
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
@ -1727,6 +1730,10 @@ static MACHINE_CONFIG_DERIVED( drivedge, bloodstm )
|
||||
MCFG_CPU_ADD("dsp2", TMS32031, TMS_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(drivedge_tms2_map)
|
||||
|
||||
MCFG_PALETTE_MODIFY("palette")
|
||||
MCFG_PALETTE_ENTRIES(32768)
|
||||
MCFG_PALETTE_FORMAT(XBGR)
|
||||
|
||||
MCFG_DEVICE_MODIFY("via6522_0")
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(itech32_state,drivedge_portb_out))
|
||||
MCFG_VIA6522_CB2_HANDLER(WRITELINE(itech32_state,drivedge_turbo_light))
|
||||
@ -1738,7 +1745,7 @@ static MACHINE_CONFIG_DERIVED( drivedge, bloodstm )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( sftm, bloodstm )
|
||||
static MACHINE_CONFIG_DERIVED( sftm, timekill )
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
@ -1750,6 +1757,10 @@ static MACHINE_CONFIG_DERIVED( sftm, bloodstm )
|
||||
MCFG_CPU_PROGRAM_MAP(sound_020_map)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(itech32_state, irq1_line_assert, 4*60)
|
||||
|
||||
MCFG_PALETTE_MODIFY("palette")
|
||||
MCFG_PALETTE_ENTRIES(32768)
|
||||
MCFG_PALETTE_FORMAT(XRGB)
|
||||
|
||||
/* via */
|
||||
MCFG_DEVICE_REMOVE("via6522_0")
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -23,9 +23,7 @@ public:
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_generic_paletteram_8(*this, "paletteram")
|
||||
{ }
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
/* memory pointers */
|
||||
optional_shared_ptr<UINT8> m_rambase;
|
||||
@ -64,7 +62,6 @@ public:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_shared_ptr<UINT8> m_generic_paletteram_8;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(audio_nmi_enable_w);
|
||||
DECLARE_WRITE8_MEMBER(lnc_w);
|
||||
|
@ -34,9 +34,7 @@ public:
|
||||
m_dsp1(*this, "dsp1"),
|
||||
m_dsp2(*this, "dsp2"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_generic_paletteram_16(*this, "paletteram"),
|
||||
m_generic_paletteram_32(*this, "paletteram") { }
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
optional_shared_ptr<UINT16> m_main_ram;
|
||||
optional_shared_ptr<UINT16> m_nvram;
|
||||
@ -133,10 +131,7 @@ public:
|
||||
DECLARE_WRITE32_MEMBER(itech020_color1_w);
|
||||
DECLARE_WRITE32_MEMBER(itech020_color2_w);
|
||||
DECLARE_WRITE32_MEMBER(itech020_plane_w);
|
||||
DECLARE_WRITE16_MEMBER(timekill_paletteram_w);
|
||||
DECLARE_WRITE16_MEMBER(bloodstm_paletteram_w);
|
||||
DECLARE_WRITE32_MEMBER(drivedge_paletteram_w);
|
||||
DECLARE_WRITE32_MEMBER(itech020_paletteram_w);
|
||||
DECLARE_WRITE16_MEMBER(itech32_video_w);
|
||||
DECLARE_READ16_MEMBER(itech32_video_r);
|
||||
DECLARE_WRITE16_MEMBER(bloodstm_video_w);
|
||||
@ -199,6 +194,4 @@ public:
|
||||
optional_device<cpu_device> m_dsp2;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_shared_ptr<UINT16> m_generic_paletteram_16;
|
||||
required_shared_ptr<UINT32> m_generic_paletteram_32;
|
||||
};
|
||||
|
@ -301,62 +301,16 @@ WRITE32_MEMBER(itech32_state::itech020_plane_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE16_MEMBER(itech32_state::timekill_paletteram_w)
|
||||
{
|
||||
int r, g, b;
|
||||
|
||||
COMBINE_DATA(&m_generic_paletteram_16[offset]);
|
||||
|
||||
r = m_generic_paletteram_16[offset & ~1] & 0xff;
|
||||
g = m_generic_paletteram_16[offset & ~1] >> 8;
|
||||
b = m_generic_paletteram_16[offset | 1] >> 8;
|
||||
|
||||
m_palette->set_pen_color(offset / 2, rgb_t(r, g, b));
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(itech32_state::bloodstm_paletteram_w)
|
||||
{
|
||||
int r, g, b;
|
||||
|
||||
/* in test mode, the LSB is used; in game mode, the MSB is used */
|
||||
if (!ACCESSING_BITS_0_7 && (offset & 1))
|
||||
data >>= 8, mem_mask >>= 8;
|
||||
COMBINE_DATA(&m_generic_paletteram_16[offset]);
|
||||
{
|
||||
data >>= 8;
|
||||
mem_mask >>= 8;
|
||||
}
|
||||
|
||||
r = m_generic_paletteram_16[offset & ~1] & 0xff;
|
||||
g = m_generic_paletteram_16[offset & ~1] >> 8;
|
||||
b = m_generic_paletteram_16[offset | 1] & 0xff;
|
||||
|
||||
m_palette->set_pen_color(offset / 2, rgb_t(r, g, b));
|
||||
}
|
||||
|
||||
|
||||
WRITE32_MEMBER(itech32_state::drivedge_paletteram_w)
|
||||
{
|
||||
int r, g, b;
|
||||
|
||||
COMBINE_DATA(&m_generic_paletteram_32[offset]);
|
||||
|
||||
r = m_generic_paletteram_32[offset] & 0xff;
|
||||
g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
|
||||
b = (m_generic_paletteram_32[offset] >> 16) & 0xff;
|
||||
|
||||
m_palette->set_pen_color(offset, rgb_t(r, g, b));
|
||||
}
|
||||
|
||||
|
||||
WRITE32_MEMBER(itech32_state::itech020_paletteram_w)
|
||||
{
|
||||
int r, g, b;
|
||||
|
||||
COMBINE_DATA(&m_generic_paletteram_32[offset]);
|
||||
|
||||
r = (m_generic_paletteram_32[offset] >> 16) & 0xff;
|
||||
g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
|
||||
b = m_generic_paletteram_32[offset] & 0xff;
|
||||
|
||||
m_palette->set_pen_color(offset, rgb_t(r, g, b));
|
||||
m_palette->write(space, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user