Skip to content
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

Closed
wants to merge 3 commits into from
Closed

MagicGate #4274

wants to merge 3 commits into from

Conversation

balika011
Copy link

No description provided.

@@ -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");
Copy link
Member

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?

Copy link
Author

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 @@
/**
Copy link
Member

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

Copy link
Member

@GovanifY GovanifY left a 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 */ };
Copy link
Member

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 */ };
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

@balika011
Copy link
Author

Feel free to do anything you want with this.
Clean up, make some polish, add UI and stuff like that.
Don't forget to bring your own keys!

}
}

readAndDecryptKeyStore(1); // 0: dev, 1: retail, 2: proto?, 3: arcade
Copy link
Author

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

@refractionpcsx2
Copy link
Member

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.

@PCSX2 PCSX2 locked and limited conversation to collaborators Mar 10, 2021
@PCSX2 PCSX2 deleted a comment from weirdbeardgame Mar 10, 2021
@lightningterror
Copy link
Contributor

Closing for the reasons stated previously.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants