mirror of
https://github.com/holub/mame
synced 2025-06-03 19:36:26 +03:00
igs/igs_m027_link.cpp: renamed Manguan Caishen to Manguan Caishen 2, notes on how to get it to show the wait link screen
This commit is contained in:
parent
3a817b47da
commit
bdb08793f9
@ -5,12 +5,16 @@
|
|||||||
IGS ARM7 (IGS027A) based mahjong / gambling platform(s) with link support
|
IGS ARM7 (IGS027A) based mahjong / gambling platform(s) with link support
|
||||||
Keeping them separate from igs_m027.cpp and igs017.cpp for now.
|
Keeping them separate from igs_m027.cpp and igs017.cpp for now.
|
||||||
|
|
||||||
NOTE: linking between mgcsh and mgcsl has been verified on real hw, while linking
|
NOTE: linking between mgcs2h and mgcs2l has been verified on real hw, while linking
|
||||||
between cjslh and cjsll doesn't work on real hw for some reason.
|
between cjslh and cjsll doesn't work on real hw for some reason.
|
||||||
|
|
||||||
|
The two dumped extension games are really similar to mgdh in igs017.cpp code-wise,
|
||||||
|
you can get them to the wait link screen just by implementing the mgdh's IGS MUX
|
||||||
|
stuff.
|
||||||
|
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
|
|
||||||
Manguan Caishen, HOST PCB (IGS 1999)
|
Manguan Caishen 2, HOST PCB (IGS 1999)
|
||||||
Cai Jin Shen Long, HOST PCB (IGS 1999)
|
Cai Jin Shen Long, HOST PCB (IGS 1999)
|
||||||
|
|
||||||
These boards are housed in a metal box.
|
These boards are housed in a metal box.
|
||||||
@ -30,7 +34,7 @@ The PCB has a 62-way connector on it but it not accessible to the outside of the
|
|||||||
PCB Layout
|
PCB Layout
|
||||||
----------
|
----------
|
||||||
|
|
||||||
IGS PCB 0219-04 (Manguan Caishen, HOST)
|
IGS PCB 0219-04 (Manguan Caishen 2, HOST)
|
||||||
IGS PCB 0219-1 (Cai Jin Shen Long, HOST)
|
IGS PCB 0219-1 (Cai Jin Shen Long, HOST)
|
||||||
|------------------------------------------------------------------|
|
|------------------------------------------------------------------|
|
||||||
|DIN5 DB9 DB25 |
|
|DIN5 DB9 DB25 |
|
||||||
@ -53,7 +57,7 @@ IGS PCB 0219-1 (Cai Jin Shen Long, HOST)
|
|||||||
|---------------------------------------| |-----------------| |----|
|
|---------------------------------------| |-----------------| |----|
|
||||||
Notes:
|
Notes:
|
||||||
* - On Cai Jin Shen Long, the V3021 and 32.768kHz crystal are replaced with a ST M48T08 NVRAM (the battery is dead and holds no data).
|
* - On Cai Jin Shen Long, the V3021 and 32.768kHz crystal are replaced with a ST M48T08 NVRAM (the battery is dead and holds no data).
|
||||||
EPROM.U13 - Manguan Caishen - labelled 'V206CMMBOX'
|
EPROM.U13 - Manguan Caishen 2 - labelled 'V206CMMBOX'
|
||||||
- Cai Jin Shen Long - labelled 'V-106CSM'
|
- Cai Jin Shen Long - labelled 'V-106CSM'
|
||||||
T518B - Reset IC
|
T518B - Reset IC
|
||||||
JP10/11 - 2 pins (each) that get tied together when the key switches on the side of the metal box are locked
|
JP10/11 - 2 pins (each) that get tied together when the key switches on the side of the metal box are locked
|
||||||
@ -61,16 +65,16 @@ EPROM.U13 - Manguan Caishen - labelled 'V206CMMBOX'
|
|||||||
62256 - 32kx8-bit SRAM
|
62256 - 32kx8-bit SRAM
|
||||||
SW1 - 8-position DIP Switch
|
SW1 - 8-position DIP Switch
|
||||||
V3021 - NVRAM Battery Supervisor IC
|
V3021 - NVRAM Battery Supervisor IC
|
||||||
IGS025 - Manguan Caishen - labelled 'S8'
|
IGS025 - Manguan Caishen 2 - labelled 'S8'
|
||||||
- Cai Jin Shen Long - labelled 'S2'
|
- Cai Jin Shen Long - labelled 'S2'
|
||||||
IGS027A - Manguan Caishen - labelled 'Y7'
|
IGS027A - Manguan Caishen 2 - labelled 'Y7'
|
||||||
- Cai Jin Shen Long - labelled 'S2'
|
- Cai Jin Shen Long - labelled 'S2'
|
||||||
|
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
|
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
|
|
||||||
Manguan Caishen (Link Version, Extension), IGS 1999
|
Manguan Caishen 2 (Link Version, Extension), IGS 1999
|
||||||
Cai Jin Shen Long (Link Version, Extension), IGS 1999
|
Cai Jin Shen Long (Link Version, Extension), IGS 1999
|
||||||
|
|
||||||
These boards connect to the HOST board running the same game.
|
These boards connect to the HOST board running the same game.
|
||||||
@ -162,10 +166,10 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
void cjsll(machine_config &config);
|
void cjsll(machine_config &config);
|
||||||
void mgcsl(machine_config &config);
|
void mgcs2l(machine_config &config);
|
||||||
|
|
||||||
void init_cjsll();
|
void init_cjsll();
|
||||||
void init_mgcsl();
|
void init_mgcs2l();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void video_start() override;
|
virtual void video_start() override;
|
||||||
@ -178,7 +182,7 @@ private:
|
|||||||
TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
|
TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
|
||||||
|
|
||||||
void cjsll_map(address_map &map);
|
void cjsll_map(address_map &map);
|
||||||
void mgcsl_map(address_map &map);
|
void mgcs2l_map(address_map &map);
|
||||||
|
|
||||||
void decrypt();
|
void decrypt();
|
||||||
};
|
};
|
||||||
@ -210,7 +214,7 @@ void extension_state::cjsll_map(address_map &map)
|
|||||||
//map(0xa12001, 0xa12001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
//map(0xa12001, 0xa12001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||||
}
|
}
|
||||||
|
|
||||||
void extension_state::mgcsl_map(address_map &map)
|
void extension_state::mgcs2l_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x000000, 0x07ffff).rom();
|
map(0x000000, 0x07ffff).rom();
|
||||||
map(0x600000, 0x603fff).ram();
|
map(0x600000, 0x603fff).ram();
|
||||||
@ -352,15 +356,15 @@ void extension_state::cjsll(machine_config &config)
|
|||||||
OKIM6295(config, "oki", 22_MHz_XTAL / 22, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5);
|
OKIM6295(config, "oki", 22_MHz_XTAL / 22, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
void extension_state::mgcsl(machine_config &config)
|
void extension_state::mgcs2l(machine_config &config)
|
||||||
{
|
{
|
||||||
cjsll(config),
|
cjsll(config),
|
||||||
|
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &extension_state::mgcsl_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &extension_state::mgcs2l_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ROM_START( mgcsh )
|
ROM_START( mgcs2h )
|
||||||
ROM_REGION( 0x04000, "maincpu", 0 )
|
ROM_REGION( 0x04000, "maincpu", 0 )
|
||||||
// Internal ROM of IGS027A type G ARM based MCU
|
// Internal ROM of IGS027A type G ARM based MCU
|
||||||
ROM_LOAD( "y7_027a.bin", 0x00000, 0x4000, CRC(3e726eeb) SHA1(41b4e5f8a9d35b82b1a62029b34c1e19e188a3bc) )
|
ROM_LOAD( "y7_027a.bin", 0x00000, 0x4000, CRC(3e726eeb) SHA1(41b4e5f8a9d35b82b1a62029b34c1e19e188a3bc) )
|
||||||
@ -378,7 +382,7 @@ ROM_START( cjslh )
|
|||||||
ROM_LOAD( "v-106csm.u13", 0x00000, 0x10000, CRC(5b3f3446) SHA1(1d5b9523ac7f221eb7cc2e5db90cc859c640cc18) )
|
ROM_LOAD( "v-106csm.u13", 0x00000, 0x10000, CRC(5b3f3446) SHA1(1d5b9523ac7f221eb7cc2e5db90cc859c640cc18) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( mgcsl )
|
ROM_START( mgcs2l )
|
||||||
ROM_REGION( 0x80000, "maincpu", 0 )
|
ROM_REGION( 0x80000, "maincpu", 0 )
|
||||||
ROM_LOAD16_WORD_SWAP( "p2000.u19", 0x00000, 0x80000, CRC(05a065e8) SHA1(5302fcb272c1561380bce57d840ddb5cc45b9497) )
|
ROM_LOAD16_WORD_SWAP( "p2000.u19", 0x00000, 0x80000, CRC(05a065e8) SHA1(5302fcb272c1561380bce57d840ddb5cc45b9497) )
|
||||||
|
|
||||||
@ -462,7 +466,7 @@ void extension_state::decrypt()
|
|||||||
rom[i] = x;
|
rom[i] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: tiles don't seem scrambled, sprites to be verified
|
// TODO: tiles are scrambled in a different way from what's already supported, sprites to be verified
|
||||||
}
|
}
|
||||||
|
|
||||||
void extension_state::init_cjsll()
|
void extension_state::init_cjsll()
|
||||||
@ -475,7 +479,7 @@ void extension_state::init_cjsll()
|
|||||||
rom[0x3a994 / 2] = 0x4e71;
|
rom[0x3a994 / 2] = 0x4e71;
|
||||||
}
|
}
|
||||||
|
|
||||||
void extension_state::init_mgcsl()
|
void extension_state::init_mgcs2l()
|
||||||
{
|
{
|
||||||
decrypt();
|
decrypt();
|
||||||
|
|
||||||
@ -489,9 +493,9 @@ void extension_state::init_mgcsl()
|
|||||||
|
|
||||||
|
|
||||||
// hosts
|
// hosts
|
||||||
GAME( 1999, mgcsh, 0, host, host, host_state, empty_init, ROT0, "IGS", "Manguan Caishen (link version, host)", MACHINE_IS_SKELETON )
|
GAME( 1999, mgcs2h, 0, host, host, host_state, empty_init, ROT0, "IGS", "Manguan Caishen 2 (link version, host)", MACHINE_IS_SKELETON )
|
||||||
GAME( 1999, cjslh, 0, host, host, host_state, empty_init, ROT0, "IGS", "Cai Jin Shen Long (link version, host)", MACHINE_IS_SKELETON )
|
GAME( 1999, cjslh, 0, host, host, host_state, empty_init, ROT0, "IGS", "Cai Jin Shen Long (link version, host)", MACHINE_IS_SKELETON )
|
||||||
|
|
||||||
// extensions
|
// extensions
|
||||||
GAME( 1999, mgcsl, 0, mgcsl, extension, extension_state, init_mgcsl, ROT0, "IGS", "Manguan Caishen (link version, extension, S110CN)", MACHINE_IS_SKELETON )
|
GAME( 1999, mgcs2l, 0, mgcs2l, extension, extension_state, init_mgcs2l, ROT0, "IGS", "Manguan Caishen 2 (link version, extension, S110CN)", MACHINE_IS_SKELETON )
|
||||||
GAME( 1999, cjsll, 0, cjsll, extension, extension_state, init_cjsll, ROT0, "IGS", "Cai Jin Shen Long (link version, extension, S111CN)", MACHINE_IS_SKELETON )
|
GAME( 1999, cjsll, 0, cjsll, extension, extension_state, init_cjsll, ROT0, "IGS", "Cai Jin Shen Long (link version, extension, S111CN)", MACHINE_IS_SKELETON )
|
||||||
|
@ -20254,8 +20254,8 @@ zhongguo // (c) 2000
|
|||||||
@source:igs/igs_m027_link.cpp
|
@source:igs/igs_m027_link.cpp
|
||||||
cjslh
|
cjslh
|
||||||
cjsll
|
cjsll
|
||||||
mgcsh
|
mgcs2h
|
||||||
mgcsl
|
mgcs2l
|
||||||
|
|
||||||
@source:igs/igs_m027xa.cpp
|
@source:igs/igs_m027xa.cpp
|
||||||
crzybugs // (c) 2009
|
crzybugs // (c) 2009
|
||||||
|
@ -554,9 +554,9 @@ SXX2C ROM SUB10 (C)1998
|
|||||||
-------------------------------------
|
-------------------------------------
|
||||||
Notes:
|
Notes:
|
||||||
* : These ROMs are surface mounted
|
* : These ROMs are surface mounted
|
||||||
61256 : 32k x8 SRAM (x2)
|
61256 : 32k x8 SRAM (x2). These are tied to the RISE11 chip with RAM A11-A14 tied to vcc/gnd so
|
||||||
|
these RAMs are configured as 2kB each and the RISE11 has a total of 4kB connected to it.
|
||||||
RISE11: SEIBU custom stamped 'RISE11' (QFP240)
|
RISE11: SEIBU custom stamped 'RISE11' (QFP240)
|
||||||
A11-A14 are tied to vcc/gnd so the RAM connected to the RISE11 is configured as 2kB.
|
|
||||||
PAL1 : PALCE 16V8 stamped 'SPI ROM 10-2'
|
PAL1 : PALCE 16V8 stamped 'SPI ROM 10-2'
|
||||||
PAL2 : PALCE 16V8 stamped 'SPI ROM 10-1'
|
PAL2 : PALCE 16V8 stamped 'SPI ROM 10-1'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user