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:

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

  1. Simulating the Monty Hall Problem (2025-05-04)
  2. Pi-hole on Raspberry Pi OS with dnscrypt-proxy (2024-01-28)
  3. Prime or Not Prime: That is the Question (2023-07-22)
  4. Switching Monitor Inputs on Computer Wakeup (2021-04-25)
  5. Changing the Playback Speed on Spotify's Web Player (2021-04-24)
  6. Solving Microcorruption Hollywood (2021-03-28)
  7. Font Rendering on macOS (2020-07-02)
  8. Video Disk Recorder (VDR) Tooling (2020-05-30)
  9. Spotify Web Player Failure due to Crash of Connected Device (2020-05-08)
  10. Malicious Forward Proxies (2020-04-27)
  11. Switching to a Dark Theme (2020-04-25)
  12. USB 3.0 to Gigabit Ethernet Adapter with Realtek 8153 Chipset on macOS Catalina (2020-04-23)
  13. Backing up Emails using OfflineIMAP (2020-04-19)
  14. Using a Raspberry Pi as a Wireless Access Point (2020-04-18)
  15. Accessing External Hard Drives in a Virtual Machine (2017-12-11)
  16. Managing Clipboards (2016-11-23)
  17. Multi-Screen Configuration Using Xrandr (2016-07-02)
  18. Email Backup and Migration using Thunderbird (2016-06-29)
  19. Automatic SSH Proxy Selection (2016-02-08)
  20. Set Color Temperature (2015-11-25)
  21. Completion Methods in Vim (2015-10-10)
  22. Fuzzing the mbed TLS Library (2015-09-26)
  23. SSH Weak Diffie-Hellman Group Identification Tool (2015-08-12)
  24. Building a Standing Desk for 50 Bucks (2015-01-25)
  25. High-DPI Displays under Linux (2014-12-23)
  26. Slow Wi-Fi on the Raspberry Pi (2014-06-15)
  27. XBMC on the Raspberry Pi (2014-06-14)
  28. Turning the Raspberry Pi into a Game Console (2014-06-12)
  29. ZFS Backups to External Hard Drives (2014-03-23)
  30. Display the I/O Usage of a Process (2014-02-21)
  31. Determining Wireless Network Channel Usage (2014-02-09)
  32. Managing Web Files through a Repository (2013-08-17)
  33. Simple HTTP File Servers (2013-08-16)
  34. Protect your SSH Private Keys (2013-06-16)
  35. Forward Secrecy for HTTPS and Ephemeral Diffie-Hellman (2013-06-14)
  36. Markdown Preview Chrome Extension (2013-06-13)