Virtual reality

From Emulation General Wiki
Jump to navigation Jump to search
Vr-nerd.png
3DNes VR

Virtual reality (VR) is a field of technology surrounding direct interactivity with virtual 3D environments. This is often achieved with a head-mounted display and some form of input tracking. Some new emulators and forks of established emulators have support for VR headsets. There are a lot of different ways the emulators use the features of VR headsets. A lot of them allow you to play the game on a big screen inside your headset. Some of them have a virtual game room where you can play on a CRT TV or arcade cabinet. Some of them allow you to play games in 3D, either by emulating the original experience of a native 3D system like Virtual Boy or by giving a new way to play a traditional 2D system like NES or GameCube in 3D.

Overview[edit]

While virtual reality continues to evolve, its integration with applications like emulators faces challenges due to disparate APIs, controls, and sensors across platforms. However, the advent of OpenXR heralds potential solutions to these fragmentation issues. Developed by Khronos, the organization behind renowned open standards like OpenGL and Vulkan, OpenXR presents an open and royalty-free standard poised to unify VR and AR hardware. Serving as an intermediary layer, OpenXR aims to streamline VR/AR development by enabling compatibility across various headsets. Successful adoption of OpenXR holds promise for simplifying VR support in mainstream emulators, potentially facilitating universal compatibility across current and future VR devices.

Emulators with VR support[edit]

Name Emulates Operating System(s) Latest version Headset(s)[N 1] VR[N 2] 3D[N 3] FLOSS Active Recommended
PC / x86
3dSen VR NES Windows 0.9.8 ($) Valve Index, HTC Vive, Oculus Rift, WindowsMR
Dolphin VR Wii, GC & N64 VC Windows 5.0-250
(2016-06-13)
HTC Vive, Oculus Rift
BigPEmu AJ-VR Windows 1.094 ?
VBjin-OVR VB Windows 3.0 Oculus Rift
RetroArch Multi-system Windows Linux 1.18.0 Valve Index, HTC Vive, Oculus Rift, WindowsMR
Emukit VR N64, PS1 Web Git ? ? TBD
Real Commodore 64 - Virtually
C64VR
VRC64
C64 Windows 1.0
2021-09-22
Oculus Rift/Rift S, WindowsMR/SteamVR using ReVive TBD
PPSSPP VR
(2015 fork)
PSP Windows 1.1.1
‎(2015-10-17)
Oculus Rift ? TBD
Citra 3DS Windows Linux Nightly Valve Index, HTC Vive, Oculus Rift, WindowsMR TBD
Dolphin Wii, GC & N64 VC Windows Linux Dev Valve Index, HTC Vive, Oculus Rift, WindowsMR TBD
RPCS3 PS3 Windows Linux FreeBSD 0.0.31 Alpha Valve Index, HTC Vive, Oculus Rift, WindowsMR TBD
Decaf VR Wii U Windows Linux Git Oculus Rift ? ?
VBA-Next 3D fork GBA Windows Linux N/A Valve Index, HTC Vive, Oculus Rift, WindowsMR ?
Standalone / Mobile / ARM
CitraVR 3DS Android 0.3.2 Oculus/Meta Quest
VirtualBoyGo VB Android 1.5.1 SideOculus/Meta Quest
1.5.1 APK
Oculus/Meta Quest, Oculus Go
PPSSPP
PPSSPP VR (2022- build)
PSP Android iOS 1.17.1
SideQuest
Oculus/Meta Quest, Pico, Google Cardboard
WinlatorXR Win Android Test APK Oculus/Meta Quest TBD
GameBov GB/C Android 0.13 SideQuest
0.13 APK
Oculus/Meta Quest, Oculus Go ~ ~ TBD
Real Commodore 64 - Virtually
C64VR
VRC64
C64 Android Quest-ver. (2021-12-28)

Go-ver. (2021-05-31)
Quest APK (2021-09-22)
APK (2020-05-20)

Oculus/Meta Quest, Oculus Go, Gear VR, possible others[N 4] TBD
ePSXe PS1 Android 2.0.16 ($) Google Cardboard ? ? TBD
FPse PS1 Android 12.1 ($) Oculus, GearVR, Google Cardboard, Homido, etc. ? ? TBD
GVRgb GB/C Android N/A Oculus, GearVR, Google Cardboard, Homido, etc. ? ? ? ?
RetroArch Multi-system Android 1.18.0 ? ? TBD
Dolphin Wii, GC & N64 VC Android Dev Google Cardboard ? TBD
VR MAME Arcade Android 1.0.1 Google Cardboard ? ? ? TBD
VR VICE C64 Android 1.0.3 Google Cardboard ? ? TBD
GearboyVR GB/C Android 1.0 Oculus Go ? ? TBD
NES SPACE NES Android 2020.1023 ($) Oculus/Meta Quest
  1. These are the officially supported headsets for an emulator. If an emulator only support Oculus/Meta headsets then you can try using ReVive, which let's you play Oculus/Meta-exclusive software on other headsets such as HTC Vive or Valve Index.
  2. Emulators with VR support have support for VR functions such as head tracking, first person viewing, VR controller input methods, etc.
  3. Emulators with 3D support can output the video in 3D, this can be used to view the game in 3D with a VR headset. If an emulator only supports 3D and doesn't support VR, you can try using Bigscreen (or a similar application) on PC and enable SBS3D mode to show SBS content in your VR headset.
  4. Real Commodore 64 might also work on DayDream and Cardboard. Requires 3DoF controller.

Comparison[edit]

3dSen VR
Converts two dimensional NES games to 3D and allows you to rotate and change the viewing angle. Was previously know as 3DNes VR, name was changed for release on Steam and itch.io.
Dolphin
The standard Dolphin emulator has long supported Stereoscopic 3D video output, offering various modes including Side-by-Side, anaglyph, top-and-bottom, 3D Vision output, and passive stereoscopic displays. For VR headset use, opt for side-by-side output. On PC, platforms like Bigscreen enable SBS3D mode for seamless integration with VR headsets, while Android users can enjoy immediate compatibility. Although an OpenXR implementation for full VR support was in progress from October 2019, it wasn't ultimately merged; more details can be found in this pull request. In 2024, a fresh attempt to implement OpenXR support is underway in this pull request, this time focusing on Meta Quest support.
Dolphin VR
A legacy VR fork maintained by CarlKenner (also known as 2EyeGuy), Dolphin VR offers immersive experiences for 3D games with accurate life-size scaling, full FOV, a 3D HUD, independent aiming, and free look capabilities. It also supports playing 2D games on a virtual screen with correct angles, sometimes even in 3D. Compatible with Wii, GameCube, and Nintendo 64 Virtual Console games, Dolphin VR extends its functionality with ROM hacks, such as the Ocarina of Time romhack. For detailed setup instructions and further information, consult the Dolphin VR Quick Setup Guide, Dolphin_VR subreddit, and the compatibility spreadsheet.
PPSSPP
Offers VR support on ARM platforms, including Android, iOS, and standalone devices like Meta Quest and Pico. PC VR support is anticipated for future releases.
PPSSPP VR (2022- build)
This official VR build is tailored for standalone headsets such as Quest and Pico.
PPSSPP VR (2015 fork)
An old VR fork for Oculus Rift by CarlKenner (AKA 2EyeGuy). PPSSPP VR is a PlayStation Portable emulator for the Oculus Rift that lets you actually be inside PSP games. You are not playing on a virtual handheld or screen, you are inside the virtual world. Important: do not resize the mirror window while in VR mode! Otherwise the GUI will stop working. It will still render at full resolution in the Rift. Don't forget to set the internal resolution to whatever you want, 6x works well. Check out this video to see what it's like. Compatibility spreadsheet.
Citra
Regular Citra integrated support for side-by-side Stereoscopic 3D on Jun 18, 2018.[1][2] You can enable it by heading to Emulation → Configure… → Graphics → Layout, ticking the Enable Stereoscopic 3D checkbox, and changing the screen layout to Side by Side. With this setup, users can experience games in 3D on various platforms such as VR headsets, 3D TVs, monitors, or projectors. To view SBS content with a VR headset, applications like Bigscreen and enable SBS3D mode to show SBS content in your VR headset.
CitraVR
a VR fork designed for playing in 3D on Meta Quest devices. It is a GPL-licensed, engineless OpenXR application, allowing for compatibility with Meta Quest 2, Meta Quest Pro, and Meta Quest 3. The project focuses on stereoscopic rendering, broad controller support, and features a large, movable/resizable screen. CitraVR is fully independent of the Meta SDK and is actively being improved over time. For installation instructions, game compatibility, known issues, and support, visit the official CitraVR GitHub page.
VBjin-OVR
Has a Head Locked mode where the screen is fixed in view and head tracking is ignored and a Immersive mode where the screen is placed in the world and head tracking is used to allow you to look around. This mode should be considered experimental and suffers from artifacts inherent to the Virtual Boy's implementation.
RetroArch
Can output side-by-side video for 3D games. This can be used to view the game in 3D with a VR headset, 3D TV, 3D projector or Android phone with cardboard. With these glsl-shaders it is possible to play both anaglyph systems (like Virtual Boy) and active shutter stereoscopic 3D games (like Famicom 3D System or SegaScope 3-D). For PC, use something like Bigscreen and enable SBS3D mode to show SBS content in your VR headset, for Android it should work right away.
Emukit VR
Web based N64 & PSX emulation in 3D.
Decaf VR
A VR fork by CarlKenner (AKA 2EyeGuy). Abadoned. It's just a 3m wide TV floating in the black void 1.5m in front of you (and another one behind you), with a correctly-sized gamepad screen held in your left hand.
RPCS3
Added support for PlayStation 3D on March 7, 2020[3]. Initially only for Anaglyph output but stereoscopic will be added later. Use something like Bigscreen and enable SBS3D mode to show SBS content in your VR headset.

VR game room simulations[edit]

EmuVR rooms

A VR room simulation provides a virtual environment; within that environment there are various home media, entertainment and game content that the user can interact with as they would a real-life.

Name Emulates Operating System(s) Latest version Type Headset(s) Netplay FLOSS Active Recommended
EmuVR Multi-system
Libretro
Windows 1.0.11
(2022-12-24)
Customizable room Oculus Rift, Oculus Link (Quest with PCVR), Valve Index, HTC Vive, WindowsMR, and your 2D monitor
AGE of Joy Multi-system Android 0.4.0
itch.io, SideQuest, GitHub
Retro arcade gallery Oculus/Meta Quest 2
New Retro Arcade: Neon Multi-system Windows Steam ($) 80's arcade Valve Index, HTC Vive, Oculus Rift
SEGA Mega Drive and Genesis Classics Mega Drive/
Genesis
Windows Linux Steam ($) 90's game room Valve Index, HTC Vive, Oculus Rift
Tower Unite Multi-system Windows Steam ($) All kind of game room Valve Index ?
RetroVR Multi-system Android N/A 90's game room Oculus/Meta Quest, Oculus Go

Comparison[edit]

EmuVR
Based on Unity engine (and uses/requires specific RetroArch version, 1.7.5 at the moment) but it doesn't require VR headset and controller. Step into your customizable virtual bedroom with EmuVR and experience your collection just like in real life: Pick up, open case/box and insert discs, tapes, floppy disks, casettes or cartridges into your chosen system with their artworks (Box covers, CD/DVD covers, cartridge/VHS labels etc)[1][2]. Connect virtual cables, power on your devices, and enjoy your games, music or movies on a simulated environment. Plug your virtual computer into the simulated display, fire up your handheld, or even feed a virtual coin into an arcade machine or pinball table. Relax with a virtual magazine, book, manual or even box games and card games with your friends thanks to netplay support so you can enjoy your virtual room with other people. Besides all of these, the latest update (v1.0.12) introduces exciting "User Generated Content" (UGC) support, which means you can now create and enjoy custom assets and mods created by the community.[3][4][5]
Limitations;
  • It has Screen Space Reflections but Ray Tracing do NOT supported at the moment. You can try "Screen-Space Ray Traced Global Illumination" shader using ReShade if you have a powerful GPU.[6][7]
  • Visual achievement notifications are not currently displayed within EmuVR despite RetroAchievements integration via RetroArch. However, achievements are still unlocked and tracked through RetroArch while using EmuVR (according to some user reports it doesn't unlock any achievements). Future development might enable on-screen notifications within EmuVR[8].
  • As mentioned above, due to its reliance on RetroArch, EmuVR's simulated system support is currently limited to the libretro cores. This means that any limitations inherent to these cores (such as limited system support OR hardware feature emulation capabilities compared to standalone versions of those cores) might also be present within EmuVR. Such great example for this is media playback capabilities: while movies/videos supported through retroarch's ffmpeg/ffplay core[9][10], due to ffplay's limited format support there is no optical disc image or raw disc image support and there is no interactive media content support (such as menu support or FMV/interactive movie games). Another example for this limitation is libretro's FFmpeg core lack of support for .m3u[11], so there is no support for playlists either[12]. Fortunately, you can bypass these limitations just by using the WindowCast libretro core, though it requires additional setup such as using capture software like OBS, obviously this can be quite complex and require extra effort[13]. Also you can use some of the libretro cores for optical media ability.
  • Check it out EmuVR's ugc-share discord channel for various content/mods and assets created by the community. Please note that UGC support is currently in preview state[14][15], you need WIGU (which is based on MelonLoader) for injecting custom assets to Unity engine-based EmuVR.
  • Keep in mind that there is already a frequently requested features page for EmuVR.
New Retro Arcade Neon
Virtual 80's/early 90's arcade. You can walk around, play arcade machines and other games. Uses libretro. You have to configure the arcade machines by yourself, there are tools to make it easier such as the: Arcade Manager Add-on which auto-downloads and fully set ups cabinet art and attract videos for an unlimited number of ROMs and even randomize the cabinets of your choice every time you visit the Arcade, or you can download pre-made packs.
SEGA Mega Drive and Genesis Classics
Sega's official emulator for Genesis games. Has a virtual 90's gamers bedroom. Look at game covers and play them on your CRT. Has mod support, it's possible to play your own ROMs and to play the official ROMs in other emulators.
Tower Unite
Tower Unite is a community-based virtual world party game with online games.It features libretro emulation support,allowing for emulators to be played within Tower Unite's Plaza and Condos.
Currently the libretro content has two sections:
  • The Plaza section where you can run supported cores anytime,anywhere using equipped handheld styled libretro items.Tower Unite does not restrict cores from using specific libretro items, so it is possible to run all supported cores in handheld models, including arcade, console.
  • The Codons section where you can bulid your personalize game room by placing various arcade, console, and computer styled libretro items and loading them with games.This setup can be shared with Tower Unite's online visitors(But not the handheld model's settings, which are personally exclusive). In this mode, your Condos runs like a configured libretro front-end as long as the same rom file exists locally for the visitor.

Resources[edit]

References[edit]