Original Nintendo 64 controller mapping w/ Mayflash adapter

Hello, I’m trying to use genuine N64 controllers with Retroarch (connected via Mayflash USB adapter.) I’m trying to map everything 1:1, but the problem is that I don’t see a dedicated mapping for the N64 controller’s “A” and “B” buttons in RA’s input options - those are labeled “B - C-down” or something similar. Is there a separate N64 “A” and “B” option in addition to the C buttons and everything else? I understand that the Retropad buttons mirror the SNES controller, so i get that “C-Right” is Retropad’s “A” button, and C-down is probably the retropad’s B button.

I’ve seen similar older threads about this issue here, but it doesn’t look like anyone has found a clear solution, or maybe I’m missing something.

I’ve also noticed that to map the stick, there’s just weird unlabeled X, X and Y, Y values for the stick instead of the usual “Joystick Up = , Joystick Down =, etc” that I’ve seen in the bsnes/nestopia cores for my xb360 controller. Is there a reason for this in N64, or maybe I have something messed up on my end?

Thanks!

Yeah, this is an ongoing issue. The N64 controller simply doesn’t map neatly to retropad without doing some digital-onto-analog mapping, and that’s currently messy with the way the retropad works. I think the only long-term solutions are to either make all retropad buttons function like analogs (not to actually make them analog but to have them appear that way in the code) or allow the retropad to be extensible with an arbitrary number of “phantom” buttons that we could assign things to via core input remapping (though even then, we would have to re-work the input for this core to allow switching between the current setup and the new setup via core option).

Ok, good to know. At least I know I can put this off for now. Thanks again.

I am running into this issue as well. Using anything other than an N64 controller for N64 games just feels… wrong. So, while I understand that there are benefits of having a central abstracted configuration for users that utilize current generation-style controllers, I am confused why the options for retropad are limited by that style. So, some ideas:

  1. Don’t force every button on the retropad to be assigned to a button on the controller when using the config page. I know you can clean this up later, but why not avoid it altogether?
  2. If you don’t bind all the buttons, the config page can simply give you a warning that your gamepad may not work with all systems, and let you deal with it.
  3. Add an “advanced” page that gives the option of somewhat more obscure buttons like “Z” and all of the “C” buttons on N64. I understand “Z” can just be “L2,” or something like that, but the C buttons, as you mentioned, currently don’t map unless you try to map them to the retropad stick.

I lieu of those two things, are there specific things I can do to get my N64 controllers (also using the mayflash adapter) working? Is there a way to, say, navigate retroarch with a keyboard and configure the controller inputs correctly in the mupen64plus core, effectively ignoring the retropad? Or, should I hold off on using retroarch altogether and just stick to individual emulators?

If your #1 priority is using your n64 controllers, you probably don’t want to use mupen64plus-libretro right now. That doesn’t mean you can’t use the other cores.

If you don’t mind, try loading up a 6-button fighter (like Killer Instinct Gold) and then go into the core input remapping and see if that cooperates with your adapter any better. I was working (unsuccessfully) on making a core option that could force that 6-button configuration–which gets the C-buttons off of the right-analog stick–to ease remapping but I don’t have an adapter to actually see if that would help in the first place.

1 Like

I’ll take a look at Killer Instinct hopefully later today when I have a bit of time. I’m working on figuring out the SNES/NES issue and then I’ll try N64.

Hi there, Have this been taken care of? I recently got my mayflash N64 adapter and I just don’t know how to map the controllers. I am lost there. Maybe I can try to figure it out with the killer instinct game as mention above. Or is there a better core to use in this case for N64 that works well with the mayflash adapter?

Thanks

Sorry, can someone clarify the issue here? 'cause it sounds like everyone is saying you can’t do something I know I’ve done.

I’ve got the A/B Mapped correctly to A/X, and then the C-buttons mapped properly to B, C, Y, & Z.

Plus the Z-trigger mapped to both L2 & R2.

6-button w/ dual triggers is the only way to play N64 in my book.

1 Like

Thanks, I will try this when I sit down to configure retroarch.

edit: I was able to configure this with killer instinct. Now it is working well that way. Just needed to set the c buttons by checking the mapping on the killer instinct controller setup.

It seems with the newest RA build (and Mupen64 plus core) my N64 controller and Mayflash adapter worked right out of the box w/ no config needed. I was pretty surprised. Now i just have to figure out why the Mupen64 core seems so slow. Goldeneye seems to be running almost in slow motion - every core setting i change seems to make no difference to the visual quality, even if i change texture options, etc. My system’s pretty decent too - CPU: Ryzen 1700 (3.2-3.7ghz) and an R9 280x GPU.

Your PC is totally fine. Definitely you have some issue with your RA… Have you tried to to run it with the RA for developers that is located in the same folder??? (don’t remember the name exactly but there is a second exe file). I was having issues with the sound, and I never knew why, but I started using that exe file and everything works fine.

If you have problems with the mupen64plus core, you can try the ParaLLEl core (with the OpenGL renderer, not the Vulkan one) and see if it treats you any better. You can change graphics plugins, etc. with it. Mupen64plus core is strictly GLupeN64.

1 Like

I use the new ParaLLEl core for N64 all the time now. Ever since they changed/merged/renamed the stuff going on with Mupen’s core it’s been fantastic.

I never heard before about that paraLLEI core, I may gonna give it a try. So there is suppose to be an improvement in the graphics with that core?

ParaLLEl has a vulkan LLE renderer that’s still in its infancy (that is, lots of problems with lots of games, but the ones that work are comparable to the Angrylion LLE renderer but at playable speeds with even mid-range vulkan-capable cards) along with several traditional HLE plugins, including Glide64 and GLN64. The vulkan renderer is not capable of increased internal resolution, etc. while the HLE plugins are.

oh I see, I just had a small reading on that, so in general, the mupen64 will merge to ParaLLEl in the future. So I think I can stay with mupen64 for now, for better compatibility, but i’d be following up the PAraLLEI core for sure.

My understanding was that Mupen64Plus was renamed to ParaLLEl and Glupen64 was changed to Mupen in the core section of buildbot.

If this is true, I would absolutely recommend you use ParaLLEl bad_boo because it’s going to have much better compatibility than the Glupen core.

I switched to the ParaLLel core for N64 w/ the GL driver and it runs quite smoothly, thanks!

1 Like

I am sorry I am replying late, Thanks SHgam3er, I will switch to paraLLEl when I get home tonight. I was trying with the core I mentioned before (mupen64 or Glupen) and increased the internal resolution, it didn’t feel smooth. So ParaLLEl will be now.

thanks for the advise too, benjib1980

Ok, I was trying this papaLLEl core and I like it. Just have one issue with the input, which is the same thing that was going on with the mupen64, for me. When I play the FPS games like goldeneye and perfect dark, when I move the joystick forward (to move the character forward) , the view aims down (to the floor), and viceversa, when I move backwards then it aims to the sky… like the joystick has the C buttons input there.

has anyone had this issue before? how do you configure it?