From 9e18cb128e38cd771e0bac712a1f6ea625ded712 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 21 Nov 2024 17:47:39 +0100 Subject: New systems marked not working ------------------------------ Mite Shinzeyou [Hammy] New working clones ------------------ Wonder Boy - Monster Land (English bootleg set 4) [Hammy] --- src/mame/capcom/miteshin.cpp | 172 +++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 6 +- src/mame/sega/system1.cpp | 33 +++++++++ 3 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 src/mame/capcom/miteshin.cpp diff --git a/src/mame/capcom/miteshin.cpp b/src/mame/capcom/miteshin.cpp new file mode 100644 index 00000000000..b625e9e77a6 --- /dev/null +++ b/src/mame/capcom/miteshin.cpp @@ -0,0 +1,172 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Mite Shinzeyou - 見てしんぜよう +Capcom 95683-1 + 95684-1 PCBs (LCD PCB is missing) +Slot machine from 1995, featuring three slot reels as well as a bitmapped LCD, and six +illuminated buttons. +https://www.youtube.com/watch?v=QMAC_lRcPvI + + +Main components for 95683-1: +Z0840008PSC CPU +8.0000 MHz XTAL +2x MB8464A-10L RAM + +Main components for 95684-1: +Z0840008PSC CPU +8.0000 MHz XTAL +MB8464A-10L RAM +Oki M6295 +Oki M6650 +2x bank of 8 DIP switches +*/ + + +#include "emu.h" + +#include "cpu/z80/z80.h" +#include "sound/okim6295.h" +#include "sound/okim6376.h" + +#include "emupal.h" +#include "screen.h" +#include "speaker.h" + + +namespace { + +class miteshin_state : public driver_device +{ +public: + miteshin_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + {} + + + void miteshin(machine_config &config); + +private: + void main_program_map(address_map &map) ATTR_COLD; + void main_io_map(address_map &map) ATTR_COLD; + void lcd_program_map(address_map &map) ATTR_COLD; + void lcd_io_map(address_map &map) ATTR_COLD; +}; + + +void miteshin_state::main_program_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0xe000, 0xefff).ram(); +} + +void miteshin_state::main_io_map(address_map &map) +{ + map.global_mask(0xff); +} + +void miteshin_state::lcd_program_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0xe000, 0xefff).ram(); +} + +void miteshin_state::lcd_io_map(address_map &map) +{ + map.global_mask(0xff); +} + + +static INPUT_PORTS_START( miteshin ) + PORT_START("IN0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") // standard settings all OFF according to manual + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") + PORT_DIPSETTING( 0x04, "300 Yen-1P / 500 Yen-2P" ) + PORT_DIPSETTING( 0x05, "200 Yen-1P / 400 Yen-2P" ) + PORT_DIPSETTING( 0x06, "200 Yen-1P / 300 Yen-2P" ) + PORT_DIPSETTING( 0x07, "100 Yen-1P / 200 Yen-2P" ) + PORT_DIPSETTING( 0x01, "300 Yen-1P * 2P" ) + PORT_DIPSETTING( 0x02, "200 Yen-1P * 2P" ) + PORT_DIPSETTING( 0x03, "100 Yen-1P * 2P" ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x18, 0x18, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4,5") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, "Once every 4 attract cycles" ) + PORT_DIPSETTING( 0x10, "Once every 2 attract cycles" ) + PORT_DIPSETTING( 0x18, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6") + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW1:7") + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:8") + + PORT_START("DSW2") // standard settings all OFF according to manual + PORT_DIPNAME( 0x03, 0x03, "Payout Settings" ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x03, "1P-1 piece 2P-1 piece" ) + PORT_DIPSETTING( 0x01, "1P-1 piece 2P-2 pieces" ) + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW2:3") + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4") + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW2:5") + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6") + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7") + PORT_DIPNAME( 0x80, 0x80, "Auto Test Mode" ) PORT_DIPLOCATION("SW2:8") // TODO: could do with better translation + PORT_DIPSETTING( 0x00, "During Testing" ) + PORT_DIPSETTING( 0x80, "Usually" ) +INPUT_PORTS_END + + +void miteshin_state::miteshin(machine_config &config) +{ + z80_device &maincpu(Z80(config, "maincpu", 8_MHz_XTAL / 2)); // divider not verified + maincpu.set_addrmap(AS_PROGRAM, &miteshin_state::main_program_map); + maincpu.set_addrmap(AS_IO, &miteshin_state::main_io_map); + // maincpu.set_periodic_int(FUNC(miteshin_state::irq0_line_hold), attotime::from_hz(4 * 60)); + + z80_device &lcdcpu(Z80(config, "lcdcpu", 8_MHz_XTAL / 2)); // divider not verified + lcdcpu.set_addrmap(AS_PROGRAM, &miteshin_state::lcd_program_map); + lcdcpu.set_addrmap(AS_IO, &miteshin_state::lcd_io_map); + // lcdcpu.set_periodic_int(FUNC(miteshin_state::irq0_line_hold), attotime::from_hz(4 * 60)); + + // TODO: one LCD display + + SPEAKER(config, "mono").front_center(); + + OKIM6295(config, "m6295", 8_MHz_XTAL / 8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // divider & pin 7 not verified + + OKIM6650(config, "m6650", 8_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 0.5); // divider not verified +} + + +ROM_START( miteshin ) + ROM_REGION( 0x10000, "maincpu", 0 ) // on 95684-1 PCB + ROM_LOAD( "mts_01a.6j", 0x00000, 0x10000, CRC(4464f04f) SHA1(c38fdcd509a303160617f35a0a0e817621b2cebc) ) // 11xxxxxxxxxxxxxx = 0xFF + + ROM_REGION( 0x280000, "lcdcpu", 0 ) // on 95683-1 PCB + ROM_LOAD( "mts_05.1d", 0x000000, 0x080000, CRC(a19ce12a) SHA1(021154b6d14ce5da27ec58afe512f4e56beafe1e) ) // 11xxxxxxxxxxxxxxxxx = 0xFF + ROM_LOAD( "mts_06.2d", 0x080000, 0x080000, CRC(57f82561) SHA1(b53684ae397e4b211b735f09ca1b2b51eef5f4da) ) + ROM_LOAD( "mts_07.3d", 0x100000, 0x080000, CRC(123367b0) SHA1(7079df1d7fc9762cb2bafdd5a9b0be16577162b2) ) + ROM_LOAD( "mts_08.4d", 0x180000, 0x080000, CRC(32d814f3) SHA1(934dac6cb5d4e5c50cd4e30362af531f7aee5e3d) ) + ROM_LOAD( "mts_09.5d", 0x200000, 0x080000, CRC(2a8107ff) SHA1(1863366a7d8a524d0ea1c568b564210a8f29cd75) ) // 11xxxxxxxxxxxxxxxxx = 0xFF + + ROM_REGION( 0x80000, "m6295", 0 ) // on 95684-1 PCB + ROM_LOAD( "mts_02.8f", 0x00000, 0x80000, CRC(7ebbc259) SHA1(aa8c6066a229a288d2094568ea7f54efa2f8cc70) ) + + ROM_REGION( 0x100000, "m6650", 0 ) // on 95684-1 PCB + ROM_LOAD( "mts_04.5f", 0x00000, 0x80000, CRC(efc2be43) SHA1(c1856d32186fd0187fca2431694c02ef6e885f8f) ) + ROM_LOAD( "mts_03.6f", 0x80000, 0x80000, CRC(332a3855) SHA1(f50413d5fd8f330e4a4ba5021270e65f0824d019) ) + + ROM_REGION( 0x800, "plds", ROMREGION_ERASE00 ) + ROM_LOAD( "myt1a.8h", 0x000, 0x117, NO_DUMP ) // PAL16L8BCN, on 95684-1 PCB + ROM_LOAD( "lcd1a.1h", 0x200, 0x117, NO_DUMP ) // PAL16L8BCN, on 95683-1 PCB + ROM_LOAD( "lcd2a.5c", 0x400, 0x117, NO_DUMP ) // PAL16L8BCN, on 95683-1 PCB + ROM_LOAD( "lcd3a.2h", 0x600, 0x117, NO_DUMP ) // PAL16L8BCN, on 95683-1 PCB + +ROM_END + +} // anonymous namespace + + +GAME( 1995, miteshin, 0, miteshin, miteshin, miteshin_state, empty_init, ROT0, "Capcom", "Mite Shinzeyou", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 9449e85fda8..cf1e74d0a17 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -16004,6 +16004,9 @@ spangbl // bootleg spangbl2 // bootleg spangj // --/--/1990 (c) 1990 Mitchell (Japan) +@source:capcom/miteshin.cpp +miteshin + @source:capcom/psrockman.cpp psrockmn // @@ -41000,8 +41003,9 @@ ufosensib // bootleg upndown // (c) 1983 (S1) upndownu // (c) 1983 (S1) wbdeluxe // (c) 1986 + Escape license (S1) -wbml // bootleg (S2) +wbml // Sega / Westone (S2) wbmlb // bootleg? (S2) +wbmlb2 // bootleg (S2) wbmlbg // bootleg (Galaxy Electronics) wbmlbge // bootleg (Gecas) wbmljb // (c) 1987 Sega/Westone (S2) diff --git a/src/mame/sega/system1.cpp b/src/mame/sega/system1.cpp index c2e5b93fd19..c4e79d711c8 100644 --- a/src/mame/sega/system1.cpp +++ b/src/mame/sega/system1.cpp @@ -5062,6 +5062,38 @@ ROM_START( wbmlb ) ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) ROM_END +ROM_START( wbmlb2 ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "m5.e8", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) // Unencrypted opcodes + ROM_CONTINUE( 0x00000, 0x8000 ) // Now load the operands in RAM + ROM_LOAD( "m6.f8", 0x30000, 0x8000, CRC(c05e365a) SHA1(f8339af02538258a88ed348524c23a337fe152b6) ) // Unencrypted opcodes + ROM_CONTINUE( 0x10000, 0x8000 ) + ROM_LOAD( "m7.g8", 0x38000, 0x8000, CRC(cb3ea856) SHA1(4d9eedecccccf2bf40cb65473a155f519803f6f9) ) // Unencrypted opcodes + ROM_CONTINUE( 0x18000, 0x8000 ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "m8", 0x0000, 0x8000, BAD_DUMP CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) // was removed on the PCB, using wbmlb's one for now + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "m11.g19", 0x00000, 0x8000, CRC(bbea6afe) SHA1(ba56c6789a35eb57cd226296ebf57e9aa19ba625) ) + ROM_LOAD( "m10.f19", 0x08000, 0x8000, BAD_DUMP CRC(77567d41) SHA1(2ac501661522615859f8a1718dbb8451272d6931) ) // rotten, but the other 2 ROMs match wbmlb so use that for now + ROM_LOAD( "m9.e19", 0x10000, 0x8000, CRC(a52ffbdd) SHA1(609375112268b770a798186697ecab5853f29f89) ) + + ROM_REGION( 0x20000, "sprites", 0 ) + ROM_LOAD( "m2.b8", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "m1.a8", 0x08000, 0x8000, CRC(0cf576d1) SHA1(b9fe4a8405fc95ec08ab5f1f1029fa9c6ddd81be) ) + ROM_LOAD( "m4.d8", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "m3.c8", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "color_proms", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "lookup_proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + ROM_START( wbmlbg ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD( "galaxy.ic90", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) // Unencrypted opcodes @@ -5781,6 +5813,7 @@ GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, i GAME( 1987, wbmljo, wbml, sys2xb, wbml, system1_state, init_wbml, ROT0, "Sega / Westone", "Wonder Boy - Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, wbmljb, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg", "Wonder Boy - Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, wbmlb, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg", "Wonder Boy - Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE) +GAME( 1987, wbmlb2, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg", "Wonder Boy - Monster Land (English bootleg set 4)", MACHINE_SUPPORTS_SAVE) GAME( 1987, wbmlbg, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy - Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, wbmlbge, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy - Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 2009, wbmlvc, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "Sega", "Wonder Boy - Monster Land (English, Virtual Console)", MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3