-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add openal support for emscripten build target #15479
Conversation
BTW @ethanaobrien , what is the current state of the Emscripten port? I've tried it now on web.libretro.com and I notice the following things:
I've been using the Gambatte core so far. What is your experience with it so far and is this just something I'm experiencing on my end? In any case, it seems there is clear work still to be done here and I think at one point it used to work fine with keyboard at least. I'm using Chrome 114.0.5735.199. |
Hello @LibretroAdmin!
I've never seen this issue. Although now that I think about it, it makes sense. This could be caused by 2 things. With the way the rwebinput driver works, it listens on the canvas element for any keyboard events, but these events aren't on the canvas element unless the canvas is selected, which requires both selecting the canvas, and the canvas being the active document element (which requires the canvas tabindex to be set). It could also need the legacy canvas behavior, depending on the html canvas element. Long story short, the javascript side for the website is likely using unsupported, legacy api's because it hasn't been updated in forever.
This is very possibly the rwebgamepad driver attempting to use outdated api's. I could look at this if you'd like, but not sure I could do anything depending on how emscripten handles it.
I actually took retroarch on the web a step further and built a frontend for the retroarch frontend. The project is EmulatorJS. I actually redid a lot of the input drivers, meaning I don't even use the rwebgamepad driver, and I modified the rwebinput driver to give me the ability to do control mapping, and input both javascript side. I even read the save states directly from the webassembly's emory to increase speed. See here for the changes I've made, and https://emulatorjs.org/ is the projects website.
I can't test right now, but it makes perfect since why it wouldn't work. I highly doubt it's just you
Which supports my legacy api handling theory I can definitely look at these things if you'd like, most of this should be really easy to do |
Native pointer/multitouch support for rwebinput coming very soon™ |
Guidelines
Description
Adds openal support for emscripten, and makes it the default emscripten audio driver, since rwebaudio doesn't understand the lack of threading in Javascript, and openal gives us a better audio quality and is more reliable.
The rwebaudio driver works in chrome, is very crackily in Firefox, and crashes on mobile ios webkit
The openal driver just doesn't work on beta ios, the reason is unknown but it's probably because of either Apple or emscripten. Thats an issue for later. It works perfectly on stable
EDIT: This issue was apparently just having the phone on silent mode. Works great on beta ios!
Related Issues
Related to EmulatorJS/EmulatorJS#416