Getting Started with TruchiEmu
A technical guide to building, configuring, and running TruchiEmu on macOS
System Requirements
🖥️ macOS Compatibility
Minimum: macOS 14.0 (Sonoma) or later with Swift 5.9+
Recommended: macOS 15.0 (Sequoia) or later for optimal performance
Build Dependencies
- Xcode: Latest stable version (Required for building)
- Xcode Command Line Tools:
xcode-select --install - xcodegen: Used to generate the Xcode project from
project.yml - Metal-compatible GPU: For shader rendering and hardware acceleration
⚠️ Important: TruchiEmu uses modern SwiftUI features and Metal shaders that are not compatible with macOS versions older than 14.0.
Building from Source
TruchiEmu is built using XcodeGen to maintain a clean project structure. Follow these steps to build the application locally.
1. Install Build Tools
brew install xcodegen
2. Clone and Generate Project
git clone https://github.com/JuanchoGithub/truchiemu.git
cd truchiemu
xcodegen generate # This creates the TruchiEmu.xcodeproj file
3. Build the Application
You can build via the command line or by opening the project in Xcode.
# CLI Method:
xcodebuild -project TruchiEmu.xcodeproj -scheme TruchiEmu -configuration Debug build
Alternatively: Run open TruchiEmu.xcodeproj and press ⌘+B.
💡 Note: If you modify project.yml, you must run xcodegen generate again to update the Xcode project.
First Launch & Configuration
When you launch TruchiEmu for the first time, you will be guided through an initial setup process to configure your environment.
Environment Setup
Library & Data Location
TruchiEmu separates your game library from its internal application data. While you can choose any folder for your ROMs, the application stores its configuration, save states, and system files in the standard macOS Application Support directory: ~/Library/Application Support/TruchiEmu/.
Within the Application Support folder, TruchiEmu automatically organizes technical data into:
Saves/- Your save states and battery save filesCores/- The libretro cores used for emulationThumbnails/- Game artwork and cached screenshotsSystem/- Required BIOS and system files
Controller Configuration
Map your inputs to the emulator. TruchiEmu supports Keyboard, Xbox, PlayStation, and Nintendo Switch controllers natively on macOS.
Adding Your First Game
TruchiEmu supports simple import methods to get your library ready.
Importing Games
TruchiEmu supports simple import methods to get your library ready.
- Drag and Drop: Drag ROM files or folders from Finder directly into the TruchiEmu library window.
- Manual Import: Use the import button in the library toolbar to browse for files.
File Handling & Compatibility
TruchiEmu leverages the libretro API, meaning it supports virtually any file format accepted by the active emulator core. Rather than relying on simple file extensions, the app uses CRC32 hashing and DAT databases to identify games accurately.
📦 Compressed ROMs
For arcade systems like MAME,.zip is the primary expected format and is handled natively by the library.
💿 Disc Images
Intelligent handling of disc images. When a .cue file is detected, TruchiEmu prioritizes it and automatically hides the associated .bin files from the library to prevent duplicate entries.
🛠️ Library Filtering
To keep your collection clean, the application automatically filters out system BIOS files and metadata assets, displaying only playable game entries in the library view.
⚠️ Legal Notice: TruchiEmu does not provide ROMs. Please use legally obtained backups of games you own.
Basic Controls
Keyboard Defaults
| Key | Action | Notes |
|---|---|---|
| Arrow Keys | D-Pad / Directional Input | Standard for all systems |
| Z, X, C, V | Action Buttons (A, B, X, Y) | Default layout for most systems |
| Enter | Start / Pause | Menu navigation |
| Tab | Select / Back | Secondary menu button |
| Escape | System Menu | Access app-level settings |
Controller Support
TruchiEmu automatically detects most popular controllers when connected via USB or Bluetooth through the native macOS GameController framework:
- Xbox Controllers: Native support for Xbox One and Series X|S
- PlayStation Controllers: DualShock 4 and DualSense (PS5) supported
- Nintendo Switch: Joy-Cons and Pro Controller supported
- Generic USB: Most MFi and XInput controllers work out of the box
💡 Controller Tip: TruchiEmu uses a global mapping template based on the modern Xbox/PlayStation layout. This ensures a consistent feel across different systems, but can be customized per-system in the settings.
Per-System Customization
Each emulator core can have its own control mapping to better suit the original hardware:
- Open a game for the system you want to configure
- Navigate to the Controller settings in the main menu
- Adjust button mappings to match your preference
- Mappings are saved per system and applied automatically next time you launch a game from that system
Save States
TruchiEmu provides robust save state management alongside traditional battery saves.
Save States
- Instant snapshot of emulator memory
- Visual slot-based management (Slots 0-9 + Auto)
- Managed via the Game Detail view with thumbnail previews
Battery Saves
- Works like original hardware
- Compatible with real cartridges
- Handled automatically by the game core