BIOS/HLE: Write OSD config with memwrites instead of direct to physical

fixes crashes with Crash Twinsanity
This commit is contained in:
refractionpcsx2 2020-11-22 21:25:04 +00:00
parent c25ae58c6f
commit 37f145f6bd
1 changed files with 4 additions and 4 deletions

View File

@ -946,7 +946,7 @@ void SYSCALL()
case Syscall::GetOsdConfigParam:
if(g_SkipBiosHack)
{
u8* pointer = (u8*)PSM(cpuRegs.GPR.n.a0.UL[0]);
u32 memaddr = cpuRegs.GPR.n.a0.UL[0];
u8 params[16];
cdvdReadLanguageParams(params);
@ -960,21 +960,21 @@ void SYSCALL()
osdconf |= (u32)(params[2] & 0x1F) << 16; // Language
osdconf |= timezone << 21; // Timezone
memcpy(pointer, &osdconf, 4);
memWrite32(memaddr, osdconf);
return;
}
break;
case Syscall::GetOsdConfigParam2:
if (g_SkipBiosHack)
{
u8* pointer = (u8*)PSM(cpuRegs.GPR.n.a0.UL[0]);
u32 memaddr = cpuRegs.GPR.n.a0.UL[0];
u8 params[16];
cdvdReadLanguageParams(params);
u32 osdconf2 = (u32)((params[3] & 0x78) << 1); // Daylight Savings, 24hr clock, Date format
memcpy(pointer, &osdconf2, 4);
memWrite32(memaddr, osdconf2);
return;
}
break;