Results 1 to 5 of 5
  1. #1
    EmuTalk Member
    Join Date
    Oct 2011
    Posts
    3

    Joystick Controller Detected by M64+ and SDLJoytest, but no buttons in game

    Controller: SNOPY SG-505
    Identified as: 'Generic USB Joystick ' (with several spaces at end and between words)
    SDLJoyTest: Controller 0, identified all inputs - numbers used for creating profile in InputAutoCfg.ini

    Mupen64Plus version: Mupen64Plus SDL Input Plugin version 1.99.4 with CuteMupen 0.1.0

    Mupen64Plus: Identifies joystick ID, but does not respond to any buttons. D-Pad or thumb-sticks - will respond to keyboard

    Joystick works fine with other programs on XP PC

    Joystick Profile:
    Code:
    [Generic   USB  Joystick  ]
    plugged = True
    plugin = 2
    mouse = False
    AnalogDeadzone = 4096,4096
    AnalogPeak = 32768,32768
    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 = button(3)
    B Button = button(1)
    A Button = button(0)
    C Button R = axis(3+)
    C Button L = axis(3-)
    C Button D = axis(2+)
    C Button U = axis(2-)
    R Trig = button(5)
    L Trig = button(4)
    Mempak switch =
    Rumblepak switch =
    X Axis = axis(0-,0+)
    Y Axis = axis(1-,1+)
    Image of joystick:




    Any assistance would be greatly appreciated
    Thank you

  2. #2
    Moderator
    Join Date
    Oct 2007
    Posts
    494
    If it responds to keyboard input but not the joystick then probably it did not identify the auto-configuration. It automatically falls back to keyboard if it cannot find a good joystick.

    Can you run it from the DOS prompt and post the output? It gives a lot of debug info and should be helpful.

  3. #3
    EmuTalk Member
    Join Date
    Oct 2011
    Posts
    3
    Ran through the dos prompt and after the emulation was stopped, the prompt displayed the following (copied from log.txt):
    Code:
     __  __                         __   _  _   ____  _             
    |  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___ 
    | |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|  
    | |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \  
    |_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/  
                 |_|         http://code.google.com/p/mupen64plus/  
    Mupen64Plus Console User-Interface Version 1.99.4
    
    UI-console: attached to core library 'Mupen64Plus Core' version 1.99.4
                Includes support for Dynamic Recompiler.
    Core: Goodname: Legend of Zelda, The - Ocarina of Time (U) (V1.0) [!]
    Core: Name: THE LEGEND OF ZELDA
    Core: MD5: 5BD1FE107BF8106B2AB6650ABECD54D6
    Core: CRC: ec7011b7 7616d72b
    Core: Imagetype: .z64 (native)
    Core: Rom size: 33554432 bytes (or 32 Mb or 256 Megabits)
    Core: Version: 1449
    Core: Manufacturer: 43000000
    Core: Country: USA
    UI-Console: Cheat codes disabled.
    UI-console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v1.99.4
    UI-console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v1.99.4
    Input: N64 Controller #1: Using SDL joystick 0 ('Generic   USB  Joystick  ')
    Input: N64 Controller #2: Using keyboard/mouse
    Input: N64 Controller #3: Using keyboard/mouse
    Input: N64 Controller #4: Using keyboard/mouse
    UI-console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v1.99.4
    UI-console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v1.99.4
    Input: N64 Controller #1: Using SDL joystick 0 ('Generic   USB  Joystick  ')
    Input: N64 Controller #2: Using keyboard/mouse
    Input: N64 Controller #3: Using keyboard/mouse
    Input: N64 Controller #4: Using keyboard/mouse
    Input: 4 controller(s) found, 1 plugged in and usable in the emulator
    Input: Mupen64Plus SDL Input Plugin version 1.99.4 initialized.
    Video: SSE processing enabled.
    Video: Found ROM 'THE LEGEND OF ZELDA', CRC b71170ec2bd71676-45
    Video: Enabled hacks for game: 'THE LEGEND OF ZELDA'
    Video: Initializing OpenGL Device Context.
    Core: Setting 32-bit video mode: 640x480
    Video: Using OpenGL: NVIDIA Corporation - GeForce 7600 GS/PCI/SSE2 : 2.1.2
    Video: OpenGL Combiner: Fragment Program
    Audio: Initializing SDL audio subsystem...
    Core: Starting R4300 emulator: Dynamic Recompiler
    Core Status: Stopping emulation.
    Core: R4300 emulator finished.
    Core Status: Rom closed.
    Also here is the cfg file (from application data):
    Code:
    # Mupen64Plus Configuration File
    # This file is automatically read and written by the Mupen64Plus Core library
    
    [Core]
    
    # Draw on-screen display if True, otherwise don't draw OSD
    OnScreenDisplay = True
    # 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 = 0
    # Path to directory where screenshots are saved. If this is blank, the default value of ${UserConfigPath}/screenshot will be used
    ScreenshotPath = ""
    # Path to directory where save states are saved. If this is blank, the default value of ${UserConfigPath}/save will be used
    SaveStatePath = ""
    # Path to a directory to search when looking for shared data files
    SharedDataPath = ""
    # SDL keysym for stopping the emulator
    Kbd Mapping Stop = 27
    # SDL keysym for switching between fullscreen/windowed modes
    Kbd Mapping Fullscreen = 323
    # 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 = ""
    # 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 = ""
    
    
    [Video-General]
    
    # Use fullscreen mode if True, or windowed mode if False
    Fullscreen = False
    # Width of output window or fullscreen width
    ScreenWidth = 640
    # Height of output window or fullscreen height
    ScreenHeight = 480
    
    
    [UI-Console]
    
    # Directory in which to search for plugins
    PluginDir = ".\"
    # Filename of video plugin
    VideoPlugin = "mupen64plus-video-rice.dll"
    # Filename of audio plugin
    AudioPlugin = "mupen64plus-audio-sdl.dll"
    # Filename of input plugin
    InputPlugin = "mupen64plus-input-sdl.dll"
    # Filename of RSP plugin
    RspPlugin = "mupen64plus-rsp-hle.dll"
    
    
    [UI-wx]
    
    # Directory in which to search for plugins
    PluginDir = "C:\Program Files\emulated\wxMupen64Plus\"
    # Filename of video plugin
    VideoPlugin = "mupen64plus-video-rice.dll"
    # Filename of audio plugin
    AudioPlugin = "mupen64plus-audio-sdl.dll"
    # Filename of input plugin
    InputPlugin = "mupen64plus-input-sdl.dll"
    # Filename of RSP plugin
    RspPlugin = "mupen64plus-rsp-hle.dll"
    # Where to search for games
    GamesPath = "F:\Roms\N64 roms"
    
    
    [Video-Rice]
    
    # Frame Buffer Emulation (0=ROM default, 1=disable)
    FrameBufferSetting = 0
    # Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc)
    FrameBufferWriteBackControl = 0
    # Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload)
    RenderToTexture = 0
    # Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn)
    ScreenUpdateSetting = 4
    # Force to use normal alpha blender
    NormalAlphaBlender = False
    # Use a faster algorithm to speed up texture loading and CRC computation
    FastTextureLoading = False
    # Use different texture coordinate clamping code
    AccurateTextureMapping = True
    # Force emulated frame buffers to be in N64 native resolution
    InN64Resolution = False
    # Try to reduce Video RAM usage (should never be used)
    SaveVRAM = False
    # Enable this option to have better render-to-texture quality
    DoubleSizeForSmallTxtrBuf = False
    # Force to use normal color combiner
    DefaultCombinerDisable = False
    # Enable game-specific settings from INI file
    EnableHacks = True
    # If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode
    WinFrameMode = False
    # N64 Texture Memory Full Emulation (may fix some games, may break others)
    FullTMEMEmulation = False
    # Enable vertex clipper for fog operations
    OpenGLVertexClipper = False
    # Enable/Disable SSE optimizations for capable CPUs
    EnableSSE = True
    # Use GPU vertex shader
    EnableVertexShader = False
    # If this option is enabled, the plugin will skip every other frame
    SkipFrame = False
    # If enabled, texture enhancement will be done only for TxtRect ucode
    TexRectOnly = False
    # If enabled, texture enhancement will be done only for textures width+height<=128
    SmallTextureOnly = False
    # Enable hi-resolution texture file loading
    LoadHiResTextures = False
    # Enable texture dumping
    DumpTexturesToFiles = False
    # Display On-screen FPS
    ShowFPS = False
    # Enable/Disable Mipmaping
    EnableMipmaping = True
    # Enable, Disable or Force fog generation (0=Disable, 1=Enable n64 choose, 2=Force Fog)
    FogMethod = 0
    # Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering)
    ForceTextureFilter = 0
    # Choose wich texture filtering method will be used by your graphic card(0=no filtering, 1=bilinear, 2=trilinear)
    TextureFilteringMethod = 1
    # Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored)
    TextureEnhancement = 0
    # Secondary texture enhancement filter (0 = none, 1-4 = filtered)
    TextureEnhancementControl = 0
    # Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits)
    TextureQuality = 0
    # Z-buffer depth (only 16 or 32)
    OpenGLDepthBufferSetting = 16
    # Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
    MultiSampling = 0
    # Color bit depth for rendering window (0=32 bits, 1=16 bits)
    ColorQuality = 0
    # OpenGL level to support (0=auto, 1=OGL_1.1, 2=OGL_1.2, 3=OGL_1.3, 4=OGL_1.4, 5=OGL_1.4_V2, 6=OGL_TNT2, 7=NVIDIA_OGL, 8=OGL_FRAGMENT_PROGRAM)
    OpenGLRenderSetting = 0
    # Enable/Disable Anisotropic Filtering for Mipmaping (0=no filtering, 2-16=quality). This is uneffective if EnableMipmaping is false. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering
    AnisotropicFiltering = 0
    
    
    [Audio-SDL]
    
    # Frequency which is used if rom doesn't want to change it
    DEFAULT_FREQUENCY = 33600
    # Swaps left and right channels
    SWAP_CHANNELS = False
    # Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory.
    PRIMARY_BUFFER_SIZE = 16384
    # Fullness level target for Primary audio buffer, in equivalent output samples
    PRIMARY_BUFFER_TARGET = 10240
    # Size of secondary buffer in output samples. This is SDL's hardware buffer.
    SECONDARY_BUFFER_SIZE = 2048
    # Audio resampling algorithm.  1 = unfiltered, 2 = SINC resampling (Best Quality, requires libsamplerate)
    RESAMPLE = 1
    # Volume control type: 1 = SDL (only affects Mupen64Plus output)  2 = OSS mixer (adjusts master PC volume)
    VOLUME_CONTROL_TYPE = 2
    # Percentage change each time the volume is increased or decreased
    VOLUME_ADJUST = 5
    # Default volume when a game is started.  Only used if VOLUME_CONTROL_TYPE is 1
    VOLUME_DEFAULT = 80
    
    
    [Input-SDL-Control2]
    
    # Specifies whether this input device is currently enabled
    plugged = False
    # Expansion pack type, if any
    plugin = 1
    # Whether mouse use is enabled
    mouse = False
    # Specifies which input device to use
    device = -2
    # For analog controls, specifies the dead zone
    AnalogDeadzone = "4096,4096"
    # For analog controls, specifies the peak value
    AnalogPeak = "32768,32768"
    # Right button on the digital pad
    DPad R = ""
    # Left button on the digital pad
    DPad L = ""
    # Down button on the digital pad
    DPad D = ""
    # Up button on the digital pad
    DPad U = ""
    Start = ""
    Z Trig = ""
    B Button = ""
    A Button = ""
    # C-Right button
    C Button R = ""
    # C-Left button
    C Button L = ""
    # C-Down button
    C Button D = ""
    # C-Up button
    C Button U = ""
    R Trig = ""
    L Trig = ""
    Mempak switch = ""
    Rumblepak switch = ""
    # Horizontal analog axis
    X Axis = ""
    # Vertical analog axis
    Y Axis = ""
    
    
    [Input-SDL-Control3]
    
    # Specifies whether this input device is currently enabled
    plugged = False
    # Expansion pack type, if any
    plugin = 1
    # Whether mouse use is enabled
    mouse = False
    # Specifies which input device to use
    device = -2
    # For analog controls, specifies the dead zone
    AnalogDeadzone = "4096,4096"
    # For analog controls, specifies the peak value
    AnalogPeak = "32768,32768"
    # Right button on the digital pad
    DPad R = ""
    # Left button on the digital pad
    DPad L = ""
    # Down button on the digital pad
    DPad D = ""
    # Up button on the digital pad
    DPad U = ""
    Start = ""
    Z Trig = ""
    B Button = ""
    A Button = ""
    # C-Right button
    C Button R = ""
    # C-Left button
    C Button L = ""
    # C-Down button
    C Button D = ""
    # C-Up button
    C Button U = ""
    R Trig = ""
    L Trig = ""
    Mempak switch = ""
    Rumblepak switch = ""
    # Horizontal analog axis
    X Axis = ""
    # Vertical analog axis
    Y Axis = ""
    
    
    [Input-SDL-Control4]
    
    # Specifies whether this input device is currently enabled
    plugged = False
    # Expansion pack type, if any
    plugin = 1
    # Whether mouse use is enabled
    mouse = False
    # Specifies which input device to use
    device = -2
    # For analog controls, specifies the dead zone
    AnalogDeadzone = "4096,4096"
    # For analog controls, specifies the peak value
    AnalogPeak = "32768,32768"
    # Right button on the digital pad
    DPad R = ""
    # Left button on the digital pad
    DPad L = ""
    # Down button on the digital pad
    DPad D = ""
    # Up button on the digital pad
    DPad U = ""
    Start = ""
    Z Trig = ""
    B Button = ""
    A Button = ""
    # C-Right button
    C Button R = ""
    # C-Left button
    C Button L = ""
    # C-Down button
    C Button D = ""
    # C-Up button
    C Button U = ""
    R Trig = ""
    L Trig = ""
    Mempak switch = ""
    Rumblepak switch = ""
    # Horizontal analog axis
    X Axis = ""
    # Vertical analog axis
    Y Axis = ""
    
    
    [Input-SDL-Control1]
    
    # 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
    # Specifies which joystick is bound to this controller: -2=Keyboard/mouse, -1=Auto config, 0 or more= SDL Joystick number
    device = 0
    # 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 = "key(100)"
    DPad L = "key(97)"
    DPad D = "key(115)"
    DPad U = "key(119)"
    Start = "key(13)"
    Z Trig = "key(122)"
    B Button = "key(306)"
    A Button = "key(304)"
    C Button R = "key(108)"
    C Button L = "key(106)"
    C Button D = "key(107)"
    C Button U = "key(105)"
    R Trig = "key(99)"
    L Trig = "key(120)"
    Mempak switch = "key(44)"
    Rumblepak switch = "key(46)"
    # Analog axis configuration mappings
    X Axis = "key(276,275)"
    Y Axis = "key(273,274)"
    Last edited by Redgeneral; October 20th, 2011 at 21:56.

  4. #4
    Moderator
    Join Date
    Oct 2007
    Posts
    494
    If you look at the last input section in your config file ([Input-SDL-Control1]), you can see that all of the buttons are set to their keyboard defaults. Even though it recognizes the joystick name, it still uses the values stored in the config file, not the auto-configuration. It looks like your config got messed up a bit; I bet it was due to some unforeseen interaction between the input plugin and cutemupen. It's easy to fix for your case (just delete your config file or this section and it will auto-detect your joystick).

    It kind of makes me think I should get rid of the saved input configuration and only rely on the auto-config, but then users would have problems setting up their own personalized config through a GUI front-end.

  5. #5
    EmuTalk Member
    Join Date
    Oct 2011
    Posts
    3
    Deleting config solved all my problems - thank you



    A generated config seems fine until it stops being generated with the new controller configuration (such as my problem) - auto config for controllers seems to be a better idea, if there is a preference control file as well

    Surely any program that can edit config file could be altered to edit the auto config file
    - check if the plugged in joystick is listed in the auto config
    - if so, bring up button bindings, edit and then save
    - if not on the auto config, edit button bindings and add to the config file

    There could be a preference control file to assign named controllers and an alternative if it is not present to each n64 controller port
    - [e.g. controller 1 -> defualt: generic usb joystick else: keyboard else2: none / controller 2 -> default: xbox 360 controller else: none / controller 3 -> default: none else: none / controller 4 -> default: none else: none]
    - This could also be edited by the GUI frontend or by Mupen prompt commands
    - The fresh install mupen would have the default for controller 1 listed as keyboard, user then swaps this for a joystick with the keyboard moved to the alternative


    Thank you for solving with my problem, it is greatly appreciated.

    I'm now off to play rayman 2


    • Advertising

      advertising
      EmuTalk.net
      has no influence
      on the ads that
      are displayed
        
       

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •