Simplified Mahjong Man Guan Cai Shen decryption (maybe there were some fixes too)

This commit is contained in:
Pierpaolo Prazzoli 2008-08-24 13:18:17 +00:00
parent 65a96e4f7a
commit 04dd24b41d

View File

@ -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;
}
}