From 5b14f7de64321000d01c1c92dfd06abe8628d9f1 Mon Sep 17 00:00:00 2001 From: Kingcom <sorgts@googlemail.com> Date: Fri, 22 Aug 2014 16:11:10 +0200 Subject: [PATCH] Add a list with bios version specific information --- pcsx2/ps2/BiosTools.cpp | 16 ++++++++++++++++ pcsx2/ps2/BiosTools.h | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/pcsx2/ps2/BiosTools.cpp b/pcsx2/ps2/BiosTools.cpp index 31309ba0e2..5f95d2dd1f 100644 --- a/pcsx2/ps2/BiosTools.cpp +++ b/pcsx2/ps2/BiosTools.cpp @@ -52,7 +52,13 @@ static_assert( sizeof(romdir) == DIRENTRY_SIZE, "romdir struct not packed to 16 u32 BiosVersion; u32 BiosChecksum; wxString BiosDescription; +const BiosDebugInformation* CurrentBiosInformation; +const BiosDebugInformation biosVersions[] = { + // USA v02.00(14/06/2004) Console + { 0x00000200, 0xD778DB8D, 0x8001a640 }, + +}; // -------------------------------------------------------------------------------------- // Exception::BiosLoadFailed (implementations) @@ -271,6 +277,16 @@ void LoadBIOS() LoadExtraRom( L"rom1", eeMem->ROM1 ); LoadExtraRom( L"rom2", eeMem->ROM2 ); LoadExtraRom( L"erom", eeMem->EROM ); + + CurrentBiosInformation = NULL; + for (int i = 0; i < sizeof(biosVersions)/sizeof(biosVersions[0]); i++) + { + if (biosVersions[i].biosChecksum == BiosChecksum && biosVersions[i].biosVersion == BiosVersion) + { + CurrentBiosInformation = &biosVersions[i]; + break; + } + } } catch (Exception::BadStream& ex) { diff --git a/pcsx2/ps2/BiosTools.h b/pcsx2/ps2/BiosTools.h index 66d0656524..aa4b26f2cf 100644 --- a/pcsx2/ps2/BiosTools.h +++ b/pcsx2/ps2/BiosTools.h @@ -28,9 +28,17 @@ namespace Exception }; } +struct BiosDebugInformation +{ + u32 biosVersion; + u32 biosChecksum; + u32 threadListAddr; +}; + extern u32 BiosVersion; // Used by CDVD extern u32 BiosChecksum; extern wxString BiosDescription; +extern const BiosDebugInformation* CurrentBiosInformation; extern void LoadBIOS(); extern bool IsBIOS(const wxString& filename, wxString& description);