mirror of
https://github.com/holub/mame
synced 2025-07-01 00:09:18 +03:00
Simplified Mahjong Man Guan Cai Shen decryption (maybe there were some fixes too)
This commit is contained in:
parent
65a96e4f7a
commit
04dd24b41d
@ -320,26 +320,9 @@ static DRIVER_INIT( mgcs )
|
||||
{
|
||||
UINT16 x = src[i];
|
||||
|
||||
if( (i & 0x7000/2) == 0x6000/2 || (i & 0x7000/2) == 0x7000/2)
|
||||
{
|
||||
if( (i & 0x20/2) )
|
||||
{
|
||||
if( (i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
else if( (i & 0x100/2) && !(i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
/* bit 0 xor layer */
|
||||
|
||||
if( (i & 0x100/2) && (i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
}
|
||||
else if( (i & 0x7000/2) == 0x4000/2 || (i & 0x7000/2) == 0x5000/2 )
|
||||
if( i & 0x4000/2 )
|
||||
{
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
@ -348,40 +331,10 @@ static DRIVER_INIT( mgcs )
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
|
||||
if( i & 0x100/2 )
|
||||
{
|
||||
if( !(i & 0x20/2) || (i & 0x80/2) || (i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x80/2 )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( (i & 0x7000/2) == 0x2000/2 || (i & 0x7000/2) == 0x3000/2 )
|
||||
else
|
||||
{
|
||||
if( (i & 0x300/2) == 0x100/2 || (i & 0x300/2) == 0x300/2 )
|
||||
{
|
||||
if( !(i & 0x20/2) || (i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( i & 0x02/2 )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( (i & 0x300/2) == 0x200/2 )
|
||||
if( i & 0x300/2 )
|
||||
{
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
@ -406,102 +359,38 @@ static DRIVER_INIT( mgcs )
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( (i & 0x7000/2) == 0x0000/2 || (i & 0x7000/2) == 0x1000/2)
|
||||
|
||||
/* bit 8 xor layer */
|
||||
|
||||
if( i & 0x2000/2 )
|
||||
{
|
||||
if( (i & 0x300/2) == 0x100/2 || (i & 0x300/2) == 0x300/2 )
|
||||
if( i & 0x100/2 )
|
||||
{
|
||||
if( i & 0x80/2 )
|
||||
if( !(i & 0x20/2) || (i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( (i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( (i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
else if( !(i & 0x400/2) )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
|
||||
if( i & 0x400/2 )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( (i & 0x300/2) == 0x200/2 )
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x80/2 )
|
||||
{
|
||||
if( i & 0x80/2 )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( (i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( (i & 0x20/2) )
|
||||
{
|
||||
if( (i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
x ^= 0x0100;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x80/2 )
|
||||
{
|
||||
x ^= 0x0100;
|
||||
|
||||
if( i & 0x20/2 )
|
||||
if( i & 0x100/2 )
|
||||
{
|
||||
if( !(i & 0x80/2) )
|
||||
{
|
||||
if( !(i & 0x20/2) || (i & 0x400/2) )
|
||||
{
|
||||
if( !(i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i & 0x20/2 )
|
||||
{
|
||||
if( !(i & 0x02/2) )
|
||||
{
|
||||
x ^= 0x0001;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
x ^= 0x0001;
|
||||
x ^= 0x0100;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
src[i] = x;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user