From 9b695f8b09784f38c655f37e038d2a27f5ace4a9 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sat, 11 Nov 2023 09:52:56 +0100 Subject: New working clones ------------------ Forty-Love (bootleg) [Recreativas.org] --- src/mame/mame.lst | 3 ++- src/mame/namco/namcos10.cpp | 6 ++--- src/mame/taito/40love.cpp | 65 ++++++++++++++++++++++++++++++++++++++++----- src/mame/taito/40love.h | 2 ++ 4 files changed, 65 insertions(+), 11 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 2ffcde9edf3..080cb3b7372 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -32785,7 +32785,7 @@ ptblank3 // 2000.12 Point Blank 3 (GNN2 Ver.A) puzzball // 2002.02 Puzz Ball (Japan, PZB1 Ver.A) sekaikh // 2004.03 Sekai Kaseki Hakken (Japan, SKH1 Ver.B) sekaikha // 2004.03 Sekai Kaseki Hakken (Japan, SKH1 Ver.A) -slotouji // 2002.0? Sekai Kaseki Hakken (Japan, SKH1 Ver.A) +slotouji // 2003.05 Slot no Oujisama / Slot Prince (Japan, SLO1 Ver. B) squizchs // 2003.03 Seishun-Quiz Colorful High School (CHS1 Ver.A) startrgn // 2002.07 Star Trigon (STT1 Ver.A) sugorotc // 2002.02 Sugorotic JAPAN (STJ1 Ver.C) @@ -42570,6 +42570,7 @@ tabe22 // (c) Tab Products @source:taito/40love.cpp 40love // A30 (c) 1984 Taito +40lovebl // bootleg 40lovej // A30 (c) 1984 Taito fieldday // A23 (c) 1984 Taito undoukai // A17 (c) 1984 Taito diff --git a/src/mame/namco/namcos10.cpp b/src/mame/namco/namcos10.cpp index ebe173508cd..75652c778cf 100644 --- a/src/mame/namco/namcos10.cpp +++ b/src/mame/namco/namcos10.cpp @@ -54,8 +54,8 @@ Puzz Ball (PZB1 Ver. A) (C) Namco, 2002 Seishun-Quiz Colorful High School (CHS1 Ver.A) (C) Namco, 2002 Sekai Kaseki Hakken (Japan, SKH1 Ver.A) (C) Namco, 2004 *Shamisen Brothers (KT-SB2 Ver.A + CDROM) (C) Kato/Konami, 2003 -*Slot no Oujisama / Slot Prince (SLO1 Ver.A) (C) Namco, 2002 -Slot no Oujisama / Slot Prince (SLO1 Ver.B) (C) Namco, 2002 +*Slot no Oujisama / Slot Prince (SLO1 Ver.A) (C) Namco, 2003 +Slot no Oujisama / Slot Prince (SLO1 Ver.B) (C) Namco, 2003 Star Trigon (STT1 Ver.A) (C) Namco, 2002 Sugorotic Japan (STJ1 Ver.C) (C) Namco, 2002 *Taiko no Tatsujin (with CDROM?) (C) Namco, 2001 @@ -3972,12 +3972,12 @@ GAME( 2002, gamshara, 0, ns10_gamshara, gamshara, namcos10_memn_sta GAME( 2002, gamsharao, gamshara, ns10_gamshara, gamshara, namcos10_memn_state, memn_driver_init, ROT0, "Mitchell", "Gamshara (20020716A / 10021 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2002, panikuru, 0, ns10_panikuru, namcos10, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Panikuru Panekuru (Japan, PPA1 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2002, puzzball, 0, ns10_puzzball, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Puzz Ball (Japan, PZB1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 2002, slotouji, 0, ns10_slotouji, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Slot no Oujisama / Slot Prince (Japan, SLO1 Ver. B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // decrypter not done yet GAME( 2002, startrgn, 0, ns10_startrgn, startrgn, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Star Trigon (Japan, STT1 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2002, sugorotc, 0, ns10_sugorotic, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Sugorotic JAPAN (STJ1 Ver.C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME( 2003, konotako, 0, ns10_konotako, konotako, namcos10_memn_state, memn_driver_init, ROT0, "Mitchell", "Kono e Tako (10021 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2003, nflclsfb, 0, ns10_nflclsfb, nflclsfb, namcos10_memn_state, memn_driver_init, ROT0, "Namco / Metro", "NFL Classic Football (US, NCF3 Ver.A.)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) GAME( 2003, pacmball, 0, ns10_pacmball, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Pacman BALL (PMB2 Ver.A.)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 2003, slotouji, 0, ns10_slotouji, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Slot no Oujisama / Slot Prince (Japan, SLO1 Ver. B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // May 2 2003, decrypter not done yet GAME( 2004, sekaikh, 0, ns10_sekaikh, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Sekai Kaseki Hakken (Japan, SKH1 Ver.B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) GAME( 2004, sekaikha, sekaikh, ns10_sekaikh, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Sekai Kaseki Hakken (Japan, SKH1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) GAME( 2005, ballpom, 0, ns10_ballpom, mgexio_medal, namcos10_memn_state, memn_driver_init, ROT0, "Namco", "Ball Pom Line", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) // ROM VER. B0 FEB 09 2005 15:29:02 in test mode, boots but requires MGEXIO to proceed diff --git a/src/mame/taito/40love.cpp b/src/mame/taito/40love.cpp index 8be017646db..02d8fc235a2 100644 --- a/src/mame/taito/40love.cpp +++ b/src/mame/taito/40love.cpp @@ -284,12 +284,11 @@ uint8_t fortyl_state::snd_flag_r() /***************************************************************************/ -void fortyl_state::_40love_map(address_map &map) +void fortyl_state::_40lovebl_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram(); /* M5517P on main board */ - map(0x8800, 0x8800).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w)); - map(0x8801, 0x8801).r(FUNC(fortyl_state::fortyl_mcu_status_r)).w("mb14241", FUNC(mb14241_device::shift_count_w)); //pixel layer related + map(0x8801, 0x8801).w("mb14241", FUNC(mb14241_device::shift_count_w)); //pixel layer related map(0x8802, 0x8802).w(FUNC(fortyl_state::bank_select_w)); map(0x8803, 0x8803).rw("mb14241", FUNC(mb14241_device::shift_result_r), FUNC(mb14241_device::shift_data_w)); //pixel layer related map(0x8804, 0x8804).r(m_soundlatch2, FUNC(generic_latch_8_device::read)); @@ -312,6 +311,14 @@ void fortyl_state::_40love_map(address_map &map) map(0xc000, 0xffff).rw(FUNC(fortyl_state::fortyl_pixram_r), FUNC(fortyl_state::fortyl_pixram_w)); /* banked pixel layer */ } +void fortyl_state::_40love_map(address_map &map) +{ + _40lovebl_map(map); + + map(0x8800, 0x8800).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w)); + map(0x8801, 0x8801).r(FUNC(fortyl_state::fortyl_mcu_status_r)); +} + void fortyl_state::undoukai_map(address_map &map) { map(0x0000, 0x7fff).rom(); @@ -692,6 +699,14 @@ void fortyl_state::_40love(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &fortyl_state::_40love_map); } +void fortyl_state::_40lovebl(machine_config &config) +{ + common(config); + m_maincpu->set_addrmap(AS_PROGRAM, &fortyl_state::_40lovebl_map); + + config.device_remove("bmcu"); +} + void fortyl_state::undoukai(machine_config &config) { common(config); @@ -775,6 +790,41 @@ ROM_START( 40lovej ) ROM_LOAD( "a30-18.u13", 0x0c00, 0x0400, BAD_DUMP CRC(78697c0f) SHA1(31382ed4c0d44024f7f57a9de6407527f4d5b0d1) ) /* ??? */ ROM_END +ROM_START( 40lovebl ) // two unmarked PCBs with a small TTL sub board marked 851400 instead of the MCU + ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 main CPU, t3 same as the original, others patch out MCU comms */ + ROM_LOAD( "t1-27128.bin", 0x000000, 0x004000, CRC(245d1608) SHA1(35d707c8005d4c014920d17a6eee1160415359d0) ) + ROM_LOAD( "t2-27128.bin", 0x004000, 0x004000, CRC(4c569e4d) SHA1(6844729df0e6d64ea8ec4dff22d4f3eded583ef6) ) + ROM_LOAD( "t3-27128.bin", 0x010000, 0x004000, CRC(dbc0049d) SHA1(1fca22ca0794564bbd1f946afb644fef0342acca) ) + + ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASEFF ) /* Z80 sound CPU, same as the original */ + ROM_LOAD( "t8-2764.bin", 0x0000, 0x2000, CRC(2fc42ee1) SHA1(b56e5f9acbcdc476252e188f41ad7249dba6f8e1) ) + ROM_LOAD( "t9-2764.bin", 0x2000, 0x2000, CRC(3a75abce) SHA1(ad2df26789d38196c0677c22ab8f176e99604b18) ) + ROM_LOAD( "t10-2764.bin", 0x4000, 0x2000, CRC(393c4b5b) SHA1(a8e1dd5c33e929bc832cccc13b85ecd13fff1eb2) ) + ROM_LOAD( "t11-2764.bin", 0x6000, 0x2000, CRC(11b2c6d2) SHA1(d55690512a37c4df2386a845e0cfb14f8052295b) ) + ROM_LOAD( "t12-2764.bin", 0x8000, 0x2000, CRC(f7afd475) SHA1(dd09d5ca7fec5e0454f9efb8ebc722561010f124) ) + ROM_LOAD( "t13-2764.bin", 0xa000, 0x2000, CRC(e806630f) SHA1(09022aae88ea0171a0aacf3260fa3a95e8faeb21) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) // same as the original + ROM_LOAD( "t4-27128.bin", 0x000000, 0x004000, CRC(529a7489) SHA1(cf3fa83f16e2e62c1a4aa74b00080f1e167865a6) ) + ROM_LOAD( "t5-27128.bin", 0x004000, 0x004000, CRC(7017e5f1) SHA1(fc614fd41109a9a6236ed4a331eda74e5d49b946) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) // different from the original (mainly cancelled the 40 Love tiles for reasons..) + ROM_LOAD( "t6-27128.bin", 0x000000, 0x004000, CRC(47634aeb) SHA1(328be3d31f83fdaada68c7b6333bf8a382cb560d) ) + ROM_LOAD( "t7-27128.bin", 0x004000, 0x004000, CRC(c9df701b) SHA1(b002daa68e67bf335e13319fb716721e5d6859b1) ) + + ROM_REGION( 0x1000, "proms", 0 ) // same as the original + ROM_LOAD( "82s137-1.bin", 0x0000, 0x0400, CRC(55e38cc7) SHA1(823a6d7f29eadf5d12702d782d4297b0d4c65a0e) ) /* red */ + ROM_LOAD( "82s137-3.bin", 0x0400, 0x0400, CRC(13997e20) SHA1(9fae1cf633409a88263dc66a17b1c2eeccd05f4f) ) /* green */ + ROM_LOAD( "82s137-2.bin", 0x0800, 0x0400, CRC(5031f2f3) SHA1(1836d82fdc9f39cb318a791af2a935c27baabfd7) ) /* blue */ + ROM_LOAD( "82s137-4.bin", 0x0c00, 0x0400, CRC(78697c0f) SHA1(31382ed4c0d44024f7f57a9de6407527f4d5b0d1) ) /* ??? */ + + ROM_REGION( 0x800, "plds", ROMREGION_ERASE00 ) + ROM_LOAD( "1_pal16r8a.bin" , 0x000, 0x104, NO_DUMP ) + ROM_LOAD( "2_pal16r8a.bin" , 0x200, 0x104, NO_DUMP ) + ROM_LOAD( "3_pal16r8a.bin" , 0x400, 0x104, NO_DUMP ) + ROM_LOAD( "4_pal16r8a.bin" , 0x600, 0x104, NO_DUMP ) +ROM_END + ROM_START( fieldday ) ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 main CPU */ ROM_LOAD( "a17_44.bin", 0x00000, 0x2000, CRC(d59812e1) SHA1(f3e7e2f09fba5964c92813cd652aa093fe3e4415) ) @@ -849,7 +899,8 @@ ROM_START( undoukai ) ROM_LOAD( "a17-18.23v", 0x0c00, 0x0400, CRC(3023a1da) SHA1(08ce4c6e99d04b358d66f0588852311d07183619) ) /* ??? */ ROM_END -GAME( 1984, 40love, 0, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, 40lovej, 40love, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // several ROMs needs double checking -GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "The Undoukai (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, 40love, 0, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, 40lovej, 40love, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // several ROMs needs double checking +GAME( 1984, 40lovebl, 40love, _40lovebl, 40love, fortyl_state, driver_init, ROT0, "bootleg", "Forty-Love (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "The Undoukai (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/taito/40love.h b/src/mame/taito/40love.h index fac702f3745..abb5c4baa2e 100644 --- a/src/mame/taito/40love.h +++ b/src/mame/taito/40love.h @@ -40,6 +40,7 @@ public: void driver_init(); void common(machine_config &config); void _40love(machine_config &config); + void _40lovebl(machine_config &config); void undoukai(machine_config &config); private: @@ -51,6 +52,7 @@ private: void draw_pixram( bitmap_ind16 &bitmap, const rectangle &cliprect ); void _40love_map(address_map &map); + void _40lovebl_map(address_map &map); void sound_map(address_map &map); void undoukai_map(address_map &map); -- cgit v1.2.3