Can't decide what to play? Let your 3DS pick for you.
Scans your SD card, filters out system junk, and launches a random game. Simple as that.
Controls:
A- Launch the selected titleY- Reroll for something elseSTART- Exit
Don't want to build? Just download and play!
- Click the "Releases" link on the right side of this page (or go to https://github.com/selloa/3DS-Random-Game-Launcher/releases)
- Download the latest release - look for the
.3dsxfile (that's what you need) - Copy the
.3dsxfile to your 3DS SD card in the/3ds/folder - Launch from Homebrew Launcher on your 3DS
That's it! No building required. The .3dsx file is ready to run.
Dependencies:
- devkitPro with devkitARM
- 3ds-dev libraries
You know the drill:
git clone https://github.com/selloa/3DS-Random-Game-Launcher.git
cd 3DS-Random-Game-Launcher
makeThe build system automatically creates incremental versions in the dist/ directory with numbered filenames (e.g., 3DS-Random-Game-Launcher-v1.3dsx).
For easier building, use the provided scripts:
# Windows
./build.bat release # Release build
./build.bat debug # Debug build
./build.bat list # List available builds
./build.bat clean # Clean build files
# Linux/Mac
./build.sh release # Release build
./build.sh debug # Debug build
./build.sh list # List available builds
./build.sh clean # Clean build filesFor development and testing, you can build a debug version with additional logging:
make DEBUG=1Debug builds include the -debug suffix and show verbose output during execution.
The title database (source/title_database.c) contains 4,135+ 3DS game entries with title IDs and names. Data was sourced from the comprehensive 3dsdb community database via multiple methods:
- 3dsdb API:
https://api.ghseshop.cc(base games, virtual console, DSiWare) - 3dsdb GitHub:
https://raw.githubusercontent.com/hax0kartik/3dsdb/master/jsons(regional data) - 3dsdb XML:
https://3dsdb.com/xml.php(complete database export)
The database includes games from all regions (USA, EUR, JPN) with both English and original Japanese/Chinese titles. Scripts in the scripts/ directory can be used to update the database with the latest entries.
Note for developers: The title_database.c file might be interesting for other 3DS homebrew projects that need a complete list of all title names with their corresponding title IDs.
Started as a basic proof-of-concept by einso - solid foundation but needed some love. Most of the heavy lifting here was done by AI (Claude/GPT) because let's be real, parsing 3DS title databases and handling all the edge cases is tedious as hell.
The original was functional but rough around the edges. This version adds proper error handling, better title filtering, and some polish. Still plenty of room for improvement though.
This thing has potential. Some ideas for whoever wants to take it further:
- GUI overhaul - The text interface works but a proper UI would be sick
- Better packaging - Improved distribution and installation
- Game carousel - Show actual titles with covers in a carousel instead of just text
- Icons - Display game artwork
- Favorites/blacklist - Let users customize what gets picked
- Categories - Filter by genre
- Stats - Track what you actually play
- Config file - Save preferences
The codebase is clean and well-commented. Perfect for someone to jump in and add features.
- einso - Original concept and implementation
- DevKitPro team - For the 3ds-examples that made this possible (app_launch template)
- AI assistants - Did most of the boring parsing and error handling work
- 3DS homebrew community - For keeping the scene alive
Note: This project uses code from the devkitPro 3ds-examples app_launch template under MIT license.
Open source. Check the original repo for details.
Built with libctru, powered by caffeine, and assisted by artificial intelligence.