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

Fix for failed secondary copy check in crash bash #61

Open
jgfMechatronics opened this issue Feb 2, 2025 · 1 comment
Open

Fix for failed secondary copy check in crash bash #61

jgfMechatronics opened this issue Feb 2, 2025 · 1 comment

Comments

@jgfMechatronics
Copy link

I implemented this code and arduino hardware mod on my PU-8 I believe, with an arduino Nano something, code in ARDUINO_328_BOARD mode.

I got an anti piracy screen during loading of crash bash, after the initial wobble check had passed. I looked at the serial and noticed that the chip was injecting very shortly before the spooky screen popped up. So my first thought was the modchip was injecting at the wrong time. I also noticed I was getting intermittent spooky screens when loading spyro, but only with the serial open. Similar pattern except the Injection time was less close to the anti-piracy screen time.

I tried disabling the arduino after the initial copy check passed, but still got the anti-piracy screen, which implied it couldn't be as simple as the arduino erroniously injecting and triggering the anti-piracy. I started wondering if some games might do both the regular and stealth mod chip in very short succession. IE they:
move the read head to the wobble zone, expect a region code (stealth mod chip check)
move the read head out of the wobble zone, expect no region code (regular mod chip check)

If the expect is violated for either condition, a copy protection screen is shown.

I started wondering if the arduino might be injecting for too long. The arudino may inject appropriately, satisfying the stealth mod chip check, but then keep injecting for too long, tripping the regular mod chip check.

I tried the following modification at the injection block:
#########################

for (byte loop_counter = 0; loop_counter < 2; loop_counter++)
{
inject_SCEX('a'); // e = SCEE, a = SCEA, i = SCEI //Modified for SCEA
//inject_SCEX('a'); // injects all 3 regions by default
//inject_SCEX('a'); // optimize boot time by sending only your console region letter (all 3 times per loop)
}

################################
IE I only called the inject function once.

I also lowered the hysteresis threshold for quicker reaction to the read head moving to the wobble zone, as my drive seemed tight. Unsure if this is actually important.

This solved the anti-piracy in crash bash, and has not yet failed to authenticate during boot.

I'd commit this properly on git but I have never contributed to an open source project before and want to take my time to learn the process before actually messing around in the code. Wanted to write this down before I forgot.

@kalymos
Copy link
Owner

kalymos commented Feb 2, 2025

Hello
Thanks for your feedback. If it works, you must have done the right things ;)
Don't waste too much time rewriting this version, it's the old one, I'll have to push myself a little to bring the new version.
If you want to take a look at it, it's over there https://github.com/kalymos/PSNee_V8/tree/test2

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

No branches or pull requests

2 participants