darthcloud / BlueRetro

Multiplayer Bluetooth controllers adapter for retro video game consoles
https://blueretro.io
Apache License 2.0
1.31k stars 109 forks source link

8bitmod n64 receiver #706

Closed 0bie0ne closed 11 months ago

0bie0ne commented 1 year ago

BlueRetro firmware version

1.8.3

BlueRetro firmware specification

HW1

BlueRetro firmware variant

System specific

BlueRetro hardware type

External adapter dongle (1 port only)

Manufacturer

8bitmod

System used

Nintendo 64

Bluetooth controller brand & name

8bitdo n64 controller

What is problem? (only list ONE problem per report)

i have to re-sync controller because A button is B and B is A button.

What did you expect to happen?

A is A B is B without syncing again

Attach files like logs or Bluetooth traces here

No response

v1605 commented 1 year ago

Also experienced this issue with the controller is switch mode. Switching to windows/android cause B to register as down c.

v1605 commented 1 year ago

I also just put a diy N64 adapter together to test. Same issue so it looks like it's related to the controller/firmware, not the adapter specifically.

Traxus7 commented 1 year ago

Also experienced this issue with the controller is switch mode. Switching to windows/android cause B to register as down c.

Same issues here, 1.83 firmware, Retro Rosetta on a Funtastic Grape N64.

Pak set to "S" mode, perfect on first sync but subsequent connections result in mapping issues: A and B are swapped, C-Down = Z, C-Up = C-Down, and C-Right is unresponsive.

Pak set to "D" mode: B registers as Down-C and Z is unresponsive.

Also Rumble doesn't work in any mode, as nortakales mentions below

Beer-Fridge commented 1 year ago

Same issue for me as well. Anytime the controller reconnects after the initial sync, the A and B buttons are swapped.

nortakales commented 1 year ago

This probably warrants a separate issue (or maybe none at all since it may not be something BlueRetro can even change/fix) but rumble is not working with the 8bitdo N64 mod kit. I've gone back and forth with 8bitdo support, and they claim it only works with Nintendo Switch, and only NSO N64 games. Which is a serious shame. I would LOVE to have rumble working on my real N64 through BlueRetro and the 8bitdo N64 mod kit. That kind of seems like the holy grail of playing N64 in 2023.

Edit: I should mention, I also have the A = B issue as mentioned originally in this issue.

Traxus7 commented 1 year ago

Okay, I have a temporary mapping workaround to avoid re-pairing every time.

[EDIT: Workaround no longer needed w/ darthcloud's beta firmware posted below! All mappings are now correct in D mode.]

P.S. The 8bitdo boards do NOT suffer from the latency or drops of issue #146 like other Switch controllers. I can have all 4 of my 8bitdo controllers paired and they all behave normally.

DS20815 commented 1 year ago

I am experiencing the same issue with a combination of the 8bitmod N64 receiver and the 8bitdo n64 mod kit in S-Mode. Very rarely the controller pairs fine and all buttons are working as intended but in 99% of the time the button mapping is off; A=B, B=A, C-Up=C-down, C-Down=Z and C-Right is not working at all. I already tried the suggested remapping but I am not able to get C-Down working (except for mapping it to ZL, which is unplayable for me).

Sometimes - very rarely - the controller also pairs but does not recognize any input.

I also tried D-Mode but there the Z button seems to be unavailable.

I am not quite sure wheter this is an error in the 8bitdo firmware or a pairing problem between the controller and the blueretro receiver. Overall the mod kit and the receiver are great and could in combination be the best wireless solution for the N64, with a far better availability than the NSO controller. The controller is working perfectly fine with the switch, but due to the mapping issues with blueretro the kit is no alternative to wired controllers at the moment.

I'm hoping for a solution in the near future

faha223 commented 1 year ago

I may have found something useful.

I've only tested this a handful of times, but it seems that if you put the N64 controller into pairing mode before turning the N64 on (press and hold the sync button), then it syncs up and works correctly. If you just leave it in the slow flashing mode then it'll eventually connect but the button bindings will be all messed up.

This is the workaround I'll be using from now on as it seems to be reliable (according to my roughly 3 minutes of testing).

Traxus7 commented 1 year ago

I may have found something useful.

I've only tested this a handful of times, but it seems that if you put the N64 controller into pairing mode before turning the N64 on (press and hold the sync button), then it syncs up and works correctly. If you just leave it in the slow flashing mode then it'll eventually connect but the button bindings will be all messed up.

This is the workaround I'll be using from now on as it seems to be reliable (according to my roughly 3 minutes of testing).

On first pairing the mappings are correct, so yeah this is a solid workaround for a single 8bitdo modkit controller, or multiple each paired with individual dongles.

It's just unwieldy if you're pairing multiple 8bitdo modkit controllers on a single multi-cable blueretro board, since after the first controller pairs the receiver leaves pairing mode and only monitors for controllers that have been paired previously (I don't know what the technical term is). I guess it's possible to re-enter pairing mode by pressing one of the buttons on the unit, but I haven't tried it. And that might require the first controller to re-pair as well? Which would make the whole workaround pointless in this situation.

darthcloud commented 12 months ago

I added support for the D mode (switch mode is broken)

You can try v1.9 beta here: https://github.com/darthcloud/BlueRetro/actions/runs/6437347093

See pairing instruction in the beta wiki: https://github.com/darthcloud/BlueRetroWiki/blob/master/Controller-pairing-guide.md#15---8bitdo-n64-modkit-paring-guide

stainmage commented 12 months ago

thank you very much darthcloud, i'll try it right now, hope the switch mode will get fixed so we can enjoy the rumble action !

EDIT : tried the v1.8.4-27-g0a29947_hw1 linked above, (it doesn't show as 1.9) and followed instructions, B button is recognized as C down, Z button is unresponsive

nortakales commented 12 months ago

@darthcloud is it even possible to get Switch mode working eventually, or will it never be possible? Just curious.

stainmage commented 12 months ago

hey this is the workaround in D mode

2023-10-07 20_00_07-BlueRetro Advance config

darthcloud commented 12 months ago

You shouldn't need any work around with latest version. try to factory reset your adapter

darthcloud commented 12 months ago

@nortakales official Switch is a giant PITA, 3rd party ones even more so.

Likely not, complain to 8bitdo that rumble don't work in D mode.

stainmage commented 12 months ago

did this all the day but it didn't work without this darthcloud, not sure if the 1.9 is linked above, it downloads as 1.8.4 and it needs remap even after factory reset

darthcloud commented 12 months ago

the beta will display as v1.8.4-27 in web

darthcloud commented 12 months ago

note that factory will remove the update, so you need to update again after

stainmage commented 12 months ago

i'll give it a try again thanks

darthcloud commented 12 months ago

someone else confirmed it work in the other bug.

Did you ever update the 8bitdo controller FW?

I'm on stock one.

stainmage commented 12 months ago

the only fw available is the 1.0 afaik

stainmage commented 12 months ago

did a factory reset then reflashed the firmware, but it didn't work, mapping is still messed on my side, need the workaround again

0bie0ne commented 12 months ago

seem to be working no issue, power off console and controller. turn on console then controller re-sync automatically all buttons works

stainmage commented 12 months ago

maybe i'm flashing it wrong ? i'm using the retroscaler blueretro-n64 from the bluetooth web interface, should I use hw1 or hw2 ?

darthcloud commented 12 months ago

HW1, its the proper way. Can you check your controller FW version in the 8bitdo software? I'll try to check mine later.

0bie0ne commented 12 months ago

8bitdo has only one fw 1.00.

darthcloud commented 12 months ago

@stainmage

Mine got V1.00, no idea why your buttons would be reversed. The controller rumble switch is really in D mode? And you repaired while being in that mode?

What version do the BlueRetro web interface show? Take screenshot.

Can you get a trace of your controller while in D mode on windows? https://github.com/darthcloud/BlueRetro/wiki/Bluetooth-HCI-trace-with-Win10

While doing the trace first press button A like 10 times and then after press B buttons 10 times. Then stop the trace, don

solid1986 commented 12 months ago

Updated firmware on my adapter to v1.8.4-27-g0a29947_hw1 and I'm also having the same problem. At first I thought everything was working, so I moved on to my next problem, n64 digital was causing my screen to tear occasionally. I was testing that fix with smash brothers and noticed the B button caused me to jump in the air, rather than the normal moves. Can't navigate back in menu's in the everdrive. Didn't look at button mapping directly, but it's certainly not working as intended. Connects like a champ now without the previous bugs though.

darthcloud commented 12 months ago

Can you go load the default preset via the beta web config to be sure you don't have old mapping you previously made

https://darthcloud.github.io/BlueRetroWebCfg_Beta/presets.html Select default gamepad then save

stainmage commented 11 months ago

Hi darthcloud, the controller is in D mode, was previously linked in switch mode but I reset everything so it's not paired anymore.

here's a screenshot of the web interface

I didn't try to shutdown the n64 after factory reset and after firmware update, i'll try again this way, and will load the default gamepad via web config beta and let you know asap.

Will do the trace if it doesn't work and let you know

capture

stainmage commented 11 months ago

everything works fine now ! thanks

darthcloud commented 11 months ago

Base on screenshot the FW version was wrong.

Should be:

Connected to: BlueRetro_N64_xxxx (xx:xx:xx:xx:xx:xx) [v1.8.4-27-g0a29947 hw1]
stainmage commented 11 months ago

it's fine when I check the version before starting to flash, it shows Connected to: BlueRetro_N64_xxxx [v1.8.4-27-g0a29947 hw1 ] but it shows this suggestion to download 1.8.4 from itch.io when it starts flasing

darthcloud commented 11 months ago

it's normal, it's a beta firmware so just ignore that message

solid1986 commented 11 months ago

I resolved my problem. Apparently I still wasn't on the correct firmware version, even though I definitely downloaded and unzipped the latest. Not sure what happened there, but I re-downloaded and installed again and everything is working flawlessly. Thanks for everything you do!

Traxus7 commented 11 months ago

OMG THANK YOU DARTHCLOUD!! Finally, got my four modded original N64 controllers on a single BlueRetro board with no weird workarounds. The dream is a reality.

That's a shame about no rumble but it makes zero sense that 8bitdo didn't implement it at all in D mode from day-one. I think I'll write 8bitdo an email a week about it until they update that shit.

Matt-Retrogamer commented 11 months ago

Just to understand properly, the rumble pack does not work at all with the BlueRetro adapter and the 8bitdo mod kit ? It makes no vibrations neither in D nor S modes? Just works on Switch in NSO?

nortakales commented 11 months ago

@Matt-Retrogamer that seems to be the current state, yes.

I emailed 8BitDo when the mod kit first came out. It was really tough communicating with them because I only know English and English was not their first language, but from what I could gather 8BitDo says this is totally expected behavior and had no plans to support rumble on anything other than NSO. Which is an utter shame, IMO.

darthcloud commented 11 months ago

BTW the rumble not working in Switch mode is not unique to BlueRetro. All 8bitdo controller used with steam on windows will not have working rumble after reconnect (not sure if it work after a first pairing)

I did actually investigate this in detail going all the way to do a wireless trace of a 8bitdo controller with a real Nintendo switch. BlueRetro perform the config just like a real Switch would. But for some unknown reason the rumble packets are ignored by the 8bitdo controller 🤷.

Traxus7 commented 11 months ago

I emailed 8BitDo when the mod kit first came out. It was really tough communicating with them because I only know English and English was not their first language, but from what I could gather 8BitDo says this is totally expected behavior and had no plans to support rumble on anything other than NSO. Which is an utter shame, IMO.

Agreed, though plans can easily change if enough people bug them about it. I wouldn't assume it's a hardware impossibility. When people asked about rumble back at launch their canned response was it's "currently" only available in Switch mode.

AFAIK they have other Switch / Android / PC compatible controllers that do allow access to rumble functionality in all modes? Kinda feels like they just rushed the N64 modkit out as soon as they had the Switch side of things working and left D-input partially functional.

Their support email is here, if anyone else wants to make some noise. support@8bitdo.com

darthcloud commented 11 months ago

Fixed in v1.9 https://github.com/darthcloud/BlueRetro/releases/tag/v1.9

mistermorcus commented 11 months ago

I emailed 8-bitdo. Here is my request:

I am writing in hopes that you can update your N64 Controller Modkit with Rumble support in D Mode. It would be a huge selling point for people that use their controllers on devices other than the Nintendo Switch.

Here is their response:

Thank you for reaching us out!

Dinput mode is a protocol that does not have vibration capability by default, and even if vibration functionality is added, the device connected to the controller still won't recognize the vibration.

Matt-Retrogamer commented 11 months ago

Sure... But what about S mode ?

Traxus7 commented 11 months ago

I emailed 8-bitdo. Here is my request:

I am writing in hopes that you can update your N64 Controller Modkit with Rumble support in D Mode. It would be a huge selling point for people that use their controllers on devices other than the Nintendo Switch.

Here is their response:

Thank you for reaching us out!

Dinput mode is a protocol that does not have vibration capability by default, and even if vibration functionality is added, the device connected to the controller still won't recognize the vibration.

Bummer. I got the same copy/paste response, with the additional claim that none of their controllers support rumble for D-input:

Thank you for reaching us out! All of the 8BitDo controllers do not have the rumble feature in Dinput mode. Dinput mode is a protocol that does not have vibration capability by default, and even if vibration functionality is added, the device connected to the controller cannot recognize the vibration.

Kind regards, Max 8BitDo Support

dragonblue950 commented 11 months ago

Thank you stainmage for the tip, you save me. I use a blueretro found on Aliexpress and I can't install v1.9 it tells me it's incompatible. I must use the NodeMCU-PyFlasher software and a link given to update it but the latest version is n64_1.8.3.bin. Sorry for the Google translate.

image

https://github.com/RetroScaler/N64-Blueretro/

https://github.com/RetroScaler/N64-Blueretro/releases

drackybrok commented 5 months ago

Sure... But what about S mode ?

When I had a back and forth with support for rumble in s mode for platforms other than switch online they said they had no plans to add any. However I have found that rumble is supported in s mode on the Mister Fpga n64 core so someone figured out how to get it to work there.