Disabling Controller Paks in Mupen64Plus Without a GUI

If you have a Retrode and a copy of Chameleon Twist and you tried to play your dumped game in Mupen64Plus, you may have gotten stuck at this screen on startup.

Depending on how your copy of Mupen64Plus is configured, this is caused by one of two problems:

  1. By default, Mupen64Plus emulates a Controller Pak so that games which save to Controller Paks Just Work™ without any fussing around… but, unlike other games, Chameleon Twist throws a fit if you leave a Controller Pak plugged into any of the controllers when you turn your N64 on rather than just ignoring it.
  2. Something about Mupen64Plus’s Rumble Pak emulation is broken or incomplete.

Now, apparently, for those who are less scrupulous, the workaround is to download a dump of Revision A/Version 1.1. However, for those of us who are very particular about trying to do right by copyright law, that’s not very helpful.

The question is, if you found it too bothersome to install a Mupen64Plus frontend, how do you change this?

Mupen64Plus doesn’t allow specifying the inserted controller/rumble pack configuration at the command line, so you need to edit ~/.config/mupen64plus/mupen64plus.cfg.

You’ll need to edit all four of the [Input-SDL-Control#] sections, because Mupen64Plus’s default auto-configuration will leave the virtual controller plugged in even if there’s no device for it to be mapped to.

For controllers you don’t plan to use, the simplest solution is probably just to set plugged = False.

However, for controllers that stay plugged in (eg. player 1), you will need the more complex solution:

  1. Make sure your controller is configured as you want it (eg. Start Mupen64Plus once with mode = 2 (full autodetect) or with mode = 1 (autodetect for given name) and an appropriate value for the name field.)
  2. Set mode = 0 (fully manual) or the autodetection will undo any changes you make as soon as you start Mupen64Plus.
  3. Set plugin = 1 to emulate a controller with nothing inserted into the Pak socket.

Your copy of Chameleon Twist should now work properly.

Bonus Tip: The controller plugin’s sections are the only ones in my mupen64plus.cfg with lines matching ^mode = and ^plugin= so you could write a shell script like this if you want a quick hack to launch Chameleon Twist without a frontend:

#!/bin/sh

sed -i 's@^mode = .*$@mode = 0@' ~/.config/mupen64plus/mupen64plus.cfg
sed -i 's@^plugin = .*$@plugin = 1@' ~/.config/mupen64plus/mupen64plus.cfg
mupen64plus /path/to/Chameleon_Twist.z64
sed -i 's@^plugin = .*$@plugin = 1@' ~/.config/mupen64plus/mupen64plus.cfg
sed -i 's@^mode = .*$@mode = 0@' ~/.config/mupen64plus/mupen64plus.cfg

CC BY-SA 4.0 Disabling Controller Paks in Mupen64Plus Without a GUI by Stephan Sokolow is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

This entry was posted in Geek Stuff. Bookmark the permalink.

1 Response to Disabling Controller Paks in Mupen64Plus Without a GUI

  1. PSN Codes says:

    I use sed so much for mass replacing things! I never knew you could use the @ character as a separator I always use the # character and within double quotes.. I also use ‘g’ at the end like sed -i “s#some string#another string#g” to make sure it hits all the results.

    MOD: The contents of your post are fine, so I just blanked out the spammy URL from your URL field.

Leave a Reply

Your email address will not be published. Required fields are marked *

By submitting a comment here you grant this site a perpetual license to reproduce your words and name/web site in attribution under the same terms as the associated post.

All comments are moderated. If your comment is generic enough to apply to any post, it will be assumed to be spam. Borderline comments will have their URL field erased before being approved.