OnionUI / Onion

OS overhaul for Miyoo Mini and Mini+
https://onionui.github.io
GNU General Public License v3.0
3.3k stars 205 forks source link

Implement cloud saves for the Mini+ #792

Open schmurtzm opened 1 year ago

schmurtzm commented 1 year ago

The idea is to be able to continue your game on other platform. The target platform is EmuDeck.

anzz1 commented 1 year ago

A simple way to do this would be to make a scraper program/script, which would connect to the MMP via SSH / SFTP / FTP, and sync those saves back and forth. This would work with the current Onion 4.2 beta already, with no need to change any code.

A script like that could be used for periodically backing up the saves too, which would be pretty neat, even if not using any other platforms.

retroNUC commented 1 year ago

Scripts like what anzz1 mentioned are what I've done on past offline consoles, running when SD card is mounted to a PC. It's save sync, but not cloud sync.

If we're doing it properly for cloud sync, I would suggest these elements:

jyannick commented 1 year ago

There is also synthing which is not exactly a cloud sync, more of a local sync. It is supported on many platforms. Devices have to be up simultaneously to perform the sync, but if one of them is a smartphone that is basically always connected, this is not really a big constraint in practice.

synthead commented 1 year ago

Head's up! You probably do not want credentials saved on the device until this is resolved, and the fix is deployed to your device :boom:

seanstardev commented 8 months ago

Scripts like what anzz1 mentioned are what I've done on past offline consoles, running when SD card is mounted to a PC. It's save sync, but not cloud sync.

If we're doing it properly for cloud sync, I would suggest these elements:

  • rclone for the major work
  • OnionUI app for rclone config/setup of the most common services (dropbox, gdrive, onedrive, smb)

    • Optional for now if more advanced users are happy editing config manually
  • Running the rclone sync task when...

    • We start up an emulator
    • We gracefully exit an emulator

I've hooked the MM+ up with syncthing and it's brought some interesting use cases to light that would affect a cloud save solution.

Ideally - this cloud save implementation would attempt to sync (push and pull saves) as it enters sleep mode and when the console is abruptly turned off, as well. Running sync when the emulator starts is a great idea, but could add a lot of delay to the quick launching of games.

Given the (brilliant) feature of disabling netwok when in game mode, temporarily re-enabling network as we enter 'sleep' and 'shutdown process' could be an involved task .

Further - we'd really benefit from the option of showing sync success / fail notifications when back in a non-game screen.

Finally - an explicit 'sync now' button on the main menu screen would add great piece of mind.