-
Notifications
You must be signed in to change notification settings - Fork 2
Game executable lookup
After a game is downloaded and extracted, Yamata Launcher attempts to automatically determine which file should be used to launch the game.
This process is necessary because many downloads contain multiple files, folders, or executables. In some cases, the actual game file is not located at the root level or there may be several candidates.
The goal of the executable detection system is to minimize manual configuration and allow games to be launched immediately after installation.
Downloaded content may include:
- Multiple executable files
- Installers and launchers
- Tools or configuration utilities
- Documentation files
- Nested folder structures
For ROM-based systems, archives may contain:
- Multiple ROM variants
- BIOS files
- Readme files
- Extra resources
Because of this, Yamata performs an automatic lookup to determine the most appropriate file.
The detection method depends on the platform type.
For emulation systems (NES, SNES, GB, PSX, etc.), Yamata uses a size-based heuristic.
- All extracted files are scanned
- Files matching known ROM extensions for the platform are filtered
- The system selects the largest file
This works because:
- The main ROM is typically the largest file
- Additional files (readme, BIOS, patches) are usually smaller
Windows downloads often contain multiple .exe files, such as:
- Launchers
- Installers
- Updaters
- Configuration tools
- Anti-cheat components
To handle this, Yamata uses a name-based detection system.
- All
.exefiles are scanned recursively - The scan includes:
- Root folder
- All subfolders
- Each executable name is compared against a predefined list of known game executable patterns
- The best match is selected
The lookup list may include patterns such as:
game.exelauncher.exe<game_name>.exestart.exeplay.exe
Executables with installer-related names (e.g., setup.exe, uninstall.exe) are ignored when possible.
For Windows games, the detection system searches:
- All nested directories
- Deep folder structures
- Common distribution layouts
This ensures compatibility with packages such as: