void PatchCountryStrings(void *Address, int Size)
{
ÂÂÂÂu8 SearchPattern[4]ÂÂÂÂ= { 0x00, 0x00, 0x00, 0x00 };
ÂÂÂÂu8 PatchData[4]ÂÂÂÂÂÂÂÂ= { 0x00, 0x00, 0x00, 0x00 };
ÂÂÂÂu8 *AddrÂÂÂÂÂÂÂÂÂÂÂÂ= (u8*)Address;
ÂÂÂÂint wiiregion = CONF_GetRegion();
ÂÂÂÂswitch (wiiregion)
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂcase CONF_REGION_JP:
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[0] = 0x00;
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[1] = 0x4A; // J
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[2] = 0x50; // P
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase CONF_REGION_EU:
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[0] = 0x02;
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[1] = 0x45; // E
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[2] = 0x55; // U
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase CONF_REGION_KR:
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[0] = 0x04;
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[1] = 0x4B; // K
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[2] = 0x52; // R
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase CONF_REGION_CN:
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[0] = 0x05;
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[1] = 0x43; // C
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[2] = 0x4E; // N
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase CONF_REGION_US:
ÂÂÂÂÂÂÂÂdefault:
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[0] = 0x01;
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[1] = 0x55; // U
ÂÂÂÂÂÂÂÂÂÂÂÂSearchPattern[2] = 0x53; // S
ÂÂÂÂ}
ÂÂÂÂswitch (*(char*)Memory::Disc_Region)
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::NTSC_Japan:
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[1] = 0x4A; // J
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[2] = 0x50; // P
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::PAL_Default:
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::PAL_France:
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::PAL_Germany:
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::Euro_X:
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::Euro_Y:
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[1] = 0x45; // E
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[2] = 0x55; // U
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂÂÂÂÂcase Wii_Disc::Regions::NTSC_USA:
ÂÂÂÂÂÂÂÂdefault:
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[1] = 0x55; // U
ÂÂÂÂÂÂÂÂÂÂÂÂPatchData[2] = 0x53; // S
ÂÂÂÂ}
ÂÂÂÂwhile (Size >= 4)
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂif (Addr[0] == SearchPattern[0] && Addr[1] == SearchPattern[1] && Addr[2] == SearchPattern[2] && Addr[3] == SearchPattern[3])
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂ//*Addr = PatchData[0];
ÂÂÂÂÂÂÂÂÂÂÂÂAddr += 1;
ÂÂÂÂÂÂÂÂÂÂÂÂ*Addr = PatchData[1];
ÂÂÂÂÂÂÂÂÂÂÂÂAddr += 1;
ÂÂÂÂÂÂÂÂÂÂÂÂ*Addr = PatchData[2];
ÂÂÂÂÂÂÂÂÂÂÂÂAddr += 1;
ÂÂÂÂÂÂÂÂÂÂÂÂ//*Addr = PatchData[3];
ÂÂÂÂÂÂÂÂÂÂÂÂAddr += 1;
ÂÂÂÂÂÂÂÂÂÂÂÂSize -= 4;
ÂÂÂÂÂÂÂÂ} else
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂAddr += 4;
ÂÂÂÂÂÂÂÂÂÂÂÂSize -= 4;
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂ}
}