Merge pull request #2205 from RadWolfie/move-minor-changes

move minor changes into upstream from chihiro branch
This commit is contained in:
PatrickvL 2021-04-23 08:22:47 +02:00 committed by GitHub
commit e6e0d5da9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 22 deletions

View File

@ -774,8 +774,8 @@ bool Xbe::CheckSignature()
// Hash against all currently known public keys, if these pass, we can guarantee the Xbe is unmodified // Hash against all currently known public keys, if these pass, we can guarantee the Xbe is unmodified
std::array<RSA_PUBLIC_KEY, 3> keys = { 0 }; std::array<RSA_PUBLIC_KEY, 3> keys = { 0 };
memcpy(keys[0].Default, (void*)xbox::XePublicKeyDataRetail, 284); memcpy(keys[0].Default, (void*)xbox::XePublicKeyDataRetail, 284);
memcpy(keys[1].Default, (void*)xbox::XePublicKeyDataChihiroGame, 284); memcpy(keys[1].Default, (void*)xbox::XePublicKeyDataDebug, 284);
memcpy(keys[2].Default, (void*)xbox::XePublicKeyDataChihiroBoot, 284); memcpy(keys[2].Default, (void*)xbox::XePublicKeyDataChihiro, 284);
// TODO: memcpy(keys[3].Default, (void*)xbox::XePublicKeyDataDebug, 284); // TODO: memcpy(keys[3].Default, (void*)xbox::XePublicKeyDataDebug, 284);
for (unsigned int i = 0; i < keys.size(); i++) { for (unsigned int i = 0; i < keys.size(); i++) {

View File

@ -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 XePublicKeyData[284];
XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataRetail[284]; XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataRetail[284];
XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiroGame[284]; XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataDebug[284];
XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiroBoot[284]; XBSYSAPI EXPORTNUM(355) uchar_xt XePublicKeyDataChihiro[284];
// ****************************************************************** // ******************************************************************
// * 0x0165 - IdexChannelObject // * 0x0165 - IdexChannelObject

View File

@ -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)); 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) ULONG AvSMCVideoModeToAVPack(ULONG VideoMode)
{ {
switch (VideoMode) switch (VideoMode) {
{ case 0x0: return g_bIsChihiro ? AV_PACK_VGA : AV_PACK_SCART; // Scart on Retail/Debug, VGA on Chihiro
case 0x0: return AV_PACK_SCART; case 0x1: return AV_PACK_HDTV;
case 0x1: return AV_PACK_HDTV; case 0x2: return AV_PACK_VGA;
case 0x2: return AV_PACK_VGA; case 0x3: return AV_PACK_RFU;
case 0x3: return AV_PACK_RFU; case 0x4: return AV_PACK_SVIDEO;
case 0x4: return AV_PACK_SVIDEO; case 0x6: return AV_PACK_STANDARD;
case 0x6: return AV_PACK_STANDARD;
} }
return AV_PACK_NONE; return AV_PACK_NONE;
} }
ULONG AvQueryAvCapabilities() ULONG AvQueryAvCapabilities()
{ {
ULONG avpack = AvSMCVideoModeToAVPack(xbox::HalBootSMCVideoMode); ULONG avpack = AvSMCVideoModeToAVPack(xbox::HalBootSMCVideoMode);
@ -306,6 +299,7 @@ XBSYSAPI EXPORTNUM(3) xbox::ulong_xt NTAPI xbox::AvSetDisplayMode
Pitch /= 8; Pitch /= 8;
static xbox::ulong_xt AvpCurrentMode = 0;
if (AvpCurrentMode == Mode) { if (AvpCurrentMode == Mode) {
REG_WR32(RegisterBase, NV_PRAMDAC_GENERAL_CONTROL, GeneralControl); 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 */ CRTC_WR(RegisterBase, NV_CIO_SR_LOCK_INDEX /*=0x1c*/, NV_CIO_SR_UNLOCK_RW_VALUE); /* crtc lock */

View File

@ -190,8 +190,8 @@ xbox::uchar_xt xbox::XePublicKeyDataRetail[284] = {
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
}; };
// Chihiro Game Public Key // Debug Public Key
xbox::uchar_xt xbox::XePublicKeyDataChihiroGame[284] = { xbox::uchar_xt xbox::XePublicKeyDataDebug[284] = {
0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x9B, 0x83, 0xD4, 0xD5, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x9B, 0x83, 0xD4, 0xD5,
0xDE, 0x16, 0x25, 0x8E, 0xE5, 0x15, 0xF2, 0x18, 0x9D, 0x19, 0x1C, 0xF8, 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 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; };
// Chihiro bootloader public key (Segaboot) // Chihiro public key (Segaboot)
xbox::uchar_xt xbox::XePublicKeyDataChihiroBoot[284] = { xbox::uchar_xt xbox::XePublicKeyDataChihiro[284] = {
0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6B, 0x7B, 0x38, 0x78, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6B, 0x7B, 0x38, 0x78,
0xE3, 0x16, 0x04, 0x88, 0x1D, 0xAF, 0x63, 0x4E, 0x23, 0xDB, 0x10, 0x14, 0xE3, 0x16, 0x04, 0x88, 0x1D, 0xAF, 0x63, 0x4E, 0x23, 0xDB, 0x10, 0x14,