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

Add Zettai Zetsumei Toshi 3 bypass for softlock #15687

Merged
merged 1 commit into from
Jul 15, 2022

Conversation

LunaMoo
Copy link
Collaborator

@LunaMoo LunaMoo commented Jul 14, 2022

Fixes #4901

I couldn't figure out the actual issue, pretty sure it's timing issue of some sort as the problem happens on PS3 following it's compatibility list.

Trying to push this fix as the game might become very popular in the next few days due to english translation releasing this month and while I shared a workaround for it already, I think having it playable out of the box would be a better experience for typical user using an emulator just because english translation.

@hrydgard
Copy link
Owner

That's quite an icky little hack :/

But, it indeed would be nice to have it working on 1.13 with a translation coming out... Hm hm. That it also happens on the PS3 port is quite curious indeed...

@LunaMoo
Copy link
Collaborator Author

LunaMoo commented Jul 14, 2022

Turns out they released less than an hour from me opening this and they included the workaround patch within the translation, so it's not a big deal anymore. BTW seems in addition to PS3, this is also a problem of PSV.

Still, original versions of the game will be broken without this, the function this workaround patches is only ever used at character select screen and my guess is it expects something to happen before it gives player control, this never happens or more likely happens earlier and that's why it's softlocked. Once the parameter is passed once the game will never again use that code until starting a new game again so it's safe and tested as I had my own "ingrish" translation years ago running with this workaround.

Edit: They also use exact patch I posted to deal with this problem(noping a branch) so english patched version wouldn't even have the code from here applied due to hash missmatch.

@hrydgard hrydgard added the HLE/Kernel Kernel, memory manager, other HLE issues label Jul 14, 2022
@ghost
Copy link

ghost commented Jul 15, 2022

From the page on gbatemp for the translation:

  • Built-in patch that fixes a bug present in PPSSPP and Adrenaline where the player cannot select a character

So this also happens n Adrenaline as well.
Reminds me of Resistance Retribution which also got a similar freeze/crash bug on both PPSSPP and Adrenaline.

@LunaMoo
Copy link
Collaborator Author

LunaMoo commented Jul 15, 2022

There's really no similarity between those games other than the fact that even official Sony's emulators can't get the timing same and some badly coded games suffer from it. RR just bugs out and crashes, ZZT3 expects something which doesn't happen outside of the real console.

From my injection of english translation into ZZT3 years ago seeing how they tried to be tricky about blocking(delaying) modifications to the game disc, that softlock at character select screen might just be another intentional anti-warez feature.

@hrydgard hrydgard merged commit e4128cb into hrydgard:master Jul 15, 2022
@hrydgard hrydgard added this to the v1.13.0 milestone Jul 15, 2022
@LunaMoo LunaMoo deleted the Zettai branch July 15, 2022 09:26
@ghost
Copy link

ghost commented Jul 15, 2022

There's really no similarity between those games other than the fact that even official Sony's emulators can't get the timing same and some badly coded games suffer from it. RR just bugs out and crashes, ZZT3 expects something which doesn't happen outside of the real console.

From my injection of english translation into ZZT3 years ago seeing how they tried to be tricky about blocking(delaying) modifications to the game disc, that softlock at character select screen might just be another intentional anti-warez feature.

I also had a theory that RR expects something too , in this case it expects USB to work.
That's because the game always expects or seems to check if the PSP is connected to PS3 for some bonus content.
The game always checks/polls it for the infection mode.
Which may be related to why it crashes or bugs out on emulators (Adrenaline also cant emulate the PSP's USB properly).

The game also checks the AV output as well (I think it's the only game that does it) to let you control the game with a dualshock 3 controller.
And well , that feature does not work on a Vita ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HLE/Kernel Kernel, memory manager, other HLE issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Zettai Zetsumei Toshi 3 Kowareyuku Machi to Kanojo no Uta cannot control in select screen
2 participants