mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
Split off Williams Shuffle games to their own driver.
This commit is contained in:
parent
70295eff16
commit
f854bf08a5
@ -4724,6 +4724,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/whitestar.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/white_mod.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wico.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wms_shuffle.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wpc_95.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wpc_an.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wpc_dcs.cpp",
|
||||
|
@ -2,18 +2,13 @@
|
||||
// copyright-holders:Miodrag Milanovic, Robbbert
|
||||
/****************************************************************************************
|
||||
|
||||
Pinball
|
||||
Williams System 11
|
||||
PINBALL
|
||||
Williams System 11
|
||||
|
||||
Status of games:
|
||||
Status:
|
||||
|
||||
|
||||
ToDo:
|
||||
- tic-tac-strike belongs in s11a.cpp
|
||||
- gold mine belongs in s11b.cpp
|
||||
- top dawg belongs in s11b.cpp
|
||||
- shuffle inn belongs in s11b.cpp
|
||||
|
||||
Known keys necessary to get games to start (so the proper number of balls are detected):
|
||||
- Grand Lizard: Press S, D, F, and press "1" after inserting 1 or more credits.
|
||||
- Road Kings: press 'Up' (the direction key) and 'Delete', and press "1" after inserting 1 or more credits.
|
||||
@ -653,82 +648,6 @@ ROM_START(rdkng_l4)
|
||||
ROM_LOAD("road_u4.l1", 0x0000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774))
|
||||
ROM_END
|
||||
|
||||
/************************ From here, not pinball machines **************************************/
|
||||
|
||||
/*------------------------------
|
||||
/ Alley Cats (Shuffle) (#918)
|
||||
/-------------------------------*/
|
||||
ROM_START(alcat_l7)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u26_rev7.rom", 0xd000, 0x1000, CRC(4d274dd3) SHA1(80d72bd0f85ce2cac04f6d9f59dc1fcccc86d402))
|
||||
ROM_LOAD("u27_rev7.rom", 0xe000, 0x2000, CRC(9c7faf8a) SHA1(dc1a561948b9a303f7924d7bebcd972db766827b))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("acs_u21.bin", 0x18000, 0x8000, CRC(c54cd329) SHA1(4b86b10e60a30c4de5d97129074f5657447be676))
|
||||
ROM_LOAD("acs_u22.bin", 0x10000, 0x8000, CRC(56c1011a) SHA1(c817a3410c643617f3643897b8f529ae78546b0d))
|
||||
ROM_END
|
||||
|
||||
/*--------------------
|
||||
/ Tic-Tac-Strike (#919)
|
||||
/--------------------*/
|
||||
ROM_START(tts_l2)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27_l2.128", 0x8000, 0x4000, CRC(edbcab92) SHA1(0f6b2dc01874984f9a17ee873f2fa0b6c9bba5be))
|
||||
ROM_RELOAD( 0xc000, 0x4000)
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP)
|
||||
ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
ROM_START(tts_l1)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u27.128", 0x8000, 0x4000, CRC(f540c53c) SHA1(1c7a318278ad1afdcbe6aaf81f9b774882b069d6))
|
||||
ROM_RELOAD( 0xc000, 0x4000)
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP)
|
||||
ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
/*-------------------------------
|
||||
/ Gold Mine (Shuffle) (#920) s11b
|
||||
/--------------------------------*/
|
||||
ROM_START(gmine_l2)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27.128", 0x8000, 0x4000, CRC(99c6e049) SHA1(356faec0598a54892050a28857e9eb5cdbf35833))
|
||||
ROM_RELOAD( 0xc000, 0x4000)
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u21.256", 0x18000, 0x8000, CRC(3b801570) SHA1(50b50ff826dcb031a30940fa3099bd3a8d773831))
|
||||
ROM_LOAD("u22.256", 0x10000, 0x8000, CRC(08352101) SHA1(a7437847a71cf037a80686292f9616b1e08922df))
|
||||
ROM_END
|
||||
|
||||
/*-------------------------
|
||||
/ Top Dawg (Shuffle) (#921)
|
||||
/--------------------------*/
|
||||
ROM_START(tdawg_l1)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tdu27r1.128", 0x8000, 0x4000, CRC(0b4bb586) SHA1(a927ebf7167609cc84b38c22aa35d0c4d259dd8b))
|
||||
ROM_RELOAD( 0xc000, 0x4000)
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tdsu21r1.256", 0x18000, 0x8000, CRC(6a323227) SHA1(7c7263754e5672c654a2ee9582f0b278e637a909))
|
||||
ROM_LOAD("tdsu22r1.256", 0x10000, 0x8000, CRC(58407eb4) SHA1(6bd9b304c88d9470eae5afb6621187f4a8313573))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Shuffle Inn (Shuffle) (#922)
|
||||
/-----------------------------*/
|
||||
ROM_START(shfin_l1)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27rom-1.rv1", 0x8000, 0x4000, CRC(40cfb74a) SHA1(8cee4212ea8bb6b360060391df3208e1e129d7e5))
|
||||
ROM_RELOAD( 0xc000, 0x4000)
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u21snd-2.rv1", 0x18000, 0x8000, CRC(80ddce05) SHA1(9498260e5ccd2fe0eb03ff321dd34eb945b0213a))
|
||||
ROM_LOAD("u22snd-2.rv1", 0x10000, 0x8000, CRC(6894abaf) SHA1(2d661765fbfce33a73a20778c41233c0bd9933e9))
|
||||
ROM_END
|
||||
|
||||
// Pinball
|
||||
GAME( 1986, grand_l4, 0, s11_bgs, s11, s11_state, init_s11, ROT0, "Williams", "Grand Lizard (L-4)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
@ -739,11 +658,3 @@ GAME( 1986, rdkng_l4, 0, s11_bgm, s11, s11_state, init_s11, ROT0, "Willi
|
||||
GAME( 1986, rdkng_l1, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, rdkng_l2, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, rdkng_l3, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-3)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
||||
// Shuffle
|
||||
GAME( 1985, alcat_l7, 0, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, tts_l2, 0, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, tts_l1, tts_l2, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, gmine_l2, 0, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Gold Mine (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, tdawg_l1, 0, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Top Dawg (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, shfin_l1, 0, s11_only, s11, s11_state, init_s11, ROT0, "Williams", "Shuffle Inn (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
@ -15,35 +15,20 @@ Games:
|
||||
- Trizone (#487)
|
||||
- Time Warp (#489)
|
||||
- Stellar Wars (#490)
|
||||
- Pompei
|
||||
- Aristocrat
|
||||
- Topaz
|
||||
- Taurus
|
||||
- King Tut
|
||||
- Omni
|
||||
- Big Strike
|
||||
- Triple Strike
|
||||
|
||||
The first time run, the pinballs will display will show the model number, while
|
||||
the shuffle games show 0200 and 419. Press F3 to clear this.
|
||||
The first time run, the machine will display will show the model number.
|
||||
Press F3 to clear this.
|
||||
|
||||
Phoenix and Pokerino are listed as System 4, but use System 3 ROMs.
|
||||
They have been moved to s3.cpp, and are working there.
|
||||
|
||||
The "Shuffle" games consist of a flat board with an air-driven puck and 10
|
||||
bowling pins. You must push the puck as if it was a bowling ball, and score
|
||||
strikes and spares. Since the maximum score is 300, the displays have 4 digits
|
||||
and 6 can play. They will most likely be split off to a separate driver.
|
||||
|
||||
Pressing NUM-8 will select a different set of sounds.
|
||||
|
||||
Status:
|
||||
- Pinballs are playable.
|
||||
- All machines are playable.
|
||||
|
||||
ToDo:
|
||||
- Shuffle games: need a layout, and no manuals found. Press 6 to insert coin,
|
||||
press 9 to start. Some keys make noises. / key steps to next frame.
|
||||
|
||||
- Nothing
|
||||
|
||||
************************************************************************************/
|
||||
|
||||
@ -714,108 +699,6 @@ ROM_START(stlwr_l2)
|
||||
ROM_LOAD("sound1.716", 0x0000, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
/* From here, are NOT pinball machines */
|
||||
|
||||
/*----------------------------
|
||||
/ Pompeii (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(pomp_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Aristocrat (Shuffle) same roms as Pompeii
|
||||
/----------------------------*/
|
||||
ROM_START(arist_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Topaz (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(topaz_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(cb287b10) SHA1(7fb6b6a26237cf85d5e02cf35271231267f90fc1))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("sound1.716", 0x0000, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Taurus (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(taurs_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(3246e285) SHA1(4f76784ecb5063a49c24795ae61db043a51e2c89))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ King Tut
|
||||
/----------------------------*/
|
||||
ROM_START(kingt_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(54d3280a) SHA1(ca74636e35d2c3e0b3133f89b1ff1233d5d72a5c))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Omni (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(omni_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("omni-1a.u21", 0x0000, 0x0800, CRC(443bd170) SHA1(cc1ebd72d77ec2014cbd84534380e5ea1f12c022))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("sound.716", 0x0000, 0x0800, CRC(db085cbb) SHA1(9a57abbad183ba16b3dba16d16923c3bfc46a0c3))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Big Strike (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(bstrk_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(323dbcde) SHA1(a75cbb5de97cb9afc1d36e9b6ff593bb482fcf8b))
|
||||
ROM_LOAD("b_ic20.716", 0x1000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Triple Strike (Shuffle)
|
||||
/----------------------------*/
|
||||
ROM_START(tstrk_l1)
|
||||
ROM_REGION(0x2000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x0000, 0x0800, CRC(b034c059) SHA1(76b3926b87b3c137fcaf33021a586827e3c030af))
|
||||
ROM_LOAD("ic20.716", 0x1000, 0x0800, CRC(f163fc88) SHA1(988b60626f3d4dc8f4a1dbd0c99282418bc53aae))
|
||||
ROM_LOAD("b_ic17.716", 0x1800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
// Pinball
|
||||
@ -828,13 +711,3 @@ GAME( 1979, tmwrp_l3, 0, s4a, tmwrp, s4a_state, empty_init, ROT0, "Willia
|
||||
GAME( 1979, tmwrp_l2, tmwrp_l3, s4a, tmwrp, s4a_state, empty_init, ROT0, "Williams", "Time Warp (Williams, L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, tmwrp_t2, tmwrp_l3, s4a, tmwrp, s4a_state, empty_init, ROT0, "Williams", "Time Warp (Williams, T-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, stlwr_l2, 0, s4a, stlwr, s4a_state, empty_init, ROT0, "Williams", "Stellar Wars (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
||||
// Shuffle
|
||||
GAME( 1978, pomp_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1978, arist_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1978, topaz_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "Topaz (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, taurs_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "Taurus (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, kingt_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "King Tut (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1980, omni_l1, 0, s4a, s4a, s4a_state, empty_init, ROT0, "Williams", "Omni (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1983, bstrk_l1, 0, s4, s4, s4_state, empty_init, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1983, tstrk_l1, 0, s4, s4, s4_state, empty_init, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
@ -16,7 +16,6 @@ Games:
|
||||
- Comet (#540)
|
||||
- Rat Race (#527)
|
||||
- Rat Race II (#533)
|
||||
- Strike Zone (#916)
|
||||
|
||||
The first time run, the display will show the model number. Press F3 to clear this.
|
||||
|
||||
@ -41,8 +40,6 @@ Status:
|
||||
|
||||
ToDo:
|
||||
- Rat Race: need a manual, playboard contacts are unknown/don't respond.
|
||||
- Strike Zone (Shuffle): need a manual, need a layout. Press 5 to insert coin,
|
||||
press 1 to start. Some keys make noises.
|
||||
- Mechanical sounds
|
||||
|
||||
*****************************************************************************************/
|
||||
@ -568,27 +565,6 @@ ROM_START(comet_l5)
|
||||
ROM_LOAD("cpu_u49.128", 0x4000, 0x4000, CRC(f1db0cbe) SHA1(59b7f36fb2003b90b288abeff56df62ce50f10c6))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
/ Strike Zone (Shuffle) (#916)
|
||||
/---------------------------------*/
|
||||
ROM_START(szone_l5)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sz_u19r5.732", 0x1000, 0x1000, CRC(c79c46cb) SHA1(422ba74ae67bebbe02f85a9a8df0e3072f3cebc0))
|
||||
ROM_LOAD("sz_u20r5.764", 0x2000, 0x2000, CRC(9b5b3be2) SHA1(fce051a60b6eecd9bc07273892b14046b251b372))
|
||||
|
||||
ROM_REGION(0x8000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("szs_u49.128", 0x4000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
|
||||
ROM_END
|
||||
|
||||
ROM_START(szone_l2)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sz_u19r2.732", 0x1000, 0x1000, CRC(c0e4238b) SHA1(eae60ccd5b5001671cd6d2685fd588494d052d1e))
|
||||
ROM_LOAD("sz_u20r2.764", 0x2000, 0x2000, CRC(91c08137) SHA1(86da08f346f85810fceceaa7b9824ab76a68da54))
|
||||
|
||||
ROM_REGION(0x8000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("szs_u49.128", 0x4000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
// Novelty
|
||||
@ -601,7 +577,3 @@ GAME( 1984, sshtl_l7, 0, s9, sshtl, s9_state, empty_init, ROT0, "Williams
|
||||
GAME( 1984, sshtl_l3, sshtl_l7, s9, sshtl, s9_state, empty_init, ROT0, "Williams", "Space Shuttle (L-3)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1985, comet_l4, comet_l5, s9, s9, s9_state, empty_init, ROT0, "Williams", "Comet (L-4)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1985, comet_l5, 0, s9, s9, s9_state, empty_init, ROT0, "Williams", "Comet (L-5)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
||||
// Shuffle
|
||||
GAME( 1984, szone_l5, 0, s9, s9, s9_state, empty_init, ROT0, "Williams", "Strike Zone (Shuffle) (L-5)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1984, szone_l2, szone_l5, s9, s9, s9_state, empty_init, ROT0, "Williams", "Strike Zone (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
|
819
src/mame/drivers/wms_shuffle.cpp
Normal file
819
src/mame/drivers/wms_shuffle.cpp
Normal file
@ -0,0 +1,819 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Robbbert
|
||||
/***********************************************************************************
|
||||
|
||||
PINBALL
|
||||
Williams/United Shuffle-Alley games
|
||||
|
||||
Games:
|
||||
- Topaz (s4)
|
||||
- Pompei (s4)
|
||||
- Aristocrat (s4)
|
||||
- Taurus (s4)
|
||||
- King Tut (s4)(#912)
|
||||
- Omni (s4)
|
||||
- Big Strike (s4)
|
||||
- Triple Strike (s4)
|
||||
- Strike Zone (s9)(#916)
|
||||
- Alley Cats (s11)(#918)
|
||||
- Tic-Tac-Strike (s11a)(#919)
|
||||
- Gold Mine (s11b)(#920)
|
||||
- Top Dawg (s11b)(#921)
|
||||
- Shuffle Inn (s11b)(#922)
|
||||
|
||||
The first time run, the machine will show some numbers. Press F3 to clear this.
|
||||
|
||||
Each game consists of a flat board with an air-driven puck and 10 bowling pins.
|
||||
You must push the puck as if it was a bowling ball, and score strikes and spares.
|
||||
The displays have 4 digits and 6 can play. The board has contactors to detect
|
||||
the passage of the puck, and the machine will lift the bowling pins out of the
|
||||
way, so in fact the puck never touches the pins at all.
|
||||
|
||||
Status:
|
||||
- All games (except s11a/b) seem to be playable, but no sound, and the inputs
|
||||
aren't known.
|
||||
- s4 games: 6 to insert coin, 9 to start, various keys on bottom 2 rows act as puck
|
||||
detectors, period key to signal end of ball. Press it twice to end a frame.
|
||||
- Strike Zone, Alley Cats: 5 to insert coin, 1 to start, then same as above.
|
||||
- s11a/b games: stuck in the boot-up sequence.
|
||||
|
||||
ToDo:
|
||||
- Only 2 manuals found, and only one schematic, so it's largely guesswork.
|
||||
- Layout (s11/a/b)
|
||||
- Inputs
|
||||
- Outputs
|
||||
- Displays (s11/a/b)
|
||||
- Sound
|
||||
- Roms missing
|
||||
- Remove all mechanical sounds (no chimes or knocker in these games)
|
||||
|
||||
************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/genpin.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "machine/clock.h"
|
||||
#include "machine/input_merger.h"
|
||||
#include "machine/ripple_counter.h"
|
||||
#include "sound/dac.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include "shuffle.lh"
|
||||
#include "shuffle11.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class shuffle_state : public genpin_class
|
||||
{
|
||||
public:
|
||||
shuffle_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: genpin_class(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_mainirq(*this, "mainirq")
|
||||
, m_pia21(*this, "pia21")
|
||||
, m_pia22(*this, "pia22")
|
||||
, m_pia24(*this, "pia24")
|
||||
, m_pia28(*this, "pia28")
|
||||
, m_pia2c(*this, "pia2c")
|
||||
, m_pia30(*this, "pia30")
|
||||
, m_pia34(*this, "pia34")
|
||||
, m_4020(*this, "4020")
|
||||
, m_io_keyboard(*this, "X%d", 0U)
|
||||
, m_dips(*this, "DS%d", 1U)
|
||||
, m_digits(*this, "digit%d", 0U)
|
||||
, m_leds(*this, "led%d", 0U)
|
||||
, m_io_outputs(*this, "out%d", 0U)
|
||||
{ }
|
||||
|
||||
void s4(machine_config &config);
|
||||
void s9(machine_config &config);
|
||||
void s11(machine_config &config);
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
void dig0_w(u8 data);
|
||||
void dig1_w(u8 data);
|
||||
void lamp0_w(u8 data);
|
||||
void lamp1_w(u8 data);
|
||||
void sol0_w(u8 data);
|
||||
void sol1_w(u8 data);
|
||||
void sol2_w(u8 data) { };
|
||||
void sol3_w(u8 data) { };
|
||||
void sound_w(u8);
|
||||
void pia2c_pa_w(u8);
|
||||
void pia2c_pb_w(u8);
|
||||
void pia34_pa_w(u8);
|
||||
void pia34_pb_w(u8);
|
||||
u8 dips_r();
|
||||
u8 sound_r();
|
||||
u8 switch_r();
|
||||
void switch_w(u8 data);
|
||||
void clockcnt_w(u16 data);
|
||||
u8 m_strobe = 0;
|
||||
u8 m_row = 0;
|
||||
bool m_data_ok = 0;
|
||||
u8 m_lamp_data = 0;
|
||||
bool m_irq_in_progress = 0;
|
||||
u32 m_segment1 = 0U;
|
||||
u32 m_segment2 = 0U;
|
||||
u8 m_sound_data = 0U;
|
||||
DECLARE_WRITE_LINE_MEMBER(pia22_ca2_w) { } //ST5
|
||||
DECLARE_WRITE_LINE_MEMBER(pia22_cb2_w) { } //ST-solenoids enable
|
||||
DECLARE_WRITE_LINE_MEMBER(pia24_ca2_w) { } //ST2
|
||||
DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { } //ST1
|
||||
DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } //diag leds enable
|
||||
DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } //ST6
|
||||
DECLARE_WRITE_LINE_MEMBER(pia30_ca2_w) { } //ST4
|
||||
DECLARE_WRITE_LINE_MEMBER(pia30_cb2_w) { } //ST3
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_w);
|
||||
void s4_map(address_map &map);
|
||||
void s9_map(address_map &map);
|
||||
void s11_map(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<input_merger_device> m_mainirq;
|
||||
optional_device<pia6821_device> m_pia21;
|
||||
optional_device<pia6821_device> m_pia22;
|
||||
required_device<pia6821_device> m_pia24;
|
||||
required_device<pia6821_device> m_pia28;
|
||||
optional_device<pia6821_device> m_pia2c;
|
||||
required_device<pia6821_device> m_pia30;
|
||||
optional_device<pia6821_device> m_pia34;
|
||||
required_device<ripple_counter_device> m_4020;
|
||||
required_ioport_array<8> m_io_keyboard;
|
||||
required_ioport_array<2> m_dips;
|
||||
output_finder<32> m_digits;
|
||||
output_finder<2> m_leds;
|
||||
output_finder<80> m_io_outputs; // 16 solenoids + 64 lamps
|
||||
};
|
||||
|
||||
|
||||
void shuffle_state::s4_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x00ff).ram();
|
||||
map(0x0100, 0x01ff).ram().share("nvram");
|
||||
map(0x2200, 0x2203).rw(m_pia22, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // solenoids
|
||||
map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps
|
||||
map(0x2800, 0x2803).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display
|
||||
map(0x3000, 0x3003).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs
|
||||
map(0x4000, 0x7fff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void shuffle_state::s9_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x07ff).ram().share("nvram");
|
||||
map(0x2100, 0x2103).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids
|
||||
map(0x2200, 0x2200).w(FUNC(shuffle_state::sol3_w)); // solenoids
|
||||
map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps
|
||||
map(0x2800, 0x2803).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display
|
||||
map(0x3000, 0x3003).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs
|
||||
map(0x4000, 0x7fff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void shuffle_state::s11_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x07ff).ram().share("nvram");
|
||||
map(0x2100, 0x2103).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids
|
||||
map(0x2200, 0x2200).w(FUNC(shuffle_state::sol3_w)); // solenoids
|
||||
map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps
|
||||
map(0x2800, 0x2803).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display
|
||||
map(0x2c00, 0x2c03).rw(m_pia2c, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // alphanumeric display
|
||||
map(0x3000, 0x3003).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs
|
||||
map(0x3400, 0x3403).rw(m_pia34, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // widget
|
||||
map(0x4000, 0x7fff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( shuffle )
|
||||
PORT_START("X0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("Plumb Tilt") // 3 touches before it tilts
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN3 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("High Score Reset")
|
||||
|
||||
PORT_START("X1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP09")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP10")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP11")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP12")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP13")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP14")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP15")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP16")
|
||||
|
||||
PORT_START("X2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP17")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP18")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP19")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP20")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP21")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP22")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP23")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP24")
|
||||
|
||||
PORT_START("X3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP25")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP26")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP27")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP28")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP29")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP30")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP31")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP32")
|
||||
|
||||
PORT_START("X4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP33")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP34")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP35")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP36")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP37")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP38")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP39")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP40")
|
||||
|
||||
PORT_START("X5")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP41")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP42")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP43")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP44")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP45")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP46")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP47")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP48")
|
||||
|
||||
PORT_START("X6") // not used?
|
||||
PORT_START("X7") // not used?
|
||||
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, shuffle_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1")
|
||||
PORT_DIPNAME( 0xf0, 0xf0, "Data units" )
|
||||
PORT_DIPSETTING( 0xf0, "0" )
|
||||
PORT_DIPSETTING( 0x70, "1" )
|
||||
PORT_DIPSETTING( 0xb0, "2" )
|
||||
PORT_DIPSETTING( 0x30, "3" )
|
||||
PORT_DIPSETTING( 0xd0, "4" )
|
||||
PORT_DIPSETTING( 0x50, "5" )
|
||||
PORT_DIPSETTING( 0x90, "6" )
|
||||
PORT_DIPSETTING( 0x10, "7" )
|
||||
PORT_DIPSETTING( 0xe0, "8" )
|
||||
PORT_DIPSETTING( 0x60, "9" )
|
||||
PORT_DIPNAME( 0x0f, 0x0f, "Data tens" )
|
||||
PORT_DIPSETTING( 0x0f, "0" )
|
||||
PORT_DIPSETTING( 0x07, "1" )
|
||||
PORT_DIPSETTING( 0x0b, "2" )
|
||||
PORT_DIPSETTING( 0x03, "3" )
|
||||
PORT_DIPSETTING( 0x0d, "4" )
|
||||
PORT_DIPSETTING( 0x05, "5" )
|
||||
PORT_DIPSETTING( 0x09, "6" )
|
||||
PORT_DIPSETTING( 0x01, "7" )
|
||||
PORT_DIPSETTING( 0x0e, "8" )
|
||||
PORT_DIPSETTING( 0x06, "9" )
|
||||
|
||||
PORT_START("DS2")
|
||||
PORT_DIPNAME( 0xff, 0xff, "Function" )
|
||||
PORT_DIPSETTING( 0xff, "0" )
|
||||
PORT_DIPSETTING( 0x7f, "1" )
|
||||
PORT_DIPSETTING( 0xbf, "2" )
|
||||
PORT_DIPSETTING( 0x3f, "3" )
|
||||
PORT_DIPSETTING( 0xdf, "4" )
|
||||
PORT_DIPSETTING( 0x5f, "5" )
|
||||
PORT_DIPSETTING( 0x9f, "6" )
|
||||
PORT_DIPSETTING( 0x1f, "7" )
|
||||
PORT_DIPSETTING( 0xef, "8" )
|
||||
PORT_DIPSETTING( 0x6f, "9" )
|
||||
PORT_DIPSETTING( 0xaf, "10" )
|
||||
PORT_DIPSETTING( 0x2f, "11" )
|
||||
PORT_DIPSETTING( 0xcf, "12" )
|
||||
PORT_DIPSETTING( 0x4f, "13" )
|
||||
PORT_DIPSETTING( 0x8f, "14" )
|
||||
PORT_DIPSETTING( 0x0f, "15" )
|
||||
PORT_DIPSETTING( 0xf7, "16" )
|
||||
PORT_DIPSETTING( 0x77, "17" )
|
||||
PORT_DIPSETTING( 0xb7, "18" )
|
||||
PORT_DIPSETTING( 0x37, "19" )
|
||||
PORT_DIPSETTING( 0xd7, "20" )
|
||||
PORT_DIPSETTING( 0x57, "21" )
|
||||
PORT_DIPSETTING( 0x97, "22" )
|
||||
PORT_DIPSETTING( 0x17, "23" )
|
||||
PORT_DIPSETTING( 0xe7, "24" )
|
||||
PORT_DIPSETTING( 0x67, "25" )
|
||||
PORT_DIPSETTING( 0xa7, "26" )
|
||||
PORT_DIPSETTING( 0x27, "27" )
|
||||
PORT_DIPSETTING( 0xc7, "28" )
|
||||
PORT_DIPSETTING( 0x47, "29" )
|
||||
PORT_DIPSETTING( 0x87, "30" )
|
||||
PORT_DIPSETTING( 0x07, "31" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void shuffle_state::clockcnt_w(u16 data)
|
||||
{
|
||||
// if (data >= 1536)
|
||||
// m_mainirq->in_set<0>();
|
||||
m_mainirq->in_w<0>(BIT(data, 7, 3)==7);
|
||||
if (BIT(data, 5) && m_irq_in_progress)
|
||||
m_4020->reset_w(1);
|
||||
else
|
||||
m_4020->reset_w(0);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER( shuffle_state::main_nmi )
|
||||
{
|
||||
// Diagnostic button sends a pulse to NMI pin
|
||||
if (newval==CLEAR_LINE)
|
||||
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
|
||||
}
|
||||
|
||||
void shuffle_state::sol0_w(u8 data)
|
||||
{
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
m_io_outputs[i] = BIT(data, i);
|
||||
}
|
||||
|
||||
void shuffle_state::sol1_w(u8 data)
|
||||
{
|
||||
if (BIT(data, 0))
|
||||
m_samples->start(4, 4); // 10 chime
|
||||
|
||||
if (BIT(data, 1))
|
||||
m_samples->start(1, 1); // 100 chime
|
||||
|
||||
if (BIT(data, 2))
|
||||
m_samples->start(2, 2); // 1000 chime
|
||||
|
||||
if (BIT(data, 3))
|
||||
m_samples->start(3, 3); // 10k chime
|
||||
|
||||
if (BIT(data, 5))
|
||||
m_samples->start(0, 6); // knocker
|
||||
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
m_io_outputs[8U+i] = BIT(data, i);
|
||||
}
|
||||
|
||||
void shuffle_state::lamp0_w(u8 data)
|
||||
{
|
||||
m_mainirq->in_clear<0>();
|
||||
m_lamp_data = data ^ 0xff;
|
||||
}
|
||||
|
||||
void shuffle_state::lamp1_w(u8 data)
|
||||
{
|
||||
// find out which row is active
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
if (BIT(data, i))
|
||||
for (u8 j = 0; j < 8; j++)
|
||||
m_io_outputs[16U+i*8U+j] = BIT(m_lamp_data, j);
|
||||
}
|
||||
|
||||
u8 shuffle_state::dips_r()
|
||||
{
|
||||
if (BIT(ioport("DIAGS")->read(), 4))
|
||||
return m_dips[BIT(~m_strobe, 1)]->read() << (BIT(m_strobe, 0) ? 4 : 0);
|
||||
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void shuffle_state::dig0_w(u8 data)
|
||||
{
|
||||
m_strobe = data & 15;
|
||||
m_data_ok = true;
|
||||
m_leds[0] = !BIT(data, 4);
|
||||
m_leds[1] = !BIT(data, 5);
|
||||
}
|
||||
|
||||
void shuffle_state::dig1_w(u8 data)
|
||||
{
|
||||
static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
|
||||
if (m_data_ok)
|
||||
{
|
||||
m_digits[m_strobe+16] = patterns[data&15];
|
||||
m_digits[m_strobe] = patterns[data>>4];
|
||||
}
|
||||
m_data_ok = false;
|
||||
}
|
||||
|
||||
void shuffle_state::pia2c_pa_w(u8 data)
|
||||
{
|
||||
m_segment1 |= (data<<8);
|
||||
m_segment1 |= 0x10000;
|
||||
if ((m_segment1 & 0x70000) == 0x30000)
|
||||
{
|
||||
m_digits[m_strobe] = bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
m_segment1 |= 0x40000;
|
||||
}
|
||||
}
|
||||
|
||||
void shuffle_state::pia2c_pb_w(u8 data)
|
||||
{
|
||||
m_segment1 |= data;
|
||||
m_segment1 |= 0x20000;
|
||||
if ((m_segment1 & 0x70000) == 0x30000)
|
||||
{
|
||||
m_digits[m_strobe] = bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
m_segment1 |= 0x40000;
|
||||
}
|
||||
}
|
||||
|
||||
void shuffle_state::pia34_pa_w(u8 data)
|
||||
{
|
||||
m_segment2 |= (data<<8);
|
||||
m_segment2 |= 0x10000;
|
||||
if ((m_segment2 & 0x70000) == 0x30000)
|
||||
{
|
||||
m_digits[m_strobe+16] = bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
m_segment2 |= 0x40000;
|
||||
}
|
||||
}
|
||||
|
||||
void shuffle_state::pia34_pb_w(u8 data)
|
||||
{
|
||||
}
|
||||
|
||||
u8 shuffle_state::sound_r()
|
||||
{
|
||||
return m_sound_data;
|
||||
}
|
||||
|
||||
void shuffle_state::sound_w(u8 data)
|
||||
{
|
||||
m_sound_data = data;
|
||||
}
|
||||
|
||||
u8 shuffle_state::switch_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
if (BIT(m_row, i))
|
||||
data |= m_io_keyboard[i]->read();
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void shuffle_state::switch_w(u8 data)
|
||||
{
|
||||
m_row = data;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( shuffle_state::irq_w )
|
||||
{
|
||||
m_irq_in_progress = state;
|
||||
m_maincpu->set_input_line(M6802_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
void shuffle_state::machine_start()
|
||||
{
|
||||
genpin_class::machine_start();
|
||||
m_io_outputs.resolve();
|
||||
m_digits.resolve();
|
||||
m_leds.resolve();
|
||||
|
||||
save_item(NAME(m_irq_in_progress));
|
||||
save_item(NAME(m_strobe));
|
||||
save_item(NAME(m_row));
|
||||
save_item(NAME(m_data_ok));
|
||||
save_item(NAME(m_lamp_data));
|
||||
save_item(NAME(m_segment1));
|
||||
save_item(NAME(m_segment2));
|
||||
save_item(NAME(m_sound_data));
|
||||
}
|
||||
|
||||
void shuffle_state::machine_reset()
|
||||
{
|
||||
genpin_class::machine_reset();
|
||||
for (u8 i = 0; i < m_io_outputs.size(); i++)
|
||||
m_io_outputs[i] = 0;
|
||||
|
||||
m_irq_in_progress = 0;
|
||||
}
|
||||
|
||||
void shuffle_state::s4(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
M6802(config, m_maincpu, 3580000); // Divided by 4 internally
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shuffle_state::s4_map);
|
||||
|
||||
// Video
|
||||
config.set_default_layout(layout_shuffle);
|
||||
|
||||
// Sound
|
||||
genpin_audio(config);
|
||||
|
||||
// Devices
|
||||
PIA6821(config, m_pia22, 0);
|
||||
m_pia22->writepa_handler().set(FUNC(shuffle_state::sol0_w));
|
||||
m_pia22->writepb_handler().set(FUNC(shuffle_state::sol1_w));
|
||||
m_pia22->ca2_handler().set(FUNC(shuffle_state::pia22_ca2_w));
|
||||
m_pia22->cb2_handler().set(FUNC(shuffle_state::pia22_cb2_w));
|
||||
m_pia22->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<1>));
|
||||
m_pia22->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<2>));
|
||||
|
||||
PIA6821(config, m_pia24, 0);
|
||||
m_pia24->writepa_handler().set(FUNC(shuffle_state::lamp0_w));
|
||||
m_pia24->writepb_handler().set(FUNC(shuffle_state::lamp1_w));
|
||||
m_pia24->ca2_handler().set(FUNC(shuffle_state::pia24_ca2_w));
|
||||
m_pia24->cb2_handler().set(FUNC(shuffle_state::pia24_cb2_w));
|
||||
m_pia24->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<3>));
|
||||
m_pia24->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<4>));
|
||||
|
||||
PIA6821(config, m_pia28, 0);
|
||||
m_pia28->readpa_handler().set(FUNC(shuffle_state::dips_r));
|
||||
m_pia28->set_port_a_input_overrides_output_mask(0xff);
|
||||
m_pia28->readca1_handler().set_ioport("DIAGS").bit(2); // advance button
|
||||
m_pia28->readcb1_handler().set_ioport("DIAGS").bit(3); // auto/manual switch
|
||||
m_pia28->writepa_handler().set(FUNC(shuffle_state::dig0_w));
|
||||
m_pia28->writepb_handler().set(FUNC(shuffle_state::dig1_w));
|
||||
m_pia28->ca2_handler().set(FUNC(shuffle_state::pia28_ca2_w));
|
||||
m_pia28->cb2_handler().set(FUNC(shuffle_state::pia28_cb2_w));
|
||||
m_pia28->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<5>));
|
||||
m_pia28->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<6>));
|
||||
|
||||
PIA6821(config, m_pia30, 0);
|
||||
m_pia30->readpa_handler().set(FUNC(shuffle_state::switch_r));
|
||||
m_pia30->set_port_a_input_overrides_output_mask(0xff);
|
||||
m_pia30->writepb_handler().set(FUNC(shuffle_state::switch_w));
|
||||
m_pia30->ca2_handler().set(FUNC(shuffle_state::pia30_ca2_w));
|
||||
m_pia30->cb2_handler().set(FUNC(shuffle_state::pia30_cb2_w));
|
||||
m_pia30->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<7>));
|
||||
m_pia30->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<8>));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
INPUT_MERGER_ANY_HIGH(config, m_mainirq).output_handler().set(FUNC(shuffle_state::irq_w));
|
||||
|
||||
RIPPLE_COUNTER(config, m_4020);
|
||||
m_4020->set_stages(14); // Using Q5,Q8,Q9
|
||||
m_4020->count_out_cb().set(FUNC(shuffle_state::clockcnt_w));
|
||||
|
||||
CLOCK(config, "rclock", 3580000/4).signal_handler().set(m_4020, FUNC(ripple_counter_device::clock_w));
|
||||
}
|
||||
|
||||
void shuffle_state::s9(machine_config &config)
|
||||
{
|
||||
s4(config);
|
||||
config.device_remove("pia22");
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shuffle_state::s9_map);
|
||||
|
||||
PIA6821(config, m_pia21, 0);
|
||||
m_pia21->readpa_handler().set(FUNC(shuffle_state::sound_r));
|
||||
m_pia21->set_port_a_input_overrides_output_mask(0xff);
|
||||
m_pia21->writepa_handler().set(FUNC(shuffle_state::sound_w));
|
||||
m_pia21->writepb_handler().set(FUNC(shuffle_state::sol2_w));
|
||||
//m_pia21->ca2_handler().set(FUNC(shuffle_state::pia21_ca2_w));
|
||||
//m_pia21->cb2_handler().set(FUNC(shuffle_state::pia21_cb2_w));
|
||||
m_pia21->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<9>));
|
||||
m_pia21->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<10>));
|
||||
}
|
||||
|
||||
void shuffle_state::s11(machine_config &config)
|
||||
{
|
||||
s9(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shuffle_state::s11_map);
|
||||
|
||||
config.set_default_layout(layout_shuffle11);
|
||||
|
||||
PIA6821(config, m_pia2c, 0);
|
||||
m_pia2c->writepa_handler().set(FUNC(shuffle_state::pia2c_pa_w));
|
||||
m_pia2c->writepb_handler().set(FUNC(shuffle_state::pia2c_pb_w));
|
||||
m_pia2c->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<11>));
|
||||
m_pia2c->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<12>));
|
||||
|
||||
PIA6821(config, m_pia34, 0);
|
||||
m_pia34->writepa_handler().set(FUNC(shuffle_state::pia34_pa_w));
|
||||
m_pia34->writepb_handler().set(FUNC(shuffle_state::pia34_pb_w));
|
||||
//m_pia34->cb2_handler().set(FUNC(shuffle_state::pia34_cb2_w));
|
||||
m_pia34->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<13>));
|
||||
m_pia34->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<14>));
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------
|
||||
/ Topaz
|
||||
/----------------------------*/
|
||||
ROM_START(topaz_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(cb287b10) SHA1(7fb6b6a26237cf85d5e02cf35271231267f90fc1))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sound1.716", 0x0000, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Pompeii
|
||||
/----------------------------*/
|
||||
ROM_START(pomp_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Aristocrat same roms as Pompeii
|
||||
/----------------------------*/
|
||||
ROM_START(arist_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Taurus
|
||||
/----------------------------*/
|
||||
ROM_START(taurs_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(3246e285) SHA1(4f76784ecb5063a49c24795ae61db043a51e2c89))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ King Tut (#912)
|
||||
/----------------------------*/
|
||||
ROM_START(kingt_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(54d3280a) SHA1(ca74636e35d2c3e0b3133f89b1ff1233d5d72a5c))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("soundx.716", 0x0000, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Omni
|
||||
/----------------------------*/
|
||||
ROM_START(omni_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("omni-1a.u21", 0x2000, 0x0800, CRC(443bd170) SHA1(cc1ebd72d77ec2014cbd84534380e5ea1f12c022))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", 0)
|
||||
ROM_LOAD("sound.716", 0x0000, 0x0800, CRC(db085cbb) SHA1(9a57abbad183ba16b3dba16d16923c3bfc46a0c3))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Big Strike
|
||||
/----------------------------*/
|
||||
ROM_START(bstrk_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(323dbcde) SHA1(a75cbb5de97cb9afc1d36e9b6ff593bb482fcf8b))
|
||||
ROM_LOAD("b_ic20.716", 0x3000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sound.716", 0x0000, 0x0800, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Triple Strike
|
||||
/----------------------------*/
|
||||
ROM_START(tstrk_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("gamerom.716", 0x2000, 0x0800, CRC(b034c059) SHA1(76b3926b87b3c137fcaf33021a586827e3c030af))
|
||||
ROM_LOAD("ic20.716", 0x3000, 0x0800, CRC(f163fc88) SHA1(988b60626f3d4dc8f4a1dbd0c99282418bc53aae))
|
||||
ROM_LOAD("b_ic17.716", 0x3800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
|
||||
|
||||
ROM_REGION(0x0800, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sound.716", 0x0000, 0x0800, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
/ Strike Zone (#916)
|
||||
/---------------------------------*/
|
||||
ROM_START(szone_l5)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sz_u19r5.732", 0x1000, 0x1000, CRC(c79c46cb) SHA1(422ba74ae67bebbe02f85a9a8df0e3072f3cebc0))
|
||||
ROM_LOAD("sz_u20r5.764", 0x2000, 0x2000, CRC(9b5b3be2) SHA1(fce051a60b6eecd9bc07273892b14046b251b372))
|
||||
|
||||
ROM_REGION(0x8000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("szs_u49.128", 0x4000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
|
||||
ROM_END
|
||||
|
||||
ROM_START(szone_l2)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("sz_u19r2.732", 0x1000, 0x1000, CRC(c0e4238b) SHA1(eae60ccd5b5001671cd6d2685fd588494d052d1e))
|
||||
ROM_LOAD("sz_u20r2.764", 0x2000, 0x2000, CRC(91c08137) SHA1(86da08f346f85810fceceaa7b9824ab76a68da54))
|
||||
|
||||
ROM_REGION(0x8000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("szs_u49.128", 0x4000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
|
||||
ROM_END
|
||||
|
||||
/*------------------------------
|
||||
/ Alley Cats (#918)
|
||||
/-------------------------------*/
|
||||
ROM_START(alcat_l7)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u26_rev7.rom", 0x1000, 0x1000, CRC(4d274dd3) SHA1(80d72bd0f85ce2cac04f6d9f59dc1fcccc86d402))
|
||||
ROM_LOAD("u27_rev7.rom", 0x2000, 0x2000, CRC(9c7faf8a) SHA1(dc1a561948b9a303f7924d7bebcd972db766827b))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("acs_u21.bin", 0x18000, 0x8000, CRC(c54cd329) SHA1(4b86b10e60a30c4de5d97129074f5657447be676))
|
||||
ROM_LOAD("acs_u22.bin", 0x10000, 0x8000, CRC(56c1011a) SHA1(c817a3410c643617f3643897b8f529ae78546b0d))
|
||||
ROM_END
|
||||
|
||||
/*--------------------
|
||||
/ Tic-Tac-Strike (#919)
|
||||
/--------------------*/
|
||||
ROM_START(tts_l2)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27_l2.128", 0x0000, 0x4000, CRC(edbcab92) SHA1(0f6b2dc01874984f9a17ee873f2fa0b6c9bba5be))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP)
|
||||
ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
ROM_START(tts_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u27.128", 0x0000, 0x4000, CRC(f540c53c) SHA1(1c7a318278ad1afdcbe6aaf81f9b774882b069d6))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP)
|
||||
ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
/*-------------------------------
|
||||
/ Gold Mine (#920)
|
||||
/--------------------------------*/
|
||||
ROM_START(gmine_l2)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27.128", 0x0000, 0x4000, CRC(99c6e049) SHA1(356faec0598a54892050a28857e9eb5cdbf35833))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u21.256", 0x18000, 0x8000, CRC(3b801570) SHA1(50b50ff826dcb031a30940fa3099bd3a8d773831))
|
||||
ROM_LOAD("u22.256", 0x10000, 0x8000, CRC(08352101) SHA1(a7437847a71cf037a80686292f9616b1e08922df))
|
||||
ROM_END
|
||||
|
||||
/*-------------------------
|
||||
/ Top Dawg (#921)
|
||||
/--------------------------*/
|
||||
ROM_START(tdawg_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tdu27r1.128", 0x0000, 0x4000, CRC(0b4bb586) SHA1(a927ebf7167609cc84b38c22aa35d0c4d259dd8b))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("tdsu21r1.256", 0x18000, 0x8000, CRC(6a323227) SHA1(7c7263754e5672c654a2ee9582f0b278e637a909))
|
||||
ROM_LOAD("tdsu22r1.256", 0x10000, 0x8000, CRC(58407eb4) SHA1(6bd9b304c88d9470eae5afb6621187f4a8313573))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
/ Shuffle Inn (#922)
|
||||
/-----------------------------*/
|
||||
ROM_START(shfin_l1)
|
||||
ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u27rom-1.rv1", 0x0000, 0x4000, CRC(40cfb74a) SHA1(8cee4212ea8bb6b360060391df3208e1e129d7e5))
|
||||
|
||||
ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD("u21snd-2.rv1", 0x18000, 0x8000, CRC(80ddce05) SHA1(9498260e5ccd2fe0eb03ff321dd34eb945b0213a))
|
||||
ROM_LOAD("u22snd-2.rv1", 0x10000, 0x8000, CRC(6894abaf) SHA1(2d661765fbfce33a73a20778c41233c0bd9933e9))
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
GAME( 1978, topaz_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Topaz (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1978, pomp_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Pompeii (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1978, arist_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Aristocrat (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, taurs_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Taurus (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1979, kingt_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "King Tut (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1980, omni_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Omni (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1983, bstrk_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Big Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1983, tstrk_l1, 0, s4, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Triple Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1984, szone_l5, 0, s9, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Strike Zone (Shuffle) (L-5)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1984, szone_l2, szone_l5, s9, shuffle, shuffle_state, empty_init, ROT0, "Williams/United", "Strike Zone (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1985, alcat_l7, 0, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, tts_l2, 0, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1986, tts_l1, tts_l2, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, gmine_l2, 0, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Gold Mine (Shuffle) (L-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, tdawg_l1, 0, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Top Dawg (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||
GAME( 1987, shfin_l1, 0, s11, shuffle, shuffle_state, empty_init, ROT0, "Williams", "Shuffle Inn (Shuffle) (L-1)", MACHINE_IS_SKELETON_MECHANICAL )
|
107
src/mame/layout/shuffle.lay
Normal file
107
src/mame/layout/shuffle.lay
Normal file
@ -0,0 +1,107 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0
|
||||
copyright-holders:Robbbert
|
||||
-->
|
||||
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg>
|
||||
<color red="1.0" green="0.25" blue="0.0" />
|
||||
</led7seg>
|
||||
</element>
|
||||
<element name="red_led">
|
||||
<disk state="0">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="P0"><text string="Frame / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P7"><text string="Player 5"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P8"><text string="Player 6"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
|
||||
<group name="score">
|
||||
<repeat count="4">
|
||||
<param name="n" start="~s~" increment="1" />
|
||||
<param name="x" start="0" increment="44" />
|
||||
<element name="digit~n~" ref="digit">
|
||||
<bounds x="~x~" y="0" width="34" height="39" />
|
||||
</element>
|
||||
</repeat>
|
||||
</group>
|
||||
|
||||
<view name="Default Layout">
|
||||
<bounds left="0" top="20" right="374" bottom="334" />
|
||||
|
||||
<!-- LEDs -->
|
||||
|
||||
<!-- Player 1 Score -->
|
||||
<param name="s" value="0" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="45" right="164" bottom="84" />
|
||||
</group>
|
||||
|
||||
<!-- Player 2 Score -->
|
||||
<param name="s" value="4" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="45" right="364" bottom="84" />
|
||||
</group>
|
||||
|
||||
<!-- Player 3 Score -->
|
||||
<param name="s" value="8" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="125" right="164" bottom="164" />
|
||||
</group>
|
||||
|
||||
<!-- Player 4 Score -->
|
||||
<param name="s" value="16" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="125" right="364" bottom="164" />
|
||||
</group>
|
||||
|
||||
<!-- Player 5 Score -->
|
||||
<param name="s" value="20" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="205" right="164" bottom="244" />
|
||||
</group>
|
||||
|
||||
<!-- Player 6 Score -->
|
||||
<param name="s" value="24" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="205" right="364" bottom="244" />
|
||||
</group>
|
||||
|
||||
<!-- Credits and Balls -->
|
||||
<element name="digit13" ref="digit">
|
||||
<bounds left="10" top="285" right="44" bottom="324" />
|
||||
</element>
|
||||
<element name="digit12" ref="digit">
|
||||
<bounds left="54" top="285" right="88" bottom="324" />
|
||||
</element>
|
||||
<element name="digit14" ref="digit">
|
||||
<bounds left="186" top="285" right="220" bottom="324" />
|
||||
</element>
|
||||
<element name="digit15" ref="digit">
|
||||
<bounds left="230" top="285" right="264" bottom="324" />
|
||||
</element>
|
||||
<element ref="P0"><bounds left="200" right="258" top="270" bottom="282" /></element>
|
||||
<element ref="P1"><bounds left="30" right="88" top="270" bottom="282" /></element>
|
||||
<element ref="P3"><bounds left="60" right="140" top="30" bottom="42" /></element>
|
||||
<element ref="P4"><bounds left="260" right="340" top="30" bottom="42" /></element>
|
||||
<element ref="P5"><bounds left="60" right="140" top="110" bottom="122" /></element>
|
||||
<element ref="P6"><bounds left="260" right="340" top="110" bottom="122" /></element>
|
||||
<element ref="P7"><bounds left="60" right="140" top="190" bottom="202" /></element>
|
||||
<element ref="P8"><bounds left="260" right="340" top="190" bottom="202" /></element>
|
||||
<element name="led0" ref="red_led">
|
||||
<bounds left="310" right="325" top="300" bottom="315" />
|
||||
</element>
|
||||
<element name="led1" ref="red_led">
|
||||
<bounds left="344" right="359" top="300" bottom="315" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
107
src/mame/layout/shuffle11.lay
Normal file
107
src/mame/layout/shuffle11.lay
Normal file
@ -0,0 +1,107 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0
|
||||
copyright-holders:Robbbert
|
||||
-->
|
||||
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg>
|
||||
<color red="1.0" green="0.25" blue="0.0" />
|
||||
</led7seg>
|
||||
</element>
|
||||
<element name="red_led">
|
||||
<disk state="0">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="P0"><text string="Frame / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P7"><text string="Player 5"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="P8"><text string="Player 6"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
|
||||
<group name="score">
|
||||
<repeat count="4">
|
||||
<param name="n" start="~s~" increment="1" />
|
||||
<param name="x" start="0" increment="44" />
|
||||
<element name="digit~n~" ref="digit">
|
||||
<bounds x="~x~" y="0" width="34" height="39" />
|
||||
</element>
|
||||
</repeat>
|
||||
</group>
|
||||
|
||||
<view name="Default Layout">
|
||||
<bounds left="0" top="20" right="374" bottom="334" />
|
||||
|
||||
<!-- LEDs -->
|
||||
|
||||
<!-- Player 1 Score -->
|
||||
<param name="s" value="0" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="45" right="164" bottom="84" />
|
||||
</group>
|
||||
|
||||
<!-- Player 2 Score -->
|
||||
<param name="s" value="4" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="45" right="364" bottom="84" />
|
||||
</group>
|
||||
|
||||
<!-- Player 3 Score -->
|
||||
<param name="s" value="8" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="125" right="164" bottom="164" />
|
||||
</group>
|
||||
|
||||
<!-- Player 4 Score -->
|
||||
<param name="s" value="16" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="125" right="364" bottom="164" />
|
||||
</group>
|
||||
|
||||
<!-- Player 5 Score -->
|
||||
<param name="s" value="20" />
|
||||
<group ref="score">
|
||||
<bounds left="10" top="205" right="164" bottom="244" />
|
||||
</group>
|
||||
|
||||
<!-- Player 6 Score -->
|
||||
<param name="s" value="24" />
|
||||
<group ref="score">
|
||||
<bounds left="210" top="205" right="364" bottom="244" />
|
||||
</group>
|
||||
|
||||
<!-- Credits and Balls -->
|
||||
<element name="digit13" ref="digit">
|
||||
<bounds left="10" top="285" right="44" bottom="324" />
|
||||
</element>
|
||||
<element name="digit12" ref="digit">
|
||||
<bounds left="54" top="285" right="88" bottom="324" />
|
||||
</element>
|
||||
<element name="digit14" ref="digit">
|
||||
<bounds left="186" top="285" right="220" bottom="324" />
|
||||
</element>
|
||||
<element name="digit15" ref="digit">
|
||||
<bounds left="230" top="285" right="264" bottom="324" />
|
||||
</element>
|
||||
<element ref="P0"><bounds left="200" right="258" top="270" bottom="282" /></element>
|
||||
<element ref="P1"><bounds left="30" right="88" top="270" bottom="282" /></element>
|
||||
<element ref="P3"><bounds left="60" right="140" top="30" bottom="42" /></element>
|
||||
<element ref="P4"><bounds left="260" right="340" top="30" bottom="42" /></element>
|
||||
<element ref="P5"><bounds left="60" right="140" top="110" bottom="122" /></element>
|
||||
<element ref="P6"><bounds left="260" right="340" top="110" bottom="122" /></element>
|
||||
<element ref="P7"><bounds left="60" right="140" top="190" bottom="202" /></element>
|
||||
<element ref="P8"><bounds left="260" right="340" top="190" bottom="202" /></element>
|
||||
<element name="led0" ref="red_led">
|
||||
<bounds left="310" right="325" top="300" bottom="315" />
|
||||
</element>
|
||||
<element name="led1" ref="red_led">
|
||||
<bounds left="344" right="359" top="300" bottom="315" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
Loading…
Reference in New Issue
Block a user