-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MagicGate #4274
MagicGate #4274
Conversation
@@ -687,6 +868,36 @@ void cdvdReset() | |||
cdvd.RTC.day = (u8)curtime.GetDay(wxDateTime::GMT9); | |||
cdvd.RTC.month = (u8)curtime.GetMonth(wxDateTime::GMT9) + 1; // WX returns Jan as "0" | |||
cdvd.RTC.year = (u8)(curtime.GetYear(wxDateTime::GMT9) - 2000); | |||
|
|||
{ | |||
FILE *f = fopen("eks.bin", "rb"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, great to see this PR! We are working heavily on the GS right now so it might take a while for us to review/merge that.
Related to that snippet, you probably shouldn't be trying to read files as hardcoded as this, might want to use our ini settings class to set the path/ put it in the bios lookup system?
I'll wait for others to comment on the rest of the file as I'm working on another PR right now, but I assume this adds support for, in theory, official memcards and arcade systems? The protocol seems to be fully implemented, are there any pitfalls or things we should know since you left the description of your PR empty?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Arcade (Namco System 246/256) has some extra security that fails on PCSX2. It initializes the memory card, opens boot.bin, but doesn't try to decrypt. Fails before that. If somebody finds out why this happens it likely means that arcade will work.
@@ -0,0 +1,65 @@ | |||
/** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might want to throw that in 3rdparty instead of just dropping it in the main folder
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a cursory look it seems fine, no keys included so legally I'd say it's fine myself, but I'll ask for others to comment.
A cursory look at the protocol seems to implement it correctly, will need more time to review; thanks for the work but it'll probably still take quite a bit of work to see it merged
|
||
void generateResponse() | ||
{ | ||
uint8_t ChallengeIV[8] = { /* SHA256: e7b02f4f8d99a58b96dbca4db81c5d666ea7c46fbf6e1d5c045eaba0ee25416a */ }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you will probably need to implement something to look up the IV there, probably from our ini
/* SHA256: 04bcc6b13827829fb5cc8dbd86420d30f69a2bfd3b7719398b341e15368bd365 */ | ||
}; | ||
|
||
uint8_t g_KeyStoreKey[16] = { /* SHA256: 04bcc6b13827829fb5cc8dbd86420d30f69a2bfd3b7719398b341e15368bd365 */ }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
Feel free to do anything you want with this. |
} | ||
} | ||
|
||
readAndDecryptKeyStore(1); // 0: dev, 1: retail, 2: proto?, 3: arcade |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this needs to be set based on the loaded bios
Hi there, Thanks for the work you've done in reversing MechaCon. I don't know if we are going to pursue MagicGate emulation, legally it feels a little dangerous to be going down this path and without getting proper legal advice I'm not really comfortable putting the code in, regardless of the keys being there or not. I will leave this code here as it will probably be interesting for somebody and we may revisit in the future, but for now, this is probably as far as it's going to go. |
Closing for the reasons stated previously. |
No description provided.