diff options
Diffstat (limited to 'src/mame/drivers/tumbleb.cpp')
-rw-r--r-- | src/mame/drivers/tumbleb.cpp | 195 |
1 files changed, 95 insertions, 100 deletions
diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp index a1bc8f73e50..0b91a31aacf 100644 --- a/src/mame/drivers/tumbleb.cpp +++ b/src/mame/drivers/tumbleb.cpp @@ -321,12 +321,12 @@ WRITE16_MEMBER(tumbleb_state::tumblepb_oki_w) { if (mem_mask == 0xffff) { - m_oki->write(space, 0, data & 0xff); + m_oki->write(data & 0xff); //printf("tumbleb_oki_w %04x %04x\n", data, mem_mask); } else { - m_oki->write(space, 0, (data >> 8) & 0xff); + m_oki->write((data >> 8) & 0xff); //printf("tumbleb_oki_w %04x %04x\n", data, mem_mask); } /* STUFF IN OTHER BYTE TOO..*/ @@ -428,14 +428,14 @@ command 1 - stop? void tumbleb_state::tumbleb2_playmusic(okim6295_device *oki) { - int status = oki->read_status(); + int status = oki->read(); if (m_music_is_playing) { if (!BIT(status, 3)) { - oki->write_command(0x80 | m_music_command); - oki->write_command(0x00 | 0x82); + oki->write(0x80 | m_music_command); + oki->write(0x00 | 0x82); } } } @@ -476,22 +476,22 @@ void tumbleb_state::tumbleb2_set_music_bank( int bank ) void tumbleb_state::tumbleb2_play_sound( okim6295_device *oki, int data ) { - int status = oki->read_status(); + int status = oki->read(); if (!BIT(status, 0)) { - oki->write_command(0x80 | data); - oki->write_command(0x00 | 0x12); + oki->write(0x80 | data); + oki->write(0x00 | 0x12); } else if (!BIT(status, 1)) { - oki->write_command(0x80 | data); - oki->write_command(0x00 | 0x22); + oki->write(0x80 | data); + oki->write(0x00 | 0x22); } else if (!BIT(status, 2)) { - oki->write_command(0x80 | data); - oki->write_command(0x00 | 0x42); + oki->write(0x80 | data); + oki->write(0x00 | 0x42); } } @@ -509,13 +509,13 @@ void tumbleb_state::tumbleb2_play_sound( okim6295_device *oki, int data ) void tumbleb_state::process_tumbleb2_music_command( okim6295_device *oki, int data ) { - int status = oki->read_status(); + int status = oki->read(); if (data == 1) // stop? { if (BIT(status, 3)) { - oki->write_command(0x40); /* Stop playing music */ + oki->write(0x40); /* Stop playing music */ m_music_is_playing = 0; } } @@ -524,7 +524,7 @@ void tumbleb_state::process_tumbleb2_music_command( okim6295_device *oki, int da if (m_music_is_playing != data) { m_music_is_playing = data; - oki->write_command(0x40); // stop the current music + oki->write(0x40); // stop the current music switch (data) { case 0x04: // map screen @@ -2065,31 +2065,31 @@ MACHINE_RESET_MEMBER(tumbleb_state,tumbleb) memset(m_control_0, 0, sizeof(m_control_0)); } -MACHINE_CONFIG_START(tumbleb_state::tumblepb) - +void tumbleb_state::tumblepb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(tumblepopb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(58); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); m_sprgen->set_is_bootleg(true); m_sprgen->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_tumbleb) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2097,41 +2097,40 @@ MACHINE_CONFIG_START(tumbleb_state::tumblepb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/10, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} -MACHINE_CONFIG_START(tumbleb_state::tumblepba) +void tumbleb_state::tumblepba(machine_config &config) +{ tumblepb(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tumblepopba_main_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(tumbleb_state::tumbleb2) + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopba_main_map); +} +void tumbleb_state::tumbleb2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(tumblepopb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, tumbleb2_interrupt) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::tumbleb2_interrupt)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(58); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); m_sprgen->set_is_bootleg(true); m_sprgen->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_tumbleb) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2139,9 +2138,8 @@ MACHINE_CONFIG_START(tumbleb_state::tumbleb2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/10, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} void tumbleb_state::funkyjetb(machine_config &config) { @@ -2151,35 +2149,35 @@ void tumbleb_state::funkyjetb(machine_config &config) m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); } -MACHINE_CONFIG_START(tumbleb_state::jumpkids) - +void tumbleb_state::jumpkids(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(jumpkids_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); /* z80? */ - MCFG_DEVICE_ADD("audiocpu", Z80, 8000000/2) - MCFG_DEVICE_PROGRAM_MAP(jumpkids_sound_map) + Z80(config, m_audiocpu, 8000000/2); + m_audiocpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_sound_map); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_jumpkids) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_jumpkids)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); m_sprgen->set_is_bootleg(true); m_sprgen->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_tumbleb) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2189,28 +2187,27 @@ MACHINE_CONFIG_START(tumbleb_state::jumpkids) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(tumbleb_state::fncywld) + OKIM6295(config, m_oki, 8000000/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} +void tumbleb_state::fncywld(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(fncywld_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::fncywld_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2218,7 +2215,7 @@ MACHINE_CONFIG_START(tumbleb_state::fncywld) m_sprgen->set_transpen(15); m_sprgen->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_fncywld) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fncywld); PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x800); MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld) @@ -2228,29 +2225,28 @@ MACHINE_CONFIG_START(tumbleb_state::fncywld) YM2151(config, "ymsnd", 32220000/9).add_route(ALL_OUTPUTS, "mono", 0.10); - MCFG_DEVICE_ADD("oki", OKIM6295, 1023924, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1023924, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified +} /// OSCs: 12MHz, 4MHz, 28.63636MHz, not the same PCB as fncywld -MACHINE_CONFIG_START(tumbleb_state::magipur) - +void tumbleb_state::magipur(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(magipur_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::magipur_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) // refresh rate not verified - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); // refresh rate not verified + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2268,9 +2264,8 @@ MACHINE_CONFIG_START(tumbleb_state::magipur) YM2151(config, "ymsnd", XTAL(4'000'000)).add_route(ALL_OUTPUTS, "mono", 0.10); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified +} MACHINE_RESET_MEMBER(tumbleb_state,htchctch) |