How simon3sarkis/super-odyssey-pc-recomp works
Super Odyssey PC Recomp turns a user-supplied extracted game into a native PC game: installation copies game data, recompiles its ARM64 code, and prepares shaders; Play boots the translated game against host implementations of Switch services and graphics. The runtime also covers controls, audio, settings, RomFS mods, and updates. The README documents several capabilities whose wiring is not shown in sampled source, so those links are documented relationships; unsampled implementation details are not inferred.
Main entry points: setup.h Installer UI · main.c Runtime entry · bindings.c Host function bindings · settings.c Settings
Components 24
Setup and lifecycle
- Installer UI
runtime/ui/setup.h - Game files
runtime/paths.c - RomFS preparation
runtime/romfs_build.c
Game translation
- Code recompilation
runtime/gamebuild.c - ARM64 SIMD lowering
tools/simd_c.py - Module loader
runtime/loader.c - Guest dispatch
runtime/dispatch.c
Runtime services
- Runtime entry
runtime/main.c - Guest kernel
runtime/kernel.c - Host function bindings
runtime/hle/bindings.c - System services
runtime/services - Filesystem service
runtime/services/fs.c - Host platform
runtime/platform
Graphics and audio
- NVN emulation
runtime/nvn/objects.c - Vulkan renderer
runtime/nvn/vulkan/exec.c - Shader preparation
runtime/nvn/vulkan/shaders.c - Audio service
runtime/services/audio.c
Player features
- Input and bindings
runtime/hle/input.c - Settings
runtime/settings.c - In-game menu
runtime/ui/menu.h - RomFS mods
runtime/mods.c - Built-in updater
runtime/updater.c
Other components
- Player
- Update releases
Connections 25
- Player → Installer UI: provides game
README.md - Installer UI → Game files: installs data
README.md - Installer UI → Code recompilation: recompiles code
README.md - Installer UI → RomFS preparation: prepares RomFS
README.md - Installer UI → Shader preparation: prepares shaders
README.md - Player → Runtime entry: starts game
README.md - Runtime entry → Host platform: initializes host
runtime/main.c - Runtime entry → Guest kernel: boots runtime
runtime/main.c - Code recompilation → ARM64 SIMD lowering: lowers SIMD
- Runtime entry → Module loader: loads modules
- Module loader → Guest dispatch: dispatches guest code
- Guest dispatch → Host function bindings: uses host bindings
- Host function bindings → System services: implements services
- System services → Filesystem service: routes filesystem calls
- Filesystem service → RomFS mods: supports mod files
runtime/services/fs.c - Player → Input and bindings: provides controls
runtime/hle/input.c - Input and bindings → Settings: uses bindings
runtime/hle/input.c - Player → In-game menu: opens settings
README.md - In-game menu → Settings: edits options
README.md - Runtime entry → Built-in updater: checks updates
runtime/main.c - Built-in updater → Update releases: checks releases
README.md - NVN emulation → Vulkan renderer: executes commands
- Vulkan renderer → Shader preparation: uses prepared shaders
- Host function bindings → Audio service: provides audio service
- Player → Settings: configures graphics
README.md