gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
770 stars 177 forks source link

[Feature Request] Stereoscopic 3D/OpenVR #2080

Open BiatuAutMiahn opened 5 years ago

BiatuAutMiahn commented 5 years ago

Hello recently I have looked into exokit's emukit. The POC is rather interesting, however the core that was used for emulation was rather buggy, I was curious to see if it would be possible to implement SBS 3D mode or even a full immersive experience with OpenVR into this plugin?

gonetz commented 5 years ago

There was an attempt to do it: https://github.com/gonetz/GLideN64/pull/1779

The problem seems to be really hard.

ytrezq commented 4 years ago

@BiatuAutMiahn as an alternative, you can use Dolphin emu with the official virtual console (you can patch the elf executables if you want to use games never sold for emulation). It currently works perfectly and supports hdmi3d and the official virtual console directly natively do things not supportted by GLideN64 (like video resizing instead of cropping).

BiatuAutMiahn commented 4 years ago

I tried doing that with https://github.com/CarlKenner/dolphin, and modifying a VC game with perfect dark, and others...but it never booted up

ytrezq commented 4 years ago

I tried doing that with https://github.com/CarlKenner/dolphin, and modifying a VC game with perfect dark, and others...but it never booted on

@BiatuAutMiahn what you did use isn t the official website nor the official Dolphin repository https://dolphin-emu.org/download/. Supports for the official stereoscopy standard over hdmi using quad bufferring is a recent addition and requires a development build.

Of course, the vc isn t a general purpose emulator. Each games comes with their own emulator. And some N64 vc games like 1080 requires using the Powerpc cache. Something Dolphin only supports in interpreter mode, not jit mode. Some N64 vc emulator caps the speed at the one of the original hardware (that way you can notice Zelda mm doesn t exceeds 15 fps as it did on the original N64 console), while other don t (which is how f Zero can produce far more fps than on the original hardware especially if you overclock the Wii cpu)

The target rom needs to match settings of the initial rom (same microcode same rom size cartridge save system on Flash or batterry backed). So if you don t have all the N64 vc games (unlike me), you ll be somewhat limited.

Otherwise, The wii uses big endian elf executables. Please take care to preserve the format. The rom should lie in .rodata.

BiatuAutMiahn commented 4 years ago

@ytrezq, I am aware that the version of dolphin is unofficial, and well behind dolphin-emu's master, The only benefit of using that version was the SteamVR implementation.

Thanks for the intel on the vc emulation, I'll give it another go some time down the line, ty.

ytrezq commented 4 years ago

@BiatuAutMiahn so do you mean Steamvr is how you get the games? In my case, I got all of them from the Wii shop chanel.

Only 2 years ago, the amd s jit of dolphin managed poorly the caching of the vc jit (and this is still the case on aarch64). I would also say that the inability to use the feature of 3d displays and helmets pretty much defeat the increase in electricity consumption regarding the initial goal (as the fake non native way is poor).

I never tried it on all games, but I m thinking it won t work well with titles emulating the lle rsp.

BiatuAutMiahn commented 4 years ago

@BiatuAutMiahn so do you mean Steamvr is how you get the games?

No, Carl's dolphin has built in support for SteamVR and other other APIs as well as some patches that help with the stereoscopic rendering.

In my case, I got all of them from the Wii shop chanel.

Yes, I have dumped my NAND with some of the games I had.

Only 2 years ago, the amd s jit of dolphin managed poorly the caching of the vc jit (and this is still the case on aarch64). I would also say that the inability to use the feature of 3d displays and helmets pretty much defeat the increase in electricity consumption regarding the initial goal (as the fake non native way is poor).

I never tried it on all games, but I m thinking it won t work well with titles emulating the lle rsp.

Are you referring to mobile platforms?

ytrezq commented 4 years ago

Then if the intent is stereoscopic rendering, you can just use the development official version. The setting is called hdmi3d but it should work with all cases requiring quad bufferring.

Yes I was also reffering to the Android version.

BiatuAutMiahn commented 4 years ago

Right however, stereoscopic has been in dolphin for a while, but immersive mode is what I'm after, like 180 3D SBS. Carl's implementation does this, along with head tracking.

Ah, I am targeting Windows

ytrezq commented 4 years ago

@BiatuAutMiahn correct, however the hdmi3d setting you re looking for is pretty recent.

It should work too for what you intend to do.