diff options
author | 2015-04-07 19:20:32 +0200 | |
---|---|---|
committer | 2015-04-07 19:20:32 +0200 | |
commit | 33ecdfcb9f716d95f9cf93a88e9a45734fd9f899 (patch) | |
tree | 21a14238132b2c9310d90587bb879af613c02056 | |
parent | 7dc3254647706420778a4d616cad19f5d07fe8c7 (diff) |
cheekyms.c, clshroad.c, sbugger.c, spcforce.c: added / completed / enabled save state support (nw)
-rw-r--r-- | src/mame/audio/wiping.c | 20 | ||||
-rw-r--r-- | src/mame/audio/wiping.h | 2 | ||||
-rw-r--r-- | src/mame/drivers/cheekyms.c | 11 | ||||
-rw-r--r-- | src/mame/drivers/clshroad.c | 22 | ||||
-rw-r--r-- | src/mame/drivers/sbugger.c | 16 | ||||
-rw-r--r-- | src/mame/drivers/spcforce.c | 37 | ||||
-rw-r--r-- | src/mame/includes/cheekyms.h | 39 | ||||
-rw-r--r-- | src/mame/includes/clshroad.h | 36 | ||||
-rw-r--r-- | src/mame/includes/sbugger.h | 24 | ||||
-rw-r--r-- | src/mame/includes/spcforce.h | 49 | ||||
-rw-r--r-- | src/mame/video/cheekyms.c | 14 | ||||
-rw-r--r-- | src/mame/video/clshroad.c | 21 | ||||
-rw-r--r-- | src/mame/video/sbugger.c | 10 | ||||
-rw-r--r-- | src/mame/video/spcforce.c | 6 |
14 files changed, 165 insertions, 142 deletions
diff --git a/src/mame/audio/wiping.c b/src/mame/audio/wiping.c index 842bb23f955..d47980e8a8a 100644 --- a/src/mame/audio/wiping.c +++ b/src/mame/audio/wiping.c @@ -32,15 +32,6 @@ wiping_sound_device::wiping_sound_device(const machine_config &mconfig, const ch memset(m_soundregs, 0, sizeof(UINT8)*0x4000); } -//------------------------------------------------- -// device_config_complete - perform any -// operations now that the configuration is -// complete -//------------------------------------------------- - -void wiping_sound_device::device_config_complete() -{ -} //------------------------------------------------- // device_start - device-specific startup @@ -78,6 +69,17 @@ void wiping_sound_device::device_start() voice->wave = &m_sound_prom[0]; voice->counter = 0; } + + save_item(NAME(m_soundregs)); + + for (int i = 0; i < MAX_VOICES; i++) + { + save_item(NAME(m_channel_list[i].frequency), i); + save_item(NAME(m_channel_list[i].counter), i); + save_item(NAME(m_channel_list[i].volume), i); + save_item(NAME(m_channel_list[i].oneshot), i); + save_item(NAME(m_channel_list[i].oneshotplaying), i); + } } /* build a table to divide by the number of voices; gain is specified as gain*16 */ diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h index 896beae3343..e87b7399568 100644 --- a/src/mame/audio/wiping.h +++ b/src/mame/audio/wiping.h @@ -23,11 +23,11 @@ public: protected: // device-level overrides - virtual void device_config_complete(); virtual void device_start(); // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); + private: // internal state diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c index b136871bca5..1c3417ef319 100644 --- a/src/mame/drivers/cheekyms.c +++ b/src/mame/drivers/cheekyms.c @@ -2,8 +2,8 @@ Universal Cheeky Mouse Driver (c)Lee Taylor May/June 1998, All rights reserved. - For use only in offical MAME releases. - Not to be distributed as part of any commerical work. + For use only in official MAME releases. + Not to be distributed as part of any commercial work. **************************************************************************/ #include "emu.h" @@ -31,8 +31,8 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, cheekyms_state ) AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW") AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS") AM_RANGE(0x20, 0x3f) AM_WRITEONLY AM_SHARE("spriteram") - AM_RANGE(0x40, 0x40) AM_WRITE(cheekyms_port_40_w) - AM_RANGE(0x80, 0x80) AM_WRITE(cheekyms_port_80_w) AM_SHARE("port_80") + AM_RANGE(0x40, 0x40) AM_WRITE(port_40_w) + AM_RANGE(0x80, 0x80) AM_WRITE(port_80_w) AM_SHARE("port_80") ADDRESS_MAP_END @@ -109,6 +109,7 @@ GFXDECODE_END void cheekyms_state::machine_start() { + save_item(NAME(m_irq_mask)); } INTERRUPT_GEN_MEMBER(cheekyms_state::vblank_irq) @@ -133,7 +134,7 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms) + MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", cheekyms) diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c index b0e1d7c9c7b..52bf77604b2 100644 --- a/src/mame/drivers/clshroad.c +++ b/src/mame/drivers/clshroad.c @@ -28,7 +28,7 @@ void clshroad_state::machine_reset() } -READ8_MEMBER(clshroad_state::clshroad_input_r) +READ8_MEMBER(clshroad_state::input_r) { return ((~ioport("P1")->read() & (1 << offset)) ? 1 : 0) | ((~ioport("P2")->read() & (1 << offset)) ? 2 : 0) | @@ -44,11 +44,11 @@ static ADDRESS_MAP_START( clshroad_map, AS_PROGRAM, 8, clshroad_state ) AM_RANGE(0x9800, 0x9dff) AM_RAM AM_RANGE(0x9e00, 0x9fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xa001, 0xa001) AM_WRITENOP // ? Interrupt related - AM_RANGE(0xa004, 0xa004) AM_WRITE(clshroad_flipscreen_w) - AM_RANGE(0xa100, 0xa107) AM_READ(clshroad_input_r) - AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(clshroad_vram_1_w) AM_SHARE("vram_1") // Layer 1 + AM_RANGE(0xa004, 0xa004) AM_WRITE(flipscreen_w) + AM_RANGE(0xa100, 0xa107) AM_READ(input_r) + AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1") // Layer 1 AM_RANGE(0xb000, 0xb003) AM_WRITEONLY AM_SHARE("vregs") // Scroll - AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(clshroad_vram_0_w) AM_SHARE("vram_0") // Layer 0 + AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0") // Layer 0 ADDRESS_MAP_END static ADDRESS_MAP_START( clshroad_sound_map, AS_PROGRAM, 8, clshroad_state ) @@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x120, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) - MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) + MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", firebatl) @@ -279,7 +279,7 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x120, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) - MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) + MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", clshroad) @@ -479,7 +479,7 @@ die once, it would be nice to avoid the hack however ROM[0x05C8] = 0x23; } -GAME( 1984, firebatl, 0, firebatl, firebatl, clshroad_state, firebatl, ROT90, "Taito", "Fire Battle", GAME_IMPERFECT_GRAPHICS ) -GAME( 1986, clshroad, 0, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc.", "Clash-Road", 0 ) -GAME( 1986, clshroads,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Status Game Corp. license)", "Clash-Road (Status license)", 0 ) -GAME( 1986, clshroadd,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Data East license)", "Clash-Road (Data East license)", 0 ) +GAME( 1984, firebatl, 0, firebatl, firebatl, clshroad_state, firebatl, ROT90, "Taito", "Fire Battle", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) +GAME( 1986, clshroad, 0, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc.", "Clash-Road", GAME_SUPPORTS_SAVE ) +GAME( 1986, clshroads,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Status Game Corp. license)", "Clash-Road (Status license)", GAME_SUPPORTS_SAVE ) +GAME( 1986, clshroadd,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Data East license)", "Clash-Road (Data East license)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c index d8ceb8bf13c..80b7d7684e0 100644 --- a/src/mame/drivers/sbugger.c +++ b/src/mame/drivers/sbugger.c @@ -108,8 +108,8 @@ Sound PCB static ADDRESS_MAP_START( sbugger_map, AS_PROGRAM, 8, sbugger_state ) AM_RANGE(0x0000, 0x37ff) AM_ROM - AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(sbugger_videoram_attr_w) AM_SHARE("videoram_attr") - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(sbugger_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(videoram_attr_w) AM_SHARE("videoram_attr") + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") AM_RANGE(0xe000, 0xe0ff) AM_DEVREADWRITE("i8156", i8155_device, memory_r, memory_w) /* sp is set to e0ff */ AM_RANGE(0xf400, 0xffff) AM_RAM ADDRESS_MAP_END @@ -206,10 +206,6 @@ INPUT_PORTS_END /* machine driver */ -WRITE_LINE_MEMBER(sbugger_state::sbugger_interrupt) -{ - m_maincpu->set_input_line(I8085_RST75_LINE, state ? CLEAR_LINE : ASSERT_LINE ); -} static MACHINE_CONFIG_START( sbugger, sbugger_state ) @@ -221,7 +217,7 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state ) MCFG_I8155_IN_PORTA_CB(IOPORT("INPUTS")) MCFG_I8155_IN_PORTB_CB(IOPORT("DSW1")) MCFG_I8155_IN_PORTC_CB(IOPORT("DSW2")) - MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(sbugger_state, sbugger_interrupt)) + MCFG_I8155_OUT_TIMEROUT_CB(INPUTLINE("maincpu", I8085_RST75_LINE)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", sbugger) @@ -230,7 +226,7 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger) + MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 512) @@ -278,5 +274,5 @@ ROM_START( sbuggera ) ROM_LOAD( "spbugger.gfx", 0x0000, 0x1000, CRC(d3f345b5) SHA1(a5082ffc3043352e9b731af95770bdd62fb928bf) ) ROM_END -GAME( 1981, sbugger, 0, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 1)", GAME_NOT_WORKING | GAME_WRONG_COLORS ) -GAME( 1981, sbuggera, sbugger, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 2)", GAME_WRONG_COLORS ) +GAME( 1981, sbugger, 0, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 1)", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) +GAME( 1981, sbuggera, sbugger, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 2)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c index a51c6dbc08b..56a31a80e42 100644 --- a/src/mame/drivers/spcforce.c +++ b/src/mame/drivers/spcforce.c @@ -38,8 +38,17 @@ TODO: #include "cpu/mcs48/mcs48.h" #include "includes/spcforce.h" +void spcforce_state::machine_start() +{ + save_item(NAME(m_sn76496_latch)); + save_item(NAME(m_sn76496_select)); + save_item(NAME(m_sn1_ready)); + save_item(NAME(m_sn2_ready)); + save_item(NAME(m_sn3_ready)); + save_item(NAME(m_irq_mask)); +} -WRITE8_MEMBER(spcforce_state::spcforce_SN76496_latch_w) +WRITE8_MEMBER(spcforce_state::SN76496_latch_w) { m_sn76496_latch = data; } @@ -59,7 +68,7 @@ WRITE_LINE_MEMBER(spcforce_state::write_sn3_ready) m_sn3_ready = state; } -READ8_MEMBER(spcforce_state::spcforce_SN76496_select_r) +READ8_MEMBER(spcforce_state::SN76496_select_r) { if (~m_sn76496_select & 0x40) return m_sn1_ready; if (~m_sn76496_select & 0x20) return m_sn2_ready; @@ -68,7 +77,7 @@ READ8_MEMBER(spcforce_state::spcforce_SN76496_select_r) return 0; } -WRITE8_MEMBER(spcforce_state::spcforce_SN76496_select_w) +WRITE8_MEMBER(spcforce_state::SN76496_select_w) { m_sn76496_select = data; @@ -77,14 +86,14 @@ WRITE8_MEMBER(spcforce_state::spcforce_SN76496_select_w) if (~data & 0x10) m_sn3->write(space, 0, m_sn76496_latch); } -READ8_MEMBER(spcforce_state::spcforce_t0_r) +READ8_MEMBER(spcforce_state::t0_r) { /* SN76496 status according to Al - not supported by MAME?? */ return machine().rand() & 1; } -WRITE8_MEMBER(spcforce_state::spcforce_soundtrigger_w) +WRITE8_MEMBER(spcforce_state::soundtrigger_w) { m_audiocpu->set_input_line(0, (~data & 0x08) ? ASSERT_LINE : CLEAR_LINE); } @@ -98,9 +107,9 @@ static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8, spcforce_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x43ff) AM_RAM AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW") AM_WRITE(soundlatch_byte_w) - AM_RANGE(0x7001, 0x7001) AM_READ_PORT("P1") AM_WRITE(spcforce_soundtrigger_w) + AM_RANGE(0x7001, 0x7001) AM_READ_PORT("P1") AM_WRITE(soundtrigger_w) AM_RANGE(0x7002, 0x7002) AM_READ_PORT("P2") - AM_RANGE(0x700b, 0x700b) AM_WRITE(spcforce_flip_screen_w) + AM_RANGE(0x700b, 0x700b) AM_WRITE(flip_screen_w) AM_RANGE(0x700e, 0x700e) AM_WRITE(irq_mask_w) AM_RANGE(0x700f, 0x700f) AM_WRITENOP AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("videoram") @@ -114,9 +123,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( spcforce_sound_io_map, AS_IO, 8, spcforce_state ) AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(soundlatch_byte_r) - AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(spcforce_SN76496_latch_w) - AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(spcforce_SN76496_select_r, spcforce_SN76496_select_w) - AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(spcforce_t0_r) + AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(SN76496_latch_w) + AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(SN76496_select_r, SN76496_select_w) + AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(t0_r) ADDRESS_MAP_END @@ -276,7 +285,7 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce) + MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", spcforce) @@ -375,6 +384,6 @@ ROM_START( meteor ) ROM_END -GAME( 1980, spcforce, 0, spcforce, spcforce, driver_device, 0, ROT270, "Venture Line", "Space Force (set 1)", GAME_IMPERFECT_COLORS ) -GAME( 19??, spcforc2, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "bootleg? (Elcon)", "Space Force (set 2)", GAME_IMPERFECT_COLORS ) -GAME( 1981, meteor, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "Venture Line", "Meteoroids", GAME_IMPERFECT_COLORS ) +GAME( 1980, spcforce, 0, spcforce, spcforce, driver_device, 0, ROT270, "Venture Line", "Space Force (set 1)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) +GAME( 19??, spcforc2, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "bootleg? (Elcon)", "Space Force (set 2)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) +GAME( 1981, meteor, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "Venture Line", "Meteoroids", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/cheekyms.h b/src/mame/includes/cheekyms.h index 56bba362602..fe3634e5aad 100644 --- a/src/mame/includes/cheekyms.h +++ b/src/mame/includes/cheekyms.h @@ -10,14 +10,21 @@ class cheekyms_state : public driver_device public: cheekyms_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"), - m_spriteram(*this, "spriteram"), - m_port_80(*this, "port_80"), m_maincpu(*this, "maincpu"), m_dac(*this, "dac"), m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_videoram(*this, "videoram"), + m_spriteram(*this, "spriteram"), + m_port_80(*this, "port_80") { } + + /* devices */ + required_device<cpu_device> m_maincpu; + required_device<dac_device> m_dac; + required_device<gfxdecode_device> m_gfxdecode; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; /* memory pointers */ required_shared_ptr<UINT8> m_videoram; @@ -27,23 +34,21 @@ public: /* video-related */ tilemap_t *m_cm_tilemap; bitmap_ind16 *m_bitmap_buffer; - - /* devices */ - required_device<cpu_device> m_maincpu; - required_device<dac_device> m_dac; - required_device<gfxdecode_device> m_gfxdecode; - required_device<screen_device> m_screen; - required_device<palette_device> m_palette; - + UINT8 m_irq_mask; - DECLARE_WRITE8_MEMBER(cheekyms_port_40_w); - DECLARE_WRITE8_MEMBER(cheekyms_port_80_w); + + DECLARE_WRITE8_MEMBER(port_40_w); + DECLARE_WRITE8_MEMBER(port_80_w); + DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - TILE_GET_INFO_MEMBER(cheekyms_get_tile_info); + INTERRUPT_GEN_MEMBER(vblank_irq); + + TILE_GET_INFO_MEMBER(get_tile_info); + virtual void machine_start(); virtual void video_start(); DECLARE_PALETTE_INIT(cheekyms); - UINT32 screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vblank_irq); + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, int flip ); }; diff --git a/src/mame/includes/clshroad.h b/src/mame/includes/clshroad.h index cab8ce13440..a845e52f707 100644 --- a/src/mame/includes/clshroad.h +++ b/src/mame/includes/clshroad.h @@ -3,39 +3,45 @@ class clshroad_state : public driver_device public: clshroad_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_spriteram(*this, "spriteram"), - m_vram_1(*this, "vram_1"), - m_vregs(*this, "vregs"), - m_vram_0(*this, "vram_0"), m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_spriteram(*this, "spriteram"), + m_vram_0(*this, "vram_0"), + m_vram_1(*this, "vram_1"), + m_vregs(*this, "vregs") { } + + required_device<cpu_device> m_maincpu; + required_device<gfxdecode_device> m_gfxdecode; + required_device<palette_device> m_palette; required_shared_ptr<UINT8> m_spriteram; + required_shared_ptr<UINT8> m_vram_0; required_shared_ptr<UINT8> m_vram_1; required_shared_ptr<UINT8> m_vregs; - required_shared_ptr<UINT8> m_vram_0; + tilemap_t *m_tilemap_0a; tilemap_t *m_tilemap_0b; tilemap_t *m_tilemap_1; - DECLARE_READ8_MEMBER(clshroad_input_r); - DECLARE_WRITE8_MEMBER(clshroad_flipscreen_w); - DECLARE_WRITE8_MEMBER(clshroad_vram_0_w); - DECLARE_WRITE8_MEMBER(clshroad_vram_1_w); - DECLARE_DRIVER_INIT(firebatl); + + DECLARE_READ8_MEMBER(input_r); + DECLARE_WRITE8_MEMBER(flipscreen_w); + DECLARE_WRITE8_MEMBER(vram_0_w); + DECLARE_WRITE8_MEMBER(vram_1_w); + TILE_GET_INFO_MEMBER(get_tile_info_0a); TILE_GET_INFO_MEMBER(get_tile_info_0b); TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_extra); TILE_GET_INFO_MEMBER(get_tile_info_fb1); TILE_GET_INFO_MEMBER(get_tile_info_1); + + + DECLARE_DRIVER_INIT(firebatl); virtual void machine_reset(); DECLARE_VIDEO_START(firebatl); DECLARE_PALETTE_INIT(firebatl); DECLARE_VIDEO_START(clshroad); DECLARE_PALETTE_INIT(clshroad); - UINT32 screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device<cpu_device> m_maincpu; - required_device<gfxdecode_device> m_gfxdecode; - required_device<palette_device> m_palette; }; diff --git a/src/mame/includes/sbugger.h b/src/mame/includes/sbugger.h index 9271d423bac..117937e7c80 100644 --- a/src/mame/includes/sbugger.h +++ b/src/mame/includes/sbugger.h @@ -3,22 +3,26 @@ class sbugger_state : public driver_device public: sbugger_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram_attr(*this, "videoram_attr"), - m_videoram(*this, "videoram"), m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_gfxdecode(*this, "gfxdecode"), + m_videoram_attr(*this, "videoram_attr"), + m_videoram(*this, "videoram") { } + + required_device<cpu_device> m_maincpu; + required_device<gfxdecode_device> m_gfxdecode; required_shared_ptr<UINT8> m_videoram_attr; required_shared_ptr<UINT8> m_videoram; tilemap_t *m_tilemap; - DECLARE_WRITE8_MEMBER(sbugger_videoram_w); - DECLARE_WRITE8_MEMBER(sbugger_videoram_attr_w); - DECLARE_WRITE_LINE_MEMBER(sbugger_interrupt); - TILE_GET_INFO_MEMBER(get_sbugger_tile_info); + + DECLARE_WRITE8_MEMBER(videoram_w); + DECLARE_WRITE8_MEMBER(videoram_attr_w); + + TILE_GET_INFO_MEMBER(get_tile_info); + virtual void video_start(); DECLARE_PALETTE_INIT(sbugger); - UINT32 screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device<cpu_device> m_maincpu; - required_device<gfxdecode_device> m_gfxdecode; + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; diff --git a/src/mame/includes/spcforce.h b/src/mame/includes/spcforce.h index 48f7d7026bd..4295a47a48f 100644 --- a/src/mame/includes/spcforce.h +++ b/src/mame/includes/spcforce.h @@ -5,48 +5,51 @@ class spcforce_state : public driver_device public: spcforce_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_scrollram(*this, "scrollram"), - m_videoram(*this, "videoram"), - m_colorram(*this, "colorram"), - m_sn1(*this, "sn1"), - m_sn2(*this, "sn2"), - m_sn3(*this, "sn3"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_sn1(*this, "sn1"), + m_sn2(*this, "sn2"), + m_sn3(*this, "sn3"), + m_scrollram(*this, "scrollram"), + m_videoram(*this, "videoram"), + m_colorram(*this, "colorram") { } + required_device<cpu_device> m_maincpu; + required_device<cpu_device> m_audiocpu; + required_device<gfxdecode_device> m_gfxdecode; + required_device<palette_device> m_palette; + required_device<sn76496_device> m_sn1; + required_device<sn76496_device> m_sn2; + required_device<sn76496_device> m_sn3; required_shared_ptr<UINT8> m_scrollram; required_shared_ptr<UINT8> m_videoram; required_shared_ptr<UINT8> m_colorram; - required_device<sn76496_device> m_sn1; - required_device<sn76496_device> m_sn2; - required_device<sn76496_device> m_sn3; - int m_sn76496_latch; int m_sn76496_select; int m_sn1_ready; int m_sn2_ready; int m_sn3_ready; - UINT8 m_irq_mask; - DECLARE_WRITE8_MEMBER(spcforce_SN76496_latch_w); - DECLARE_READ8_MEMBER(spcforce_SN76496_select_r); - DECLARE_WRITE8_MEMBER(spcforce_SN76496_select_w); + + DECLARE_WRITE8_MEMBER(SN76496_latch_w); + DECLARE_READ8_MEMBER(SN76496_select_r); + DECLARE_WRITE8_MEMBER(SN76496_select_w); DECLARE_WRITE_LINE_MEMBER(write_sn1_ready); DECLARE_WRITE_LINE_MEMBER(write_sn2_ready); DECLARE_WRITE_LINE_MEMBER(write_sn3_ready); - DECLARE_READ8_MEMBER(spcforce_t0_r); - DECLARE_WRITE8_MEMBER(spcforce_soundtrigger_w); + DECLARE_READ8_MEMBER(t0_r); + DECLARE_WRITE8_MEMBER(soundtrigger_w); DECLARE_WRITE8_MEMBER(irq_mask_w); - DECLARE_WRITE8_MEMBER(spcforce_flip_screen_w); + DECLARE_WRITE8_MEMBER(flip_screen_w); + + virtual void machine_start(); DECLARE_PALETTE_INIT(spcforce); - UINT32 screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(vblank_irq); - required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - required_device<gfxdecode_device> m_gfxdecode; - required_device<palette_device> m_palette; }; diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c index 9d74f7de618..dff9e56f2b2 100644 --- a/src/mame/video/cheekyms.c +++ b/src/mame/video/cheekyms.c @@ -2,8 +2,8 @@ Universal Cheeky Mouse Driver (c)Lee Taylor May 1998, All rights reserved. - For use only in offical MAME releases. - Not to be distrabuted as part of any commerical work. + For use only in official MAME releases. + Not to be distributed as part of any commercial work. *************************************************************************** Functions to emulate the video hardware of the machine. ***************************************************************************/ @@ -40,14 +40,14 @@ PALETTE_INIT_MEMBER(cheekyms_state, cheekyms) } -WRITE8_MEMBER(cheekyms_state::cheekyms_port_40_w) +WRITE8_MEMBER(cheekyms_state::port_40_w) { /* the lower bits probably trigger sound samples */ m_dac->write_unsigned8(data ? 0x80 : 0); } -WRITE8_MEMBER(cheekyms_state::cheekyms_port_80_w) +WRITE8_MEMBER(cheekyms_state::port_80_w) { /* d0-d1 - sound enables, not sure which bit is which */ /* d3-d5 - man scroll amount */ @@ -61,7 +61,7 @@ WRITE8_MEMBER(cheekyms_state::cheekyms_port_80_w) -TILE_GET_INFO_MEMBER(cheekyms_state::cheekyms_get_tile_info) +TILE_GET_INFO_MEMBER(cheekyms_state::get_tile_info) { int color; @@ -98,7 +98,7 @@ void cheekyms_state::video_start() height = m_screen->height(); m_bitmap_buffer = auto_bitmap_ind16_alloc(machine(), width, height); - m_cm_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(cheekyms_state::cheekyms_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_cm_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(cheekyms_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_cm_tilemap->set_transparent_pen(0); } @@ -142,7 +142,7 @@ void cheekyms_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre } -UINT32 cheekyms_state::screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 cheekyms_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int y, x; int scrolly = ((*m_port_80 >> 3) & 0x07); diff --git a/src/mame/video/clshroad.c b/src/mame/video/clshroad.c index 842aee11b34..d06bf536270 100644 --- a/src/mame/video/clshroad.c +++ b/src/mame/video/clshroad.c @@ -34,7 +34,7 @@ #include "includes/clshroad.h" -WRITE8_MEMBER(clshroad_state::clshroad_flipscreen_w) +WRITE8_MEMBER(clshroad_state::flipscreen_w) { flip_screen_set(data & 1 ); } @@ -125,7 +125,7 @@ TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_0b) 0); } -WRITE8_MEMBER(clshroad_state::clshroad_vram_0_w) +WRITE8_MEMBER(clshroad_state::vram_0_w) { int tile_index = offset / 2; int tile = (tile_index & 0x1f) + (tile_index & ~0x3f)/2; @@ -190,7 +190,7 @@ TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_1) 0); } -WRITE8_MEMBER(clshroad_state::clshroad_vram_1_w) +WRITE8_MEMBER(clshroad_state::vram_1_w) { m_vram_1[offset] = data; m_tilemap_1->mark_tile_dirty(offset % 0x400); @@ -275,15 +275,12 @@ Offset: Format: Value: void clshroad_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) { - UINT8 *spriteram = m_spriteram; - int i; - - for (i = 0; i < m_spriteram.bytes() ; i += 8) + for (int i = 0; i < m_spriteram.bytes() ; i += 8) { - int y = 240 - spriteram[i+1]; - int code = (spriteram[i+3] & 0x3f) + (spriteram[i+2] << 6); - int x = spriteram[i+5] + (spriteram[i+6] << 8); - int attr = spriteram[i+7]; + int y = 240 - m_spriteram[i+1]; + int code = (m_spriteram[i+3] & 0x3f) + (m_spriteram[i+2] << 6); + int x = m_spriteram[i+5] + (m_spriteram[i+6] << 8); + int attr = m_spriteram[i+7]; int flipx = 0; int flipy = 0; @@ -313,7 +310,7 @@ void clshroad_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec ***************************************************************************/ -UINT32 clshroad_state::screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 clshroad_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int scrollx = m_vregs[ 0 ] + (m_vregs[ 1 ] << 8); // int priority = m_vregs[ 2 ]; diff --git a/src/mame/video/sbugger.c b/src/mame/video/sbugger.c index 92a42e1e006..3599b754825 100644 --- a/src/mame/video/sbugger.c +++ b/src/mame/video/sbugger.c @@ -3,7 +3,7 @@ #include "emu.h" #include "includes/sbugger.h" -TILE_GET_INFO_MEMBER(sbugger_state::get_sbugger_tile_info) +TILE_GET_INFO_MEMBER(sbugger_state::get_tile_info) { int tileno, color; @@ -13,13 +13,13 @@ TILE_GET_INFO_MEMBER(sbugger_state::get_sbugger_tile_info) SET_TILE_INFO_MEMBER(0,tileno,color,0); } -WRITE8_MEMBER(sbugger_state::sbugger_videoram_w) +WRITE8_MEMBER(sbugger_state::videoram_w) { m_videoram[offset] = data; m_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(sbugger_state::sbugger_videoram_attr_w) +WRITE8_MEMBER(sbugger_state::videoram_attr_w) { m_videoram_attr[offset] = data; m_tilemap->mark_tile_dirty(offset); @@ -27,10 +27,10 @@ WRITE8_MEMBER(sbugger_state::sbugger_videoram_attr_w) void sbugger_state::video_start() { - m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); + m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sbugger_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); } -UINT32 sbugger_state::screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 sbugger_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; diff --git a/src/mame/video/spcforce.c b/src/mame/video/spcforce.c index 05f7c3e35db..5f2ac59a2bb 100644 --- a/src/mame/video/spcforce.c +++ b/src/mame/video/spcforce.c @@ -1,6 +1,6 @@ /*************************************************************************** - video.c + spcforce.c Functions to emulate the video hardware of the machine. @@ -10,13 +10,13 @@ #include "includes/spcforce.h" -WRITE8_MEMBER(spcforce_state::spcforce_flip_screen_w) +WRITE8_MEMBER(spcforce_state::flip_screen_w) { flip_screen_set(~data & 0x01); } -UINT32 spcforce_state::screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 spcforce_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int offs; int flip = flip_screen(); |