-
-
Notifications
You must be signed in to change notification settings - Fork 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
[TESTERS NEEDED] cellMic: wait for registration before using secondary microphones #13484
Conversation
ac109e3
to
01a2f4a
Compare
e3836d1
to
bfbe1cf
Compare
It took me a bit longer to test because I wasn't sure if I had built it correctly. When I boot the game with a microphone selected in the GUI, RPCS3 crashes with If I try to boot the game with no microphone selected in the GUI, the game will boot normally. |
18d03c5
to
2b8c884
Compare
@T3HM3T4L try again please (you can just download the build, you don't have to build it yourself) |
I'm a total brainlet so I haven't figured this out yet. Logically there had to be an easier way but I didn't find it. |
Could you please explain how I would go about just downloading the build? I still can't manage it. |
|
Thanks a bunch! Great news: seems to absolutely work! Currently testing with 3 mic inputs. |
Which Singstar game was this with? There are a lot and some are already known to work even before this PR |
This was Rock Band 3 actually. I know there's a Singstar and Singstar Real mode in the audio settings for those games, but these didn't work with Rock Band 3 at all. 2 mics seems to work very well and giving me the usual performance but although 3 mics works, there seems to be a huge performance hit (I'm running a Ryzen 7 3800x) from the moment the game boots to main screen and intermittently while the song is playing. |
Here are the facts I can line up: 2 mics in Rock Band 3: works as intended, no hit to performance (steady 30 FPS in menu, steady 60 FPS during song) My total CPU utilization will be at 10-20% normally and whenever the FPS tanked the CPU utilization went up to anywhere between 20-40% total usage. The only other thing that I can note is that the log usually spams I'm trying to include a log but GitHub won't allow me as the text file is too big and it won't accept the log.gz. There's a lot of |
Thanks. Please focus on the mic stuff. The RSX isn't relevant. |
After retrying by closing RPCS3 sooner, I got a smaller log which I'm able to link here. The previous log had ballooned to 125MB (5 times the file size limit!) after about 30 seconds in the Rock Band 3 main menu, so something was spamming REALLY hard, which would explain the CPU having difficulties. |
@T3HM3T4L I added something that will reduce the log spam. |
c9499f7
to
1990cc5
Compare
Just tested this out with Rock Band 3, Multi mic input is working great for me now, performance seems the same |
Maybe this improves the mic signal even more
Thanks for testing so extensively. |
Tested the new build, but it did sadly not fix the performance issues (unplayable with 3 mics, rare slowdowns with 2 mics). I forgot to add that that last test (as well as this one) was done on Linux. |
The performance is irrelevant in this PR |
These were exactly my findings on Linux as well as earlier reported in the thread. I also tested with 1 mic which gave rocksteady performance on par with the main branch so if the only problem is performance issues on Linux specifically while using the optional 2 or 3 mic setting, this PR is still an easy net positive for Windows users and a status quo for Linux users. |
|
||
auto& mic_thr = g_fxo->get<mic_thread>(); | ||
const std::lock_guard mic_lock(mic_thr.mutex); | ||
const u32 device_number = mic_thr.register_device(info->name); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From doc I think the game can repeatedly call this function, it'll just return the same device number again.
We're missing a check to make sure not to register the same device twice, either here or in mic_context::register_device.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made it return the registered index (see register_device)
Just tested this build with one mic with Rock Band 3. cellAudioInGetAvailableDeviceInfo is still printed a lot in the log. Not sure if it's in the scope of this PR but changing the microphone settings in custom configuration while the game is open will not actually change the microphones in game. |
Needs another test. Fixed some facepalm issues |
I'm not sure how to get this to work with 3 microphones. I am on Windows 10 with 3 Wii U USB microphones on RPCS3 Version: 0.0.27-f912aa7a Alpha | pull/13484. They all show up as active microphones in Windows. I have them configured in the RPCS3 audio settings using the standard OpenAL options for the first 3 microphones assigned to each one. When I launch the game, two of them are active (separately) as mic 1 and mic 3, but one is not active for mic 2. The even stranger thing is if I have only 2 mics connected then only one of them works but as mic 1 and mic 3 simultaneously. Do I have something misconfigured? |
It isn't you, this is the way multiple mics are handled in the main branch and for some reason that behaviour returned in this latest audio2 build it seems. I confirmed it by testing the new build (exactly the same behaviour as you describe) versus the previous audio2 build I had (rpcs3-v0.0.27-14832-8180d634_linux64) where the 2 mics still work as intended. |
Please try again |
2 mic and 3 mic work again after this latest fix, still has performance hits on Linux. |
I tested the new build with 1, 2, and 3 microphones, and it worked fine with any combination. |
Apparently games have to register the second and subsequent microphones before they can use them.