Syncing Emulator Game Progress Across Multiple Android Devices

This post is to talk about how you can seamlessly transition your retro gaming experience from Android TV to your phone, or tablet, and vice versa.  There are many emulators on the Google Play Store, but I will be focused on one emulator for this article: the Snes9x EX+

As a huge retro gamer, I enjoy playing my games at work and at home.  Which is why I created a solution so that I could sync game save data between my Android phone and Android TV devices.  I use Google Drive as my cloud based storage.  With this setup, you can switch devices and continuing playing your game where you last left off.

Required apps

Finding where your emulator’s save files are

You can usually find where your emulator writes out its save files and or save state files by going into its settings.  For the Snes9x EX+ emulator the setting is located in:

options -> System -> Save Path

I have not opted for the Android 6.0 feature of using my external memory as internal storage and, so to make this guide work for everyone, we will want to change the save path to one on our local SD card.  You can put your folder anywhere you like but I choose to make a directory called GameData in my home directory using ES File Explorer.  I then put a subdirectory SNES inside because I wanted to store all my emulators save data in the GameData directory.

Once you create your folder go back into the Snes9X emulator and change the path by selecting the following options:

options > System -> Save Path -> Set Custom Path

You should repeat this step for all of your android devices you wish to sync.

Also there is a chance you could lose your data if you sync incorrectly so It’s advisable to backup your data (at least the GameData/SNES folder)

Configuring your cloud storage

Create a directory in your Google Drive to store all your cloud saves.  I named my folder CloudSaves and inside of that directory I created another sub directory titled SNES.   You will only need to do this one time on any of your devices.  My Google Drive path looks like: CloudSaves/SNES

Configure your sync app

GDriveSync will need to be side loaded onto your AndroidTV device as it’s not an AndroidTV supported app. However, the app does work with a controller and I’ll explain more about that in a bit.  When you launch the app make sure to link your Google Drive account to the app so it can have access to your CloudSave directory you created in the previous step.

To add a new sync point, click on the plus button in the bottom of the app and select the local folder you want to sync.  In my case it was my folder GameData/SNES located at my home directory.  Once you select that folder, it will ask which folder in Google Drive you want to sync it with.  Choose your CloudSaves/SNES directory and you have successfully setup your sync.

You will need to do this on all your android devices as well.  The AndroidTV device can launch the GDriveSync utility using the sideload launcher app.  You will need a mouse to hit the initial plus button in the app to make the sync point, but once you have configured your sync point, a controller is all that is needed to actually sync and use the app. If you own an Nvidia Shield TV device, (that is updated to Android 6.0 Marshmallow) the right analog stick on the controller will behave like a mouse.  Which is fantastic.

How to sync data

It’s very easy.  Open GDriveSync, click your sync point, and click the sync button.  A detailed log of which files were uploaded or downloaded from the sync will be displayed.

How to use this?

The general flow is:

  1. Play game on device 1
  2. When you have finished your game session.  Sync save data to cloud
  3. Switch to device 2 and sync save data from cloud
  4. Continue playing game on device 2
  5. When finished sync save data to cloud

The syncing can be set to automatic, but I prefer to manually push my save data to and from the cloud.  You can set yours up however you want.  Just be sure to keep your data in sync, otherwise you will need to tell GDriveSync which data to use if a conflict arises.  A conflict would arise if you played the game on both devices without syncing, then synced your 2nd device after syncing your 1st device.

A real world example of how I use this.  It’s my lunch break at work, so I head to the break room to continue playing my game. Before I start to play a game, I sync my save data using the GDriveSync app.  Then I continue playing my game for the duration of my break.  After my lunch is over, I sync my progress to the cloud.  Then after work, I get home and start up my Nvidia Shield TV.  I open the GDriveSync app using the sideload launcher app and sync my save files from the cloud.  At this point I’ve grabbed all my progress I did at lunch and I’m ready to continue playing.  When it’s time for bed I’ll sync the data back to cloud so I’m ready at tomorrow’s lunch break.

I’ll close by saying that most emulators only require one sync point for all your games.  In this example, clicking the sync button will sync all our SNES save files to the cloud.  So the setup procedure is mostly configuring sync points per emulator you use.  After doing the initial work, you can enjoy cross device saves for your emulator retro games.