From b3c6dfc93fb34d028ac1b625fa721eab29720f2c Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 17 Mar 2025 18:13:22 +0100 Subject: [PATCH] - igs/igs_m027_033vid.cpp: fixed bitplane order in decode. Fixes colors [David Haywood] - igs/spoker.cpp: fixed bitplane order in jinhulu2's decode. Fixes colors [David Haywood] New working clones ------------------ Xingyun Man Guan (China, V651C, set 2) [little0] New systems marked not working ------------------------------ Chaoji Daheng 6th (v100FI) [little0] Chao Ji Laizi Dou Dizhu (V109CN) [little0] New clones marked not working ----------------------------- Jin Hu Lu 2 (v101IS) [little0] --- src/mame/igs/igs011.cpp | 71 ++++++++++++++++++++++++-- src/mame/igs/igs_m027_033vid.cpp | 6 +-- src/mame/igs/spoker.cpp | 88 +++++++++++++++++++++++--------- src/mame/mame.lst | 4 ++ src/mame/skeleton/vgame.cpp | 24 +++++++-- 5 files changed, 157 insertions(+), 36 deletions(-) diff --git a/src/mame/igs/igs011.cpp b/src/mame/igs/igs011.cpp index 477510e5931..4a30925c42a 100644 --- a/src/mame/igs/igs011.cpp +++ b/src/mame/igs/igs011.cpp @@ -126,6 +126,7 @@ public: void init_drgnwrldv11h() ATTR_COLD; void init_lhb2() ATTR_COLD; void init_xymg() ATTR_COLD; + void init_xymga() ATTR_COLD; void init_drgnwrldv10c() ATTR_COLD; void init_drgnwrldv20j() ATTR_COLD; void init_drgnwrldv40k() ATTR_COLD; @@ -137,6 +138,7 @@ public: void tygn(machine_config &config) ATTR_COLD; void wlcc(machine_config &config) ATTR_COLD; void xymg(machine_config &config) ATTR_COLD; + void xymga(machine_config &config) ATTR_COLD; void lhb2(machine_config &config) ATTR_COLD; void lhb(machine_config &config) ATTR_COLD; void drgnwrld_igs012(machine_config &config) ATTR_COLD; @@ -283,7 +285,9 @@ protected: void nkishusp_mem(address_map &map) ATTR_COLD; void tygn_mem(address_map &map) ATTR_COLD; void wlcc_mem(address_map &map) ATTR_COLD; + void xymg_base_mem(address_map &map) ATTR_COLD; void xymg_mem(address_map &map) ATTR_COLD; + void xymga_mem(address_map &map) ATTR_COLD; }; // With trackball inputs @@ -2451,6 +2455,28 @@ void igs011_state::init_xymg() */ } +void igs011_state::init_xymga() +{ + u16 *src = (u16 *) m_maincpu_region->base(); + const int rom_size = 0x80000; + + for (int i = 0; i < rom_size / 2; i++) + { + u16 x = src[i]; + + if ((i & 0x2300) == 0x2100 || ((i & 0x2000) == 0x0000 && ((i & 0x0300) != 0x0200) && ((i & 0x0300) != 0x0100))) + x ^= 0x0200; + + if (!(i & 0x0004) || !(i & 0x2000) || (!(i & 0x0080) && !(i & 0x0010))) + x ^= 0x0020; + + if ((i & 0x0100) || (i & 0x0040) || ((i & 0x0010) && (i & 0x0002))) + x ^= 0x0004; + + src[i] = x; + } +} + void igs011_state::init_wlcc() { // u16 *rom = (u16 *) m_maincpu_region->base(); @@ -2732,7 +2758,7 @@ void igs011_state::lhb_mem(address_map &map) map(0x888000, 0x888001).r(FUNC(igs011_state::dips_r<5>)); } -void igs011_state::xymg_mem(address_map &map) +void igs011_state::xymg_base_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); @@ -2754,8 +2780,6 @@ void igs011_state::xymg_mem(address_map &map) map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); - map(0x700000, 0x700001).w(FUNC(igs011_state::igs003_w)); - map(0x700002, 0x700003).rw(FUNC(igs011_state::xymg_igs003_r), FUNC(igs011_state::xymg_igs003_w)); map(0x820000, 0x820001).w(FUNC(igs011_state::igs011_priority_w)); map(0x840000, 0x840001).w(FUNC(igs011_state::dips_w)); @@ -2774,6 +2798,23 @@ void igs011_state::xymg_mem(address_map &map) map(0x888000, 0x888001).r(FUNC(igs011_state::dips_r<3>)); } +void igs011_state::xymg_mem(address_map &map) +{ + xymg_base_mem(map); + + map(0x700000, 0x700001).w(FUNC(igs011_state::igs003_w)); + map(0x700002, 0x700003).rw(FUNC(igs011_state::xymg_igs003_r), FUNC(igs011_state::xymg_igs003_w)); +} + +void igs011_state::xymga_mem(address_map &map) +{ + xymg_base_mem(map); + + map(0x700000, 0x700001).portr("COIN"); + map(0x700002, 0x700005).r(FUNC(igs011_state::lhb_inputs_r)); + map(0x700002, 0x700003).w(FUNC(igs011_state::lhb_inputs_w)); +} + void igs011_state::wlcc_mem(address_map &map) { // wlcc: IGS011 protection dynamically mapped at 834x @@ -4129,6 +4170,13 @@ void igs011_state::xymg(machine_config &config) } +void igs011_state::xymga(machine_config &config) +{ + xymg(config); + m_maincpu->set_addrmap(AS_PROGRAM, &igs011_state::xymga_mem); +} + + void igs011_state::lhb2(machine_config &config) { igs011_base(config); @@ -4963,6 +5011,20 @@ ROM_START( xymg ) ROM_CONTINUE( 0x00000, 0x80000 ) // 1ST+2ND IDENTICAL ROM_END +// this is very similar to the ryukobou PCB type. Below the Oki there's an empty space for an IGS003. Only SW1 and SW2 are populated. +ROM_START( xymga ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "rom.u30", 0x000000, 0x80000, CRC(ecc871fb) SHA1(b5a0e5ef9e6097548c5b26a4638b8618900a37ff) ) + + ROM_REGION( 0x280000, "blitter", 0 ) + ROM_LOAD( "rom.u15", 0x000000, 0x200000, CRC(ec54452c) SHA1(0ee7ffa3d4845af083944e64faf5a1c78247aaa2) ) + ROM_LOAD( "igs_0203.u8", 0x200000, 0x080000, BAD_DUMP CRC(56a2706f) SHA1(98bf4b3153eef53dd449e2538b4b7ff2cc2fe6fa) ) // not dumped yet, using the one for xymg for now + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "igs_s0202.u39", 0x000000, 0x80000, CRC(106ac5f7) SHA1(5796a880c3424e3d2251b2223a0e594957afecaf) ) // same as xymg, only without 1st and 2nd half identical +ROM_END + + } // anonymous namespace @@ -4987,7 +5049,8 @@ GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, i GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, init_ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, init_lhb2, ROT0, "IGS", "Lung Fu Bong II (Hong Kong, V185H)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, tygn, lhb2, tygn, tygn, igs011_state, init_tygn, ROT0, "IGS", "Te Yi Gong Neng (China, V632C)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // needs correct IGS003 routines -GAME( 1996, xymg, 0, xymg, xymg, igs011_state, init_xymg, ROT0, "IGS", "Xingyun Man Guan (China, V651C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xymg, 0, xymg, xymg, igs011_state, init_xymg, ROT0, "IGS", "Xingyun Man Guan (China, V651C, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xymga, xymg, xymga, xymg, igs011_state, init_xymga, ROT0, "IGS", "Xingyun Man Guan (China, V651C, set 2)", MACHINE_SUPPORTS_SAVE ) // different encryption and without IGS003 GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, init_wlcc, ROT0, "IGS", "Wanli Changcheng (China, V638C)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, vbowl, 0, vbowl, vbowl, vbowl_state, init_vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, vbowl_state, init_vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/igs/igs_m027_033vid.cpp b/src/mame/igs/igs_m027_033vid.cpp index 1f3f4f2aabc..5f1d879edcb 100644 --- a/src/mame/igs/igs_m027_033vid.cpp +++ b/src/mame/igs/igs_m027_033vid.cpp @@ -17,8 +17,6 @@ TODO: - IGS 033 appears to encapsulate the behavior of the video/interface chip found in igspoker.cpp so could be turned into a device, possibly shared - complete inputs / outputs / hopper - - colors are wrong if cards are used (enter Test Mode, press Hold 3, enter pw, press Start, - press Hold 3, change 4th setting in the right column, press Bet, press Start) */ #include "emu.h" @@ -314,7 +312,7 @@ static const gfx_layout tiles8x8x4_layout = 8, 8, RGN_FRAC(1,1), 4, - { 24,16,8,0 }, + { 24, 8, 16, 0 }, { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, 32*8 @@ -435,4 +433,4 @@ void igs_m027_033vid_state::init_qiji6() ***************************************************************************/ // internal ROM date is 2002, external software revision could be later -GAME( 2002, qiji6, 0, m027_033vid, qiji6, igs_m027_033vid_state, init_qiji6, ROT0, "IGS", "Qiji 6 (V118CN)", MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING ) // lacks hopper support +GAME( 2002, qiji6, 0, m027_033vid, qiji6, igs_m027_033vid_state, init_qiji6, ROT0, "IGS", "Qiji 6 (V118CN)", MACHINE_NOT_WORKING ) // lacks hopper support diff --git a/src/mame/igs/spoker.cpp b/src/mame/igs/spoker.cpp index e2cda59e662..240b29827e1 100644 --- a/src/mame/igs/spoker.cpp +++ b/src/mame/igs/spoker.cpp @@ -29,10 +29,10 @@ - Verify LEDs and coin counters (should be ok) - 3super8 randomly crashes - 3super8 doesn't have the 8x32 tilemap, change the video emulation accordingly - - jinhulu2 stops at "system is connecting". Some type of link feature? - - jinhulu2 has wrong colors and machine translated DIP definitions which - could use improving. Inputs in the "SERVICE" port seem to register two different - buttons + - jinhulu2 and jinhulu2101is stop at "system is connecting". + Some type of link feature? + - jinhulu2120gi has machine translated DIP definitions which could use improving. + Inputs in the "SERVICE" port seem to register two different buttons. ***************************************************************************/ @@ -173,6 +173,7 @@ public: void init_jinhulu2() ATTR_COLD; void init_jinhulu2120gi() ATTR_COLD; + void init_jinhulu2101is() ATTR_COLD; protected: virtual void machine_start() override ATTR_COLD; @@ -1462,7 +1463,7 @@ static const gfx_layout layout_8x8x4 = 8, 8, RGN_FRAC(1, 1), 4, - { 0, 8, 16, 24 }, + { 24, 8, 16, 0 }, { STEP8(0, 1) }, { STEP8(0, 8*4) }, 8*8*4 @@ -2037,6 +2038,30 @@ ROM_START( jinhulu2120gi ) ROM_LOAD( "sp.u12", 0x00000, 0x20000, CRC(1aeb078c) SHA1(9b8a256f51e66733c4ec30b451ca0711ed02318e) ) // same as jinhulu2 ROM_END +ROM_START( jinhulu2101is ) // this sports an IGS033 instead of the IGS001/002 combo + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rom.u15", 0x00000, 0x10000, CRC(5fccf97f) SHA1(71f4c58baf1461b4c1a24d718ad372cb5dcdf970) ) + + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "t3101.u9", 0x00000, 0x40000, BAD_DUMP CRC(b933ec01) SHA1(72b541579551114f7c8649c2e9a839ef4128fc14) ) // not dumped yet, using the one for jinhulu2 for now + ROM_IGNORE( 0x40000 ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "rom.u16", 0x00000, 0x20000, CRC(1aeb078c) SHA1(9b8a256f51e66733c4ec30b451ca0711ed02318e) ) // same as jinhulu2 +ROM_END + +ROM_START( cjdh6 ) // this, too, sports an IGS033 instead of the IGS001/002 combo + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rom.u15", 0x00000, 0x10000, CRC(318489c3) SHA1(c00f5f16308da5a813045c319bec8e275155642d) ) + + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "t3101.u9", 0x00000, 0x40000, BAD_DUMP CRC(b933ec01) SHA1(72b541579551114f7c8649c2e9a839ef4128fc14) ) // not dumped yet, using the one for jinhulu2 for now + ROM_IGNORE( 0x40000 ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "rom.u16", 0x00000, 0x20000, CRC(1aeb078c) SHA1(9b8a256f51e66733c4ec30b451ca0711ed02318e) ) // same as jinhulu2 +ROM_END + /*************************************************************************** Driver Init ***************************************************************************/ @@ -2091,6 +2116,17 @@ void jinhulu2_state::init_jinhulu2120gi() if ((a & 0x0280) == 0x0200) rom[a] ^= 0x40; } +void jinhulu2_state::init_jinhulu2101is() +{ + init_jinhulu2(); + + uint8_t *rom = memregion("maincpu")->base(); + + // extra layer + for (int a = 0; a < 0xf000; a++) + if ((a & 0x0220) == 0x0200) rom[a] ^= 0x40; +} + void spoker_state::init_spk116it() { uint8_t *rom = memregion("maincpu")->base(); @@ -2186,23 +2222,25 @@ void spoker_state::init_3super8() Game Drivers ***************************************************************************/ -// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS -GAME( 1996, spk306us, 0, spokeru, spoker, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v306US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk205us, spk306us, spokeru, spoker, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v205US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk203us, spk306us, spokeru, spk203us, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v203US)", MACHINE_SUPPORTS_SAVE ) // LS1. 8 203US in test mode -GAME( 1996, spk201ua, spk306us, spokeru, spk201ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v201UA)", MACHINE_SUPPORTS_SAVE ) // still shows 200UA in test mode -GAME( 1996, spk200ua, spk306us, spokeru, spk200ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v200UA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk200, spk306us, spoker, spk100, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v200)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk130, spk306us, spoker, spk130, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v130)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk120in, spk306us, spoker, spoker, spoker_state, init_spk120in, ROT0, "IGS", "Super Poker (v120IN)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk116it, spk306us, spoker, spoker, spoker_state, init_spk116it, ROT0, "IGS", "Super Poker (v116IT)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk116itmx, spk306us, spoker, spoker, spoker_state, init_spk114it, ROT0, "IGS", "Super Poker (v116IT-MX)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk115it, spk306us, spoker, spoker, spoker_state, init_spk116it, ROT0, "IGS", "Super Poker (v115IT)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk114it, spk306us, spoker, spk114it, spoker_state, init_spk114it, ROT0, "IGS", "Super Poker (v114IT)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk102ua, spk306us, spokeru, spk102ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v102UA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk102u, spk306us, spoker, spk102ua, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v102U)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spk100, spk306us, spoker, spk100, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v100)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993?, 3super8, 0, _3super8, 3super8, spoker_state, init_3super8, ROT0, "", "3 Super 8 (Italy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROMs are badly dumped -GAME( 1997, jbell, 0, jb, jb, jb_state, init_spokeru, ROT0, "IGS", "Jingle Bell (v200US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, jinhulu2, 0, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2, ROT0, "IGS", "Jin Hu Lu 2 (v412GS)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // tries to link to something? -GAME( 1995, jinhulu2120gi, jinhulu2, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2120gi, ROT0, "IGS", "Jin Hu Lu 2 (v120GI)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // inputs +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1996, spk306us, 0, spokeru, spoker, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v306US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk205us, spk306us, spokeru, spoker, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v205US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk203us, spk306us, spokeru, spk203us, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v203US)", MACHINE_SUPPORTS_SAVE ) // LS1. 8 203US in test mode +GAME( 1996, spk201ua, spk306us, spokeru, spk201ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v201UA)", MACHINE_SUPPORTS_SAVE ) // still shows 200UA in test mode +GAME( 1996, spk200ua, spk306us, spokeru, spk200ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v200UA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk200, spk306us, spoker, spk100, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v200)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk130, spk306us, spoker, spk130, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v130)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk120in, spk306us, spoker, spoker, spoker_state, init_spk120in, ROT0, "IGS", "Super Poker (v120IN)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk116it, spk306us, spoker, spoker, spoker_state, init_spk116it, ROT0, "IGS", "Super Poker (v116IT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk116itmx, spk306us, spoker, spoker, spoker_state, init_spk114it, ROT0, "IGS", "Super Poker (v116IT-MX)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk115it, spk306us, spoker, spoker, spoker_state, init_spk116it, ROT0, "IGS", "Super Poker (v115IT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk114it, spk306us, spoker, spk114it, spoker_state, init_spk114it, ROT0, "IGS", "Super Poker (v114IT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk102ua, spk306us, spokeru, spk102ua, spokeru_state, init_spokeru, ROT0, "IGS", "Super Poker (v102UA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk102u, spk306us, spoker, spk102ua, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v102U)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spk100, spk306us, spoker, spk100, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v100)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993?, 3super8, 0, _3super8, 3super8, spoker_state, init_3super8, ROT0, "", "3 Super 8 (Italy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROMs are badly dumped +GAME( 1997, jbell, 0, jb, jb, jb_state, init_spokeru, ROT0, "IGS", "Jingle Bell (v200US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, jinhulu2, 0, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2, ROT0, "IGS", "Jin Hu Lu 2 (v412GS)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // tries to link to something? +GAME( 1995, jinhulu2120gi, jinhulu2, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2120gi, ROT0, "IGS", "Jin Hu Lu 2 (v120GI)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // inputs +GAME( 1996, jinhulu2101is, jinhulu2, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2101is, ROT0, "IGS", "Jin Hu Lu 2 (v101IS)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // tries to link to something? +GAME( 2001, cjdh6, 0, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2120gi, ROT0, "IGS", "Chaoji Daheng 6th (v100FI)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // no GFX ROM dump, inputs diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 6ba1b018354..50343c21f8e 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -20498,6 +20498,7 @@ vbowlhk vbowlj wlcc xymg +xymga @source:igs/igs017.cpp cpoker2 @@ -20855,8 +20856,10 @@ kov3hd101 @source:igs/spoker.cpp 3super8 +cjdh6 jbell jinhulu2 +jinhulu2101is jinhulu2120gi spk100 spk102u @@ -43259,6 +43262,7 @@ venteta @source:skeleton/vgame.cpp cjdn +cjlddz cjsjh hilice mjxy2 diff --git a/src/mame/skeleton/vgame.cpp b/src/mame/skeleton/vgame.cpp index fab8cde244d..5065f7cb1b8 100644 --- a/src/mame/skeleton/vgame.cpp +++ b/src/mame/skeleton/vgame.cpp @@ -168,6 +168,8 @@ ROM_START( mjxy2 ) ROM_REGION( 0x200000, "oki", 0 ) ROM_LOAD( "u43_sp_v105.u43", 0x000000, 0x200000, CRC(5d1ab8f1) SHA1(56473b632dfdb210208ce3b35cb6861f07861cd7) ) + + // EEPROM dump for mjxy2 was 0xff filled ROM_END /* @@ -274,13 +276,28 @@ ROM_START( cjsjh ) // Nov 2 2007 16:05:26 string in ROM ROM_LOAD( "vxxxcn.u8", 0x000000, 0x200000, CRC(911d8dce) SHA1(1d9386c4a9e118d02b5b29f9e9ce90ef1d6f419f) ) // label not readable ROM_REGION( 0x400000, "gfx", 0 ) - ROM_LOAD( "gfx.u2", 0x000000, 0x400000, CRC(e2964db3) SHA1(21e021c88136083445b430c618a8eb74e2147d4f ) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + ROM_LOAD( "gfx.u2", 0x000000, 0x400000, CRC(e2964db3) SHA1(21e021c88136083445b430c618a8eb74e2147d4f) ) // FIXED BITS (xxxxxxxx0xxxxxxx) ROM_REGION( 0x200000, "oki", 0 ) ROM_LOAD( "sp.u24", 0x000000, 0x200000, CRC(ad11c8b9) SHA1(0547a57ff2183e65fa1d51234799a3d521b018c5) ) - ROM_REGION( 0x200, "eeprom", 0 ) - ROM_LOAD( "cjsjh_93c66a.u11", 0x000, 0x200, CRC(cbaeab4f) SHA1(505d91ee1b0d219aa55e3262b3bf712c4d9c2408) ) + ROM_REGION16_BE( 0x200, "eeprom", 0 ) + ROM_LOAD16_WORD_SWAP( "cjsjh_93c66a.u11", 0x000, 0x200, CRC(cbaeab4f) SHA1(505d91ee1b0d219aa55e3262b3bf712c4d9c2408) ) +ROM_END + +ROM_START( cjlddz ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD( "u12.u12", 0x000000, 0x200000, CRC(b35ff3cb) SHA1(fe1fa4448153a449f28b776ef452be860d119e7b) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROM_LOAD16_BYTE( "u2_cg_v101.u2", 0x000000, 0x400000, CRC(37eec9f9) SHA1(c0fcce6ccf28583920eae2558133a5ba2e1fb68b) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + ROM_LOAD16_BYTE( "u8_cg_v101.u8", 0x000001, 0x400000, CRC(eb3ccdf1) SHA1(f0420f967d4decda3643975205eacdb8c0536bef) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + + ROM_REGION( 0x200000, "oki", 0 ) + ROM_LOAD( "u43_sp_v100.u43", 0x000000, 0x200000, CRC(ec57f98b) SHA1(ada7e8248d6d9fbd3b3b5caaad45ea814f09edd6) ) + + ROM_REGION16_BE( 0x200, "eeprom", 0 ) + ROM_LOAD16_WORD_SWAP( "cjlddz_93c66a.u13", 0x000, 0x200, CRC(3930b2ff) SHA1(69e1e7b8654ff3696ab7f210fa69a5aed9cb59fb) ) ROM_END @@ -321,3 +338,4 @@ GAME( 200?, hilice, 0, vgame, hilice, vgame_state, init_vgame, ROT0, "VGame", " GAME( 200?, mjxy2, 0, vgame, hilice, vgame_state, init_vgame, ROT0, "VGame", "Majiang Xueyuan 2 - Mahjong School (V108TW)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 2008, cjdn, 0, vgame, hilice, vgame_state, init_vgame, ROT0, "VGame", "Chao Ji Dou Niu (V305CN)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 2007, cjsjh, 0, vgame, hilice, vgame_state, init_vgame, ROT0, "VGame", "Chao Ji Sai Jin Hua (V201CN)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 200?, cjlddz, 0, vgame, hilice, vgame_state, init_vgame, ROT0, "VGame", "Chao Ji Laizi Dou Dizhu (V109CN)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )