A little lower ram Cx decrypt ^^
Replace this:
for (int i = 0; i < (nNum >> 1); i++) {
int k = 4, n = i;
if ((nSpriteSize == 0x4000000) && (nNum == 2)) {
pBuf = (unsigned char*)malloc(nSpriteSize);
BurnLoadRom(pBuf + 0x0000000, nOffset + (i << 1), 1);
BurnLoadRom(pBuf + 0x2000000, nOffset + 1 + (i << 1), 1);
k = 16, n = 0, i = 2;
svcchaos_cx_decrypt(pBuf);
} else {
BurnLoadRom(pBuf + 0, nOffset + (i << 1), 2);
BurnLoadRom(pBuf + 1, nOffset + 1 + (i << 1), 2);
}
With this:
int svcpcb = 0; // hack for svc's non-standard 32mb Cx roms
for (int i = 0; i < (nNum + svcpcb >> 1); i++) {
int k = 4, n = i;
if ((nSpriteSize == 0x4000000) && (nNum == 2)) { // svc pcb
pBuf = (unsigned char*)malloc(0x2000000);
BurnLoadRom(pBuf, nOffset + i, 1);
k = 8, n = i * 2, svcpcb = 2;
svcpcb_cx_decrypt(pBuf);
} else {
BurnLoadRom(pBuf + 0, nOffset + (i << 1), 2);
BurnLoadRom(pBuf + 1, nOffset + 1 + (i << 1), 2);
}
In the following function, replace i < 8 with i < 4
void svcchaos_cx_decrypt(unsigned char* rom)
{
const unsigned char xor1[ 4 ] = {0x34, 0x21, 0xc4, 0xe9,};
unsigned char *pTemp = (unsigned char*)malloc(0x800000);
for (int i = 0; i < 8; i++) {