igs_m027.cpp - add 2 more 027A internal dumps (and 2 in igs_m027_link too) [Guru, XingXing] (#12680)

This commit is contained in:
mamehaze 2024-08-23 05:41:50 +01:00 committed by GitHub
parent 001418f8b9
commit a2a1bc3406
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 17 deletions

View File

@ -952,7 +952,7 @@ Notes:
W24257 - Winbond 32kx8 SRAM (SOJ28) W24257 - Winbond 32kx8 SRAM (SOJ28)
Custom ICs - Custom ICs -
IGS027A - ARM7/9? based CPU (QFP120, labelled 'J8') IGS027A - ARM7/9? based CPU (QFP120, labelled 'J8')
IGS033 - likely GFX processor. Appears to be linked to the 3.6V battery. However, IGS031 - likely GFX processor. Appears to be linked to the 3.6V battery. However,
the battery was dead and the PCB still works, so maybe the battery is not used? (QFP208) the battery was dead and the PCB still works, so maybe the battery is not used? (QFP208)
ROMs - ROMs -
P2600.U10 - 27C4096 EPROM, Main program P2600.U10 - 27C4096 EPROM, Main program
@ -966,7 +966,7 @@ Notes:
ROM_START( zhongguo ) ROM_START( zhongguo )
ROM_REGION( 0x04000, "maincpu", 0 ) ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A ARM based MCU // Internal ROM of IGS027A ARM based MCU
ROM_LOAD( "zhongguo_igs027a", 0x00000, 0x4000, NO_DUMP ) ROM_LOAD( "j8_igs027a", 0x00000, 0x4000, CRC(95c51462) SHA1(818aad8ac25355950ba00438d0eecf58f0a17d8a) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "p2600.u10", 0x000000, 0x80000, CRC(9ad34135) SHA1(54717753d1296efe49946369fd4a27181f19dbc0) ) ROM_LOAD( "p2600.u10", 0x000000, 0x80000, CRC(9ad34135) SHA1(54717753d1296efe49946369fd4a27181f19dbc0) )
@ -1060,7 +1060,7 @@ Notes:
ROM_START( lthy ) // appears to be a different edition of lhzb3 (GFX and sound ROM match) ROM_START( lthy ) // appears to be a different edition of lhzb3 (GFX and sound ROM match)
ROM_REGION( 0x04000, "maincpu", 0 ) ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU // Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "d6_igs027a", 0x00000, 0x4000, NO_DUMP ) ROM_LOAD( "d6_igs027a", 0x00000, 0x4000, CRC(b29ee32b) SHA1(aa5f1f8ed8d61dd328c4c28a7bba700935526d26) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "27c4096.u10", 0x000000, 0x80000, CRC(bd04f2e9) SHA1(3d5a2101c7214a37f159e0d17f3e66a9b6ab94ff) ) ROM_LOAD( "27c4096.u10", 0x000000, 0x80000, CRC(bd04f2e9) SHA1(3d5a2101c7214a37f159e0d17f3e66a9b6ab94ff) )
@ -1324,7 +1324,7 @@ ROM_START( extradrw ) // IGS PCB 0326-05-DV-1
ROM_LOAD( "e1_igs027a", 0x00000, 0x4000, NO_DUMP ) // has a 'E1' sticker ROM_LOAD( "e1_igs027a", 0x00000, 0x4000, NO_DUMP ) // has a 'E1' sticker
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg? ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg?
ROM_LOAD( "u21", 0x00000, 0x80000, CRC(c1641b14) SHA1(bd2525a5b38d4d8a39e99e43ef62e1d2fd3c044d) ) // 1ST AND 2ND HALF IDENTICAL, label not readable, suspected bad dump (doesn't decrypt with usual methods) ROM_LOAD( "u21", 0x00000, 0x80000, BAD_DUMP CRC(c1641b14) SHA1(bd2525a5b38d4d8a39e99e43ef62e1d2fd3c044d) ) // 1ST AND 2ND HALF IDENTICAL, label not readable, suspected bad dump (doesn't decrypt with usual methods)
ROM_REGION( 0x280000, "igs017_igs031:tilemaps", 0 ) ROM_REGION( 0x280000, "igs017_igs031:tilemaps", 0 )
ROM_LOAD16_WORD_SWAP( "u12", 0x000000, 0x200000, CRC(642247fb) SHA1(69c01c3551551120a3786522b28a80621a0d5082) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF, label not readable ROM_LOAD16_WORD_SWAP( "u12", 0x000000, 0x200000, CRC(642247fb) SHA1(69c01c3551551120a3786522b28a80621a0d5082) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF, label not readable
@ -1420,8 +1420,8 @@ void igs_m027_state::init_gonefsh2()
void igs_m027_state::init_zhongguo() void igs_m027_state::init_zhongguo()
{ {
zhongguo_decrypt(machine()); zhongguo_decrypt(machine());
//m_igs017_igs031->sdwx_gfx_decrypt(); m_igs017_igs031->mgcs_decrypt_tiles(); // close, but wrong, see copyright date
pgm_create_dummy_internal_arm_region(); // sprites aren't encrypted
} }
void igs_m027_state::init_slqz3() void igs_m027_state::init_slqz3()
@ -1491,8 +1491,8 @@ void igs_m027_state::init_jking02()
void igs_m027_state::init_lthy() void igs_m027_state::init_lthy()
{ {
lthy_decrypt(machine()); lthy_decrypt(machine());
//qlgs_gfx_decrypt(machine()); //m_igs017_igs031->sdwx_gfx_decrypt(); // wrong
pgm_create_dummy_internal_arm_region(); //pgm_create_dummy_internal_arm_region();
} }
void igs_m027_state::init_luckycrs() void igs_m027_state::init_luckycrs()
@ -1513,14 +1513,14 @@ void igs_m027_state::init_lhdmg()
{ {
//lhdmg_decrypt(machine()); //lhdmg_decrypt(machine());
//qlgs_gfx_decrypt(machine()); //qlgs_gfx_decrypt(machine());
pgm_create_dummy_internal_arm_region(); //pgm_create_dummy_internal_arm_region();
} }
void igs_m027_state::init_lhdmgp() void igs_m027_state::init_lhdmgp()
{ {
//lhdmgp_decrypt(machine()); //lhdmgp_decrypt(machine());
//qlgs_gfx_decrypt(machine()); //qlgs_gfx_decrypt(machine());
pgm_create_dummy_internal_arm_region(); //pgm_create_dummy_internal_arm_region();
} }
@ -1539,6 +1539,8 @@ GAME( 1999, qlgs, 0, igs_mahjong, qlgs, igs_m027_state, init_qlg
GAME( 1999, fruitpar, 0, igs_mahjong, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_IS_SKELETON ) GAME( 1999, fruitpar, 0, igs_mahjong, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_IS_SKELETON )
GAME( 1999, lhdmg, 0, igs_mahjong, base, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Da Man Guan", MACHINE_IS_SKELETON ) GAME( 1999, lhdmg, 0, igs_mahjong, base, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Da Man Guan", MACHINE_IS_SKELETON )
GAME( 1999, lhdmgp, lhdmg, igs_mahjong, base, igs_m027_state, init_lhdmgp, ROT0, "IGS", "Long Hu Da Man Guan Plus", MACHINE_IS_SKELETON ) GAME( 1999, lhdmgp, lhdmg, igs_mahjong, base, igs_m027_state, init_lhdmgp, ROT0, "IGS", "Long Hu Da Man Guan Plus", MACHINE_IS_SKELETON )
GAME( 1999, lthy, 0, igs_mahjong, base, igs_m027_state, init_lthy, ROT0, "IGS", "Long Teng Hu Yue", MACHINE_IS_SKELETON )
GAME( 2000, zhongguo, 0, igs_mahjong, base, igs_m027_state, init_zhongguo, ROT0, "IGS", "Zhong Guo Chu Da D", MACHINE_IS_SKELETON )
GAME( 200?, jking02, 0, igs_mahjong, jking02, igs_m027_state, init_jking02, ROT0, "IGS", "Jungle King 2002 (V209US)", MACHINE_IS_SKELETON ) GAME( 200?, jking02, 0, igs_mahjong, jking02, igs_m027_state, init_jking02, ROT0, "IGS", "Jungle King 2002 (V209US)", MACHINE_IS_SKELETON )
GAME( 2003, mgzz, 0, igs_mahjong, base, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V100CN)", MACHINE_IS_SKELETON ) GAME( 2003, mgzz, 0, igs_mahjong, base, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V100CN)", MACHINE_IS_SKELETON )
GAME( 2007, mgcs3, 0, igs_mahjong, base, igs_m027_state, init_mgcs3, ROT0, "IGS", "Man Guan Caishen 3 (V101CN)", MACHINE_IS_SKELETON ) GAME( 2007, mgcs3, 0, igs_mahjong, base, igs_m027_state, init_mgcs3, ROT0, "IGS", "Man Guan Caishen 3 (V101CN)", MACHINE_IS_SKELETON )
@ -1548,7 +1550,6 @@ GAME( 1999, amazonia, 0, igs_mahjong, amazonia, igs_m027_state, init_ama
GAME( 1999, amazonkp, amazonia, igs_mahjong, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King Plus (V204BR)", MACHINE_IS_SKELETON ) GAME( 1999, amazonkp, amazonia, igs_mahjong, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King Plus (V204BR)", MACHINE_IS_SKELETON )
GAME( 1999, oceanpar, 0, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V105US)", MACHINE_IS_SKELETON ) // 1999 copyright in ROM GAME( 1999, oceanpar, 0, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V105US)", MACHINE_IS_SKELETON ) // 1999 copyright in ROM
GAME( 1999, oceanpara, oceanpar, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_IS_SKELETON ) // 1999 copyright in ROM GAME( 1999, oceanpara, oceanpar, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_IS_SKELETON ) // 1999 copyright in ROM
GAME( 1999, lthy, 0, igs_mahjong, base, igs_m027_state, init_lthy, ROT0, "IGS", "Long Teng Hu Yue", MACHINE_IS_SKELETON )
GAME( 200?, luckycrs, 0, igs_mahjong, base, igs_m027_state, init_luckycrs, ROT0, "IGS", "Lucky Cross (V106SA)", MACHINE_IS_SKELETON ) GAME( 200?, luckycrs, 0, igs_mahjong, base, igs_m027_state, init_luckycrs, ROT0, "IGS", "Lucky Cross (V106SA)", MACHINE_IS_SKELETON )
GAME( 2005, olympic5, 0, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V112US)", MACHINE_IS_SKELETON ) // IGS FOR V112US 2005 02 14 GAME( 2005, olympic5, 0, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V112US)", MACHINE_IS_SKELETON ) // IGS FOR V112US 2005 02 14
GAME( 2003, olympic5a, olympic5, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V107US)", MACHINE_IS_SKELETON ) // IGS FOR V107US 2003 10 2 GAME( 2003, olympic5a, olympic5, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V107US)", MACHINE_IS_SKELETON ) // IGS FOR V107US 2003 10 2
@ -1559,7 +1560,7 @@ GAME( 200?, lhzb3, 0, igs_mahjong, base, igs_m027_state, init_lhz
GAME( 2004, lhzb4, 0, igs_mahjong, base, igs_m027_state, init_lhzb4, ROT0, "IGS", "Long Hu Zhengba 4", MACHINE_IS_SKELETON ) // 龙虎争霸4 GAME( 2004, lhzb4, 0, igs_mahjong, base, igs_m027_state, init_lhzb4, ROT0, "IGS", "Long Hu Zhengba 4", MACHINE_IS_SKELETON ) // 龙虎争霸4
GAME( 200?, klxyj, 0, igs_mahjong, base, igs_m027_state, init_klxyj, ROT0, "IGS", "Kuai Le Xi You Ji", MACHINE_IS_SKELETON ) GAME( 200?, klxyj, 0, igs_mahjong, base, igs_m027_state, init_klxyj, ROT0, "IGS", "Kuai Le Xi You Ji", MACHINE_IS_SKELETON )
GAME( 2000, mgfx, 0, igs_mahjong, base, igs_m027_state, init_mgfx, ROT0, "IGS", "Man Guan Fu Xing", MACHINE_IS_SKELETON ) GAME( 2000, mgfx, 0, igs_mahjong, base, igs_m027_state, init_mgfx, ROT0, "IGS", "Man Guan Fu Xing", MACHINE_IS_SKELETON )
GAME( 200?, gonefsh2, 0, igs_mahjong, base, igs_m027_state, init_gonefsh2, ROT0, "IGS", "Gone Fishing 2", MACHINE_IS_SKELETON )
GAME( 2000, zhongguo, 0, igs_mahjong, base, igs_m027_state, init_zhongguo, ROT0, "IGS", "Zhong Guo Chu Da D", MACHINE_IS_SKELETON )
GAME( 2002, chessc2, 0, igs_mahjong, base, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_IS_SKELETON )
GAME( 200?, extradrw, 0, igs_mahjong, base, igs_m027_state, init_qlgs, ROT0, "IGS", "Extra Draw", MACHINE_IS_SKELETON ) GAME( 200?, extradrw, 0, igs_mahjong, base, igs_m027_state, init_qlgs, ROT0, "IGS", "Extra Draw", MACHINE_IS_SKELETON )
// these have an IGS025 protection device instead of the 8255
GAME( 200?, gonefsh2, 0, igs_mahjong, base, igs_m027_state, init_gonefsh2, ROT0, "IGS", "Gone Fishing 2", MACHINE_IS_SKELETON )
GAME( 2002, chessc2, 0, igs_mahjong, base, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_IS_SKELETON )

View File

@ -180,7 +180,7 @@ void extension_state::video_start()
void host_state::host_map(address_map &map) void host_state::host_map(address_map &map)
{ {
map(0x00000000, 0x00003fff).rom(); // Internal ROM map(0x00000000, 0x00003fff).rom(); // Internal ROM
map(0x08000000, 0x0800ffff).rom().region("user1", 0); // Game ROM map(0x08000000, 0x0800ffff).rom().region("user1", 0); // Game ROM (does it really map here? it appears to be connected indirectly via the 025)
} }
void extension_state::extension_map(address_map &map) void extension_state::extension_map(address_map &map)
@ -304,7 +304,7 @@ void extension_state::extension(machine_config &config)
ROM_START( mgcsh ) ROM_START( mgcsh )
ROM_REGION( 0x04000, "maincpu", 0 ) ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU // Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "y7_027a.bin", 0x00000, 0x4000, NO_DUMP ) ROM_LOAD( "y7_027a.bin", 0x00000, 0x4000, CRC(3e726eeb) SHA1(41b4e5f8a9d35b82b1a62029b34c1e19e188a3bc) )
ROM_REGION32_LE( 0x10000, "user1", 0 ) // external ARM data / prg ROM_REGION32_LE( 0x10000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "v206cmmbox.u13", 0x00000, 0x10000, CRC(2bfdeeeb) SHA1(c92f8994f75e0eefb4dbf25daa0d62ad72a7ddfa) ) ROM_LOAD( "v206cmmbox.u13", 0x00000, 0x10000, CRC(2bfdeeeb) SHA1(c92f8994f75e0eefb4dbf25daa0d62ad72a7ddfa) )
@ -313,7 +313,7 @@ ROM_END
ROM_START( cjslh ) ROM_START( cjslh )
ROM_REGION( 0x04000, "maincpu", 0 ) ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU // Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "s2_027a.bin", 0x00000, 0x4000, NO_DUMP ) ROM_LOAD( "s2_027a.bin", 0x00000, 0x4000, CRC(6be397fd) SHA1(ccd2469995a0b90800e891c39f4b3eaa033783ec) )
ROM_REGION32_LE( 0x10000, "user1", 0 ) // external ARM data / prg ROM_REGION32_LE( 0x10000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "v-106csm.u13", 0x00000, 0x10000, CRC(5b3f3446) SHA1(1d5b9523ac7f221eb7cc2e5db90cc859c640cc18) ) ROM_LOAD( "v-106csm.u13", 0x00000, 0x10000, CRC(5b3f3446) SHA1(1d5b9523ac7f221eb7cc2e5db90cc859c640cc18) )