From aa00f6971d376fcc018b55d5afa61b5708bc9ef2 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 19 Jan 2013 18:44:43 +0000 Subject: [PATCH] sync with XingXing (nw) --- .gitattributes | 1 + src/mame/drivers/igs_m036.c | 258 ++++++++++++++++++++++++++++++++++++ src/mame/drivers/pgm2.c | 242 ++++++++++++++++++++++++--------- src/mame/mame.lst | 10 +- src/mame/mame.mak | 1 + 5 files changed, 451 insertions(+), 61 deletions(-) create mode 100644 src/mame/drivers/igs_m036.c diff --git a/.gitattributes b/.gitattributes index c6b09b59d17..e4bb02b9ffd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/src/mame/drivers/igs_m036.c b/src/mame/drivers/igs_m036.c new file mode 100644 index 00000000000..eae6e8673b7 --- /dev/null +++ b/src/mame/drivers/igs_m036.c @@ -0,0 +1,258 @@ +/* IGS Gambling games using IGS036 CPU + pgm2.c also uses this CPU + + +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) + + + +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 ) + diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c index f6a042022c6..9f6a675bd3d 100644 --- a/src/mame/drivers/pgm2.c +++ b/src/mame/drivers/pgm2.c @@ -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 + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d8a066dac9b..4e71c7beb8c 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -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 diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 7ad78c0d2a9..01cfee11ffb 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -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 \