diff options
Diffstat (limited to 'src/mame/drivers/fastfred.cpp')
-rw-r--r-- | src/mame/drivers/fastfred.cpp | 87 |
1 files changed, 32 insertions, 55 deletions
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index 025d9027b1a..5a0cd8f3aed 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -632,15 +632,15 @@ INTERRUPT_GEN_MEMBER(fastfred_state::sound_timer_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -void fastfred_state::fastfred(machine_config &config) -{ +MACHINE_CONFIG_START(fastfred_state::fastfred) + /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(12'432'000)/4); /* 3.108 MHz; xtal from pcb pics, divider not verified */ - m_maincpu->set_addrmap(AS_PROGRAM, &fastfred_state::fastfred_map); + MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'432'000)/4) /* 3.108 MHz; xtal from pcb pics, divider not verified */ + MCFG_DEVICE_PROGRAM_MAP(fastfred_map) - Z80(config, m_audiocpu, XTAL(12'432'000)/8); /* 1.554 MHz; xtal from pcb pics, divider not verified */ - m_audiocpu->set_addrmap(AS_PROGRAM, &fastfred_state::sound_map); - m_audiocpu->set_periodic_int(FUNC(fastfred_state::sound_timer_irq), attotime::from_hz(4*60)); + MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(12'432'000)/8) /* 1.554 MHz; xtal from pcb pics, divider not verified */ + MCFG_DEVICE_PROGRAM_MAP(sound_map) + MCFG_DEVICE_PERIODIC_INT_DRIVER(fastfred_state, sound_timer_irq, 4*60) LS259(config, m_outlatch); // "Control Signal Latch" at D10 m_outlatch->q_out_cb<1>().set(FUNC(fastfred_state::nmi_mask_w)); @@ -654,14 +654,14 @@ void fastfred_state::fastfred(machine_config &config) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); //CLOCK/16/60 - m_screen->set_size(32*8, 32*8); - m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); - m_screen->set_screen_update(FUNC(fastfred_state::screen_update_fastfred)); - m_screen->set_palette(m_palette); - m_screen->screen_vblank().set(FUNC(fastfred_state::vblank_irq)); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) //CLOCK/16/60 + MCFG_SCREEN_SIZE(32*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred) + MCFG_SCREEN_PALETTE(m_palette) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, fastfred_state, vblank_irq)) GFXDECODE(config, "gfxdecode", m_palette, gfx_fastfred); @@ -676,31 +676,31 @@ void fastfred_state::fastfred(machine_config &config) AY8910(config, "ay8910.1", XTAL(12'432'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.554 MHz; xtal from pcb pics, divider not verified */ AY8910(config, "ay8910.2", XTAL(12'432'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.554 MHz; xtal from pcb pics, divider not verified */ -} +MACHINE_CONFIG_END -void fastfred_state::jumpcoas(machine_config &config) -{ +MACHINE_CONFIG_START(fastfred_state::jumpcoas) fastfred(config); /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &fastfred_state::jumpcoas_map); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(jumpcoas_map) - config.device_remove("audiocpu"); + MCFG_DEVICE_REMOVE("audiocpu") /* video hardware */ - subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_jumpcoas); + MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_jumpcoas) /* sound hardware */ - config.device_remove("soundlatch"); - config.device_remove("ay8910.2"); -} + MCFG_DEVICE_REMOVE("soundlatch") + MCFG_DEVICE_REMOVE("ay8910.2") +MACHINE_CONFIG_END -void fastfred_state::imago(machine_config &config) -{ +MACHINE_CONFIG_START(fastfred_state::imago) fastfred(config); /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &fastfred_state::imago_map); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(imago_map) m_outlatch->q_out_cb<0>().set_nop(); // writes 1 when level starts, 0 when game over m_outlatch->q_out_cb<4>().set(FUNC(fastfred_state::imago_dma_irq_w)); @@ -710,11 +710,12 @@ void fastfred_state::imago(machine_config &config) /* video hardware */ m_palette->set_entries(256+64+2); // 256 for characters, 64 for the stars and 2 for the web - subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_imago); + MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_imago) MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago) - subdevice<screen_device>("screen")->set_screen_update(FUNC(fastfred_state::screen_update_imago)); -} + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_imago) +MACHINE_CONFIG_END #undef CLOCK @@ -916,29 +917,6 @@ ROM_START( boggy84b ) ROM_LOAD( "b12e", 0x0200, 0x0100, CRC(52b7f445) SHA1(6395ac705a35e602a355cbf700025ff917e89b37) ) ROM_END -// main PCB is marked: "MC9003" and "MADE IN ITALY" on component side -// main PCB is marked: "MADE IN ITALY" on solder side -// ROMs PCB is marked: "MG25157" on component side -ROM_START( boggy84b2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "boggy84-1.bin", 0x0000, 0x1000, CRC(97235e3a) SHA1(f493efd03331416a392cab7d73e39029d7e8098c) ) - ROM_LOAD( "boggy84-2.bin", 0x1000, 0x1000, CRC(282f8830) SHA1(10c2c3d3b14fbe44ef4ad81607c61361fa2f25ae) ) - ROM_LOAD( "boggy84-3.bin", 0x2000, 0x1000, CRC(b49c835a) SHA1(c6782643ff44e6cf972f0d2fc47ecc0a220c0e26) ) - ROM_LOAD( "boggy84-4.bin", 0x3000, 0x1000, CRC(1f98ce07) SHA1(4145785ea55db3940ff4d3834ab736825e5c8712) ) - ROM_LOAD( "boggy84-5.bin", 0x4000, 0x1000, CRC(7b3fd5fb) SHA1(630e7553fc76e59448cedca5dcb34dae3b08d9ba) ) - ROM_LOAD( "boggy84-6.bin", 0x5000, 0x1000, CRC(a4083cc2) SHA1(a266ff0935288678d6e0286ac67ea17b9b42371a) ) - ROM_LOAD( "boggy84-7.bin", 0x6000, 0x1000, CRC(9da29eb9) SHA1(d8802b9b67f9993aa26b8fe7941fc662a6719172) ) - ROM_LOAD( "boggy84-8.bin", 0x7000, 0x1000, NO_DUMP ) // broken, unreadable - - ROM_REGION( 0x3000, "gfx1", 0 ) - ROM_LOAD( "boggy84-11.7a", 0x0000, 0x1000, CRC(f4238c68) SHA1(a14cedb126e49e40bab6f46870af64c04ccb01f4) ) - ROM_LOAD( "boggy84-10.9a", 0x1000, 0x1000, CRC(1979d9a6) SHA1(9da387179e6f09ba113219689d3aa039e87bd5e1) ) - ROM_LOAD( "boggy84-9.bin", 0x2000, 0x0800, CRC(de3d8f06) SHA1(0ccc261fe15f63d5bd000b3a7008e294b78837a2) ) - - ROM_REGION( 0x20, "proms", 0 ) - ROM_LOAD( "6331.10f", 0x00, 0x20, CRC(24652bc4) SHA1(d89575f3749c75dc963317fe451ffeffd9856e4d) ) -ROM_END - ROM_START( redrobin ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "redro01f.16d", 0x0000, 0x1000, CRC(0788ce10) SHA1(32084714fe005d0489ab1a7e6684a49bd103ce5e) ) @@ -1101,8 +1079,7 @@ GAME( 1983, jumpcoas, 0, jumpcoas, jumpcoas, fastfred_state, init_jumpco GAME( 1983, jumpcoasa, jumpcoas, jumpcoas, jumpcoas, fastfred_state, init_jumpcoas, ROT90, "Kaneko", "Jump Coaster", MACHINE_SUPPORTS_SAVE ) GAME( 1983, jumpcoast, jumpcoas, jumpcoas, jumpcoas, fastfred_state, init_jumpcoas, ROT90, "Kaneko (Taito license)", "Jump Coaster (Taito)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, boggy84, 0, jumpcoas, boggy84, fastfred_state, init_boggy84, ROT90, "Kaneko", "Boggy '84", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, boggy84b, boggy84, jumpcoas, boggy84, fastfred_state, init_boggy84b, ROT90, "bootleg (Eddie's Games)", "Boggy '84 (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, boggy84b2, boggy84, jumpcoas, boggy84, fastfred_state, init_boggy84, ROT90, "bootleg", "Boggy '84 (bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // one program ROM isn't dumped +GAME( 1983, boggy84b, boggy84, jumpcoas, boggy84, fastfred_state, init_boggy84b, ROT90, "bootleg (Eddie's Games)", "Boggy '84 (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, redrobin, 0, fastfred, redrobin, fastfred_state, init_flyboyb, ROT90, "Elettronolo", "Red Robin", MACHINE_SUPPORTS_SAVE ) GAME( 1984, imago, 0, imago, imago, fastfred_state, init_imago, ROT90, "Acom", "Imago (cocktail set)", 0 ) GAME( 1983, imagoa, imago, imago, imagoa, fastfred_state, init_imago, ROT90, "Acom", "Imago (no cocktail set)", 0 ) |