-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Gripshift audio problems / errors #7601
Comments
Merge #6976 still do not work debug log: |
v1.0.1-178-g0dda098 Media log JPCSPtrace log: These line lend to the problem |
link to #7445 same sound problem |
Update the log to v1.0.1-195-g87f31d0 @unknownbrackets 24:20:180 FMOD Streame D[ME]: HLE\sceAtrac.cpp:1279 sceAtracGetStreamDataInfo(0, 0bfdeda4[08ce3180], 0bfdeda8[0001e000], 0bfdedac[0001e000]) 24:20:181 FMOD Streame I[KERNEL]: HLE\sceKernelThread.cpp:2176 735=sceKernelCreateThread(name=FMOD async FILE thread, entry=089ab078, prio=64, stacksize=4096) 24:20:181 FMOD Streame I[KERNEL]: HLE\sceKernelThread.cpp:2275 sceKernelStartThread(thread=735, argSize=4, argPtr=00000000) 24:20:181 FMOD Streame D[ME]: HLE\sceAtrac.cpp:788 sceAtracAddStreamData(0, 0001e000) JPCSPTrace log: Another new finding will discuss in pull request |
Yes, I already know that sceAtracGetStreamDataInfo (and several other funcitons) return and write very different values from what the PSP actually writes. A large portion of sceAtrac in PPSSPP does not function the way that sceAtrac works on PSP firmware - basically all of the buffer management, which is most of it, plus some of the context management. Unfortunately, it's hard to even tell if that's causing this problem or not. What's for sure is that if sceAtrac behaved exactly like it did on a PSP, more games would work more correctly. It's not for sure that it would even fix this issue, though it probably would. Because it affects an extremely large percentage of sceAtrac's code, the only way I know how and have time to fix it is incrementally, with information, reports, and testing from each step of the change. Certain games will, doubtless, break during the process, since all the wrong parts of sceAtrac are subtly relying on everything else that is also broken. It's a house of cards that has to be slowly transplanted, and some cards will definitely fall to the ground in the process - but they can be picked up. Nevertheless, no one wants / is willing for games to be broken. This means it all has to be changed at once, and has to be perfect (breaking no even kinda brokenly working games.) Unfortunately, this is completely and far beyond my abilities. Which means I'm not capable of fixing this. I could maybe add all kinda of crazy paths and game specific hacks to make certain games work, so I guess it's "within my abilities" to do it a horribly bad way, or just spend a ton of time on it slaving away, but since this is something I'm doing in my free time to (ideally) reduce my stress, I'm not interested. -[Unknown] |
It is okay,I just share what I find.
|
Fix GTA no sound and Fix hrydgard#7601
Okay, well, we've begun breaking some games in a long-term plan for sceAtrac now. What does this look like now? A more updated log may help. -[Unknown] |
Same before (this time I use eur version) |
You're right that the
When it runs out of the original data it had (109 remaining frames), it gets to 218. That's where it dies:
But another thing is happening here: I think this might be reading the data AFTER calling -[Unknown] |
Does #8356 help this at all? Although this might be streaming, I'm not sure. -[Unknown] |
v1.1.1-577-gefc1768 still not fixed |
v1.1.1-698-g98c779c |
Heh, that looks terrible. Looks like we'll be opening some new issues about this game now that it renders.. Does the music work okay? |
Yes |
Just waiting on the title,still |
edit:This time I use USA version |
Progress is good. That's interesting. It fails right around when the data added here is decoded: 22:43:490 FMOD Streame D[ME]: HLE\sceAtrac.cpp:1593 0=sceAtracGetStreamDataInfo(0, 09fdeda4[08ce31cc], 09fdeda8[0000f0f8], 09fdedac[0001e000])
22:43:490 FMOD Streame I[KERNEL]: HLE\sceKernelThread.cpp:1943 735=sceKernelCreateThread(FMOD async FILE thread, 089ab078, 00000064, 4096, 00000000, 00000000)
22:43:490 FMOD Streame I[KERNEL]: HLE\sceKernelThread.cpp:2014 0=sceKernelStartThread(735, 4, 00000000)
22:43:490 FMOD Streame D[ME]: HLE\sceAtrac.cpp:1072 0=sceAtracAddStreamData(0, 0000f0f8) Hmm: 22:17:909 user_main I[ME]: HLE\sceAtrac.cpp:1835 0=sceAtracSetData(0, 08ce3180, 0001e000): atrac3+ stereo audio Size seems right. So, I'm thinking it may be that it's writing asynchronously to the buffer, which still isn't supported. -[Unknown] |
Update Is happen in the actual master code test it in 1.5.4-692-g940d8b458
|
still not working and soft locking. v19.3-164-g0a5ec4838 |
Update: on the latest update it now crashes the emulator (exit to the home screen) v1.9.3-170-g6a196c04a on Android 9 |
USA version test full log: |
#7638 don't work |
v1.10.3-1330-g73da378ef-windows-amd64 same problem. |
I try to seek data when AddStreamData |
@eltomas2003 edit: or others |
Line 1093 in 1cd520a
I'm not familiar with audio/atrac3, just being curious why is this not first_.writableBytes = bufferEnd - bufferStartUsed; ?
|
Not helped and this weird bug its very old bug |
So, Importantly, Here's a diagram:
So, this if here is determining the size and position the game could provide more bytes for the music. There's two possible locations:
This is just a "circular buffer", which is common in streaming. In the diagram above, the
Otherwise, the else uses If we used -[Unknown] |
Can we have a hack option to work around it ? |
Yeah 👍 |
I left a comment on #15838 but I should mention it here as well, the music doesn't loop in the correct spot using that hack, it loops about 8 bars for the title screen and then jumps to a later part and loops there instead. It's the same for in game music. |
That's basically exactly what the hack seems to be intending to do, looking at its code. -[Unknown] |
Ah I see. After some deliberation with someone else we decided I should say that’s what’s happening. If that’s as intended, I can say it works as intended! |
no longer crashes/freezes after the first level (v1.13.2-1546) tested on windows 11 pc and android 12 phone |
No longer crashes/freezes after the first level (v1.13.2-2289) tested on windows 11 pc and android 12 phone please close this issue (ULES00117) European version. |
That's #15838 right? Does the whole song actually play? -[Unknown] |
yes the whole song does play and can exit the level when time ran out |
Well, I do think that's a hack still, but I guess wen can close this given the game is working... at some point we'll be forced to create ppmpeg and eventually this hack will get fixed, one way or another. Thanks for testing and confirming. -[Unknown] |
There is a work around for USA version
http://forums.ppsspp.org/showthread.php?tid=1040&pid=104256#pid104256
@unknownbrackets
v1.0.1-177-g0b7ae3d
Music volume zero (good) log:
https://drive.google.com/file/d/0B3OaSdeV0L8kNXFlcEZXbXZIOFU/view?usp=sharing
Music volume full (bad) log:
https://drive.google.com/file/d/0B3OaSdeV0L8kYkd2VGIwcmdPLW8/view?usp=sharing
The text was updated successfully, but these errors were encountered: