Blueretro for the Wii U?

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Hey guys. Dono if anyone has noticed this project, but Blueretro is a bluetooth device that connects older consoles to new bluetooth controllers. I'm planning on installing one internally in my N64 so it can work with the NSO N64 wireless controller. But it got me thinking. What if we could connect this to a USB cable, plug it into the front or back of the Wii U and get a bluetooth connection? We might be able to use the NSO controller with our emulators then. Someone with some more hardware and Wii U programing expertise might be able to chime in where I fall short if knowledge, right about...... now.

Edit: I found a solution posted by me below.
 
Last edited by Sowden,

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Yeah I know about those programs. But Bloopair only works in the Wii U realm, and it doesn't for vWii, which is where most emulators run from. And I don't own a Switch, so.... there's that.
 

wolf-snake

Well-Known Member
Member
Joined
Feb 5, 2009
Messages
1,556
Trophies
2
XP
3,011
Country
Mexico
Yeah I know about those programs. But Bloopair only works in the Wii U realm, and it doesn't for vWii, which is where most emulators run from. And I don't own a Switch, so.... there's that.
Isn't Retroarch on the Wii U an actual thing? why even bother doing all this almost impossible job for a handful of N64 games that don't even run that well because vWii Emulators are still Wii emulators no matter how much overclocking you're doing, and PSOne games when Wii U can emulate essentially everything else?
 
  • Like
Reactions: Blythe93

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Isn't Retroarch on the Wii U an actual thing? why even bother doing all this almost impossible job for a handful of N64 games that don't even run that well because vWii Emulators are still Wii emulators no matter how much overclocking you're doing, and PSOne games when Wii U can emulate essentially everything else?
Thats not exactly fair. It runs most all of the N64 games I play (between Wii64, Glide and Not64). And WiiSXRX 2022 is adding compatability all the time. Not to mention that it plays Sega CD games smoother than the GameCube does. With everything below that and a Blueretro, it would make the Wii U an ultamate emulation machine. In my opinion I guess.
 

RHOPKINS13

Geek
Member
Joined
Jan 31, 2009
Messages
1,354
Trophies
2
XP
2,623
Country
United States
With everything below that and a Blueretro, it would make the Wii U an ultamate emulation machine. In my opinion I guess.

I've always thought the Wii U was a pretty awesome Nintendo emulation machine. It's able to emulate pretty much any previous Nintendo console.

I mostly stick with first-party controllers though. I'm sure that what you're looking for is possible though, whether using a blueretro or some other, similar device. It might not even need to be plugged into the Wii U! Like a man-in-the-middle, bluetooth "wiimote emulator."
 

omgcat

Well-Known Member
Member
Joined
Feb 15, 2009
Messages
869
Trophies
2
XP
2,699
Country
United States
it might be janky, but you could connect the blueretro to the wiiu using gamecube leads into the gamecube adapter possibly.
 

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Edit: This post has my best solution that I've found. Unless some else below finds a better way. But I did some experimentation and they all failed. So go with this post. It has me very happy 😁

Touching back on this long after I last made a post. It just took me this long to get back around to it. The good news is that I got Blueretro to work on the Wii U! But it does have some caveats.

So I ordered a device called the Retro Rosetta. Its a custom made device that has Blueretro on its board, and you can buy any controller leads to attach to it. So with the Wii U, the only connection you can use is with the Wii-Ext, the port on the bottom of a Wiimote. A Gamecube port has been mentioned above, but as far as the official Gamecube ports for the Wii U goes, it only supports Smash Bros. Nintendo didn't bother to have it support anything else on the Wii U :wacko: Now I haven't tried any third party devices, such as a Mayflash Gamecube Port adapter, as I have heard that it does work with other Wii U games. So maybe theres an in there, but as of right now, the only way that is a sure fire shot is the Wii-Ext port. And you can buy this device with one or two Wii ports. I only bought one, but if you would like to have two players running, you can buy a cheap cable, open it up and plug it in. Its really that simple. And I would recommend having them assemble it for you, as I had some problems putting it together myself.

Now one of the annoyance about this device is that it needs to be externally powered. It has a cable running out of it with a USB-C type power port. This means that you need to keep it next to a cable, which isn't as bad as I thought it might had been. It works well in my setup cause i have a USB-C cable next to my bed anyway. But you can also buy a long cable, plug it into the back of the Wii U. That way it is powered anytime the console is on. And the other annoyance is the Wiimote. My setup is that I load vWii emulators from my Wii U menu using a forwarder or boot2vwii. But as its booting into vWii, and as vWii is rebooting back into Wii U, it drops connection to the Wiimote. Not the Blueretro, because that is constantly being powered by an external cable. You probably don't notice it because the controller is always in your hands, and you start pressing buttons once you see its all loaded. So every time you do one of those two things, you have to reach over, press a button on the Wiimote to turn it back on. And unfortunately pressing buttons on the bluetooth controller, going into the Wiimote doesn't turn it on. What you need to do is manually reach over and press any button to turn it back on :sleep: But to be honest, thats not all rhat bad either. What is annoying though is when your playing a Squaresoft game and after you sit through one of its long opening cutscenes, you press buttons once it gets to gameplay and nothing happens. Its because the Wiimote turned off during the cutscene. Whatever though.

But honestly, with those two things out of the way, it unlocks both Wii U and vWii to be controlled. I currently have my 8bitdo NES, Genesis DIY controller boards, my N64 NSO controller, and my PS4 controller running all of the matching emulators from PS1 and down. It works in both Wii U and vWii menus (except for the Wii menu, but just load Homebrew Channel or USB Loader GX and you'll be fine) to load emulators, and close them down to completion. Just this morning I started playing Mario Kart 8 on my N64 controller, and then jumped over to playing Mario Kart 64 with it. Its pretty damned impressive in what all it does, and I'm very happy with it.
 
Last edited by Sowden,
  • Like
Reactions: Blythe93

IceBlueLugia

Well-Known Member
Member
Joined
Nov 4, 2016
Messages
233
Trophies
0
XP
763
Country
United States
Touching back on this long after I last made a post. It just took me this long to get back around to it. The good news is that I got Blueretro to work on the Wii U! But it does have some caveats.

So I ordered a device called the Retro Rosetta. Its a custom made device that has Blueretro on its board, and you can buy any controller leads to attach to it. So with the Wii U, the only connection you can use is with the Wii-Ext, the port on the bottom of a Wiimote. A Gamecube port has been mentioned above, but as far as the official Gamecube ports for the Wii U goes, it only supports Smash Bros. Nintendo didn't bother to have it support anything else on the Wii U :wacko: Now I haven't tried any third party devices, such as a Mayflash Gamecube Port adapter, as I have heard that it does work with other Wii U games. So maybe theres an in there, but as of right now, the only way that is a sure fire shot is the Wii-Ext port. And you can buy this device with one or two Wii ports. I only bought one, but if you would like to have two players running, you can buy a cheap cable, open it up and plug it in. Its really that simple. And I would recommend having them assemble it for you, as I had some problems putting it together myself.

Now one of the annoyance about this device is that it needs to be externally powered. It has a cable running out of it with a USB-C type power port. This means that you need to keep it next to a cable, which isn't as bad as I thought it might had been. It works well in my setup cause i have a USB-C cable next to my bed anyway. But you can also buy a long cable, plug it into the back of the Wii U. That way it is powered anytime the console is on. And the other annoyance is the Wiimote. My setup is that I load vWii emulators from my Wii U menu using a forwarder or boot2vwii. But as its booting into vWii, and as vWii is rebooting back into Wii U, it drops connection to the Wiimote. Not the Blueretro, because that is constantly being powered by an external cable. You probably don't notice it because the controller is always in your hands, and you start pressing buttons once you see its all loaded. So every time you do one of those two things, you have to reach over, press a button on the Wiimote to turn it back on. And unfortunately pressing buttons on the bluetooth controller, going into the Wiimote doesn't turn it on. What you need to do is manually reach over and press any button to turn it back on :sleep: But to be honest, thats not all rhat bad either. What is annoying though is when your playing a Squaresoft game and after you sit through one of its long opening cutscenes, you press buttons once it gets to gameplay and nothing happens. Its because the Wiimote turned off during the cutscene. Whatever though.

But honestly, with those two things out of the way, it unlocks both Wii U and vWii to be controlled. I currently have my 8bitdo NES, Genesis DIY controller boards, my N64 NSO controller, and my PS4 controller running all of the matching emulators from PS1 and down. It works in both Wii U and vWii menus (except for the Wii menu, but just load Homebrew Channel or USB Loader GX and you'll be fine) to load emulators, and close them down to completion. Just this morning I started playing Mario Kart 8 on my N64 controller, and then jumped over to playing Mario Kart 64 with it. Its pretty damned impressive in what all it does, and I'm very happy with it.
Hey man, could you tell me what mappings you used? I bought a RetroRosetta for the same purpose, but the N64 NSO, SNES NSO, and NES NSO mappings are wrong. I can remap with the software but that obviously results in all the mappings changing for every other controller, which makes many basically unusable. Essentially you can only make it so that the controls can only work well for either PSX emulator or N64 emulator or NES emulator, etc but not everything at once. So I’m just wondering how you got this to work so well. Even if I remap the buttons in Not64 to use Y and B instead of A and B, that still leaves the problem of not having access to the A button in the menus and stuff. Are you saying the 8BitDo modkits in D-input mode resulted in it working perfectly?
 

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,463
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,302
Country
Touching back on this long after I last made a post. It just took me this long to get back around to it. The good news is that I got Blueretro to work on the Wii U! But it does have some caveats.

Quick question for you and IceBlueLugia as well, do either of you have problems with your Switch controllers (Switch Pro, NSO N64, etc.) disconnecting from the BlueRetro adapter during use? On my end, there's an issue where Switch controllers will disconnect when multiple buttons are being pressed over a short period. In normal gameplay, this means my controllers disconnect after about 5-15 minutes of heavy gameplay; if I just mash buttons like crazy, the connection will drop within ~30 seconds. darthcloud suspects it's an issue with the ESP32 which runs the whole adapter's Bluetooth radio, but it'd be nice to get confirmation that this isn't just me personally.

Hey man, could you tell me what mappings you used? I bought a RetroRosetta for the same purpose, but the N64 NSO, SNES NSO, and NES NSO mappings are wrong. I can remap with the software but that obviously results in all the mappings changing for every other controller, which makes many basically unusable. Essentially you can only make it so that the controls can only work well for either PSX emulator or N64 emulator or NES emulator, etc but not everything at once. So I’m just wondering how you got this to work so well. Even if I remap the buttons in Not64 to use Y and B instead of A and B, that still leaves the problem of not having access to the A button in the menus and stuff. Are you saying the 8BitDo modkits in D-input mode resulted in it working perfectly?

My solution to this was to build my own version of the firmware with custom button mapping for the NSO N64 controller. As you discovered, the user-configurable button remappings affect all controllers used via the BlueRetro, so they're not as useful when you're using multiple different types of controller, all of which expect different controller mappings. Personally, I have no NSO NES or SNES controllers, so my mapping doesn't change anything about them. My patch tweaks the input (wireless) layout for the NSO N64 pad, and the output (wired) layout for the GameCube, because I use my BlueRetro adapter on both GameCube and Wii. If you're not using it with a GameCube adapter cable at all, those changes won't affect you.

I'll attach my build to this post in case it's useful to you. My device is not a RetroRosetta (I've got a cheap AliExpress equivalent), but since both devices are universal HW1 BlueRetro adapters, the firmware should be the same. That said, I take no responsibility if this firmware somehow renders your device unusable.

The layout I have set up for the N64 NSO controller is as follows:

Code:
+---------+-----------------+----------------+
| Wii EXT | Default NSO N64 | Custom NSO N64 |
+---------+-----------------+----------------+
| A       |                 | A              |
| B       | A               | B              |
| X       |                 |                |
| Y       | B               |                |
| L       | Z               | L/Z (either)   |
| R       | ZR              | R              |
| ZL      | L               | Capture        |
| ZR      | R               | ZR             |
| Home    | Home            | Home           |
| Plus    | Start           | Start          |
| Minus   |                 |                |
+---------+-----------------+----------------+

Addressing the controversial part, where I map both L and Z to the Wii Classic Controller L button, this is because different N64 Virtual Console titles use different layouts internally. e.g. In Mario 64, pressing the Wii Classic Controller L button presses the emulated N64 Z button, but in Kirby 64, pressing the Wii Classic Controller L button presses the emulated N64 L button. By doubling up the button, you always have access to the Wii CC L button no matter which prongs you're holding on the NSO N64 controller. For the rare occasion that you really do need the "other" shoulder button, it's available on the Capture button on top of the controller.

While this works great for official Wii VC titles (which don't support button remapping) and regular Wii games (I had a lot of fun playing Mario Kart Wii on the NSO N64 pad) in homebrew emulators like Wii64/Not64, you will need to adjust your controller mapping emulator-side if you're alternating between left-prong and middle-prong games frequently. Any games which actually want you to press the Wii ZL/N64 Capture button will be a bit of a mess until you remap that input. I will also note that my custom remapping would render the NSO N64 controller basically unusable on a real Nintendo 64 with BlueRetro adapter, since it rearranges the face and shoulder buttons specifically to suit the Wii, not the N64.

The other big compatibility issue you're likely to encounter is with GameCube games running under Nintendont. Nintendont swaps the L/R buttons with ZL/ZR when you're using a Classic Controller Pro, which is how the BlueRetro adapter identifies the controller. This is unfortunately not optional, meaning GameCube games don't play well on the NSO N64 controller (or Switch Pro Controller either). This has nothing to do with my custom layout, the same problem is apparent regardless since it's Nintendont doing the remapping. As such, I've also attached my custom build of Nintendont where I've added a feature where you can swap and un-swap the shoulder buttons on the fly by pressing L + R + D-pad down simultaneously. That said, most GameCube games probably won't play that well on an N64 controller due to all the missing inputs, I only really suggest using this when playing retro compilations on GameCube like the Mega Man X Collection or the Zelda discs.
 

Attachments

  • BlueRetro_universal_v1.8.4_hw1_NSO-GC_remap.zip
    333.9 KB · Views: 11
  • nintendont-zswap-lrdown.zip
    1,015.5 KB · Views: 13
Last edited by Vague Rant,

IceBlueLugia

Well-Known Member
Member
Joined
Nov 4, 2016
Messages
233
Trophies
0
XP
763
Country
United States
Quick question for you and IceBlueLugia as well, do either of you have problems with your Switch controllers (Switch Pro, NSO N64, etc.) disconnecting from the BlueRetro adapter during use? On my end, there's an issue where Switch controllers will disconnect when multiple buttons are being pressed over a short period. In normal gameplay, this means my controllers disconnect after about 5-15 minutes of heavy gameplay; if I just mash buttons like crazy, the connection will drop within ~30 seconds. darthcloud suspects it's an issue with the ESP32 which runs the whole adapter's Bluetooth radio, but it'd be nice to get confirmation that this isn't just me personally.



My solution to this was to build my own version of the firmware with custom button mapping for the NSO N64 controller. As you discovered, the user-configurable button remappings affect all controllers used via the BlueRetro, so they're not as useful when you're using multiple different types of controller, all of which expect different controller mappings. Personally, I have no NSO NES or SNES controllers, so my mapping doesn't change anything about them. My patch tweaks the input (wireless) layout for the NSO N64 pad, and the output (wired) layout for the GameCube, because I use my BlueRetro adapter on both GameCube and Wii. If you're not using it with a GameCube adapter cable at all, those changes won't affect you.

I'll attach my build to this post in case it's useful to you. My device is not a RetroRosetta (I've got a cheap AliExpress equivalent), but since both devices are universal HW1 BlueRetro adapters, the firmware should be the same. That said, I take no responsibility if this firmware somehow renders your device unusable.

The layout I have set up for the N64 NSO controller is as follows:

Code:
+---------+-----------------+----------------+
| Wii EXT | Default NSO N64 | Custom NSO N64 |
+---------+-----------------+----------------+
| A       |                 | A              |
| B       | A               | B              |
| X       |                 |                |
| Y       | B               |                |
| L       | Z               | L/Z (either)   |
| R       | ZR              | R              |
| ZL      | L               | Capture        |
| ZR      | R               | ZR             |
| Home    | Home            | Home           |
| Plus    | Start           | Start          |
| Minus   |                 |                |
+---------+-----------------+----------------+

Addressing the controversial part, where I map both L and Z to the Wii Classic Controller L button, this is because different N64 Virtual Console titles use different layouts internally. e.g. In Mario 64, pressing the Wii Classic Controller L button presses the emulated N64 Z button, but in Kirby 64, pressing the Wii Classic Controller L button presses the emulated N64 L button. By doubling up the button, you always have access to the Wii CC L button no matter which prongs you're holding on the NSO N64 controller. For the rare occasion that you really do need the "other" shoulder button, it's available on the Capture button on top of the controller.

While this works great for official Wii VC titles (which don't support button remapping) and regular Wii games (I had a lot of fun playing Mario Kart Wii on the NSO N64 pad) in homebrew emulators like Wii64/Not64, you will need to adjust your controller mapping emulator-side if you're alternating between left-prong and middle-prong games frequently. Any games which actually want you to press the Wii ZL/N64 Capture button will be a bit of a mess until you remap that input. I will also note that my custom remapping would render the NSO N64 controller basically unusable on a real Nintendo 64 with BlueRetro adapter, since it rearranges the face and shoulder buttons specifically to suit the Wii, not the N64.

The other big compatibility issue you're likely to encounter is with GameCube games running under Nintendont. Nintendont swaps the L/R buttons with ZL/ZR when you're using a Classic Controller Pro, which is how the BlueRetro adapter identifies the controller. This is unfortunately not optional, meaning GameCube games don't play well on the NSO N64 controller (or Switch Pro Controller either). This has nothing to do with my custom layout, the same problem is apparent regardless since it's Nintendont doing the remapping. As such, I've also attached my custom build of Nintendont where I've added a feature where you can swap and un-swap the shoulder buttons on the fly by pressing L + R + D-pad down simultaneously. That said, most GameCube games probably won't play that well on an N64 controller due to all the missing inputs, I only really suggest using this when playing retro compilations on GameCube like the Mega Man X Collection or the Zelda discs.
I haven’t had that issue personally, I’ve played for a couple hours at a time and it’s worked fine. Wonder if it’s some kind of power issue. The RetroRosetta uses an external USB C power source and I’ve never had missed inputs or disconnects.

It’s really awesome that you were able to create a patch that adjusts the inputs for a specific controller and doesn’t affect any of the others. Sadly the BlueRetro device I have is Wii-EXT, as in, connecting Bluetooth controllers as classic controllers. I am trying to get this stuff working on my Wii U, and the official USB adapter isn’t supported by much besides smash and nintendont. I do have the gamecube to wiimote Mayflash adapter to make GameCube controllers be recognized as a classic controller; it might work with those. But I’d have to buy a BlueRetro GameCube device as I don’t know how to make them myself. They’re cheap so not an huge issue( but honestly I’m not sure if it’d work as intended, the Mayflash adapter would obviously only have been tested on official controllers.

I’m curious how you made the patch though. Maybe I could try doing it myself if it isn’t too difficult. Also, mapping for the N64 controller works well for the Wii VC but not so well for the Wii U VC. ZL is Z and L and R are the same as N64, and ZR is VC Menu. I suppose you can remap it on Wii U VC, and there’s only like 20 games anyway though, and it’s a one time process. But yeah, I’d be curious to know how you did it.

The mapping for the N64 controller on Nintendont is neat. I actually have already beat the Zelda collection with the N64 controller on nintendont as I have the Raphnet N64 to gamecube adapter. Pretty cool device. But it’s nice that there’s a less costly method lol

I ended up finding a solution of sorts though if it turns out that doing a patch is too difficult. The RetroRosetta I bought has two Wii-ext cables. So I remapped the A and B buttons on player 1 so that NES and N64 NSO controllers are correct, and swapped the bumpers and triggers on player 2 so that SNES and 6 button Mega Drive NSO controllers are correct. Everything works perfectly, just make sure on the Mega Drive controller you change X and Z to be ZL and ZR in Genesis Plus GX. Because by default it’s L and R. For whatever reason the default BlueRetro config switches the SNES NSO bumpers and triggers so this is necessary. This might be some quirk with the original classic controller vs Pro, as I know the Pro also reversed on the BlueRetro config. I guess they did it like this because the L, R, ZL, ZR layout on the SNES NSO controller is very similar to the original Wii classic controller, idk

Maybe this product can do the job, one controler at a time :

https://www.raphnet-tech.com/products/n64_to_wiimote/index.php
I actually have this and it works great with wired controllers, but I have the official wireless N64 NSO controller so I was just wondering if there was a way to use that. The BlueRetro N64 device on AliExpress plugged into it doesnt work. Even if it did, the extra Home, ZR, and capture buttons definitely wouldn’t work. So I thought the RetroRosetta would be the best solution. As far as I can tell he’s the only store that sells premade blueretro devices with Wii-ext. ultimately it’s not a huge deal lol, wired controllers were working great but it’s nice to have a brand new wireless N64 controller with a good stick
 

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,463
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,302
Country
I haven’t had that issue personally, I’ve played for a couple hours at a time and it’s worked fine. Wonder if it’s some kind of power issue. The RetroRosetta uses an external USB C power source and I’ve never had missed inputs or disconnects.

Yeah, my cheap AliExpress adapter is also powered over USB (micro in my case). Some consoles (e.g. GameCube) provide enough power over the controller ports, but others (e.g. Wii EXT) require you to plug in USB. I get the disconnects either way, sadly. Thanks for the info though, it definitely leaves me wondering if there's something wrong on my end specifically.

It’s really awesome that you were able to create a patch that adjusts the inputs for a specific controller and doesn’t affect any of the others. Sadly the BlueRetro device I have is Wii-EXT, as in, connecting Bluetooth controllers as classic controllers.

Sorry, I should have been clearer, I also use the Wii EXT adapter. I bought two adapter cables with mine, a GameCube and a Wii EXT adapter. I use the GameCube adapter when using Switch controllers on GC, and the Wii EXT adapter when using Switch Controllers on Wii U vWii. The GameCube remapping I did only affects when you're plugged into a GameCube, but the NSO N64 remapping affects any/all platforms, including vWii via Wii EXT.

I’m curious how you made the patch though. Maybe I could try doing it myself if it isn’t too difficult. Also, mapping for the N64 controller works well for the Wii VC but not so well for the Wii U VC. ZL is Z and L and R are the same as N64, and ZR is VC Menu. I suppose you can remap it on Wii U VC, and there’s only like 20 games anyway though, and it’s a one time process. But yeah, I’d be curious to know how you did it.

The build instructions for the BlueRetro firmware are found on the BlueRetroRoot repo. They only provide instructions for building on Ubuntu and I'm on Windows, so I just used an Ubuntu virtual machine to build rather than trying to figure out how to do it properly on Windows. It took me a while but as long as you follow all the instructions it's hard to get anything wrong. As for what I actually changed, here's my edits in BlueRetroRoot/BlueRetro/main/adapter/wireless/sw.c:

Code:
diff --git a/main/adapter/wireless/sw.c b/main/adapter/wireless/sw.c
index dbf15d9..b0f3bc4 100644
--- a/main/adapter/wireless/sw.c
+++ b/main/adapter/wireless/sw.c
@@ -237,7 +237,7 @@ static const uint32_t sw_gen_btns_mask[2][32] = {
     },
 };
 
-static const uint32_t sw_n64_mask[4] = {0x33D50FFF, 0x00000000, 0x00000000, 0x00000000};
+static const uint32_t sw_n64_mask[4] = {0x33DF0FFF, 0x00000000, 0x00000000, 0x00000000};
 static const uint32_t sw_n64_desc[4] = {0x0000000F, 0x00000000, 0x00000000, 0x00000000};
 static const uint32_t sw_n64_btns_mask[2][32] = {
     {
@@ -245,17 +245,17 @@ static const uint32_t sw_n64_btns_mask[2][32] = {
         BIT(SW_N64_C_LEFT), BIT(SW_N64_C_RIGHT), BIT(SW_N64_C_DOWN), BIT(SW_N64_C_UP),
         0, 0, 0, 0,
         0, 0, 0, 0,
-        BIT(SW_N64_B), 0, BIT(SW_N64_A), 0,
-        BIT(SW_N64_START), 0, BIT(SW_N64_HOME), BIT(SW_N64_CAPTURE),
-        BIT(SW_N64_Z), BIT(SW_N64_L), 0, 0,
-        BIT(SW_N64_ZR), BIT(SW_N64_R), 0, 0,
+        0, BIT(SW_N64_A), BIT(SW_N64_B), 0,
+        BIT(SW_N64_START), 0, BIT(SW_N64_HOME), 0,
+        BIT(SW_N64_Z) | BIT(SW_N64_L), BIT(SW_N64_CAPTURE), 0, 0,
+        BIT(SW_N64_R), BIT(SW_N64_ZR), 0, 0,
     },
     {
         0, 0, 0, 0,
         BIT(SW_N_X), BIT(SW_N_MINUS), BIT(SW_N_ZR), BIT(SW_N_Y),
         BIT(SW_N_LEFT), BIT(SW_N_RIGHT), BIT(SW_N_DOWN), BIT(SW_N_UP),
         0, 0, 0, 0,
-        BIT(SW_N_B), 0, BIT(SW_N_A), 0,
+        0, BIT(SW_N_A), BIT(SW_N_B), 0,
         BIT(SW_N_PLUS), 0, BIT(SW_N_HOME), BIT(SW_N_CAPTURE),
         BIT(SW_N_ZL), BIT(SW_N_L), 0, 0,
         BIT(SW_N_LJ), BIT(SW_N_R), 0, 0,

The thing to note there is that the order of the buttons is meaningful, that's how they'll be mapped by BlueRetro. So you can see a changed line there:

Code:
-        BIT(SW_N64_B), 0, BIT(SW_N64_A), 0,
+        0, BIT(SW_N64_A), BIT(SW_N64_B), 0,

The 0s are buttons you just don't have and the named buttons are the ones you do. The button order there is Y, A, B, X, so I switched the buttons from Y/B to B/A. The other complicated part is fixing the bitmask (static const uint32_t sw_n64_mask). Frankly, I never understood that part and just asked darthcloud who gave me the corrected bitmask for my layout.
 
Last edited by Vague Rant,
  • Like
Reactions: IceBlueLugia

IceBlueLugia

Well-Known Member
Member
Joined
Nov 4, 2016
Messages
233
Trophies
0
XP
763
Country
United States
Yeah, my cheap AliExpress adapter is also powered over USB (micro in my case). Some consoles (e.g. GameCube) provide enough power over the controller ports, but others (e.g. Wii EXT) require you to plug in USB. I get the disconnects either way, sadly. Thanks for the info though, it definitely leaves me wondering if there's something wrong on my end specifically.



Sorry, I should have been clearer, I also use the Wii EXT adapter. I bought two adapter cables with mine, a GameCube and a Wii EXT adapter. I use the GameCube adapter when using Switch controllers on GC, and the Wii EXT adapter when using Switch Controllers on Wii U vWii. The GameCube remapping I did only affects when you're plugged into a GameCube, but the NSO N64 remapping affects any/all platforms, including vWii via Wii EXT.



The build instructions for the BlueRetro firmware are found on the BlueRetroRoot repo. They only provide instructions for building on Ubuntu and I'm on Windows, so I just used an Ubuntu virtual machine to build rather than trying to figure out how to do it properly on Windows. It took me a while but as long as you follow all the instructions it's hard to get anything wrong. As for what I actually changed, here's my edits in BlueRetroRoot/BlueRetro/main/adapter/wireless/sw.c:

Code:
diff --git a/main/adapter/wireless/sw.c b/main/adapter/wireless/sw.c
index dbf15d9..b0f3bc4 100644
--- a/main/adapter/wireless/sw.c
+++ b/main/adapter/wireless/sw.c
@@ -237,7 +237,7 @@ static const uint32_t sw_gen_btns_mask[2][32] = {
     },
 };
 
-static const uint32_t sw_n64_mask[4] = {0x33D50FFF, 0x00000000, 0x00000000, 0x00000000};
+static const uint32_t sw_n64_mask[4] = {0x33DF0FFF, 0x00000000, 0x00000000, 0x00000000};
 static const uint32_t sw_n64_desc[4] = {0x0000000F, 0x00000000, 0x00000000, 0x00000000};
 static const uint32_t sw_n64_btns_mask[2][32] = {
     {
@@ -245,17 +245,17 @@ static const uint32_t sw_n64_btns_mask[2][32] = {
         BIT(SW_N64_C_LEFT), BIT(SW_N64_C_RIGHT), BIT(SW_N64_C_DOWN), BIT(SW_N64_C_UP),
         0, 0, 0, 0,
         0, 0, 0, 0,
-        BIT(SW_N64_B), 0, BIT(SW_N64_A), 0,
-        BIT(SW_N64_START), 0, BIT(SW_N64_HOME), BIT(SW_N64_CAPTURE),
-        BIT(SW_N64_Z), BIT(SW_N64_L), 0, 0,
-        BIT(SW_N64_ZR), BIT(SW_N64_R), 0, 0,
+        0, BIT(SW_N64_A), BIT(SW_N64_B), 0,
+        BIT(SW_N64_START), 0, BIT(SW_N64_HOME), 0,
+        BIT(SW_N64_Z) | BIT(SW_N64_L), BIT(SW_N64_CAPTURE), 0, 0,
+        BIT(SW_N64_R), BIT(SW_N64_ZR), 0, 0,
     },
     {
         0, 0, 0, 0,
         BIT(SW_N_X), BIT(SW_N_MINUS), BIT(SW_N_ZR), BIT(SW_N_Y),
         BIT(SW_N_LEFT), BIT(SW_N_RIGHT), BIT(SW_N_DOWN), BIT(SW_N_UP),
         0, 0, 0, 0,
-        BIT(SW_N_B), 0, BIT(SW_N_A), 0,
+        0, BIT(SW_N_A), BIT(SW_N_B), 0,
         BIT(SW_N_PLUS), 0, BIT(SW_N_HOME), BIT(SW_N_CAPTURE),
         BIT(SW_N_ZL), BIT(SW_N_L), 0, 0,
         BIT(SW_N_LJ), BIT(SW_N_R), 0, 0,

The thing to note there is that the order of the buttons is meaningful, that's how they'll be mapped by BlueRetro. So you can see a changed line there:

Code:
-        BIT(SW_N64_B), 0, BIT(SW_N64_A), 0,
+        0, BIT(SW_N64_A), BIT(SW_N64_B), 0,

The 0s are buttons you just don't have and the named buttons are the ones you do. The button order there is Y, A, B, X, so I switched the buttons from Y/B to B/A. The other complicated part is fixing the bitmask (static const uint32_t sw_n64_mask). Frankly, I never understood that part and just asked darthcloud who gave me the corrected bitmask for my layout.
Ah, I see that makes sense. Good to know I can use this firmware then. I’ll see if I can get it working with other controllers as well. Thank you for all the information! Not too knowledgeable on this sort of thing but it doesn’t look insanely hard or anything and you’ve provided a lot of detail, so it seems like it should be doable. And I guess I can always ask darthcloud if I need to lol. Appreciate it man
 

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Hey man, could you tell me what mappings you used? I bought a RetroRosetta for the same purpose, but the N64 NSO, SNES NSO, and NES NSO mappings are wrong. I can remap with the software but that obviously results in all the mappings changing for every other controller, which makes many basically unusable. Essentially you can only make it so that the controls can only work well for either PSX emulator or N64 emulator or NES emulator, etc but not everything at once. So I’m just wondering how you got this to work so well. Even if I remap the buttons in Not64 to use Y and B instead of A and B, that still leaves the problem of not having access to the A button in the menus and stuff. Are you saying the 8BitDo modkits in D-input mode resulted in it working perfectly?
Hey there guys. Sorry I have replied so late. It seems like you have figured it out, but I wanted to post my findings in hopes that it could help you or anyone else out.

First off, there is a Wii homebrew app called Visual Controller Test that will be your best friend. It shows a visual representation of the Wii Classic Controller (which the Retro Rosetta emulates) so you can see what you're doing. It helps out a lot when you are trying to do testing, and you can go back and forth to test how things are working.

Next I wanted to post my button mappings so that you could try to replicate what I'm doing. I have listed both Src and Dst to default so you can see what I'm doing and easily replicate it. Here is a list of my mappings that I have setup

Code:
+--------------+--------------+
| Src Default  | Dst Default  |
+--------------+--------------+
| GP: LX Left  | GP: LX Left  |
| GP: LX Right | GP: LX Right |
| GP: LY Down  | GP: LY Down  |
| GP: LY Up    | GP: LY Up    |
| GP: RX Left  | GP: RX Left  |
| GP: RX Right | GP: RX Right |
| GP: RY Down  | GP: RY Down  |
| GP: RX Up    | GP: RY Up    |
| GP: LD Left  | GP: LD Left  |
| GP: LD Right | GP: LD Right |
| GP: LD Down  | GP: LD Down  |
| GP: LD Up    | GP: LD Up    |
| GP: RB Left  | GP: RB Left  |
| GP: RB Right | GP: RB Down  |
| GP: RB Down  | GP: RB Right |
| GP: RB Up    | GP: RB Up    |
| GP: MM       | GP: MM       |
| GP: MS       | GP: MS       |
| GP: MT       | GP: MT       |
| GP: MQ       | GP: MQ       |
| GP: LM       | GP: LS       |
| GP: LS       | GP: LM       |
| GP: LT       | GP: LT       |
| GP: LJ       | GP: LJ       |
| GP: RM       | GP: RS       |
| GP: RS       | GP: RM       |
| GP: RT       | GP: RT       |
| GP: RJ       | GP: RJ       |
+--------------+--------------+

Now with that combination, I have my 8bitdo NES replacement board, my 8bitdo Genesis Replacement Board, my N64 NSO controller, and a PS4 controller. The NES controllet is set to xinput and the Genesis controller is set to Switch. And all of the buttons are set to work all at once and all within the buttons on a Wii Classic Controller (the Retro Rosetta). Uesing the Visual Controller Test software will show you how all of the buttons are working. You can then browse the Homebrew Channel and see how things work. Its not a perfect button mapping, but it works well enough. You will find that the N64 NSO has R = + and L = - and 8bitdo NES controller have Start = + an Select = - so you can browse through different Wii Homebrew. I use a handy program that a nice programmer on here made for me called WiiRestart that simply restarts the console, that then boots you back to the Wii U Menu.

Now that your in the Wii U Menu, you can run fowarders that will open vWii emulators and everything should work fine. With the one exception of may having to press 2 on the Wiimote to get the Wii U menu off of the Gamepad and on the TV. Since there is no 1 or 2 on the classic controller, theres no way that we can map a button to do so, which is kinda lame :glare: I don't have a link off hand, but you do some searching on this site and find some forwarders that will take you to the program that you want to load. A great Aroma plugin to use is called Wii VC Launch. You can use it either to select what screen options you want with any controller (like our bluetooth controllers) or you can save the settings to boot the same way every time so you don't have to mess with it. Also be sure to use c2cafe patcher for over clocking and use evWii as well. l don't use Nintendont because I have a HDMI modded GC, so I just use that to play GC games. So I can't speak to anything regarding the Wii U Gamecube adapters. I do have one of these coming in the mail soon, and I am contemplating getting a Mayflash adapter to see if that would work with the Wii U, but thats another post for another day. So anyway, you load the forwarder and it takes your strait to the emulator. And like Vauge Rant mentioned, you will then need to go into all of you emulators and map buttons from there. Do all of that, and you should be up and running. You can use the Shutdown Wii U app to turn the console off with your bluetooth controller.

I hope this helped out out. Let me know if you have any further questions and I'll help where I can.
 
Last edited by Sowden,
  • Like
Reactions: IceBlueLugia

Sowden

Well-Known Member
OP
Member
Joined
Sep 21, 2021
Messages
245
Trophies
0
Age
57
XP
973
Country
United States
Ok, so I'm coming back for my final post cause I've ran out of options after some further tests. SPOILER ALERT: I failed. If you still want a solution, see my post above. It's the best and only way to get Blueretro on the Wii U.

First off I got this Blueretro adapter in the mail and it works great on my Gamecube. So I was wondering if I could get it to work on the Wii U. So I've tried a few things and they all failed. The first thing I tried was this Wiimote addon device. It pretty much did the same thing as the Reotro Rosetta did as it emulated a Wii Classic Controller. It worked with my GC controller and it even worked with my Wavebird. But I plugged the Blueretro adapter in and the blue light would turn on and off. It's supposed to be a solid blue. My phone wasn't able to see the online connectivity. So I just assumed that it wasn't getting enough power. As the Retro Rosetta option does require a USB-C power solution. So I returned it.

So then locally I found a store selling a Wii U/Switch GC controller adapter much like this one. I have never had one of these before and didn't know how they worked. I had read that it only works with Super Smash Bros, but I hadn't taken that as literally as it means. It means only. As in the GC contrler doesn't even work in the Wii U Menu. It surely worked in Smash with a wired controller, but not with my Wavebird :\ I understand that Nintendont uses there Wii U Gamecube adapter using some black magic, but it's not useful anywhere else in vWii either. And plugging in the Blueretro dongle gives the same result as the last one does.

So in my findings, the Retro Rosetta is the way to go. It can be a bit cumbersome, but it is really the only way to use bluetooth controllers to work with these emulators. I'm still really happy with it, and I would reccomend it to anyone here who wants a retro wireless controller feel. If anyone else discovers something, please post below!
 

razor9119

New Member
Newbie
Joined
Feb 26, 2024
Messages
2
Trophies
0
Age
33
XP
6
Country
United Kingdom
I bought blueretro NGC adapter for my Wii's gamecube ports. Using Visual Controller Test on homebrew menu every button looks like working well inc triggers. However, when I load a game in Nintendont, everything but trigger doesn't work at all. I can't exit the game nor drift in Mario kart. I am using 8bitdo pro 2 in X mode with a modified profile as ABXY all mapped incorrectly.

Anyone has any idea on this?
 

almmiron

Well-Known Member
Member
Joined
Jan 9, 2012
Messages
423
Trophies
1
XP
1,982
Country
Brazil
I bought blueretro NGC adapter for my Wii's gamecube ports. Using Visual Controller Test on homebrew menu every button looks like working well inc triggers. However, when I load a game in Nintendont, everything but trigger doesn't work at all. I can't exit the game nor drift in Mario kart. I am using 8bitdo pro 2 in X mode with a modified profile as ABXY all mapped incorrectly.

Anyone has any idea on this?
well this topic is not the best, i think ther are proper general blueretro topic somwhere.

But i think you may want to use "GameCube Merge analog & digital trigger" option on blueretro web advanced menu.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: unless nintendo is going to start selling consoles at a loss that thing won't be cheap based on...