Hi guys, Crediar is using a video mode patch in sneek that works totally different than the ones the most usb loaders use. In one of the recent revisions of sneek, he updated it, so i thought i give it a shot.
It's implemented in NeoGamma now, available as sneek in the video patch option, and i already contacted the CFG team. I tested it on one game that requires video mode patching to foce NTSC480i, and it worked(same as the other patches...).
My point is:
There are a lot of games where the old video mode patches fail to force PAL/NTSC480i and progressive video mode. I simply want to know which patch works better, please test/report both seperately, thank you.
PS: Here's my implementation of it:
It's implemented in NeoGamma now, available as sneek in the video patch option, and i already contacted the CFG team. I tested it on one game that requires video mode patching to foce NTSC480i, and it worked(same as the other patches...).
My point is:
There are a lot of games where the old video mode patches fail to force PAL/NTSC480i and progressive video mode. I simply want to know which patch works better, please test/report both seperately, thank you.
PS: Here's my implementation of it:
void sneek_video_patch(void *addr, u32 len)
{
u8 *addr_start = addr;
u8 *addr_end = addr+len;
while(addr_start < addr_end)
{
if( *(vu32*)(addr_start) == 0x3C608000 )
{
if( ((*(vu32*)(addr_start+4) & 0xFC1FFFFF ) == 0x800300CC) && ((*(vu32*)(addr_start+8) >> 24) == 0x54 ) )
{
//dbgprintf("DIP:[patcher] Found VI pattern:%08X\n", (u32)(addr_start) | 0x80000000 );
*(vu32*)(addr_start+4) = 0x5400F0BE | ((*(vu32*)(addr_start+4) & 0x3E00000) >> 5 );
}
}
addr_start += 4;
}
}
{
u8 *addr_start = addr;
u8 *addr_end = addr+len;
while(addr_start < addr_end)
{
if( *(vu32*)(addr_start) == 0x3C608000 )
{
if( ((*(vu32*)(addr_start+4) & 0xFC1FFFFF ) == 0x800300CC) && ((*(vu32*)(addr_start+8) >> 24) == 0x54 ) )
{
//dbgprintf("DIP:[patcher] Found VI pattern:%08X\n", (u32)(addr_start) | 0x80000000 );
*(vu32*)(addr_start+4) = 0x5400F0BE | ((*(vu32*)(addr_start+4) & 0x3E00000) >> 5 );
}
}
addr_start += 4;
}
}