A sleek, minimalistic game streaming client for Apple TV, built on the Moonlight streaming platform. GameSphere transforms your Apple TV into a powerful gaming console by streaming games from your PC with a beautiful, TV-optimized interface.
- Elegant TV Interface: Clean, minimalist design inspired by modern gaming consoles
- Seamless Navigation: Intuitive tvOS-native controls with smooth focus management
- Left-Aligned Game Grid: Organized, easy-to-browse game library
- Centered Category Navigation: Clean category browsing with hover effects
- Hidden Titles Mode: Distraction-free game artwork display
- Automatic Wake-on-LAN: Automatically wake sleeping gaming PCs when launching GameSphere
- Intelligent Host Detection: Smart discovery and management of gaming PCs on your network
- Manual Wake Controls: On-demand PC wake functionality from settings
- Transparent Backgrounds: Clean, modern interface elements
- Focus-Driven UI: Elegant hover states and selection indicators
- Minimalist Aesthetic: Distraction-free gaming focus
- Full Support: Xbox, PlayStation, and Nintendo Switch Online (NSO) controllers
- NSO Controller Support: Native support for Nintendo Switch Online controllers including:
- N64 Controller
- NES Controller
- SNES Controller
- Genesis Controller
- Seamless Integration: NSO controllers are automatically detected and configured
- Button Mapping: Intelligent button mapping that translates NSO controller inputs to Xbox/PlayStation equivalents for maximum game compatibility
- Playnite Integration: GameSphere is recommended for use with Playnite, a powerful game library manager. For enhanced Playnite integration, check out PlayNiteWatcher which provides seamless connectivity and game management features.
- macOS with Xcode 15+ installed
- Apple TV (4th generation or later) for testing
- Apple Developer account for device installation
-
Clone the repository:
git clone --recursive https://github.com/your-username/GameSphere.git cd GameSphere -
Open in Xcode:
open Gamesphere.xcodeproj
-
Configure signing (for device installation):
- Select "Gamesphere TV" target in Xcode
- Go to "Signing & Capabilities" tab
- Select your development team
- Update the bundle identifier to something unique
-
Build and run:
- Select your Apple TV device as the target
- Press ⌘+R to build and run
GameSphere's user interface design was inspired by the beautiful Hero Playnite Theme by @zeroantix. The Hero theme's minimalistic fullscreen approach and clean aesthetic provided excellent inspiration for creating an elegant tvOS gaming experience.
GameSphere includes advanced automatic wake-on-LAN functionality that seamlessly wakes offline gaming PCs when the app launches. This feature uses intelligent host detection to send magic packets only when needed.
- Automatic: When enabled, GameSphere will automatically send wake packets to offline PCs when the app launches
- Configurable: Users can toggle this feature on/off in the settings
- Manual Trigger: Users can manually wake offline hosts from the settings menu
- User Feedback: Shows notifications when wake packets are sent
- Smart Detection: Only wakes hosts that have valid MAC addresses and are currently offline
- Auto Wake Toggle: Located in Settings → Game Shortcuts → Auto Wake
- Manual Wake Option: Located in Settings → Game Shortcuts → Wake Offline Hosts
- Persistent Settings: User preferences are saved and restored between app launches
- App Launch: When GameSphere launches, it starts host discovery
- Host Detection: After 3 seconds, the app checks for offline hosts
- Wake Decision: If automatic wake is enabled and offline hosts are found, wake packets are sent
- User Notification: A brief notification appears showing how many hosts were woken
- Manual Control: Users can manually trigger wake functionality from settings
WakeOnLanManager: Uses existing Limelight wake-on-LAN functionalityGameShortcutsViewController: Main controller that handles automatic wake logicGameSphereSettingsViewController: Provides user interface for wake settingsDiscoveryManager: Provides host discovery and status information
performAutomaticWakeIfEnabled(): Checks settings and triggers automatic wakewakeOfflineHosts(): Finds and wakes offline hostswakeHost(): Sends wake packet to individual hosttoggleAutoWake(): Handles user setting changeshandleManualWakeOfflineHosts(): Processes manual wake requests
- Gaming PCs must support Wake-on-LAN
- PCs must be properly configured for Wake-on-LAN in BIOS/UEFI
- Network must allow Wake-on-LAN packets
- PCs must have valid MAC addresses stored in GameSphere
- Open GameSphere
- Go to Settings (gear icon)
- Navigate to "Game Shortcuts" section
- Tap "Auto Wake" to toggle the feature
- The setting will show "ON" or "OFF" to indicate current state
- Open GameSphere
- Go to Settings (gear icon)
- Navigate to "Game Shortcuts" section
- Tap "Wake Offline Hosts"
- Wake packets will be sent to all offline hosts
Comprehensive logging is included for debugging:
- Host discovery and status checking
- Wake packet transmission
- User setting changes
- Error conditions
Log messages are prefixed with "GameShortcuts:" for easy identification.
This project builds upon the excellent Moonlight streaming technology. Contributions are welcome!
- Wake-on-LAN scheduling
- Individual host wake controls
- Wake status monitoring
- Network wake configuration
- Wake history tracking
- iOS 17.1+ or tvOS 17.1+ (for native NSO controller support)
- Nintendo Switch Online controller (N64, NES, SNES, or Genesis)
- Put your NSO controller in pairing mode (hold the sync button)
- Connect via Bluetooth in your device's Settings
- Launch GameSphere - the controller will be automatically detected
- Look for the "✅ NSO Controller successfully configured" message in the logs
NSO controllers are mapped to provide the best gaming experience:
- N64 Controller:
- A/B buttons → A/B
- C buttons → Face buttons and shoulder buttons
- Z button → Right trigger
- L/R buttons → Left trigger/shoulder
- Analog stick → Left stick
- D-pad → D-pad
The controller will appear as a Nintendo controller type to the host PC, but inputs are compatible with Xbox/PlayStation controller schemes.
- Ensure you're running iOS 17.1+ or tvOS 17.1+
- Check that the controller is properly paired in Bluetooth settings
- Look for detection messages in the app logs
- Try disconnecting and reconnecting the controller
- NSO controllers use a specialized mapping for optimal compatibility
- The right stick on N64 controllers may be used for C-button functionality
- All inputs are automatically translated to Xbox/PlayStation equivalents
For NSO controller-specific issues, please include:
- iOS/tvOS version
- Controller model (N64, NES, SNES, Genesis)
- Relevant log messages from the app