Mayflash n64 controller adapter problems. All buttons configure in ES, but no config files generated or saved.
-
@LARoehr This is probably not what you want to hear but i would skip the Mayflash all together and go with something that works out of the box.
Raphnet Technologies produces god quality adapters for several systems and they work in linux/windows & Mac OS without drivers and fw upgrades.
-
@Rion Thanks for the reply!
Firmware updates? This crossed my mind, since electrically/ electronically everything seems to be working. But I flat-out forgot to research this. The only thing I can see wrong (and I'm by no means any kind of expert) is that Linux does not see it as a "HuiJia". I think I'm gonna try to track down the latest firmware and try to update the USB device... I'm at work (not at home) right now, but I'll report back when I have succeeded/ failed.
Hopefully this fixes the recognition problem. If not, maybe your suggestion is going to prove to be best.
-
@Rion Unfortunately I have had problems with their DB9 adapter. The thing stopped reading certain inputs and had the initialization issue they mention on the site that requires patching the kernal to fix. Switched back to the Mayflash for my Genesis adapter, no issue.
Also your answer does not answer the problem. I think at worst case it will be an issue of manual configuration. See below.
@LARoehr I am having a similar issue and it is clear the controls can be bound but something is causing scripts to terminate early. I think the issue is the controller name that the adapter identifies as, it has some special character in it. He is a example of the es_log that you get when trying to configure it. I managed to bypass the issue in emulation station by taking the temporary input xmls it generates and putting them into the permanent config (sorry pie is off right now, don't remember name of the file) but this does not help for the retropad configs for retroarch or more important the mupen64 configs. I am a bit new at this, but it should just be a matter of creating the right input config for mupen64, I just have not puzzled it out yet.
It would be nice if any developers could perhaps indicate if the special character is causing this to not work, or if there is a way to identify that?
-
@Furluge I looked at my dmesg output on the devices, low and behold, an unrecognized character. I have a feeling that is the cause of our grief. Anyone know how to extract a firmware, modify it, and re-insert the modified firmware?
-
@LARoehr try the config files I posted a few months back to get May Flash N64 adaptors working: https://retropie.org.uk/forum/post/18259
-
@vretro
I haven't had the opportunity to try your config file, but I have the feeling it wont work. My Mayflash PC 043 is recognized by dmesg the same as Furluge's es_log (USB GamePad USB GamePad), not a HuiJia... I don't know what that unreconized character is in front of "USB", but I don't think Linux is liking it. -
@LARoehr
With the command "jstest /dev/input/js0" it showed me my N64-Controller recognized as "USB GamePad USB GamePad" as well.What worked for me:
- In the directory "\RETROPIE\configs\n64" I had to create the "InputAutoCfg.ini" (don't know why it wasn't there before).
- I added then the key-bindings in the "InputAutoCfg.ini" file similar to the config-files posted by @vretro. The important thing was to change "[HuiJia USB GamePad]" to "[USB GamePad USB GamePad]".
- Now after starting any N64-rom with the "Mupen64Plus-GlideN64"-emulater it worked.
The configs for the N64-Controller in the main-menu are still only temporary saved and get lost after each restart of the pie. Maybe somebody can help with that.
-
@Blubberbernd
Awesome! Thanks for the reply! If you look at Furluge's es_log, you'll see that there is a character before "USB" that gets displayed a a strange "binary" looking image (which I beleive comes up when the PC doesn't understand how to display the character. Again, this is speculation, but I think however the "auto-configure" script is written it lacks the ability to save a filename with that character in it.Now that I've gotten confirmation that it CAN actually work, I think I have the motivation to figure out how to fix this problem in the main-menu.
Thanks again for sharing that information. And thank you vretro for sharing the config file that I'm gonna use!
-
@LARoehr
Great! Its good to see that I am not the only one who had/has major issues with configuring the Mayflash-Adapter.Like I wrote, I put all my key-bindings into the "InputAutoCfg.ini" file and after starting a n64 game withe the "Mupen64Plus-GlideN64"-emulater it automatically populates the controller config from the "InputAutoCfg.ini" into the "mupen64plus.cfg" file. So there was no need for me to change the "mupen64plus.cfg" file.
When I have a look at the "mupen64plus.cfg" file with notepad++, after I started a n64 game, there is also a unknown character infront of the "USB GamePad USB GamePad".
A small part of my "mupen64plus.cfg" with the unknown character:
-
@blubberbernd said in Mayflash n64 controller adapter problems. All buttons configure in ES, but no config files generated or saved.:
@LARoehr
Great! Its good to see that I am not the only one who had/has major issues with configuring the Mayflash-Adapter.Like I wrote, I put all my key-bindings into the "InputAutoCfg.ini" file and after starting a n64 game withe the "Mupen64Plus-GlideN64"-emulater it automatically populates the controller config from the "InputAutoCfg.ini" into the "mupen64plus.cfg" file. So there was no need for me to change the "mupen64plus.cfg" file.
When I have a look at the "mupen64plus.cfg" file with notepad++, after I started a n64 game, there is also a unknown character infront of the "USB GamePad USB GamePad".
A small part of my "mupen64plus.cfg" with the unknown character:
You would think that removing the special character from both the ini and cfg, then setting mode to 0 would fix it. But this is the part I do not understand. What file generates the cfg file, or even the ini file (if you configure using ES I beleive the ini file gets generated with the special char too)? If we could figure that out, then it might be possible to fix the problem. But I do believe the mapping is broken due to this character (or else the character is a result of something else breaking). it's probably due to some weird encoding issue or something, or a character set that isn't supported in retropie. might even be a (TM) or copyright mark or something stupid that makes the adapter worthless.
-
@rion or you could do like me and use a raphenet and a mayflash together. I have a n64 to wii classic controller raphnet chip inside my n64 controller with a wii nunchuck cable on the controller now plugged into my wiimote that is synced to a mayflash dolphin bar. Best way in my opinion.
-
@edmaul69 said in Mayflash n64 controller adapter problems. All buttons configure in ES, but no config files generated or saved.:
@rion or you could do like me and use a raphenet and a mayflash together. I have a n64 to wii classic controller raphnet chip inside my n64 controller with a wii nunchuck cable on the controller now plugged into my wiimote that is synced to a mayflash dolphin bar. Best way in my opinion.
I have no idea what your saying but I just put the mayflash back in the package and will be returning to amazon. Is there another 2 port, one USB adapter I can use or should I give up on the N64 controllers and sell them? I am told the other mayflash with the PSP / N64 adapter works, but I'm hesitant to buy from a place that does not have a good return policy like amazon...
-
@justintoxicated raphnet makes awesome adapters that will work.
http://www.raphnet-tech.com/products/dual_n64_to_usb_adapter/index.php
-
@vretro I also tried the config files and they do not solve the issue. I tried using the name with the special character and without in the Mupen64Plus.cfg. It autogenerates the mupen64plus.cfg with the special char, but I tried setting mode 0 and removing it. Didn't matter the controller won't work in the game, and every time you launch a game it stops working in ES as well and needs to be reconfigured.
-
@justintoxicated @vretro I am experiencing the exact same issue. I have been messing around with the config files for the past 2 weeks trying to get the damn thing to work. It is recognizing it as ?USB Gamepad USB Gamepad. The I can get the controller to work in game, but the peak analog values are messed up (I.e Mario won't run). It took me so long to get it even working in the roms but now you cannot edit the config file for the ?USB Gamepad USB Gamepad so I am behind the eightball once again. I can't edit the config file in putty because something about the ? Character throws the whole system off. Is it time to throw in the towel and give up? Are there other solid adaptors that will allow you to use an original N64 controller? Full Disclosure: I got so frustrated I ordered all the games I used to have for my N64 today. They just arrived. Man I wish I could get this thing to work on Retropie
-
@nooddjob please read my post above for an awesome adapter.
-
@nooddjob you are much closer to us (im in the processes of printing return label due to the char i can't fix !) But now here you are giving me hope that it might work in game! You should be able to edit the InputAutoCfg.ini, and when you launch mupen64plus, it will generate the correct settings in the mupen64plus.cfg file (unless you set mode to 0 which tells it not to override/generate) for that device.
What are you using for an editor? I can edit in vim when I SSH in (or local terminal) but I don't expect non linux people to learn that. I can also edit via notepadd++ just by navigating to my retropie in windows explorer \RETROPIE\configs\n64\inputAutoCgi.ini. notepad++ is an ok general purpose editor that can handle a non native car as show in the screenshots posted above.
Please share how you were able to get the controller to work in game :) I have this one and NES controller adapter I have been fighting with on my only day off. Rhe NES does not have the special char and still refuses to work (though it is through retroarch not mupen64plus.!
here are the settings I pulled from links I found on the net and maybe links above. They looked ruffly correct compared to Jtest (which you can run to adjust your settings) Please note I may have modified the gamepad name which I would not do if you have it working!
; USB GamePad USB GamePad_START
[USB GamePad USB GamePad]
plugged = True
plugin = 2
mouse = False
AnalogDeadzone = 100,100
AnalogPeak = 20000,20000
DPad R = button(13)
DPad L = button(15)
DPad D = button(14)
DPad U = button(12)
Start = button(9)
Z Trig = button(8)
B Button = button(2)
A Button = button(1)
C Button R = axis(3-)
C Button L = axis(3+)
C Button D = axis(2+)
C Button U = axis(2-)
R Trig = button(7)
L Trig = button(6)
Mempak switch = key(109)
Rumblepak switch = key(114)
X Axis = axis(0-,0+)
Y Axis = axis(1-,1+)
; USB GamePad USB GamePad_END -
So I got this working in mupen64plus but it still will not work in retroarch.
Starfox is much easier with the proper controller!
I feel like the driver just does not have a proper cfg file, and I'm thinking I could tweak one of the ones in udev and rename it with the joypad's name and possibly get it to register but I'm not really sure how those drivers get developed in the first place? Are these cfg files people typically write do to make the controllers recognizable in retroarch and es?
I might still return the adapter and try to find a better one, I just didn't really wanna spend $50+ on an adapter for N64. I have limited time I can return the adapter to amazon, so that puts a huge dent in development / configuration time trying to get it to work. Also I think Z and start need to be swapped in the config above.
-
I know this is a old topic but here is what i did to make this work
Delete your file here manually opt/retropie/configs/all/emulationstation/es_input.cfg
then start retropie and config controller and it should create the settings in your es_input.cfg
Here is mine
<?xml version="1.0"?>
<inputList>
<inputConfig type="joystick" deviceName="�USB GamePad USB GamePad" deviceGUID="03000000790000007918000010010000">
<input name="a" type="button" id="1" value="1" />
<input name="b" type="button" id="2" value="1" />
<input name="down" type="hat" id="0" value="4" />
<input name="hotkeyenable" type="key" id="0" value="1" />
<input name="left" type="hat" id="0" value="8" />
<input name="leftanalogdown" type="axis" id="1" value="1" />
<input name="leftanalogleft" type="axis" id="0" value="-1" />
<input name="leftanalogright" type="axis" id="0" value="1" />
<input name="leftanalogup" type="axis" id="1" value="-1" />
<input name="leftshoulder" type="button" id="6" value="1" />
<input name="lefttrigger" type="button" id="9" value="1" />
<input name="right" type="hat" id="0" value="2" />
<input name="rightanalogdown" type="axis" id="2" value="1" />
<input name="rightanalogleft" type="axis" id="3" value="1" />
<input name="rightanalogright" type="axis" id="3" value="-1" />
<input name="rightanalogup" type="axis" id="2" value="-1" />
<input name="rightshoulder" type="button" id="7" value="1" />
<input name="start" type="button" id="8" value="1" />
<input name="up" type="hat" id="0" value="1" />
</inputConfig>next open your /opt/retropie/configs/n64
use gedit to open mupen64plus.cfg
Here is my config
[Input-SDL-Control1]Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2
Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = 0
SDL joystick name (or Keyboard)
name = "USB GamePad USB GamePad"
Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = "2"
If True, then mouse buttons may be used with this controller
mouse = False
Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "1024,1024"
An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "20000,20000"
Digital button configuration mappings
DPad R = "hat(0 right)"
DPad L = "hat(0 left)"
DPad D = "hat(0 down)"
DPad U = "hat(0 up)"
Start = "button(8)"
Z Trig = "button(9)"
B Button = "button(2)"
A Button = "button(1)"
C Button R = "axis(3-)"
C Button L = "axis(3+)"
C Button D = "axis(2+)"
C Button U = "axis(2-)"
R Trig = "button(7)"
L Trig = "button(6)"
Mempak switch = "key(44)"
Rumblepak switch = "key(46)"Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"the main stuff i changed was
mode=0
AnalogPeak = "20000,20000"
AnalogDeadzone = "1024,1024"
Im sure peak can be a bit higher my controller is worn out and deadzone could be smaller as well but these work fine for me -
@sduchnych said in Mayflash n64 controller adapter problems. All buttons configure in ES, but no config files generated or saved.:
SDL joystick name (or Keyboard)
name = "USB GamePad USB GamePad"SDL joystick name (or Keyboard)
name = "USB GamePad USB GamePad" (this does have that special character infront of it but i cant copy it here
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.