xemu-project / xemu

Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
https://xemu.app
Other
2.7k stars 269 forks source link

Jet Set Radio Future: Audio Crackling #339

Open RedxYeti opened 3 years ago

RedxYeti commented 3 years ago

https://xemu.app/titles/4d53003d/ https://xemu.app/titles/49470018/

I tested this on both to try and rule out a bad rip of my games, and was able to reproduce the audio distortion in both versions.

Bug Description

The audio cracks/distorts during specific times, most notably right after jumping. It also happens if you skate through a large crowd of pedestrians

Steps to reproduce this issue:

  1. Load up a character and jump, or skake through a large group of people

I can upload a short video if need be.

Version

Version: 0.5.2-26-g0a8e9b8db3 Branch: master Commit: 0a8e9b8db31ee120428246265ebbf743088b429f Date: Fri Jun 4 19:15:47 UTC 2021

System Information

| OS | win10 | CPU | i9 9900k@4.9ghz | Graphics Device | 2080ti fe | Graphics Driver | Nvidia 466.63

Additional Context

Im using the NA versions of each game posted

MasonT8198 commented 3 years ago

This is a known issue in the compatibility report, however thank you for reporting this as it helps track the issues!

RedxYeti commented 3 years ago

Oh sorry you're right. I started with the dual game and didn't read the issues on the standalone game. My bad.

HelgenX commented 2 years ago

I'm just bumping this out of curiosity of there's any updates on this, because the game honestly runs better than the official Xbox lol, but the audio crackling/skipping is the only thing that's a problem for me. Amazing work thus far, nonetheless!

MasonT8198 commented 2 years ago

I'm just bumping this out of curiosity of there's any updates on this, because the game honestly runs better than the official Xbox lol, but the audio crackling/skipping is the only thing that's a problem for me. Amazing work thus far, nonetheless!

No there haven't been any updates, however when matt or someone else gets to making audio improvements this should alleviate the crackling issue

HelgenX commented 2 years ago

I'm just bumping this out of curiosity of there's any updates on this, because the game honestly runs better than the official Xbox lol, but the audio crackling/skipping is the only thing that's a problem for me. Amazing work thus far, nonetheless!

No there haven't been any updates, however when matt or someone else gets to making audio improvements this should alleviate the crackling issue

Awesome, thanks for the acknowledgement and great work!

mborgerson commented 2 years ago

When it is fixed this issue will be closed and you'll get a notification. There are higher priority tasks to work on at the moment, but it'll definitely get fixed.

LeRutY commented 2 years ago

Is it the same crackling as shown here? https://youtu.be/t08VA1_sflM?t=27 Only happens with more than 2 cars. Also affects Project Gotham Racing 1

EntranceJew commented 2 years ago

I tested the game out a bit and found with the audio debugger, muting pretty much all the SFX voices for frequently occurring sound effects with the exception of dialog and the music is the only way to mitigate the issue.

I don't know a great deal about the xbox's architecture, and I trust that everyone involved is a lot smarter than I am about some of these things, but some possible background information that might help: 1) It sounds like a zero crossing issue, the sound is meant to end on a 0 sum but it isn't. In my experience the problem doesn't occur when it plays, or interrupts itself, or loops -- only when sound effects END into silence and never when they BEGIN. 2) From what the debugger tells me, all SFX voices are marked as "LOOP=true", which hardly seems appropriate for single-occurrence sound effects that are stopped and started frequently. If there were a timing or scheduling issue for stopping a sound's playing either before or after it was meant to, it could wrap around to the beginning and out of the dead zone and spike without crossing zero. 3) I don't know if voices are loaded in advance and being played on demand, or if they're having their data copied into them as they're being played and the fact that a single audio voice only ever plays the same clip in a stage is coincidence -- however JSRF keeps most of its sound effects that are subject to this type of problem in one continuous audio file that is compressed (compared to the many different vocal tracks from professor K), and it might be possible that a sound effect is being loaded with trailing garbage data from a different sfx, or when playing it the pointer lapses into that region due to a timing issue.

I'm not a big fan of hacks and tweaks that circumvent doing things as they should be handled on the hardware, but if it were possible to just reliably stop playing the voices a little sooner or intercept a voice's playback to force a zero crossing before closing it, it may mitigate a seemingly large classification of issues.

That said, I really appreciate the work put thus far, great stuff.

kumpulak commented 5 months ago

1616 Should resolve this issue with a workaround

synthic commented 4 months ago

I compiled a test build from the pull request by @kumpulak and the annoying crackling is gone. Thanks for the fix! Hopefully it will be merged soon.

kumpulak commented 4 months ago

Yep it's waiting for approval from one of the maintainers.

user18081972 commented 4 months ago

Thanks for taking the time to fix this Koo!!

km50 commented 3 months ago

Any chance someone would have a download link to a compiled xemu with this fix? Don't have any coding experience so I am not sure how to go about compiling it for myself. Thanks

DreamboxMinerva commented 2 months ago

Yeah, any idea when Xemu will be updated with this fix ? :/

user18081972 commented 2 months ago

When mborgerson gets a chance to look at the PR and review it.

user18081972 commented 2 months ago

Yeah, any idea when Xemu will be updated with this fix ? :/

Never, the pull-request has been rejected. We will have to compile it ourselves.

synthic commented 1 month ago

Here's a copy of the build I've been using for anyone having difficulty compiling it.

xemu.zip

DreamboxMinerva commented 1 month ago

Here's a copy of the build I've been using for anyone having difficulty compiling it.

xemu.zip

you're a goat, thank you. Can confirm it works great, also I have no clue how to compile a linux version, so I just made it run with proton experimental on my Steam Deck and it's perfect.

bigleanator commented 6 days ago

For anyone else who is having trouble or (can't be bothered) compiling. I got github actions to work correctly on the fork that's on my account. It incorporates this change while being up to date with upstream. Ill try keep it updated (no promises).

It includes appimage builds which work great on my steamdeck (if you're using emudeck just modify ~/Emulation/tools/launchers/xemu-emu.sh to point to the appimage instead of the flatpak)