sync with XingXing (nw)

This commit is contained in:
David Haywood 2013-01-19 18:44:43 +00:00
parent b470ef2e22
commit aa00f6971d
5 changed files with 451 additions and 61 deletions

1
.gitattributes vendored
View File

@ -2969,6 +2969,7 @@ src/mame/drivers/igs009.c svneol=native#text/plain
src/mame/drivers/igs011.c svneol=native#text/plain
src/mame/drivers/igs017.c svneol=native#text/plain
src/mame/drivers/igs_m027.c svneol=native#text/plain
src/mame/drivers/igs_m036.c svneol=native#text/plain
src/mame/drivers/igspc.c svneol=native#text/plain
src/mame/drivers/igspoker.c svneol=native#text/plain
src/mame/drivers/ikki.c svneol=native#text/plain

258
src/mame/drivers/igs_m036.c Normal file
View File

@ -0,0 +1,258 @@
/* IGS Gambling games using IGS036 CPU
pgm2.c also uses this CPU
<Chao Ji Da Heng 2>
cjdh2.zip
---------------------------------------------------
CPU: IGS036
GFX: IGS036
SND: 6295
==============================================
a IGS game use IGS036 chip
IGS036 could be a upgraded version of IGS027A
but with GFX processor integrated
I dont know the CPU core (should ARM based due to fail test)
the chip has internal rom build-in
the the FLASH(u33, EV29LV160AB-90PCR) is external rom and encrypted
if the external rom decrypted then we can
try to trojan the internal rom
here we offer several revision a same game to see
if anyone could find any clue, these 4 revision can
be programmed and running on a same PCB.
===================================================
filename |
---------------------------------------------------
cjdh2_s215cn.u33 | PRG (Ver S215CN)
cjdh2_s311cn.rom | PRG (Ver S311CN)
cjdh2_s311cna.rom | PRG (Ver S311CNA)
cjdh2_s311cnb.rom | PRG (Ver S311CNB)
cjdh2_cg1.u8 | GFX ROM
cjdh2_cg2.u24 | GFX ROM
cjdh2_sp.u20 | SND ROM
DSC00257.JPG | PCB Photo
---------------------------------------------------
(dump by XingXing)
<Super Dou Di Zhu Special>
cjddzsp.zip
---------------------------------------------------
CPU: IGS036
GFX: IGS036
SND: TT5665
----------------------------------------------------------------------------
Filename TYPE CRC32 SHA1
cjddzsp_s122cn.u27 GFX 797e5ba3 784fae513ac8cfd1143f0d0ce0936f74e2e64e48
cjddzsp_s122cn.u28 GFX d0441a6b e1c948f94472398aa5887963cf8e87be28dd66e0
cjddzsp_s122cn.u30 SND e0e02a57 96074a5226dd24d0bc150adff7324b5349cb5dc2
cjddzsp_s122cn.u18 PRG 4a42aad6 96805e5bfbd50686177fe50020229ea8787ade17
----------------------------------------------------------------------------
check more info and photo from cjdh2.zip!!!
(dump by XingXing)
*/
#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "cpu/arm7/arm7core.h"
class igs_m036_state : public driver_device
{
public:
igs_m036_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
{ }
UINT32 screen_update_igs_m036(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_DRIVER_INIT(igs_m036);
};
UINT32 igs_m036_state::screen_update_igs_m036(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
static ADDRESS_MAP_START( igs_m036_map, AS_PROGRAM, 32, igs_m036_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM /* Internal ROM */
ADDRESS_MAP_END
static INPUT_PORTS_START( igs_m036 )
INPUT_PORTS_END
ROM_START( cjdh2 )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "chaohen2_igs036", 0x00000, 0x4000, NO_DUMP )
// there is also a square socketed chip like the one on Haunted House (igs_m027) probably in need of dumping
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "cjdh2_s311cn.u33", 0x000000, 0x200000, CRC(a6fb72f0) SHA1(1d9583eafaea21d5ec078b7f2e3dc426571a9550) )
ROM_LOAD( "cjdh2_s311cna.u33", 0x000000, 0x200000, CRC(0bc6bc1b) SHA1(c891a7051cda1fd250d9380d7f33b47c375db74d) )
ROM_LOAD( "cjdh2_s311cnb.u33", 0x000000, 0x200000, CRC(ddcf50bd) SHA1(39a3ed728be5894a2fec5cf0858f6f40be5ccae1) )
ROM_LOAD( "cjdh2_s215cn.u33", 0x000000, 0x200000, CRC(ebe35131) SHA1(1f167e70a80b39e0658fd97c249982a0aa622683) )
ROM_REGION( 0x200000, "oki", 0 ) // samples
ROM_LOAD( "cjdh2_sp.u20", 0x000000, 0x200000, CRC(14a20112) SHA1(de49ecbc6ffd89e8d2e0a4cf1f4cba1a78810d42) )
ROM_REGION( 0x800100*2, "gfx", 0 )
ROM_LOAD( "cjdh2_cg1.u8", 0x000000, 0x800100, CRC(c14bf4b2) SHA1(32bdd7c498b75f3444bb6a6ccf0981d5dd46028c) )
ROM_LOAD( "cjdh2_cg2.u24", 0x800100, 0x800100, CRC(f9c747c3) SHA1(c4ff67e9da1322536841b8a9e9d9cfea6d7ebc4a) )
ROM_END
ROM_START( cjdh2a )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "chaohen2_igs036", 0x00000, 0x4000, NO_DUMP )
// there is also a square socketed chip like the one on Haunted House (igs_m027) probably in need of dumping
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "cjdh2_s311cna.u33", 0x000000, 0x200000, CRC(0bc6bc1b) SHA1(c891a7051cda1fd250d9380d7f33b47c375db74d) )
ROM_REGION( 0x200000, "oki", 0 ) // samples
ROM_LOAD( "cjdh2_sp.u20", 0x000000, 0x200000, CRC(14a20112) SHA1(de49ecbc6ffd89e8d2e0a4cf1f4cba1a78810d42) )
ROM_REGION( 0x800100*2, "gfx", 0 )
ROM_LOAD( "cjdh2_cg1.u8", 0x000000, 0x800100, CRC(c14bf4b2) SHA1(32bdd7c498b75f3444bb6a6ccf0981d5dd46028c) )
ROM_LOAD( "cjdh2_cg2.u24", 0x800100, 0x800100, CRC(f9c747c3) SHA1(c4ff67e9da1322536841b8a9e9d9cfea6d7ebc4a) )
ROM_END
ROM_START( cjdh2b )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "chaohen2_igs036", 0x00000, 0x4000, NO_DUMP )
// there is also a square socketed chip like the one on Haunted House (igs_m027) probably in need of dumping
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "cjdh2_s311cnb.u33", 0x000000, 0x200000, CRC(ddcf50bd) SHA1(39a3ed728be5894a2fec5cf0858f6f40be5ccae1) )
ROM_REGION( 0x200000, "oki", 0 ) // samples
ROM_LOAD( "cjdh2_sp.u20", 0x000000, 0x200000, CRC(14a20112) SHA1(de49ecbc6ffd89e8d2e0a4cf1f4cba1a78810d42) )
ROM_REGION( 0x800100*2, "gfx", 0 )
ROM_LOAD( "cjdh2_cg1.u8", 0x000000, 0x800100, CRC(c14bf4b2) SHA1(32bdd7c498b75f3444bb6a6ccf0981d5dd46028c) )
ROM_LOAD( "cjdh2_cg2.u24", 0x800100, 0x800100, CRC(f9c747c3) SHA1(c4ff67e9da1322536841b8a9e9d9cfea6d7ebc4a) )
ROM_END
ROM_START( cjdh2c )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "chaohen2_igs036", 0x00000, 0x4000, NO_DUMP )
// there is also a square socketed chip like the one on Haunted House (igs_m027) probably in need of dumping
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "cjdh2_s215cn.u33", 0x000000, 0x200000, CRC(ebe35131) SHA1(1f167e70a80b39e0658fd97c249982a0aa622683) )
ROM_REGION( 0x200000, "oki", 0 ) // samples
ROM_LOAD( "cjdh2_sp.u20", 0x000000, 0x200000, CRC(14a20112) SHA1(de49ecbc6ffd89e8d2e0a4cf1f4cba1a78810d42) )
ROM_REGION( 0x800100*2, "gfx", 0 )
ROM_LOAD( "cjdh2_cg1.u8", 0x000000, 0x800100, CRC(c14bf4b2) SHA1(32bdd7c498b75f3444bb6a6ccf0981d5dd46028c) )
ROM_LOAD( "cjdh2_cg2.u24", 0x800100, 0x800100, CRC(f9c747c3) SHA1(c4ff67e9da1322536841b8a9e9d9cfea6d7ebc4a) )
ROM_END
ROM_START( cjddzsp )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "cjddzsp_igs036", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "cjddzsp_s122cn.u18", 0x000000, 0x200000, CRC(4a42aad6) SHA1(96805e5bfbd50686177fe50020229ea8787ade17) )
ROM_REGION( 0x800100, "oki", 0 ) // TT5665 samples
ROM_LOAD( "cjddzsp_s122cn.u27", 0x000000, 0x800100, CRC(797e5ba3) SHA1(784fae513ac8cfd1143f0d0ce0936f74e2e64e48))
ROM_REGION( 0x800100*2, "gfx", 0 )
ROM_LOAD( "cjddzsp_s122cn.u28", 0x000000, 0x800100, CRC(d0441a6b) SHA1(e1c948f94472398aa5887963cf8e87be28dd66e0) )
ROM_LOAD( "cjddzsp_s122cn.u30", 0x800100, 0x800100, CRC(e0e02a57) SHA1(96074a5226dd24d0bc150adff7324b5349cb5dc2) )
ROM_END
ROM_START( igsm312 )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
ROM_LOAD( "igsunk_igs036", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "m312cn.rom", 0x000000, 0x200000, CRC(5069c310) SHA1(d53a2e8acddfbb7afc27c68c0b3167419a3ec3e6) )
ROM_REGION( 0x800100, "oki", ROMREGION_ERASE00 ) // TT5665 samples
/* missing */
ROM_REGION( 0x800100*2, "gfx", ROMREGION_ERASE00 )
/* missing */
ROM_END
#define IGS036_CPU ARM7
static MACHINE_CONFIG_START( igs_m036, igs_m036_state )
MCFG_CPU_ADD("maincpu",IGS036_CPU, 20000000)
MCFG_CPU_PROGRAM_MAP(igs_m036_map)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036)
MCFG_PALETTE_LENGTH(0x200)
/* sound hardware (OKI) */
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( igs_m036_tt, igs_m036_state )
MCFG_CPU_ADD("maincpu",IGS036_CPU, 20000000)
MCFG_CPU_PROGRAM_MAP(igs_m036_map)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036)
MCFG_PALETTE_LENGTH(0x200)
/* sound hardware (TT5665) */
MACHINE_CONFIG_END
DRIVER_INIT_MEMBER(igs_m036_state,igs_m036)
{
}
/***************************************************************************
Game Drivers
***************************************************************************/
GAME( 200?, cjdh2, 0, igs_m036, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CN)", GAME_IS_SKELETON )
GAME( 200?, cjdh2a, cjdh2, igs_m036, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNA)", GAME_IS_SKELETON )
GAME( 200?, cjdh2b, cjdh2, igs_m036, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNB)", GAME_IS_SKELETON )
GAME( 200?, cjdh2c, cjdh2, igs_m036, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Chao Ji Da Heng 2 (V215CN)", GAME_IS_SKELETON )
GAME( 200?, cjddzsp, 0, igs_m036_tt, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Super Dou Di Zhu Special (V122CN)", GAME_IS_SKELETON )
GAME( 200?, igsm312, 0, igs_m036_tt, igs_m036, igs_m036_state, igs_m036, ROT0, "IGS", "Unknown IGS036 CPU game (V312CN)", GAME_IS_SKELETON )

View File

@ -17,8 +17,30 @@ PGM2 Motherboard Components:
YMZ774-S(SOUND)
R5F21256SN(extra MCU for protection and ICcard communication)
Cartridges
IGS036 (MAIN CPU) (differs per game, internal code)
ROMs
Custom program ROM module (KOV3 only)
QFP100 chip (Xlinx CPLD)
Single PCB versions of some of the titles were also available
Only 5 Games were released for this platform, 3 of which are just updates / re-releases of older titles!
The platform has since been superseded by PGM3 (HD system uses flash cards etc.)
Oriental Legend 2
The King of Fighters '98 - Ultimate Match - Hero (NOT DUMPED)
Knights of Valour 2 New Legend
Dodonpachi Daioujou Tamashii
Knights of Valour 3
NO internal ROMs are dumped.
*/
// document these exist, but leave disabled for now, can't be doing with the drama
// #define OTHER_PGM2_SETS 1
#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "cpu/arm7/arm7core.h"
@ -33,6 +55,9 @@ public:
DECLARE_DRIVER_INIT(kov2nl);
DECLARE_DRIVER_INIT(orleg2);
DECLARE_DRIVER_INIT(ddpdojh);
DECLARE_DRIVER_INIT(kov3);
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
@ -150,97 +175,169 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state )
MACHINE_CONFIG_END
ROM_START( orleg2 )
ROM_REGION( 0x800000, "maincpu", 0 ) /* External Code (Internal is missing) */
ROM_LOAD16_WORD_SWAP( "xyj2_v104cn.u7", 0x000000, 0x800000, CRC(7c24a4f5) SHA1(3cd9f9264ef2aad0869afdf096e88eb8d74b2570) )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "xyj2_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x0200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a.u4", 0x000000, 0x0200000, CRC(fa444c32) SHA1(31e5e3efa92d52bf9ab97a0ece51e3b77f52ce8a) )
ROM_REGION( 0x800000, "user1", 0 )
ROM_LOAD( "xyj2_v104cn.u7", 0x00000000, 0x0800000, CRC(7c24a4f5) SHA1(3cd9f9264ef2aad0869afdf096e88eb8d74b2570) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD16_BYTE( "ig-a.u35", 0x000000, 0x0800000, CRC(083a8315) SHA1(0dba25e132fbb12faa59ced648c27b881dc73478) )
ROM_LOAD16_BYTE( "ig-a.u36", 0x000001, 0x0800000, CRC(e197221d) SHA1(5574b1e3da4b202db725be906dd868edc2fd4634) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a_text.u4", 0x00000000, 0x0200000, CRC(fa444c32) SHA1(31e5e3efa92d52bf9ab97a0ece51e3b77f52ce8a) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a.u12", 0x000000, 0x1000000, CRC(113a331c) SHA1(ee6b31bb2b052cc8799573de0d2f0a83f0ab4f6a) )
ROM_LOAD32_WORD( "ig-a.u16", 0x000002, 0x1000000, CRC(fbf411c8) SHA1(5089b5cc9bbf6496ef1367c6255e63e9ab895117) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD32_WORD( "ig-a_bgl.u35", 0x00000000, 0x0800000, CRC(083a8315) SHA1(0dba25e132fbb12faa59ced648c27b881dc73478) )
ROM_LOAD32_WORD( "ig-a_bgh.u36", 0x00000002, 0x0800000, CRC(e197221d) SHA1(5574b1e3da4b202db725be906dd868edc2fd4634) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data?
ROM_LOAD16_BYTE( "ig-a.u18", 0x000000, 0x2000000, CRC(43501fa6) SHA1(58ccce6d393964b771fec3f5c583e3ede57482a3) )
ROM_LOAD16_BYTE( "ig-a.u26", 0x000001, 0x2000000, CRC(7051d020) SHA1(3d9b24c6fda4c9699bb9f00742e0888059b623e1) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a_bml.u12", 0x00000000, 0x1000000, CRC(113a331c) SHA1(ee6b31bb2b052cc8799573de0d2f0a83f0ab4f6a) )
ROM_LOAD32_WORD( "ig-a_bmh.u16", 0x00000002, 0x1000000, CRC(fbf411c8) SHA1(5089b5cc9bbf6496ef1367c6255e63e9ab895117) )
ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770? */
ROM_LOAD16_WORD_SWAP( "ig-a.u2", 0x000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "ig-a_cgl.u18", 0x00000000, 0x2000000, CRC(43501fa6) SHA1(58ccce6d393964b771fec3f5c583e3ede57482a3) )
ROM_LOAD32_WORD( "ig-a_cgh.u26", 0x00000002, 0x2000000, CRC(7051d020) SHA1(3d9b24c6fda4c9699bb9f00742e0888059b623e1) )
ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "ig-a_sp.u2", 0x00000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
ROM_END
ROM_START( orleg2o )
ROM_REGION( 0x800000, "maincpu", 0 ) /* External Code (Internal is missing) */
ROM_LOAD16_WORD_SWAP( "xyj2_v103cn.u7", 0x000000, 0x800000, CRC(21c1fae8) SHA1(36eeb7a5e8dc8ee7c834f3ff1173c28cf6c2f1a3) )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "xyj2_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x0200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a.u4", 0x000000, 0x0200000, CRC(fa444c32) SHA1(31e5e3efa92d52bf9ab97a0ece51e3b77f52ce8a) )
ROM_REGION( 0x800000, "user1", 0 )
ROM_LOAD( "xyj2_v103cn.u7", 0x000000, 0x800000, CRC(21c1fae8) SHA1(36eeb7a5e8dc8ee7c834f3ff1173c28cf6c2f1a3) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD16_BYTE( "ig-a.u35", 0x000000, 0x0800000, CRC(083a8315) SHA1(0dba25e132fbb12faa59ced648c27b881dc73478) )
ROM_LOAD16_BYTE( "ig-a.u36", 0x000001, 0x0800000, CRC(e197221d) SHA1(5574b1e3da4b202db725be906dd868edc2fd4634) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a_text.u4", 0x00000000, 0x0200000, CRC(fa444c32) SHA1(31e5e3efa92d52bf9ab97a0ece51e3b77f52ce8a) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a.u12", 0x000000, 0x1000000, CRC(113a331c) SHA1(ee6b31bb2b052cc8799573de0d2f0a83f0ab4f6a) )
ROM_LOAD32_WORD( "ig-a.u16", 0x000002, 0x1000000, CRC(fbf411c8) SHA1(5089b5cc9bbf6496ef1367c6255e63e9ab895117) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD32_WORD( "ig-a_bgl.u35", 0x00000000, 0x0800000, CRC(083a8315) SHA1(0dba25e132fbb12faa59ced648c27b881dc73478) )
ROM_LOAD32_WORD( "ig-a_bgh.u36", 0x00000002, 0x0800000, CRC(e197221d) SHA1(5574b1e3da4b202db725be906dd868edc2fd4634) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data?
ROM_LOAD16_BYTE( "ig-a.u18", 0x000000, 0x2000000, CRC(43501fa6) SHA1(58ccce6d393964b771fec3f5c583e3ede57482a3) )
ROM_LOAD16_BYTE( "ig-a.u26", 0x000001, 0x2000000, CRC(7051d020) SHA1(3d9b24c6fda4c9699bb9f00742e0888059b623e1) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a_bml.u12", 0x00000000, 0x1000000, CRC(113a331c) SHA1(ee6b31bb2b052cc8799573de0d2f0a83f0ab4f6a) )
ROM_LOAD32_WORD( "ig-a_bmh.u16", 0x00000002, 0x1000000, CRC(fbf411c8) SHA1(5089b5cc9bbf6496ef1367c6255e63e9ab895117) )
ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770? */
ROM_LOAD16_WORD_SWAP( "ig-a.u2", 0x000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "ig-a_cgl.u18", 0x00000000, 0x2000000, CRC(43501fa6) SHA1(58ccce6d393964b771fec3f5c583e3ede57482a3) )
ROM_LOAD32_WORD( "ig-a_cgh.u26", 0x00000002, 0x2000000, CRC(7051d020) SHA1(3d9b24c6fda4c9699bb9f00742e0888059b623e1) )
ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "ig-a_sp.u2", 0x00000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
ROM_END
ROM_START( kov2nl )
ROM_REGION( 0x800000, "maincpu", 0 ) /* External Code (Internal is missing) */
ROM_LOAD16_WORD_SWAP( "gsyx_v302cn.u7", 0x000000, 0x800000, CRC(b19cf540) SHA1(25da5804bbfd7ef2cdf5cc5aabaa803d18b98929) )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "gsyx_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x0200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a3.u4", 0x000000, 0x0200000, CRC(214530ff) SHA1(4231a02054b0345392a077042b95779fd45d6c22) )
ROM_REGION( 0x800000, "user1", 0 )
ROM_LOAD( "gsyx_v302cn.u7", 0x00000000, 0x0800000, CRC(b19cf540) SHA1(25da5804bbfd7ef2cdf5cc5aabaa803d18b98929) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD16_BYTE( "ig-a3.u35", 0x000000, 0x0800000, CRC(2d46b1f6) SHA1(ea8c805eda6292e86a642e9633d8fee7054d10b1) )
ROM_LOAD16_BYTE( "ig-a3.u36", 0x000001, 0x0800000, CRC(df710c36) SHA1(f826c3f496c4f17b46d18af1d8e02cac7b7027ac) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a3_text.u4", 0x00000000, 0x0200000, CRC(214530ff) SHA1(4231a02054b0345392a077042b95779fd45d6c22) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a3.u12", 0x000000, 0x1000000, CRC(0bf63836) SHA1(b8e4f1951f8074b475b795bd7840c5a375b6f5ef) )
ROM_LOAD32_WORD( "ig-a3.u16", 0x000002, 0x1000000, CRC(4a378542) SHA1(5d06a8a8796285a786ebb690c34610f923ef5570) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD32_WORD( "ig-a3_bgl.u35", 0x00000000, 0x0800000, CRC(2d46b1f6) SHA1(ea8c805eda6292e86a642e9633d8fee7054d10b1) )
ROM_LOAD32_WORD( "ig-a3_bgh.u36", 0x00000002, 0x0800000, CRC(df710c36) SHA1(f826c3f496c4f17b46d18af1d8e02cac7b7027ac) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data?
ROM_LOAD16_BYTE( "ig-a3.u18", 0x000000, 0x2000000, CRC(8d923e1f) SHA1(14371cf385dd8857017d3111cd4710f4291b1ae2) )
ROM_LOAD16_BYTE( "ig-a3.u26", 0x000001, 0x2000000, CRC(5b6fbf3f) SHA1(d1f52e230b91ee6cde939d7c2b74da7fd6527e73) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a3_bml.u12", 0x00000000, 0x1000000, CRC(0bf63836) SHA1(b8e4f1951f8074b475b795bd7840c5a375b6f5ef) )
ROM_LOAD32_WORD( "ig-a3_bmh.u16", 0x00000002, 0x1000000, CRC(4a378542) SHA1(5d06a8a8796285a786ebb690c34610f923ef5570) )
ROM_REGION( 0x2000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770? */
ROM_LOAD16_WORD_SWAP( "ig-a3.u37", 0x000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "ig-a3_cgl.u18", 0x00000000, 0x2000000, CRC(8d923e1f) SHA1(14371cf385dd8857017d3111cd4710f4291b1ae2) )
ROM_LOAD32_WORD( "ig-a3_cgh.u26", 0x00000002, 0x2000000, CRC(5b6fbf3f) SHA1(d1f52e230b91ee6cde939d7c2b74da7fd6527e73) )
ROM_REGION( 0x2000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37", 0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
ROM_END
ROM_START( kov2nlo )
ROM_REGION( 0x800000, "maincpu", 0 ) /* External Code (Internal is missing) */
ROM_LOAD16_WORD_SWAP( "gsyx_v301cn.u7", 0x000000, 0x800000, CRC(c4595c2c) SHA1(09e379556ef76f81a63664f46d3f1415b315f384) )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "gsyx_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x0200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a3.u4", 0x000000, 0x0200000, CRC(214530ff) SHA1(4231a02054b0345392a077042b95779fd45d6c22) )
ROM_REGION( 0x800000, "user1", 0 )
ROM_LOAD( "gsyx_v301cn.u7", 0x000000, 0x800000, CRC(c4595c2c) SHA1(09e379556ef76f81a63664f46d3f1415b315f384) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD16_BYTE( "ig-a3.u35", 0x000000, 0x0800000, CRC(2d46b1f6) SHA1(ea8c805eda6292e86a642e9633d8fee7054d10b1) )
ROM_LOAD16_BYTE( "ig-a3.u36", 0x000001, 0x0800000, CRC(df710c36) SHA1(f826c3f496c4f17b46d18af1d8e02cac7b7027ac) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ig-a3_text.u4", 0x00000000, 0x0200000, CRC(214530ff) SHA1(4231a02054b0345392a077042b95779fd45d6c22) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a3.u12", 0x000000, 0x1000000, CRC(0bf63836) SHA1(b8e4f1951f8074b475b795bd7840c5a375b6f5ef) )
ROM_LOAD32_WORD( "ig-a3.u16", 0x000002, 0x1000000, CRC(4a378542) SHA1(5d06a8a8796285a786ebb690c34610f923ef5570) )
ROM_REGION( 0x1000000, "bgtile", 0 )
ROM_LOAD32_WORD( "ig-a3_bgl.u35", 0x00000000, 0x0800000, CRC(2d46b1f6) SHA1(ea8c805eda6292e86a642e9633d8fee7054d10b1) )
ROM_LOAD32_WORD( "ig-a3_bgh.u36", 0x00000002, 0x0800000, CRC(df710c36) SHA1(f826c3f496c4f17b46d18af1d8e02cac7b7027ac) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data?
ROM_LOAD16_BYTE( "ig-a3.u18", 0x000000, 0x2000000, CRC(8d923e1f) SHA1(14371cf385dd8857017d3111cd4710f4291b1ae2) )
ROM_LOAD16_BYTE( "ig-a3.u26", 0x000001, 0x2000000, CRC(5b6fbf3f) SHA1(d1f52e230b91ee6cde939d7c2b74da7fd6527e73) )
ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ig-a3_bml.u12", 0x00000000, 0x1000000, CRC(0bf63836) SHA1(b8e4f1951f8074b475b795bd7840c5a375b6f5ef) )
ROM_LOAD32_WORD( "ig-a3_bmh.u16", 0x00000002, 0x1000000, CRC(4a378542) SHA1(5d06a8a8796285a786ebb690c34610f923ef5570) )
ROM_REGION( 0x2000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770? */
ROM_LOAD16_WORD_SWAP( "ig-a3.u37", 0x000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "ig-a3_cgl.u18", 0x00000000, 0x2000000, CRC(8d923e1f) SHA1(14371cf385dd8857017d3111cd4710f4291b1ae2) )
ROM_LOAD32_WORD( "ig-a3_cgh.u26", 0x00000002, 0x2000000, CRC(5b6fbf3f) SHA1(d1f52e230b91ee6cde939d7c2b74da7fd6527e73) )
ROM_REGION( 0x2000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37", 0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
ROM_END
#ifdef OTHER_PGM2_SETS
ROM_START( ddpdojh )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "ddpdoj_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x800000, "user1", 0 )
ROM_LOAD( "ddpdoj_v201cn.u4", 0x00000000, 0x0200000, CRC(89e4b760) SHA1(9fad1309da31d12a413731b416a8bbfdb304ed9e) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "ddpdoj_text.u1", 0x00000000, 0x0200000, CRC(f18141d1) SHA1(a16e0a76bc926a158bb92dfd35aca749c569ef50) )
ROM_REGION( 0x2000000, "bgtile", 0 )
ROM_LOAD32_WORD( "ddpdoj_bgl.u23", 0x00000000, 0x1000000, CRC(ff65fdab) SHA1(abdd5ca43599a2daa722547a999119123dd9bb28) )
ROM_LOAD32_WORD( "ddpdoj_bgh.u24", 0x00000002, 0x1000000, CRC(bb84d2a6) SHA1(a576a729831b5946287fa8f0d923016f43a9bedb) )
ROM_REGION( 0x1000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "ddpdoj_mapl0.u13", 0x00000000, 0x800000, CRC(bcfbb0fc) SHA1(9ec478eba9905913cf997bd9b46c70c1ad383630) )
ROM_LOAD32_WORD( "ddpdoj_maph0.u15", 0x00000002, 0x800000, CRC(0cc75d4e) SHA1(6d1b5ef0fdebf1e84fa199b939ffa07b810b12c9) )
ROM_REGION( 0x2000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "ddpdoj_spa0.u9", 0x00000000, 0x1000000, CRC(1232c1b4) SHA1(ecc1c549ae19d2f052a85fe4a993608aedf49a25) )
ROM_LOAD32_WORD( "ddpdoj_spb0.u18", 0x00000002, 0x1000000, CRC(6a9e2cbf) SHA1(8e0a4ea90f5ef534820303d62f0873f8ac9f080e) )
ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "ddpdoj_wave0.u12", 0x00000000, 0x1000000, CRC(2b71a324) SHA1(f69076cc561f40ca564d804bc7bd455066f8d77c) )
ROM_END
ROM_START( kov3 )
ROM_REGION( 0x04000, "maincpu", 0 )
ROM_LOAD( "kov3_igs036.rom", 0x00000000, 0x0004000, NO_DUMP )
ROM_REGION( 0x800000, "user1", 0 ) /* custom ROM module instead of regular ROMs, this might be incorrect - same module is used on newer gambling boards */
// this was an attempt to read the ROM module directly and could be bad
ROM_LOAD( "kov3_v102cn_direct.bin", 0x00000000, 0x0800000, CRC(2568cca4) SHA1(3f0e949bc0ae5d7ec0109f2748b30024dcd19ac4) )
// this was read with a logic analyser after booting, you can't however replace the module directly with this because some kind of
// additional check / communication with the module is done on startup resulting in the internal ROM refusing to boot it
ROM_LOAD( "kov3_v102cn.bin", 0x00000000, 0x0800000, CRC(1fcedff3) SHA1(522538510c5f94e8b1f641250c25a2a58962ca42) )
ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
ROM_LOAD( "kov3_text.u1", 0x00000000, 0x0200000, CRC(198b52d6) SHA1(e4502abe7ba01053d16c02114f0c88a3f52f6f40) )
ROM_REGION( 0x2000000, "bgtile", 0 )
ROM_LOAD32_WORD( "kov3_bgl.u6", 0x00000000, 0x1000000, CRC(49a4c5bc) SHA1(26b7da91067bda196252520e9b4893361c2fc675) )
ROM_LOAD32_WORD( "kov3_bgh.u7", 0x00000002, 0x1000000, CRC(adc1aff1) SHA1(b10490f0dbef9905cdb064168c529f0b5a2b28b8) )
ROM_REGION( 0x4000000, "spritesa", 0 ) // 1bpp sprite mask data
ROM_LOAD32_WORD( "kov3_mapl0.u15", 0x00000000, 0x2000000, CRC(9e569bf7) SHA1(03d26e000e9d8e744546be9649628d2130f2ec4c) )
ROM_LOAD32_WORD( "kov3_maph0.u16", 0x00000002, 0x2000000, CRC(6f200ad8) SHA1(cd12c136d4f5d424bd7daeeacd5c4127beb3d565) )
ROM_REGION( 0x8000000, "spritesb", 0 ) // sprite colour data
ROM_LOAD32_WORD( "kov3_spa0.u17", 0x00000000, 0x4000000, CRC(3a1e58a9) SHA1(6ba251407c69ee62f7ea0baae91bc133acc70c6f) )
ROM_LOAD32_WORD( "kov3_spb0.u10", 0x00000002, 0x4000000, CRC(90396065) SHA1(01bf9f69d77a792d5b39afbba70fbfa098e194f1) )
ROM_REGION( 0x4000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
ROM_LOAD16_WORD_SWAP( "kov3_wave0.u13", 0x00000000, 0x4000000, CRC(aa639152) SHA1(2314c6bd05524525a31a2a4668a36a938b924ba4) )
ROM_END
#endif
static void iga_u16_decode(UINT16 *rom, int len, int ixor)
{
int i;
@ -307,6 +404,24 @@ DRIVER_INIT_MEMBER(pgm2_state,kov2nl)
iga_u16_decode(src, 0x2000000, 0xb780);
}
DRIVER_INIT_MEMBER(pgm2_state,ddpdojh)
{
UINT16 *src = (UINT16 *)machine().root_device().memregion("spritesa")->base();
iga_u12_decode(src, 0x800000, 0x1e96);
iga_u16_decode(src, 0x800000, 0x869c);
}
DRIVER_INIT_MEMBER(pgm2_state,kov3)
{
UINT16 *src = (UINT16 *)machine().root_device().memregion("spritesa")->base();
iga_u12_decode(src, 0x2000000, 0x956d);
iga_u16_decode(src, 0x2000000, 0x3d17);
}
/* PGM2 */
GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", GAME_IS_SKELETON )
@ -314,3 +429,10 @@ GAME( 2007, orleg2o, orleg2, pgm2, pgm2, pgm2_state, orleg2,
GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", GAME_IS_SKELETON )
GAME( 2008, kov2nlo, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", GAME_IS_SKELETON )
#ifdef OTHER_PGM2_SETS
GAME( 2009, ddpdojh, 0, pgm2, pgm2, pgm2_state, ddpdojh, ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", GAME_IS_SKELETON )
GAME( 2009, kov3, 0, pgm2, pgm2, pgm2_state, kov3, ROT0, "IGS", "Knights of Valour 3 (V102, China)", GAME_IS_SKELETON )
#endif

View File

@ -9168,7 +9168,7 @@ tarzan // (c) 1999?
tarzana // (c) 1999?
starzan // (c) 2000?
// IGS027A Games
// IGS027A Cpu Games
bigd2 // (c) 2000
sdwx // (c) 2002
sddz // (c) 200?
@ -9181,6 +9181,14 @@ chessc2 // (c) 200?
haunthig // (c) 200?
fearless // (c) 2006
// IGS036 Cpu Games
cjdh2 // (c) 200?
cjdh2a // (c) 200?
cjdh2b // (c) 200?
cjdh2c // (c) 200?
cjddzsp // (c) 200?
igsm312 // (c) 200?
// IGS PGM System Games
pgm // Base Unit
orlegend // (c) 1997 Oriental Legend

View File

@ -788,6 +788,7 @@ $(MAMEOBJ)/igs.a: \
$(DRIVERS)/igs011.o \
$(DRIVERS)/igs017.o \
$(DRIVERS)/igs_m027.o \
$(DRIVERS)/igs_m036.o \
$(DRIVERS)/iqblock.o $(VIDEO)/iqblock.o \
$(DRIVERS)/lordgun.o $(VIDEO)/lordgun.o \
$(DRIVERS)/pgm.o $(VIDEO)/pgm.o \