From ea7464bd5be3925b81e26b6158dab2f70e816c86 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Thu, 24 Apr 2014 18:16:57 +0000 Subject: [PATCH] tatsumi.c: fix generic_paletteram regression (nw) --- src/mame/drivers/tatsumi.c | 15 +++++---------- src/mame/includes/tatsumi.h | 4 +--- src/mame/machine/tatsumi.c | 2 -- src/mame/video/tatsumi.c | 30 ------------------------------ 4 files changed, 6 insertions(+), 45 deletions(-) diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index e93a900e312..27d12f1b1c1 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -165,11 +165,6 @@ WRITE16_MEMBER(tatsumi_state::cyclwarr_cpu_bb_w) COMBINE_DATA(&m_cyclwarr_cpub_ram[offset]); } -READ16_MEMBER(tatsumi_state::cyclwarr_palette_r) -{ - return m_generic_paletteram_16[offset]; -} - READ16_MEMBER(tatsumi_state::cyclwarr_sprite_r) { return m_spriteram[offset]; @@ -218,7 +213,7 @@ WRITE16_MEMBER(tatsumi_state::cyclwarr_sound_w) static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x00000, 0x03fff) AM_RAM AM_RANGE(0x04000, 0x07fff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_SHARE("paletteram") + AM_RANGE(0x08000, 0x08fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_SHARE("videoram") AM_RANGE(0x0e800, 0x0e803) AM_WRITENOP // CRT AM_RANGE(0x0f000, 0x0f001) AM_READ_PORT("DSW") @@ -317,7 +312,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */ AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */ ADDRESS_MAP_END @@ -338,7 +333,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */ AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */ ADDRESS_MAP_END @@ -373,7 +368,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */ AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */ ADDRESS_MAP_END @@ -392,7 +387,7 @@ static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */ AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */ ADDRESS_MAP_END diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h index 2c22b16f447..43208bd4e4a 100644 --- a/src/mame/includes/tatsumi.h +++ b/src/mame/includes/tatsumi.h @@ -79,7 +79,6 @@ public: required_shared_ptr m_spriteram; DECLARE_READ16_MEMBER(cyclwarr_cpu_bb_r); DECLARE_WRITE16_MEMBER(cyclwarr_cpu_bb_w); - DECLARE_READ16_MEMBER(cyclwarr_palette_r); DECLARE_READ16_MEMBER(cyclwarr_sprite_r); DECLARE_WRITE16_MEMBER(cyclwarr_sprite_w); DECLARE_WRITE16_MEMBER(bigfight_a20000_w); @@ -113,7 +112,6 @@ public: DECLARE_READ16_MEMBER(roundup5_vram_r); DECLARE_WRITE16_MEMBER(roundup5_vram_w); DECLARE_WRITE16_MEMBER(roundup5_palette_w); - DECLARE_WRITE16_MEMBER(apache3_palette_w); DECLARE_WRITE16_MEMBER(roundup5_text_w); DECLARE_READ16_MEMBER(cyclwarr_videoram0_r); DECLARE_READ16_MEMBER(cyclwarr_videoram1_r); @@ -146,7 +144,7 @@ public: required_device m_oki; required_device m_gfxdecode; required_device m_palette; - required_shared_ptr m_generic_paletteram_16; + optional_shared_ptr m_generic_paletteram_16; }; /*----------- defined in machine/tatsumi.c -----------*/ diff --git a/src/mame/machine/tatsumi.c b/src/mame/machine/tatsumi.c index 7fc38bee72c..44972ec71bd 100644 --- a/src/mame/machine/tatsumi.c +++ b/src/mame/machine/tatsumi.c @@ -346,8 +346,6 @@ READ8_MEMBER(tatsumi_state::tatsumi_hack_ym2151_r) return r; } -// Todo: Tatsumi self-test fails if OKI doesn't respond (when sound off). -// Mame really should emulate the OKI status reads even with Mame sound off. READ8_MEMBER(tatsumi_state::tatsumi_hack_oki_r) { int r=m_oki->read(space,0); diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c index 7e079e7ff24..84ec4416f6e 100644 --- a/src/mame/video/tatsumi.c +++ b/src/mame/video/tatsumi.c @@ -79,36 +79,6 @@ bit 0: 3.9kOhm resistor } -WRITE16_MEMBER(tatsumi_state::apache3_palette_w) -{ -// static int hack=0; - - COMBINE_DATA(&m_generic_paletteram_16[offset]); - -// if (offset==0xbfe) -// hack++; - -// if (hack>1) -// return; - -/* -apache 3 schematics state - -bit 4: 250 -bit 3: 500 -bit 2: 1k -bit 1: 2k -bit 0: 3.9kOhm resistor - -*/ - -// logerror("PAL: %04x %02x\n",offset,data); - - data = m_generic_paletteram_16[offset]; - m_palette->set_pen_color(offset,pal5bit(data >> 10),pal5bit(data >> 5),pal5bit(data >> 0)); -} - - WRITE16_MEMBER(tatsumi_state::roundup5_text_w) { UINT16 *videoram = m_videoram;