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 33 forks source link

Is this similar in principle to Proton? #5

Closed ValhalQoholic closed 2 years ago

ValhalQoholic commented 2 years ago

I understand that vita2hos is not emulation since both the switch and vita have compatible underlying microarchitectures. Would you say vita2hos and Proton work the same way in principle?

xerpi commented 2 years ago

Yes, this is exactly the same mechanism Wine (and Proton) uses. Not only Wine uses this technique, but also Skyline and the Android "ports" to the PSVita.

Nolij commented 2 years ago

Could this same approach be used for 3DS games on the Switch? My understanding is that the 3DS not only also uses an ARM CPU but also that the 3DS OS is a predecessor to HOS. Considering that it should potentially be possible for it to be even simpler than this, no?

Masamune3210 commented 2 years ago

Problem with 3DS is its 2 CPU's at once and not just one, so it incurs a lot of extra overhead that a normally designed system like the Vita where it only has one CPU and one GPU that matters in any normal case. Plus, the GPU in the 3DS is atypical at best to the point that even PC has issues with it still to this day

Nolij commented 2 years ago

Problem with 3DS is its 2 CPU's at once and not just one, so it incurs a lot of extra overhead that a normally designed system like the Vita where it only has one CPU and one GPU that matters in any normal case. Plus, the GPU in the 3DS is atypical at best to the point that even PC has issues with it still to this day

Funny that a Sony console is more similar to the Switch than the 3DS was. Still, I'm hopeful someone can pull it off. I think it would still be faster than emulation, but maybe I'm wrong. Not familiar with the internals of either device enough to say anything with 100% certainty.

Dredok commented 2 years ago

The NDS direct hardware can't be done, the GPU code can't be transpiled since it's a propietary GPU and doesn't support OpenGL ES.

El lun, 7 mar 2022 16:36, Nolij @.***> escribió:

Problem with 3DS is its 2 CPU's at once and not just one, so it incurs a lot of extra overhead that a normally designed system like the Vita where it only has one CPU and one GPU that matters in any normal case. Plus, the GPU in the 3DS is atypical at best to the point that even PC has issues with it still to this day

Funny that a Sony console is more similar to the Switch than the 3DS was. Still, I'm hopeful someone can pull it off. I think it would still be faster than emulation, but maybe I'm wrong. Not familiar with the internals of either device enough to say anything with 100% certainty.

— Reply to this email directly, view it on GitHub https://github.com/xerpi/vita2hos/issues/5#issuecomment-1060819929, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOPMJKEXDQXEA4UAJJGCSLU6YPAJANCNFSM5QBN5IXA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Masamune3210 commented 2 years ago

the 3ds has two seperate cpu's with firmware running on each of them that have to run in lockstep and a GPU that seemingly is in a race to violate every standard possible, emulation really is the best bet unfortunately

Masamune3210 commented 2 years ago

The NDS direct hardware can't be done, the GPU code can't be transpiled since it's a propietary GPU and doesn't support OpenGL ES. El lun, 7 mar 2022 16:36, Nolij @.> escribió: Problem with 3DS is its 2 CPU's at once and not just one, so it incurs a lot of extra overhead that a normally designed system like the Vita where it only has one CPU and one GPU that matters in any normal case. Plus, the GPU in the 3DS is atypical at best to the point that even PC has issues with it still to this day Funny that a Sony console is more similar to the Switch than the 3DS was. Still, I'm hopeful someone can pull it off. I think it would still be faster than emulation, but maybe I'm wrong. Not familiar with the internals of either device enough to say anything with 100% certainty. — Reply to this email directly, view it on GitHub <#5 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOPMJKEXDQXEA4UAJJGCSLU6YPAJANCNFSM5QBN5IXA . You are receiving this because you are subscribed to this thread.Message ID: @.>

the ds is weak enough that brute force is usually the best result anyway

Nolij commented 2 years ago

the 3ds has two seperate cpu's with firmware running on each of them that have to run in lockstep and a GPU that seemingly is in a race to violate every standard possible, emulation really is the best bet unfortunately

Gotta love Nintendo. Guess I was wrong.

Masamune3210 commented 2 years ago

Nintendo loves their esoteric hardware, the cpu in the og Gameboy is a Frankenstein's monster of two CPU arch's mixed together

mspykerez commented 2 years ago

Wait a sec.. can this method also be used to run PS4/5 and Xbox games on PC since AFIK these consoles are based on AMD hardware that is also used to some degree on some PC builds?

Masamune3210 commented 2 years ago

The ps4 is insanely more complex than a normal PC hardware wise, plus it is about as like a PC as a turnup is. The Xbox is close, even runs windows, but A we cant get to any files or games as they are encrypted and there is no public exploit, and B the version of Windows for the Xbox is gigantically different than the one you use on your PC and both the os and the games expect to be running under a hardware hypervisor specifically designed for the purpose

Nolij commented 2 years ago

Probably a better question than the past few: what other consoles might be candidates for an approach similar to this? Obviously consoles like the Wii are out due to having an entirely different CPU architecture, but surely there are other consoles than just the PS Vita that this approach could work for, right?

Masamune3210 commented 2 years ago

Unfortunately rarely do things share arch's and at the same time be simple enough to do this with. Consoles tend to jump all around until recently where they have settled for now on AMD64 and ARM