alex-free / tonyhax

Japanese/American/European Universal PS1 Backup loader fork for ALL PS1 consoles, and PS2 console models SCPH-10000-SCPH-39004.
https://alex-free.github.io/tonyhax-international
Do What The F*ck You Want To Public License
39 stars 1 forks source link

Intermitted autoboot 1.2.0/1.2.1 #17

Closed JMaxxL closed 1 year ago

JMaxxL commented 1 year ago

On a flashed rom cart international will boot a backup 90% of the time even when the game is in the drive w/lid closed. But every once & a while you will find some games will need the lid opened then closed to start. But that same game will autoboot when the lid is closed every time after, w/ game in the drive on power up.

SCPH 7051 bios4.1 NTSC

alex-free commented 1 year ago

On a flashed rom cart international will boot a backup 90% of the time even when the game is in the drive w/lid closed. But every once & a while you will find some games will need the lid opened then closed to start. But that same game will autoboot when the lid is closed every time after, w/ game in the drive on power up.

SCPH 7051 bios4.1 NTSC

Does it get stuck on the first initializing CD or is it something else that happens intermittently?

alex-free commented 1 year ago

If it is getting stuck at the first 'Initializing CD' text I have an idea on why this occurs and a possible fix. I think it is possible that a race condition could occur, where the kernel called cd init close enough to when the ROM takes over and tries to call it before the original one completed. That might mess up interrupts and could cause this. Let me know if this is the issue.

JMaxxL commented 1 year ago

Yes it stopped at the 'Initializing CD' line, then continued when I open & closed the lid. But I have not been able to recreate this issue unless I turned the console on at the exact same time I closed the lid or close to the exact same time. But so far every CD-R I have tried that was burnt @ 1x has been booting with the lid closed at power on.

alex-free commented 1 year ago

Yes it stopped at the 'Initializing CD' line, then continued when I open & closed the lid. But I have not been able to recreate this issue unless I turned the console on at the exact same time I closed the lid or close to the exact same time. But so far every CD-R I have tried that was burnt @ 1x has been booting with the lid closed at power on.

Your awesome! I experienced this before and thought it was a fluke, related to the console's CD drive. Now I know it's not.

Something related, the GameSharkHAX method takes control over a game at an arbitrary point in execution, which seems to in some cases also have this issue very intermittently, almost confirms that this is the issue. Some kind of race condition between CDINIT being called.

I'm gonna send a build first that stops the motor before sending the first CDINIT. If that doesn't work I got more tricks up my sleeve...

alex-free commented 1 year ago

tonyhax-v1.2.1-international-test1.zip

Please test this when you can, it should auto-boot every single time.

The auto-boot is indeed an intended feature. If you can test many times, please do.

The opening/closing before is not really an intended supported method, but you have said before that it happened with the lid closed from power on. So maybe this would fix all of the above?

JMaxxL commented 1 year ago

could leaving FreePSXBoot in the drive cause this issues Im 99% I have left it in before only problem so far was harmful park

alex-free commented 1 year ago

could leaving FreePSXBoot in the drive cause this issues Im 99% I have left it in before only problem so far was harmful park

Maybe, It's only really specific games that have the issue with leaving the FPSXB cards in the consoles causing freezing so apparently as we have seen. As a general rule though to ensure no issues you must remove the cards.

Even though you used the ROM, having the card in will still screw up the console. FPSXB cards even screw up swap tricks.

I still think this issue might be that race condition I was talking about before because I've experienced it very rarely, again I thought it was due to consoles cd drive when it happened.

alex-free commented 1 year ago

Have you been able to reproduce this issue with the newest build?

JMaxxL commented 1 year ago

on 1.2.1 no not without closing the lid right as I boot up the console, so far I have not got any stalls.

alex-free commented 1 year ago

on 1.2.1 no not without closing the lid right as I boot up the console, so far I have not got any stalls.

So the new build linked above did fix this issue?

JMaxxL commented 1 year ago

YES

alex-free commented 1 year ago

YES

Interesting that the test1 build fixed this simply by stopping the motor before the first INT. This should also fix the very infrequent GSHAX issue related to this. Once I can confirm that I'll push v1.2.2 with these changes.

JMaxxL commented 1 year ago

https://github.com/alex-free Im intrigued by GSHAX what do I need to use enable it, I have been doing PAL50hz to NTSC60hz codes & if I'm understanding GSHAX correctly it is an exploit that boots backups with only a stock gameshark ? what is the point of it

alex-free commented 1 year ago

https://github.com/alex-free Im intrigued by GSHAX what do I need to use enable it, I have been doing PAL50hz to NTSC60hz codes & if I'm understanding GSHAX correctly it is an exploit that boots backups with only a stock gameshark ? what is the point of it

This is the use case I use:

1) Generate a save game file using gshax tool that contains the gshax codes and copy it to a PS1 memory. Also copy the 'HAX' file to the memory card (this file is also used by the save game exploits).

2) Start the GameShark Lite CD on an unmodified USA console (PS1 or PS2). Enable the codes loaded from the save game file.

3) The GameShark Lite requires you to open the CD drive, remove the GameShark Lite CD disc, and put in the game, then close the CD drive to boot it. Do this for the target game.

4) At a specific point while the target game is running the GSHAX codes hijacks the game code and start the Tonyhax International loader enabling backups to be played.

So basically you can use a GameShark Lite CD, any real NTSC-U PSX game, and a memory card with the GameShark Lite save containing the codes and the loader file on it to boot backups.

You can also use any other cheat device. Some cheat devices like the GameShark v2.0-v3.2 and all versions from v4.0 and up have a swap trick ability built in though, so that is more convenient since you can just use that to boot the Tonyhax International Boot CD. But many others like the GameShark Lite CD and GameShark CDX v3.3 do not have a swap trick so GSHAX is useful as a way in to boot backups.

Action Replay and any other cheat device would also work to use the codes, and would be useful if such devices also don't have a built in swap trick.

There's more info on the Tonyhax International homepage's GSHAX section.

I have 3 save game files for GameShark Lite for 3 different games included in the Tonyhax International releases so far. There are also .txt files containing all the codes if you don't have a GameShark Lite and need to manually enter in the codes.

JMaxxL commented 1 year ago

https://www.youtube.com/watch?v=sujXwGnPtqQ&ab_channel=JayTime

Hey alex sorry I have not been at home. All I could do was a cellphone step by step for THi. I dont have access to my videocard or software, I did my best there was only ONE international demo on youtube. It was a Japanese & in Spanish I think.... So I made a demo of a international cheat cart & 2nd step by step... Atleast if someone is scanning youtube they might find it, seems like everyone knows about UniROM to the point they call UniROM "FreePSXBoot" & dont know it is also used in tonyhax, that tonyhax can be used in slot 2, left in, let alone what's possible with the international version were you can flash it onto a chat cart PLUS it can be used on Japanese PS1's (im trying to get my hands on JAP console) GSHAX is next

JMaxxL commented 1 year ago

this is the 1st video I made just to show its possible https://www.youtube.com/watch?v=37b_EcYNSr8&t=18s&ab_channel=JayTime

alex-free commented 1 year ago

Hey, really cool vids man I've been meaning to make some. I have a capture card that supports S-video and RCA. The early SCPH-3000 and SCPH-1000 consoles support S-video output, which is the best of all real hardware output wise.

So, it turns out that my 'test-1' build (which is different from the current latest release v1.2.1) did not fix the race condition. I did confirm the race condition, and I can reliably trigger it with v1.2.1 by using the GHSAX code trigger in Ridge Racer at a very specific point while the game is loading data from the CD. So yea, that's a real issue in v1.2.1 that also could happen very rarely in the ROM.

I figured out a solution for the race condition finally after 3 days or so of messing with stuff. I also figured out an issue with booting the rom flashed CD from the tonyhax international loader that had been triggered via gshax. All known issues now have a fix that has been implemented for v1.2.2, which is almost ready for release.

Also, the GameShark Lite I designed GSHAX around does support memory card code saves... that's a feature of GSHAX Tool, it can output a valid GameShark Lite save with codes already entered. I only say this because I remember watching one of your videos talking about which GameSharks support memory card code saves.

The GameShark v4.0 and above have a swap trick that doesn't involve a moving disc. I wrote about it in the boot Cd section of the Tonyhax International documentation. You could use a real GameShark v4 or newer to run the rom flasher CD for example or just the Boot CD.

Good luck on the GSHAX codes! I'll implement any that you make. Might be worth picking up GameShark Lite though, or even just making a backup from a BIN+Cue image that you find. See, you can just use Tonyhax International on a USA/PAL console to boot a GameShark Lite backup CD. Then you can use that to boot your backup game and it will work. I don't think that the anti-piracy bypass would still work after booting the GameShark Lite this way though.

If you do pick up a jap console, I like the launch ones. Mostly because they have S-Video, but also because they are immune to triggering any anti-piracy measure in every game. They can play more anti-piracy games then all other consoles using Tonyhax International. While Tonyhax International can bypass most anti-piracy games, I haven't 100% covered every game, there are many and I haven't finished support. Most of the popular games do work though.

Maybe also of interest is my APRIP software? It allows you to directly patch the BIN+CUE image of a game containing the additional anti-piracy stuff. That way the burned CD just works on even UNIROM. For some of the games I haven't added support for Tonyhax International in, it can also provide a way to play.

Aprip also can generate GameShark codes that bypass anti-piracy, should really check it out.