Take a Virtual Step Back Into Your Childhood with EmuVR

by Will Mason • December 1st, 2014

Growing up, I never really had a local arcade by where I lived. Sure, we had a movie theater that had it’s own sort of arcade, and that was cool (I fondly recall sneaking off every time my parents were waiting in the concessions line to play Area 51) but it wasn’t really an essential part of my gaming experience growing up.

Rather, for me, it was playing my Super Nintendo, my Gameboy, and the many hours spent with buddy and his SEGA Genesis in his room. It was a simpler time, a time when two friends would sit in front of an old CRT TV (complete with rabbit ears) in a room that looked like it was taken straight from your stereotypical 90s kid show,  and unplug the controller at just the wrong time so your friend would screw up that jump so that you could get your turn. Those were good times…

So when I saw NeoZeroo’s new project EmuVR, which places you in an “80s/90s bedroom” (along with a number of other cool planned environments) with multiple display types (including those wonderful old school screens) and a wide array of classic console emulation, I was sold.

Still in development, EmuVR promises to offer players a fully immersive trip down nostalgia lane, with access to SNES, Arcade, PlayStation, NES, Game Boy/Color, Game Boy Advance, Sega Genesis, Sega CD, Sega 32x, Master System, Game Gear, PC Engine, Neo-Geo Pocket, Virtual Boy, Atari 2600, Atari Lynx, WonderSwan, and Nintendo DS emulation.

Among the most impressive features for me were the pixel effects on the CRT screens (shown in the demonstration video below), being able to see those really cranked the immersion level up a notch for me.

I sat down with NeoZeroo to chat about his awesome experience, and he has some big plans for the completed product. You can see the whole discussion below:

What inspired you to take on this project?

Well, I think it’s my childhood memories from playing games, good times. Also, I think SnesVR not being available for the DK2.

Is it just you working on the project now?

Yep, just me for now. I’m not really a 3D modeling guy, though, so I’ll need some help with that.

What have been some of the challenges in developing this project?

Challenges? For Retroarch, I’m having to work for the first time with C. Pure C, not even C++. Man, that’s freaking hard to work with.

How did you manage the old school TV effect? It’s really something.

I think those CRT shaders for emulators are very neat, and took inspiration [from] this guy’s blog, he’s awesome: http://filthypants.blogspot,co.uk/2013/02/designing-large-scale-phosper.html

I’m doing some really basic shaders now, it’s still complicated to me, but I want to make them better later, or even learn how to port the Retroarch shader format to Unity, that would be perfect.

I’m mainly using pixel patterns as images, then I can simulate different types of displays, like CRT or LCD. I can also make Retroarch use its own shaders, so I can have a really good looking Gameboy screen like this for free. Look at that, pixels with shadows!

You won’t see those individual pixels up close, though, so I’ll have to add a few changes like what I’ve already done.

What features are you most excited to add?

I’m most excited about adding netplay! The ideal way should be that your friend wouldn’t need to share the download and setup the same rom file with the same name in the same folder and all that work, you’d just be able to open the game, and your friend would join in right away, without needing to send him your rom file.

You could do that exactly with GGPO and FBA, and Retroarch uses a GGPO-like netplay, so I’ll try to talk with its developers and see if that could be possible.

I’ve tried a few things, and at least managed to synchronize your games using savestate (usually you can’t do that, you have to start the game from the beginning using netplay), so that could work if I manage to send savestates between players somehow.

Do you have plans to implement any other environments?

Yes, ideally I’d want an 80s/90s bedroom and a theater, and then other interesting environments we can think of!

One guy suggested this:

Could be awesome!

Are there plans to have avatars in game, maybe even having hands on the controllers? I don’t know if you saw the keyboard demo that is on the front page, but that plus controller mapping, plus your demo would be the coolest shit ever.

Yes! But mapping the finger positions and animation to each controller will be [long] and difficult work. I saw that [though], looks awesome! I don’t have a leap motion though.

A number of people seemed to be impressed by your implementation of liberto in Unity, how were you able to do that?

Well, I haven’t actually implemented liberto inside Unity, like porting it to C# or something like that. I made some modifications to Retroarch, including a way so it could run in a hidden process alongside Unity, and also share its screen as a texture using a really nice plug in called Spout, so I can use that in any way I want inside the engine.

So, what is next for EmuVR?

Well, the next step will be adding game cartridges models (generated by scanning your rom folder of choice) with their correct labels, so you can grab them, insert into your video game console models, hook it to a TV, and turn it on.


Update: NeoZeroo has added positional sound to each speaker on each TV/projection screen, so now you can play tons of games at once without it overwhelming you with sound!

What's your reaction?