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.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_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
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_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sc991130", 0x0000, 0x020000, CRC(d3add67f) SHA1(f7387978f18680921a2aff0296de2b9609f3215d) )
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_LOAD( "sc991130", 0x0000, 0x020000, CRC(d3add67f) SHA1(f7387978f18680921a2aff0296de2b9609f3215d) )//ncr21
m1_coderd_sound
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_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_LOAD( "cns58t", 0x0000, 0x010000, CRC(1b2c1306) SHA1(7fa7c0238685dc2a91354ae47674247e95707613) )
ROM_LOAD( "coro2010", 0x0000, 0x010000, CRC(a7cfd3e9) SHA1(1b8fee6397d137cfae8bcd93b6a3b8e36b2716b8) )
ROM_LOAD( "cst5p5bin", 0x0000, 0x010000, CRC(0ab4535b) SHA1(fc334b9da2736f8d57adb76095df8e957fb7667d) )
ROM_LOAD( "sa4-450", 0x0000, 0x010000, CRC(355e10f4) SHA1(5de193ea05988e6eb1190cff357581671a87c82f) )
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_START( m1corop )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa6-193", 0x0000, 0x010000, CRC(b2a392f1) SHA1(d7b908373eb3e225e399c36847ef2481ea3ad65a) )//PCORO
m1_coro_sound
ROM_END_M1A_MCU
ROM_LOAD( "cns5.10", 0x0000, 0x010000, CRC(91dc8625) SHA1(525c4311355bb3aa3052160bc439c49f5cecbcc6) )
ROM_LOAD( "cnst5.5v2", 0x0000, 0x010000, CRC(a5b2589e) SHA1(cabd5abf996c1bb9ca7a0ffcc5d666aa632f6789) )
ROM_LOAD( "sa5-306", 0x0000, 0x010000, CRC(a94a8f48) SHA1(56d5723d8087f523061280d9afe15a1bf8b269f5) )
ROM_LOAD( "sa5-307", 0x0000, 0x010000, CRC(41a212ae) SHA1(463a7d93f3b8b073cb83bda2a957dab37070ba8b) )
ROM_LOAD( "sa5-447", 0x0000, 0x010000, CRC(5b292c6e) SHA1(584a5d64ee47054870785222f85a58a721165530) )
ROM_LOAD( "sa5-448", 0x0000, 0x010000, CRC(e0e481c3) SHA1(062b8f58a7d9fa9163fd98892a6cc8099d4d234c) )
ROM_LOAD( "sa6-049", 0x0000, 0x010000, CRC(dfa086ae) SHA1(c5fa5d435a603851ab6bbe5860ee38e41aea814e) )
//1995
ROM_START( m1coro32g )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "sa6-049", 0x0000, 0x010000, CRC(dfa086ae) SHA1(c5fa5d435a603851ab6bbe5860ee38e41aea814e) )//3.2 G?
m1_coro_sound
ROM_END_M1A_MCU
// BWB Set
ROM_LOAD( "cs______.1_1", 0x0000, 0x010000, CRC(5b292c6e) SHA1(584a5d64ee47054870785222f85a58a721165530) )
ROM_START( m1coro32gh )
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_LOAD( "digi0421.bin", 0x000000, 0x080000, CRC(9489c9cd) SHA1(1a858b2a6f41898bbf95611e9f13d668c8a05c9c) )
ROM_LOAD( "digi0422.bin", 0x080000, 0x080000, CRC(cf17088e) SHA1(54c9a52ccdd1ca622367367e1304fe4e4037b0b9) )
ROM_START( m1coro12g )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
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_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, 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?, m1coro ,0 ,m1,m1,m1, ROT0, "Maygay", "Coronation Street (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?, 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?, 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 )

View File

@ -5,6 +5,12 @@
// Emulates : Stepper motors driven with full step or half step //
// 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 //
// accuracy), and improved wraparound logic //
// 03-2011: New 2D array to remove reel bounce and //
@ -36,8 +42,6 @@ typedef struct _stepper
phase, /* motor phase */
old_phase, /* old phase */
type, /* reel type */
stator1[2],
stator2[2],
reverse; /* Does reel spin backwards (construction of unit, not wiring) */
INT16 step_pos, /* step position 0 - max_steps */
max_steps; /* maximum step position */
@ -51,18 +55,6 @@ typedef struct _stepper
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)*/
/* step table, use active coils as row, phase as column*/
const stepper_interface starpoint_interface_48step =
@ -70,7 +62,8 @@ const stepper_interface starpoint_interface_48step =
STARPOINT_48STEP_REEL,
16,
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 =
@ -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_patt = intf->index_patt; /* hex value of coil pattern (0 if not needed)*/
step[which].reverse = intf->reverse;
step[which].phase = 0;
step[which].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);
break;
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;
}
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].old_phase);
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].step_pos);
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)
{
step[which].step_pos = 0;
step[which].step_pos = 0x00;
step[which].pattern = 0x00;
step[which].old_pattern = 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);
}
@ -211,172 +209,211 @@ int stepper_update(int which, UINT8 pattern)
int changed = 0;
/* This code probably makes more sense if you visualise what is being emulated, namely
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
display as appropriate. To attempt to visualise the rotation effect, take a look at the compass rose below, the numbers
indicate the phase information as used
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
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,
the numbers indicate the phase information as used
7
N
1 W E 5
S
3
7
N
1 W E 5
S
3
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
a small movement that may trigger the optic.
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
a small movement that may trigger the optic tab.
*/
*/
int pos,steps=0;
step[which].pattern = pattern;
switch ( step[which].type )
{
int pos,steps=0;
switch ( step[which].type )
{
default:
case STARPOINT_48STEP_REEL : /* STARPOINT RMxxx */
case STARPOINT_144STEPS_DICE : /* STARPOINT 1DCU DICE mechanism */
if ( step[which].pattern != pattern )
{
//NOTE: Eventually we will convert Starpoint to the Stator method below, at which point the table can be removed
steps = StarpointStepTab[(step[which].step_pos % 8)][pattern];
step[which].pattern = pattern;
}
default:
case STARPOINT_48STEP_REEL : /* STARPOINT RMxxx */
case STARPOINT_144STEPS_DICE : /* STARPOINT 1DCU DICE mechanism */
//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)
switch (pattern)
{ //Black Blue Red Yellow
case 0x02:// 0 0 1 0
step[which].phase = 7;
break;
case BARCREST_48STEP_REEL : /* Barcrest reel units have different windings */
case 0x06:// 0 1 1 0
step[which].phase = 6;
break;
case 0x04:// 0 1 0 0
step[which].phase = 5;
break;
case 0x05:// 0 1 0 1
step[which].phase = 4;
break;
case 0x01:// 0 0 0 1
step[which].phase = 3;
break;
case 0x09:// 1 0 0 1
step[which].phase = 2;
break;
case 0x08:// 1 0 0 0
step[which].phase = 1;
break;
case 0x0A:// 1 0 1 0
step[which].phase = 0;
break;
// Black Blue Red Yellow
case 0x03:// 0 0 1 1
{
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])
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;
}
if (step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 6;
}
if (step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 5;
}
if (step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && !step[which].stator2[1])
{
step[which].phase = 4;
}
if (!step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
else //otherwise it will line up due south
{
step[which].phase = 3;
}
if (!step[which].stator1[0] && step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
}
break;
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
{
step[which].phase = 2;
step[which].phase = 5;
}
if (!step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
else //otherwise it will line up due west
{
step[which].phase = 1;
}
if (step[which].stator1[0] && !step[which].stator1[1] && !step[which].stator2[0] && step[which].stator2[1])
{
step[which].phase = 0;
}
if (step[which].stator1[0] && step[which].stator1[1] && !step[which].stator2[0] && !step[which].stator2[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;
}
}
if (!step[which].stator1[0] && !step[which].stator1[1] && step[which].stator2[0] && step[which].stator2[1])
{
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;
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
switch (pattern)
{
case 0x00 :
step[which].phase = 6;
break;
case 0x01 :
step[which].phase = 4;
break;
case 0x03 :
step[which].phase = 2;
break;
case 0x02 :
step[which].phase = 0;
break;
}
break;
}
if ((step[which].type == BARCREST_48STEP_REEL) || (step[which].type == MPU3_48STEP_REEL))
break;
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)
{
steps = step[which].old_phase - step[which].phase;
// 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;
break;
case 0x02:// 0 0 1 0
step[which].phase = 5;
break;
case 0x06:// 0 1 1 0
step[which].phase = 4;
break;
case 0x04:// 0 1 0 0
step[which].phase = 3;
break;
case 0x0C:// 1 1 0 0
step[which].phase = 2;
break;
case 0x08:// 1 0 0 0
step[which].phase = 1;
break;//YOLB
case 0x09:// 1 0 0 1
step[which].phase = 0;
break;
if (steps < -4)
// 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
{
steps = steps +8;
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;
}
}
if (steps > 4)
break;
case 0x0A:// 1 0 1 0
{
steps = steps -8;
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;
break;
}
step[which].old_phase = step[which].phase;
step[which].old_pattern = step[which].pattern;
break;
}
int max = step[which].max_steps;
pos = 0;
steps = step[which].old_phase - step[which].phase;
if (steps < -4)
{
steps = steps +8;
}
if (steps > 4)
{
steps = steps -8;
}
step[which].old_phase = step[which].phase;
step[which].old_pattern = step[which].pattern;
if (max!=0)
int max = step[which].max_steps;
pos = 0;
if (max!=0)
{
if (step[which].reverse)
{
if (step[which].reverse)
{
pos = (step[which].step_pos - steps + max) % max;
}
else
{
pos = (step[which].step_pos + steps + max) % max;
}
pos = (step[which].step_pos - steps + max) % max;
}
else
{
logerror("step[%x].max_steps == 0\n",which);
pos = (step[which].step_pos + steps + max) % max;
}
if (pos != step[which].step_pos)
{
changed++;
}
step[which].step_pos = pos;
update_optic(which);
}
else
{
logerror("step[%x].max_steps == 0\n",which);
}
if (pos != step[which].step_pos)
{
changed++;
}
step[which].step_pos = pos;
update_optic(which);
return changed;
}

View File

@ -16800,8 +16800,33 @@ m1cluessr
m1cluessrp
m1cluesss
m1cluesssp
m1coderd // Code Red Club (Maygay)
m1coderd
m1coderdp
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)
m1corocb // Coronation Street Club (Maygay)
m1corosh // Coronation Street Showcase (Maygay)