RetroDECK
RetroDECK copied to clipboard
FLIPS Integration / Romhack Downloader
It would be great to have some sort of romhack "store" where the user picks a romhack and RetroDECK automatically downloads the patch and applies it via FLIPS to the rom the user provides.
I don't think there is an API somewhere already where one can search and download rom patches, but we could set this up, right? Basically make a github repo where we curate some good romhacks and retrodeck downloads the data from there.
Behaviour
Practically, I'd imagine it like this: When the user goes into the store environment (from inside the configurator), retrodeck scans the checksums of the roms the user has in their roms directory. Whenever a checksum is compatible with a patch in our romhack repo, that hack is made available to install in the store.
Hacks which are not compatible with the users roms are still presented in the store, but the pages of the hacks make it clear that the specific rom is necessary (e.g. no-intro, checksum, region etc). Maybe even grey these pages out a bit.
When not a single rom of the user matches a patch, a tutorial page is displayed explaining that specific roms are needed. The tutorial is also accessible with a button when patches do match.
After the user chooses to install, the patched rom gets automatically placed into the correct console directory and can also be started from the store page.
UI
For the interface I imagine that each hack has a page with the info and artwork (all hosted in the github repo) and the user cycles through the pages like they do in the console picker UI of ES-DE. Maybe show the hacks in random order by default so the user can discover them.
I have thought about similar functionally for RomHacks as well and talked about it internally.
We probably should combine the "Ports Downloader": https://github.com/XargonWan/RetroDECK/issues/325
We are trying to avoid the term "Store" or "Marketplace" as well, as a they are is a places that sells things. We can think about some fancy name later.
But a great idea!
We were talking about this in RomM: https://github.com/zurdi15/romm/discussions/296
Then we should work together to make it happen if possible. The interface I don't know about tho, maybe we can handle it in Godot "Ports Downloader" application we can also use for this?
As ROMM will handle it in ROMM.
Please explain what part RomM would play in this. Is this for fetching hack metadata and/or the patches themselves? Would they do the patching for us so FLIPS integration is not necessary?
Yes, a combined downloader interface in Godot would be nice where you can filter for ports, romhacks or homebrew. Maybe name it Game Downloader
@Libretto7 i think the main problem is most of rom hacks haven't got any direct download link and it doesn't (i think) exist a centralized database
Please explain what part RomM would play in this. Is this for fetching hack metadata and/or the patches themselves? Would they do the patching for us so FLIPS integration is not necessary?
Yes, a combined downloader interface in Godot would be nice where you can filter for ports, romhacks or homebrew. Maybe name it Game Downloader
RomM it's partnered project, basically RetroDECK manages what you got locally, RomM will manage the whole of your library. We are thinking to do some integrations in the future, but I think this feature should not be in RetroDECK but in your upstream library.
What I wish in the future is that trough RetroDECK you will be able to call RomM to download your roms, or even, RomM will be able to sync your roms into your devices, even RtroDECK. We are discussing that.
@Libretto7 i think the main problem is most of rom hacks haven't got any direct download link and it doesn't (i think) exist a centralized database
Maybe something can be done about this, mostly are in romahcks websites, the ones that are not can be added as "ronins" and be linked or pushed into a repo or such.
Maybe something can be done about this, mostly are in romahcks websites, the ones that are not can be added as "ronins" and be linked or pushed into a repo or such.
Yes but they don't provide a direct download link, they are mostly hosted on Google Drive/Mediafire/similar websites
@XargonWan RomM it's partnered project, basically RetroDECK manages what you got locally, RomM will manage the whole of your library. We are thinking to do some integrations in the future, but I think this feature should not be in RetroDECK but in your upstream library.
What I wish in the future is that trough RetroDECK you will be able to call RomM to download your roms, or even, RomM will be able to sync your roms into your devices, even RtroDECK. We are discussing that.
Okay, so if I understood this correctly, then we'll use RomM for managing and synchronizing to other devices the roms the user already has. But RomM has nothing to do with acquiring or patching the roms. RomM will also not be used as a store frontend as that is not in their scope.
So all you are saying is that the functionality of scanning the local roms and matching them against compatible patches should be developed in a separate library so that both RetroDECK and RomM can use it. Is this correct?
If so I could start experimenting with adding a ROM patcher functionality (FLIPS) to the configurator..
@cipi1965 Yes but they don't provide a direct download link, they are mostly hosted on Google Drive/Mediafire/similar websites
This is why I am proposing that we make a big curated repo where we manually download the best hacks from those websites and put them in our repo for easy access. The repo could also host curated homebrew and ports. What do you think of this, should I create the repo or is there a better solution for this?
RetroAchievements already has a repo of patches, but the structure and content is focused on achievements. Maybe we can adapt that
But RomM has nothing to do with acquiring or patching the roms.
So all you are saying is that the functionality of scanning the local roms and matching them against compatible patches should be developed in a separate library so that both RetroDECK and RomM can use it. Is this correct?
This is still under discussion, but if RomM can manage it RetroDECK wouldn't need to.
RomM will also not be used as a store frontend as that is not in their scope. RomM will implement the device sync, so you will be able to add RetroDECK as a device and RomM will be able to sync roms/saves whatever when that device will be online, you would be able to create collection to sync to your devices and such.
How this will be working is under discussion as well.
Maybe we should talk about their plans and draw a line between what they want to implement and what they don't. What they don't could be implemented in RetroDECK if it fits the scope.
This is why I am proposing that we make a big curated repo where we manually download the best hacks from those websites and put them in our repo for easy access. The repo could also host curated homebrew and ports. What do you think of this, should I create the repo or is there a better solution for this?
This is something I would like to see one day, maybe this can be a combination between different sources such as romhacking websites and our custom repositories that will be merged into a single frontend and database for an ease access. Moreover we can promote it to be a standard for the future mod developers. Not sure if this really fits inside RetroDECK, but it could be a spinoff project where RetroDECK or RomM could integrate.
Backstory
In the beginning I wished to create RetroMan, a rom manager that could have been a companion software for RetroDECK and beyond, but unfortunately the interested developers in the end got issues and weren't available for coding it (and my skill and time was not sufficient) so RetroMan died. In RetroMan I defined a lot of logics such as an hackrom support. Then I discovered a similar project, RomM, so I had a roundtable with their developers and we decided that RomM could take some concepts from RetroMan and integrate them, such as the hackrom support and the device sync. Actually these topics are under discussion.
I've created the proof-of-concept repo of the database here
Just for the record, not all romhacks support ips format patches. Some of them require xdelta or some other patches.