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

Aces of War (Europe) freezes up after chapter selection #11062

Closed
benderscruffy opened this issue May 21, 2018 · 31 comments · Fixed by #18369
Closed

Aces of War (Europe) freezes up after chapter selection #11062

benderscruffy opened this issue May 21, 2018 · 31 comments · Fixed by #18369
Labels
I/O Affected by I/O timing settings, or other kind of I/O issue. Not a bug
Milestone

Comments

@benderscruffy
Copy link

benderscruffy commented May 21, 2018

PPSSPP v1.5.4-995-g373366911 Windows 64 bit
choose mission mode then the chapter you want to play then choose a part of the story you want to play, after you choose it the game just freezes while music in the background plays
ppsspplog.zip

@ppmeis
Copy link
Contributor

ppmeis commented May 27, 2018

Tested in latest Windows build 1.6, issue confirmed.

@Anderanerin
Copy link

Tested with the European and Japanese versions of the game in Windows V1.9.3, however this also occurs on actual PSP hardware running CFW as well as a PSVita using adrenaline. This particular game really doesn't seem to like being run from a disk image.

@LunaMoo
Copy link
Collaborator

LunaMoo commented Nov 13, 2019

So it's not a bug, however it still could be fixed by simulating UMD delays, maybe already is, since it's not activated by default.

@Anderanerin
Copy link

Just tested on Windows 1.9.3 with simulated UMD delay and all other settings default, still no joy. Are there any logs or dumps I could provide that might be helpful?

@Panderner
Copy link
Contributor

Is this a anti piracy measure? It should detected on PSP and PS Vita running CFWs. And i mentioned the DJ Max Portable's copy protection.

@LunaMoo
Copy link
Collaborator

LunaMoo commented Nov 20, 2019

This isn't an anti copy protection, it's just the typical badly coded game that depends on exact hardware timing. It works from umd which is extremely slow, and bugs out from any faster medium. Since it was confirmed to happen on real PSP it's not a bug, but it can at some point in the future be solved by simulating real hardware slowness better.

@hrydgard
Copy link
Owner

hrydgard commented Nov 20, 2019

Yeah our current simulated UMD delays are still far faster than real hardware. We need an extra mode with slower measured timings (though might be possible to just fake and hope, also...)

@hrydgard hrydgard added the I/O Affected by I/O timing settings, or other kind of I/O issue. label Nov 20, 2019
@hrydgard hrydgard added this to the v1.10.0 milestone Nov 20, 2019
@Panderner
Copy link
Contributor

Can you listed in #7647?

@hrydgard
Copy link
Owner

So does this actually work now on recent builds, or not, with the UMD I/O timings?

@Anderanerin
Copy link

Issue still appears to persist on Windows 64bit build v1.9.3-900-g79299e19f.
Tried with otherwise default settings and with all I/O timing methods. It still hangs in the same spot.
It is possible to get ingame on training missions regardless of the I/O timing settings (as I think was the case on the stable build), but trying to launch missions still produces the hang.

@hrydgard hrydgard modified the milestones: v1.10.0, v1.11.0 May 24, 2020
@hrydgard hrydgard modified the milestones: v1.11.0, v1.12.0 Nov 23, 2020
@sum2012
Copy link
Collaborator

sum2012 commented Feb 14, 2021

The gameid is ULES00590

@hrydgard hrydgard modified the milestones: v1.12.0, v1.13.0 Jul 11, 2021
@Sukotto-1999
Copy link

Oh! It appears, the game itself, actually includes an anti-piracy measure! I analyzed the copy protection scheme itself and it turns out the game compares the loading times with the one that's being requested, if this check fails, the game will freeze while the background music still plays.

@Panderner
Copy link
Contributor

Oh! It appears, the game itself, actually includes an anti-piracy measure! I analyzed the copy protection scheme itself and it turns out the game compares the loading times with the one that's being requested, if this check fails, the game will freeze while the background music still plays.

@Sukotto-1999 are you tested with your CFW PSP?

@hrydgard
Copy link
Owner

@Sukotto-1999 Really, got any more details? Is it timing a whole loading process or just individual reads, and if so, do you know the thresholds?

@Sukotto-1999
Copy link

Unfortuanently, i am aware of risks of semi-bricking my PSP-3000. So, i may have to test on my CFW'ed PSP-1000 (Jap model) to verify.

@Sukotto-1999
Copy link

Sukotto-1999 commented Feb 20, 2023

Oh, and by the way, how about a new option that allows to set a delay that can allow bypassing the freeze.

Here how UMD detection works:
The game calculates the requested milliseconds and compares them to the actual loading time itself.

Example:

When loading via UMD: same milliseconds compared to requested = Game loads fine
When loading via Memory Stick: few milliseconds compared to requested one = Check fails, game freezes.

I'll upload a comparison later.

@hrydgard
Copy link
Owner

You say you analyzed it and found a copyright protection scheme, but are you really sure it is one? It could theretically also be that something else in PPSSPP is too fast or slow, causing a race condition that doesn't happen on the real hardware. Like, does it work on real hardware both from ISO and UMD? Those have very different timings...

Typical cases of that is the dialog functions, synchronizing with graphics rendering, and such things, but would need to step through (using "Next HLE" repeatedly in the PPSSPP disassembly window) during the specific time where it hangs to collect a list of candidate functions...

@sum2012
Copy link
Collaborator

sum2012 commented Feb 22, 2023

From
https://www.youtube.com/watch?v=me3EAMu1QFU&lc=Ugyppxz9CArGT991dMx4AaABAg.8ffAiy398BO9N64wbWVelH
I confirm convert to CSO format can play in REAL PSP of Memory strick.
ISO format can NOT play in REAL PSP.

I don't know that change timing of CSO of coding in PPSSPP.

@anr2me
Copy link
Collaborator

anr2me commented Feb 22, 2023

From https://www.youtube.com/watch?v=me3EAMu1QFU&lc=Ugyppxz9CArGT991dMx4AaABAg.8ffAiy398BO9N64wbWVelH I confirm convert to CSO format can play in REAL PSP of Memory strick. ISO format can NOT play in REAL PSP.

I don't know that change timing of CSO of coding in PPSSPP.

decompression using PSP's CPU should be much slower than decompression on PPSSPP isn't? thus may affect the timing on real PSP, unless CSO also worked fine on PPSSPP while ISO didn't ... that would indeed be strange

@Sukotto-1999
Copy link

Okay, instead of uploading a comparison, how about i wrote a comment about a comparison of booting ModNation Racers by either UMD or ISO. When loading ModNation Racers via a physical UMD copy, a loading ring icon appears before the warning screen. You cannot see the loading ring icon when using an ISO copy. If using "Simulate UMD delays" I/O setting on PPSSPP with ModNation Racers, You cannot see the loading ring icon.
2023-03-05 16-09-32
UMD Copy
2023-03-05 16-12-00
ISO Copy

@anr2me
Copy link
Collaborator

anr2me commented Mar 17, 2023

Hmm.. according to this post Pac Man World Rally also have freezing issue on certain levels, which also freezes on real PSP but works on Vita https://forums.ppsspp.org/showthread.php?tid=29262&pid=146290#pid146290
May be it have similar I/O timing issue with Aces of War.

@sum2012
Copy link
Collaborator

sum2012 commented Oct 18, 2023

I get 100 multiple times slower in reading data in-game !!!
I will pull request next day night.
1
2

sum2012 added a commit to sum2012/ppsspp that referenced this issue Oct 18, 2023
@anr2me
Copy link
Collaborator

anr2me commented Oct 19, 2023

I noticed that Crazy Taxi Fare Wars can sometimes stuck/freezes after selecting either Crazy Taxi or Crazy Taxi 2 (still showing the game selection screen while it stucks), where it usually checks the memstick/game saves, so may be that game also have issue with I/O too sometimes but rarely gets triggered (or may be because i use save state to skips the intro, but still rare to happen)

@sum2012
Copy link
Collaborator

sum2012 commented Oct 22, 2023

Hmm.. according to this post Pac Man World Rally also have freezing issue on certain levels, which also freezes on real PSP but works on Vita https://forums.ppsspp.org/showthread.php?tid=29262&pid=146290#pid146290 May be it have similar I/O timing issue with Aces of War.

Testing with adhoc is impossible for me ,I am testing in single player
EDIT:Seem no problem

@Sukotto-1999
Copy link

UPDATE: I tested the game either via no-UMD or UMD driver on CFW. and the game hangs when selecting a chapter (ISO) or crashes when starting a level (CSO).

Also, same for PPSSPP. I can't start a level. Sorry!

@sum2012
Copy link
Collaborator

sum2012 commented Oct 26, 2023

@Sukotto-1999 I am using Inferno Mode of PRO C2 CFW
Anyway , if you are using windows , you can test this build https://github.com/hrydgard/ppsspp/actions/runs/6574857743#artifacts

@Sukotto-1999
Copy link

Sukotto-1999 commented Oct 26, 2023

Actually, i reduced the crashing by compressing the game with UMDGen to CSO by using compression level 7. Should work now on CFW on PSP.

@Sukotto-1999
Copy link

Okay, here's how the checking process works, in Aces of War.

When selecting a mission or returning from the mission, the game checks the reading speed to ensure the game is running via the UMD copy. If it detects that the loading times are shorter than expected, it will softlock the game with the music still playing. Quitting the game after softlock still works.

To get pass the copy protection, i simply compressed the game with UMDGen by using compression 7. Should simulate the UMD loading times for Aces of War. The same method for Aces of War don't work on the DJMax games (example DJMax Fever Retail), but i really want to get DJMax Fever (UMD/Retail) to work as a backup, can someone send me the patched executable, not the actual game. The patch for the UMD version was now long gone. I can't find any.

@anr2me
Copy link
Collaborator

anr2me commented Oct 27, 2023

The same method for Aces of War don't work on the DJMax games (example DJMax Fever Retail), but i really want to get DJMax Fever (UMD/Retail) to work as a backup, can someone send me the patched executable, not the actual game. The patch for the UMD version was now long gone. I can't find any.

There are infos regarding DJMax Fever anti-piracy at https://tcrf.net/DJMax_Fever

The game performs two checks to detect if a game is being played on a real copy. upon startup, the game checks the directory ms0:/PSP/ISO (on modded PSP systems, this allows ISO games to be run) on the inserted Memory Stick regardless of owning a real copy of the game or not. If the directory is detected on the inserted Memory Stick, the game will refuse to start and therefore shuts off your PSP system, forcing you to reload the system.

As with most DJMAX Portable games in the series after DJMAX Portable International, In the retail version of the game, The game will perform an additional check on a real UMD drive to ensure if the game is present. if it is not present, Then after playing the game for a few minutes, the anti-piracy will; Add the crackles to the background music before becoming a distorted high pitched sound, randomize the playback speed of the keysounds and SFX audio, and flicker the graphics list to randomly skip drawing textures which causes the screen to flash rapidly. After attempting to change the song one or two times, It will lock up the game. This is completely absent in the PSN versions.

@Sukotto-1999
Copy link

Well, i did document the anti-piracy on the TCRF. but someone can send me the patched executable for DJMax Fever [UMD VERSION, NOT PSN]? I said it's now long gone.

@hrydgard
Copy link
Owner

To get pass the copy protection, i simply compressed the game with UMDGen by using compression 7. Should simulate the UMD loading times for Aces of War. The same method for Aces of War don't work on the DJMax games (example DJMax Fever Retail), but i really want to get DJMax Fever (UMD/Retail) to work as a backup, can someone send me the patched executable, not the actual game. The patch for the UMD version was now long gone. I can't find any.

Setting a compression level and using host timing is not gonna work universally across devices with different speeds, so we're gonna need to do something different here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I/O Affected by I/O timing settings, or other kind of I/O issue. Not a bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants