How fireworksky/rotatingartlauncher works
Rotating Art Launcher is an Android launcher for running .NET desktop games, especially FNA/XNA titles and supported mod-loader games. The principal workflow is to add or download a game, select its executable, configure rendering and controls, then launch it in an isolated game process. The README also documents GOG downloads, compatibility patches, EasyTier multiplayer, and shareable control packs. Relationships among unsampled features are shown only where documented; source excerpts confirm the process launcher’s patch lookup and runtime-launch calls.
Main entry points: ui Game library UI · ProcessLauncherService.kt Game process · GameLauncher.kt Game launcher · ControlPackManager.kt Control packs
Components 21
Game acquisition
- Game library UI
app/src/main/java/com/app/ralaunch/feature/main/ui - Game repository
app/src/main/java/com/app/ralaunch/core/di/service/GameRepositoryServiceV3.kt - GOG downloads
app/src/main/java/com/app/ralaunch/feature/gog - Game installer
app/src/main/java/com/app/ralaunch/feature/installer
Launch runtime
- Patch manager
app/src/main/java/com/app/ralaunch/feature/patch/data/PatchManager.kt - Game process
app/src/main/java/com/app/ralaunch/core/platform/android/ProcessLauncherService.kt - Game launcher
app/src/main/java/com/app/ralaunch/core/platform/runtime/GameLauncher.kt - .NET launcher
app/src/main/java/com/app/ralaunch/core/platform/runtime/dotnet/DotNetLauncher.kt - Renderer system
app/src/main/java/com/app/ralaunch/core/platform/runtime/AndroidRendererRegistry.kt - SDL native layer
app/src/main/java/org/libsdl/app/SDLActivity.java
Controls and multiplayer
- Control layouts
app/src/main/java/com/app/ralaunch/feature/controls - Control packs
app/src/main/java/com/app/ralaunch/feature/controls/packs/ControlPackManager.kt - EasyTier VPN
app/src/main/java/com/app/ralaunch/core/platform/network/easytier/EasyTierVpnService.kt
App services
- App entry
app/src/main/java/com/app/ralaunch/RaLaunchApp.kt - Settings
app/src/main/java/com/app/ralaunch/core/common/SettingsAccess.kt - Storage paths
app/src/main/java/com/app/ralaunch/core/di/service/StoragePathsProviderServiceV1.kt - HTTP client
app/src/main/java/com/app/ralaunch/core/common/JsonHttpRepositoryClient.kt - Announcements
app/src/main/java/com/app/ralaunch/feature/announcement/AnnouncementRepositoryService.kt
Other components
- Player
- GOG services
- Control pack repository
Connections 21
- Player → Game library UI: chooses game
README.md - Game library UI → Game repository: manages library
- Player → GOG downloads: downloads game
README.md - GOG downloads → GOG services: requests downloads
- Player → Game installer: imports game
README.md - Game library UI → Game process: launches game
README.md - Game process → Patch manager: queries patches
app/src/main/java/com/app/ralaunch/core/platform/android/ProcessLauncherService.kt - Game process → Game launcher: launches assembly
app/src/main/java/com/app/ralaunch/core/platform/android/ProcessLauncherService.kt - Game launcher → .NET launcher: starts runtime
app/src/main/java/com/app/ralaunch/core/platform/runtime/GameLauncher.kt - Player → Renderer system: configures renderer
README.md - Game launcher → Renderer system: uses renderer
- .NET launcher → SDL native layer: runs game framework
- Player → Control layouts: configures controls
README.md - Player → Control packs: gets layouts
README.md - Control packs → Control pack repository: downloads packs
- Player → EasyTier VPN: starts multiplayer
README.md - Player → Settings: configures app
- App entry → Settings: initializes settings
app/src/main/java/com/app/ralaunch/RaLaunchApp.kt - App entry → Storage paths: initializes services
app/src/main/java/com/app/ralaunch/RaLaunchApp.kt - Announcements → HTTP client: fetches content
app/src/main/java/com/app/ralaunch/feature/announcement/AnnouncementRepositoryService.kt - Control packs → HTTP client: fetches pack data
app/src/main/java/com/app/ralaunch/feature/controls/packs/ControlPackRepositoryService.kt