RetroArch 3DS

From GameBrew
RetroArch
Retroarch3ds2.png
General
Authorlibretro
TypeConsole
Version1.10.0
LicenseGPL-3.0
Last Updated2022/01/24
Links
[stable and nightly Download]
Website
Source

RetroArch is a free, open-source and cross-platform front-end for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and without dependencies.

It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all, with advanced features like shaders, netplay, rewinding, next-frame response times, runahead.

Features

  • Consistency across multiple platforms (same UI structure and a fully featured command line interface).
  • Gamepad controlled menu system with multiple styles available, such as XMB or Material UI.
  • Gamepad auto-configuration profiles, so that gamepads are mapped automatically when connected.
  • Per-core and per-game configuration overrides.
  • Custom resolution and refresh rate for video output, with exclusive fullscreen mode and monitor index for multi-monitor setups.
  • Dynamic rate control for smooth audio and video, even when the game's output rate is different from your system.
  • Basic fast forward, SRAM saving, savestate, etc. It supports serialization of the emulation state which is used to provide real-time rewind and netplay.
  • Pixel shaders, primarily using Cg and GLSL, with HLSL on Xbox 360.
  • Supports audio DSP filter plugins through .dsp configuration files.
  • Custom overlay support.
  • FFmpeg recording and playback support.
  • Streaming support.
  • GGPO-like netplay (latency hiding rollback).
  • Options for decreasing input latency related to vsync by eliminating buffering by the video driver, as well as using frame delay to delay polling of inputs until right before a vsync occurs on the display.
  • Run-ahead to reduce latency.

Installation

You can either choose Nightlies or Stable bundle, you can find a bundle with RetroArch, all the cores and all the assets here, and download RetroArch_3dsx.7z or RetroArch_cia.7z.

To install, just extract RetroArch folder to the root of your SD card (RetroArch.cia anywhere else), to install cores use FBI installer.

Run RetroArch, go to the RetroArchfolder and open the Cores folder.

Select and install the Cores you want to use.

For example; install pcsx_rearmed_libretro.cia for Playstation 1 Roms.

Note that some specific cores require BIOS roms/files present in the system directory in order to run.

User guide

Reduce Content loading times

By default, all Cores are installed in the directory /RetroArch/Cores. With this configuration, RetroArch Cores on 3DS take nearly 30 seconds to start, as each Core in /RetroArch/Cores must be initialized - including Cores which may not be needed. The same delay is experienced when loading Content (games) as well; roughly 30 seconds to finish loading. Slow MicroSD random access/transfer speeds on the 3DS may be a likely cause.

To reduce loading time for Cores and Content to under 5 seconds each, complete the following steps:

  • Determine Cores to be used. These Cores will remain in the /RetroArch/Cores/ directory.
  • Create directory for unused cores. A directory name such as /RetroArch/Cores-Notused/ could be created for unused Cores.
  • Move the unused Cores. Finally, move unused Cores from /RetroArch/Cores/ to /RetroArch/Cores-Notused/.
  • After moving unused Cores as outlined above, RetroArch Cores should start in about 5 seconds. Content should load in about 5 seconds as well.

As additional Cores are needed, simply move them from /RetroArch/Cores-Notused to /RetroArch/Cores. This ensures only the required Cores are initialized by RetroArch, minimizing start times for Cores and Content.

Additional notes for MAME Cores

MAME Content numbers in the thousands of items for MAME Cores. To help reduce loading time for MAME Content, consider creating two directories for MAME Content:

  • A directory for favorite MAME Content, containing Content which will be loaded often.
  • A directory for all remaining MAME Content, containing Content which would be loaded infrequently.

This approach will work fine as long as the MAME Content romset is a Full Non-Merged romset. If the romset is not Full Non-Merged, then all MAME content will need to remain in the same directory.

Full Non-Merged romsets are the simplest romset format to get started with because each romset zip contains all necessary files for one game. For more information, please refer to Getting started with arcade emulation.

Configuration for MAME cores

Much of the Content loaded by the RetroArch MAME Cores uses a Vertical display perspective for the top 3DS screen, requiring the user to rotate the 3DS counter-clockwise in order to properly see the game content and access the game controls. When using Content in this configuration, the default controls won't be suitable (as the controls are typically configured for Horizontal display perspective).

One approach to address the issue is to configure Global Options for controls, which would apply to the majority of games (such as Vertical display perspective). For games which have a different layout (Horizontal display perspective), the MAME menu may be used to configure a game controller configuration for that specific Content.

A simple configuration example follows, in case the majority of Content uses a Vertical configuration. Load RetroArch, then:

  • Bind a Menu hotkey From Main Menu navigate to Settings->Input->Hotkeys. Scroll down to Menu Toggle Gamepad Combo or Menu (Toggle) and configure as desired, to display the Menu within Content.
  • Configure Global Control for Vertical Content From Main Menu navigate to Settings > Input > Port 1 Controls. Configure as desired.
    • Configure In-Game Control for a piece of Horizontal Content Load the content, then press the defined Hotkey to display the Quick Menu.
    • Scroll down and select Options, then scroll down to select Display MAME menu; change to ON, then resume content.
    • On the MAME menu select Input (this game) and adjust the settings as desired.
    • Finally, use the previous steps to set Display MAME menu back to OFF. Controls are now set properly for the game.

Following the above ensures all Content may use the proper control configuration.

Useful links

Controls

A - Confirm

B - Cancel

X - Search prompt

Y - Delete input bind

D-Pad - Navigation

Start - Reset option to default

Select - Show tooltip for a particular option

R/L - Fast scrolling through files

Media

RetroArch - How to Install: 3DSXL, 3DS, 2DSXL and 2DS (LibRetro)

Changelog

1.10.0

  • 3DS: Add Jaxe, A5200 and WASM4 cores.
  • 3DS: Fix rotation.
  • ARCHIVE: Allow loading files from archive subdirectory.
  • AUDIO: Remove frame limit from audio batch callback. Before, if a core used the audio batch callback, there would be a hidden cap of 1024 on the number of audio frames that could be sent. If a core exceeded this value, any excess samples were silently discarded. While this is sufficient for 'normal' samplerates/framerates, it means that e.g. a core using the batch callback to send 44100 Hz audio at 30 fps with would have entirely broken sound. This has been fixed by removing the audio batch frame limit.
  • AUDIO/RESAMPLER/NEON: Implement sinc kaiser NEON function.
  • CHEEVOS: Reset hardcore default to enabled; show message when trying to load state in hardcore.
  • CHEEVOS: Fix memory map conversion.
  • CHEEVOS: Check netplay status when unlocking achievements.
  • CHEEVOS: Support for hashing buffered NDS ROMs.
  • CHEEVOS: Fix hung task whe badge doesn't exist.
  • CLI: Load save states from command-line or playlist.
  • CORE INFO CACHE/SETTINGS: Restore missing 'Cache Core Info Files' menu entry.
  • DATABASE: Serial scanning for Gamecube/MegaCD/SegaCD/Saturn/PSX/PSP/Dreamcast/Wii.
  • D3D10/D3D11: Add Vsync swap interval.
  • EMSCRIPTEN: Add Jaxe, WASM4 cores.
  • FILE IO: Fix incorrect file names for remap files when the content path doesn't have a preceding slash.
  • INPUT/OVERLAY: Added support for showing the overlay behind the menu instead of in front. This is currently only supported on the GL, Vulkan, D3D 9/10/11/12 and 3DS drivers.
  • INPUT/UDEV: Convert abs mouse from screen to viewport coordinates; fix relative mouse coords.
  • INPUT/WAYLAND: Ignore mouse clicks on window decoration.
  • INPUT/WAYLAND: Add scroll wheel support.
  • LINUX: Added support for Linux GameMode (https://github.com/FeralInteractive/gamemode), which can be toggled on/off in the Power Management or Latency settings menus.
  • LOCALIZATION: Fetch translations from Crowdin.
  • LOCALIZATION: Add Indonesian, Swedish and Ukrainian language options.
  • LOCALIZATION/MENU/RGUI: Enable Indonesian and Swedish localisations for RGUI.
  • LOGGING: Logging cleanups.
  • LOGGING: Stop logging FPS statistics twice on quit.
  • LOGGING: Log font rendering backend only once.
  • HOTKEYS: Added a hotkey toggle for the on-screen technical statistics.
  • HOTKEYS: Add delay + acceleration to volume hotkeys.
  • MENU: Add option for showing notifications only in menu.
  • MENU/RGUI: Add Finnish to supported languages.
  • MENU/XMB: Optional vertical list item fade.
  • MENU/XMB/OZONE: Category + History/Favorites icons.
  • NETWORK: Fix dummy notification – no longer shows a netplay initialization failed notification when netplay is not enabled.
  • NETWORK: LAN addresses only for UPnP – Some router devices might accept non-LAN addresses without raising an error.
  • NETWORK: Filter out non-connectable rooms. Add an option for filtering out non-connectable netplay rooms.
  • NETWORK: Netplay spectator notification fix. Fix double notification when the host switches to spectator.
  • NETWORK: Prevents long-term pausing from clients dishonoring allow pausing.
  • NETWORK/LOBBY: Lobby Viewer: Filter out rooms that are not running RetroArch.
  • NETWORK/LOBBY: Lobby Viewer: Display a non-connectable tag to non-connectable rooms.
  • NETWORK/LOBBY: Host: Display warning if we are announcing to the internet but our room isn't connectable from there.
  • NETWORK/RELAY: Custom relay server support – Add support for custom user-ran relay servers.
  • NETWORK/RELAY: Replace Canadian relay server with Singapore relay server. Current relays: New York/USA, Madrid/Spain, Sao Paulo/Brazil, Singapore.
  • NETWORK/UPNP: Various refactors/improvements, no more dependent on miniupnpc.
  • NETWORK/UPNP: Various UPnP binding fixes for specific routers.
  • NETWORK/UPNP: Accept IGD v2 service types.
  • NETWORK/UPNP: Delay lobby server announcing – delay the announcing in order to give UPnP's port forwarding more time. Fix the remaining truncation warnings.
  • NETWORK/UPNP: Smart interface selection – Find the most suitable address for UPnP by scoring interfaces on how close their address is to the device's address.
  • OPENGL1: Fix buffer overflow – RetroArch would sometimes crashes at startup when loading asset textures with GL1 driver.
  • PS3: PSL1GHT port added to Gitlab CI.
  • VULKAN: Double combined image sampler descriptor pool size – fix segfaults with AMD GPUs using RADV.
  • VULKAN: Emulate mailbox only with Vsync enabled – otherwise have it disabled – useful for VRR/G-Sync/FreeSync.
  • VULKAN/SWAPCHAIN: Vulkan max swapchain images option adjustments: removed value 1, since it won't be used – Video reinit on change, so that there is no need to restart or toggle fullscreen.
  • VULKAN/HDR: HDR support – tested on Windows.
  • WAYLAND: Add libdecor for client side decoration.
  • WAYLAND: Use any display for initial metrics.
  • WAYLAND: Fix the window closing, if RetroArch is build without libdecor.
  • WAYLAND: Use checked sizes in EGL resize.
  • WAYLAND: Fix window title update.
  • WEBOS: Fix webOS build and run.
  • WIIU: Fix rotation.
  • UWP/XBOX: Fix content over 4GB (approx) failing to load, improve/speed up copy/load times.
  • UWP/XBOX: Fix scanning for playlists.
  • UWP/XBOX: Move content copied to LocalState to a dedicated dir and clear on startup.
  • UWP/XBOX: Make content copy to a specific cache directory in the LocalState folder when it's copied.
  • UWP/XBOX: Auto delete VFS cache dir on startup.
  • UWP/XBOX: Make resolution switching automatic and fix angle output issues.
  • UWP/XBOX: Force ANGLE to render at 1080p regardless of screensize as the output is 1080p regardless of screensize. This fixes an issue where at 4k any angle output would be zoomed into a corner.
  • UWP/XBOX: Set resolution based on display resolution (auto 4k).
  • UWP/XBOX: Set driver to D3D11 if booting with opengl.
  • UWP/XBOX: Reset width and height of output on boot to match display.
  • UWP/XBOX: Mitigate need for VFS cores on NTFS drives.
  • UWP/XBOX: Make check for standard I/O by access rather than the just assuming based on path string.
  • UWP/XBOX: Add code to auto permissions so files can be accessed by non VFS cores (no exFAT or FAT32 support yet).

External links

Advertising: