@hooperre Hi. I've finally got to test it. I'm using RetroPie 4.4.1 and it is working for me but I am using only one PS4 Wireless Controller and nothing else.
Just for the sake of completeness, I've put my mupen64plus.cfg and InputAutoCfg.ini below. Thanks for your help.
# Mupen64Plus Configuration File # This file is automatically read and written by the Mupen64Plus Core library [Audio-OMX] Version = 1 OUTPUT_PORT = "1" # Frequency which is used if rom doesn't want to change it DEFAULT_FREQUENCY = 33600 # Swaps left and right channels SWAP_CHANNELS = False # Audio Output Frequncy mode (when NATIVE_MODE=false): 0 = Rom Frequency, 1 ROM Frequency if supported (HDMI only), 2 = Standard frequency < Rom Frequency, 3 = Standard frequency > Rom Frequency, [N] Force output frequency DEFAULT_MODE = 0 [Audio-SDL] Version = 1 RESAMPLE = "src-sinc-fastest" [Core] # Mupen64Plus Core config parameter set version number. Please don't change this version number. Version = 1.010000 # Draw on-screen display if True, otherwise don't draw OSD OnScreenDisplay = False # Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more R4300Emulator = 2 # Disable compiled jump commands in dynamic recompiler (should be set to False) NoCompiledJump = False # Disable 4MB expansion RAM pack. May be necessary for some games DisableExtraMem = False # Increment the save state slot after each save operation AutoStateSlotIncrement = False # Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support EnableDebugger = False # Save state slot (0-9) to use when saving/loading the emulator state CurrentStateSlot = 4 # Path to directory where screenshots are saved. If this is blank, the default value of ${UserConfigPath}/screenshot will be used ScreenshotPath = "/home/pi/RetroPie/roms/n64" # Path to directory where emulator save states (snapshots) are saved. If this is blank, the default #value of ${UserConfigPath}/save will be used SaveStatePath = "/home/pi/RetroPie/savestate" # Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default #value of ${UserConfigPath}/save will be used SaveSRAMPath = "/media/usb0/savefile" # Path to a directory to search when looking for shared data files SharedDataPath = "/opt/retropie/configs/n64" # Delay interrupt after DMA SI read/write DelaySI = True # Force number of cycles per emulated instruction CountPerOp = 0 # Disable speculative precompilation in new dynarec DisableSpecRecomp = True # Use alternate VI timing (-1=Game default, 0=Don't use alternate timing, 1=Use alternate timing) ViTiming = -1 # Modify the default count per scanline(-1 or 0=Game default) CountPerScanline = -1 # Randomize PI/SI Interrupt Timing RandomizeInterrupt = True # Duration of SI DMA (-1: use per game settings) SiDmaDuration = -1 [CoreEvents] # Mupen64Plus CoreEvents config parameter set version number. Please don't change this version number. Version = 1 # SDL keysym for stopping the emulator Kbd Mapping Stop = 27 # SDL keysym for switching between fullscreen/windowed modes Kbd Mapping Fullscreen = 0 # SDL keysym for saving the emulator state Kbd Mapping Save State = 286 # SDL keysym for loading the emulator state Kbd Mapping Load State = 288 # SDL keysym for advancing the save state slot Kbd Mapping Increment Slot = 0 # SDL keysym for resetting the emulator Kbd Mapping Reset = 290 # SDL keysym for slowing down the emulator Kbd Mapping Speed Down = 291 # SDL keysym for speeding up the emulator Kbd Mapping Speed Up = 292 # SDL keysym for taking a screenshot Kbd Mapping Screenshot = 293 # SDL keysym for pausing the emulator Kbd Mapping Pause = 112 # SDL keysym for muting/unmuting the sound Kbd Mapping Mute = 109 # SDL keysym for increasing the volume Kbd Mapping Increase Volume = 93 # SDL keysym for decreasing the volume Kbd Mapping Decrease Volume = 91 # SDL keysym for temporarily going really fast Kbd Mapping Fast Forward = 102 # SDL keysym for advancing by one frame when paused Kbd Mapping Frame Advance = 47 # SDL keysym for pressing the game shark button Kbd Mapping Gameshark = 103 # Joystick event string for stopping the emulator Joy Mapping Stop = "J0B8/B11,J1B8/B11,J2B8/B11,J3B8/B11" # Joystick event string for switching between fullscreen/windowed modes Joy Mapping Fullscreen = "" # Joystick event string for saving the emulator state Joy Mapping Save State = "" # Joystick event string for loading the emulator state Joy Mapping Load State = "" # Joystick event string for advancing the save state slot Joy Mapping Increment Slot = "" # Joystick event string for taking a screenshot Joy Mapping Screenshot = "" # Joystick event string for pausing the emulator Joy Mapping Pause = "" # Joystick event string for muting/unmuting the sound Joy Mapping Mute = "" # Joystick event string for increasing the volume Joy Mapping Increase Volume = "" # Joystick event string for decreasing the volume Joy Mapping Decrease Volume = "" # Joystick event string for fast-forward Joy Mapping Fast Forward = "" # Joystick event string for pressing the game shark button Joy Mapping Gameshark = "" [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 = "Wireless Controller" # 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, 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 = "4096,4096" # 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 = "32768,32768" # 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(9)" Z Trig = "axis(3+)" B Button = "button(0)" A Button = "button(1)" C Button R = "axis(2+)" C Button L = "axis(2-)" C Button D = "axis(5+)" C Button U = "axis(5-)" R Trig = "button(5)" L Trig = "button(4)" Mempak switch = "" Rumblepak switch = "" X Axis = "axis(0-,0+)" Y Axis = "axis(1-,1+)" [Input-SDL-Control2] # 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 = -1 # SDL joystick name (or Keyboard) name = "DragonRise Inc. Generic USB Joystick " # 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, 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 = "4096,4096" # 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 = "32768,32768" # Digital button configuration mappings A Button = "button(2)" B Button = "button(5)" C Button U = "button(1)" C Button D = "button(4)" R Trig = "button(3)" L Trig = "button(7)" Z Trig = "button(10)" X Axis = "axis(1-, 1+)" Y Axis = "axis(0+, 0-)" Start = "button(8)" Mempak switch = "" Rumblepak switch = "" [Input-SDL-Control3] # 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 = -1 # SDL joystick name (or Keyboard) name = "DragonRise Inc. Generic USB Joystick " # 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, 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 = "4096,4096" # 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 = "32768,32768" # Digital button configuration mappings A Button = "button(2)" B Button = "button(5)" C Button U = "button(1)" C Button D = "button(4)" R Trig = "button(3)" L Trig = "button(7)" Z Trig = "button(10)" X Axis = "axis(1-, 1+)" Y Axis = "axis(0+, 0-)" Start = "button(8)" Mempak switch = "" Rumblepak switch = "" [Input-SDL-Control4] # 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 = -1 # SDL joystick name (or Keyboard) name = "DragonRise Inc. Generic USB Joystick " # 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, 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 = "4096,4096" # 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 = "32768,32768" # Digital button configuration mappings A Button = "button(2)" B Button = "button(5)" C Button U = "button(1)" C Button D = "button(4)" R Trig = "button(3)" L Trig = "button(7)" Z Trig = "button(10)" X Axis = "axis(1-, 1+)" Y Axis = "axis(0+, 0-)" Start = "button(8)" Mempak switch = "" Rumblepak switch = "" [Rsp-HLE] # Mupen64Plus RSP HLE Plugin config parameter version number Version = 1 # Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string. RspFallback = "" # Send display lists to the graphics plugin DisplayListToGraphicsPlugin = True # Send audio lists to the audio plugin AudioListToAudioPlugin = False [Transferpak] # Filename of the GB ROM to load into transferpak 1 GB-rom-1 = "" # Filename of the GB RAM to load into transferpak 1 GB-ram-1 = "" # Filename of the GB ROM to load into transferpak 2 GB-rom-2 = "" # Filename of the GB RAM to load into transferpak 2 GB-ram-2 = "" # Filename of the GB ROM to load into transferpak 3 GB-rom-3 = "" # Filename of the GB RAM to load into transferpak 3 GB-ram-3 = "" # Filename of the GB ROM to load into transferpak 4 GB-rom-4 = "" # Filename of the GB RAM to load into transferpak 4 GB-ram-4 = "" [UI-Console] # Mupen64Plus UI-Console config parameter set version number. Please don't change this version number. Version = 1 # Directory in which to search for plugins PluginDir = "./" # Filename of video plugin VideoPlugin = "mupen64plus-video-GLideN64.so" # Filename of audio plugin AudioPlugin = "mupen64plus-audio-omx.so" # Filename of input plugin InputPlugin = "mupen64plus-input-sdl.so" # Filename of RSP plugin RspPlugin = "mupen64plus-rsp-hle.so" [Video-General] Fullscreen = False ScreenWidth = 640 ScreenHeight = 480 # If true, activate the SDL_GL_SWAP_CONTROL attribute VerticalSync = False [Video-GLideN64] # Settings version. Don't touch it. configVersion = 20 # Crop resulted image (0=disable, 1=auto crop, 2=user defined crop) CropMode = 0 # Crop width pixels from left and right of resulted image (in native resolution) CropWidth = 0 # Crop height pixels from top and bottom of resulted image (in native resolution) CropHeight = 0 # Enable/Disable MultiSampling (0=off, 2,4,8,16=quality) MultiSampling = 0 # Screen aspect ratio (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust) AspectRatio = 1 # Swap frame buffers (0=On VI update call, 1=On VI origin change, 2=On buffer update) BufferSwapMode = 0 # Frame buffer size is the factor of N64 native resolution. UseNativeResolutionFactor = 1 # Bilinear filtering mode (0=N64 3point, 1=standard) bilinearMode = True # Max level of Anisotropic Filtering, 0 for off MaxAnisotropy = False # Size of texture cache in megabytes. Good value is VRAM*3/4 CacheSize = 50 # Enable color noise emulation. EnableNoise = True # Enable LOD emulation. EnableLOD = True # Enable hardware per-pixel lighting. EnableHWLighting = False # Use persistent storage for compiled shaders. EnableShadersStorage = True # Make texrect coordinates continuous to avoid black lines between them. (0=Off, 1=Auto, 2=Force) CorrectTexrectCoords = 0 # Render 2D texrects in native resolution to fix misalignment between parts of 2D image. EnableNativeResTexrects = False # Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. Can cause glitches. EnableLegacyBlending = True # Enable frame and|or depth buffer emulation. EnableFBEmulation = True # Copy auxiliary buffers to RDRAM EnableCopyAuxiliaryToRDRAM = False # Enable N64 depth compare instead of OpenGL standard one. Experimental. EnableN64DepthCompare = False # Disable buffers read/write with FBInfo. Use for games, which do not work with FBInfo. DisableFBInfo = True # Read color buffer by 4kb chunks (strict follow to FBRead specification) FBInfoReadColorChunk = False # Read depth buffer by 4kb chunks (strict follow to FBRead specification) FBInfoReadDepthChunk = True # Enable color buffer copy to RDRAM (0=do not copy, 1=copy in sync mode, 2=copy in async mode) EnableCopyColorToRDRAM = 2 # Enable depth buffer copy to RDRAM (0=do not copy, 1=copy from video memory, 2=use software render) EnableCopyDepthToRDRAM = 2 # Enable color buffer copy from RDRAM. EnableCopyColorFromRDRAM = False # Texture filter (0=none, 1=Smooth filtering 1, 2=Smooth filtering 2, 3=Smooth filtering 3, 4=Smooth filtering 4, 5=Sharp filtering 1, 6=Sharp filtering 2) txFilterMode = 0 # Texture Enhancement (0=none, 1=store as is, 2=X2, 3=X2SAI, 4=HQ2X, 5=HQ2XS, 6=LQ2X, 7=LQ2XS, 8=HQ4X, 9=2xBRZ, 10=3xBRZ, 11=4xBRZ, 12=5xBRZ), 13=6xBRZ txEnhancementMode = 0 # Deposterize texture before enhancement. txDeposterize = False # Don't filter background textures. txFilterIgnoreBG = False # Size of filtered textures cache in megabytes. txCacheSize = 100 # Use high-resolution texture packs if available. txHiresEnable = True # Allow to use alpha channel of high-res texture fully. txHiresFullAlphaChannel = False # Use alternative method of paletted textures CRC calculation. txHresAltCRC = False # Enable dump of loaded N64 textures. txDump = False # Zip textures cache. txCacheCompression = True # Force use 16bit texture formats for HD textures. txForce16bpp = False # Save texture cache to hard disk. txSaveCache = True # Path to folder with hi-res texture packs. txPath = "/home/pi/.local/share/mupen64plus/hires_texture" # File name of True Type Font for text messages. fontName = "FreeSans.ttf" # Font size. fontSize = 14 # Font color in RGB format. fontColor = "1F1F1F" # Enable bloom filter EnableBloom = False # Brightness threshold level for bloom. Values [2, 6] bloomThresholdLevel = 4 # Bloom blend mode (0=Strong, 1=Mild, 2=Light) bloomBlendMode = 0 # Blur radius. Values [2, 10] blurAmount = 10 # Blur strength. Values [10, 100] blurStrength = 20 # Force gamma correction. ForceGammaCorrection = False # Gamma correction level. GammaCorrectionLevel = 2 # Show FPS counter. ShowFPS = True # Show VI/S counter. ShowVIS = False # Show percent counter. ShowPercent = False # Counters horisontal position (0=left, 1=right) CountersHPos = 0 # Counters vertical position (0=bottom, 1=top) CountersVPos = 0 # Enable writing of fragment depth. Some mobile GPUs do not support it, thus it made optional. Leave enabled. EnableFragmentDepthWrite = True # Use GLideN64 per-game settings. EnableCustomSettings = True # Path to folder where plugin saves texture cache files. txCachePath = "/home/pi/.cache/mupen64plus/cache" # Path to folder where plugin saves dumped textures. txDumpPath = "/home/pi/.cache/mupen64plus/texture_dump" # Show internal resolution. ShowInternalResolution = False # Show rendering resolution. ShowRenderingResolution = False # Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right) CountersPos = 8 [Video-Rice] LoadHiResTextures = True ; InputAutoCfg.ini for Mupen64Plus SDL Input plugin ; Wireless Controller_START [Wireless Controller] plugged = True plugin = 2 mouse = False AnalogDeadzone = 4096,4096 AnalogPeak = 32768,32768 Mempak switch = button(11) Rumblepak switch = button(12) C Button D = axis(4+) C Button L = axis(3-) L Trig = button(4) Start = button(9) C Button U = axis(4-) DPad D = hat(0 Down) X Axis = axis(0-,0+) R Trig = button(5) DPad R = hat(0 Right) DPad L = hat(0 Left) Z Trig = button(6) Y Axis = axis(1-,1+) DPad U = hat(0 Up) A Button = button(0) B Button = button(3) C Button R = axis(3+) ; Wireless Controller_END