Skip to content

DanAlexMorton/3dsTrident

Repository files navigation

Trident - 3DS Libretro Core

Build

A 3DS libretro core powered by Panda3DS, designed for use with RetroArch and architected for RetroAchievements support.

Downloads

Pre-built binaries for all platforms are available on the Releases page.

Platform Support

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

Installation

Windows / Linux / macOS

  1. Download the binary for your platform from Releases
  2. Copy the core file to your RetroArch cores/ directory
  3. Copy trident_libretro.info to RetroArch's info/ directory
  4. Launch RetroArch > Load Core > Trident > Load a 3DS ROM

Android

  1. Download trident_libretro_android_arm64.so from Releases
  2. Rename it to trident_libretro_android.so
  3. 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
  4. Copy trident_libretro.info to RetroArch's info/ directory (same parent as cores/)
  5. Launch RetroArch > Load Core > Trident > Load a 3DS ROM
  6. A device with a Snapdragon 845 / Exynos 9810 or newer is recommended

iOS

Important: iOS does not allow loading .dylib files 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):

  1. Go to Actions > Build RetroArch + Trident IPA, click "Run workflow", then download the RetroArch-Trident-iOS artifact once the build completes
  2. Install Sideloadly on your Windows or Mac PC, plus iTunes (non-Microsoft Store version on Windows)
  3. Connect your iPhone via USB, open Sideloadly, drag the .ipa file in, and enter your Apple ID
  4. On your iPhone: Settings > General > VPN & Device Management > trust the developer profile
  5. 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):

  1. 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
  2. Build the Trident core for iOS (see Building from Source > iOS below)
  3. Copy trident_libretro.dylib into RetroArch/pkg/apple/iOS/modules/
  4. Open RetroArch/pkg/apple/RetroArch_iOS13.xcodeproj in Xcode
  5. 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

Supported Formats

.3ds, .3dsx, .elf, .axf, .cci, .cxi, .app, .ncch

Building from Source

Prerequisites (all platforms)

  • CMake 3.16+
  • Git
  • A C++20 compiler

Windows

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_libretro

Output: build/Release/trident_libretro.dll

Linux

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

macOS

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

Android

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

iOS

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

License

GPL-3.0 -- see LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors