diff options
author | MetalliC <0vetal0@gmail.com> | 2017-12-28 23:50:53 +0200 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2017-12-28 23:50:53 +0200 |
commit | 7b2d70af1f199f531f9e0c386ed99f70920e4568 (patch) | |
tree | 981a6e7c7fe74b17afcd6126110cac917c0b6542 /src/mame/drivers/pgm2.cpp | |
parent | 810f103ebc425520a8ff04ab11a485a5210f6a93 (diff) |
pgm2.cpp: dumped internal firmware for kov3 [Peter Wilhelmsen, Morten Shearman Kirkegaard]
not: FPGA comms emulation required, currently hacked out.
Diffstat (limited to 'src/mame/drivers/pgm2.cpp')
-rw-r--r-- | src/mame/drivers/pgm2.cpp | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp index 8a8fd1d04b0..2fdebee69fc 100644 --- a/src/mame/drivers/pgm2.cpp +++ b/src/mame/drivers/pgm2.cpp @@ -12,7 +12,7 @@ IS61LV25616AL(SRAM) IGS037(GFX PROCESSOR) YMZ774-S(SOUND) - R5F21256SN(extra MCU for protection and ICcard communication) + R5F21256SN(extra MCU for ICcard communication) - Appears to be referred to by the games as MPU Cartridges @@ -863,7 +863,7 @@ ROM_END ROM_START( kov3 ) ROM_REGION( 0x04000, "maincpu", 0 ) - ROM_LOAD( "kov3_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) // CRC(c7d33764) SHA1(5cd48f876e637d60391d39ac6e40bf243300cc75) + ROM_LOAD( "kov3_igs036_china.rom", 0x00000000, 0x0004000, CRC(c7d33764) SHA1(5cd48f876e637d60391d39ac6e40bf243300cc75) ) ROM_REGION( 0x108, "default_card", 0 ) ROM_LOAD( "blank_kov3_china_card.pg2", 0x000, 0x108, CRC(bd5a968f) SHA1(b9045eb70e02afda7810431c592208053d863980) ) @@ -1139,22 +1139,10 @@ DRIVER_INIT_MEMBER(pgm2_state,ddpdojh) DRIVER_INIT_MEMBER(pgm2_state,kov3) { - uint16_t *src = (uint16_t *)memregion("sprites_mask")->base(); - - iga_u12_decode(src, 0x4000000, 0x956d); - iga_u16_decode(src, 0x4000000, 0x3d17); - m_sprite_predecrypted = 1; - - src = (uint16_t *)memregion("sprites_colour")->base(); - sprite_colour_decode(src, 0x8000000); - - igs036_decryptor decrypter(kov3_key); - decrypter.decrypter_rom((uint16_t*)memregion("user1")->base(), memregion("user1")->bytes(), 0); - m_has_decrypted = 1; - - m_encrypted_copy.resize(memregion("user1")->bytes()); - memcpy(&m_encrypted_copy[0], memregion("user1")->base(), memregion("user1")->bytes()); - + common_encryption_init(); + // patch FPGA check + uint32_t* rom = (uint32_t*)memregion("maincpu")->base(); + rom[0x2a8c / 4] = 0xe320f000; // not endian safe ? } void pgm2_state::decrypt_kov3_module(uint32_t addrxor, uint16_t dataxor) |