-
Notifications
You must be signed in to change notification settings - Fork 4
12 data formats
drpetersonfernandes edited this page Aug 6, 2026
·
1 revision
Every persistence format used by Simple Launcher and where it lives. Related: 05 — Configuration · 07 — Core Services
| Format | Files | Written/read by |
|---|---|---|
| XML (LINQ-to-XML) |
settings.xml, system.xml, emulator *.ini-adjacent XML (Ares settings.bml, Cemu settings.xml) |
SettingsManagerService, SystemConfigurationWriterService, EmulatorXmlHelpers, inject services |
| MessagePack |
favorites.dat, playhistory.dat, history.dat, mame.dat, RetroAchievements.dat, all_ra_games.dat
|
FavoritesManager, PlayHistoryManager, RomHistoryLoader, MameManagerService, RetroAchievementsManager
|
| SQLite | Amazon Games DB (read-only), Stella stella.sqlite3 (settings upserts) |
ScanAmazonGames (Microsoft.Data.Sqlite), StellaConfigurationService (SourceGear.sqlite3) |
| JSON |
appsettings.json (config), LauncherInstalled.dat/manifests (Epic), GOG .info, Humble config.json, itch .itch.toml-adjacent, Mesen settings.json, BizHawk config.ini (JSON), API payloads |
app config, scanners, MesenConfigurationService, RetroAchievementsEmulatorConfiguratorService, JsonSerializer
|
| YAML | RPCS3 config.yml
|
RPCS3ConfigurationService (YamlDotNet round-trip) |
| TOML | Xenia xenia[-canary].config.toml, Yumir Ymir.toml
|
XeniaConfigurationService, YumirConfigurationService (Tomlyn) |
| Plain text |
parameters.md, WhatsNew.md, .extraction_in_progress marker, version.txt, batch files |
help/update/extraction/updater |
| INI | most emulator configs (retroarch.cfg, PCSX2.ini, Dolphin.ini, settings.ini…) |
InjectEmulatorConfig\* + RA configurator INI helpers |
| File | Content | Class |
|---|---|---|
favorites.dat |
favorite games (system + filename) |
FavoritesManager (Services\Favorites\, app) |
playhistory.dat |
play sessions: date, play count, total seconds |
PlayHistoryManager (Services\PlayHistory\, app) |
history.dat |
ROM history database (HistoryData/EntryData/ItemData/SoftwareData) |
RomHistoryLoader (Core) |
mame.dat |
MAME machines + software-list descriptions |
MameManagerService (Core) |
RetroAchievements.dat |
RA game info, achievements, progress |
RetroAchievementsManager (Core) |
all_ra_games.dat |
full RA game database (built by Tools\RetroAchievements.DataFetcher) |
RA fetcher tool |
history.xml → history.dat migration (RomHistoryLoader): the loader prefers history.dat (faster, smaller); if absent it falls back to history.xml (legacy). Tools\XmlToBinaryConverter performs the conversion.
BoolConverter (Core Models\BoolConverter.cs) handles APIs that return booleans as numbers (0/1).
- LINQ-to-XML, root
<Application>; atomic save via temp file +File.Movewith 3 retries + exponential backoff; portable → LocalAppData fallback (SettingsManagerService.SaveAsync,:565-685). - Emulator settings blocks (
EmulatorSettings\×21) are serialized as child elements; RA credentials are DPAPI-encrypted (Base64) before writing (:717-719).
-
SystemConfigsroot; entries alphabetically sorted (ordinal-ignore-case); UTF-8, 2-space indent;XDeclarationensured; retry ×3 with 500 ms backoff; temp file +File.Move; empty or corrupt root replaced with a fresh<SystemConfigs/>. See 05 — Configuration.
| Emulator | File | Parser |
|---|---|---|
| Ares | settings.bml |
XML |
| Azahar / DuckStation / Flycast / RetroArch / Redream / Dolphin / Blastem / Supermodel / Sega Model 2 / Raine / Mednafen / Daphne |
*.ini/*.cfg
|
custom INI readers/writers (sections, insert/append) |
| PCSX2 | PCSX2.ini |
INI with [Achievements] etc. |
| RPCS3 | config.yml |
YamlDotNet (round-trip preserves structure) |
| Xenia / Yumir | *.toml |
Tomlyn |
| Mesen | settings.json |
System.Text.Json.Nodes |
| Stella | stella.sqlite3 |
SQLite upserts (sample DB copied when missing) |
| BizHawk (RA) |
config.ini (JSON) |
JsonNode |
Missing files are restored from samples\{Emulator}\{file} (copied from the app's samples\ folder).
- Home
- 01 Overview
- 02 Projects And Solution
- 03 Quickstart
- 04 Architecture
- 05 Configuration
- 06 Systems And Launch
- 07 Core Services
- 08 Ui Layer
- 09 Retroachievements
- 10 Game Scanning
- 11 Bundled Tools
- 12 Data Formats
- 13 Logging And Debug
- 14 Testing
- 15 Development
- 16 Updater
- 17 Release Notes
- 18 Emulator Parameters
- Manual Tests
- Parameters