Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

SNES Emulator Slow Performance



  • All:

    I've been through the forums and tried fixing this issue with numerous config changes, but nothing impacts performance. Super Mario World, Zelda: ALttP, TMNT: Turtles in Time, all have noticeable and unplayable slowdowns. I can run every other emulator (including PSX) with no slowdowns or issues at all. Issue looks to be tied to the SNES emulator in particular.

    Pi Model or other hardware: Rpi2, model B
    Power Supply used: 5V 2.4A
    RetroPie Version Used: 4.3
    Built From: Retropie download page
    USB Devices connected: 2 USB SNES controllers, 1 USB fan
    Controller used: SNES USB
    Error messages received: N/A
    Emulator: lr-snes9x2010
    Attachment of config files: See below
    How to replicate the problem: Play any SNES game

    From main retroarch.cfg file, only non-commented out lines are (all else is default):
    VIDEO:
    video_aspect_ratio_auto = "true"
    video_font_size = "12"

    No audio lines are commented out

    SNES specific retroarch.cfg looks like (excluding input/other unrelated values):

    video_driver = "gl"
    record_driver = "null"
    camera_driver = "null"
    wifi_driver = "null"
    location_driver = "null"
    menu_driver = "rgui"
    audio_device = ""
    camera_device = ""
    cheevos_username = ""
    cheevos_password = ""
    video_context_driver = ""
    audio_driver = "alsathread"
    audio_resampler = "sinc"
    input_driver = "udev"
    input_joypad_driver = "udev"
    input_keyboard_layout = ""
    bundle_assets_src_path = ""
    bundle_assets_dst_path = ""
    bundle_assets_dst_path_subdir = ""
    video_aspect_ratio = "-1.000000"
    video_scale = "1.000000"
    video_refresh_rate = "60.000000"
    audio_rate_control_delta = "0.005000"
    audio_max_timing_skew = "0.050000"
    audio_volume = "0.000000"
    audio_mixer_volume = "0.000000"
    input_overlay_opacity = "0.700000"
    input_overlay_scale = "1.000000"
    menu_wallpaper_opacity = "0.300000"
    menu_framebuffer_opacity = "0.900000"
    menu_footer_opacity = "1.000000"
    menu_header_opacity = "1.000000"
    video_message_pos_x = "0.050000"
    video_message_pos_y = "0.050000"
    video_font_size = "12.000000"
    fastforward_ratio = "0.000000"
    slowmotion_ratio = "1.000000"
    input_axis_threshold = "0.500000"
    state_slot = "0"
    netplay_check_frames = "30"
    input_bind_timeout = "5"
    input_turbo_period = "6"
    input_duty_cycle = "3"
    input_max_users = "5"
    input_menu_toggle_gamepad_combo = "0"
    audio_latency = "64"
    audio_block_frames = "0"
    rewind_granularity = "2"
    autosave_interval = "0"
    libretro_log_level = "1"
    keyboard_gamepad_mapping_type = "1"
    input_poll_type_behavior = "2"
    video_monitor_index = "0"
    video_fullscreen_x = "0"
    video_fullscreen_y = "0"
    video_window_x = "0"
    video_window_y = "0"
    network_cmd_port = "55355"
    network_remote_base_port = "55400"
    dpi_override_value = "200"
    menu_thumbnails = "3"
    xmb_alpha_factor = "75"
    xmb_scale_factor = "100"
    xmb_theme = "0"
    xmb_menu_color_theme = "4"
    materialui_menu_color_theme = "0"
    menu_shader_pipeline = "1"
    audio_out_rate = "48000"
    custom_viewport_width = "1440"
    custom_viewport_height = "1080"
    custom_viewport_x = "240"
    custom_viewport_y = "0"
    content_history_size = "100"
    video_hard_sync_frames = "0"
    video_frame_delay = "0"
    video_max_swapchain_images = "1"
    video_swap_interval = "1"
    video_rotation = "0"
    aspect_ratio_index = "21"
    

    I've tried manipulating the resolution down to 800x600, toggled windowed on/off, and I've tried overclocking by adding this to the boot config file:
    arm_freq=1000
    sdram_freq=500
    core_freq=500
    over_voltage=2
    temp_limit=80 #Will throttle to default clock speed if hit.

    Any ideas? I've re-downloaded Super Mario World and Zelda: ALttP roms to ensure they're the 60Hz NTSC/USA roms. They are. The slowdowns seem to happen when a lot is happening on screen.



  • @colossalfalafel You do realize that both games do have some slowdown in them at times, right?



  • @colossalfalafel

    Try switching the emulator to lr-snes9x2005 . The default I believe is snes9x2010 which is more accurate but is also more processor intensive.



  • @zerojay Very much aware of this. I've played the physical versions and have emulated them without slowdowns of this nature before.



  • @ruckage Thank you, I'll definitely give this a go! :)



  • @ruckage Just made the change and it's a night and day difference in terms of performance. Audio emulation isn't as well-done, but the gameplay was my main concern. 100% better. Thank you so much!

    For anyone else trying to figure out how to switch the default emulator in Retropie 4.3, you can go to the emulators.cfg file in the config directory for the emulator you're planning to use. Open emulators.cfg and change the value in quotes after "default = " to the wildcard ID'd in the file for the emulator.

    The SNES emulator.cfg file lists three different emulators you can use, snes9x2002, snes9x2005, and snes9x2010. The wild card for each version can be found in the emulators.cfg file and references the arguments necessary to start that particular emulator.

    For my example, I was moving to snes9x2005 to obtain better gameplay emulation (which absolutely worked like a charm) as snes9x2010 (default SNES emulator) seems to have slower emulation at times:

    Original (defaults to snes9x2010) - default = "lr-snes9x2010"
    Using new emulator (defaults to snes9x2005) - default = "lr-snes9x2005"



  • @colossalfalafel
    You don't actually need to do that, just press a button after launching a game and it will bring up a menu where you can change the emulator used (amongst other things). You can even specify which emulator is used on a per-game basis.
    You should read the wiki as it covers pretty much everything needed to use retropie.



  • https://retropie.org.uk/forum/topic/13663/improved-performance just like my post I just linked to... you will need an 3A power source. The people who made the pi claim it uses 2A when in actuality it uses 3A. Otherwise you'll receive an visual indicator in the top right. This indicator shows up when your system does not receive enough amperage. When this happens emulators that normally do well on the Raspberry Pi lag.



  • @radiofreero said in SNES Emulator Slow Performance:

    https://retropie.org.uk/forum/topic/13663/improved-performance just like my post I just linked to... you will need an 3A power source. The people who made the pi claim it uses 2A when in actuality it uses 3A. Otherwise you'll receive an visual indicator in the top right. This indicator shows up when your system does not receive enough amperage. When this happens emulators that normally do well on the Raspberry Pi lag.

    That's not true, I've tested the current draw on rpi3 and it's not even close to that.
    You would only need a bigger power supply if you had lots of external devices drawing power from the pi.
    You do however need a good power supply that delivers the correct voltage, I've never had a problem with any of the official Raspberry Pi power supplies.



  • Pi is very demanding on the power supply.
    If the voltage is below 5.2V, turbo mode is disabled
    PI will operate at a reduced frequency in throttling mode.
    Some SNES games, even on an optimized driver under the SNES2002 AWS, will slow down.

    avoid warnings=2 fixit problem



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.