diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index ad5ac7291a2..4c7bcbf4a92 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -343,7 +343,7 @@ static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16, m92_state ) AM_RANGE(0x80000, 0x8ffff) AM_RAM_WRITE(m92_vram_w) AM_SHARE("vram_data") AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */ AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_SHARE("palette") + AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_SHARE("spritecontrol") AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w) AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0) @@ -356,7 +356,7 @@ static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16, m92_state ) AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m92_vram_w) AM_SHARE("vram_data") AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */ AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_SHARE("palette") + AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w) AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_SHARE("spritecontrol") AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w) AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0) @@ -997,39 +997,19 @@ static MACHINE_CONFIG_DERIVED( hook, m92 ) MCFG_V25_CONFIG(hook_decryption_table) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ppan, m92_state ) - - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",V33,XTAL_18MHz/2) - MCFG_CPU_PROGRAM_MAP(m92_map) +static MACHINE_CONFIG_DERIVED( ppan, m92 ) + MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(ppan_portmap) - /* no Sound CPU */ + MCFG_DEVICE_REMOVE("soundcpu") + MCFG_DEVICE_REMOVE("ymsnd") + MCFG_DEVICE_REMOVE("irem") - MCFG_MACHINE_START_OVERRIDE(m92_state,m92) - MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92) - - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m92_state, m92_scanline_interrupt, "screen", 0, 1) - - /* video hardware */ - MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") // not really... - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan) - MCFG_GFXDECODE_ADD("gfxdecode", m92) - MCFG_PALETTE_ADD("palette", 2048) - MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_VIDEO_START_OVERRIDE(m92_state,ppan) - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index 3ca54f24dc3..11b213d0d40 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -214,17 +214,6 @@ WRITE8_MEMBER(nycaptor_state::to_main_w) m_snd_data = data; } - -READ8_MEMBER(nycaptor_state::nycaptor_sharedram_r) -{ - return m_sharedram[offset]; -} - -WRITE8_MEMBER(nycaptor_state::nycaptor_sharedram_w) -{ - m_sharedram[offset] = data; -} - READ8_MEMBER(nycaptor_state::nycaptor_b_r) { return 1; @@ -334,7 +323,7 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_generic_control_w) static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd000, 0xd000) AM_READWRITE(nycaptor_mcu_r, nycaptor_mcu_w) AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, nycaptor_generic_control_w) /* bit 3 - memory bank at 0x8000-0xbfff */ @@ -349,23 +338,23 @@ static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xd805, 0xd805) AM_READ(nycaptor_mcu_status_r1) AM_RANGE(0xd806, 0xd806) AM_READNOP /* unknown ?sound? */ AM_RANGE(0xd807, 0xd807) AM_READ(nycaptor_mcu_status_r2) - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram") + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram") + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA") AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB") AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC") AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0") AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) @@ -373,7 +362,7 @@ static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r) AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) AM_WRITENOP/* ? gfx control ? */ - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8, nycaptor_state ) @@ -439,7 +428,7 @@ WRITE8_MEMBER(nycaptor_state::cyclshtg_generic_control_w) static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd000, 0xd000) AM_READWRITE(cyclshtg_mcu_r, cyclshtg_mcu_w) AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w) @@ -453,23 +442,23 @@ static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) AM_RANGE(0xd806, 0xd806) AM_READNOP AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram") + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram") + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA") AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB") AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC") AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0") AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r) @@ -477,7 +466,7 @@ static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) AM_RANGE(0xdf03, 0xdf03) AM_WRITENOP - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END READ8_MEMBER(nycaptor_state::unk_r) @@ -488,7 +477,7 @@ READ8_MEMBER(nycaptor_state::unk_r) static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd000, 0xd000) AM_READ(cyclshtg_mcu_r) AM_WRITENOP AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w) @@ -503,16 +492,16 @@ static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) AM_RANGE(0xd806, 0xd806) AM_READNOP AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_SHARE("scrlram") + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_SHARE("sharedram") + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(nycaptor_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA") AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB") AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC") @@ -520,14 +509,14 @@ static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state ) AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r1) AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE(nycaptor_spriteram_r, nycaptor_spriteram_w) + AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_SHARE("scrlram") AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(nycaptor_palette_r, nycaptor_palette_w) AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r) AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r) AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) AM_RANGE(0xdf03, 0xdf03) AM_READWRITE(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("sharedram") ADDRESS_MAP_END static ADDRESS_MAP_START( bronx_slave_io_map, AS_IO, 8, nycaptor_state ) diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h index a2af88647ee..6a059fd0a54 100644 --- a/src/mame/includes/m92.h +++ b/src/mame/includes/m92.h @@ -39,6 +39,8 @@ public: required_shared_ptr m_spritecontrol; required_device m_maincpu; optional_device m_soundcpu; + optional_device m_oki; + required_device m_gfxdecode; UINT16 m_sound_status; UINT8 m_irq_vectorbase; @@ -50,6 +52,7 @@ public: UINT16 m_pf_master_control[4]; INT32 m_sprite_list; UINT8 m_palette_bank; + dynamic_array m_paletteram; DECLARE_READ16_MEMBER(m92_eeprom_r); DECLARE_WRITE16_MEMBER(m92_eeprom_w); @@ -91,8 +94,7 @@ public: void m92_update_scroll_positions(); void m92_draw_tiles(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); void m92_sprite_interrupt(); - optional_device m_oki; - required_device m_gfxdecode; + protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; diff --git a/src/mame/includes/nycaptor.h b/src/mame/includes/nycaptor.h index 7f7737c9d65..8d6ac767498 100644 --- a/src/mame/includes/nycaptor.h +++ b/src/mame/includes/nycaptor.h @@ -8,6 +8,7 @@ public: m_videoram(*this, "videoram"), m_scrlram(*this, "scrlram"), m_sharedram(*this, "sharedram"), + m_spriteram(*this, "spriteram"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_subcpu(*this, "sub"), @@ -19,14 +20,15 @@ public: required_shared_ptr m_videoram; required_shared_ptr m_scrlram; required_shared_ptr m_sharedram; - - UINT8 * m_spriteram; + required_shared_ptr m_spriteram; /* video-related */ tilemap_t *m_bg_tilemap; - int m_char_bank; - int m_palette_bank; - int m_gfxctrl; + dynamic_array m_paletteram; + dynamic_array m_paletteram_ext; + UINT8 m_gfxctrl; + UINT8 m_char_bank; + UINT8 m_palette_bank; /* mcu */ UINT8 m_from_main; @@ -63,8 +65,6 @@ public: DECLARE_WRITE8_MEMBER(sub_cpu_halt_w); DECLARE_READ8_MEMBER(from_snd_r); DECLARE_WRITE8_MEMBER(to_main_w); - DECLARE_READ8_MEMBER(nycaptor_sharedram_r); - DECLARE_WRITE8_MEMBER(nycaptor_sharedram_w); DECLARE_READ8_MEMBER(nycaptor_b_r); DECLARE_READ8_MEMBER(nycaptor_by_r); DECLARE_READ8_MEMBER(nycaptor_bx_r); @@ -93,15 +93,11 @@ public: DECLARE_READ8_MEMBER(nycaptor_mcu_r); DECLARE_READ8_MEMBER(nycaptor_mcu_status_r1); DECLARE_READ8_MEMBER(nycaptor_mcu_status_r2); - DECLARE_WRITE8_MEMBER(nycaptor_spriteram_w); - DECLARE_READ8_MEMBER(nycaptor_spriteram_r); DECLARE_WRITE8_MEMBER(nycaptor_videoram_w); - DECLARE_READ8_MEMBER(nycaptor_videoram_r); DECLARE_WRITE8_MEMBER(nycaptor_palette_w); DECLARE_READ8_MEMBER(nycaptor_palette_r); DECLARE_WRITE8_MEMBER(nycaptor_gfxctrl_w); DECLARE_READ8_MEMBER(nycaptor_gfxctrl_r); - DECLARE_READ8_MEMBER(nycaptor_scrlram_r); DECLARE_WRITE8_MEMBER(nycaptor_scrlram_w); DECLARE_WRITE8_MEMBER(unk_w); DECLARE_DRIVER_INIT(cyclshtg); diff --git a/src/mame/video/m92.c b/src/mame/video/m92.c index af73bccf421..ebac134b506 100644 --- a/src/mame/video/m92.c +++ b/src/mame/video/m92.c @@ -133,7 +133,7 @@ WRITE16_MEMBER(m92_state::m92_videocontrol_w) READ16_MEMBER(m92_state::m92_paletteram_r) { - return m_palette->basemem().read16(offset + 0x400 * m_palette_bank); + return m_paletteram[offset + 0x400 * m_palette_bank]; } WRITE16_MEMBER(m92_state::m92_paletteram_w) @@ -283,7 +283,8 @@ VIDEO_START_MEMBER(m92_state,m92) state_save_register_item_array(machine(), "layer", NULL, laynum, layer->control); } - m_generic_paletteram_16.allocate(0x1000/2); + m_paletteram.resize(m_palette->entries()); + m_palette->basemem().set(m_paletteram, ENDIANNESS_LITTLE, 2); memset(m_spriteram->live(),0,0x800); memset(m_spriteram->buffer(),0,0x800); @@ -294,6 +295,7 @@ VIDEO_START_MEMBER(m92_state,m92) save_item(NAME(m_raster_irq_position)); save_item(NAME(m_sprite_buffer_busy)); save_item(NAME(m_palette_bank)); + save_item(NAME(m_paletteram)); } VIDEO_START_MEMBER(m92_state,ppan) diff --git a/src/mame/video/mitchell.c b/src/mame/video/mitchell.c index 1c1ab8c4475..a9582118edd 100644 --- a/src/mame/video/mitchell.c +++ b/src/mame/video/mitchell.c @@ -245,7 +245,7 @@ WRITE8_MEMBER(mitchell_state::pang_paletteram_w) READ8_MEMBER(mitchell_state::pang_paletteram_r) { - return m_palette->basemem().read8(offset + (m_paletteram_bank ? 0x800 : 0x000)); + return m_paletteram[offset + (m_paletteram_bank ? 0x800 : 0x000)]; } diff --git a/src/mame/video/nycaptor.c b/src/mame/video/nycaptor.c index 7c9388f845d..508a98b1d9b 100644 --- a/src/mame/video/nycaptor.c +++ b/src/mame/video/nycaptor.c @@ -25,16 +25,6 @@ int nycaptor_state::nycaptor_spot( ) return 0; } -WRITE8_MEMBER(nycaptor_state::nycaptor_spriteram_w) -{ - m_spriteram[offset] = data; -} - -READ8_MEMBER(nycaptor_state::nycaptor_spriteram_r) -{ - return m_spriteram[offset]; -} - TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info) { int pal = m_videoram[tile_index * 2 + 1] & 0x0f; @@ -71,7 +61,6 @@ TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info) void nycaptor_state::video_start() { - m_spriteram = auto_alloc_array(machine(), UINT8, 160); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(nycaptor_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 ); m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0 @@ -79,11 +68,15 @@ void nycaptor_state::video_start() m_bg_tilemap->set_transmask(2, 0xfffc, 0x0003);//split 2 m_bg_tilemap->set_transmask(3, 0xfff0, 0x000f);//split 3 - m_generic_paletteram_8.allocate(0x200); - m_generic_paletteram2_8.allocate(0x200); + m_paletteram.resize(m_palette->entries()); + m_paletteram_ext.resize(m_palette->entries()); + m_palette->basemem().set(m_paletteram, ENDIANNESS_LITTLE, 1); + m_palette->extmem().set(m_paletteram_ext, ENDIANNESS_LITTLE, 1); + m_bg_tilemap->set_scroll_cols(32); - save_pointer(NAME(m_spriteram), 160); + save_item(NAME(m_paletteram)); + save_item(NAME(m_paletteram_ext)); } WRITE8_MEMBER(nycaptor_state::nycaptor_videoram_w) @@ -92,18 +85,13 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_videoram_w) m_bg_tilemap->mark_tile_dirty(offset >> 1); } -READ8_MEMBER(nycaptor_state::nycaptor_videoram_r) -{ - return m_videoram[offset]; -} - WRITE8_MEMBER(nycaptor_state::nycaptor_palette_w) { if (m_gametype == 2) //colt return; if (offset & 0x100) - m_palette->write(space, (offset & 0xff) + (m_palette_bank << 8), data); + m_palette->write_ext(space, (offset & 0xff) + (m_palette_bank << 8), data); else m_palette->write(space, (offset & 0xff) + (m_palette_bank << 8), data); } @@ -111,9 +99,9 @@ WRITE8_MEMBER(nycaptor_state::nycaptor_palette_w) READ8_MEMBER(nycaptor_state::nycaptor_palette_r) { if (offset & 0x100) - return m_generic_paletteram2_8[(offset & 0xff) + (m_palette_bank << 8)]; + return m_paletteram_ext[(offset & 0xff) + (m_palette_bank << 8)]; else - return m_generic_paletteram_8 [(offset & 0xff) + (m_palette_bank << 8)]; + return m_paletteram[(offset & 0xff) + (m_palette_bank << 8)]; } WRITE8_MEMBER(nycaptor_state::nycaptor_gfxctrl_w) @@ -138,11 +126,6 @@ READ8_MEMBER(nycaptor_state::nycaptor_gfxctrl_r) return m_gfxctrl; } -READ8_MEMBER(nycaptor_state::nycaptor_scrlram_r) -{ - return m_scrlram[offset]; -} - WRITE8_MEMBER(nycaptor_state::nycaptor_scrlram_w) { m_scrlram[offset] = data;