funworld/supercrd.cpp: minor XOR tables tweaks

This commit is contained in:
Ivan Vangelista 2023-06-26 08:44:44 +02:00
parent 2408daf192
commit 1fb6085a18

View File

@ -926,44 +926,44 @@ void supercrd_state::init_supercrd() // TODO: check unknown opcodes
uint8_t xor_table[0x04][0x08][0x08] =
{
{
{ // quadrant 1 should be ok, missing decrypted 0x14, 0x17, 0x82, 0x84, 0x85, 0xd0
{ 0x13, 0x11, 0x01, 0x11, 0x02, 0x50, 0x51, 0x43 }, // 0x0x and 0x2x
{ 0x11, 0x52, 0x50, 0x43, 0x10, 0x43, unkn, 0x02 }, // 0x1x and 0x3x
{ 0x51, 0x13, 0x02, 0x12, 0x43, 0x00, unkn, 0x51 }, // 0x4x and 0x6x
{ 0x50, 0x53, 0x13, 0x00, 0x51, 0x12, 0x02, 0x11 }, // 0x5x and 0x7x
{ 0x12, 0x02, 0x40, 0x51, 0x03, 0x50, unkn, 0x12 }, // 0x8x and 0xax
{ 0x12, 0x02, 0x40, 0x51, 0x03, 0x50, 0x42, 0x12 }, // 0x8x and 0xax
{ 0x50, 0x01, 0x53, 0x50, 0x43, 0x43, unkn, 0x00 }, // 0x9x and 0xbx
{ unkn, 0x41, 0x43, 0x52, 0x42, 0x00, unkn, unkn }, // 0xcx and 0xex
{ 0x43, 0x02, unkn, 0x02, unkn, 0x43, 0x10, 0x43 } // 0xdx and 0xfx
},
{
{ // quadrants 1,2 should be ok, missing decrypted 0x80, 0x82, 0x83, 0x85, 0x87, 0xd0, 0xd7
{ 0x13, 0x10, 0x02, 0x40, 0x50, 0x43, 0x11, 0x51 }, // 0x0x and 0x2x
{ 0x43, 0x41, 0x43, 0x53, 0x50, 0x00, 0x51, 0x01 }, // 0x1x and 0x3x
{ 0x52, 0x51, 0x00, 0x40, 0x40, 0x00, 0x52, 0x40 }, // 0x4x and 0x6x
{ 0x52, 0x50, 0x13, 0x01, 0x52, 0x02, 0x03, 0x52 }, // 0x5x and 0x7x
{ 0x43, unkn, 0x50, 0x41, 0x12, 0x51, 0x11, unkn }, // 0x8x and 0xax
{ 0x43, 0x00, 0x01, 0x42, unkn, unkn, 0x40, unkn }, // 0x9x and 0xbx
{ 0x43, 0x01, 0x01, 0x42, unkn, unkn, 0x40, unkn }, // 0x9x and 0xbx
{ unkn, unkn, unkn, 0x52, unkn, 0x00, 0x53, 0x01 }, // 0xcx and 0xex
{ 0x51, 0x10, 0x12, 0x41, 0x50, 0x00, 0x50, 0x50 } // 0xdx and 0xfx
},
{
{ // quadrant 1 should be ok, missing decrypted 0x17, 0x44 0x80, 0x81, 0x82, 0x83, 0x85, 0xc4, 0xc7, 0xd0
{ 0x43, 0x51, 0x01, 0x13, 0x51, 0x42, unkn, 0x01 }, // 0x0x and 0x2x
{ 0x50, 0x43, 0x13, 0x11, unkn, 0x42, 0x12, 0x01 }, // 0x1x and 0x3x
{ 0x53, 0x10, 0x11, 0x52, 0x51, 0x00, 0x10, 0x13 }, // 0x4x and 0x6x
{ 0x42, 0x13, 0x13, 0x53, 0x40, 0x52, 0x10, 0x52 }, // 0x5x and 0x7x
{ 0x40, 0x43, 0x51, 0x51, 0x51, 0x01, unkn, 0x00 }, // 0x8x and 0xax
{ unkn, 0x01, 0x43, 0x02, unkn, 0x53, unkn, unkn }, // 0x9x and 0xbx
{ unkn, 0x01, 0x43, 0x02, unkn, 0x53, 0x00, unkn }, // 0x9x and 0xbx
{ 0x01, 0x02, unkn, 0x50, 0x51, 0x00, 0x51, 0x10 }, // 0xcx and 0xex
{ 0x42, unkn, unkn, unkn, 0x00, 0x41, unkn, 0x01 } // 0xdx and 0xfx
},
{
{ // quadrants 1,2 should be ok, missing decrypted 0x84, 0x94, 0x96, 0xc7, 0xd7
{ 0x42, 0x00, 0x43, 0x53, 0x03, 0x53, 0x00, 0x11 }, // 0x0x and 0x2x
{ 0x13, 0x02, 0x12, 0x11, 0x41, 0x02, 0x50, 0x53 }, // 0x1x and 0x3x
{ 0x00, 0x12, 0x52, 0x12, 0x03, 0x00, 0x43, 0x43 }, // 0x4x and 0x6x
{ 0x42, 0x40, 0x11, 0x01, 0x41, 0x02, 0x02, 0x43 }, // 0x5x and 0x7x
{ unkn, 0x12, 0x50, 0x43, 0x13, unkn, unkn, 0x02 }, // 0x8x and 0xax
{ 0x00, 0x12, 0x50, 0x43, 0x13, unkn, unkn, 0x02 }, // 0x8x and 0xax
{ 0x51, 0x01, 0x10, 0x02, 0x52, unkn, 0x43, unkn }, // 0x9x and 0xbx
{ 0x02, 0x02, unkn, 0x10, unkn, 0x00, 0x10, 0x40 }, // 0xcx and 0xex
{ 0x02, 0x02, 0x50, 0x10, unkn, 0x00, 0x10, 0x40 }, // 0xcx and 0xex
{ 0x01, 0x01, 0x53, 0x50, 0x41, unkn, 0x12, 0x03 } // 0xdx and 0xfx
}
};
@ -988,7 +988,7 @@ void supercrd_state::init_fruitstr() // TODO: check unknown opcodes
uint8_t xor_table[0x04][0x08][0x08] =
{
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x82, 0x84, 0x85, 0xd0
{ 0x40, 0x52, 0x53, 0x11, 0x40, 0x02, 0x10, 0x40 }, // 0x0x and 0x2x
{ 0x11, 0x00, 0x02, 0x43, 0x40, 0x10, 0x02, 0x40 }, // 0x1x and 0x3x
{ 0x40, 0x03, 0x10, 0x02, 0x02, 0x00, 0x40, 0x43 }, // 0x4x and 0x6x
@ -998,7 +998,7 @@ void supercrd_state::init_fruitstr() // TODO: check unknown opcodes
{ 0x11, 0x13, 0x53, 0x50, 0x02, 0x00, 0x41, unkn }, // 0xcx and 0xex
{ 0x50, 0x50, 0x12, unkn, unkn, 0x41, 0x43, 0x40 } // 0xdx and 0xfx
},
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x80, 0x82, 0x83, 0xc4, 0xc7, 0xd0
{ 0x42, 0x11, 0x41, 0x51, 0x51, 0x12, 0x10, 0x03 }, // 0x0x and 0x2x
{ 0x40, 0x12, 0x13, 0x01, 0x42, 0x10, 0x51, 0x03 }, // 0x1x and 0x3x
{ 0x01, 0x41, 0x11, 0x41, 0x42, 0x00, 0x41, 0x01 }, // 0x4x and 0x6x
@ -1008,7 +1008,7 @@ void supercrd_state::init_fruitstr() // TODO: check unknown opcodes
{ 0x51, 0x52, unkn, unkn, 0x51, 0x00, 0x40, 0x50 }, // 0xcx and 0xex
{ 0x13, unkn, 0x10, 0x00, 0x40, 0x01, 0x51, 0x02 } // 0xdx and 0xfx
},
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x80, 0x85, 0xc7, 0xd0
{ 0x43, 0x12, 0x50, 0x41, 0x53, 0x11, 0x03, 0x51 }, // 0x0x and 0x2x
{ 0x11, 0x40, 0x10, 0x01, 0x01, 0x11, 0x42, 0x01 }, // 0x1x and 0x3x
{ 0x00, 0x51, 0x03, 0x40, 0x03, 0x00, 0x02, 0x50 }, // 0x4x and 0x6x
@ -1018,7 +1018,7 @@ void supercrd_state::init_fruitstr() // TODO: check unknown opcodes
{ 0x51, 0x52, 0x02, 0x00, unkn, 0x00, 0x53, 0x13 }, // 0xcx and 0xex
{ 0x53, 0x13, 0x50, 0x41, 0x53, 0x42, 0x40, 0x02 } // 0xdx and 0xfx
},
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x84, 0xc7
{ 0x41, 0x13, 0x13, 0x13, 0x42, 0x42, 0x10, 0x01 }, // 0x0x and 0x2x
{ 0x52, 0x12, 0x13, 0x53, 0x41, 0x10, 0x02, 0x41 }, // 0x1x and 0x3x
{ 0x11, 0x13, 0x11, 0x50, 0x40, 0x00, 0x53, 0x10 }, // 0x4x and 0x6x
@ -1050,27 +1050,27 @@ void supercrd_state::init_gampo() // TODO: check unknown opcodes
uint8_t xor_table[0x04][0x08][0x08] =
{
{
{ // quadrant 1 should be ok, missing decrypted 0x14, 0x17, 0x82, 0x84, 0xc7, 0xd0
{ 0x51, 0x12, 0x41, 0x02, 0x02, 0x13, unkn, 0x43 }, // 0x0x and 0x2x
{ 0x43, 0x12, 0x53, 0x43, 0x53, 0x00, unkn, 0x51 }, // 0x1x and 0x3x
{ 0x51, 0x01, 0x52, 0x43, 0x43, 0x00, 0x42, 0x12 }, // 0x4x and 0x6x
{ 0x42, 0x53, 0x10, 0x01, 0x00, 0x03, 0x01, 0x52 }, // 0x5x and 0x7x
{ 0x42, 0x00, 0x50, unkn, 0x13, unkn, 0x01, 0x41 }, // 0x8x and 0xax
{ 0x50, 0x00, 0x51, 0x01, 0x12, unkn, unkn, 0x42 }, // 0x9x and 0xbx // TODO: 0x90 to be checked
{ 0x50, 0x00, 0x51, 0x01, 0x12, unkn, unkn, 0x42 }, // 0x9x and 0xbx
{ 0x50, 0x41, 0x13, 0x40, unkn, 0x00, unkn, 0x52 }, // 0xcx and 0xex
{ 0x11, 0x42, 0x01, unkn, unkn, 0x41, unkn, 0x01 } // 0xdx and 0xfx
{ 0x11, 0x42, 0x01, unkn, unkn, 0x41, 0x12, 0x01 } // 0xdx and 0xfx
},
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x80, 0x82, 0x83, 0x85, 0x94, 0xc7, 0xd0
{ 0x10, 0x51, 0x50, 0x02, 0x11, 0x02, 0x41, 0x01 }, // 0x0x and 0x2x
{ 0x50, 0x13, 0x51, 0x01, 0x43, 0x02, 0x02, 0x42 }, // 0x1x and 0x3x
{ 0x02, 0x41, 0x11, 0x02, 0x40, 0x00, 0x12, 0x51 }, // 0x4x and 0x6x
{ 0x53, 0x40, 0x41, 0x02, 0x02, 0x13, 0x12, 0x52 }, // 0x5x and 0x7x
{ 0x12, 0x12, 0x40, 0x50, 0x53, 0x12, 0x40, 0x51 }, // 0x8x and 0xax // TODO: 0x84 to be checked
{ 0x12, 0x12, 0x40, 0x50, 0x53, 0x12, 0x40, 0x51 }, // 0x8x and 0xax
{ unkn, 0x01, unkn, 0x02, 0x01, unkn, unkn, 0x10 }, // 0x9x and 0xbx
{ unkn, 0x02, 0x02, 0x02, 0x42, 0x00, 0x50, 0x03 }, // 0xcx and 0xex
{ 0x01, 0x03, 0x53, unkn, 0x00, 0x51, unkn, 0x02 } // 0xdx and 0xfx
},
{
{ // quadrant 1 should be ok, missing decrypted 0x17, 0x44, 0x80, 0x83, 0x96, 0xc4, 0xc7, 0xd0, 0xd7
{ 0x52, 0x02, 0x00, 0x13, 0x43, 0x01, 0x03, unkn }, // 0x0x and 0x2x
{ 0x02, 0x00, 0x12, 0x51, 0x01, 0x40, 0x42, 0x03 }, // 0x1x and 0x3x
{ 0x03, 0x10, 0x43, 0x13, 0x43, 0x00, 0x00, 0x41 }, // 0x4x and 0x6x
@ -1080,13 +1080,13 @@ void supercrd_state::init_gampo() // TODO: check unknown opcodes
{ 0x41, 0x12, unkn, 0x50, 0x10, 0x00, unkn, 0x53 }, // 0xcx and 0xex
{ 0x10, 0x10, 0x40, 0x10, 0x12, unkn, 0x50, 0x01 } // 0xdx and 0xfx
},
{
{ // quadrants 1, 2 should be ok, missing decrypted 0x94, 0xc7
{ 0x02, 0x43, 0x52, 0x51, 0x42, 0x41, 0x50, 0x13 }, // 0x0x and 0x2x
{ 0x43, 0x11, 0x00, 0x03, 0x10, 0x10, 0x43, 0x40 }, // 0x1x and 0x3x
{ 0x51, 0x42, 0x13, 0x42, 0x43, 0x00, 0x51, 0x13 }, // 0x4x and 0x6x
{ 0x13, 0x11, 0x41, 0x12, 0x41, 0x53, 0x11, 0x41 }, // 0x5x and 0x7x
{ unkn, 0x42, 0x51, 0x43, 0x03, 0x03, 0x51, 0x43 }, // 0x8x and 0xax
{ 0x52, 0x02, unkn, 0x03, 0x11, 0x03, unkn, 0x00 }, // 0x9x and 0xbx // TODO: check 2257 for 0xb3
{ 0x52, 0x02, unkn, 0x03, 0x11, 0x03, unkn, 0x00 }, // 0x9x and 0xbx
{ 0x41, 0x43, 0x10, 0x02, 0x51, 0x00, 0x13, 0x13 }, // 0xcx and 0xex
{ 0x00, 0x52, 0x03, 0x42, 0x02, 0x13, 0x52, unkn } // 0xdx and 0xfx
}