mirror of
https://github.com/holub/mame
synced 2025-04-18 22:49:58 +03:00
New systems marked not working
------------------------------ Chaoji Dou Dizhu (V219CN) / Chaoji Dou Dizhu Jiaqiang Ban (V302CN) [dyq, little0, Guru] Chaoji Dou Dizhu Jiaqiang Ban (S300CN) / unknown second game [little0] New clones marked not working ----------------------------- Chaoji Dou Dizhu (V219CN) / Chaoji Dou Dizhu Jiaqiang Ban (V405CN) [dyq, little0, Guru]
This commit is contained in:
parent
19a2529f56
commit
67a8ba074c
@ -163,6 +163,8 @@ public:
|
||||
void init_gonefsh2() ATTR_COLD;
|
||||
void init_cjddz() ATTR_COLD;
|
||||
void init_cjddzp() ATTR_COLD;
|
||||
void init_cjddzs() ATTR_COLD;
|
||||
void init_cjddzps() ATTR_COLD;
|
||||
void init_cjddzlf() ATTR_COLD;
|
||||
void init_cjtljp() ATTR_COLD;
|
||||
void init_zhongguo() ATTR_COLD;
|
||||
@ -3047,6 +3049,127 @@ ROM_START( cjddzp )
|
||||
ROM_LOAD( "cjddzp_sp-1.u4", 0x00000, 0x200000, CRC(7ef65d95) SHA1(345c587cd449d6d06908e9687480be76b2cb2d28) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Chaoji Dou Dizhu (V302CN) (hard version)
|
||||
IGS, 2007
|
||||
|
||||
PCB: IGS PCB-0489-07-FM-1
|
||||
|
||||
Main program is on a plug-in daughterboard containing one 27C322 EPROM, Lattice LC4128V CPLD,
|
||||
3.3V regulator and a 2-position DIP switch.
|
||||
DIP#1 off sets V219CN. DIP#1 on sets V302CN
|
||||
|
||||
IGS027 Sticker: B1
|
||||
ROM String: WED NOV 3 17:21:49 2004
|
||||
FIGHT_213CN
|
||||
|
||||
Oki Clock (from PAL): 1.000MHz [22/22]
|
||||
Oki Pin 7: High
|
||||
*/
|
||||
|
||||
ROM_START( cjddzs )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "b1_igs027a", 0x00000, 0x4000, CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
|
||||
|
||||
ROM_REGION32_LE( 0x100000, "user1", 0 ) // external ARM data / prg
|
||||
// this has 2 programs, each repeated 4 times (cjddz at 0x000000, 0x080000, 0x200000, 0x280000, cjddzp at the remaining offsets).
|
||||
// cjddz works correctly with the internal ROM, once a small address line swap is applied. cjddzp doesn't work.
|
||||
// it is tested on PCB that regardless of DIP setting the same internal ROM string appears, when the external ROM is removed, so there
|
||||
// must be some kind of additional work done by the CPLD to make cjddzp work.
|
||||
ROM_LOAD( "v-302cn.u1", 0x000000, 0x080000, CRC(fc525368) SHA1(293a0b30b384b2f294ab7d9dbaafc899002c7a32) ) // BADADDR -x-xxxxxxxxxxxxxxxxxxx
|
||||
ROM_IGNORE( 0x080000 )
|
||||
ROM_CONTINUE( 0x080000, 0x080000 )
|
||||
ROM_IGNORE( 0x280000 )
|
||||
|
||||
ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "text.u27", 0x000000, 0x80000, CRC(520dc392) SHA1(0ab2620f20af8253806b6ff4e1d9d77a694da17c) )
|
||||
|
||||
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "ani_cg.u28", 0x000000, 0x400000, CRC(72487508) SHA1(9f4bbc858960ddaae403e4a3330b2345f6fd6cb3) )
|
||||
|
||||
// OKI, sample tables are every 0x20000 starting at 0x40000
|
||||
// 00000-1ffff and 20000-3ffff are likely music, always mapped at 20000 for any of the above banks
|
||||
ROM_REGION( 0x200000, "oki", 0 )
|
||||
ROM_LOAD( "sp-1.u5", 0x00000, 0x200000, CRC(7ef65d95) SHA1(345c587cd449d6d06908e9687480be76b2cb2d28) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Chaoji Dou Dizhu (V219GN) (hard version)
|
||||
IGS, 2009
|
||||
|
||||
PCB: IGS PCB-0489-03-FM-1
|
||||
|
||||
Main program is on a plug-in daughterboard containing one 27C322 EPROM, Lattice LC4128V CPLD,
|
||||
3.3V regulator and a 2-position DIP switch.
|
||||
DIP#1 off sets V219CN. DIP#1 on sets V405CN
|
||||
|
||||
IGS027 Sticker: not present
|
||||
ROM String: WED NOV 3 17:21:49 2004
|
||||
FIGHT_213CN
|
||||
|
||||
Oki Clock (from PAL): 1.000MHz [22/22]
|
||||
Oki Pin 7: High
|
||||
*/
|
||||
|
||||
ROM_START( cjddzsa )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "igs027a", 0x00000, 0x4000, CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
|
||||
|
||||
ROM_REGION32_LE( 0x100000, "user1", 0 ) // external ARM data / prg
|
||||
// this has 2 programs, each repeated 2 times (cjddz at 0x200000, 0x300000, cjddzp at 0x280000, 0x380000). First 0x200000 are 0xff filled.
|
||||
// cjddz works correctly with the internal ROM, once a small address line swap is applied. cjddzp doesn't work.
|
||||
// it is tested on PCB that regardless of DIP setting the same internal ROM string appears, when the external ROM is removed, so there
|
||||
// must be some kind of additional work done by the CPLD to make cjddzp work.
|
||||
ROM_LOAD( "v-219gn.u1", 0x000000, 0x080000, CRC(33ded435) SHA1(ed9911b4d3ab4a0924faf02e0090c24ff83a0d45) ) // 0xxxxxxxxxxxxxxxxxxxxx = 0xFF
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x100000 )
|
||||
ROM_IGNORE( 0x100000 )
|
||||
|
||||
ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "text.u27", 0x000000, 0x80000, CRC(520dc392) SHA1(0ab2620f20af8253806b6ff4e1d9d77a694da17c) )
|
||||
|
||||
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "ani_cg.u28", 0x000000, 0x400000, CRC(72487508) SHA1(9f4bbc858960ddaae403e4a3330b2345f6fd6cb3) )
|
||||
|
||||
// OKI, sample tables are every 0x20000 starting at 0x40000
|
||||
// 00000-1ffff and 20000-3ffff are likely music, always mapped at 20000 for any of the above banks
|
||||
ROM_REGION( 0x200000, "oki", 0 )
|
||||
ROM_LOAD( "sp-1.u5", 0x00000, 0x200000, CRC(64fbba95) SHA1(1aecb1b8426939262688e4dbed09d6a56e71b8d5) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cjddzps )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
// Internal ROM of IGS027A ARM based MCU
|
||||
ROM_LOAD( "igs027a", 0x00000, 0x4000, CRC(6cf26c3d) SHA1(c74d4ff71ff07c38449242e7e067e956a5c441be) )
|
||||
|
||||
ROM_REGION32_LE( 0x100000, "user1", 0 ) // external ARM data / prg
|
||||
// this has 2 programs, (cjddzp at 0x200000, an unknown one at 0x280000). First 0x200000 and last 0x100000 are 0xff filled.
|
||||
// cjddzp works correctly with the internal ROM, once a small address line swap is applied. the other game doesn't work.
|
||||
// it's unknown which game it is, since the PCB doesn't work, but given the GFX and sound ROMs match, it should be some variation of cjddz/cjddzp
|
||||
ROM_LOAD( "rom.u1", 0x000000, 0x080000, CRC(969f7d09) SHA1(6e5eab99d0ab7913d6838e5c357813960640cc14) ) // 01xxxxxxxxxxxxxxxxxxxx = 0xFF
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x080000 )
|
||||
ROM_CONTINUE( 0x000000, 0x100000 )
|
||||
ROM_IGNORE( 0x100000 )
|
||||
|
||||
ROM_REGION( 0x200000, "igs017_igs031:tilemaps", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "rom.u27", 0x000000, 0x200000, CRC(c4daedd6) SHA1(1c06e9b8f8c9849d808e12d81588f8d5603941d1) ) // 1xxxxxxxxxxxxxxxxxxxx = 0x00
|
||||
|
||||
ROM_REGION( 0x600000, "igs017_igs031:sprites", 0 )
|
||||
ROM_LOAD( "rom.u26", 0x000000, 0x400000, CRC(72487508) SHA1(9f4bbc858960ddaae403e4a3330b2345f6fd6cb3) )
|
||||
ROM_LOAD( "rom.u29", 0x400000, 0x200000, CRC(b0447269) SHA1(bf639abc135b52781340a24820e402db497d8d09) )
|
||||
|
||||
// OKI, sample tables are every 0x20000 starting at 0x40000
|
||||
// 00000-1ffff and 20000-3ffff are likely music, always mapped at 20000 for any of the above banks
|
||||
ROM_REGION( 0x200000, "oki", 0 )
|
||||
ROM_LOAD( "rom.u11", 0x00000, 0x200000, CRC(7ef65d95) SHA1(345c587cd449d6d06908e9687480be76b2cb2d28) )
|
||||
ROM_END
|
||||
|
||||
// 超级斗地主 两副牌 (Chāojí Dòu Dìzhǔ Liǎng Fù Pái)
|
||||
ROM_START( cjddzlf )
|
||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||
@ -3315,6 +3438,40 @@ void igs_m027_state::init_cjddzp()
|
||||
m_igs017_igs031->tarzan_decrypt_sprites(0x400000, 0x400000);
|
||||
}
|
||||
|
||||
void igs_m027_state::init_cjddzs()
|
||||
{
|
||||
// extra scrambling applied by CPLD?
|
||||
uint8_t *rom = memregion("user1")->base();
|
||||
std::vector<uint8_t> buffer(0x100000);
|
||||
|
||||
memcpy(&buffer[0], rom, 0x100000);
|
||||
|
||||
for (int i = 0; i < 0x100000; i++)
|
||||
rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 11, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
|
||||
|
||||
// the second program seems to also have additional address based XORs
|
||||
// TODO
|
||||
|
||||
init_cjddz();
|
||||
}
|
||||
|
||||
void igs_m027_state::init_cjddzps()
|
||||
{
|
||||
// extra scrambling applied by CPLD?
|
||||
uint8_t *rom = memregion("user1")->base();
|
||||
std::vector<uint8_t> buffer(0x100000);
|
||||
|
||||
memcpy(&buffer[0], rom, 0x100000);
|
||||
|
||||
for (int i = 0; i < 0x100000; i++)
|
||||
rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 11, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)];
|
||||
|
||||
// the second program seems to also have additional address based XORs
|
||||
// TODO
|
||||
|
||||
init_cjddzp();
|
||||
}
|
||||
|
||||
void igs_m027_state::init_cjddzlf()
|
||||
{
|
||||
cjddzlf_decrypt(machine());
|
||||
@ -3512,6 +3669,11 @@ GAME( 2001, extradrw, 0, extradrw, base, igs_m027_stat
|
||||
// these have an IGS025 protection device instead of the 8255
|
||||
GAME( 2002, chessc2, 0, chessc2, chessc2, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II (ver. 1445A)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
|
||||
|
||||
// these can select between two different games via DIP switch (currently unemulated feature)
|
||||
GAME( 2007, cjddzs, 0, cjddz, cjddz, igs_m027_state, init_cjddzs, ROT0, "IGS", "Chaoji Dou Dizhu (V219CN) / Chaoji Dou Dizhu Jiaqiang Ban (V302CN)", MACHINE_NOT_WORKING )
|
||||
GAME( 2009, cjddzsa, cjddzs, cjddz, cjddz, igs_m027_state, init_cjddzs, ROT0, "IGS", "Chaoji Dou Dizhu (V219CN) / Chaoji Dou Dizhu Jiaqiang Ban (V405CN)", MACHINE_NOT_WORKING )
|
||||
GAME( 200?, cjddzps, 0, cjddz, cjddzp, igs_m027_state, init_cjddzps, ROT0, "IGS", "Chaoji Dou Dizhu Jiaqiang Ban (S300CN) / unknown second set", MACHINE_NOT_WORKING )
|
||||
|
||||
// Incomplete dumps
|
||||
GAME( 1999, amazonia, 0, m027_1ppi<false>, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King (V104BR)", MACHINE_NOT_WORKING )
|
||||
GAME( 1999, amazonkp, amazonia, m027_1ppi<false>, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King Plus (V204BR)", MACHINE_NOT_WORKING )
|
||||
|
@ -20544,6 +20544,9 @@ cjddz215cn
|
||||
cjddz217cn
|
||||
cjddzlf
|
||||
cjddzp
|
||||
cjddzps
|
||||
cjddzs
|
||||
cjddzsa
|
||||
cjtljp
|
||||
extradrw
|
||||
fruitpar
|
||||
|
@ -11,6 +11,7 @@ square 208-pin chip, marked VGAME-008 (probably video chip)
|
||||
LY62256SL SRAM (near VGAME-007)
|
||||
2x LY61L256JL SRAM (near VGAME-008)
|
||||
U6295 sound chip
|
||||
93C66 EEPROM
|
||||
2 banks of 8 DIP switches
|
||||
|
||||
TODO: everything. CPU core is only tentatively identified and code is encrypted. Possibly internal ROM?
|
||||
@ -20,6 +21,7 @@ TODO: everything. CPU core is only tentatively identified and code is encrypted.
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/arm7/arm7.h"
|
||||
#include "machine/eepromser.h"
|
||||
#include "sound/okim6295.h"
|
||||
|
||||
#include "emupal.h"
|
||||
|
Loading…
Reference in New Issue
Block a user