3 Controllers

Is it possible to play nhl or secret of mana 2 with 3 controllers under retroarch?

2 controllers works fine, and i tried to add a third with no luck. Any ideas?

You’ll need to set the user 2 device type (in settings > input > Input User 2 Binds) to multitap, then bind your pads.

I’m using Lakka. And only the retroarch.cfg file, all the menus and choices makes me dizzy.

I did add 3 devices in retroarch.cfg 0, 1 and 2. Same with the mapping for all the buttons.

So how do i “set” my device type for my third controller in retroarch.cfg ?

I think you need to do it through the menus because it requires the core to be initialized before you can choose specialized input devices such as multitaps and light guns.

So. If anyone finds this useful here it is.

RPi-2 Clocked @ 950Mhz in config.txt - boot partition, forced hdmi with some more amps. 3 Controllers (Gamecube USB Retrolinc) I only cared about Snes games and Snes9 next emulator. I used Lakka-RPi2.arm-devel-20151125101555-r21205-g3c89451.img Tried it succesfully on Nhl 94. No lags no tears just perfect. I have some kind of Panasonic 48" Led tv… I run Snes9x-Next in fullscreen 16:9 I run my hdmi signal true my reciver. I suck at retroarch.cfg so I did this by trail and error.

The trick was to set controller 2 to input_libretro_device_p2 = “257” And use core_specific_config = “true” (I think) I used retroarch.cfg with nano and no gui things. Anyways…

Here is my config.txt from my boot partition

#################################################################################      
This file is part of OpenELEC - http://www.openelec.tv
#      Copyright (C) 2009-2014 Stephan Raue ([email protected])
#      Inspired and partly copied from:
#  http://youresuchageek.blogspot.fr/2012/09/howto-raspberry-pi-openelec-on.html
#
#  OpenELEC is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 2 of the License, or
#  (at your option) any later version.
#
#  OpenELEC is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with OpenELEC.  If not, see <http://www.gnu.org/licenses/>.
################################################################################
# Bootloader configuration - config.txt
################################################################################


################################################################################
# Memory (System/GPU configuration )
################################################################################


# default GPU memory split (do not change if you do not know what you are doing)
  gpu_mem=128


# SDRAM size based GPU memory split, uncomment and setup to override 'gpu_mem'
  gpu_mem_256=112
  gpu_mem_512=160
  gpu_mem_1024=256


################################################################################
# Overclocking settings
# WARNING: Do not change/enable if you do not know what you are doing!
#          The System may become unstable or you can have data corruption or
#          you can loose your warranty if you set wrong settings
#
# please read: http://elinux.org/RPi_config.txt#Overclocking_configuration
################################################################################


# Overclock mode settings.
#
# default recommended values are: arm_freq | core_freq | sdram_freq | over_voltage
# no overclocking               :    700   |    250    |    400     |      0
# mode 'Modest'                 :    800   |    300    |    400     |      0
# mode 'Medium'                 :    900   |    333    |    450     |      2
# mode 'High'                   :    950   |    450    |    450     |      6
# mode 'Turbo'                  :   1000   |    500    |    500     |      6


 arm_freq=950
# core_freq=250
# sdram_freq=400
 over_voltage=6


# set to 'force_turbo=1' to disable dynamic overclocking (you can lose your warranty!)
  force_turbo=1


# If you have any data corruption using Turbo Mode and overclocking
# try with this setting uncommented
# If this still fails, try to use Medium mode without "over_voltage=2"
# If it ultimately keeps failing, forget about this until it gets fixed
# Use a more conservative mode that will works fine in any cases:
# initial_turbo=30


################################################################################
# Overscan settings
################################################################################


# Make display smaller to stop text spilling off the screen
# see also http://www.raspberrypi.org/phpBB3/viewtopic.php?f=67&t=15700
# overscan_scale=1
disable_overscan=1


# Adapt overscan values to your needs
# overscan_left=57
# overscan_right=59
# overscan_top=20
# overscan_bottom=20


################################################################################
# various settings see also: http://elinux.org/RPi_config.txt
################################################################################


# Force HDMI even if unplugged or powered off
 hdmi_force_hotplug=1


# Doesn't sent initial active source message.
# Avoids bringing CEC (enabled TV) out of standby and channel switch when
# rebooting.
  hdmi_ignore_cec_init=1


################################################################################
# License keys to enable GPU hardware decoding for various codecs
# to obtain keys visit the shop at http://www.raspberrypi.com
################################################################################


# decode_MPG2=0x00000000
# decode_WVC1=0x00000000
# decode_DTS=0x00000000
# decode_DDP=0x00000000


################################################################################
# End of default configuration
# all values below this line were inserted from config.txt.bk (your old config)
# and can be merged with the above values
################################################################################
disable_splash=1


################################################################################
# If you don't get sound on a TV connected by HDMI to your Raspberry Pi
# try with this setting uncommented.
# https://github.com/libretro/Lakka/issues/200
################################################################################
 hdmi_drive=2

And here is my retroarch.cfg

# HOTKEYS INPUTS
input_enable_hotkey_btn = "6"
input_toggle_fast_forward_axis = "+2"
input_load_state_axis = "-3"
input_save_state_axis = "+3"
input_reset_btn = "4"
input_screenshot_btn = "9"
input_exit_emulator_btn = "5"


# INPUT CONTROL 1
input_device_p1 = "0"
input_player1_joypad_index = "0"
input_libretro_device_p1 = "1"
input_player1_analog_dpad_mode = "0"
# A Button
input_player1_a_btn = "1"
# B Button
input_player1_b_btn = "2"
# Y Button
input_player1_y_btn = "3"
# X Button
input_player1_x_btn = "0"
input_player1_select_btn = "6"
input_player1_start_btn = "9"
input_player1_up_axis = "-1"
input_player1_down_axis = "+1"
input_player1_left_axis = "-0"
input_player1_right_axis = "+0"
input_player1_l_btn = "4"
input_player1_r_btn = "5"
input_player1_l_x_plus_btn = "h0right"
input_player1_l_x_minus_btn = "h0left"
input_player1_l_y_plus_btn = "h0down"
input_player1_l_y_minus_btn = "h0up"
input_player1_r_x_plus_axis = "+2"
input_player1_r_x_minus_axis = "-2"
input_player1_r_y_plus_axis = "+3"
input_player1_r_y_minus_axis = "-3"


# INPUT CONTROL 2
input_device_p2 = "0"
input_player2_joypad_index = "1"
input_libretro_device_p2 = "257"
input_player2_analog_dpad_mode = "0"
# A Button
input_player2_a_btn = "1"
# B Button
input_player2_b_btn = "2"
# Y Button
input_player2_y_btn = "3"
# X Button
input_player2_x_btn = "0"
input_player2_select_btn = "6"
input_player2_start_btn = "9"
input_player2_up_axis = "-1"
input_player2_down_axis = "+1"
input_player2_left_axis = "-0"
input_player2_right_axis = "+0"
input_player2_l_btn = "4"
input_player2_r_btn = "5"
input_player2_l_x_plus_btn = "h0right"
input_player2_l_x_minus_btn = "h0left"
input_player2_l_y_plus_btn = "h0down"
input_player2_l_y_minus_btn = "h0up"
input_player2_r_x_plus_axis = "+2"
input_player2_r_x_minus_axis = "-2"
input_player2_r_y_plus_axis = "+3"
input_player2_r_y_minus_axis = "-3"


# INPUT CONTROL 3
input_device_p3 = "0"
input_player3_joypad_index = "2"
input_libretro_device_p3 = "1"
input_player3_analog_dpad_mode = "0"
# A Button
input_player3_a_btn = "1"
# B Button
input_player3_b_btn = "2"
# Y Button
input_player3_y_btn = "3"
# X Button
input_player3_x_btn = "0"
input_player3_select_btn = "6"
input_player3_start_btn = "9"
input_player3_up_axis = "-1"
input_player3_down_axis = "+1"
input_player3_left_axis = "-0"
input_player3_right_axis = "+0"
input_player3_l_btn = "4"
input_player3_r_btn = "5"
input_player3_l_x_plus_btn = "h0right"
input_player3_l_x_minus_btn = "h0left"
input_player3_l_y_plus_btn = "h0down"
input_player3_l_y_minus_btn = "h0up"
input_player3_r_x_plus_axis = "+2"
input_player3_r_x_minus_axis = "-2"
input_player3_r_y_plus_axis = "+3"
input_player3_r_y_minus_axis = "-3"


#MORE INPUTS
input_driver = "udev"
input_joypad_driver = "udev"
input_turbo_period = "6"
input_duty_cycle = "3"
input_max_users = "4"
input_menu_toggle_gamepad_combo = "0"
input_axis_threshold = "0.500000"
input_descriptor_label_show = "true"
input_descriptor_hide_unbound = "true"
input_remap_binds_enable = "false"
input_remapping_directory = "~/remappings"
input_autodetect_enable = "true"
input_overlay_enable = "true"
input_overlay_enable_autopreferred = "true"
input_overlay_hide_in_menu = "true"
input_overlay_opacity = "0.700000"
input_overlay_scale = "1.000000"
input_osk_overlay_enable = "true"


#VIDEO
video_gpu_record = "false"
video_shader_enable = "false"
video_aspect_ratio = "1.770000"
video_aspect_ratio_auto = "true"
video_windowed_fullscreen = "false"
video_scale = "3.000000"
video_crop_overscan = "true"
video_scale_integer = "false"
video_smooth = "false"
video_threaded = "true"
video_shared_context = "false"
video_force_srgb_disable = "false"
video_fullscreen = "true"
video_refresh_rate = "59.950001"
video_monitor_index = "0"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
video_driver = "gl"
video_vsync = "true"
video_hard_sync = "false"
video_hard_sync_frames = "0"
video_frame_delay = "0"
video_black_frame_insertion = "false"
video_disable_composition = "false"
video_swap_interval = "1"
video_gpu_screenshot = "false"
video_rotation = "0"
video_font_size = "32.000000"
video_font_enable = "true"
video_shader_dir = "/usr/share/common-shaders"
video_filter_dir = "/usr/share/video_filters"
video_font_path = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf"
video_message_pos_x = "0.050000"
video_message_pos_y = "0.050000"
video_font_size = "32.000000"
aspect_ratio_index = "1"


#AUDIO
audio_latency = "64"
audio_sync = "true"
audio_block_frames = "0"
audio_resampler = "sinc"
audio_rate_control = "true"
audio_rate_control_delta = "0.005000"
audio_max_timing_skew = "0.050000"
audio_volume = "0.000000"
audio_driver = "alsathread"
audio_enable = "true"
audio_mute_enable = "false"
audio_out_rate = "48000"
audio_filter_dir = "/usr/share/audio_filters"


#MENU
menu_driver = "xmb"
menu_pause_libretro = "true"
menu_mouse_enable = "false"
menu_pointer_enable = "false"
menu_timedate_enable = "true"
menu_core_enable = "false"
menu_dynamic_wallpaper_enable = "false"
menu_boxart_enable = "false"
menu_wallpaper = "~/.config/retroarch/snes.png"
menu_navigation_wraparound_enable = "true"
menu_navigation_browser_filter_supported_extensions_enable = "true"
menu_show_advanced_settings = "true"
menu_entry_normal_color = "ffffffff"
menu_entry_hover_color = "ff64ff64"
menu_title_color = "ff64ff64"




#LIBRETRO
libretro_path = "/tmp/cores/snes9x_next_libretro.so"
libretro_directory = "/tmp/cores"
libretro_info_path = "/tmp/cores"
libretro_log_level = "0"


#NETPLAY
netplay_client_swap_input = "true"
netplay_spectator_mode_enable = "false"
netplay_mode = "false"
netplay_ip_port = "0"
netplay_delay_frames = "0"


#UI
ui_companion_start_on_boot = "true"
ui_menubar_enable = "true"


#LOAD
load_dummy_on_core_shutdown = "true"


#RECORD
record_driver = "ffmpeg"


#CORE
core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
core_updater_auto_extract_archive = "true"
core_assets_directory = "~/.config/retroarch/downloads"
core_specific_config = "true"
core_set_supports_no_game_enable = "true"


#DPI
dpi_override_enable = "true"
dpi_override_value = "200"


#BUNDLE
bundle_assets_extract_enable = "false"


#BUILTIN
builtin_mediaplayer_enable = "true"
builtin_imageviewer_enable = "true"


#LOCATION
location_allow = "false"


#REWIND
rewind_enable = "false"
rewind_granularity = "1"


#SAVE
savefile_directory = "~/savefiles"
savestate_directory = "~/savestates"
savestate_auto_index = "true"
savestate_auto_save = "false"
savestate_auto_load = "false"
autosave_interval = "0"


#CHEEVOS
cheevos_enable = "false"
cheevos_test_unofficial = "false"


#CAMERA
camera_allow = "false"
camera_driver = "null"


#KEYBOARD
keyboard_gamepad_enable = "true"
keyboard_gamepad_mapping_type = "1"


#CUSTOM
custom_viewport_width = "1440"
custom_viewport_height = "1080"
custom_viewport_x = "240"
custom_viewport_y = "0"
custom_bgm_enable = "false"


#IMPORTANT
fastforward_ratio = "4.000000"
fastforward_ratio_throttle_enable = "false"
slowmotion_ratio = "3.000000"
config_save_on_exit = "false"
rgui_config_directory = "/storage/.config/retroarch/"


#MISC
back_as_menu_toggle_enable = "true"
fps_show = "false"
pause_nonactive = "true"
suspend_screensaver_enable = "true"
content_database_path = "/tmp/database/rdb"
cheat_database_path = "/tmp/database/cht"
cursor_directory = "~/.config/retroarch/database/cursors"
threaded_data_runloop_enable = "true"
screenshot_directory = "~/screenshots"
ups_pref = "false"
bps_pref = "false"
ips_pref = "false"
system_directory = "~/system"
assets_directory = "/usr/share/retroarch-assets"
dynamic_wallpapers_directory = "default"
boxarts_directory = "~/boxarts"
playlist_directory = "~/playlists"
rgui_browser_directory = "~/roms"
rgui_show_start_screen = "false"
content_history_path = "~/.config/retroarch/content_history.lpl"
content_history_size = "100"
joypad_autoconfig_dir = "/tmp/joypads"
overlay_directory = "~/.config/retroarch/overlay"
osk_overlay_directory = "~/.config/retroarch/overlay"
gamma_correction = "false"
flicker_filter_enable = "false"
soft_filter_enable = "false"
console_resolution_width = "0"
console_resolution_height = "0"
soft_filter_index = "0"
current_resolution_id = "0"
flicker_filter_index = "0"
block_sram_overwrite = "false"
history_list_enable = "true"
sound_mode = "0"
state_slot = "0"
user_language = "0"
game_specific_options = "false"
auto_overrides_enable = "false"
auto_remaps_enable = "false"
sort_savefiles_enable = "true"
sort_savestates_enable = "true"
log_verbosity = "false"
perfcnt_enable = "false"


#PLAYLISTS
playlist_names = "Atari - 2600.lpl;Atari - 5200.lpl;Atari - 7800.lpl;Atari - Jaguar.lpl;Atari - Lynx.lpl;Atari - ST.lpl;Bandai - WonderSwan Color.lpl;Bandai - WonderSwan.lpl;Coleco - ColecoVision.lpl;DOOM.lpl;FB Alpha - Arcade Games.lpl;GCE - Vectrex.lpl;MAME.lpl;Microsoft - MSX2.lpl;Microsoft - MSX.lpl;NEC - PC Engine SuperGrafx.lpl;NEC - PC Engine - TurboGrafx 16.lpl;Nintendo - Famicom Disk System.lpl;Nintendo - Game Boy Advance (e-Cards).lpl;Nintendo - Game Boy Advance.lpl;Nintendo - Game Boy Color.lpl;Nintendo - Game Boy.lpl;Nintendo - Nintendo 64.lpl;Nintendo - Nintendo DS Decrypted.lpl;Nintendo - Nintendo DS (Download Play) (BETA).lpl;Nintendo - Nintendo DSi Decrypted.lpl;Nintendo - Nintendo DSi (DLC).lpl;Nintendo - Nintendo Entertainment System.lpl;Nintendo - Super Nintendo Entertainment System.lpl;Nintendo - Virtual Boy.lpl;Quake1.lpl;ScummVM.lpl;Sega - 32X.lpl;Sega - Game Gear.lpl;Sega - Master System - Mark III.lpl;Sega - Mega Drive - Genesis.lpl;Sega - PICO.lpl;Sega - SG-1000.lpl;Sinclair - ZX Spectrum +3.lpl;SNK - Neo Geo Pocket Color.lpl;SNK - Neo Geo Pocket.lpl;Sony - PlayStation Portable.lpl;Sony - PlayStation.lpl"
playlist_cores = "/tmp/cores/stella_libretro.so;DETECT;/tmp/cores/prosystem_libretro.so;/tmp/cores/virtualjaguar_libretro.so;/tmp/cores/mednafen_lynx_libretro.so;/tmp/cores/hatari_libretro.so;/tmp/cores/mednafen_wswan_libretro.so;/tmp/cores/mednafen_wswan_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/prboom_libretro.so;/tmp/cores/fba_libretro.so;/tmp/cores/vecx_libretro.so;/tmp/cores/mame_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/mednafen_pce_fast_libretro.so;/tmp/cores/mednafen_supergrafx_libretro.so;/tmp/cores/nestopia_libretro.so;/tmp/cores/gpsp_libretro.so;/tmp/cores/gpsp_libretro.so;/tmp/cores/gambatte_libretro.so;/tmp/cores/gambatte_libretro.so;/tmp/cores/mupen64plus_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/nestopia_libretro.so;/tmp/cores/snes9x_next_libretro.so;/tmp/cores/mednafen_vb_libretro.so;/tmp/cores/tyrquake_libretro.so;/tmp/cores/scummvm_libretro.so;/tmp/cores/picodrive_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/picodrive_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/fuse_libretro.so;/tmp/cores/mednafen_ngp_libretro.so;/tmp/cores/mednafen_ngp_libretro.so;/tmp/cores/ppsspp_libretro.so;/tmp/cores/pcsx_rearmed_libretro.so"