BIOS: Don't HLE OSD Parameters if BIOS has no OSD

This commit is contained in:
refractionpcsx2 2020-12-06 19:29:35 +00:00
parent a0ac42cf6d
commit 7bcee22890
3 changed files with 13 additions and 3 deletions

View File

@ -24,6 +24,7 @@
#include "R5900Exceptions.h"
#include "GS.h"
#include "CDVD/CDVD.h"
#include "ps2/BiosTools.h"
GS_VideoMode gsVideoMode = GS_VideoMode::Uninitialized;
bool gsIsInterlaced = false;
@ -944,7 +945,7 @@ void SYSCALL()
}
break;
case Syscall::GetOsdConfigParam:
if(g_SkipBiosHack)
if(!NoOSD && g_SkipBiosHack)
{
u32 memaddr = cpuRegs.GPR.n.a0.UL[0];
u8 params[16];
@ -965,7 +966,7 @@ void SYSCALL()
}
break;
case Syscall::GetOsdConfigParam2:
if (g_SkipBiosHack)
if (!NoOSD && g_SkipBiosHack)
{
u32 memaddr = cpuRegs.GPR.n.a0.UL[0];
u8 params[16];

View File

@ -51,6 +51,7 @@ static_assert( sizeof(romdir) == DIRENTRY_SIZE, "romdir struct not packed to 16
u32 BiosVersion;
u32 BiosChecksum;
bool NoOSD;
wxString BiosDescription;
const BiosDebugInformation* CurrentBiosInformation;
@ -284,6 +285,13 @@ void LoadBIOS()
wxFFile fp( Bios , "rb");
fp.Read( eeMem->ROM, std::min<s64>( Ps2MemSize::Rom, filesize ) );
// If file is less than 2mb it doesn't have an OSD (Devel consoles)
// So skip HLEing OSDSys Param stuff
if (filesize < 2465792)
NoOSD = true;
else
NoOSD = false;
ChecksumIt( BiosChecksum, eeMem->ROM );
pxInputStream memfp( Bios, new wxMemoryInputStream( eeMem->ROM, sizeof(eeMem->ROM) ) );

View File

@ -35,7 +35,8 @@ struct BiosDebugInformation
u32 threadListAddr;
};
extern u32 BiosVersion; // Used by CDVD
extern u32 BiosVersion; // Used by CDVD
extern bool NoOSD; // Used for HLE OSD Config Params
extern u32 BiosChecksum;
extern wxString BiosDescription;
extern const BiosDebugInformation* CurrentBiosInformation;