diff --git a/src/common/xbe/Xbe.cpp b/src/common/xbe/Xbe.cpp index be4947812..ca7efc95a 100644 --- a/src/common/xbe/Xbe.cpp +++ b/src/common/xbe/Xbe.cpp @@ -774,8 +774,8 @@ bool Xbe::CheckSignature() // Hash against all currently known public keys, if these pass, we can guarantee the Xbe is unmodified std::array keys = { 0 }; memcpy(keys[0].Default, (void*)xbox::XePublicKeyDataRetail, 284); - memcpy(keys[1].Default, (void*)xbox::XePublicKeyDataChihiroGame, 284); - memcpy(keys[2].Default, (void*)xbox::XePublicKeyDataChihiroBoot, 284); + memcpy(keys[1].Default, (void*)xbox::XePublicKeyDataDebug, 284); + memcpy(keys[2].Default, (void*)xbox::XePublicKeyDataChihiro, 284); // TODO: memcpy(keys[3].Default, (void*)xbox::XePublicKeyDataDebug, 284); for (unsigned int i = 0; i < keys.size(); i++) { diff --git a/src/core/kernel/common/xbox.h b/src/core/kernel/common/xbox.h index d1784a8ce..ba04a9cfa 100644 --- a/src/core/kernel/common/xbox.h +++ b/src/core/kernel/common/xbox.h @@ -484,8 +484,8 @@ XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys[ALTERNATE_SIGNA // ****************************************************************** XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyData[284]; XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataRetail[284]; -XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiroGame[284]; -XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiroBoot[284]; +XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataDebug[284]; +XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiro[284]; // ****************************************************************** // * 0x0165 - IdexChannelObject diff --git a/src/core/kernel/exports/EmuKrnlAv.cpp b/src/core/kernel/exports/EmuKrnlAv.cpp index d5e50ce39..a71f8aa7d 100644 --- a/src/core/kernel/exports/EmuKrnlAv.cpp +++ b/src/core/kernel/exports/EmuKrnlAv.cpp @@ -101,27 +101,20 @@ void ARX_WR(void *Ptr, xbox::uchar_xt i, xbox::uchar_xt d) g_NV2A->BlockWrite(block, NV_PRMCIO_ARX, d, sizeof(uint8_t)); } - -// Global Variable(s) -PVOID g_pPersistedData = NULL; -ULONG AvpCurrentMode = 0; - ULONG AvSMCVideoModeToAVPack(ULONG VideoMode) { - switch (VideoMode) - { - case 0x0: return AV_PACK_SCART; - case 0x1: return AV_PACK_HDTV; - case 0x2: return AV_PACK_VGA; - case 0x3: return AV_PACK_RFU; - case 0x4: return AV_PACK_SVIDEO; - case 0x6: return AV_PACK_STANDARD; + switch (VideoMode) { + case 0x0: return g_bIsChihiro ? AV_PACK_VGA : AV_PACK_SCART; // Scart on Retail/Debug, VGA on Chihiro + case 0x1: return AV_PACK_HDTV; + case 0x2: return AV_PACK_VGA; + case 0x3: return AV_PACK_RFU; + case 0x4: return AV_PACK_SVIDEO; + case 0x6: return AV_PACK_STANDARD; } return AV_PACK_NONE; } - ULONG AvQueryAvCapabilities() { ULONG avpack = AvSMCVideoModeToAVPack(xbox::HalBootSMCVideoMode); @@ -306,6 +299,7 @@ XBSYSAPI EXPORTNUM(3) xbox::ulong_xt NTAPI xbox::AvSetDisplayMode Pitch /= 8; + static xbox::ulong_xt AvpCurrentMode = 0; if (AvpCurrentMode == Mode) { REG_WR32(RegisterBase, NV_PRAMDAC_GENERAL_CONTROL, GeneralControl); CRTC_WR(RegisterBase, NV_CIO_SR_LOCK_INDEX /*=0x1c*/, NV_CIO_SR_UNLOCK_RW_VALUE); /* crtc lock */ diff --git a/src/core/kernel/exports/EmuKrnlXe.cpp b/src/core/kernel/exports/EmuKrnlXe.cpp index 6a8c28f89..6f60c6d9e 100644 --- a/src/core/kernel/exports/EmuKrnlXe.cpp +++ b/src/core/kernel/exports/EmuKrnlXe.cpp @@ -190,8 +190,8 @@ xbox::uchar_xt xbox::XePublicKeyDataRetail[284] = { 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 }; -// Chihiro Game Public Key -xbox::uchar_xt xbox::XePublicKeyDataChihiroGame[284] = { +// Debug Public Key +xbox::uchar_xt xbox::XePublicKeyDataDebug[284] = { 0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x9B, 0x83, 0xD4, 0xD5, 0xDE, 0x16, 0x25, 0x8E, 0xE5, 0x15, 0xF2, 0x18, 0x9D, 0x19, 0x1C, 0xF8, @@ -218,8 +218,8 @@ xbox::uchar_xt xbox::XePublicKeyDataChihiroGame[284] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -// Chihiro bootloader public key (Segaboot) -xbox::uchar_xt xbox::XePublicKeyDataChihiroBoot[284] = { +// Chihiro public key (Segaboot) +xbox::uchar_xt xbox::XePublicKeyDataChihiro[284] = { 0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6B, 0x7B, 0x38, 0x78, 0xE3, 0x16, 0x04, 0x88, 0x1D, 0xAF, 0x63, 0x4E, 0x23, 0xDB, 0x10, 0x14,