From 50f14c42f1d5a1be78771e3e78549bc244e17b6a Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 28 Apr 2022 18:27:05 +0200 Subject: New machines marked as NOT_WORKING ---------------------------------- Pong Boo! 2 [buffi] New working clones ------------------ Thunder Dragon (bootleg with Raiden sounds, unencrypted) [f205v] --- src/mame/drivers/nmk16.cpp | 37 ++++++++++++++++- src/mame/drivers/royalmah.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++- src/mame/mame.lst | 2 + 3 files changed, 130 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp index 9701d528f63..6c53202e0ce 100644 --- a/src/mame/drivers/nmk16.cpp +++ b/src/mame/drivers/nmk16.cpp @@ -6581,6 +6581,38 @@ ROM_START( tdragonb2 ) ROM_LOAD( "shinea2a2-01", 0x00000, 0x80000, CRC(4556e717) SHA1(efdec7c989436f97e8f18b157bfd5f9da55b29ba) ) ROM_END +ROM_START( tdragonb3 ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "tms27c010a.19e", 0x00000, 0x20000, CRC(659167c4) SHA1(bd9dbdf751869730513db186324c60abed4bc05e) ) + ROM_LOAD16_BYTE( "tms27c010a.19c", 0x00001, 0x20000, CRC(02f5befc) SHA1(5c0b9e7c5a811adf5c50b6ea6703df670e5a703f) ) + + ROM_REGION(0x20000, "audiocpu", 0 ) + ROM_LOAD( "d27512.4b", 0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) + ROM_CONTINUE( 0x10000, 0x8000 ) + ROM_COPY( "audiocpu", 0x00000, 0x18000, 0x8000 ) + + ROM_REGION( 0x20000, "fgtile", 0 ) // 8x8 + ROM_LOAD( "tms27c010a.2k", 0x00000, 0x20000, CRC(5144dc69) SHA1(e64d88dc0e7672f811868621f74ec209aeafbc6f) ) + + ROM_REGION( 0x100000, "bgtile", 0 ) // 16x16 + ROM_LOAD( "unreadable.18h", 0x000000, 0x100000, BAD_DUMP CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) // undumpable on this PCB, probably the same as the original as the other 2 GFX ROMs are + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "upd27c8000.18f", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) + + ROM_REGION( 0x40000, "unknown_rom", 0 ) // between the main CPU and the bgtile ROMs + ROM_LOAD( "tms27c020.20g", 0x00000, 0x40000, CRC(1ed8a2da) SHA1(8eabc35f1eb88f49b83baf8bd72229d40efed248) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "m27c512.1c", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "n82s147n.7f", 0x000, 0x200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) ) + + ROM_REGION( 0x200, "plds", 0 ) + ROM_LOAD( "pal16l8acn.8b", 0x000, 0x104, CRC(92fa095c) SHA1(4c7ece64c402ab4716fcf58d11c5b0b131a7c3e8) ) +ROM_END + ROM_START( ssmissin ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "ssm14.165", 0x00001, 0x20000, CRC(eda61b74) SHA1(6247682c27d2be7dff1fad407ccf86fe2a25f11c) ) @@ -8990,7 +9022,8 @@ GAME( 1997, tomagic, 0, tomagic, tomagic, nmk16_tomagic_stat // these use the Seibu sound system (sound / music stolen from Raiden) rather than the bootleggers copying the nmk004 GAME( 1990, mustangb, mustang, mustangb, mustang, nmk16_state, empty_init, ROT0, "bootleg", "US AAF Mustang (bootleg, set 1)", 0 ) GAME( 1990, mustangb2, mustang, mustangb, mustang, nmk16_state, empty_init, ROT0, "bootleg (TAB Austria)", "US AAF Mustang (TAB Austria bootleg)", 0 ) // PCB and ROMs have TAB Austria stickers -GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, init_tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg, set 1)", 0 ) +GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, init_tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg with Raiden sounds, encrypted)", 0 ) +GAME( 1991, tdragonb3, tdragon, tdragonb, tdragonb, nmk16_state, empty_init, ROT270, "bootleg", "Thunder Dragon (bootleg with Raiden sounds, unencrypted)", 0 ) GAME( 1992, strahljbl, strahl, strahljbl, strahljbl, nmk16_state, empty_init, ROT0, "bootleg", "Koutetsu Yousai Strahl (Japan, bootleg)", 0 ) // these are bootlegs with tharrier like sound hw @@ -8998,7 +9031,7 @@ GAME( 1990, mustangb3, mustang, mustangb3, mustang, nmk16_state, empty GAME( 1989, tharrierb, tharrier, tharrier, tharrier, nmk16_state, init_tharrier, ROT270, "bootleg (Lettering)", "Task Force Harrier (Lettering bootleg)", 0 ) // bootleg with no audio CPU and only 1 Oki -GAME( 1991, tdragonb2, tdragon, tdragonb2, tdragon, nmk16_state, empty_init, ROT270, "bootleg", "Thunder Dragon (bootleg, set 2)", MACHINE_NOT_WORKING ) // GFX and input problems. IRQs related? +GAME( 1991, tdragonb2, tdragon, tdragonb2, tdragon, nmk16_state, empty_init, ROT270, "bootleg", "Thunder Dragon (bootleg with reduced sound system)", MACHINE_NOT_WORKING ) // GFX and input problems. IRQs related? // bootleg with cloned airbustr sound hardware GAME( 1992, gunnailb, gunnail, gunnailb, gunnail, nmk16_state, init_gunnailb, ROT270, "bootleg", "GunNail (bootleg)", MACHINE_IMPERFECT_SOUND ) // crappy sound, unknown how much of it is incomplete emulation and how much bootleg quality diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index 5ce80a7320b..c72d0b1ac19 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -41,6 +41,7 @@ Year + Game Board(s) CPU Company Not 93 Ichi Ban Jian MJ911 Z80 Excel Larger palette, additional YM2413 95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC 96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC +97 Pong Boo! 2 NEW PONG-BOO Z80(?) OCT OKI M6295, no PROMs 97 Janputer Special CS166P008 + NS5110207 Z80 Dynax Larger palette, RTC 99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal rom 99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Undumped internal rom @@ -107,6 +108,7 @@ Stephh's notes (based on the games Z80 code and some tests) : #include "sound/ay8910.h" #include "sound/dac.h" #include "sound/msm5205.h" +#include "sound/okim6295.h" #include "sound/ymopl.h" #include "video/mc6845.h" #include "emupal.h" @@ -170,6 +172,7 @@ public: void mjsiyoub(machine_config &config); void rkjanoh2(machine_config &config); void ichiban(machine_config &config); + void pongboo2(machine_config &config); void init_tahjong(); void init_dynax(); @@ -315,6 +318,9 @@ private: void mjtensin_map(address_map &map); void mjvegasa_map(address_map &map); void mjyarou_iomap(address_map &map); + void pongboo2_map(address_map &map); + void pongboo2_iomap(address_map &map); + void pongboo2_opcodes_map(address_map &map); void rkjanoh2_iomap(address_map &map); void royalmah_iomap(address_map &map); void royalmah_map(address_map &map); @@ -328,7 +334,7 @@ private: required_device m_maincpu; required_device m_palette; - required_device m_ay; + optional_device m_ay; required_shared_ptr m_videoram; optional_device m_audiocpu; optional_device m_rtc; @@ -758,6 +764,21 @@ void royalmah_state::ichiban_opcodes_map(address_map &map) map(0x8000, 0xffff).rom().region("maincpu", 0x8000); } +void royalmah_state::pongboo2_map(address_map &map) +{ + map(0x0000, 0x6fff).rom().region("maincpu", 0); + map(0x7000, 0x7fff).ram().share("nvram"); + map(0x8000, 0xffff).rom().region("maincpu", 0x8000); // TODO: should be banked, as changing the offset to the other ROMs shows other graphics + map(0x8000, 0xffff).writeonly().share(m_videoram); +} + +void royalmah_state::pongboo2_opcodes_map(address_map &map) +{ + map(0x0000, 0x6fff).rom().region("maincpu", 0x10000); + map(0x7000, 0x7fff).ram().share("nvram"); + map(0x8000, 0xffff).rom().region("maincpu", 0x18000); +} + void royalmah_state::royalmah_iomap(address_map &map) { map.global_mask(0xff); @@ -883,6 +904,20 @@ void royalmah_state::ichiban_iomap(address_map &map) // TODO: writes to 0x12 and map(0x16, 0x17).w("ymsnd", FUNC(ym2413_device::write)); } +void royalmah_state::pongboo2_iomap(address_map &map) // TODO: banking, inputs +{ + map.global_mask(0xff); + // map(0x50, 0x50) // reads P1 inputs from here, but active high / different from other games? + // map(0x51, 0x51) // reads P2 inputs from here, but active high / different from other games? + // map(0x80, 0x80).w // ?? + map(0x81, 0x81).w(FUNC(royalmah_state::input_port_select_w)); // 0x01, 0x02, 0x04, 0x08, 0x10 + // map(0x82, 0x82).w // ?? + // map(0x84, 0x84).w // ?? + // map(0x91, 0x91).r // ?? + map(0x9a, 0x9a).w("oki", FUNC(okim6295_device::write)); + // map(0xa0, 0xbf).w // something similar to jansou_colortable_w ? +} + void royalmah_state::dondenmj_iomap(address_map &map) { map.global_mask(0xff); @@ -4048,6 +4083,33 @@ void royalmah_state::ichiban(machine_config &config) YM2413(config, "ymsnd", 18.432_MHz_XTAL / 6).add_route(ALL_OUTPUTS, "mono", 0.5); } +void royalmah_state::pongboo2(machine_config &config) +{ + // basic machine hardware + Z80(config, m_maincpu, 48_MHz_XTAL / 12); // not a Z80, probably some derived core + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::pongboo2_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::pongboo2_iomap); + m_maincpu->set_addrmap(AS_OPCODES, &royalmah_state::pongboo2_opcodes_map); + m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold)); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + + // video hardware + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_size(256, 256); + screen.set_visarea(0, 255, 8, 247); + screen.set_refresh_hz(60.5686); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate + screen.set_screen_update(FUNC(royalmah_state::screen_update)); + + PALETTE(config, "palette").set_format(palette_device::xRGB_444, 512); // wrong + + // sound hardware + SPEAKER(config, "mono").front_center(); + + OKIM6295(config, "oki", 1'000'000, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.5); // frequency and pin 7 not verified +} + /*************************************************************************** @@ -5544,6 +5606,35 @@ ROM_START( ichiban ) ROM_END +/* +Pong Boo! 2 by OCT + +PCB is etched +NEW PONG-BOO MADE IN JAPAN +OCT. Co,Ltd. All Rights Reserved + +Main components +- 4x scratched chips. 1 is supposed to be the main CPU, possibly some kind of Z80 or Z180 based SoC? +- 1x 48.000 XTAL +- 1x OKI M6295 sound chip (there's also an unpopulated space marked for a YM2413) +- 1x CY7C185-15PC 8k x8 SRAM +- 1x CY7C199-15PC 32k x8 SRAM +- 1x HM6264ALSP-12 with a battery nearby +- 2x SN74LS174N +- 4x bank of 8 dip-switches + +This game shares the same programmer / programming team as Ichi Ban Jian by Excel. +It seems to use a similar split opcodes / data ROM arrangement. +*/ + +ROM_START( pongboo2 ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "1a.1.u016", 0x00000, 0x80000, CRC(07a95a99) SHA1(10897f8f0d8799797a577dffc9ba36b8904bb6c4) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "2.u0513", 0x00000, 0x40000, CRC(97bafe5b) SHA1(bff4df17cdb2d3ee63cc88ff486a7f5964182a15) ) +ROM_END + void royalmah_state::init_tahjong() { m_mainbank->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); @@ -5749,5 +5840,6 @@ GAME( 1993, ichiban, 0, ichiban, ichiban, royalmah_state, empty_init, GAME( 1995, mjtensin, 0, mjtensin, mjtensin, royalmah_state, init_mjtensin, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING ) GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_state, init_janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 ) GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_state, init_janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 ) +GAME( 1997, pongboo2, 0, pongboo2, ichiban, royalmah_state, empty_init, ROT0, "OCT", "Pong Boo! 2 (Ver. 1.31)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // banking, palette, inputs GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) GAME( 1999, cafepara, 0, mjifb, mjifb, royalmah_state, init_mjifb, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 8c16a3e723d..dd3db0bf125 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -33584,6 +33584,7 @@ tdragon2a // UPL-93091 (c) 1993 NMK tdragon3h tdragonb // bootleg tdragonb2 // bootleg +tdragonb3 // bootleg tharrier // UPL-89053 (c) 1989 UPL tharrierb // Lettering bootleg tharrieru // UPL-89053 (c) 1989 UPL + American Sammy license @@ -36882,6 +36883,7 @@ mjvegasa // "50" 1991 Dynax mjyarou // (c) 1986 Visco / Video System mjyarou2 // (c) 1986 Visco / Video System openmj // (c) 1982 Nichibutsu +pongboo2 // (c) 1997 OCT royalmah // Falcon bootleg royalmj // (c) 1982 Nichibutsu rkjanoh2 // SNK / Dyna Corp -- cgit v1.2.3