From ad52e9f5a46dbb207c7603791386361bdfef7050 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 9 Jun 2023 13:49:10 +0200 Subject: New working clones ------------------ TeddyBoy Blues (315-5111, Old Ver.) [TeamEurope] --- src/devices/machine/segacrpt_device.cpp | 5 +++++ src/devices/machine/segacrpt_device.h | 7 +++++++ src/mame/mame.lst | 1 + src/mame/sega/system1.cpp | 36 +++++++++++++++++++++++++++++++++ src/mame/sega/system1.h | 1 + 5 files changed, 50 insertions(+) diff --git a/src/devices/machine/segacrpt_device.cpp b/src/devices/machine/segacrpt_device.cpp index 1513778d898..b7ab782499f 100644 --- a/src/devices/machine/segacrpt_device.cpp +++ b/src/devices/machine/segacrpt_device.cpp @@ -131,6 +131,7 @@ 315-5099 Spatter 315-5102 Sega Ninja unencrypted version available 315-5110 I'm Sorry used My Hero for k.p.a. + 315-5111 TeddyBoy Blues same as 315-5006 315-5114 Champion Pro Wrestling same key as Regulus 315-5115 TeddyBoy Blues 315-5128 Pinball Action game by Tehkan; also has a simple bitswap on top @@ -279,6 +280,7 @@ DEFINE_DEVICE_TYPE(SEGA_315_5098, sega_315_5098_device, "sega_315_5098", "Sega 3 DEFINE_DEVICE_TYPE(SEGA_315_5099, sega_315_5099_device, "sega_315_5099", "Sega 315-5099") DEFINE_DEVICE_TYPE(SEGA_315_5102, sega_315_5102_device, "sega_315_5102", "Sega 315-5102") DEFINE_DEVICE_TYPE(SEGA_315_5110, sega_315_5110_device, "sega_315_5110", "Sega 315-5110") +DEFINE_DEVICE_TYPE(SEGA_315_5111, sega_315_5111_device, "sega_315_5111", "Sega 315-5111") // exactly the same as Sega 315-5006? DEFINE_DEVICE_TYPE(SEGA_315_5128, sega_315_5128_device, "sega_315_5128", "Sega 315-5128") DEFINE_DEVICE_TYPE(SEGA_315_5132, sega_315_5132_device, "sega_315_5132", "Sega 315-5132") DEFINE_DEVICE_TYPE(SEGA_315_5133, sega_315_5133_device, "sega_315_5133", "Sega 315-5133") // exactly the same as Sega 315-5048? @@ -794,6 +796,9 @@ void sega_315_5006_device::decrypt() sega_315_5096_device::sega_315_5096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : sega_315_5006_device(mconfig, SEGA_315_5096, tag, owner, clock) {} // == sega_315_5006_device +sega_315_5111_device::sega_315_5111_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : sega_315_5006_device(mconfig, SEGA_315_5111, tag, owner, clock) {} +// == sega_315_5006_device + sega_315_5015_device::sega_315_5015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5015, tag, owner, clock) {} void sega_315_5015_device::decrypt() { diff --git a/src/devices/machine/segacrpt_device.h b/src/devices/machine/segacrpt_device.h index 0c9538e68a0..f47f4d3d3ca 100644 --- a/src/devices/machine/segacrpt_device.h +++ b/src/devices/machine/segacrpt_device.h @@ -172,6 +172,12 @@ public: sega_315_5096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t); }; +class sega_315_5111_device : public sega_315_5006_device +{ +public: + sega_315_5111_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t); +}; + class sega_315_5015_device : public segacrpt_z80_device { public: @@ -272,6 +278,7 @@ DECLARE_DEVICE_TYPE(SEGA_315_5093, sega_315_5093_device) DECLARE_DEVICE_TYPE(SEGA_315_5099, sega_315_5099_device) DECLARE_DEVICE_TYPE(SEGA_315_5006, sega_315_5006_device) DECLARE_DEVICE_TYPE(SEGA_315_5096, sega_315_5096_device) +DECLARE_DEVICE_TYPE(SEGA_315_5111, sega_315_5111_device) DECLARE_DEVICE_TYPE(SEGA_315_5015, sega_315_5015_device) DECLARE_DEVICE_TYPE(SEGA_315_5133, sega_315_5133_device) DECLARE_DEVICE_TYPE(SEGA_315_5014, sega_315_5014_device) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 8cc9d86fbb4..1ecf12266bf 100755 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -39824,6 +39824,7 @@ starjacks // (c) 1983 Stern (S1) swat // 834-5388 (c) 1984 Coreland / Sega (S1) teddybb // 834-5712 (c) 1985 (S1) teddybbo // 834-5712 (c) 1985 (S1) +teddybboa // 834-5712 (c) 1985 (S1) teddybbobl // bootleg thetogyu // 834-5478 (c) 1984 Sega / Coreland (S1) tokisens // (c) 1987 diff --git a/src/mame/sega/system1.cpp b/src/mame/sega/system1.cpp index b1462381f9a..96dcde2e6c6 100644 --- a/src/mame/sega/system1.cpp +++ b/src/mame/sega/system1.cpp @@ -2481,6 +2481,14 @@ void system1_state::sys1piox_315_5155(machine_config &config) z80.set_decrypted_tag(":decrypted_opcodes"); } +void system1_state::sys1piox_315_5111(machine_config &config) +{ + sys1pio(config); + segacrpt_z80_device &z80(SEGA_315_5111(config.replace(), m_maincpu, MASTER_CLOCK)); + encrypted_sys1pio_maps(config); + z80.set_decrypted_tag(":decrypted_opcodes"); +} + void system1_state::sys1piox_315_5110(machine_config &config) { sys1pio(config); @@ -3735,6 +3743,33 @@ ROM_START( teddybbo ) ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) ROM_END +ROM_START( teddybboa ) // uses same program numbers of the new version but it's similar to the old one with different encryption module? + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "epr-6768.116", 0x0000, 0x4000, CRC(30437ff1) SHA1(117995ad21ba716152d3f45e3ac10310ea9930a0) ) // encrypted, SLDH + ROM_LOAD( "epr-6769.109", 0x4000, 0x4000, CRC(984b47f1) SHA1(fe66aa7189c54be6f94434a19e8fadb4434b3583) ) // encrypted, SLDH + ROM_LOAD( "epr-6770.96", 0x8000, 0x4000, CRC(e5a74f5f) SHA1(ccf18b424d4aaeec0bae1e6f096b4c176f6ab554) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr-6748.120", 0x0000, 0x2000, CRC(9325a1cf) SHA1(555d137b1c974b144ebe6593b4c32c97b3bb5de9) ) + + ROM_REGION( 0xc000, "tiles", 0 ) + ROM_LOAD( "epr-6747.62", 0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) + ROM_LOAD( "epr-6746.61", 0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) + ROM_LOAD( "epr-6745.64", 0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) + ROM_LOAD( "epr-6744.63", 0x6000, 0x2000, CRC(0ef8d2cd) SHA1(cf9ebf8e3c1d0794b3d3377464f3908d4fcee6f7) ) + ROM_LOAD( "epr-6743.66", 0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) + ROM_LOAD( "epr-6742.65", 0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) + + ROM_REGION( 0x10000, "sprites", 0 ) + ROM_LOAD( "epr-6735.117", 0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) ) + ROM_LOAD( "epr-6737.04", 0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) ) + ROM_LOAD( "epr-6736.110", 0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) ) + ROM_LOAD( "epr-6738.05", 0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) ) + + ROM_REGION( 0x0100, "lookup_proms", 0 ) + ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + ROM_START( teddybbobl ) // data in romset is an exact match for teddybbo, including encryption ROM_REGION( 0x10000, "maincpu", 0 ) @@ -5727,6 +5762,7 @@ GAME( 1985, imsorry, 0, sys1piox_315_5110, imsorry, system1_state, e GAME( 1985, imsorryj, imsorry, sys1piox_315_5110, imsorry, system1_state, empty_init, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, teddybb, 0, sys1piox_315_5155, teddybb, system1_state, empty_init, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, teddybbo, teddybb, sys1piox_315_5155, teddybb, system1_state, empty_init, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybboa, teddybb, sys1piox_315_5111, teddybb, system1_state, empty_init, ROT0, "Sega", "TeddyBoy Blues (315-5111, Old Ver.)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, teddybbobl, teddybb, sys1piox_315_5155, teddybb, system1_state, empty_init, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, empty_init, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, sscandal, myhero, sys1piox_315_5132, myhero, system1_state, empty_init, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/sega/system1.h b/src/mame/sega/system1.h index 62444b55d48..cdcfb2f2914 100644 --- a/src/mame/sega/system1.h +++ b/src/mame/sega/system1.h @@ -53,6 +53,7 @@ public: void sys1ppisx_315_5064(machine_config &config); void sys2_317_0007(machine_config &config); void sys1piox_315_5110(machine_config &config); + void sys1piox_315_5111(machine_config &config); void sys1piox_315_5065(machine_config &config); void sys2m(machine_config &config); void sys1ppix_315_5178(machine_config &config); -- cgit v1.2.3