xerpi / vita2hos

[WIP] PlayStation Vita to Horizon OS (Nintendo Switch OS) translation layer
https://discord.gg/Z9kAsBqkbx
GNU General Public License v2.0
1.11k stars 32 forks source link

Suggestion: Wrappers #25

Open narrowcobra2119 opened 2 years ago

narrowcobra2119 commented 2 years ago

As the title indicates, a pretty useful way of testing software compatibility an different options inside the compatibility layer that vita2hos is, it would be easier to implement wrappers like wine does on macOS or Linux, contain the Vita app inside a custom configured self contained NSP or NRO whose configs would be totally user configurable, that would also help to test compatibility in a per app basis…

TSRBerry commented 2 years ago

Could you elaborate? What is your suggestion supposed to mean? Without a description this could mean anything.

narrowcobra2119 commented 2 years ago

What I am suggesting is that Vita2Hos could work more like wineskin or wineblottler.

Winebottler and wineskin work in similar ways, they both work by creating wrappers (apps) for the host OS to interact with.

at first the wrappers are created blank there's nothing inside other than the wine engine you picked for your app, you use that blank wrapper to install an app onto it and to apply specific settings (wine version, windows version to fake, libraries needed, screen and ram limitations, window server options, debugging code, etc.), as well as performing test runs... the wrappers are self contained and not reliant on the main app to be modified, they have a version of the engine inside, as well as all the settings applied for that specific app.

how that would work on the Vita2Hos?

There would need to be an app like Wineskin that lets you install a vita pkg into a blank NRO/NSP, once installed, you can apply specific settings to It and test it, the app will be like any Nintendo Switch app, and you won't need to fight against global settings just because one of your games doesn't like a particular setting that all the others do, and an update to the main app won't break the game, it could happen that an update breaks some games, that is solved with the wrapper itself which can work with an older version of the engine, and was created with a specific version of the wrapper, kinda like how Nintendo Wii apps worked, every nintendo Wii game worked by calling a specific version of the OS, which the Wii had stored inside.

the benefit of this implementation is that once the app that creates the wrappers is released you only have to publish new versions of the engine used to create the apps, the main app will let the user pick a wrapper version for the pkg to install, an icon and a name for the app, as well as the settings. You could share the app and it would work in other home-brewed Switches because it is self contained and doesn't need the main app to work.

How would people know which settings to use for which app? Creating a page (GitHub) where users or devs could publish their test results with which combinations, eventually with the evolution of the engine and the combination of settings, there will appear a "Best Configuration" for the app, and there will always be someone looking for a better set of configs, in a way will keep the community active.

please, let me know what you think!

TSRBerry commented 2 years ago

Hmm I'm not sure if this will be necessary for vita2hos, but we'll see once it matures a bit more. There is one thing I can tell you for sure, installable NSPs are not happening, since that's considered piracy and won't be supported.

I can't really speak much to your other points as of now, but I want to leave your suggestions up, until we know more :D

Volcan4436 commented 2 years ago

i agree with the turning normal vita games as a NSP but turning a homebrew game / app into an NSP would be fine in my opinion

TSRBerry commented 2 years ago

It's not. Nintendo detects these installs and will ban you. The switch homebrew scene agrees that homebrew should be executed via the homebrew menu and not from anywhere else. Installable nsp count as piracy regardless of the contents, which is why this will never happen.