Pathfile Mod 3DS adds pathfile-based auto-launch support to 3DS emulator builds so a frontend can launch a selected ROM without showing the emulator file picker.
This repository tracks upstream emulator sources (as submodules) and applies pathfile launch support for:
- DaedalusX64-3DS (N64)
- snes9x_3ds (SNES)
- mGBA (GBA)
A frontend writes a ROM path into a known text file, launches the emulator, and the emulator auto-loads that ROM.
Forks used by this project:
- DaedalusX64-3DS: https://github.com/nextcode4u/DaedalusX64-3DS
- snes9x_3ds: https://github.com/nextcode4u/snes9x_3ds
- mGBA: https://github.com/nextcode4u/mgba
Original upstream projects:
- DaedalusX64-3DS: https://github.com/masterfeizz/DaedalusX64-3DS
- snes9x_3ds: https://github.com/matbo87/snes9x_3ds
- mGBA: https://github.com/mgba-emu/mgba
Pathfiles live on SD at:
sdmc:/pathfile/gba_launch.txtsdmc:/pathfile/snes_launch.txtsdmc:/pathfile/n64_launch.txt
Each file should contain a single absolute ROM path, for example:
sdmc:/roms/gba/Metroid Fusion.gbaIf a pathfile is missing, empty, or invalid, behavior falls back to each emulator's normal flow.
external/upstream emulator submodulespatches/reusable patch files for pathfile supportscripts/apply-pathfile-support.shreapplies pathfile patches after submodule updatesscripts/build-all.shbuilds all emulators and collects artifactsscripts/write-pathfile.shhelper to write launch files
git clone --recurse-submodules <repo-url>
cd Pathfile-Mod-3DSIf you already cloned without submodules:
git submodule update --init --recursive./scripts/apply-pathfile-support.shBuild all supported targets and collect outputs in builds/:
./scripts/build-all.shBuild logs are written to builds/logs/.
Artifacts are copied to:
builds/daedalusx64/builds/snes9x_3ds/builds/mgba/
Status summary is written to:
builds/STATUS.txt
./scripts/write-pathfile.sh gba "sdmc:/roms/gba/Metroid Fusion.gba"
./scripts/write-pathfile.sh snes "sdmc:/roms/snes/Super Metroid.sfc"
./scripts/write-pathfile.sh n64 "sdmc:/roms/n64/Star Fox 64.z64"Optional override for output directory (for testing on host):
PATHFILE_DIR=/tmp/pathfile ./scripts/write-pathfile.sh gba "sdmc:/roms/gba/Metroid Fusion.gba"- This repo is intended for frontend-driven launching via pathfiles.
- Some upstream toolchain combinations may produce different artifact sets (for example
.elfonly for some targets if packaging tools are unavailable). - Upstream emulator code is maintained in their own repositories; this project layers launch integration on top.
This project modifies and redistributes code from multiple emulator projects. Each emulator keeps its own license terms:
- DaedalusX64-3DS: GNU GPL (see
external/DaedalusX64-3DS/copying.txt) - mGBA: Mozilla Public License 2.0 (see
external/mgba/LICENSE) - snes9x_3ds: Snes9x license text in source (see
external/snes9x_3ds/source/Snes9x/copyright.h)
When distributing builds from this repository:
- Keep all original copyright and license notices.
- Provide corresponding source code for your modified binaries, including your patches.
- Include the license texts above with your release package.
- Follow Snes9x non-commercial terms unless you have separate permission from rights holders.