How brunodev85/winlator works
Purpose and Entry Points
Winlator is an Android runtime for launching Windows x86_64 applications through Wine with Box86/Box64 emulation. The user-facing entry point is the Android application under app; release installation is via an APK. Runtime support is assembled from native compatibility layers and bundled installable archives.
Paths: app, README.md
Android Application / Runtime Orchestration
The app module is the architectural owner for Android-side installation, container/shortcut configuration, and starting Windows workloads. It must bridge Android lifecycle, storage, display/input, and native runtime processes; the repository does not expose its source tree here, so its internal entry classes cannot be identified.
Paths: app, input_controls/index.txt
Windows Execution Stack
Windows programs execute under Wine, with Box86/Box64 supplying x86/x86_64 binary translation on Android’s ARM environment. Wine add-ons are bundled separately for applications requiring browser or .NET functionality, rather than being application code.
Paths: wine_addons/wine-mono-10.1.0-x86.msi, wine_addons/wine-gecko-2.47.4-x86_64.msi, installable_components/box64/index.txt
Graphics Compatibility and Versioned Components
Graphics translation is installable and versioned independently from the app: DXVK targets Direct3D-over-Vulkan, VKD3D addresses newer Direct3D paths, WineD3D provides an alternative Wine graphics backend, and Turnip provides the Android Vulkan driver stack. The indexed .tzst archives form a component-distribution boundary, enabling runtime selection or updates without representing source modules.
Paths: installable_components/dxvk/index.txt, installable_components/vkd3d/index.txt, installable_components/turnip/index.txt
Audio Integration Boundary
A custom ALSA PCM plugin connects guest/runtime audio to an Android audio-server configuration. The native module is built through CMake and uses vendored ALSA headers/configuration, isolating Android-specific audio adaptation from the Android app and Wine stack.
Paths: android_alsa/module_pcm_android_aserver.c, android_alsa/CMakeLists.txt, android_alsa/android_aserver.conf
libc/System-V Shared-Memory Compatibility
GLIBC patches implement Android-specific System V shared-memory operations (shmget, shmat, shmctl, shmdt). This is a low-level runtime boundary likely needed by Linux-side compatibility software that expects SysV IPC unavailable or divergent on Android.
Paths: glibc_patches/sysdeps/unix/sysv/linux/android_sysvshm.c, glibc_patches/sysdeps/unix/sysv/linux/shmget.c, glibc_patches/sysdeps/unix/sysv/linux/shmat.c
Input Profile Data
Game-specific .icp files and a central index provide data-driven input-control mappings. The app/runtime can select profiles per title instead of embedding each game’s touch/controller bindings into code.
Paths: input_controls/index.txt, input_controls/Skyrim.icp, input_controls/GTA 5.icp
External Runtimes and Infrastructure
Material external dependencies are Wine, Box86/Box64, Mesa/Turnip, DXVK, VKD3D, and Android’s native audio/graphics environment. gladio and vortek are top-level repository boundaries with no visible contents in this tree; their roles cannot be established from the supplied files.
Paths: gladio, vortek, .gitmodules
Main entry points: app Android app · dxvk/index.txt DXVK packages · vkd3d/index.txt VKD3D packages · module_pcm_android_aserver.c Android ALSA PCM plugin
Components 19
Android host
- Release APK · Android installation artifact.
README.md - Android app · Installs and configures containers, shortcuts, and Windows workloads.
app - Input profile index
input_controls/index.txt - Game input profiles · Per-title touch and controller mappings.
input_controls/Skyrim.icp
Windows execution
- Wine · Runs Windows applications.
- Box86 / Box64 · Translates x86 and x86_64 workloads for ARM.
installable_components/box64/index.txt - Windows applications
- Wine Mono · Optional .NET support.
wine_addons/wine-mono-10.1.0-x86.msi - Wine Gecko · Optional browser support.
wine_addons/wine-gecko-2.47.4-x86_64.msi
Installable components
- DXVK packages · Direct3D-over-Vulkan translation archives.
installable_components/dxvk/index.txt - VKD3D packages · Newer Direct3D translation archives.
installable_components/vkd3d/index.txt - Turnip packages · Versioned Android Vulkan driver archives.
installable_components/turnip/index.txt - Android graphics environment · Native Vulkan and display environment.
Native compatibility
- Android ALSA PCM plugin · Connects guest ALSA PCM to Android audio-server configuration.
android_alsa/module_pcm_android_aserver.c - ALSA plugin build · Builds the native audio module with vendored ALSA support.
android_alsa/CMakeLists.txt - Audio-server config
android_alsa/android_aserver.conf - Android SysV shared memory · Android-specific shmget, shmat, shmctl, and shmdt support.
glibc_patches/sysdeps/unix/sysv/linux/android_sysvshm.c
Other components
- gladio boundary · Role is not established by the supplied files.
gladio - vortek boundary · Role is not established by the supplied files.
vortek
Connections 21
- Release APK → Android app: installs
- Android app → Input profile index: selects
- Input profile index → Game input profiles: indexes
- Android app → Windows applications: launches
- Windows applications → Wine: runs under
- Wine → Box86 / Box64: uses translation
- Wine → Wine Mono: optionally installs
- Wine → Wine Gecko: optionally installs
- Android app → DXVK packages: installs/selects
- Android app → VKD3D packages: installs/selects
- Android app → Turnip packages: installs/selects
- Wine → DXVK packages: uses graphics backend
- Wine → VKD3D packages: uses graphics backend
- DXVK packages → Android graphics environment: targets Vulkan
- VKD3D packages → Android graphics environment: targets Vulkan
- Turnip packages → Android graphics environment: provides driver
- ALSA plugin build → Android ALSA PCM plugin: builds
- Audio-server config → Android ALSA PCM plugin: configures
- Wine → Android ALSA PCM plugin: outputs guest audio
- Wine → Android SysV shared memory: may require IPC compatibility
- Android app → Android graphics environment: bridges display and input