hrydgard/ppsspp

Tony Hawk's Project 8 Soundtrack features disabled after update

Eddie-M92 opened this issue · 9 comments

Game or games this happens in

ULUS-10197 - Tony Hawk's Project 8

What area of the game / PPSSPP

Tony Hawk's Project 8's Soundtrack feature has suddenly become completely disabled after working fine in a previous version.

  • The audio output for the rest of the game works just as intended but no music or official soundtrack features will work at all from the very moment the game boots up.
  • When trying to "Skip Track" or "Preview Track" in the sound options, nothing happens.
  • The only remaining half-unaffected feature is that the pause menu will display what track is supposed to be playing, but nothing can be done to either make it play or change the track.
  • Using the "Skip Track" menu function has no effect on the randomly displayed song in the pause menu. It will also never change what song is displayed no matter how long you wait.

I also want to explain some troubleshooting I have done:

  • Removing all save files and replacing/re-verifying the .iso with a new one doesn't affect the bug
  • Trying Tony Hawk's Project 8 rom builds v1.00 and v2.03 did not affect the bug
  • Rendering with Direct 3D9, Direct 3D11, and OpenGL did not affect the bug (My system does not support Vulkan)
  • I have gotten the issues fixed by reverting to the previous version I had on backup which was v1.15.4
    (I rarely use emulation due to multiple factors so sorry it's such an old build)

I am aware that ever since v1.15.4, changes were made to how Atrac and Atrac3+ were utilized by PPSSPP and I believe it is directly related to how those changes were implemented and how they interact with whatever strange methods Activision uses to encrypt their licensed music. A failure to use soundtrack features very well could be an anti-piracy measure being falsely triggered by the newer audio code.
(which works great by the way. SO MUCH audio crackling across multiple games has been fixed when testing default automatic settings with the newest build. Great Job!)

What should happen

  • There should be music playing on the main menu and in-game.
  • A pop-up menu should display that informs you what song is playing and what artist made it when the songs change.
  • In the Settings menu under Sound Options, "Skip Track" and "Preview Track" should update the current track to something else alongside a pop-up menu displaying the new track information.

Logs

No response

Platform

Windows

Mobile device model or graphics card (GPU)

AMD Radeon R6 Graphics (491 MB)

PPSSPP version affected

1.19.3

Last working version

1.15.4 - May of 2023 was the last time this rom had no issues emulating soundtrack.

Graphics backend (3D API)

Direct3D 11

Checklist

  • Test in the latest git build in case it's already fixed.
  • Search for other reports of the same issue.
  • Try resetting settings or older versions and include if the issue is related.
  • Try without any cheats and without loading any save states.
  • Include logs or screenshots of issue.

Can you try the latest builds from https://www.ppsspp.org/devbuilds/ ?

There's been some further changes since 1.19.3.

I have just now tested the latest devbuild v1.19.3-559 and the bug was unaffected.
I apologize for not fully clarifying the build I was using.

That is strange! I will look into it.

Thank you for your rapid response.

A note that may help:
I discovered while researching this problem that some people on other forums like Reddit have also had sudden sound issues with this same game on iOS v1.19.2 as well. It was as recent as August 13th that this same issue was reported, so you may find some helpful information there if you investigate that issue as well.
I saw one user fixed it by reverting to iOS PPSSPP Gold v1.17.3 if that helps narrow down the change to look for.

My guess is that it's a specific issue caused by Tony Hawk's Project 8 itself and how it accesses it's soundtrack. I've seen this kind of thing happen before with older Tony Hawk PC games running on newer systems.
I will try to keep up on the devbuilds and update here if it changes. I have a busy week ahead though so I won't be as quick as today.
Thank you again for all your hard work!

Does old sceAtrac implementation can help this issue?

Broken since v1.18.1-1317, last works in v1.18.1-1312.

EDIT:
error in log every time a song is supposed to start playing.

39:40:495 stream threa E[SCEUTIL]: HLE\sceUtility.cpp:540 SCE_KERNEL_ERROR_MODULE_ALREADY_LOADED=sceUtilityLoadAvModule(00000000)

Oh very interesting, that means #20114 .

That's when we changed a bunch of details of how sceAtrac is loaded, in order to prepare for the new methods. Presumably we did something the game didn't like. That will help my invesigation.

Alright, the issue is that it doesn't like that error code. The game does try to load module 0x300 twice. Turns out we were simply returning the wrong error code, fixing that.

Just tested most recent devbuild v1.19.3-656
I can confirm that this bug has been fixed!
Awesome work!