royalmah/dynax.cpp: dumped TMP internal ROMs for cafedoll and cafebrk [buffi, Recreativos Piscis]

This commit is contained in:
Ivan Vangelista 2023-11-15 18:15:18 +01:00
parent 555ba8e767
commit 5259b88b1f
2 changed files with 62 additions and 15 deletions

View File

@ -2556,7 +2556,7 @@ ROM_START( shackled )
ROM_LOAD( "dk-07.5h", 0x08000, 0x08000, CRC(887e4bcc) SHA1(6427396080e9cd8647adff47c8ed04593a14268c) )
ROM_REGION( 0x1000, "mcu", 0 ) /* ID8751H (fake) MCU (based on 'breywood' with ID byte changed from 00 to 01) */
ROM_LOAD( "dk.18a", 0x0000, 0x1000, CRC(1af06149) SHA1(b9cb2a4986dbcfc78b0cbea2c1e2bdac1db479cd) BAD_DUMP )
ROM_LOAD( "dk-e.18a", 0x0000, 0x1000, CRC(1af06149) SHA1(b9cb2a4986dbcfc78b0cbea2c1e2bdac1db479cd) BAD_DUMP ) /* Hand written "E" */
ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */
ROM_LOAD( "dk-00.2a", 0x00000, 0x08000, CRC(69b975aa) SHA1(38cb96768c79ff1aa1b4b190e08ec9155baf698a) )

View File

@ -37,13 +37,13 @@ Year + Game Board(s) CPU Company Not
90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette
91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Larger palette, RTC
92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC
93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal ROM
93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC
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 Break NS528-9812 TLCS-90 Nakanihon / Dynax Larger palette, RTC
99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Larger palette, RTC
-----------------------------------------------------------------------------------------------------------------------
@ -93,6 +93,11 @@ Stephh's notes (based on the games Z80 code and some tests) :
- cafepara, janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to
access some hidden options. (thanks bnathan)
- cafebrk and cafepara share the same internal TMP91640 code, while
cafedoll and mjvegas share the same internal TMP90840 code. Curiously,
cafetime has the same internal TMP90840 code as cafedoll and mjvegas,
but it's configured to run in external ROM mode.
****************************************************************************/
#include "emu.h"
@ -254,6 +259,7 @@ public:
void mjifb(machine_config &config) ATTR_COLD;
void mjdejavu(machine_config &config) ATTR_COLD;
void mjtensin(machine_config &config) ATTR_COLD;
void cafedoll(machine_config &config) ATTR_COLD;
void cafepara(machine_config &config) ATTR_COLD;
void cafetime(machine_config &config) ATTR_COLD;
void mjvegas(machine_config &config) ATTR_COLD;
@ -266,6 +272,7 @@ public:
void init_suzume() ATTR_COLD;
void init_daisyari() ATTR_COLD;
void init_mjtensin() ATTR_COLD;
void init_cafedoll() ATTR_COLD;
void init_cafetime() ATTR_COLD;
void init_mjvegas() ATTR_COLD;
void init_mjvegasa() ATTR_COLD;
@ -334,6 +341,9 @@ private:
uint8_t cafetime_7fe4_r();
void cafetime_7fe3_w(uint8_t data);
void cafedoll_p6_w(uint8_t data);
void cafedoll_p7_w(uint8_t data);
void mjvegasa_p4_w(uint8_t data);
void mjvegasa_p3_w(uint8_t data);
void mjvegasa_rombank_w(uint8_t data);
@ -1402,6 +1412,22 @@ void royalmah_prgbank_state::cafetime_p3_w(uint8_t data)
m_mainbank->set_entry(m_rombank);
}
void royalmah_prgbank_state::cafedoll_p6_w(uint8_t data)
{
m_mjvegas_p5_val &= 0x0f;
if (data & 0x03)
m_mjvegas_p5_val |= (1 << 4);
}
void royalmah_prgbank_state::cafedoll_p7_w(uint8_t data)
{
m_mjvegas_p5_val &= 0xf0;
if (data & 0x0f)
m_mjvegas_p5_val |= (1 << 3);
}
void royalmah_prgbank_state::cafetime_dsw_w(uint8_t data)
{
m_dsw_select = data;
@ -4137,6 +4163,18 @@ void royalmah_prgbank_state::cafetime(machine_config &config)
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
}
void royalmah_prgbank_state::cafedoll(machine_config &config)
{
cafetime(config);
tmp90840_device &tmp(TMP90840(config.replace(), m_maincpu, XTAL(8'000'000))); // XTAL is verified, should it be divided?
tmp.set_addrmap(AS_PROGRAM, &royalmah_prgbank_state::cafetime_map);
tmp.port_write<3>().set(FUNC(royalmah_prgbank_state::cafetime_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_prgbank_state::cafetime_p4_w));
tmp.port_read<5>().set(FUNC(royalmah_prgbank_state::mjvegas_p5_r));
tmp.port_write<6>().set(FUNC(royalmah_prgbank_state::cafedoll_p6_w));
tmp.port_write<7>().set(FUNC(royalmah_prgbank_state::cafedoll_p7_w));
}
void royalmah_prgbank_state::cafepara(machine_config &config)
{
cafetime(config);
@ -5000,12 +5038,12 @@ Notes:
ROM_START( cafedoll )
ROM_REGION( 0x190000, "maincpu", 0 )
ROM_LOAD( "76xx.tmp90841", 0x00000, 0x02000, NO_DUMP )
ROM_LOAD( "7601", 0x000000, 0x80000, CRC(20c80ad9) SHA1(e45edd101c6e26c0fa3c3f15f4a4152a853e41bd) )
ROM_LOAD( "7601", 0x000000, 0x80000, CRC(20c80ad9) SHA1(e45edd101c6e26c0fa3c3f15f4a4152a853e41bd) )
ROM_LOAD( "76xx.tmp90840", 0x000000, 0x02000, CRC(091a85dc) SHA1(964ccbc13466464c2feee10f807078ec517bed5c) ) // internal ROM
// bank switched ROMs follow
ROM_RELOAD( 0x010000, 0x80000 )
ROM_LOAD( "7602", 0x090000, 0x80000, CRC(f472960c) SHA1(cc2feb4374ba94035101114c73e1690cfeac9b91) )
ROM_LOAD( "7603", 0x110000, 0x80000, CRC(c4293019) SHA1(afd717844e9e681ada14e80cd10dce0ed60d4259) )
ROM_COPY( "maincpu", 0x000000, 0x010000, 0x80000 )
ROM_LOAD( "7602", 0x090000, 0x80000, CRC(f472960c) SHA1(cc2feb4374ba94035101114c73e1690cfeac9b91) )
ROM_LOAD( "7603", 0x110000, 0x80000, CRC(c4293019) SHA1(afd717844e9e681ada14e80cd10dce0ed60d4259) )
ROM_REGION( 0x400, "proms", 0 )
ROM_LOAD( "d76-2_82s147.9f", 0x000, 0x200, CRC(9c1d0512) SHA1(3ca82d4271badc890701ecc76b97e80b16509b50) )
@ -5297,11 +5335,13 @@ Notes:
***************************************************************************/
ROM_START( cafebrk )
ROM_REGION( 0x280000, "maincpu", 0 )
ROM_LOAD( "528.tmp91640", 0x000000, 0x004000, NO_DUMP )
ROM_LOAD( "528011.1f", 0x000000, 0x080000, CRC(440ae60b) SHA1(c24efd76ba73adcb614b1974e8f92592800ba53c) )
ROM_REGION( 0x290000, "maincpu", 0 )
ROM_LOAD( "528011.1f", 0x000000, 0x080000, CRC(440ae60b) SHA1(c24efd76ba73adcb614b1974e8f92592800ba53c) )
ROM_LOAD( "528.tmp91640", 0x000000, 0x004000, CRC(0575607c) SHA1(e641ffd1bd44f2b4a0cdf72c49990933a0f0ff22) ) // internal ROM
// bank switched ROMs follow
ROM_LOAD( "52802.1d", 0x080000, 0x200000, CRC(bf4760fc) SHA1(d54ab9e298800a31d95a5f8b98ab9ba5b2866acf) )
ROM_COPY( "maincpu", 0x000000, 0x010000, 0x080000 )
ROM_LOAD( "52802.1d", 0x090000, 0x200000, CRC(bf4760fc) SHA1(d54ab9e298800a31d95a5f8b98ab9ba5b2866acf) )
ROM_REGION( 0x400, "proms", 0 )
ROM_LOAD( "ns528b2.4h", 0x000, 0x200, CRC(5699e69a) SHA1(fe13b93dd2c4a16865b4edcb0fee1390fdade725) )
@ -5821,6 +5861,13 @@ void royalmah_prgbank_state::init_cafetime()
save_item(NAME(m_rombank));
}
void royalmah_prgbank_state::init_cafedoll()
{
init_cafetime();
save_item(NAME(m_mjvegas_p5_val));
}
void royalmah_prgbank_state::init_mjvegasa()
{
m_mainbank->configure_entries(0, 128, memregion("maincpu")->base() + 0x10000, 0x8000);
@ -5983,11 +6030,11 @@ GAME( 1990, mjifb3, mjifb, mjifb, mjifb, royalmah_prgbank_state, ini
GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 )
GAME( 1991, mjvegas, mjvegasa, mjvegas, mjvegasa, royalmah_prgbank_state, init_mjvegas, ROT0, "Dynax", "Mahjong Vegas (Japan)", 0 )
GAME( 1992, cafetime, 0, cafetime, cafetime, royalmah_prgbank_state, init_cafetime, ROT0, "Dynax", "Mahjong Cafe Time", 0 )
GAME( 1993, cafedoll, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", MACHINE_NOT_WORKING ) // missing internal ROM dump
GAME( 1993, cafedoll, 0, cafedoll, cafetime, royalmah_prgbank_state, init_cafedoll, ROT0, "Dynax", "Mahjong Cafe Doll (Japan, Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking implementation (P3 seems to be used differently)
GAME( 1993, ichiban, 0, ichiban, ichiban, royalmah_prgbank_state, init_ichiban, ROT0, "Excel", "Ichi Ban Jyan", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND ) // should just need correct palette and ROM banking
GAME( 1995, mjtensin, 0, mjtensin, mjtensin, royalmah_prgbank_state, init_mjtensin, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING )
GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_prgbank_state, init_janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 )
GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_prgbank_state, init_janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 )
GAME( 1997, pongboo2, 0, pongboo2, ichiban, royalmah_prgbank_state, init_pongboo2, ROT0, "OCT", "Pong Boo! 2 (Ver. 1.31)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // banking, palette, inputs
GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) // missing internal ROM dump
GAME( 1999, cafepara, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Techno-Top", "Mahjong Cafe Paradise (Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking and / or ROM descrambling
GAME( 1999, cafebrk, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break (Ver. 1.01J)", MACHINE_NOT_WORKING ) // needs correct banking and / or 1d ROM descrambling
GAME( 1999, cafepara, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Techno-Top", "Mahjong Cafe Paradise (Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct banking and / or 1d ROM descrambling