Mupen64plus-GlideN64 Control help
-
Hi all.
I know N64 emulation is always tricky. I searched here and couldn't find any recent posts, so I'm starting a new one. On my RP4, when running games like WWF Wrestlemania 2000 and WWF No Mercy, I'm running using Mupen64plus-GlideN64 which seems to be the best results graphically (I know Roslof's suggestion was lr-mupen64plus but that just removed all controls). Sounds a little wonky but I can live with that. My problem is the controls. Since I have an arcade cabinet, I don't have an N64 controller. Usually on systems like Dreamcast, I just reconfig the controls between the d-pad and joystick when needed.
While I see no way to do this through the game or retroarch, I read someone changed the settings in the inputAutoCfg.ini file, much like the section below. But I don't know how to change this to make the joystick control movement in these games. Any help is appreciated. Thank you.
; DragonRise Inc. Generic USB Joystick _START
[DragonRise Inc. Generic USB Joystick ]
plugged = True
plugin = 2
mouse = False
AnalogDeadzone = 4096,4096
AnalogPeak = 32768,32768
Mempak switch =
Rumblepak switch =
R Trig = button(5)
B Button = button(3)
C Button U = button(2)
Start = button(6)
A Button = button(1)
C Button D = button(0)
X Axis = axis(0-, 0+)
Y Axis = axis(1-, 1+)
Z Trig = button(4)
; DragonRise Inc. Generic USB Joystick _ENDp.s.: I tried other N64 emulators and still no controlability.
-
@Drdave79 I tried updating the emulators and still no change. Still can't access the retroarch menu either. I'm sure someone has a working .inputAutoCfg.ini file they can share?
-
@Drdave79 mupen64plus-GLideN64 is a stand-alone emulator, not a RetroArch core; as such, it does not use RetroArch menu or controls. Controlls are configured manually:
-
@Drdave79 so it looks like your joystick is set to act as the analog stick, and it's read as a pair of axes.
If you want it to act as the D-pad instead of the analog stick, you might try something like this:
DPad L = axis(0-) DPad R = axis(0+) DPad U = axis(1-) DPad D = axis(1+)
...and then remove the
X Axis
andY Axis
lines (you probably don't want the joystick to do both DPad and analog stick, at the same time.) -
@sleve_mcdichael You're my hero, as always man! That definitely made those two WWF games controllable. Thank you very much. However, that being said, now Mario Cart has lost it's controls. Since some games use the N64 joystick and some use the dpad for movement, there's got to be another way to change this per game besides editing the .ini file manually every time you want to play each game?
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
there's got to be another way to change this per game besides editing the .ini file manually every time you want to play each game?
Easiest way is to use the libretro core, where you can save per-games controls.
-
@mitu For some reason, I get zero controls when I launch the libretro emulator. Can't get to the retroarch menu. Have to power down the pi manually to exit. Any ideas why? Must be a separate config file that needs to be fixed?
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
Can't get to the retroarch menu. Have to power down the pi manually to exit. Any ideas why? Must be a separate config file that needs to be fixed?
Did you reset / saved your configuration for N64 from the RetroArch menu ? This may have reset/broke the configuration that RetroPie added for inputs and others.
-
@mitu I've never been able to access the N64 menu in retroarch (that I can remember). How can I reset it please?
-
@Drdave79 Are you really sure you're running the libretro core for N64 ?
You can delete the/opt/retropie/configs/all/n64/retroarch.cfg
file and then re-install thelr-mupen64plus-next
package, which will generate the config file. -
@mitu Alright, progress! Thank you @mitu. That allowed me to access the Retroarch menu. However, this emulator is running really slow and choppy with the default graphical options. Do you have any recommended settings for this on an non-overlocked Pi? When I was using mpuen64plus-GLideN64, the gameplay was pretty smooth, though graphics suffered a bit.
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
Since some games use the N64 joystick and some use the dpad for movement, there's got to be another way to change this per game besides editing the .ini file manually every time you want to play each game?
pi@retropie:/opt/retropie/emulators/mupen64plus/bin $ ./mupen64plus -h __ __ __ _ _ ____ _ | \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___ | |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __| | | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \ |_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/ |_| https://mupen64plus.org/ Mupen64Plus Console User-Interface Version 2.5.9 Usage: ./mupen64plus [parameters] [romfile] Parameters: --noosd : disable onscreen display --osd : enable onscreen display --fullscreen : use fullscreen display mode --windowed : use windowed display mode --resolution (res) : display resolution (640x480, 800x600, 1024x768, etc) --nospeedlimit : disable core speed limiter (should be used with dummy audio plugin) --cheats (cheat-spec) : enable or list cheat codes for the given rom file --corelib (filepath) : use core library (filepath) (can be only filename or full path) --configdir (dir) : force configation directory to (dir); should contain mupen64plus.cfg --datadir (dir) : search for shared data files (.ini files, languages, etc) in (dir) --debug : launch console-based debugger (requires core lib built for debugging) --plugindir (dir) : search for plugins in (dir) --sshotdir (dir) : set screenshot directory to (dir) --gfx (plugin-spec) : use gfx plugin given by (plugin-spec) --audio (plugin-spec) : use audio plugin given by (plugin-spec) --input (plugin-spec) : use input plugin given by (plugin-spec) --rsp (plugin-spec) : use rsp plugin given by (plugin-spec) --emumode (mode) : set emu mode to: 0=Pure Interpreter 1=Interpreter 2=DynaRec --savestate (filepath) : savestate loaded at startup --testshots (list) : take screenshots at frames given in comma-separated (list), then quit --set (param-spec) : set a configuration variable, format: ParamSection[ParamName]=Value --gb-rom-{1,2,3,4} : define GB cart rom to load inside transferpak {1,2,3,4} --gb-ram-{1,2,3,4} : define GB cart ram to load inside transferpak {1,2,3,4} --dd-ipl-rom : define 64DD IPL rom --dd-disk : define disk to load into the disk drive --core-compare-send : use the Core Comparison debugging feature, in data sending mode --core-compare-recv : use the Core Comparison debugging feature, in data receiving mode --nosaveoptions : do not save the given command-line options in configuration file --pif (filepath) : use a binary PIF ROM (filepath) instead of HLE PIF --verbose : print lots of information --help : see this help message (plugin-spec): (pluginname) : filename (without path) of plugin to find in plugin directory (pluginpath) : full path and filename of plugin 'dummy' : use dummy plugin (cheat-spec): 'list' : show all of the available cheat codes 'all' : enable all of the available cheat codes (codelist) : a comma-separated list of cheat code numbers to enable, with dashes to use code variables (ex 1-2 to use cheat 1 option 2)
Could you do it with the
--datadir
(and/or--configdir
) flags? If you're willing to experiment a little, try this:-
Put the config back to how it was so the joystick is read as the analog axes.
-
In
/opt/retropie/configs/n64/
, make a sub-directory calleddpad
. Copy the following into thisdpad
dir:
font.ttf *.conf *.ini
- Now edit the
dpad/InputAutoConfig.ini
file with your D-pad fix from before.
Now you have two config dirs:
n64
with the standard analog control, andn64/dpad
with D-pad control instead.- Next, edit the file
/opt/retropie/configs/n64/emulators.cfg
. We will add another entry to it, to use this new config dir. Find the line for GLideN64:
mupen64plus-GLideN64 = "/opt/retropie/emulators/mupen64plus/bin/mupen64plus.sh mupen64plus-video-GLideN64 %ROM% %XRES%x%YRES% 0 --set Video-GLideN64[UseNativeResolutionFactor]\=1"
- Copy that, change the name to
mupen64plus-GLideN64-dpad
and add the--datadir (path)
param to the command:
mupen64plus-GLideN64-dpad = "/opt/retropie/emulators/mupen64plus/bin/mupen64plus.sh mupen64plus-video-GLideN64 %ROM% %XRES%x%YRES% 0 --set Video-GLideN64[UseNativeResolutionFactor]\=1 --datadir /opt/retropie/configs/n64/dpad"
- Launch the game; press a button to open runcommand launch menu, choose "select the emulator for ROM" and select
mupen64plus-GLideN64-dpad
.
The only reason I can think why this shouldn't work is the
mupen64plus.sh
launch script already sets a--datadir
param, so this will have it in there twice. I'm hoping it will just honor the last one used, but it might instead use the first one, or just break.If that's the case, you could probably still do it, just a little different.
- Still do everything up to making the "dpad" entry in
emulators.cfg
, but don't add the--datadir
param to the command there; instead, just change the name and change the specified launch script file frommupen64plus.sh
tomupen64plus-dpad.sh
:
mupen64plus-GLideN64-dpad = "/opt/retropie/emulators/mupen64plus/bin/mupen64plus-dpad.sh mupen64plus-video-GLideN64 %ROM% %XRES%x%YRES% 0 --set Video-GLideN64[UseNativeResolutionFactor]\=1"
- Now go into the binaries dir:
cd /opt/retropie/emulators/mupen64plus/bin
- Copy the launch script. You have to use
sudo
to make any changes in this root directory:
sudo cp mupen64plus.sh mupen64plus-dpad.sh
- Edit this new copy:
sudo nano mupen64plus-dpad.sh
- Navigate to line 447:
SDL_AUDIODRIVER=${SDL_AUDIODRIVER} SDL_VIDEO_RPI_SCALE_MODE=${SDL_VIDEO_RPI_SCALE_MODE} "$rootdir/emulators/mupen64plus/bin/mupen64plus" --noosd $PARAMS ${WINDOW_MODE} --rsp ${RSP_PLUGIN}.so --gfx ${VIDEO_PLUGIN}.so --audio ${AUDIO_PLUGIN}.so --configdir "$configdir/n64" --datadir "$configdir/n64" "$ROM"
- Change the
--datadir
parameter from"$configdir/n64"
to"$configdir/n64/dpad"
SDL_AUDIODRIVER=${SDL_AUDIODRIVER} SDL_VIDEO_RPI_SCALE_MODE=${SDL_VIDEO_RPI_SCALE_MODE} "$rootdir/emulators/mupen64plus/bin/mupen64plus" --noosd $PARAMS ${WINDOW_MODE} --rsp ${RSP_PLUGIN}.so --gfx ${VIDEO_PLUGIN}.so --audio ${AUDIO_PLUGIN}.so --configdir "$configdir/n64" --datadir "$configdir/n64/dpad" "$ROM"
That should be it. Again, you would launch the game and select the "dpad" variant in the emulators menu, for each game that requires D-pad control.
-
-
@sleve_mcdichael wow, that's a lot of information. Yes, let me give this a go and see how it goes. Need to make a backup of my build first though :)
That being said, if I could find settings that made lr-mupen64plus-next run smoother, it'd be a great solution as well. Going to spend sometime looking into this as well.
-
@mitu said in Mupen64plus-GlideN64 Control help:
lr-mupen64plus-next
@mitu @sleve_mcdichael Upon further testing, lr-mupen64plus-next run pretty slow. lr-mupen64plus without the next actually runs pretty well. Much better than the "next" version. And since they're lib cores, I can edit the controls directly in the menu!
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
Upon further testing, lr-mupen64plus-next run pretty slow. lr-mupen64plus without the next actually runs pretty well. Much better than the "next" version. And since they're lib cores, I can edit the controls directly in the menu!
I think with N64, it's really going to come down to the individual title. Some will work just fine in the default lr--next, but some others that are unplayable in that one, may still work in one of the others.
I think the thing with the "next"/"no next" versions is that "next" is still actively developed, while "no next" is abandoned. If it works, it works, but don't expect any updates (which is not necessarily a bad thing, as long as it does work.)
-
@sleve_mcdichael That's interesting. I tested around 10 titles and almost every one worked smooth with no next. I had to use mupen64-plus-GlideN64 for Star Wars Rogue Squadron for smooth gameplay and control, but that was the only exception. Almost seems like the "next" team is going in the wrong direction.
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
Almost seems like the "next" team is going in the wrong direction.
No, it's not. The direction is to achieve accurancy and better emulation of the original N64, not speed. That's not specific to N64 emulation only.
-
@mitu I didn't mean to offend anyone by my statement. I know everyone involved in these projects work very hard whether paid or volunteers. It was just an observation that the non-next version, which apparently is no longer supported seems to work better. At least, for my testing.
-
@Drdave79 said in Mupen64plus-GlideN64 Control help:
It was just an observation that the non-next version, which apparently is no longer supported seems to work better.
No offence taken, and it's normal that is runs better, since the performance requirements are lower. This is why it's still available in RetroPie.
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.