Struggles for a beginner setting this up - some helpful things you should add to your documentation
-
I'm trying to setup a Raspberry Pi 3 with this to play NES, SNES, and N64 roms, and I've really been struggling to get everything right, and feel like a better job could have been done in explaining this setup, so hopefully you can answer my questions, and update your documentation, to help save a lot of people a lot of time.
Getting NES and SNES working is rather easy, but it seems the ball has been dropped when it comes to N64.
For starters, I found this helpful youtube video,
I've read about using mupen 64 plus, and lr-mupen64plus. Having 2 things with the same name really helps add to the confusion, but ok. So, after reading this, it seems that mupen 64 plus is the better way to go, so I was expecting at some point to have to make some sort of choice. But, when setting things up by saving roms in the n64 roms folder on a usb drive that was then imported to the pie as the guide I used online initially instructed me to, automatically I have n64. I have no idea what one, but I have one. So, great, that's confusing, I read about something, and have no choice in the matter or idea what I'm doing, so the guide could use a little clarification on that.
But, I connect my retrolink N64 usb controller, and find that it is absolutely impossible to configure it properly. I set it up for matching buttons in a logical way, mapping A to A and B to B and skipping the select button and such, and I find that when playing a N64 game, B is making me jump instead of run. So button mapping is wrong. So I figure, ok, it is using mupen plus, and that has different button mapping. But, by that guide, I should make my green button y and blue button b? According to this link? https://github.com/RetroPie/RetroPie-Setup/wiki/Nintendo-64 Which, ok, that means I'm on the right one, but I can't possibly map buttons right, because I HAVE to have an A button, and it won't let me assign 1 button to 2 things, and by that mapping there is no A button.....this makes no sense to me, and if I'm misunderstanding it's because these guides are completely unclear for a beginner, and I've searched high and low and have found no clear cut way to configure a N64 controller, which is a huge issue.
So then I go to that youtube link above, and figure, this guy will tell me how it's done. Which, for starters, he doesn't even say how to get to the terminal, I had to search to find that I need to press f4. Yeah, basic stuff, but keep in mind people, there are beginners out there that are masters in windows, but haven't had to deal with linux much up until now. So, I get to the terminal, and go into the es_systems.cfg file, and in the video he's showing the configurations for the mupen plus emulator, and that roms should be in the n64-mupenplus64 folder in the roms folder. I don't have that folder. I don't have those configurations. My file only has the n64 settings and folder. He shows that in his config file he has configurations for both. I don't. His video is completely missing how he even got to this point to have these things. So now I'm like, ok, am I not doing the mupen 64 plus?
So, I have no idea what I have, how to set it up properly, if I have what I want, how to get what I want, and I've rtfm, I've googled it, I've spent hours pouring over this.
Someone, for the love of god, please respond here with some simple explanations, and simple step by step solutions to set this up as I want it, N64 using mupen 64 plus, with a N64 controller configured to work properly.
Thanks.
-
In terms of getting the games running well, you may find this helps:
https://retropie.org.uk/forum/topic/140/how-to-use-overclock-and-mupen-core-options-to-significantly-increase-64-game-playability-quality-and-stability/My video above is quite dated now, I need to sort a new one.
-
First off, I'm sorry to hear you're having such a hard time. Retropie can have a steep learning curve depending on what you are trying to do. For most users, everything works pretty much plug and play. The project is coded in a way that it allows for relatively simple ways of customizing your install, rather than locking everything down and making a child-proof interface like most consoles have. I'd just urge you to have patience with these things because it is free software on a device made almost specifically for learning code and scripting. Also depending on the game n64 performance can be disappointing, the Pi just doesn't have the computing power for it.
There are two main versions of n64, lr-mupen64plus and the standalone mupen64plus-. As it stands the standalone is the way to go, but there are three video plugins: mupen64plus-gles2rice, mupen64plus-gles2n64, and mupen64plus-GLideN64. Some work better for some games, so changing between them is something you should be comfortable with.
The runcommand menu is how you'll manage it. When you launch a game you should see a grey box on the screen unless you've disabled it. It will show the name of the emulator you're currently using. You can press a button to get into the menu to change the default emulator for all system games or just one.
Mapping out an actual n64 shaped controller is usually confusing. This is because Retroarch typically expects a SNES style button layout. It takes that generic layout and then reshapes it so that someone with a ps2 controller will have a more or less logical mapping to play on all systems. For you, it's just going to make things more complicated. I'd say you have a few options, map it out button for button through the normal dialog, then go into
/opt/retropie/configs/n64/InputAutoCfg.ini
(Example) and sort it out manually by swapping values to where they should be. Or you can map it in a way that will work with the reshape by following this picture. If you do it this way, I'd keep a keyboard(configured) handy, since you'd be leaving A and X unmapped. From here you could make a backup of the correct InputAutoCfg.ini, then map it again normally in ES, overwrite the new InputAutoCfg.ini with your backup, and then you should have fully functioning buttons in n64 and emulationstation. You could instead just make a backup of your/opt/retropie/configs/all/emulationstation/es_input.cfg
and/opt/retropie/configs/all/retoarch-joypads/CONTROLLERNAME.cfg
and restore/edit that.When following videos, just try to make note of the version number of retropie. After too many versions, big things like paths and such can change. The videos themselves aren't useless, but you'd have to go figure out where the real path is. Like the n64 one, they all got merged into one main n64 directory.
The terminal stuff is what get most new people. Just try and search for a beginner linux commandline guide. There's much better stuff out there than what I could explain. Pretty much necessary functions include:
sudo
,cp
,mv
,rm
,nano
,ls
,cd
. -
Cool, thanks for these responses, these are most helpful. I will have to do some more playing around now.
In the meantime, one more little question. I've been able to get things working with most of my controllers. But one thing I have is a usb adapter that allows me to connect 2 SNES controllers.
So far it hasn't been detected at all. Is there a way to manually install some sort of driver to allow the use of this device, or will I have to purchase other adapters? Is it this specific adapter, or that it's a device trying to do 2 controllers?
I'd also like to purchase some adapters for N64 controllers, but now that I see my SNES adapter doesn't work, it makes me worry about buying something that won't work, is there a good way to determine what will or won't work ahead of time?
-
Also, about overclocking. I've mostly wanted to avoid that, since that's stuff that one probably shouldn't get into unless they know what they're doing. I was going to see how well I could get N64 to perform without overclocking, and I was able to move mario around and jump around without much issue in mario 64 for my bit of playing with wrong button mappings. But, if I were going to play around with overclocking, what is safe to do with this kit that includes a box and a few heatsinks?
With this kit, can I safely do any overclocking, or is that only for someone that does a little more modifying?
What's a good starting point if one is going to overclock and doesn't quite know what they're doing?
-
Ok, I think I figured out the best way to map a N64 controller for RetroPie.
I'm not sure why by default the A button and B button aren't directly mapped, it seems a rather illogical default to me, but, it's fixable.
Here's the order I did it, which, I was going to write this in a way I thought would be simpler, but I realized the way I did this resulted in a bit of a shortcut in the long run.
First, I mapped my buttons directly in a logical way, A is A, B is B, left direction pad on controller is direction pad, analog stick in middle of controller is left analog stick, c buttons are right stick, Z is bottom left, L and R are top L and R, no X, Y, select and other things that the controller doesn't have.
While mapping my buttons, I also took note of the button numbers and drew a diagram.
With this default setup, the problems that exist are the A and B buttons aren't properly mapped, and there's no select button.
So, as advised above, I edited the /opt/retropie/configs/n64/InputAutoCfg.ini file, and made the necessary tweaks to get everything mapped properly. I corrected the A and B buttons (I may have had to add one of those), and I had to add the R button.
Now, that left me with the issue of the select button to be able to exit the emulator without a keyboard. So, at this point I realized, well, I only care about the N64 emulator, so I could map my defaults for the controller and only think about menu navigation. So, I remapped the controller, and this time I made my bottom C button a select button (you can pick a personal preference), and I also took this opportunity to make the analog stick my direction pad so I can navigate the menu with that, since that's kind of the default direction control on a N64 controller and what I want to do by default.
Of course, I could have done this initially before editing the N64 .ini file, and if I did that, I would have had to make more modifications to the .ini. By mapping the controller defaults straight the first time through, this minimizes the manual edits necessary in the .ini file. But....whichever process you prefer.
But the downside to this method is that after remapping your controller, it also redoes the N64 .ini file, but it copies the old one to /opt/retropie/configs/n64/InputAutoCfg.ini.bak. So, from the /opt/retropie/configs/n64 folder, just do a simple sudo mv InputAutoCfg.ini.bak InputAutoCfg.ini and your manual N64 mapping is restored.
Meanwhile, I'd appreciate any advise on the Retro Link SNES dual adapter. If a controller adapter isn't recognized at all, are you SOL?
-
Another note, at some point when disconnecting and reconnecting my N64 controller, the custom settings I set were overwritten. Not sure why this happened, I do not want these settings overwritten.
Is there a way to set the InputAutoCfg.ini file for n64 to read only so that only I may edit it?
In the meantime, I redid my process, and made a backup copy of my file, so if it happens again I can easily replace the file with my settings.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.