mirror of
https://github.com/holub/mame
synced 2025-06-29 23:48:56 +03:00
Decrypted Mahjong Shuang Long Qiang Zhu 2 and Mahjong Super Da Man Guan 2
This commit is contained in:
parent
96d622b677
commit
dd914fb758
@ -11,8 +11,6 @@ Others use
|
||||
IGS017
|
||||
IGS029
|
||||
|
||||
All of these have encrypted program roms, which will need decrypting
|
||||
|
||||
*/
|
||||
|
||||
#include "driver.h"
|
||||
@ -30,6 +28,7 @@ static VIDEO_UPDATE(igs_m68)
|
||||
|
||||
static ADDRESS_MAP_START( igs_m68_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x103fff) AM_RAM //to test the decryption
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM //to test the decryption
|
||||
AM_RANGE(0x500000, 0x503fff) AM_RAM //to test the decryption
|
||||
ADDRESS_MAP_END
|
||||
@ -241,7 +240,7 @@ Notes:
|
||||
|
||||
ROM_START( slqz2 )
|
||||
ROM_REGION( 0x80000, "main", 0 ) /* 68000 Code */
|
||||
ROM_LOAD( "p1100.u28", 0x00000, 0x80000, CRC(0b8e5c9e) SHA1(16572bd1163bba4da8a76b10649d2f71e50ad369) )
|
||||
ROM_LOAD16_WORD_SWAP( "p1100.u28", 0x00000, 0x80000, CRC(0b8e5c9e) SHA1(16572bd1163bba4da8a76b10649d2f71e50ad369) )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "s1102.u20", 0x00000, 0x80000, CRC(51ffe245) SHA1(849011b186096add657ab20d49d260ec23363ef3) ) // = s1102.u23 Mahjong Long Hu Zheng Ba 2
|
||||
@ -263,7 +262,7 @@ PCB Layout
|
||||
|
||||
IGS PCB NO-0147-6
|
||||
|---------------------------------------|
|
||||
| UPC1242H S0903.U15 BATTERY|
|
||||
| UPC1242H S0903.U15 BATTERY |
|
||||
| VOL SPDT_SW |
|
||||
| |
|
||||
| K668 6264 |
|
||||
@ -299,7 +298,7 @@ Notes:
|
||||
|
||||
ROM_START( sdmg2 )
|
||||
ROM_REGION( 0x80000, "main", 0 ) /* 68000 Code */
|
||||
ROM_LOAD( "p0900.u25", 0x00000, 0x80000,CRC(43366f51) SHA1(48dd965dceff7de15b43c2140226a8b17a792dbc) )
|
||||
ROM_LOAD16_WORD_SWAP( "p0900.u25", 0x00000, 0x80000,CRC(43366f51) SHA1(48dd965dceff7de15b43c2140226a8b17a792dbc) )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "s0903.u15", 0x00000, 0x80000, CRC(ae5a441c) SHA1(923774ef73ab0f70e0db1738a4292dcbd70d2384) )
|
||||
@ -506,6 +505,136 @@ static DRIVER_INIT( mgcs )
|
||||
x ^= 0x0100;
|
||||
}
|
||||
|
||||
src[i] = x;
|
||||
}
|
||||
}
|
||||
|
||||
static DRIVER_INIT( slqz2 )
|
||||
{
|
||||
int i;
|
||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||
|
||||
int rom_size = 0x80000;
|
||||
|
||||
for (i=0; i<rom_size/2; i++)
|
||||
{
|
||||
UINT16 x = src[i];
|
||||
|
||||
/* bit 0 xor layer */
|
||||
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( i & 0x02/2 )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
|
||||
if( !(i & 0x4000/2) )
|
||||
{
|
||||
if( !(i & 0x300/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
|
||||
/* bit 14 xor layer */
|
||||
|
||||
if( i & 0x1000/2 )
|
||||
{
|
||||
if( i & 0x800/2 )
|
||||
{
|
||||
x ^= 0x4000;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x200/2 )
|
||||
{
|
||||
if( !(i & 0x100/2) )
|
||||
{
|
||||
if( i & 0x40/2 )
|
||||
{
|
||||
x ^= 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
x ^= 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x800/2 )
|
||||
{
|
||||
x ^= 0x4000;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !(i & 0x100/2) )
|
||||
{
|
||||
if( i & 0x40/2 )
|
||||
{
|
||||
x ^= 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
src[i] = x;
|
||||
}
|
||||
}
|
||||
|
||||
static DRIVER_INIT( sdmg2 )
|
||||
{
|
||||
int i;
|
||||
UINT16 *src = (UINT16 *) (memory_region(machine, "main"));
|
||||
|
||||
int rom_size = 0x80000;
|
||||
|
||||
for (i=0; i<rom_size/2; i++)
|
||||
{
|
||||
UINT16 x = src[i];
|
||||
|
||||
/* bit 0 xor layer */
|
||||
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( i & 0x02/2 )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
|
||||
if( !(i & 0x4000/2) )
|
||||
{
|
||||
if( !(i & 0x300/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
|
||||
/* bit 9 xor layer */
|
||||
|
||||
if( i & 0x20000/2 )
|
||||
{
|
||||
x ^= 0x0200;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !(i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0200;
|
||||
}
|
||||
}
|
||||
|
||||
/* bit 12 xor layer */
|
||||
|
||||
if( i & 0x20000/2 )
|
||||
{
|
||||
x ^= 0x1000;
|
||||
}
|
||||
|
||||
src[i] = x;
|
||||
}
|
||||
@ -514,6 +643,6 @@ static DRIVER_INIT( mgcs )
|
||||
GAME( 1998, lhzb2, 0, igs_m68, igs_m68, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 1)", GAME_NOT_WORKING )
|
||||
GAME( 1998, lhzb2a, lhzb2, igs_m68, igs_m68, lhzb2a, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 2)", GAME_NOT_WORKING )
|
||||
GAME( 1998, mgcs, 0, igs_m68, igs_m68, mgcs, ROT0, "IGS", "Mahjong Man Guan Cai Shen", GAME_NOT_WORKING )
|
||||
GAME( 1998, slqz2, 0, igs_m68, igs_m68, 0, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2", GAME_NOT_WORKING )
|
||||
GAME( 1997, sdmg2, 0, igs_m68, igs_m68, 0, ROT0, "IGS", "Mahjong Super Da Man Guan 2", GAME_NOT_WORKING )
|
||||
GAME( 1998, slqz2, 0, igs_m68, igs_m68, slqz2, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2", GAME_NOT_WORKING )
|
||||
GAME( 1997, sdmg2, 0, igs_m68, igs_m68, sdmg2, ROT0, "IGS", "Mahjong Super Da Man Guan 2", GAME_NOT_WORKING )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user