New working clones

------------------
Geo Storm (Japan, 026 custom sound CPU) [playero]

- dynax/royalmah.cpp: minor comments update
This commit is contained in:
Ivan Vangelista 2023-10-17 21:47:01 +02:00
parent 13d77e40a6
commit 9a6095696c
4 changed files with 52 additions and 8 deletions

View File

@ -1462,7 +1462,7 @@ void royalmah_prgbank_state::cafepara_map(address_map &map)
map(0x7ff0, 0x7ff0).w(FUNC(royalmah_prgbank_state::janptr96_coin_counter_w));
map(0x7ff1, 0x7ff1).portr("SYSTEM").nopw();
map(0x7ff3, 0x7ff3).w(FUNC(royalmah_prgbank_state::input_port_select_w));
map(0x7ff4, 0x7ff4).lw8(NAME([this] (uint8_t data) { m_mainbank->set_entry(data); logerror("mainbank_w: %02x\n", data); }));
map(0x7ff4, 0x7ff4).lw8(NAME([this] (uint8_t data) { m_mainbank->set_entry(data); if (data >= 0x10) logerror("mainbank_w: %02x\n", data); }));
map(0x7ff5, 0x7ff5).lw8(NAME([this] (uint8_t data) { logerror("0x7ff5 write: %02x\n", data); })); // bit 1 seems coin counter but it's actually at 0x7ff0
map(0x7ff6, 0x7ff6).w(FUNC(royalmah_prgbank_state::mjderngr_palbank_w));
map(0x7ff7, 0x7ff7).w(FUNC(royalmah_prgbank_state::cafetime_7fe3_w));
@ -4144,16 +4144,16 @@ void royalmah_prgbank_state::cafepara(machine_config &config)
tmp.set_addrmap(AS_PROGRAM, &royalmah_prgbank_state::cafepara_map);
tmp.port_read<3>().set([this] () { logerror("%s: p3 in\n", machine().describe_context()); return uint8_t(0); }); // read sometimes
tmp.port_read<4>().set([this] () { logerror("%s: p4 in\n", machine().describe_context()); return uint8_t(0); }); // not seen yet
tmp.port_read<5>().set([this] () { logerror("%s: p5 in\n", machine().describe_context()); return uint8_t(0); }); // dips
tmp.port_read<6>().set([this] () { logerror("%s: p6 in\n", machine().describe_context()); return uint8_t(0); }); // dips
tmp.port_read<5>().set([this] () { logerror("%s: p5 in\n", machine().describe_context()); return uint8_t(0); }); // dips 5-8 for each of the 4 dip banks + dips 9-10 for first and second bank
tmp.port_read<6>().set([this] () { logerror("%s: p6 in\n", machine().describe_context()); return uint8_t(0); }); // dips 1-4 for each of the 4 dip banks + dips 9-10 for third and fourth bank
tmp.port_read<7>().set([this] () { logerror("%s: p7 in\n", machine().describe_context()); return uint8_t(0); }); // not seen yet
tmp.port_read<8>().set([this] () { logerror("%s: p8 in\n", machine().describe_context()); return uint8_t(0); });
tmp.port_write<3>().set([this] (uint8_t data) { logerror("%s: p3 out %02X\n", machine().describe_context(), data); }); // 0x6c at startup, remnant of older games?
tmp.port_write<4>().set([this] (uint8_t data) { logerror("%s: p4 out %02X\n", machine().describe_context(), data); }); // 0x00 at startup
tmp.port_write<5>().set([this] (uint8_t data) { logerror("%s: p5 out %02X\n", machine().describe_context(), data); }); // not seen yet
tmp.port_write<6>().set([this] (uint8_t data) { logerror("%s: p6 out %02X\n", machine().describe_context(), data); }); // not seen yet
tmp.port_write<7>().set([this] (uint8_t data) { logerror("%s: p7 out %02X\n", machine().describe_context(), data); }); // seen 0x07, 0x0b, 0x0d, 0x0f. ???
tmp.port_write<8>().set([this] (uint8_t data) { logerror("%s: p8 out %02X\n", machine().describe_context(), data); }); // 0x00 or 0x08, most probably view
tmp.port_write<7>().set([this] (uint8_t data) { logerror("%s: p7 out %02X\n", machine().describe_context(), data); }); // seen 0x07, 0x0b, 0x0d, 0x0f. DSW select
tmp.port_write<8>().set([this] (uint8_t data) { logerror("%s: p8 out %02X\n", machine().describe_context(), data); }); // 0x00 or 0x08, most probably view but could also have to do with DSW select
}
void royalmah_prgbank_state::mjvegasa(machine_config &config)
@ -5145,7 +5145,7 @@ ROM_END
/***************************************************************************
Mahjong Shinkirou Deja Vu (+ some ROMs from Jan Oh (Toapan) !?)
Mahjong Shinkirou Deja Vu (+ some ROMs from Jan Oh (Toaplan) !?)
This game runs on Royal Mahjong hardware.
@ -5990,4 +5990,4 @@ GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_prgbank_state, ini
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 memory map and CPU ports
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

View File

@ -1099,6 +1099,12 @@ void m92_state::gunforc2(machine_config &config)
m_soundcpu->set_decryption_table(lethalth_decryption_table);
}
void m92_state::geostorma(machine_config &config)
{
gunforc2(config);
m_soundcpu->set_decryption_table(dsoccr94_decryption_table);
}
/***************************************************************************/
ROM_START( bmaster ) // M92-B-B 05C04171B1 ROM board
@ -2504,6 +2510,41 @@ ROM_START( geostorm ) // M92-B-G 05C04171G1 ROM board
ROM_LOAD( "m92_b-7j-a.ic41", 0x0a00, 0x0117, CRC(09f57872) SHA1(19c3e0f3ae106e75dba3450745edd4bb9afdd923) ) // PAL16L8 - bruteforced
ROM_END
ROM_START( geostorma ) // same as above, but uses a different custom sound CPU and thus different sound CPU ROMs
ROM_REGION( 0x100000, "maincpu", 0 ) // white labels
ROM_LOAD16_BYTE("ic37", 0x000001, 0x040000, CRC(9be58d09) SHA1(ab98b91abc8129c342c59674eab9683cccc6ca35) )
ROM_LOAD16_BYTE("ic49", 0x000000, 0x040000, CRC(59abb75d) SHA1(52b48685470ffa3f36a8259bf333448bf40caea9) )
ROM_LOAD16_BYTE("ic36", 0x080001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
ROM_LOAD16_BYTE("ic48", 0x080000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
ROM_REGION( 0x20000, "soundcpu", 0 ) // white labels
ROM_LOAD16_BYTE("ic24", 0x00001, 0x10000, CRC(62a13a96) SHA1(48dc41173ab8a78a28a194132d68b2971bd7a9f6) )
ROM_LOAD16_BYTE("ic31", 0x00000, 0x10000, CRC(16b8b6b5) SHA1(c312dd6d86f69cf751579defc5bc2e661a7b20d4) )
ROM_REGION( 0x200000, "gfx1", 0 ) // Tiles
ROM_LOAD("a2_-c0-.ic1", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) )
ROM_LOAD("a2_-c1-.ic2", 0x080000, 0x080000, CRC(0b9efe67) SHA1(1df4108d30d2538f6407e328513517cd3412321f) )
ROM_LOAD("a2_-c2-.ic16", 0x100000, 0x080000, CRC(7a9e9978) SHA1(241dc310e75960e306701a2e86e30d9c1a60ebff) )
ROM_LOAD("a2_-c3-.ic17", 0x180000, 0x080000, CRC(1395ee6d) SHA1(e9befc966e6ee046eaca185a9969976304a119d8) )
ROM_REGION( 0x400000, "gfx2", 0 ) // Sprites
ROM_LOAD( "a2_-000-.ic44", 0x000000, 0x100000, CRC(38e03147) SHA1(cc5bacad9592aa5e91632b139955e1c704a67a33) )
ROM_LOAD( "a2_-010-.ic45", 0x100000, 0x100000, CRC(1d5b05f8) SHA1(884f134ed51b432965a4e5e79915ba9c0ab562c6) )
ROM_LOAD( "a2_-020-.ic46", 0x200000, 0x100000, CRC(f2f461cc) SHA1(04e91efc749d022c8012caac493767ec1f6a992d) )
ROM_LOAD( "a2_-030-.ic47", 0x300000, 0x100000, CRC(97609d9d) SHA1(71ddff85a8ddeac69863bbf6c493c5c3973fd175) )
ROM_REGION( 0x100000, "irem", 0 ) // Samples
ROM_LOAD("a2_-da-.ic10", 0x000000, 0x100000, CRC(3c8cdb6a) SHA1(d1f4186e8ddf99698443f8ee1c60a6e6bc367b09) )
ROM_REGION( 0x0c00, "plds", 0 )
ROM_LOAD( "m92_a-3m-.ic11", 0x0000, 0x0117, CRC(fc718efe) SHA1(d554dd74cecd95754a1e6e24c6a207d6d3428253) ) // PAL16L8 - bruteforced
ROM_LOAD( "m92_a-7j-.ic41", 0x0200, 0x0117, CRC(5730b25a) SHA1(1877b807f6a94f6d515afc940e1d615a453490fd) ) // PAL16L8 - bruteforced
ROM_LOAD( "m92_a-9j-.ic51", 0x0400, 0x0117, CRC(92d477cf) SHA1(6a1e9bfdb367384e8611f46300f378730817514b) ) // PAL16L8 - bruteforced
ROM_LOAD( "m92_b-3f-.ic14", 0x0600, 0x0117, CRC(52ecf083) SHA1(1a1819e572f7fdd5aab2caeca8741441ffbea01d) ) // PAL16L8 - bruteforced
ROM_LOAD( "m92_b-4f-.ic21", 0x0800, 0x0117, CRC(5e87fd01) SHA1(f076dea6bc94f5aa01121f8c70a39d8e5ee805e8) ) // PAL16L8 - bruteforced
ROM_LOAD( "m92_b-7j-a.ic41", 0x0a00, 0x0117, CRC(09f57872) SHA1(19c3e0f3ae106e75dba3450745edd4bb9afdd923) ) // PAL16L8 - bruteforced
ROM_END
/***************************************************************************/
/* has bankswitching */
@ -2576,4 +2617,5 @@ GAME( 1993, psoldier, ssoldier, psoldier, psoldier, m92_state, empty_in
GAME( 1994, dsoccr94j, dsoccr94, dsoccr94j, dsoccr94j, m92_state, init_bank, ROT0, "Irem", "Dream Soccer '94 (Japan, M92 hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1994, gunforc2, 0, gunforc2, gunforc2, m92_state, init_bank, ROT0, "Irem", "Gun Force II (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_state, init_bank, ROT0, "Irem", "Geo Storm (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_state, init_bank, ROT0, "Irem", "Geo Storm (Japan, 014 custom sound CPU)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1994, geostorma, gunforc2, geostorma, gunforc2, m92_state, init_bank, ROT0, "Irem", "Geo Storm (Japan, 026 custom sound CPU)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )

View File

@ -55,6 +55,7 @@ public:
void psoldier(machine_config &config);
void rtypeleo(machine_config &config);
void gunforc2(machine_config &config);
void geostorma(machine_config &config);
void nbbatman2bl(machine_config &config);
void bmaster(machine_config &config);
void nbbatman(machine_config &config);

View File

@ -21051,6 +21051,7 @@ bmaster // (c) 1991 Irem (World)
crossbld // (c) 1991 Irem (Japan)
dsoccr94j // (c) 1994 Irem (Japan)
geostorm // (c) 1994 Irem (Japan)
geostorma // (c) 1994 Irem (Japan)
gunforc2 // (c) 1994 Irem (World)
gunforce // (c) 1991 Irem (World)
gunforcej // (c) 1991 Irem (Japan)