Further Stepper clean-ups [J. Wallace]

This commit is contained in:
Angelo Salese 2012-01-23 21:22:54 +00:00
parent c8b7ff0797
commit 6a40406da2
3 changed files with 416 additions and 207 deletions

View File

@ -969,6 +969,16 @@ MACHINE_CONFIG_END
ROM_LOAD( "supersleuth.p1", 0x000000, 0x080000, CRC(2417208f) SHA1(5c51bdcfa566aa8b2379d529441d37b2145864bb) )\ ROM_LOAD( "supersleuth.p1", 0x000000, 0x080000, CRC(2417208f) SHA1(5c51bdcfa566aa8b2379d529441d37b2145864bb) )\
ROM_LOAD( "supersleuth.p2", 0x080000, 0x080000, CRC(892d3a4d) SHA1(bb585a9fda56f2f0859707973f771d60c5dfa080) )\ ROM_LOAD( "supersleuth.p2", 0x080000, 0x080000, CRC(892d3a4d) SHA1(bb585a9fda56f2f0859707973f771d60c5dfa080) )\
#define m1_coderd_sound \
ROM_REGION( 0x100000, "oki", ROMREGION_ERASE00 )\
ROM_LOAD( "code_red.s1", 0x000000, 0x080000, CRC(616b939d) SHA1(1a94747efe430e508086fdb66da3f3e7daf7c4f3) )\
ROM_LOAD( "code_red.s2", 0x080000, 0x080000, CRC(bee44524) SHA1(dd3837559b375e1055e6aa6c984bfd88102a5825) )\
#define m1_coro_sound \
ROM_REGION( 0x100000, "oki", ROMREGION_ERASE00 )\
ROM_LOAD( "digi0421.bin", 0x000000, 0x080000, CRC(9489c9cd) SHA1(1a858b2a6f41898bbf95611e9f13d668c8a05c9c) )\
ROM_LOAD( "digi0422.bin", 0x080000, 0x080000, CRC(cf17088e) SHA1(54c9a52ccdd1ca622367367e1304fe4e4037b0b9) )\
ROM_START( m1albsq ) ROM_START( m1albsq )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-056", 0x0000, 0x010000, CRC(6f3bc318) SHA1(6dbe6e02ca762a8ffaed9c89a0da5f6a10d829cc) )//4.1 Normal Token ROM_LOAD( "sa5-056", 0x0000, 0x010000, CRC(6f3bc318) SHA1(6dbe6e02ca762a8ffaed9c89a0da5f6a10d829cc) )//4.1 Normal Token
@ -1850,68 +1860,177 @@ ROM_END_M1A_MCU
ROM_START( m1coderd ) ROM_START( m1coderd )
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 ) ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sc991130", 0x0000, 0x020000, CRC(d3add67f) SHA1(f7387978f18680921a2aff0296de2b9609f3215d) ) ROM_LOAD( "sc991130", 0x0000, 0x020000, CRC(d3add67f) SHA1(f7387978f18680921a2aff0296de2b9609f3215d) )//ncr21
m1_coderd_sound
ROM_REGION( 0x20000, "altrevs", ROMREGION_ERASE00 )
ROM_LOAD( "sc991131", 0x0000, 0x020000, CRC(d5b90a02) SHA1(18a5642175ee330832ce95ac2fcb3a662cfe4273) )
ROM_REGION( 0x100000, "oki", ROMREGION_ERASE00 )
ROM_LOAD( "code_red.s1", 0x000000, 0x080000, CRC(616b939d) SHA1(1a94747efe430e508086fdb66da3f3e7daf7c4f3) )
ROM_LOAD( "code_red.s2", 0x080000, 0x080000, CRC(bee44524) SHA1(dd3837559b375e1055e6aa6c984bfd88102a5825) )
ROM_END_M1A_MCU ROM_END_M1A_MCU
ROM_START( m1coderdp )
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sc991131", 0x0000, 0x020000, CRC(d5b90a02) SHA1(18a5642175ee330832ce95ac2fcb3a662cfe4273) )//pcr21
m1_coderd_sound
ROM_END_M1A_MCU
//1996
ROM_START( m1coro ) ROM_START( m1coro )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cns58c", 0x0000, 0x010000, CRC(e254a369) SHA1(10c03b108f9fb9ffb16c4cf47fac74625d2e7877) ) ROM_LOAD( "sa6-192", 0x0000, 0x010000, CRC(5a4b0f17) SHA1(04ae2db3a29485672faaedd22c5780dd71176c96) )//CORO
m1_coro_sound
ROM_END_M1A_MCU
ROM_REGION( 0x20000, "altrevs", ROMREGION_ERASE00 ) ROM_START( m1corop )
ROM_LOAD( "cns58t", 0x0000, 0x010000, CRC(1b2c1306) SHA1(7fa7c0238685dc2a91354ae47674247e95707613) ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "coro2010", 0x0000, 0x010000, CRC(a7cfd3e9) SHA1(1b8fee6397d137cfae8bcd93b6a3b8e36b2716b8) ) ROM_LOAD( "sa6-193", 0x0000, 0x010000, CRC(b2a392f1) SHA1(d7b908373eb3e225e399c36847ef2481ea3ad65a) )//PCORO
ROM_LOAD( "cst5p5bin", 0x0000, 0x010000, CRC(0ab4535b) SHA1(fc334b9da2736f8d57adb76095df8e957fb7667d) ) m1_coro_sound
ROM_LOAD( "sa4-450", 0x0000, 0x010000, CRC(355e10f4) SHA1(5de193ea05988e6eb1190cff357581671a87c82f) ) ROM_END_M1A_MCU
ROM_LOAD( "sa4-451", 0x0000, 0x010000, CRC(ddb68d12) SHA1(b399504a8a17129b88e9f95ab1942c7448e5fbb3) )
ROM_LOAD( "sa4-529", 0x0000, 0x010000, CRC(ca486f81) SHA1(001669f92d9d548854b3c2c9e9c5b7141c9d2b32) )
ROM_LOAD( "sa4-530", 0x0000, 0x010000, CRC(4ade92e9) SHA1(2d5d18cfab8ff5a5f5790168375548a56b6903b0) )
ROM_LOAD( "sa5-048", 0x0000, 0x010000, CRC(fbd5c2ae) SHA1(c05959664fcee7f3f05c6f81c1a98d2fc6b59141) )
ROM_LOAD( "sa5-049", 0x0000, 0x010000, CRC(133d5f48) SHA1(b4f89e5cf1d4ef60f73be18d372c38b22126e651) )
ROM_LOAD( "sa5-208.bin", 0x0000, 0x010000, CRC(66f06d18) SHA1(fd14b09280815c03126d113e6be791a20483aae9) )
ROM_LOAD( "sa5-209", 0x0000, 0x010000, CRC(8e18f0fe) SHA1(8d6c0fbd05484dc42b976228b7575e0ca0eea239) )
ROM_LOAD( "sa5-393", 0x0000, 0x010000, CRC(abbdfe46) SHA1(a6e005849b6da9801331155eb73fa169f6f42265) )
ROM_LOAD( "sa5-394", 0x0000, 0x010000, CRC(a7a5a6ff) SHA1(0805d3f1148e0aa83f8c0c804c08df3624a3af72) )
ROM_LOAD( "sa5-395", 0x0000, 0x010000, CRC(980a56ba) SHA1(372744f165e0105346c567013b0c8ddec2ec0f7d) )
ROM_LOAD( "sa5-396", 0x0000, 0x010000, CRC(2cb28869) SHA1(0dc78252b8e56a4b18342e5d1583ed4a0ea1db38) )
ROM_LOAD( "sa5-397", 0x0000, 0x010000, CRC(6b91fff5) SHA1(e29ae21bfd7d7e3139bfb65b60bd4bafcece5b24) )
ROM_LOAD( "sa5-399", 0x0000, 0x010000, CRC(0e290f63) SHA1(a5c8f2b125836ca76a7707d09d8e4a2f3058a9df) )
ROM_LOAD( "sa6-192", 0x0000, 0x010000, CRC(5a4b0f17) SHA1(04ae2db3a29485672faaedd22c5780dd71176c96) )
ROM_LOAD( "sa6-193", 0x0000, 0x010000, CRC(b2a392f1) SHA1(d7b908373eb3e225e399c36847ef2481ea3ad65a) )
ROM_LOAD( "cns5.10", 0x0000, 0x010000, CRC(91dc8625) SHA1(525c4311355bb3aa3052160bc439c49f5cecbcc6) ) //1995
ROM_LOAD( "cnst5.5v2", 0x0000, 0x010000, CRC(a5b2589e) SHA1(cabd5abf996c1bb9ca7a0ffcc5d666aa632f6789) ) ROM_START( m1coro32g )
ROM_LOAD( "sa5-306", 0x0000, 0x010000, CRC(a94a8f48) SHA1(56d5723d8087f523061280d9afe15a1bf8b269f5) ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-307", 0x0000, 0x010000, CRC(41a212ae) SHA1(463a7d93f3b8b073cb83bda2a957dab37070ba8b) ) ROM_LOAD( "sa6-049", 0x0000, 0x010000, CRC(dfa086ae) SHA1(c5fa5d435a603851ab6bbe5860ee38e41aea814e) )//3.2 G?
ROM_LOAD( "sa5-447", 0x0000, 0x010000, CRC(5b292c6e) SHA1(584a5d64ee47054870785222f85a58a721165530) ) m1_coro_sound
ROM_LOAD( "sa5-448", 0x0000, 0x010000, CRC(e0e481c3) SHA1(062b8f58a7d9fa9163fd98892a6cc8099d4d234c) ) ROM_END_M1A_MCU
ROM_LOAD( "sa6-049", 0x0000, 0x010000, CRC(dfa086ae) SHA1(c5fa5d435a603851ab6bbe5860ee38e41aea814e) )
// BWB Set ROM_START( m1coro32gh )
ROM_LOAD( "cs______.1_1", 0x0000, 0x010000, CRC(5b292c6e) SHA1(584a5d64ee47054870785222f85a58a721165530) ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cns58c", 0x0000, 0x010000, CRC(e254a369) SHA1(10c03b108f9fb9ffb16c4cf47fac74625d2e7877) )//sa6-049 alt 3.2
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro12a )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cns58t", 0x0000, 0x010000, CRC(1b2c1306) SHA1(7fa7c0238685dc2a91354ae47674247e95707613) )//1.2 sa5-447 alt
m1_coro_sound
ROM_END_M1A_MCU
ROM_REGION( 0x100000, "oki", ROMREGION_ERASE00 ) ROM_START( m1coro12g )
ROM_LOAD( "digi0421.bin", 0x000000, 0x080000, CRC(9489c9cd) SHA1(1a858b2a6f41898bbf95611e9f13d668c8a05c9c) ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "digi0422.bin", 0x080000, 0x080000, CRC(cf17088e) SHA1(54c9a52ccdd1ca622367367e1304fe4e4037b0b9) ) ROM_LOAD( "sa5-447", 0x0000, 0x010000, CRC(5b292c6e) SHA1(584a5d64ee47054870785222f85a58a721165530) )//1.2 Gala? BwB labelled
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro12gp )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-448", 0x0000, 0x010000, CRC(e0e481c3) SHA1(062b8f58a7d9fa9163fd98892a6cc8099d4d234c) )//1.2 Gala? protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro10h1 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cns5.10", 0x0000, 0x010000, CRC(91dc8625) SHA1(525c4311355bb3aa3052160bc439c49f5cecbcc6) )//1.0 G hack
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro10h2 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cst5p5bin", 0x0000, 0x010000, CRC(0ab4535b) SHA1(fc334b9da2736f8d57adb76095df8e957fb7667d) )//1.0 hack 5p 5GBP
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro10h3 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "cnst5.5v2", 0x0000, 0x010000, CRC(a5b2589e) SHA1(cabd5abf996c1bb9ca7a0ffcc5d666aa632f6789) )//1.0 Gala hack 2
m1_coro_sound
ROM_END_M1A_MCU
//1993
ROM_START( m1coro81 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-048", 0x0000, 0x010000, CRC(fbd5c2ae) SHA1(c05959664fcee7f3f05c6f81c1a98d2fc6b59141) )//8.1
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro81p )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-049", 0x0000, 0x010000, CRC(133d5f48) SHA1(b4f89e5cf1d4ef60f73be18d372c38b22126e651) )//8.1 Protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro32n )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-399", 0x0000, 0x010000, CRC(0e290f63) SHA1(a5c8f2b125836ca76a7707d09d8e4a2f3058a9df) )//3.2 newer
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro32np )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-397", 0x0000, 0x010000, CRC(6b91fff5) SHA1(e29ae21bfd7d7e3139bfb65b60bd4bafcece5b24) )//3.2 newer protocol (Poss mislabel)
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro22n )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-395", 0x0000, 0x010000, CRC(980a56ba) SHA1(372744f165e0105346c567013b0c8ddec2ec0f7d) )//2.2 newer
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro21n )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-208", 0x0000, 0x010000, CRC(66f06d18) SHA1(fd14b09280815c03126d113e6be791a20483aae9) )//2.1 newer
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro21np )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-209", 0x0000, 0x010000, CRC(8e18f0fe) SHA1(8d6c0fbd05484dc42b976228b7575e0ca0eea239) )//2.1 newer protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro12n )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-393", 0x0000, 0x010000, CRC(abbdfe46) SHA1(a6e005849b6da9801331155eb73fa169f6f42265) )//1.2 newer
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro12np )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-394", 0x0000, 0x010000, CRC(a7a5a6ff) SHA1(0805d3f1148e0aa83f8c0c804c08df3624a3af72) )//1.2 newer protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro11n )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-306", 0x0000, 0x010000, CRC(a94a8f48) SHA1(56d5723d8087f523061280d9afe15a1bf8b269f5) )//1.1 newer
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro11np )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa5-307", 0x0000, 0x010000, CRC(41a212ae) SHA1(463a7d93f3b8b073cb83bda2a957dab37070ba8b) )//1.1 newer protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro31 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa4-450", 0x0000, 0x010000, CRC(355e10f4) SHA1(5de193ea05988e6eb1190cff357581671a87c82f) )//3.1 Normal
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro31p )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa4-451", 0x0000, 0x010000, CRC(ddb68d12) SHA1(b399504a8a17129b88e9f95ab1942c7448e5fbb3) )//3.1 Protocol
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro30h )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "coro2010", 0x0000, 0x010000, CRC(a7cfd3e9) SHA1(1b8fee6397d137cfae8bcd93b6a3b8e36b2716b8) )//sa5-399 hack 20GBP?
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro21v )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa4-529", 0x0000, 0x010000, CRC(ca486f81) SHA1(001669f92d9d548854b3c2c9e9c5b7141c9d2b32) )//2.1 Multivend
m1_coro_sound
ROM_END_M1A_MCU
ROM_START( m1coro21vp )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa4-530", 0x0000, 0x010000, CRC(4ade92e9) SHA1(2d5d18cfab8ff5a5f5790168375548a56b6903b0) )//2.1 Multivend Protocol
m1_coro_sound
ROM_END_M1A_MCU ROM_END_M1A_MCU
ROM_START( m1cororr ) ROM_START( m1cororr )
@ -4031,8 +4150,36 @@ GAME( 1996, m1cluessrp ,m1cluess ,m1,m1,m1, ROT0, "Maygay", "Cluedo Super Sleuth
GAME( 1996, m1cluesss ,m1cluess ,m1,m1,m1, ROT0, "Maygay", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (M1A/B)",GAME_FLAGS ) GAME( 1996, m1cluesss ,m1cluess ,m1,m1,m1, ROT0, "Maygay", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (M1A/B)",GAME_FLAGS )
GAME( 1996, m1cluesssp ,m1cluess ,m1,m1,m1, ROT0, "Maygay", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (Protocol) (M1A/B)",GAME_FLAGS ) GAME( 1996, m1cluesssp ,m1cluess ,m1,m1,m1, ROT0, "Maygay", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 199?, m1coderd ,0 ,m1,m1,m1, ROT0, "Maygay", "Code Red Club (Maygay) (M1A/B)",GAME_FLAGS ) GAME( 199?, m1coderd ,0 ,m1,m1,m1, ROT0, "Maygay", "Code Red Club (Maygay) v2.1 (M1A/B)",GAME_FLAGS )
GAME( 199?, m1coro ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) (M1A/B)",GAME_FLAGS ) GAME( 199?, m1coderdp ,m1coderd ,m1,m1,m1, ROT0, "Maygay", "Code Red Club (Maygay) v2.1 (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1996, m1coro ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) (M1A/B)",GAME_FLAGS )
GAME( 1996, m1corop ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro32g ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.2 (Newer, G?) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro32gh ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.2 (Newer, G?) (Hack) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro12g ,m1coro ,m1,m1,m1, ROT0, "Maygay/BwB?", "Coronation Street (Maygay) v1.2 (Newer, G?) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro12gp ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.2 (Newer, G?) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro12a ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.2 (Newer, G?) (Alternate) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro10h1 ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.0 (Hack 1) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro10h2 ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.0 (Hack 2) (M1A/B)",GAME_FLAGS )
GAME( 1995, m1coro10h3 ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.0 (Hack 3) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro81 ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v8.1 (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro81p ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v8.1 (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro32n ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.2 (Newer) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro32np ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.2 (Newer) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro22n ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v2.2 (Newer) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro21n ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v2.1 (Newer) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro21np ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v2.1 (Newer) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro12n ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.2 (Newer) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro12np ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.2 (Newer) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro11n ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.1 (Newer) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro11np ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v1.1 (Newer) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro31 ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.1 (Older) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro31p ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.1 (Older) (Protocol) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro30h ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v3.0 (Hack) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro21v ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v2.1 (Multivend) (M1A/B)",GAME_FLAGS )
GAME( 1993, m1coro21vp ,m1coro ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (Maygay) v2.1 (Multivend) (Protocol)(M1A/B)",GAME_FLAGS )
GAME( 199?, m1cororr ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street - Rovers Return (Maygay) (M1A/B)",GAME_FLAGS ) GAME( 199?, m1cororr ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street - Rovers Return (Maygay) (M1A/B)",GAME_FLAGS )
GAME( 199?, m1corocb ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street Club (Maygay) (M1A/B)",GAME_FLAGS ) GAME( 199?, m1corocb ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street Club (Maygay) (M1A/B)",GAME_FLAGS )
GAME( 199?, m1corosh ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street Showcase (Maygay) (M1A/B)",GAME_FLAGS ) GAME( 199?, m1corosh ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street Showcase (Maygay) (M1A/B)",GAME_FLAGS )

View File

@ -5,6 +5,12 @@
// Emulates : Stepper motors driven with full step or half step // // Emulates : Stepper motors driven with full step or half step //
// also emulates the index optic // // also emulates the index optic //
// // // //
// 15-01-2012: J. Wallace - Total internal rewrite to remove the table //
// hoodoo that stops anyone but me actually //
// updating this. In theory, we should be able //
// to adapt the phase code to any reel type by //
// studying a game's startup //
// Documentation is much better now. //
// 04-04-2011: J. Wallace - Added reverse spin (this is necessary for // // 04-04-2011: J. Wallace - Added reverse spin (this is necessary for //
// accuracy), and improved wraparound logic // // accuracy), and improved wraparound logic //
// 03-2011: New 2D array to remove reel bounce and // // 03-2011: New 2D array to remove reel bounce and //
@ -36,8 +42,6 @@ typedef struct _stepper
phase, /* motor phase */ phase, /* motor phase */
old_phase, /* old phase */ old_phase, /* old phase */
type, /* reel type */ type, /* reel type */
stator1[2],
stator2[2],
reverse; /* Does reel spin backwards (construction of unit, not wiring) */ reverse; /* Does reel spin backwards (construction of unit, not wiring) */
INT16 step_pos, /* step position 0 - max_steps */ INT16 step_pos, /* step position 0 - max_steps */
max_steps; /* maximum step position */ max_steps; /* maximum step position */
@ -51,18 +55,6 @@ typedef struct _stepper
static stepper step[MAX_STEPPERS]; static stepper step[MAX_STEPPERS];
static const int StarpointStepTab[8][16] =
{// 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Phase
{ 0, 2, 0, 0, 2, 1, 3, 0, -2, -1, -1, 0, 0, 0, 0, 0 },// 0
{ 0, -1, 3, 0, 1, 2, 2, 0, -3, -2, -2, 0, 0, 0, 0, 0 },// 1
{ 0, -2, 2, 0, 2, -1, 1, 0, 2, -3, 3, 0, 0, 0, 0, 0 },// 2
{ 0, -1, 1, 0, -1, -2, -2, 0, 3, 2, 2, 0, 0, 0, 0, 0 },// 3
{ 0, -2, 0, 0, -2, -3, -1, 0, 2, 3, 1, 0, 0, 0, 0, 0 },// 4
{ 0, 3, -1, 0, -1, -2, -2, 0, 1, 0, 2, 0, 0, 0, 0, 0 },// 5
{ 0, 2, -2, 0, -2, 3, -3, 0, -2, 1, -1, 0, 0, 0, 0, 0 },// 6
{ 0, 1, -3, 0, 3, 2, 2, 0, -1, -2, -2, 0, 0, 0, 0, 0 },// 7
};
/* useful interfaces (Starpoint is a very common setup)*/ /* useful interfaces (Starpoint is a very common setup)*/
/* step table, use active coils as row, phase as column*/ /* step table, use active coils as row, phase as column*/
const stepper_interface starpoint_interface_48step = const stepper_interface starpoint_interface_48step =
@ -70,7 +62,8 @@ const stepper_interface starpoint_interface_48step =
STARPOINT_48STEP_REEL, STARPOINT_48STEP_REEL,
16, 16,
24, 24,
0x09 0x09,//Starpoint tech specs say that the only coil pattern guaranteed to line up the opto is this one
0
}; };
const stepper_interface starpoint_interface_48step_reverse = const stepper_interface starpoint_interface_48step_reverse =
@ -96,6 +89,8 @@ void stepper_config(running_machine &machine, int which, const stepper_interface
step[which].index_end = intf->index_end; /* location of last index value in half steps */ step[which].index_end = intf->index_end; /* location of last index value in half steps */
step[which].index_patt = intf->index_patt; /* hex value of coil pattern (0 if not needed)*/ step[which].index_patt = intf->index_patt; /* hex value of coil pattern (0 if not needed)*/
step[which].reverse = intf->reverse; step[which].reverse = intf->reverse;
step[which].phase = 0; step[which].phase = 0;
step[which].pattern = 0; step[which].pattern = 0;
step[which].old_pattern = 0; step[which].old_pattern = 0;
@ -110,8 +105,10 @@ void stepper_config(running_machine &machine, int which, const stepper_interface
step[which].max_steps = (48*2); step[which].max_steps = (48*2);
break; break;
case STARPOINT_144STEPS_DICE :/* STARPOINT 1DCU DICE mechanism */ case STARPOINT_144STEPS_DICE :/* STARPOINT 1DCU DICE mechanism */
step[which].max_steps = (144*2); //Dice reels are 48 step motors, but complete three full cycles between opto updates
step[which].max_steps = ((48*3)*2);
break; break;
} }
state_save_register_item(machine, "stepper", NULL, which, step[which].index_start); state_save_register_item(machine, "stepper", NULL, which, step[which].index_start);
@ -120,10 +117,6 @@ void stepper_config(running_machine &machine, int which, const stepper_interface
state_save_register_item(machine, "stepper", NULL, which, step[which].phase); state_save_register_item(machine, "stepper", NULL, which, step[which].phase);
state_save_register_item(machine, "stepper", NULL, which, step[which].old_phase); state_save_register_item(machine, "stepper", NULL, which, step[which].old_phase);
state_save_register_item(machine, "stepper", NULL, which, step[which].pattern); state_save_register_item(machine, "stepper", NULL, which, step[which].pattern);
state_save_register_item(machine, "stepper", NULL, which, step[which].stator1[0]);
state_save_register_item(machine, "stepper", NULL, which, step[which].stator1[1]);
state_save_register_item(machine, "stepper", NULL, which, step[which].stator2[0]);
state_save_register_item(machine, "stepper", NULL, which, step[which].stator2[1]);
state_save_register_item(machine, "stepper", NULL, which, step[which].old_pattern); state_save_register_item(machine, "stepper", NULL, which, step[which].old_pattern);
state_save_register_item(machine, "stepper", NULL, which, step[which].step_pos); state_save_register_item(machine, "stepper", NULL, which, step[which].step_pos);
state_save_register_item(machine, "stepper", NULL, which, step[which].max_steps); state_save_register_item(machine, "stepper", NULL, which, step[which].max_steps);
@ -181,11 +174,16 @@ static void update_optic(int which)
void stepper_reset_position(int which) void stepper_reset_position(int which)
{ {
step[which].step_pos = 0;
step[which].step_pos = 0x00;
step[which].pattern = 0x00; step[which].pattern = 0x00;
step[which].old_pattern = 0x00; step[which].old_pattern = 0x00;
step[which].phase = 0x00; step[which].phase = 0x00;
step[which].old_phase = 0x00; if ((step[which].type == STARPOINT_48STEP_REEL)||(step[which].type == STARPOINT_144STEPS_DICE))
{//Starpoint motor power on partially energises reel to a known state (straight up)- Bellfruit games rely on this behaviour.
step[which].phase = 0x07;
step[which].old_phase = 0x07;
}
update_optic(which); update_optic(which);
} }
@ -213,8 +211,8 @@ int stepper_update(int which, UINT8 pattern)
/* This code probably makes more sense if you visualise what is being emulated, namely /* This code probably makes more sense if you visualise what is being emulated, namely
a spinning drum with two electromagnets inside. Essentially, the CPU a spinning drum with two electromagnets inside. Essentially, the CPU
activates a pair of windings on these magnets leads as necessary to attract and repel the drum to pull it round and activates a pair of windings on these magnets leads as necessary to attract and repel the drum to pull it round and
display as appropriate. To attempt to visualise the rotation effect, take a look at the compass rose below, the numbers display as appropriate. To attempt to visualise the rotation effect, take a look at the compass rose below, representing a side on view of the reel,
indicate the phase information as used the numbers indicate the phase information as used
7 7
N N
@ -224,72 +222,47 @@ int stepper_update(int which, UINT8 pattern)
For sake of accuracy, we're representing all possible phases of the motor, effectively moving the motor one half step at a time, so a 48 step motor becomes For sake of accuracy, we're representing all possible phases of the motor, effectively moving the motor one half step at a time, so a 48 step motor becomes
96 half steps. This is necessary because of some programs running the wiring in series with a distinct delay between the pair being completed. This causes 96 half steps. This is necessary because of some programs running the wiring in series with a distinct delay between the pair being completed. This causes
a small movement that may trigger the optic. a small movement that may trigger the optic tab.
*/ */
{
int pos,steps=0; int pos,steps=0;
step[which].pattern = pattern;
switch ( step[which].type ) switch ( step[which].type )
{ {
default: default:
case STARPOINT_48STEP_REEL : /* STARPOINT RMxxx */ case STARPOINT_48STEP_REEL : /* STARPOINT RMxxx */
case STARPOINT_144STEPS_DICE : /* STARPOINT 1DCU DICE mechanism */ case STARPOINT_144STEPS_DICE : /* STARPOINT 1DCU DICE mechanism */
if ( step[which].pattern != pattern ) //Standard drive table is 2,6,4,5,1,9,8,a
{ //this runs through the stator patterns in such a way as to drive the reel forward (downwards from the player's view, clockwise on our rose)
//NOTE: Eventually we will convert Starpoint to the Stator method below, at which point the table can be removed switch (pattern)
steps = StarpointStepTab[(step[which].step_pos % 8)][pattern]; { //Black Blue Red Yellow
step[which].pattern = pattern; case 0x02:// 0 0 1 0
}
break;
case BARCREST_48STEP_REEL : /* Barcrest reel units have different windings */
{
logerror("step%x pattern %x\n",which,pattern);
step[which].stator1[0] = (BIT(pattern,0)? 1 : 0);//orange
step[which].stator1[1] = (BIT(pattern,2)? 1 : 0);//yellow
step[which].stator2[0] = (BIT(pattern,1)? 1 : 0);//brown
step[which].stator2[1] = (BIT(pattern,3)? 1 : 0);//black
if (step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 7; step[which].phase = 7;
} break;
case 0x06:// 0 1 1 0
if (step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 6; step[which].phase = 6;
} break;
case 0x04:// 0 1 0 0
if (step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 5; step[which].phase = 5;
} break;
case 0x05:// 0 1 0 1
if (step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 4; step[which].phase = 4;
} break;
case 0x01:// 0 0 0 1
if (!step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
{
step[which].phase = 3; step[which].phase = 3;
} break;
case 0x09:// 1 0 0 1
if (!step[which].stator1[0] && step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
{
step[which].phase = 2; step[which].phase = 2;
} break;
case 0x08:// 1 0 0 0
if (!step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
{
step[which].phase = 1; step[which].phase = 1;
} break;
case 0x0A:// 1 0 1 0
if (step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
{
step[which].phase = 0; step[which].phase = 0;
} break;
// Black Blue Red Yellow
if (step[which].stator1[0] && step[which].stator1[1] && !step[which].stator2[0] && !step[which].stator2[1]) case 0x03:// 0 0 1 1
{ {
if ((step[which].old_phase ==6)||(step[which].old_phase == 0)) // if the previous pattern had the drum in the northern quadrant, it will point north now if ((step[which].old_phase ==6)||(step[which].old_phase == 0)) // if the previous pattern had the drum in the northern quadrant, it will point north now
{ {
@ -300,8 +273,8 @@ int stepper_update(int which, UINT8 pattern)
step[which].phase = 3; step[which].phase = 3;
} }
} }
break;
if (!step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && step[which].stator2[1]) case 0x0C:// 1 1 0 0
{ {
if ((step[which].old_phase ==6)||(step[which].old_phase == 4)) // if the previous pattern had the drum in the eastern quadrant, it will point east now if ((step[which].old_phase ==6)||(step[which].old_phase == 4)) // if the previous pattern had the drum in the eastern quadrant, it will point east now
{ {
@ -312,30 +285,95 @@ int stepper_update(int which, UINT8 pattern)
step[which].phase = 1; step[which].phase = 1;
} }
} }
break;
} }
break; break;
case MPU3_48STEP_REEL : /* Same unit as above, but different interface (2 active lines, not 4)*/
//TODO - set up stators using manual, this seems to be correct based on the previous behaviour case BARCREST_48STEP_REEL :
//Standard drive table is 1,3,2,6,4,C,8,9
//this runs through the stator patterns in such a way as to drive the reel forward (downwards from the player's view)
switch (pattern) switch (pattern)
{ {
case 0x00 : // Yellow Black Orange Brown
case 0x01:// 0 0 0 1
step[which].phase = 7;
break;
case 0x03:// 0 0 1 1
step[which].phase = 6; step[which].phase = 6;
break; break;
case 0x01 : case 0x02:// 0 0 1 0
step[which].phase = 5;
break;
case 0x06:// 0 1 1 0
step[which].phase = 4; step[which].phase = 4;
break; break;
case 0x03 : case 0x04:// 0 1 0 0
step[which].phase = 3;
break;
case 0x0C:// 1 1 0 0
step[which].phase = 2; step[which].phase = 2;
break; break;
case 0x02 : case 0x08:// 1 0 0 0
step[which].phase = 1;
break;//YOLB
case 0x09:// 1 0 0 1
step[which].phase = 0;
break;
// The below values should not be used by anything sane, as they effectively ignore one stator side entirely
// Yellow Black Orange Brown
case 0x05:// 0 1 0 1
{
if ((step[which].old_phase ==6)||(step[which].old_phase == 0)) // if the previous pattern had the drum in the northern quadrant, it will point north now
{
step[which].phase = 7;
}
else //otherwise it will line up due south
{
step[which].phase = 3;
}
}
break;
case 0x0A:// 1 0 1 0
{
if ((step[which].old_phase ==6)||(step[which].old_phase == 4)) // if the previous pattern had the drum in the eastern quadrant, it will point east now
{
step[which].phase = 5;
}
else //otherwise it will line up due west
{
step[which].phase = 1;
}
}
break;
}
break;
case MPU3_48STEP_REEL :
/* The MPU3 interface is actually the same as the MPU4 setup, but with two active lines instead of four
Inverters are used so if a pin is low, the higher bit of the pair is activated, and if high the lower bit is activated.
TODO:Check this, 2 and 1 could be switched over.
*/
switch (pattern)
{
// Yellow(2) Black(1) Orange(!2) Brown(!1)
case 0x00 :// 0 0 1 1
step[which].phase = 6;
break;
case 0x01 :// 0 1 1 0
step[which].phase = 4;
break;
case 0x03 :// 1 1 0 0
step[which].phase = 2;
break;
case 0x02 :// 1 0 0 1
step[which].phase = 0; step[which].phase = 0;
break; break;
} }
break; break;
} }
if ((step[which].type == BARCREST_48STEP_REEL) || (step[which].type == MPU3_48STEP_REEL))
{
steps = step[which].old_phase - step[which].phase; steps = step[which].old_phase - step[which].phase;
if (steps < -4) if (steps < -4)
@ -346,7 +384,7 @@ int stepper_update(int which, UINT8 pattern)
{ {
steps = steps -8; steps = steps -8;
} }
}
step[which].old_phase = step[which].phase; step[which].old_phase = step[which].phase;
step[which].old_pattern = step[which].pattern; step[which].old_pattern = step[which].pattern;
@ -377,6 +415,5 @@ int stepper_update(int which, UINT8 pattern)
step[which].step_pos = pos; step[which].step_pos = pos;
update_optic(which); update_optic(which);
}
return changed; return changed;
} }

View File

@ -16800,8 +16800,33 @@ m1cluessr
m1cluessrp m1cluessrp
m1cluesss m1cluesss
m1cluesssp m1cluesssp
m1coderd // Code Red Club (Maygay) m1coderd
m1coderdp
m1coro // Coronation Street (Maygay) m1coro // Coronation Street (Maygay)
m1corop
m1coro32g
m1coro32gh
m1coro12g
m1coro12gp
m1coro12a
m1coro10h1
m1coro10h2
m1coro10h3
m1coro81
m1coro81p
m1coro32n
m1coro32np
m1coro22n
m1coro21n
m1coro21np
m1coro12n
m1coro11n
m1coro11np
m1coro31
m1coro31p
m1coro30h
m1coro21v
m1coro21vp
m1cororr // Coronation Street - Rovers Return (Maygay) m1cororr // Coronation Street - Rovers Return (Maygay)
m1corocb // Coronation Street Club (Maygay) m1corocb // Coronation Street Club (Maygay)
m1corosh // Coronation Street Showcase (Maygay) m1corosh // Coronation Street Showcase (Maygay)