Virtual reality
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.
Contents
Overview
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
Name | Emulates | Platoform(s) | Latest version | Headset(s)[N 1] | VR[N 2] | 3D[N 3] | License | Active | Recommended |
---|---|---|---|---|---|---|---|---|---|
PC / x86 | |||||||||
3dSen VR | NES | 0.9.11 ($) | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✓ | ✓ | Proprietary | ✓ | ✓ | |
Dolphin VR | Wii, GC & N64 VC | 5.0-250 (2016-06-13) |
HTC Vive, Oculus Rift | ✓ | ✓ | GPLv2 (Copyleft) | ✗ | ✓ | |
BigPEmu | AJ-VR | 1.15 | ? | ✓ | ✓ | Proprietary | ✓ | ✓ | |
VBjin-OVR | VB | 3.0 | Oculus Rift | ✓ | ✓ | GPLv2 (Copyleft) | ✗ | ✓ | |
RetroArch | Multi-system | 1.19.1 | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✗ | ✓ | GPLv3 (Copyleft) | ✓ | ✓ | |
Visual Pinball[N 4] | Pinball | Git | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✓ | ✓ | MAME license (Non-commercial[1] | ✓ | ~ | |
Emukit VR | N64, PS1 | Git | ? | ? | ✓ | MIT (Permissive) | ✓ | TBD | |
RPCS3 | PS3 | 0.0.33 Alpha | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✗ | ✓ | GPLv2 (Copyleft) | ✓ | TBD | |
Dolphin | Wii, GC & N64 VC | Dev | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✗ | ✓ | GPLv2 (Copyleft) | ✓ | TBD | |
Real Commodore 64 - Virtually C64VR VRC64 |
C64 | 1.0 2021-09-22 |
Oculus Rift/Rift S, WindowsMR/SteamVR using ReVive | ✓ | ✓ | Proprietary | ✗ | TBD | |
PPSSPP VR (2015 fork) |
PSP | 1.1.1 (2015-10-17) |
Oculus Rift | ✓ | ✓ | ? | ✗ | TBD | |
Citra | 3DS | Nightly | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✗ | ✓ | GPLv2 (Copyleft) | ✗ | TBD | |
Decaf VR | Wii U | Git | Oculus Rift | ? | ? | GPLv3 (Copyleft) | ✗ | ✗ | |
VBA-Next 3D fork | GBA | N/A | Valve Index, HTC Vive, Oculus Rift, WindowsMR | ✗ | ✓ | ? | ✗ | ✗ | |
Standalone / Mobile / ARM | |||||||||
CitraVR | 3DS | 0.4.2 | Oculus/Meta Quest | ✓ | ✓ | GPLv2 (Copyleft) | ✓ | ✓ | |
VirtualBoyGo | VB | 1.5.1 SideOculus/Meta Quest 1.5.1 APK |
Oculus/Meta Quest, Oculus Go | ✓ | ✓ | GPLv3 (Copyleft) | ✓ | ✓ | |
PPSSPP PPSSPP VR (2022- build) |
PSP | 1.17.1 SideQuest |
Oculus/Meta Quest, Pico, Google Cardboard | ✓ | ✓ | GPLv2 (Copyleft) | ✓ | ✓ | |
WinlatorXR | Win | Test APK | Oculus/Meta Quest | ✓ | ✓ | ? | ✓ | TBD | |
RetroArch | Multi-system | 1.19.1 | ? | ? | ✓ | GPLv3 (Copyleft) | ✓ | TBD | |
Dolphin | Wii, GC & N64 VC | 2409 | Google Cardboard | ? | ✓ | GPLv2 (Copyleft) | ✓ | TBD | |
ePSXe | PS1 | 2.0.17 ($) | Google Cardboard | ? | ? | Proprietary | ✓ | TBD | |
FPse | PS1 | 12.1 ($) | Oculus, GearVR, Google Cardboard, Homido, etc. | ? | ? | Proprietary | ✓ | TBD | |
GameBov | GB/C | 0.13 SideQuest 0.13 APK |
Oculus/Meta Quest, Oculus Go | ~ | ~ | Proprietary | ✗ | TBD | |
Real Commodore 64 - Virtually C64VR VRC64 |
C64 | Quest-ver. (2021-12-28) Go-ver. (2021-05-31) |
Oculus/Meta Quest, Oculus Go, Gear VR, possible others[N 5] | ✓ | ✓ | Proprietary | ✗ | TBD | |
VR MAME | Arcade | 1.0.1 | Google Cardboard | ? | ? | ? | ✗ | TBD | |
VR VICE | C64 | 1.0.3 | Google Cardboard | ? | ? | GPLv2 (Copyleft) | ✗ | TBD | |
GearboyVR | GB/C | 1.0 | Oculus Go | ? | ? | GPLv3 (Copyleft) | ✗ | TBD | |
GVRgb | GB/C | N/A | Oculus, GearVR, Google Cardboard, Homido, etc. | ? | ? | ? | ? | ✗ | |
NES SPACE | NES | 2020.1023 ($) | Oculus/Meta Quest | ✓ | ✗ | Proprietary | ✗ | ✗ |
- ↑ 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.
- ↑ Emulators with VR support have support for VR functions such as head tracking, first person viewing, VR controller input methods, etc.
- ↑ 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.
- ↑ Starting in version 10.8.0.
- ↑ Real Commodore 64 might also work on DayDream and Cardboard. Requires 3DoF controller.
Comparison
- 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.[2][3] You can enable it by heading to
Emulation → Configure… → Graphics → Layout
, ticking theEnable Stereoscopic 3D
checkbox, and changing the screen layout toSide 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.
- Visual Pinball
- Can output stereoscopic 3D in a variety of ways; this can be enabled by going to
Preferences → Video/Graphics Options → 3D Stereo Output
. Previously a separate fork, VR support was merged into Visual Pinball's main branch around version 10.8.0. UseVPinballX_GL.exe
orVPinballX_GL64.exe
to enable VR support. All tables will work in VR, but may need to be modified to add cosmetic decorations such as cabinets, backglasses, and environments. Some tables require manually editing their internal script file to enable these VR decorations (typically by setting the variableVRRoom
to a non-zero value), while others can automatically detect and enable them on the fly.
- Emukit VR
- Web based N64 & PS1 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[4]. 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.
- There is a list on Wikipedia with games that have 3D support. Also see PlayStation Blog for Updated List of All 3D Games and Movies for PS3.
VR game room simulations
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 | Platform(s) | Latest version | Type | Headset(s) | Netplay | License | Active | Recommended |
---|---|---|---|---|---|---|---|---|---|
EmuVR | Multi-system Libretro |
1.0.11 (2022-12-24) |
Customizable room | Oculus Rift, Oculus Link (Quest with PCVR), Valve Index, HTC Vive, WindowsMR, and your 2D monitor | ✓ | Proprietary | ✓ | ✓ | |
AGE of Joy | Multi-system | 0.4.0 itch.io, SideQuest, GitHub |
Retro arcade gallery | Oculus/Meta Quest 2 | ✗ | GPLv3 (Copyleft) | ✓ | ✓ | |
Tower Unite | Multi-system | Steam ($) | All kind of game room | Valve Index | ? | Proprietary | ✓ | ✓ | |
New Retro Arcade: Neon | Multi-system | Steam ($) | 80's arcade | Valve Index, HTC Vive, Oculus Rift | ✓ | Proprietary | ✗ | ~ | |
SEGA Mega Drive and Genesis Classics | Mega Drive/ Genesis |
Steam ($) | 90's game room | Valve Index, HTC Vive, Oculus Rift | ✓ | Proprietary | ✗ | ~ | |
RetroVR | Multi-system | N/A | 90's game room | Oculus/Meta Quest, Oculus Go | ✗ | Proprietary | ✗ | ✗ |
Comparison
- 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 display 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, replicating room experience. 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]
- 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.[5][6]
- 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[7].
- 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[8][9], 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), but thankfully you can use some of the other libretro cores for that such as puae_libretro core for CDRWIN VCD images. Another example for this limitation is libretro's FFmpeg core lack of support for .m3u[10], so there is no support for playlists either[11]. 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[12].
- 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[13][14], 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
- r/Emulationonquest/ - A subreddit for discussion of standalone emulators and ports, for Meta/ Oculus Quest 1/2/3 and Pro in Virtual Reality.
- r/Dolphin_VR/ - Subreddit for Dolphin VR.
- r/CitraVR/ - Subreddit for CitraVR.
- YouTube: Emulation on Quest 2 - 'Play almost ANY RETRO games on the QUEST 2! // Quest 2 Emulation is CRAZY!' by Beardo Benjo.