summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/dec0.cpp
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2019-08-12 14:47:35 +0200
committer Dirk Best <mail@dirk-best.de>2019-08-12 15:07:36 +0200
commita8e73236516e9059c40b944cb14a3de5f6e266ee (patch)
tree8ebd20051f78fe8bc6c0f59e4aaf3f33b7ce09c1 /src/mame/drivers/dec0.cpp
parent45f9e0caa9f2b830ebb7f3371a3a3748f63cf147 (diff)
birdtry: Hook up newly dumped MCU, remove simulation
Promoted to working as result.
Diffstat (limited to 'src/mame/drivers/dec0.cpp')
-rw-r--r--src/mame/drivers/dec0.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 33e8e3e6d0b..7d4f73a021c 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -2080,6 +2080,16 @@ void dec0_state::birdtry(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map);
+ // needs a tight sync with the mcu
+ config.m_perfect_cpu_quantum = subtag("maincpu");
+
+ i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000)));
+ mcu.port_in_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_r));
+ mcu.port_out_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_w));
+ mcu.port_out_cb<1>().set(FUNC(dec0_state::dec0_mcu_port1_w));
+ mcu.port_out_cb<2>().set(FUNC(dec0_state::dec0_mcu_port2_w));
+ mcu.port_out_cb<3>().set(FUNC(dec0_state::dec0_mcu_port3_w));
+
upd4701_device &tb0(UPD4701A(config, "tb0"));
tb0.set_portx_tag("track_0");
tb0.set_porty_tag("track_1");
@@ -4033,7 +4043,7 @@ GAME( 1987, hbarrel, 0, hbarrel, hbarrel, dec0_state, init_hbarr
GAME( 1987, hbarrelw, hbarrel, hbarrel, hbarrel, dec0_state, init_hbarrel, ROT270, "Data East Corporation", "Heavy Barrel (World)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, baddudes, 0, baddudes, baddudes, dec0_state, init_hbarrel, ROT0, "Data East USA", "Bad Dudes vs. Dragonninja (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, drgninja, baddudes, baddudes, drgninja, dec0_state, init_hbarrel, ROT0, "Data East Corporation", "Dragonninja (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, init_birdtry, ROT270, "Data East Corporation", "Birdie Try (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protection controls game related data, impossible to emulate without a working PCB
+GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, init_hbarrel, ROT270, "Data East Corporation", "Birdie Try (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocop, 0, robocop, robocop, dec0_state, empty_init, ROT0, "Data East Corporation", "Robocop (World revision 4)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East Corporation", "Robocop (World revision 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East Corporation", "Robocop (Japan)", MACHINE_SUPPORTS_SAVE )