Skip to content
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

Gitches on Nintendo 64 with N64 Digital while using Controller/Rumble Pak / F-Zero #264

Closed
Taurus1099 opened this issue May 1, 2022 · 70 comments

Comments

@Taurus1099
Copy link

Taurus1099 commented May 1, 2022

I’ve enabled the controller pak manager through the web interface and formatted it but a number of games prompt that there is a problem with the pak on launch. One example is Tony Hawk Pro Skater 1. As a separate issue, F-Zero does not detect the blueretro device as a controller.

Console is modded with N64 digital and using latest version of the blueretro firmware. Unrelated, but with two NSO 64 controllers the number returned from the controller test tool for the right axis seems to be a bit higher than the benchmark. What setting in the advanced config should I adjust? Two different NSO 64 controllers return different values on the test tool, so there must be some variance at the factory with those sticks.

@darthcloud
Copy link
Owner

darthcloud commented May 2, 2022

Try to format via a laptop if you used a phone, or just let tony hawk format it when prompted.

If detection fail you can simply press reset on console, some games give up too fast.

Play with the LX, RX maximum value in web config to fine tune joystick.

IMHO this is a waste of time, that test tool make people paranoid. Most games are programmed with a good play room.

@Taurus1100
Copy link

Thanks for replying! I've tried the suggestions but F-Zero does not work at all with a blueretro device and Tony Hawk will not recognize the controller pak. Testing a random sample of other controller pak games shows a major issue with the current integration. I've also experienced odd rumble behavior. On Goldeney 007, the rumble will not work correctly when firing. It gives a brief rumble and then stops when firing, when it should continue to rumble when firing. This is a great product, and hopefully you'll be able to circle back around to the N64 to finish polishing the feature set. Thank you!

@darthcloud
Copy link
Owner

You might have some build related issues because I personally got none of those issues.

Sound like your data line is glitching somehow.

@Taurus1100
Copy link

This was confirmed from others using the adapter purchased from Tindie so it is likely the build. I’ll follow up with the seller.

@darthcloud darthcloud changed the title Nintendo 64 Controller Pak / F-Zero bixxewoscht's dongle gitches Nintendo 64 Controller Pak / F-Zero May 5, 2022
@darthcloud
Copy link
Owner

If you can ask others to report feedback in this GitHub issues.

Everyone with issue should list the following information if possible:

  • N64 motherboard revision
  • List of internal mods installed
  • Other external peripheral used

It could be problem with the dongle itself but it could also be some interoperability issue with some motherboard or some other mods.

@Taurus1100
Copy link

@bixxewoscht

@bixxewoscht
Copy link

I had mempak issues myself before, but they were resolved when I used a PC instead of a phone to change the config. These issues occured both on my adaptor as well as on an ESP32 Devkit which I used to compare functionality.
Regarding the other issues, both with a ESP32 Devkit as well as my own Adaptors I had sporadic rumble issues, close to the ones that you described.
Nothing gamebreaking though, the core functionality always worked. To be honest I always accepted it as minor issues in a great open source project, maybe depending on different controllers, console revisions and mods used. In the issues section on GitHub there are also several topics related to these small issues, so I did not look more into it and accepted it as small software bugs that don't really affect me.

Now of course I don't want to blame you @darthcloud for anything in your amazing project and I want to offer the most for everyone who bought my Adaptor, so I will look further into it.

Because I just moved last week, it will take more time than usual, I barely even have a TV set up at the moment, and my N64 consoles as well as the Adaptors are still in boxes.

I will try to get to it this weekend.

@darthcloud
Copy link
Owner

darthcloud commented May 5, 2022

@bixxewoscht Anything is possible off course but the N64 is the original system BlueRetro was developed for and that I actually use myself a lot. I gone though GoldenEye a few time ever the last 3 years and never noticed any rumble issues. The way it is implemented makes the interface very robust as it is using the ESP RMT peripheral, (so no software bit bang). What you guys describe should not happen at all.

I'm using my own BlueRetro Devkit when playing but I did test with a few clone ESP-DevKit-C in December and this spring and didn't got any controller pak error myself. Controller pak was tested by going through Turok 1 and Tony Hawk 1.

The issue sound like the data line is glitching.

My own board got ESD protection on each line using a TPD6F002DSVR chip. This got an equivalent resistance of 100ohm. No idea if this help or not.

Maybe ship me one of your dongle for me to test.

I play with early N64 rev mostly but got a few more now that I could try on too. I got no mod in my console.

@darthcloud
Copy link
Owner

@Taurus1100 / @Taurus1099 I got your adapter today and made some quick test and it look to be working fine for me.

See video:
https://youtu.be/IBnAhmHv9O8

I tested with your F-Zero X and TH1 cartridge with a NUS-CPU-04 and NUS-CPU-08-01 motherboards. Both work fine.

I got others N64 mobo in storage will dig them this weekend and report back.

Meanwhile can you confirm which mobo your N64 got? Did you install any mods? Are you using an original AC adapter?

@taurus1101
Copy link

taurus1101 commented May 18, 2022

Thanks for taking a look. My console revision is NUS-CPU-08-01 (modded with N64 Digital) and I'm using the original power supply. I also tested with an additional power supply and no change. When you are able to do further testing, are you able to get into a game on F-Zero? I've seen the game respond to controller inputs for 10-15 seconds but eventually it stops completely. The N64 Digital menu is still accessible however. Also, any issues with the rumble in Goldeneye?

@darthcloud
Copy link
Owner

I think its likely the N64 digital that interferes with the pad data lines. I can test more this weekend but its likely all fine.

I don't know much about N64 digital but I think you could remove the one connection for pad and it would likely work fine. But you would lose the OSD access.

@darthcloud
Copy link
Owner

And what's up with using new account every comments?

@taurus1101
Copy link

taurus1101 commented May 18, 2022

Must be related to the N64 Digital. I noticed a similar issue on another open source project:

Ryzee119/usb64#42

Edit: Tested using the second controller port and rumble/memory pak work great. Issues are limited to the first port only, so it must be something with the ability to pull up the OSD.

@bixxewoscht
Copy link

bixxewoscht commented May 19, 2022 via email

@darthcloud darthcloud changed the title bixxewoscht's dongle gitches Nintendo 64 Controller Pak / F-Zero Gitches on Nintendo 64 with N64 Digital while using Controller/Rumble Pak / F-Zero May 20, 2022
@darthcloud
Copy link
Owner

n64_test_push_pull.zip

This is untested but it change the data line from open-drain, to push-pull. Maybe that will help if the issue is on the TX side.

@taurus1101
Copy link

taurus1101 commented May 20, 2022

Everything is now working perfectly! The added ability to get vibration feedback on switching between rumble/memory pak is very helpful. Is there any functionality lost by changing the data line? Tagging bixxewoscht to let him know this looks to be resolved.

@astro187
Copy link

Hi @darthcloud, I'm the guy that slid into your DM's. Similar to the above user, I can confirm that the new firmware fixes all of the issues I was having. I played with it for quite a while today and exercised all of the main functionality and everything worked great. Thaks for finding a workaround so quickly... I was excited, then super bummed, and now excited again... this is a really neat implementation and will be my goto N64 setup going forward!


Just in case it is useful info for future reference, when I was having problems it was the following setup:
NUS-CPU-08-01 with N64Digital mod
stock PSU
Switch Pro controller
v1.5.1 of your firmware
@bixxewoscht receiver

What was happening (this was only for P1 on my modded system; P2 worked fine and my stock NUS-CPU-08-01 worked fine)
Controller pak emualation wasn't working at all (games either wouldn't recognize it or would report it corrupted)
Every few seconds an uncommanded controller input [Dpad down + Dpad right + main joystick (1,-1)] would register

@mario-64
Copy link

I can confirm this firmware seems to resolve the issues I was having on my n64digital console as well, both with F-Zero X and overall memory pak issues.

@darthcloud
Copy link
Owner

darthcloud commented Aug 13, 2022

I got an N64 digital this week and was finally able to investigate first hand.

I wasn't really a fan of the workaround I made to fix it, the N64 SI is means to have device with open drain IO. So switching to push-pull is not really ideal IMHO.

This is really an issue caused by the N64 Digital mode and I think the fix should be an HW on it.

To fix it I added a 74AHCT125N buffer between the the PIF pin 16 and the N64D ribbon COM pad

This did the trick F-Zero X menu doesn't glitch with BlueRetro and the N64D OSD still work as before.
1 gate SMD variant:
kicad_qEtttH5Odq
4 gate DIP variant:
kicad_fcywXo2R8Q

The best would be to design a ribbon with a pad for the tiny 1 gate variant 74AHCT1G125W5-7

PXL_20220813_205732992
PXL_20220813_205811684

@mario-64
Copy link

Will you please leave the software fix in place for those of us without skills to mod our systems? I would have to pay for this work to be done :-(

@darthcloud
Copy link
Owner

Problem is this fix doesn't work for everybody, and it actually break it for some people without a N64D.

Old FW stay available so you can keep what you currently have, and if any major update occur I can always post a special version in this thread

@mario-64
Copy link

Great thank you

@BassXX
Copy link

BassXX commented Dec 15, 2022

Hello, I don’t understand, why isn’t this integrated by default?

why we have to use these workarounds?

@mario-64
Copy link

The fix is integrated in firmwares prior to 1.8 but it was removed in the main branch.

@darthcloud
Copy link
Owner

Its a hardware bug and the workaround only work for half people with n64 digital, and break half people without one.

The real fix is the pixelfx patch cable.

@mario-64
Copy link

Its a hardware bug and the workaround only work for half people with n64 digital, and break half people without one.

The real fix is the pixelfx patch cable.

Blueretro, N64 or n64digital hardware bug?

@darthcloud
Copy link
Owner

n64 digital hardware bug, this is why they provide a flex patch

@BassXX
Copy link

BassXX commented Dec 16, 2022

As an ultra hdmi user, I suffer the same problem.

And I know for sure that there won’t be a fixed flex cable, at least not from the mod creator.

so basically I have no choice but to either switch to N64Digital or use those workarounds. I hope those will be provided in the future versions as well. Thank you

@bixxewoscht
Copy link

You could also look at the Flex/DIY fix documentation and adapt it for Ultra HDMI. There shouldn't be too much of a difference. But I don't know it exactly since I've never looked at Ultra HDMI.

@darthcloud
Copy link
Owner

You just need to do as I explained in my previous post in this thread
#264 (comment)

@Sowden
Copy link

Sowden commented Dec 20, 2022

Would the #264 post fix for those with UltraHDMI's as well?

@darthcloud
Copy link
Owner

@Sowden yes

@Sowden
Copy link

Sowden commented Dec 20, 2022

@darthcloud Ok, let me see if I get this one strait. The only wire you are intermediating is the N64D ribbon cable to the PIF 16. You aren't messing with any of the other connections? I'm asking because I'm finding the similarities between the N64D and the UltraHDMI. The UHDMI has a ribbon cable that I believe you attach to the same spots as the CON connection on the N64D.

ezgif com-gif-maker
(not my photo, taken to show example)
So would that mean that you would connect the UHDMI ribbon -> Pin 2 <74AHCT125N> Pin 3 -> (whatever pin depending on your motherboard)? Cause that might be the solution for the select few that own UltraHDMI sets.

@darthcloud
Copy link
Owner

@Sowden Yeah just piggy-back a 74AHCT125N on top of the PIF chip like I did (connect 3V3 & GND to pif pin directly) then the pin label N64D_COM (pin3 ) is the one you plug your ultra HDMI cable to. and pin 2 goes to the pif controller 1 pin. Don't forget to GND all the needed pins as done in my schematic.

@Sowden
Copy link

Sowden commented Dec 20, 2022

@darthcloud Oh, GND Pin 1 -> PIF 14 and 3.3 v Pin 14 -> PIF 28? So the 74AHCT125N has four connections in total, is that correct?

@nostalgic-indulgences
Copy link

45438CE1-6ED2-469A-83DC-BD18C1B5063C

935D6C52-EA09-4E09-8A2B-6362A7A14F9D

This might be a more elegant solution and it has been verified to work

@mario-64
Copy link

mario-64 commented Jan 5, 2023

Where can you purchase this board?

@nostalgic-indulgences
Copy link

It’s all put together using off the shelf parts that are easily available on AliExpress, or Amazon with a steeper markup.

https://twitter.com/nosindulgences/status/1607915462771499011?s=46&t=Qh2c6RLeCOPgnFVGdrPCJA

@nortakales
Copy link

Just wanted to pop in here and see if my issue might be related. I've got an N64 with the Gamebox Systems 64HD. When I try to use my BlueRetro adapter (from Retrotime) in controller slot 1, I am getting graphical glitches only on my HDMI out (regular composite output is unaffected). Other controller slots do not have the issue. It's almost as if (and this is just a guess) the OSD menu is being interacted with even though I haven't brought it up. I haven't tried your firmware posted here yet though, I'll give it a try tomorrow.

@bixxewoscht
Copy link

From what I heard from other users (I don't have a 64HD) the Gamebox 64HD definitely has the same issue as N64Digital and other mods that tap into the controller lines. Unfortunately the known fix was not implemented from the get go on the N64HD.

@nortakales
Copy link

I updated my device with v1.8-push_pull_port1_hw1_n64.zip and it did not resolve the graphical glitches :(

@nortakales
Copy link

nortakales commented Jun 1, 2023

To be clear, with the 64HD I am NOT getting mem pak or controller issues with F-Zero or Tony Hawk as reported here for the N64 Digital and Ultra HDMI mods.

I am just getting graphical glitches when my BlueRetro adapter is in controller port one. The glitches usually look like a bunch of random colors flash across the bottom half of the screen. The game I have found it most noticeable on is Snowboard Kids. Here is a video: https://photos.app.goo.gl/kAvNYDFvx1Ush2bP8

@bixxewoscht
Copy link

bixxewoscht commented Jun 2, 2023

I heard from people with a N64 HD that it has problems with signal integrity as it is, without using blueretro simultaneously. This can cause HDMI problems for some people.Reason is most likely the flex-pcb design thats not up to industry standards (ground return path). So likely when using blueretro this amplifies the issue.

@nortakales
Copy link

Yea, I have noticed very infrequently some visual issues, but mostly it is fine. BlueRetro is increasing the frequency by like 100x or 1000x though.

@s-taylor
Copy link

I've ordered the flex cable, I am having issues where the OSD is occasionally inaccessible. Where can I find the installation instructions? I have a friend who is experienced at soldering, hope he can help.

@Z3R0XZ
Copy link

Z3R0XZ commented Aug 30, 2023

I get graphical glitches, video desync, and signal loss from my N64 Digital via HDMI using Blue Retro. Is this problem related?

@browntownington
Copy link

Anyone know if this issue was resolved with the Retro Gem? I would assume it was but haven't read anything to confirm.

@mario-64
Copy link

Doubt it. N64 RetroGem = N64 digital. Same device just different branding.

@browntownington
Copy link

From what I saw in this thread it was confirmed issue was a n64 digital hardware bug. Pixelfx were selling a flex cable specifically for n64digtal, but i see no mention of it for the retrogem.
As for N64 RetroGem = N64 digital. They use different firmware. Also the hardware design and components are not exactly the same. Pixelfx were aware of this bug. Hence why I'm curious if it was taken into consideration. I'll ask on their discord.

@teconmoon
Copy link

teconmoon commented Jan 13, 2024

For those that will not fix their N64 Digital install and that liked the imperfect workaround here a build of v1.8 that reintegrate it.

v1.8-push_pull_port1_hw1_n64.zip

@darthcloud I know this is a workaround and not a real fix, but any chance of getting a firmware 1.9.1 with the same modification to change the data line from open-drain to push-pull? I was hoping to use my 8BitDo Mod Kit controller with my BlueRetro HW1 adapter, and there were some related fixes in 1.9 that I was hoping to take advantage of.

I have an N64Digital HW1, and besides not being able to find the flex cable that fixes the core problem, my soldering skills are horrendous and I'd rather not pay more to have someone do the installation (the original N64Digital mod and install was already pretty expensive).

I understand if this use-case isn't something you can keep supporting. Thanks!

Edit: For others reading this, the N64Digital HW1 Flex Cable that fixes this is now found here: https://www.pixelfx.co/product-page/replacement-parts - It's listed under N64Digital Blue Retro Flex, and it's $10 plus $5ish shipping depending on where you live.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests