diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-04-20 18:15:02 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-04-20 18:15:02 +0200 |
commit | 55841b2a7a6048116ee78861283d1bccc64135ad (patch) | |
tree | e764f404ac2949caf6ea8a8141303b67159085dc | |
parent | bba85599d922c4cf0129e0836af5f8048494fe06 (diff) |
new not working machine
-----------------------------------
Genius 6 (V110F) [Fabrice Arzeno, The Dumping Union]
-rw-r--r-- | src/mame/drivers/igs017.cpp | 101 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
2 files changed, 70 insertions, 32 deletions
diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 988b9c23e76..89a89de4a45 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -18,6 +18,7 @@ Year + Game PCB CPU Sound Custom 97 Mj Super Da Man Guan II NO-0147-6 68000 M6295 IGS031 8255 Battery 97 Mj Tian Jiang Shen Bing NO-0157-2 Z180 M6295 YM2413 IGS017 IGS025 Battery 97 Mj Man Guan Daheng NO-0252 68000 M6295 IGS031 IGS025 IGS???* Battery +98? Genius 6 NO-0131-4 Z180 M6295 YM2413 IGS017 8255 Battery 98 Mj Long Hu Zhengba 2 NO-0206 68000 M6295 IGS031 IGS025 IGS022* Battery 98 Mj Shuang Long Qiang Zhu 2 NO-0207 68000 M6295 IGS031 IGS025 IGS022 Battery 98 Mj Man Guan Caishen NO-0192-1 68000 M6295 IGS017 IGS025 IGS029 Battery @@ -78,6 +79,37 @@ public: m_igs017_igs031(*this, "igs017_igs031") { } + void mgcs(machine_config &config); + void mgdha(machine_config &config); + void tjsb(machine_config &config); + void lhzb2a(machine_config &config); + void slqz2(machine_config &config); + void iqblocka(machine_config &config); + void lhzb2(machine_config &config); + void starzan(machine_config &config); + void spkrform(machine_config &config); + void sdmg2(machine_config &config); + + DECLARE_DRIVER_INIT(iqblocka); + DECLARE_DRIVER_INIT(mgdh); + DECLARE_DRIVER_INIT(slqz2); + DECLARE_DRIVER_INIT(lhzb2); + DECLARE_DRIVER_INIT(starzan); + DECLARE_DRIVER_INIT(mgcs); + DECLARE_DRIVER_INIT(tjsb); + DECLARE_DRIVER_INIT(spkrform); + DECLARE_DRIVER_INIT(iqblockf); + DECLARE_DRIVER_INIT(sdmg2); + DECLARE_DRIVER_INIT(tarzan); + DECLARE_DRIVER_INIT(tarzana); + DECLARE_DRIVER_INIT(lhzb2a); + DECLARE_DRIVER_INIT(mgdha); + +protected: + virtual void video_start() override; + virtual void machine_reset() override; + +private: int m_input_addr; required_device<cpu_device> m_maincpu; @@ -90,11 +122,8 @@ public: optional_shared_ptr<uint8_t> m_decrypted_opcodes; required_device<igs017_igs031_device> m_igs017_igs031; - void igs025_to_igs022_callback( void ); - - uint8_t m_input_select; uint8_t m_hopper; uint16_t m_igs_magic[2]; @@ -153,23 +182,7 @@ public: DECLARE_WRITE16_MEMBER(slqz2_magic_w); DECLARE_READ16_MEMBER(slqz2_magic_r); DECLARE_READ8_MEMBER(mgcs_keys_r); - DECLARE_DRIVER_INIT(iqblocka); - DECLARE_DRIVER_INIT(mgdh); - DECLARE_DRIVER_INIT(slqz2); - DECLARE_DRIVER_INIT(lhzb2); - DECLARE_DRIVER_INIT(starzan); - DECLARE_DRIVER_INIT(mgcs); - DECLARE_DRIVER_INIT(tjsb); - DECLARE_DRIVER_INIT(spkrform); - DECLARE_DRIVER_INIT(iqblockf); - DECLARE_DRIVER_INIT(sdmg2); - DECLARE_DRIVER_INIT(tarzan); - DECLARE_DRIVER_INIT(tarzana); - DECLARE_DRIVER_INIT(lhzb2a); - DECLARE_DRIVER_INIT(mgdha); - virtual void video_start() override; - virtual void machine_reset() override; DECLARE_MACHINE_RESET(iqblocka); DECLARE_MACHINE_RESET(mgcs); DECLARE_MACHINE_RESET(lhzb2a); @@ -181,6 +194,7 @@ public: void decrypt_program_rom(int mask, int a7, int a6, int a5, int a4, int a3, int a2, int a1, int a0); void iqblocka_patch_rom(); + void iqblockf_patch_rom(); void tjsb_decrypt_sprites(); void mgcs_decrypt_program_rom(); void mgcs_decrypt_tiles(); @@ -197,16 +211,7 @@ public: void slqz2_patch_rom(); void slqz2_decrypt_tiles(); void spkrform_decrypt_sprites(); - void mgcs(machine_config &config); - void mgdha(machine_config &config); - void tjsb(machine_config &config); - void lhzb2a(machine_config &config); - void slqz2(machine_config &config); - void iqblocka(machine_config &config); - void lhzb2(machine_config &config); - void starzan(machine_config &config); - void spkrform(machine_config &config); - void sdmg2(machine_config &config); + void decrypted_opcodes_map(address_map &map); void iqblocka_io(address_map &map); void iqblocka_map(address_map &map); @@ -367,10 +372,27 @@ DRIVER_INIT_MEMBER(igs017_state,iqblocka) // iqblockf +void igs017_state::iqblockf_patch_rom() // very preliminary +{ + uint8_t *rom = memregion("maincpu")->base(); + + rom[0x010d7] = 0x18; + + rom[0x1182c] = 0x18; + + rom[0x16887] = 0x18; + + rom[0x181bd] = 0x18; + + rom[0x2221b] = 0x18; + + rom[0x23c90] = 0x18; +} + DRIVER_INIT_MEMBER(igs017_state,iqblockf) { decrypt_program_rom(0x11, 7, 6, 5, 4, 3, 2, 1, 0); -// iqblockf_patch_rom(); + iqblockf_patch_rom(); } // tjsb @@ -3767,6 +3789,20 @@ ROM_START( iqblockf ) ROM_LOAD( "sp.u17", 0x00000, 0x40000, CRC(71357845) SHA1(25f4f7aebdcc0706018f041d3696322df569b0a3) ) ROM_END +ROM_START( genius6 ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "genius6_v110f.u18", 0x00000, 0x40000, CRC(2630ad44) SHA1(37002fa913ad60c59145f5a7692eef8862b9d6eb) ) + + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "genius6_cg.u7", 0x000000, 0x080000, CRC(1842d021) SHA1(78bfb5108741d39bd19b603cc97623fba7b2a31e) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + + ROM_REGION( 0x80000, "tilemaps", 0 ) + ROM_LOAD( "text.u8", 0x000000, 0x080000, CRC(48c4f4e6) SHA1(b1e1ca62cf6a99c11a5cc56705eef7e22a3b2740) ) // same as iqblocka + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "speech.u17", 0x00000, 0x40000, CRC(d9e3d39f) SHA1(bec85d1ac2dfca77453cbca0e7dd53fee8fb438b) ) // same as iqblocka +ROM_END + /*************************************************************************** Mahjong Tian Jiang Shen Bing @@ -4369,12 +4405,13 @@ ROM_START( spkrform ) ROM_END -GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shuzi Leyuan (V127M)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shuzi Leyuan (V113FR)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shuzi Leyuan (V127M)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // hangs at game over +GAME( 1997, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shuzi Leyuan (V113FR)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // hangs at game over GAME( 1997, mgdh, 0, mgdha, mgdh, igs017_state, mgdh, ROT0, "IGS", "Mahjong Man Guan Daheng (Taiwan, V125T1)", 0 ) GAME( 1997, mgdha, mgdh, mgdha, mgdh , igs017_state, mgdha, ROT0, "IGS", "Mahjong Man Guan Daheng (Taiwan, V123T1)", 0 ) GAME( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, sdmg2, ROT0, "IGS", "Mahjong Super Da Man Guan II (China, V754C)", 0 ) GAME( 1997, tjsb, 0, tjsb, tjsb, igs017_state, tjsb, ROT0, "IGS", "Mahjong Tian Jiang Shen Bing (V137C)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1998, genius6, 0, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Genius 6 (V110F)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) GAME( 1998, mgcs, 0, mgcs, mgcs, igs017_state, mgcs, ROT0, "IGS", "Mahjong Man Guan Caishen (V103CS)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND ) GAME( 1998, lhzb2, 0, lhzb2, lhzb2, igs017_state, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zhengba 2 (set 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) GAME( 1998, lhzb2a, lhzb2, lhzb2a, lhzb2a, igs017_state, lhzb2a, ROT0, "IGS", "Mahjong Long Hu Zhengba 2 (VS221M)", 0 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d3aa035bd60..cdda452d544 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15330,6 +15330,7 @@ wlcc // (c) 1996 xymg // (c) 1996 @source:igs017.cpp +genius6 // (c) 1998? iqblocka // (c) 1996 iqblockf // (c) 1996 lhzb2 // (c) 1998 |