mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
igs_m027.cpp - updates (#12711)
Some checks failed
CI (Linux) / build-linux (-U_FORTIFY_SOURCE, gcc, gcc, g++, mametiny, tiny) (push) Waiting to run
CI (Linux) / build-linux (clang, clang, clang++, mame, mame) (push) Waiting to run
CI (macOS) / build-macos (push) Waiting to run
CI (Windows) / build-windows (clang, clang, clang++, mametiny, tiny) (push) Waiting to run
CI (Windows) / build-windows (gcc, gcc, g++, mame, mame) (push) Waiting to run
XML/JSON validation / validate (push) Has been cancelled
Some checks failed
CI (Linux) / build-linux (-U_FORTIFY_SOURCE, gcc, gcc, g++, mametiny, tiny) (push) Waiting to run
CI (Linux) / build-linux (clang, clang, clang++, mame, mame) (push) Waiting to run
CI (macOS) / build-macos (push) Waiting to run
CI (Windows) / build-windows (clang, clang, clang++, mametiny, tiny) (push) Waiting to run
CI (Windows) / build-windows (gcc, gcc, g++, mame, mame) (push) Waiting to run
XML/JSON validation / validate (push) Has been cancelled
- added internal IGS027A ROMs for lhzb4, oceanpar, triplfev, extradrw [Ioannis Bampoulas, Team Europe, XingXing] - added chessc2 IGS027A internal ROM [Siftware] New clones marked not working ----------------------------- Fruit Paradise (V206US) [Ioannis Bampoulas]
This commit is contained in:
parent
706137deae
commit
bf54761b48
5 changed files with 123 additions and 52 deletions
|
@ -51,6 +51,7 @@ public:
|
|||
{ }
|
||||
|
||||
void igs_mahjong(machine_config &config);
|
||||
void extradraw(machine_config &config);
|
||||
|
||||
void init_sdwx();
|
||||
void init_chessc2();
|
||||
|
@ -73,6 +74,7 @@ public:
|
|||
void init_lthy();
|
||||
void init_luckycrs();
|
||||
void init_olympic5();
|
||||
void init_extradrw();
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
@ -100,6 +102,7 @@ private:
|
|||
|
||||
void pgm_create_dummy_internal_arm_region();
|
||||
void igs_mahjong_map(address_map &map);
|
||||
void extradraw_map(address_map &map);
|
||||
|
||||
u32 m_dsw_io_select;
|
||||
u32 m_unk2_write_count;
|
||||
|
@ -147,6 +150,12 @@ void igs_m027_state::igs_mahjong_map(address_map &map)
|
|||
map(0xf0000000, 0xf000000f).nopw(); // magic registers
|
||||
}
|
||||
|
||||
void igs_m027_state::extradraw_map(address_map &map)
|
||||
{
|
||||
igs_mahjong_map(map);
|
||||
map(0x18088000, 0x1808ffff).ram(); // Extra Draw needs RAM here, maybe just a mirror, maybe due to PCB difference
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Input Ports
|
||||
|
@ -450,6 +459,12 @@ void igs_m027_state::igs_mahjong(machine_config &config)
|
|||
OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
}
|
||||
|
||||
void igs_m027_state::extradraw(machine_config &config)
|
||||
{
|
||||
igs_mahjong(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &igs_m027_state::extradraw_map);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
ROMs Loading
|
||||
|
@ -557,10 +572,28 @@ ROM_START( fruitpar )
|
|||
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( fruitpara )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A type G ARM based MCU
|
||||
ROM_LOAD( "q5_027a.bin", 0x00000, 0x4000, CRC(df756ac3) SHA1(5b5d2a7f6363260166e3411d1571056cc30a5e56) )
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "f paradise v-206us.u23", 0x00000, 0x80000, CRC(ee2fa627) SHA1(6e964213e17d7db021ec63c7a1af08f863483369) )
|
||||
|
||||
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
|
||||
|
||||
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( oceanpar ) // IGS PCB-0331-02-FG
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A type G ARM based MCU
|
||||
ROM_LOAD( "oceanpar_igs027a", 0x00000, 0x4000, NO_DUMP ) // possibly B1
|
||||
ROM_LOAD( "b1_027a.bin", 0x00000, 0x4000, CRC(e64a01a0) SHA1(22f2afbe1fc66c3c9e6d5d87c98b0974615b8a20) )
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "ocean_paradise_v105us.u23", 0x00000, 0x80000, CRC(e6eb66c3) SHA1(f6c1e31ccddc8ebb8218f52b5c0d97f0797b2e84) )
|
||||
|
@ -578,7 +611,7 @@ ROM_END
|
|||
ROM_START( oceanpara ) // IGS PCB-0331-01-FG
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A type G ARM based MCU
|
||||
ROM_LOAD( "b1_igs027a", 0x00000, 0x4000, NO_DUMP ) // stickered B1
|
||||
ROM_LOAD( "b1_027a.bin", 0x00000, 0x4000, CRC(e64a01a0) SHA1(22f2afbe1fc66c3c9e6d5d87c98b0974615b8a20) )
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "ocean_paradise_v101us.u23", 0x00000, 0x80000, CRC(4f2bf87a) SHA1(559c8728632336ba84f455ac22b6e514967c644b) )
|
||||
|
@ -1211,7 +1244,7 @@ IGS 0027 - Custom programmed ARM9
|
|||
ROM_START( chessc2 )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "c8_igs027a", 0x00000, 0x4000, NO_DUMP ) // stickered C8
|
||||
ROM_LOAD( "c8_027a.bin", 0x00000, 0x4000, CRC(0ef83d8b) SHA1(31ee4bf95561cdccf4262463545839bcde9ce087) ) // stickered C8
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "ccii_v-707uso.u12", 0x000000, 0x80000, CRC(5937b67b) SHA1(967b3adf6f5bf92d63ec460d595e473898a78372) )
|
||||
|
@ -1253,7 +1286,7 @@ ROM_END
|
|||
ROM_START( lhzb4 )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "lhzb4_igs027a", 0x00000, 0x4000, NO_DUMP ) // unknown sticker
|
||||
ROM_LOAD( "lhzb4_igs027a", 0x00000, 0x4000, CRC(de12c918) SHA1(87c1cf92a95565d78c6fe7629c19729f5fb5c2a5) ) // unknown sticker
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "lhzb4_104.u17", 0x000000, 0x80000, CRC(6f349bbb) SHA1(54cf895889ef0f208637ba732ede696ca3603ee0) )
|
||||
|
@ -1309,17 +1342,17 @@ ROM_END
|
|||
ROM_START( extradrw ) // IGS PCB 0326-05-DV-1
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal rom of IGS027A ARM based MCU
|
||||
ROM_LOAD( "e1_igs027a", 0x00000, 0x4000, NO_DUMP ) // has a 'E1' sticker
|
||||
ROM_LOAD( "e1_027a.bin", 0x00000, 0x4000, CRC(ebbf4922) SHA1(d2d196756317523db650bfe9e4bf2aa243e87a00) ) // has a 'E1' sticker
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg?
|
||||
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_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "u21", 0x00000, 0x80000, CRC(c1641b14) SHA1(bd2525a5b38d4d8a39e99e43ef62e1d2fd3c044d) ) // 1ST AND 2ND HALF IDENTICAL, but correct, label not readable
|
||||
|
||||
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( "igs m3001.u4", 0x000000, 0x080000, CRC(d161f8f7) SHA1(4b495197895fd805979c5d5c5a4b7f07a68f4171) ) // label barely readable
|
||||
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
|
||||
ROM_LOAD( "igs m3001.u4", 0x000000, 0x080000, CRC(d161f8f7) SHA1(4b495197895fd805979c5d5c5a4b7f07a68f4171) ) // label barely readable
|
||||
|
||||
ROM_REGION( 0x100000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "u3", 0x000000, 0x80000, CRC(97227767) SHA1(c6a1916c0df1aceafbd488ecace5794390058c49) ) // FIXED BITS (xxxxxxx0xxxxxxxx), label not readable
|
||||
ROM_REGION( 0x280000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "u12", 0x000000, 0x200000, CRC(642247fb) SHA1(69c01c3551551120a3786522b28a80621a0d5082) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF, label not readable
|
||||
ROM_LOAD( "u3", 0x200000, 0x080000, CRC(97227767) SHA1(c6a1916c0df1aceafbd488ecace5794390058c49) ) // FIXED BITS (xxxxxxx0xxxxxxxx), label not readable
|
||||
|
||||
ROM_REGION( 0x200000, "oki", 0 )
|
||||
ROM_LOAD( "igs s3002.u18", 0x00000, 0x200000, CRC(48601c32) SHA1(8ef3bad80931f4b1badf0598463e15508602f104) ) // BADADDR --xxxxxxxxxxxxxxxxxxx
|
||||
|
@ -1366,15 +1399,14 @@ void igs_m027_state::init_klxyj()
|
|||
void igs_m027_state::init_chessc2()
|
||||
{
|
||||
chessc2_decrypt(machine());
|
||||
//m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
pgm_create_dummy_internal_arm_region();
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
}
|
||||
|
||||
void igs_m027_state::init_lhzb4()
|
||||
{
|
||||
lhzb4_decrypt(machine());
|
||||
//m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
pgm_create_dummy_internal_arm_region();
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
|
||||
}
|
||||
|
||||
void igs_m027_state::init_sddz()
|
||||
|
@ -1413,8 +1445,8 @@ void igs_m027_state::init_fruitpar()
|
|||
void igs_m027_state::init_oceanpar()
|
||||
{
|
||||
oceanpar_decrypt(machine());
|
||||
//m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
pgm_create_dummy_internal_arm_region();
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
|
||||
}
|
||||
|
||||
void igs_m027_state::init_amazonia()
|
||||
|
@ -1438,6 +1470,14 @@ void igs_m027_state::init_qlgs()
|
|||
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
|
||||
}
|
||||
|
||||
|
||||
void igs_m027_state::init_extradrw()
|
||||
{
|
||||
extradrw_decrypt(machine());
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
}
|
||||
|
||||
|
||||
void igs_m027_state::init_mgzz()
|
||||
{
|
||||
mgzz_decrypt(machine());
|
||||
|
@ -1447,7 +1487,7 @@ void igs_m027_state::init_mgzz()
|
|||
void igs_m027_state::init_mgcs3()
|
||||
{
|
||||
mgcs3_decrypt(machine());
|
||||
m_igs017_igs031->sdwx_gfx_decrypt(); // wrong?
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
|
||||
}
|
||||
|
||||
|
@ -1504,33 +1544,35 @@ void igs_m027_state::init_lhdmgp()
|
|||
***************************************************************************/
|
||||
|
||||
// Complete dumps
|
||||
GAME( 1999, slqz3, 0, igs_mahjong, base, igs_m027_state, init_slqz3, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 3 (China, VS107C)", MACHINE_IS_SKELETON )
|
||||
GAME( 1999, qlgs, 0, igs_mahjong, qlgs, igs_m027_state, init_qlgs, ROT0, "IGS", "Que Long Gao Shou", 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, lhdmgp, lhdmg, igs_mahjong, base, igs_m027_state, init_lhdmgp, ROT0, "IGS", "Long Hu Da Man Guan Plus", MACHINE_IS_SKELETON )
|
||||
GAME( 1999, lhzb3, lhdmg, igs_mahjong, base, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Zhengba III", 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( 2003, mgzz, 0, igs_mahjong, base, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V101CN)", MACHINE_IS_SKELETON )
|
||||
GAME( 2000, mgzza, mgzz, 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( 1999, slqz3, 0, igs_mahjong, base, igs_m027_state, init_slqz3, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 3 (China, VS107C)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, qlgs, 0, igs_mahjong, qlgs, igs_m027_state, init_qlgs, ROT0, "IGS", "Que Long Gao Shou", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, fruitpar, 0, igs_mahjong, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, fruitpara, fruitpar, igs_mahjong, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, lhdmg, 0, igs_mahjong, base, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Da Man Guan", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, lhdmgp, lhdmg, igs_mahjong, base, igs_m027_state, init_lhdmgp, ROT0, "IGS", "Long Hu Da Man Guan Plus", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, lhzb3, 0, igs_mahjong, base, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Zhengba III", MACHINE_NOT_WORKING ) // 龙虎争霸Ⅲ
|
||||
GAME( 2004, lhzb4, 0, igs_mahjong, base, igs_m027_state, init_lhzb4, ROT0, "IGS", "Long Hu Zhengba 4", MACHINE_NOT_WORKING ) // 龙虎争霸4
|
||||
GAME( 1999, lthy, 0, igs_mahjong, base, igs_m027_state, init_lthy, ROT0, "IGS", "Long Teng Hu Yue", MACHINE_NOT_WORKING )
|
||||
GAME( 2000, zhongguo, 0, igs_mahjong, base, igs_m027_state, init_zhongguo, ROT0, "IGS", "Zhong Guo Chu Da D", MACHINE_NOT_WORKING )
|
||||
GAME( 200?, jking02, 0, igs_mahjong, jking02, igs_m027_state, init_jking02, ROT0, "IGS", "Jungle King 2002 (V209US)", MACHINE_NOT_WORKING )
|
||||
GAME( 2003, mgzz, 0, igs_mahjong, base, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V101CN)", MACHINE_NOT_WORKING )
|
||||
GAME( 2000, mgzza, mgzz, igs_mahjong, base, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V100CN)", MACHINE_NOT_WORKING )
|
||||
GAME( 2007, mgcs3, 0, igs_mahjong, base, igs_m027_state, init_mgcs3, ROT0, "IGS", "Man Guan Caishen 3 (V101CN)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, oceanpar, 0, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V105US)", MACHINE_NOT_WORKING ) // 1999 copyright in ROM
|
||||
GAME( 1999, oceanpara, oceanpar, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_NOT_WORKING ) // 1999 copyright in ROM
|
||||
GAME( 200?, extradrw, 0, extradraw, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Extra Draw", MACHINE_NOT_WORKING )
|
||||
// these have an IGS025 protection device instead of the 8255
|
||||
GAME( 2002, chessc2, 0, igs_mahjong, base, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_NOT_WORKING )
|
||||
|
||||
// Incomplete dumps
|
||||
GAME( 1999, amazonia, 0, igs_mahjong, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King (V104BR)", 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, oceanpara, oceanpar, igs_mahjong, base, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_IS_SKELETON ) // 1999 copyright in ROM
|
||||
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( 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, amazoni2, 0, igs_mahjong, base, igs_m027_state, init_amazoni2, ROT0, "IGS", "Amazonia King II (V202BR)", MACHINE_IS_SKELETON )
|
||||
GAME( 2002, sdwx, 0, igs_mahjong, base, igs_m027_state, init_sdwx, ROT0, "IGS", "Sheng Dan Wu Xian", MACHINE_IS_SKELETON ) // aka Christmas 5 Line? (or Amazonia King II, shares roms at least?)
|
||||
GAME( 200?, sddz, 0, igs_mahjong, base, igs_m027_state, init_sddz, ROT0, "IGS", "Super Dou Di Zhu", MACHINE_IS_SKELETON )
|
||||
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?, extradrw, 0, igs_mahjong, base, igs_m027_state, init_qlgs, ROT0, "IGS", "Extra Draw", MACHINE_IS_SKELETON )
|
||||
GAME( 1999, amazonia, 0, igs_mahjong, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King (V104BR)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, amazonkp, amazonia, igs_mahjong, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King Plus (V204BR)", MACHINE_NOT_WORKING )
|
||||
GAME( 2005, olympic5, 0, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V112US)", MACHINE_NOT_WORKING ) // IGS FOR V112US 2005 02 14
|
||||
GAME( 2003, olympic5a, olympic5, igs_mahjong, base, igs_m027_state, init_olympic5, ROT0, "IGS", "Olympic 5 (V107US)", MACHINE_NOT_WORKING ) // IGS FOR V107US 2003 10 2
|
||||
GAME( 200?, luckycrs, 0, igs_mahjong, base, igs_m027_state, init_luckycrs, ROT0, "IGS", "Lucky Cross (V106SA)", MACHINE_NOT_WORKING )
|
||||
GAME( 2003, amazoni2, 0, igs_mahjong, base, igs_m027_state, init_amazoni2, ROT0, "IGS", "Amazonia King II (V202BR)", MACHINE_NOT_WORKING )
|
||||
GAME( 2002, sdwx, 0, igs_mahjong, base, igs_m027_state, init_sdwx, ROT0, "IGS", "Sheng Dan Wu Xian", MACHINE_NOT_WORKING ) // aka Christmas 5 Line? (or Amazonia King II, shares roms at least?)
|
||||
GAME( 200?, sddz, 0, igs_mahjong, base, igs_m027_state, init_sddz, ROT0, "IGS", "Super Dou Di Zhu", MACHINE_NOT_WORKING )
|
||||
GAME( 200?, klxyj, 0, igs_mahjong, base, igs_m027_state, init_klxyj, ROT0, "IGS", "Kuai Le Xi You Ji", MACHINE_NOT_WORKING )
|
||||
// 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 )
|
||||
GAME( 200?, gonefsh2, 0, igs_mahjong, base, igs_m027_state, init_gonefsh2, ROT0, "IGS", "Gone Fishing 2", MACHINE_NOT_WORKING )
|
||||
|
|
|
@ -329,7 +329,7 @@ ROM_END
|
|||
ROM_START( tripfev ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, 3x 8-DIP banks
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "w1.u37", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'W1'
|
||||
ROM_LOAD( "m1_igs027a.u37", 0x00000, 0x4000, CRC(a40ec1f8) SHA1(f6f7005d61522934758fd0a98bf383c6076b6afe) ) // sticker marked 'W1'
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
|
||||
ROM_LOAD( "triple_fever_u23_v107_us.u23", 0x000000, 0x80000, CRC(aa56d888) SHA1(0b8b2765079259b76ea803289841d867c33c8cb2) ) // 27C4096
|
||||
|
@ -419,8 +419,8 @@ void igs_m027xa_state::init_crzybugsj()
|
|||
void igs_m027xa_state::init_tripfev()
|
||||
{
|
||||
tripfev_decrypt(machine());
|
||||
//qlgs_gfx_decrypt(machine());
|
||||
pgm_create_dummy_internal_arm_region();
|
||||
m_igs017_igs031->sdwx_gfx_decrypt();
|
||||
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
|
||||
}
|
||||
|
||||
void igs_m027xa_state::init_wldfruit()
|
||||
|
|
|
@ -1602,7 +1602,7 @@ void oceanpar_decrypt(running_machine &machine)
|
|||
IGS27_CRYPT5_ALT
|
||||
IGS27_CRYPT6
|
||||
IGS27_CRYPT7_ALT
|
||||
IGS27_CRYPT8_ALT
|
||||
IGS27_CRYPT8
|
||||
|
||||
x ^= oceanpar_tab[(i>> 1) & 0xff] << 8;
|
||||
|
||||
|
@ -2172,7 +2172,7 @@ void tripfev_decrypt(running_machine &machine)
|
|||
IGS27_CRYPT3
|
||||
IGS27_CRYPT4_ALT // $2fc0
|
||||
IGS27_CRYPT5_ALT // $35da0
|
||||
IGS27_CRYPT6_ALT
|
||||
IGS27_CRYPT6
|
||||
IGS27_CRYPT7_ALT // $2b0
|
||||
IGS27_CRYPT8 // $1100
|
||||
|
||||
|
@ -2361,3 +2361,30 @@ void lhdmgp_decrypt(running_machine &machine)
|
|||
src[i] = x;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void extradrw_decrypt(running_machine &machine)
|
||||
{
|
||||
auto const src = util::little_endian_cast<u16>(reinterpret_cast<u32 *>(machine.root_device().memregion("user1")->base()));
|
||||
|
||||
int const rom_size = 0x80000;
|
||||
|
||||
for (int i = 0; i < rom_size / 2; i++)
|
||||
{
|
||||
uint16_t x = 0;
|
||||
|
||||
IGS27_CRYPT1
|
||||
IGS27_CRYPT2_ALT
|
||||
IGS27_CRYPT3_ALT2
|
||||
IGS27_CRYPT4
|
||||
IGS27_CRYPT5
|
||||
IGS27_CRYPT6
|
||||
IGS27_CRYPT7
|
||||
IGS27_CRYPT8_ALT
|
||||
|
||||
x |= (x << 8);
|
||||
src[i] ^= x;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -54,3 +54,4 @@ void wldfruit_decrypt(running_machine &machine);
|
|||
void lthy_decrypt(running_machine &machine);
|
||||
void lhdmg_decrypt(running_machine &machine);
|
||||
void lhdmgp_decrypt(running_machine &machine);
|
||||
void extradrw_decrypt(running_machine &machine);
|
||||
|
|
|
@ -20237,7 +20237,8 @@ amazonia // (c) 1999
|
|||
amazonkp // (c) 1999
|
||||
chessc2 // (c) 200?
|
||||
extradrw // (c) 200?
|
||||
fruitpar // (c) 200?
|
||||
fruitpar // (c) 1999
|
||||
fruitpara // (c) 1999
|
||||
gonefsh2 // (c) 200?
|
||||
jking02 // (c) 200?
|
||||
klxyj // (c) 200?
|
||||
|
|
Loading…
Reference in a new issue