A 3DS libretro core powered by Panda3DS, designed for use with RetroArch and architected for RetroAchievements support.
Pre-built binaries for all platforms are available on the Releases page.
| Platform | Status | Renderer | Binary |
|---|---|---|---|
| Windows x64 | Supported | OpenGL 4.1+ | trident_libretro.dll |
| Linux x64 | Supported | OpenGL 4.1+ | trident_libretro.so |
| macOS ARM64 | Supported | OpenGL 4.1+ | trident_libretro.dylib |
| macOS x64 | Supported | OpenGL 4.1+ | trident_libretro.dylib |
| Android ARM64 | Experimental | OpenGL ES 3.2 | trident_libretro.so |
| iOS ARM64 | Experimental | OpenGL ES 3.0 | trident_libretro.dylib |
- Download the binary for your platform from Releases
- Copy the core file to your RetroArch
cores/directory - Copy
trident_libretro.infoto RetroArch'sinfo/directory - Launch RetroArch > Load Core > Trident > Load a 3DS ROM
- Download
trident_libretro_android_arm64.sofrom Releases - Rename it to
trident_libretro_android.so - Copy it to RetroArch's cores directory, typically:
- Internal storage:
/storage/emulated/0/RetroArch/cores/ - Or via RetroArch: Settings > Directory > Cores — note the path and place the file there
- Internal storage:
- Copy
trident_libretro.infoto RetroArch'sinfo/directory (same parent ascores/) - Launch RetroArch > Load Core > Trident > Load a 3DS ROM
- A device with a Snapdragon 845 / Exynos 9810 or newer is recommended
Important: iOS does not allow loading
.dylibfiles at runtime. You cannot simply drop a core file into a folder like on desktop platforms. The Trident core must be built into RetroArch's app bundle and code-signed together.
Option A -- Download pre-built IPA and sideload (no Mac required):
- Go to Actions > Build RetroArch + Trident IPA, click "Run workflow", then download the
RetroArch-Trident-iOSartifact once the build completes - Install Sideloadly on your Windows or Mac PC, plus iTunes (non-Microsoft Store version on Windows)
- Connect your iPhone via USB, open Sideloadly, drag the
.ipafile in, and enter your Apple ID - On your iPhone: Settings > General > VPN & Device Management > trust the developer profile
- Open RetroArch > Load Core > Trident > load a 3DS ROM
With a free Apple ID, the app expires every 7 days and must be re-signed via Sideloadly. A paid Apple Developer account ($99/year) extends this to 1 year.
Option B -- Build RetroArch with Trident from source (requires Mac):
- Clone RetroArch and Trident on a Mac with Xcode installed:
git clone --recursive https://github.com/libretro/RetroArch.git git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
- Build the Trident core for iOS (see Building from Source > iOS below)
- Copy
trident_libretro.dylibintoRetroArch/pkg/apple/iOS/modules/ - Open
RetroArch/pkg/apple/RetroArch_iOS13.xcodeprojin Xcode - Build and deploy to your device
Requirements:
- An A11 chip or newer (iPhone 8+, iPad 6th gen+)
- iOS does not allow JIT compilation on non-jailbroken devices, which may affect CPU emulation performance
.3ds, .3dsx, .elf, .axf, .cci, .cxi, .app, .ncch
- CMake 3.16+
- Git
- A C++20 compiler
git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
cd 3dsTrident
cmake -B build -G "Visual Studio 17 2022" -A x64 -DBUILD_LIBRETRO_CORE=ON
cmake --build build --config Release --target panda3ds_libretroOutput: build/Release/trident_libretro.dll
git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
cd 3dsTrident
sudo apt-get install build-essential cmake libgl-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRETRO_CORE=ON
cmake --build build --target panda3ds_libretro -j$(nproc)Output: build/trident_libretro.so
git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
cd 3dsTrident
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DBUILD_LIBRETRO_CORE=ON -DENABLE_METAL=OFF
cmake --build build --target panda3ds_libretro -j$(sysctl -n hw.logicalcpu)Output: build/trident_libretro.dylib
Requires the Android NDK (r26d recommended).
git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
cd 3dsTrident
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-26 \
-DBUILD_LIBRETRO_CORE=ON -DENABLE_METAL=OFF
cmake --build build --target panda3ds_libretro -j$(nproc)Output: build/trident_libretro.so
Requires Xcode with iOS SDK 14.0+. Must be built on macOS.
git clone --recursive https://github.com/DanAlexMorton/3dsTrident.git
cd 3dsTrident
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DIOS_SIMULATOR_BUILD=OFF \
-DCMAKE_C_FLAGS="-march=armv8-a+crc+crypto" \
-DCMAKE_CXX_FLAGS="-march=armv8-a+crc+crypto" \
-DBUILD_LIBRETRO_CORE=ON -DENABLE_OPENGL=ON -DOPENGL_PROFILE=OpenGLES \
-DENABLE_METAL=OFF
cmake --build build --target panda3ds_libretro -j$(sysctl -n hw.logicalcpu)Output: build/trident_libretro.dylib
GPL-3.0 -- see LICENSE for details.