Stream and Play: Emulating Retro Games on Chromecast with Google TV
2025-05-10
Chromecast with Google TV Features
The Chromecast with Google TV (CCwGTV) is a discontinued device by Google that supports video streaming in up to 4K HDR with its 4K model. It plugs directly into your TV's HDMI port, supports WiFi, and can connect via Ethernet using an adapter. The device charges through a USB-C connection and runs on Android TV, featuring the Google TV interface.
The Chromecast with Google TV offers several key features that enhance the retro gaming experience:
- Install Android Apps: Easily download and run a variety of emulators and gaming applications.
- Bluetooth Support: Connect seamlessly with a range of gaming controllers for a more immersive experience.
- Compatible Controllers: Works perfectly with popular controllers like the 8BitDo Pro 2 Bluetooth Gamepad, ensuring precision and comfort during gameplay.
Emulation on CCwGTV
For a review of the CCwGTV for emulating retro console games, see this blog post. Retro gaming is a growing trend, and the CCwGTV supports various emulators.
Notably, Robert Broglia has developed several Android apps supporting retro consoles, available here: Robert Broglia's Play Store.
An example is Snes9x EX+, which allows for Super Nintendo Entertainment System (SNES) emulation and is available for free on Google Play: Snes9x EX+.
Open Source Emulators
The underlying code for many emulators is open source and available on GitHub. This repository allows you to download nightly builds of the apps as APK (Android Package Kit) files. Since it's open source, I could contribute patches to update tools in the build pipeline.
Installing APKs and Loading ROMs
To install an APK and load game ROM images on the CCwGTV, developer mode and USB debugging need to be enabled. A computer connected to the CCwGTV over WiFi or Ethernet can upload files and install them via the ADB (Android Debug Bridge) toolset. See this tutorial that explains how to sideload APKs on devices with Android TV through a computer running Microsoft Windows or Apple macOS.
Install Emulators and Upload ROMs via ADB
# Connect to CCwGTV adb devices # list Android devices in USB debugging mode adb connect 192.168.0.123 # replace by actual IP of CCwGTV # Install emulators on CCwGTV adb install Snes9xEXPlus-release.apk adb install GbaEmu-release.apk adb install GbcEmu-release.apk # Load ROMs onto CCwGTV adb push computer/path/to/SNES-ROM /sdcard/Android/media/com.explusalpha.Snes9xPlus/ adb push computer/path/to/GBA-ROM /sdcard/Android/media/com.explusalpha.GbaEmu/ adb push computer/path/to/GBC-or-GB-ROM /sdcard/Android/media/com.explusalpha.GbcEmu/ # Disconnect from CCwGTV adb disconnect
Backup and Restore ROMs
# Backup ROMs to /sdcard/Android/media/emu-backup/com.explusalpha.* adb shell # get a shell on the device ls /sdcard/Android/media/com.explusalpha.Snes9xPlus/ cd /sdcard/Android/media/ mkdir -p emu-backup mv com.explusalpha.* emu-backup/ exit # to computer # If you decide to uninstall the emulators, run the following which will wipe the ROMs adb uninstall com.explusalpha.Snes9xPlus adb uninstall com.explusalpha.GbaEmu adb uninstall com.explusalpha.GbcEmu # After installing the emulators again, you can restore ROMs from the backup adb shell # get a shell on the device mv emu-backup/com.explusalpha.* . exit # to computer adb disconnect
Configuration Options
These emulator packages share the same framework, providing a consistent configuration interface and features, such as automatically saving the game's state. Game ROM images can be loaded from "Open Content" > "App Media Folder". My personal preference for the video settings is to disable filters and enable integer-scaling. There is a setting to enable mixing the game's audio with the audio from another app on the CCwGTV, such as Spotify.
Options | Video | Image Interpolation | None |
Options | Video | Image Effect | Off |
Options | Video | Overlay Effect | Off |
Options | Video | Content Scale | Integer-only |
Options | Audio | Mix With Other Apps | On |
The "Snes9x EX+" emulator supports two Bluetooth gamepads without any extra configuration, allowing you to play two-player games, such as "Street Fighter Alpha 2", with another person.
Emulator Performance
For SNES, there are several emulators. The "Snes9x EX+" emulator uses a recent state of the Snes9x mainline tree, whereas older versions, such as "Snes9x EX 1.43", are known for better performance at the cost of accuracy. Performance benchmarks show that "Snes9x EX+" performs well, even for demanding games like "Super Mario World 2: Yoshi's Island" where the physical cartrige embeds a Super FX enhancement chip.
Performance of the tested Game Boy Advance and Game Boy titles was great as well.
Benchmark Content
Emulator | Game | Frames Per Second |
---|---|---|
Snes9x EX+ | Super Mario Kart | 340 |
Snes9x EX+ | Super Mario World 2: Yoshi's Island | 370 |
Snes9x EX+ | Street Fighter Alpha 2 | 310 |
GBA | Mario Kart: Super Circuit | 293 |
GBA | Wario Land 4 | 377 |
GBA | The Legend of Zelda: A Link to the Past and Four Swords | 380 |
GBC | Super Mario Land | 2400 |
GBC | Donkey Kong | 1700 |
Conclusion
The CCwGTV offers a great retro gaming experience, particularly for Nintendo systems with 2D games like the SNES and Game Boy. While Game Boy Advance games run well, Nintendo 64 emulation may struggle. Moreover, storage of ROM images and emulators for systems more modern than SNES can be a concern.
This device allows for seamless gameplay with various SNES titles and supports Bluetooth controllers for enhanced control and comfort. Its Android app ecosystem makes it versatile for casual gamers.
The availability of open-source emulators and the ease of installing APKs and loading ROMs via ADB add to the convenience. As the retro gaming community grows, the CCwGTV stands out as an accessible option that rekindles nostalgia while offering modern features.
Overall, with its compact design and affordability, the CCwGTV is an excellent choice for video streaming and enjoying SNES retro gaming.
Permanent Link for Post
Stream and Play: Emulating Retro Games on Chromecast with Google TV
Older Posts
- Simulating the Monty Hall Problem (2025-05-04)
- Pi-hole on Raspberry Pi OS with dnscrypt-proxy (2024-01-28)
- Prime or Not Prime: That is the Question (2023-07-22)
- Switching Monitor Inputs on Computer Wakeup (2021-04-25)
- Changing the Playback Speed on Spotify's Web Player (2021-04-24)
- Solving Microcorruption Hollywood (2021-03-28)
- Font Rendering on macOS (2020-07-02)
- Video Disk Recorder (VDR) Tooling (2020-05-30)
- Spotify Web Player Failure due to Crash of Connected Device (2020-05-08)
- Malicious Forward Proxies (2020-04-27)
- Switching to a Dark Theme (2020-04-25)
- USB 3.0 to Gigabit Ethernet Adapter with Realtek 8153 Chipset on macOS Catalina (2020-04-23)
- Backing up Emails using OfflineIMAP (2020-04-19)
- Using a Raspberry Pi as a Wireless Access Point (2020-04-18)
- Accessing External Hard Drives in a Virtual Machine (2017-12-11)
- Managing Clipboards (2016-11-23)
- Multi-Screen Configuration Using Xrandr (2016-07-02)
- Email Backup and Migration using Thunderbird (2016-06-29)
- Automatic SSH Proxy Selection (2016-02-08)
- Set Color Temperature (2015-11-25)
- Completion Methods in Vim (2015-10-10)
- Fuzzing the mbed TLS Library (2015-09-26)
- SSH Weak Diffie-Hellman Group Identification Tool (2015-08-12)
- Building a Standing Desk for 50 Bucks (2015-01-25)
- High-DPI Displays under Linux (2014-12-23)
- Slow Wi-Fi on the Raspberry Pi (2014-06-15)
- XBMC on the Raspberry Pi (2014-06-14)
- Turning the Raspberry Pi into a Game Console (2014-06-12)
- ZFS Backups to External Hard Drives (2014-03-23)
- Display the I/O Usage of a Process (2014-02-21)
- Determining Wireless Network Channel Usage (2014-02-09)
- Managing Web Files through a Repository (2013-08-17)
- Simple HTTP File Servers (2013-08-16)
- Protect your SSH Private Keys (2013-06-16)
- Forward Secrecy for HTTPS and Ephemeral Diffie-Hellman (2013-06-14)
- Markdown Preview Chrome Extension (2013-06-13)