summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fastfred.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fastfred.cpp')
-rw-r--r--src/mame/drivers/fastfred.cpp87
1 files changed, 55 insertions, 32 deletions
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp
index 5a0cd8f3aed..025d9027b1a 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);
}
-MACHINE_CONFIG_START(fastfred_state::fastfred)
-
+void fastfred_state::fastfred(machine_config &config)
+{
/* basic machine hardware */
- 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_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("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)
+ 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));
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 @@ MACHINE_CONFIG_START(fastfred_state::fastfred)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- 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))
+ 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));
GFXDECODE(config, "gfxdecode", m_palette, gfx_fastfred);
@@ -676,31 +676,31 @@ MACHINE_CONFIG_START(fastfred_state::fastfred)
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
+}
-MACHINE_CONFIG_START(fastfred_state::jumpcoas)
+void fastfred_state::jumpcoas(machine_config &config)
+{
fastfred(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jumpcoas_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &fastfred_state::jumpcoas_map);
- MCFG_DEVICE_REMOVE("audiocpu")
+ config.device_remove("audiocpu");
/* video hardware */
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_jumpcoas)
+ subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_jumpcoas);
/* sound hardware */
- MCFG_DEVICE_REMOVE("soundlatch")
- MCFG_DEVICE_REMOVE("ay8910.2")
-MACHINE_CONFIG_END
+ config.device_remove("soundlatch");
+ config.device_remove("ay8910.2");
+}
-MACHINE_CONFIG_START(fastfred_state::imago)
+void fastfred_state::imago(machine_config &config)
+{
fastfred(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(imago_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &fastfred_state::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,12 +710,11 @@ MACHINE_CONFIG_START(fastfred_state::imago)
/* video hardware */
m_palette->set_entries(256+64+2); // 256 for characters, 64 for the stars and 2 for the web
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_imago)
+ subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_imago);
MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_imago)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(fastfred_state::screen_update_imago));
+}
#undef CLOCK
@@ -917,6 +916,29 @@ 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) )
@@ -1079,7 +1101,8 @@ 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)", 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( 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 )