Retroarch: Unresponsive/unrecognized controls in Retroarch Wii

Created on 19 Aug 2020  路  63Comments  路  Source: libretro/RetroArch

First and foremost consider this:

  • Only RetroArch bugs should be filed here. Not core bugs or game bugs
  • This is not a forum or a help section, this is strictly developer oriented

Description

With this latest version (or versions?) the controls for the Wii are unrecognized by a bunch of cores, controls are unmappable and won't respond during game. I'm not sure if it's just mine, or the issue is with everybody's.

Expected behavior

The cores used to load. And the content loads, and then the controllers respond. Some cores still do, but many of them don't.

Actual behavior

Unresponsive controls, you cannot even map the controls because the buttons for the Wiimote or Nunchuck and possibly even the classic controller won't register. But strangely the retroarch menu still works, and you can still access the menu with the home button, so it's completely baffling!

Steps to reproduce the bug

I have nightly versions from both July and August, and the cores seem to do it on these versions. I've also compiled a couple of cores myself using a virtual machine running Ubuntu and same thing.

Bisect Results

I'm not sure it just happened all of a sudden. I've tried deleting the retroarch cfg files and letting them generate again, and tried replacing the boot.dol file with different versions thinking it could be that.

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.9.0

Environment information

Wii

Most helpful comment

Hi there trioan, if you are still reading this, I very much regret this as you were doing excellent work and I would hate to see you go.

Can you please contact me at [email protected]? Perhaps there is a way we can resolve this, I would very much hope we can at least.

All 63 comments

We lack a lot of active Wii coders right now.

I don't really know if your issue happens for me or not, I'd have to try reproducing it on my system.

Yeah that's no problem. Plus the buildbot was hacked which sucks. Just thought I'd mention it here in case i forget. Seems strange. It might just be the setup on mine, but we'll see if others have the same issue.

After some testing I determined which cores they are as of the latest nightly I tried 13/08/2020.

Working fine

  • 2048
  • Cannonball
  • FCEumm
  • Gambatte
  • Genesis Plus Gx
  • Mednafen Lynx
  • Mednafen Supergrafx
  • Nestopia
  • Prboom
  • QuickNes
  • SMS Plus (built from source)
  • Tyrquake

Controls not responding

  • Fixgb
  • Fixnes
  • Handy (built from source)
  • Mame2000
  • Mednafen pce fast
  • Mednafen vb
  • Mgba
  • MrBoom
  • NXEngine
  • Prosystem (built from source)
  • REminiscence (built from source)
  • Snes9x
  • Snes9x2005
  • Snes9x2005_plus
  • Snes9x2010
  • Stella
  • Stella2014
  • Vba Next
  • Xrick (built from source)

Crash to main screen

  • FB Alpha 2012
  • FB Alpha2012 Cps1
  • FB Alpha2012 Cps2
  • FB Alpha 2012 Neo Geo
  • ECWolf

Crash dumping

  • FB Alpha2012 Cps3

Black Screen

  • Dosbox svn
  • Snes9x2002

Not tested

  • 81
  • Atari800
  • Bk
  • Cap32
  • Crocods
  • Freechaf
  • Freeintv
  • Fuse
  • Gme
  • Lutro
  • Mednafen Ngp
  • Mednafen Wswan
  • Mu
  • Pocketcdg
  • Pokemini
  • Quasi88
  • Squirreljme
  • Theodore
  • Uzem
  • X1

Good news, the issue was identified here as the input bitmask. Seems like it's missing now on most of the cores for Wii (and possibly Wii U).
https://github.com/libretro/libretro-handy/issues/75

input bitmasks has never been a defacto input polling method. dunno whats going on here. if it is indeed default now, then the better. we can get rid of these unnecessary branching ...

@Cee123

Can you verify this core does not work with Wii controls? It has input bitmask support already but is in your non-working list.. :o
https://github.com/libretro/snes9x2010

https://github.com/libretro/snes9x2010/commit/1bbbd3e253b3a25153bfd911f2baa46a5e6c5bb2
https://github.com/libretro/snes9x2010/commit/01671616de0f5eaaea92aabb4ea33b1a57107949

@Cee123
Can you verify this core does not work with Wii controls? It has input bitmask support already but is in your non-working list.. :o
https://github.com/libretro/snes9x2010
libretro/snes9x2010@1bbbd3e
libretro/snes9x2010@0167161

Last time i tried it the controller wasnt working which is weird if it does have the input bitmask. I'll test it again because i think i also had a remap file set for that core. I'll delete that and test it again.

I grabbed the snes9x2010 from the latest nightly and the controls do work now. Which is strange because they wouldn't work in an earlier release/nightly.

Going to pretend that was some compiler corruption for now, until it happens again. Could be related to the crashing issues.

Any priority cores you'd like bitmasks to be added faster? Otherwise I'll just keep randomly pick some cores that are handled by twinaphex first.

The more cores bitmasks are added to, the better. It will result in faster input handling due to only having to do one API call for grabbing the 16 retro gamepad button states at once.

While working on Mr. Boom, had this very strange thing happen with input bitmask. Start button works until I got to the menu. Then it stopped working but the other buttons looked okay. Had to use a state = state_joypad & (1 << id) ? 1 : 0; and then it started working again. Using raw input_state_cb worked okay.

So I will have to relook over all the bitmask input cores and force it. And maybe do some more cleanup.

@Cee123
Could you give an update on the list once the buildbot starts pushing some of these updates? Does snes9x2002 still black screen crash though?

While working on Mr. Boom, had this very strange thing happen with input bitmask. Start button works until I got to the menu. Then it stopped working but the other buttons looked okay. Had to use a state = state_joypad & (1 << id) ? 1 : 0; and then it started working again. Using raw input_state_cb worked okay.

So I will have to relook over all the bitmask input cores and force it. And maybe do some more cleanup.

That's really strange. Not sure what would've caused that.

@Cee123
Could you give an update on the list once the buildbot starts pushing some of these updates? Does snes9x2002 still black screen crash though?

Yeah sure thing! I'll test them out. They should be working good now. I think it still does, although I'm not sure. I'll test it again.

Mr. Boom wants 0 or 1 some places. Other times it doesn't care.

Fantastic work. I just tried a bunch of cores and the controls are all working for the ones I've mentioned in that list above. Except for these couple of cores.

  • fixgb
  • fixnes
  • mame2000
  • mednafen_supergrafx (was working before, weird!)

Can also confirm snes9x2002 still doesn't work. Neither does dosbox_svn.

Also none of the fbalpha2012 cores are working anymore. I'm thinking it had a lot to do with when the buildbot got hacked and things got corrupted.

Edit: Just noticed NXEngine has a few glitches going on here and there.

NXEngine glitches being input or graphics?

Found the missing core links here.
https://raw.githubusercontent.com/libretro/libretro-super/master/recipes/nintendo/wiiu

I didn't touch SuperGrafx but latest commit log
https://github.com/libretro/beetle-supergrafx-libretro/commits/master

@Cee123
I'm unsure if the FIX94 cores will get merged in but you're welcome to build the patches yourself, with the tagged links above this post.

Glad to see we made some decent headway. I know there's lots more untested cores without bitmask, but not sure I'll be the one to go through them all. The full list would make normal people cry a bit.
https://raw.githubusercontent.com/libretro/libretro-super/master/recipes/windows/cores-windows-x64_seh-generic

I'll give a decent look into the remaining Wii problems as a continued favor, since you actually use these cores. And well, there's few people around to help with your ongoing assistance.

atari800 is also possible to compile and controls are not working, bluemsx too and fmsx

https://github.com/libretro/libretro-atari800/issues/55

Does this apply to the dolphin core?

dolphin core wouldn't even dare to start on the Wii (to emulate itself)

Well i meant the bitmask controls. I'll be honest i asked because i was trying to patch upstream yesterday to get the EGL/DRM pull request there working with hotkeys. I succeeded (sort of, modifier keys don't work). However i found something that derailed the effort: any control backend but xinput2 upstream 'virtual core pointer' doesn't allow the control of the keyboard keys and the touchpad at the same time (and evdev had a bunch of touble with the touchpad). Since X11 doesn't work in KMS this means that wii games that make use of the wiimote pointer are lost there.
'

Bitmask input only affects reading digital retro_joypad buttons, so I think anything else "analog" will still fail with Wiimote. Although I don't see bitmasks being used.
https://github.com/libretro/dolphin/blob/master/Source/Core/DolphinLibretro/Input.cpp

Working on blueMSX and will follow up with fmsx and Atari800 if success.

Do we have the FIX94 cores in the libretro organization right now? If not, I can clone them and a PR could be submitted there.

I did not see FIX94 cores in libretro organization. When I read the Wii recipe list, then I realized what Cee123 was referring to.

fmsx and atari800 compile and work properly now

@Cee123
If mednafen_supergrafx still fails, go ask negativeExponent who is actively maintaining that core. As for fbalpha, hmm. Otherwise I think mostly everything you use is covered and waiting in queue. Forgot about ECWolf.

@Cee123
If mednafen_supergrafx still fails, go ask negativeExponent who is actively maintaining that core. As for fbalpha, hmm. Otherwise I think mostly everything you use is covered and waiting in queue. Forgot about ECWolf.

Awesome, thanks so much! You've been a great help and done good work. All the cores I've tried are working great now, the controls all work and everything. Although it does make me wonder if retroarch for the Wii U would have the same controller issues. But other than that, I've tried the latest nightlies (except fixgb and fixnes but I'm not too worried about those) and I've even compiled the cores not found in the nightlies, even those are working now with the controls and everything. So that all seems to be fixed.

fmsx and atari800 compile and work properly now

Nice. Two more cores that work on Wii (and Wii U).

Yes, someone needs to fix some c64 core too. I tried and compiled vice_c64 but got black screen after running on my Wii and system hang. Frodo stops compiling with an error on Vic.cpp

https://github.com/libretro/vice-libretro/issues/280

Yes, someone needs to fix some c64 core too. I tried and compiled vice_c64 but got black screen after running on my Wii and system hang. Frodo stops compiling with an error on Vic.cpp

libretro/vice-libretro#280

Interesting. I did wonder if that core would work on the Wii.

If you mean having the power, i run Vice 3.2 PSP the other day with some minor frame skip, and i believe this one is 3.0.

If you mean having the power, i run Vice 3.2 PSP the other day with some minor frame skip, and i believe this one is 3.0.

Nice. Yeah I think it should run on there no problem.

It was a good run but I'm not interested in dealing with other code developers anymore. Hopefully you'll have someone to fix up the last remnants.

I've seen other threads with input complaints for Wii but never Wii U so far.

It was a good run but I'm not interested in dealing with other code developers anymore. Hopefully you'll have someone to fix up the last remnants.

I've seen other threads with input complaints for Wii but never Wii U so far.

Sorry to hear that. Not sure who you mean. But yeah seeing the attitudes of some (fortunately most have been nice enough though), I dont blame you personally. Sad that you've gone now. But thank you for everything you've done. It's definitely been appreciated.

Hi there trioan, if you are still reading this, I very much regret this as you were doing excellent work and I would hate to see you go.

Can you please contact me at [email protected]? Perhaps there is a way we can resolve this, I would very much hope we can at least.

Yep the job done was great. I already had some of the fixed cores working normally from previous RA versions but not Atari800 or fmsx. Practically added 2 more systems on the Wii. The Wii is important because it's a relatively powerful device to output 240p on a CRT without extra hacks and cables or tweaks, well it's not PS4 but at least can run most of the old 8/16bit really well.

I literally have no idea what happened just now.

Yep the job done was great. I already had some of the fixed cores working normally from previous RA versions but not Atari800 or fmsx. Practically added 2 more systems on the Wii. The Wii is important because it's a relatively powerful device to output 240p on a CRT without extra hacks and cables or tweaks, well it's not PS4 but at least can run most of the old 8/16bit really well.

Yeah same here. I like the Wii. It's awesome how you can turn it into an all in one emulation machine, media player etc. It is pretty interesting the extent of what it actually can emulate.

Well maybe he has other important things to do, but in any case we thank him very much for his work. If it's some other issue would be nice to have him back. Also i believe he deserved a small donation for his work if he is willing to accept it.

As for the Wii, yeah it is an all in one machine and don't forget it can also run GC games which has an amazing library. Basically needs c64-dosbox-Amiga cores to be complete (and usb keyboard support, don't know if it works?)

Well maybe he has other important things to do, but in any case we thank him very much for his work. If it's some other issue would be nice to have him back. Also i believe he deserved a small donation for his work if he is willing to accept it.

As for the Wii, yeah it is an all in one machine and don't forget it can also run GC games which has an amazing library. Basically needs c64-dosbox-Amiga cores to be complete (and usb keyboard support, don't know if it works?)

Yeah that backward compatibility with Gamecube is awesome. So you have both wii and Gamecube library. And you can use Nintendont. Also not64 for N64 and wiisxr for PS1. Now that would be fantastic too. Commodore 64, amiga and dosbox should all work pretty well i think. Dosbox just loads to a black screen. I wonder if there's something extra the core needs with the setup.

I compiled again today vice_x64 and dosbox_svn with same results; black screen and system hangs. About the Amiga, hmm maybe need an older version of UAE. Don't know if the current puae can run full speed, Amiga has some demanding games (the hardware has a ton of tricks and custom chips) that you need a good CPU to run well, like Jim Power for example. But i could be wrong. After all i remember i was running Amiga emulation well on systems with 1ghz processor and 128mb ram

Which cores remain as of this writing that still require attention?

From what i have tested dosbox_svn gives a black screen and system hang after load core (compiled from source+nightlies).
Also some c64 core (even frodo) would be great. I have to test nightly to give feedback which cores don't have working controls.

Which cores remain as of this writing that still require attention?

As far as I know, out of the ones I've tested at least, I think it's just the fix94 cores and the supergrafx core (but I might have to test the latest nightly version again). Not sure about the others I haven't tested. I know the fbalpha cores crash as well for some reason.

Seems the asm part at file vic.cpp (line 1422) of frodo needs a rewrite because after disabling it and doing some other crap like disabling SAM etc it compiled and run on my wii without showing any graphics, showing only the leds bar.
I used libretro-frodo master, not r-type fork.

https://github.com/r-type/frodo-libretro/issues/8

I tried to compile picodrive for the wii because i wanted to see if Sega 32x would work on there and also how megadrive etc run with that. But it just came up with a bunch of errors. I think its because that core wasnt ported to other platforms by the developer. It works good on the 3ds though.

Yes, frodo for example has that part written maybe 15 years ago, and all ifdef powerpc probably are for PPC Mac and a specific compiler. The syntax is not valid for g++, asm should be followed by (" your asm command ") so that the compiler accepts it, and probably there are more errors there.

https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

managed to compile a frodo core that outputs image, by commenting all _ifdef __POWERPC___ inside Vic.cpp and inserting some commonflags to makefile.libretro to bypass some errors (sigaction etc, probably need the same with psp)
Probably an experienced coder could fix it in 1 hour i guess.

P.S. controls not working, buttons recognised as mouse, same problem with previous cores

https://www.dropbox.com/s/mdtrmyj1vzc7bb5/frodo_libretro_wii.zip?dl=0

The cores fbalpha2012_cps1, cps2, cps3, fbalpha2012_libretto and fbalpha2012_neogeo stopped working as of version 1.8.5

Sorry for my bad English, the core "snes9x2002_libretro_wii.dol" works well now, the problem is the sound, it is very bad!

Thanks for the work, amazing!

managed to compile a frodo core that outputs image, by commenting all _ifdef POWERPC_ inside Vic.cpp and inserting some commonflags to makefile.libretro to bypass some errors (sigaction etc, probably need the same with psp)
Probably an experienced coder could fix it in 1 hour i guess.

P.S. controls not working, buttons recognised as mouse, same problem with previous cores

https://www.dropbox.com/s/mdtrmyj1vzc7bb5/frodo_libretro_wii.zip?dl=0

You're right. I can imagine both Commodore 64 and Amiga working on the Wii. I've been toying around with both emulators after you've mentioned them, and I've finally managed to get them to work on my PC (after much confusion). They work great with little hardware demand! I can imagine both working on the Wii. If you manage to get them to work on there that would be awesome.

Sorry for my bad English, the core "snes9x2002_libretro_wii.dol" works well now, the problem is the sound, it is very bad!

Thanks for the work, amazing!

Oh really? Great! I'll have to try it with the latest nightly. Thanks for letting us know. I wonder if Dosbox works now as well.

I tried and compiled hatari (Atari ST) emulator too, but when starting... black screen - system hang, same with vice_x64.
I believe vice_x64, frodo, hatari could run well on Wii. At the very least, frodo could work with controls fixed.

https://www.dropbox.com/s/bed73d3ti87lxzs/frodo_libretro_wii.zip?dl=0

I did a frodo core with controls working. Check this out

Sorry for my bad English, the core "snes9x2002_libretro_wii.dol" works well now, the problem is the sound, it is very bad!
Thanks for the work, amazing!

Oh really? Great! I'll have to try it with the latest nightly. Thanks for letting us know. I wonder if Dosbox works now as well.

In the Retroarch info file, it says that Dosbox needs the files libsdl1.2 and libsdl-net1.2. to work.

I tried to compile picodrive for the wii because i wanted to see if Sega 32x would work on there and also how megadrive etc run with that. But it just came up with a bunch of errors. I think its because that core wasnt ported to other platforms by the developer. It works good on the 3ds though.
If it works on the Playstation 2 retroarch, it should work on the Wii.

The wii is big endian and the ps2 is little endian. No it 'shouldn't just work', especially if ASM or fileformat parsing is touched.

Made a Working dosbox, here. Made a pull request too.

https://gbatemp.net/threads/wii-dos-core-dosbox-retroarch-wii-new.574725/

Made a Working dosbox, here. Made a pull request too.

https://gbatemp.net/threads/wii-dos-core-dosbox-retroarch-wii-new.574725/

Good work man!

In some versions of Retroarch a version of the Neko Project II Kai nucleus was released, but it didn't work, you can't make a correction?

Yep the job done was great. I already had some of the fixed cores working normally from previous RA versions but not Atari800 or fmsx. Practically added 2 more systems on the Wii. The Wii is important because it's a relatively powerful device to output 240p on a CRT without extra hacks and cables or tweaks, well it's not PS4 but at least can run most of the old 8/16bit really well.

In the options of the atari800 you have to change the system of the Atari 400/800 to 5200, to enter straight into the game and not on the core screen.
The games work well, but the audio is hissing.

@metallic77 Hey there, any chance you managed to get vice_x64 and Puae working on Wii? I reckon both of those should run well on there. I got Vice to compile but I couldn't get it to convert to .dol. And I couldn't even get Puae to compile for the Wii.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  3Comments

GoronMegaZord picture GoronMegaZord  路  3Comments

fr500 picture fr500  路  4Comments

rrooij picture rrooij  路  3Comments

meepingsnesroms picture meepingsnesroms  路  4Comments