summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/ice/chexx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/ice/chexx.cpp')
-rw-r--r--src/mame/ice/chexx.cpp54
1 files changed, 47 insertions, 7 deletions
diff --git a/src/mame/ice/chexx.cpp b/src/mame/ice/chexx.cpp
index c3f33a2d80f..33aadc571c7 100644
--- a/src/mame/ice/chexx.cpp
+++ b/src/mame/ice/chexx.cpp
@@ -106,6 +106,10 @@ public:
{
}
+ void chexx(machine_config &config) ATTR_COLD;
+ void unkbubsc(machine_config &config) ATTR_COLD;
+
+protected:
// handlers
uint8_t via_a_in();
uint8_t via_b_in();
@@ -122,18 +126,17 @@ public:
void lamp_w(uint8_t data);
- void chexx(machine_config &config);
- void mem(address_map &map);
+ void mem(address_map &map) ATTR_COLD;
+ void unkbubsc_mem(address_map &map) ATTR_COLD;
-protected:
TIMER_CALLBACK_MEMBER(update);
// digitalker
void digitalker_set_bank(uint8_t bank);
// driver_device overrides
- virtual void machine_start() override;
- virtual void machine_reset() override;
+ virtual void machine_start() override ATTR_COLD;
+ virtual void machine_reset() override ATTR_COLD;
// devices
required_device<cpu_device> m_maincpu;
@@ -170,7 +173,7 @@ public:
protected:
void ay_w(offs_t offset, uint8_t data);
- void mem(address_map &map);
+ void mem(address_map &map) ATTR_COLD;
required_device<ay8910_device> m_aysnd; // only faceoffh
uint8_t m_ay_cmd = 0;
@@ -276,6 +279,13 @@ void chexx_state::mem(address_map &map)
map(0xf800, 0xffff).rom().region("maincpu", 0);
}
+void chexx_state::unkbubsc_mem(address_map &map)
+{
+ mem(map);
+
+ map(0xf000, 0xffff).rom().region("maincpu", 0);
+}
+
void chexx_state::lamp_w(uint8_t data)
{
m_lamp = data;
@@ -446,6 +456,13 @@ void chexx_state::chexx(machine_config &config)
m_digitalker->add_route(ALL_OUTPUTS, "mono", 0.16);
}
+void chexx_state::unkbubsc(machine_config &config)
+{
+ chexx(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &chexx_state::unkbubsc_mem);
+}
+
void faceoffh_state::faceoffh(machine_config &config)
{
chexx(config);
@@ -566,10 +583,33 @@ ROM_START( faceoffh )
ROM_FILL( 0xe000, 0x2000, 0xff ) // unpopulated
ROM_END
-} // Anonymous namespace
+// SOCCER CPU PCB: SY6502A, R6522AP, B8303DIGITALKER, bank of 4 DIP switches, 4 MHz XTAL
+ROM_START( unkbubsc )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "9.5d", 0x0000, 0x1000, CRC(2efe2cb6) SHA1(f4c34c9145528cc308ccf8002e7f638c2c578bee) )
+
+ ROM_REGION( 0x4000, "digitalker", ROMREGION_ERASE00 )
+ // bank switched (from samples region)
+
+ ROM_REGION( 0x10000, "samples", 0 )
+ ROM_LOAD( "1.2a", 0x0000, 0x2000, CRC(059b3725) SHA1(5837bee1ef34ce19a3101b851ca55029776e4b3e) ) // digitalker header
+ ROM_LOAD( "2.2b", 0x2000, 0x2000, CRC(679da4e1) SHA1(01a5b9dd132c1b0de97c153d7de226f5bf357338) )
+
+ ROM_LOAD( "3.2c", 0x4000, 0x2000, CRC(f8461b33) SHA1(717a8842e0ce9ba94dd59504a324bede4844e389) ) // digitalker header
+ ROM_LOAD( "4.2d", 0x6000, 0x2000, CRC(156c91e0) SHA1(6017d4b5609b214a6e66dcd76493a7d1442c04d4) )
+
+ ROM_LOAD( "5.3a", 0x8000, 0x2000, CRC(19904604) SHA1(633c211a9a822cdf597a6f3c221ae9c8d6482e82) ) // digitalker header
+ ROM_LOAD( "6.3b", 0xa000, 0x2000, CRC(c3386d51) SHA1(7882e88db55ba914be81075e4b2d76e246c34d3b) )
+
+ ROM_LOAD( "7.3c", 0xc000, 0x2000, CRC(cc3473b5) SHA1(325d16b64a0d09091768d0bfae16517505b00d03) )
+ ROM_LOAD( "8.3d", 0xe000, 0x2000, CRC(f8ff29df) SHA1(681501d5692fcb741af7bf830fa18907d2fa283f) )
+ROM_END
+
+} // anonymous namespace
GAME( 1983, chexx83, 0, chexx, chexx83, chexx_state, empty_init, ROT270, "ICE", "Chexx (EM Bubble Hockey, 1983 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
GAME( 1983, faceoffh, chexx83, faceoffh, chexx83, faceoffh_state, empty_init, ROT270, "SoftLogic (Entertainment Enterprises, Ltd. license)", "Face-Off (EM Bubble Hockey)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
GAME( 1985, olihockey, 0, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
GAME( 1985, olihockeya, olihockey, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 2)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME( 198?, unkbubsc, 0, unkbubsc, chexx83, chexx_state, empty_init, ROT270, "<unknown>", "unknown bubble soccer game", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )