Phalcode / gamevault-app

Frontend for the self-hosted gaming platform for drm-free games
https://gamevau.lt
Other
386 stars 16 forks source link

ROM / Emulation Support #269

Open Alfagun74 opened 1 year ago

Alfagun74 commented 1 year ago

Exploring GameVault as a Retro Game Management and Emulation Solution

Background: Our community is home to numerous retro game enthusiasts, and we're considering the possibility of integrating GameVault as both a ROM manager and an emulator.

Current Status: At present, there is no detailed plan in place, and some preliminary research is needed to address this endeavor.

To-Do List:

ShadowPeo commented 1 year ago

Perhaps do not need to re-invent the wheel here. Integration might be the name of the game

https://github.com/linuxserver/emulatorjs https://hub.docker.com/r/linuxserver/emulatorjs

Alfagun74 commented 1 year ago

@ShadowPeo ticket literally says

Explore the integration of an emulator, such as emulatorjs, into GameVault.

ShadowPeo commented 1 year ago

@Alfagun74 , Huh, so it does, Totally missed it

wiseoxejah commented 8 months ago

Would you also consider the option for emulator distribution rather than just server side emulation? I'd love to be able to upload emulator packages independently. Maybe a text file within the archive could specify the location for roms. Then you'd be able to download roms and have them moved into the specified folder similar to (W_P).

Feel free to let me know if this is a terrible idea.

MoSattler commented 4 months ago

Would you also consider the option for emulator distribution rather than just server side emulation?

Personally I am looking for the "Steam-for-Roms" experience. As in, have my devices (RetroPie, RetroArch) being able to download the games from my self hosted backend, and then just play them. Extra points for sync of safe games!

jedinjapan commented 2 weeks ago

To echo some of the comments here: The emulatorjs project covers the goal of server-side in-browser emulation just fine on its own, and has multiple other deployments. Integrating that project directly into Gamevault is just duct taping two different projects together and, in my opinion, offers little value to what is supposed to be a library management and deployment app. This in fact would drive me away from using Gamevault to manage things, as I already have an emulatorjs instance setup and this only serves to complicate that instance while also diverting the focus of this tool, and ensuring it will never properly manage emulators.

It distracts from the idea that this is supposed to be a library resource for those connecting to it. Similar to PC titles, consider associating ROMs with their emulator, and using Gamevault to manage and distribute a ROM/Emulator pair based on a script that can place them in the appropriate folder, and skip the emulator deployment if it is detected. This would be absolutely a game changer in terms of simplicity for non-technical family members. This could allow a user to host their Gamevault instance of ROMs in the same manner they host their PC titles, and easily setup single titles on new systems, including allowing deployment of different emulators based on the platform accessing the vault, all without migrating the entire ROM collection or without the latency/lag or limitations of in-browser emulation. This would make instant co-op in emulated titles infinitely easier when one has guests.

Often times with newer emulation titles need specific tweaks and setups to function, and using Gamevault to make these into "packages" for your family could make the process painless.

Playnite handles Emulators and ROMs separately from standard applications for this same reason, and being able to connect the two platforms and use Gamevault to remote install your emulation collection from Playnite with a few clicks would be amazing.

Alfagun74 commented 2 weeks ago

@jedinjapan Thanks for the feedback! To clarify: We currently plan that EmulatorJS is just an optional add-on/feature for the client and not the main focus in this milestone. It’s a way we want to offer to emulate without any extra software, but you’re not required to use it.

It is just a starting point, and we will definitely be exploring deeper integration with existing emulators. We may even monetize the EmulatorJS part, while keeping external emulator integrations free.

I think that's a good compromise to offer our GameVault+ users more features, without taking away too much from the free users, to keep the project alive and all that.