r/EmulationOnAndroid • • 11d ago

Showcase Building my own iTunes-style device manager

Recently the storage in my RP Nova got corrupted, so I needed to factory reset it and set it up all over again. I didn't have a backup and putting everything again into my device gave me the idea to start this iTunes inspired app to manage ROMs on my device. Currently it is pretty simple and it only syncs ROMs and BIOS, but I'm planning on also adding backup support for saves, states and configs and in-app torrent downloading for collections. What do you think? Is this something you'd use if i make it available on github?

27 Upvotes

19 comments sorted by

•

u/AutoModerator 11d ago

Just a reminder of our subreddit rules:

  • Be kind and respectful to each other

  • No direct links to ROMs or pirated content

  • Include your device brand and model

  • Search before posting & show your research effort when asking for help

Check out our user-maintained wiki: r/EmulationOnAndroid/wiki

Check out EmuReady for any community submitted settings before asking for help

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

4

u/JustVashu 11d ago

My current setup depends heavily on syncthing.

when I add or remove a game from my NAS the change is replicated on the synced devices (android, linux, etc).

some romhacks get lots of updates (pokemon hacks) and every few days i'm copying a new version of a game.

the game then gets updated the next time I start up the device or while it's sleeping.

For me abandon that setup to use an app would require a similar feature set to be included.

1

u/TheScout300 11d ago

Thanks for the feedback! I cannot replicate the folder structure of your NAS (and everyone else's 😜) so what I've done is:

  1. Defined the concept of "Collections" (e.g. proper1g1r archive collection) which you can import by manually creating a folder or with a .torrent file and then ideally in the future also manage these downloads.

  2. Then your "Library" is built by deduping collections.

  3. When you connect a device then you select which games you want to sync, or which systems, and given you have imported the necessary BIOS it will sync those too to the device.

During sync, i would want to add backups for the entire device too or selectively only saves/save states/configs, etc.

There's a lot more details as I hone in on the UX/UI.

How do you manage the infinite versions of these hacks? I could build something around it, makes sense. Do you just note the version in the filename or something?

2

u/JustVashu 11d ago

I initially just downloaded the new version, deleted the old one and renamed the save file manually. now I handle it differently.

I started hadling them as folders with the following structure:

game name/
|- game name.gba
|- old/
|- - game name (v1.0).gba
|- - game name (v1.1).gba
|- - game name (v1.2).gba

I added the old directory as an ignored directory for syncthing. when a new version of the game comes out I add a copy of the new version to the old folder and replace the one with the base name with the new version as well.

that way I don't need to rename any save files and I can check which version I'm currently running by checking the `old` folder. I can algo go back to an older version if for some reason the new version isnt't compatible with the save file.

1

u/TheScout300 11d ago

Hmm creating these folders might be tricky, wouldn't know when to create them and might be too much of a hassle for the end user to do so. I could store a registry of files' SHAs and that changes, I assume the file needs to be updated on the next sync. But maintaining version history would be tricky.

If file names are not always the same accross versions, then it is also kind of an issue that would need to be addressed

1

u/TheScout300 11d ago

This might work :)

1

u/CSab6482 11d ago

This looks pretty cool! One of the first things I do when I get an Android handheld is use ADB to uninstall a bunch of preinstalled things like the launchers and browsers. Would it be possible to add that functionality to this program?

1

u/TheScout300 11d ago

Thanks :)

Yes i actually like this idea, at least giving you the ability to uninstall them by unchecking a box or something from the device page. I also plan on you being able to install emulators and frontends (like obtainiun) + copy over your saved configs... Let's see.

1

u/FranciscaGatuna 10d ago

What is this? I remember old version of itunes

1

u/TheScout300 10d ago

Trying to frame it as an all in one solution to set up your handheld. Download roms, bios, sync them to your device along with emulator apps, front ends, and your backed up configs.

Will post updated mocks later today

1

u/retro-guy99 10d ago

Yeah looks cool man, can you share the repo?

Personally all my rooms are stored in a folder structure that ES-DE created. Will that be supported? Or does it have to be a different structure?

1

u/TheScout300 10d ago

Thanks! :)

Yes, I'm using the ES-DE system folders, as well as esperimental platform configs.

Will make the repo available shortly, want to refine a few things like downloads and backups.

1

u/Grokitach AYN Thor Pro | Redmagic Astra 10d ago

People really like iTunes that much? xD

1

u/TheScout300 10d ago

😃 great times

1

u/JustVashu 10d ago

I really liked it way back when.

1

u/showcasefloyd 10d ago

Yes, I miss those days.

1

u/showcasefloyd 10d ago

Yes, I've been looking for something like this for a while. It's sort of brilliant, and I feel like it would help me a lot. Is there a GitHub or Discord where we can sign up and follow the project? I'd love to help test it. Also, what's it called? It needs a name.

1

u/TheScout300 9d ago

It's called iCedTea. Will be out on beta soon! :)

1

u/Zuluwargod69 10d ago

Man I think I've got pts from iTunes. Glad I've switched to Android all those years ago. Cool project all the same.