A downloadable game for Windows

Download NowName your own price

Portable Emulator is the second iteration on a new type of SteamVR overlay that displays 3D objects and scenes within VR, allowing users to interact with objects on another dimension, on top of their normal VR experience. 

This game requires Retroarch to function, instructions will be provided in video form to make using this app as easy as possible. 

Very rough instructional video here: Portable Emulator Instruction Video - YouTube (I'm not very good at making nice videos but the instructions are all there)
IMPORTANT UPDATE TO VIDEO: Ignore the latter half about control bindings, as that is all done automatically now!

TO ENABLE AUTOMATIC CONTROL BLOCKING: You need to "enable global input from overlays" (SteamVR > Settings > show Advanced Settings > Developer > 'Enable global input from overlays')

***NOTE: It is recommended that users have at least a somewhat-capable VR rig, as this is essentially another game to run at the same time.***

Play your favorite retro games while chatting with friends, enjoying the immersive scenery of modern video gaming, or as a quick entertainment piece, Portable Emulator is a great fit for all of these!

Key Features:

  • RAM saving for natural game saves
  • One save state slot for easy use of save-states
  • Control with either a virtual arcade stick, or disable it to control the emulator with your VR controller inputs (inputs can be rebound)
  • Reposition and resize the emulator to any location for maximum convenience, as well as options for fine-tuning comfort
  • Simple interaction with all elements using one configurable grip button
  • Compatible with retro game consoles using Retroarch's "Core" system (List below).
  • Automatic control blocking, play your games without your controls going through to the main VR game!
  • Customizeable textures for the console! Simple navigate to <the Game Directory>/PortableEmulator_Data/StreamingAssets/PortableEmulator.png and change that to your liking!
  • You can alter the screen aspect ratio of the portable emulator screen! Simply  modify the height/width of the file (in the same directory as above) titled "AspectModifier.png". Note: it's a percentage based aspect modifier, so if you scale it 50% on one dimension, the screen will be 50% shorter on that dimension. The axis of the image are labeled on what they effect, as the screen texture is rotated 90 degrees on playback.

Recommended Retroarch Cores

More cores may work, but these have been tested to be the most functional so far

  • Sega Genesis/Megadrive: Blastem (blastem libretro)
  • NES: Quicknes (quicknes_libretro)
  • SNES: Snes9X (snes9x_libretro)
  • Gameboy advance: virtual boy advance - next (vba_next_libretro)
  • Gameboy/Color: Gearboy (gearboy_libretro)
  • Atari 2600: Stella (stella2014_libretro)


Want to contribute to the development? Know a lot about retroarch and coding for it? The github is located here, let me know if you manage to get anything working that I was unable to piece together!

StatusPrototype
PlatformsWindows
Rating
Rated 3.0 out of 5 stars
(2 total ratings)
AuthorBarShiftGames
GenreSimulation
TagsEmulator, Pixel Art, Retro, Singleplayer, Virtual Reality (VR)
Average sessionA few hours
LanguagesEnglish
InputsHTC Vive, Valve Index

Download

Download NowName your own price

Click download now to get access to the following files:

PortableEmulator.zip 24 MB

Development log

Comments

Log in with itch.io to leave a comment.

There is a bug where no matter what I do, both P1 and P2 are controlled

(+1)

Any chance of quest port?

(+1)

I agree, please make it happen!

i was wondering does this work with htc vive?

(+1)

Yes, as long as you're using it with SteamVR

what if they make a portable yt viewer 

that would be desktop+ (free) or ovr toolkit (paid, but very nice interface plus wrist controls for media)

(+1)

I'm about to try this out tommorow and i'm really looking forward to it, it seems like a lovely concept.

From what i've read, it doesn't work with any nintendo DS cores right? I'd love to play some DS games at some point.

But yeah i can't wait to try it out. And i'll leave a review tommorow.

ah such a shame, would love to have it for just convenience sake

Do you think you’ll ever add this to steam? Super great app

(+1)

Tried to, steam never approved it, they don't like emulators they have to manually set up, so they just put me in limbo of "we're still testing" for years.

I tried it again and it worked really well. Two suggestions I have. The first is for a failsafe way of enabling the overlay where it just appears in front of the user, wherever they are without any gesture, just with clicking the desktop UI through the SteamVR desktop mirror. And second, some form of handling the UI for selecting roms and cores inside the overlay instead of only on the desktop.

I believe there already is a "recenter handheld" button that does what you're asking for in the UI on desktop.

Deleted 2 years ago
Deleted 2 years ago
(1 edit)

Could we get an update where it adds "requires gesture toggle button to lock"? It's cool that I can set it up to only UNLOCK when I press a button, but I'd like to do that vice versa too since I keep closing the thing with accidental hand movements when I don't mean to.

Will this work on a standalone quest 2? Or will i need to be attached to a pc?

(+1)

You'd have to attach it to a computer to make it run via SteamVR, that's the only thing this supports.

i’d like different skins such as one for the gameboy/gameboy color as the screen is square 

really cool, but i have 2 feature requests.

first is have input blocking only turn on when you are grabbing the console (and block input to the console when you let go, of course) that way you can quickly drop the console to do somthing, then just grab it again to keep playing

the second is per core input switching, a table like

a=a

b=b

x=x

y=y

start=start

select=select

so on and so forth, so you can say somthing like "the default is fine for snes games, but for gameboy i want b=a and y=b" so you can use physical buttons on consols that don't have to worry about 4 buttons without changing the whole steam input set when you change cores.

Some feedback. I like the app but when playing I assumed it would work like this: I grab the handheld and then use my index controller buttons to control the game.  Then when I let go, input to the emulator stops. Maybe I can set audio to also start and stop the same way. Is that how it's supposed to work? The joystick works and the b button on the left controller is start, but no other buttons work even though they're in the bindings. This is when emulating NES with quickNES. The arcade stick works but it's also a lot less ideal. I've been using Desktop+ inside games a lot recently, even to play some PC games, and I was hoping to use this the same way. If it can be done, I would love an app that's just an in VR controller to turn VR inputs into gamepad inputs when you're holding it.

Right now, any time it's active (ie: you do the motion, and it turns on, then you do the motion to dismiss it, and it pauses the game like normal), it blocks inputs if enabled, I forget it I made a setting to have it only take inputs when you grab it. The inputs I'm not sure, I've not heard anybody have any problems with the bound inputs. I would say try to clear your bindings/change the bindings to see if's the buttons you're pressing or the buttons you're emulating are the problem. As far as a software that creates gamepad controllers and funnels them into the PC from VR, I'm not an expert enough at hardware hacks to try and simulate inputs to windows to make it do such a thing, otherwise you could just use a desktop viewer and then enable the gamepad inputs to emulate all games via official desktop emulators

just to be sure, you are actually pressing "a" and "b" right? as in (assuming index) A is the b button and down on the touchpad is the a button?

(+2)

Can you add support to linux, I would love this but it doesnt support linux

Is there any way you could release a DEBUG version that lets up run any RetroArch core? I want to try the Dolphin core just for the hell of it.

(+2)

You're free to run any single core you can find, whether or not it works is up in the air, I wasn't able to get any 3D emulation working because that requires some kind of hardware communication, and all the people who had gotten that to work on their ends were not able to effectively communicate it so that I could reproduce it here.

Neon Retro Arcade ships with libretto cores included, are you sure you can't package into this?

I don't know, I've never tried I suppose

when I try and start the emulator all I see is the controller and the tutorial really far away. I cant do anything because I cant click on the tutorial. I tried restating everything even my VR room setup.

Does the button "re-center handheld" bring you near the tutorial? I'm curious also HOW far away you are, since I thought I had code that should prevent people from being where they might end up via errors of some kind... but yeah. Let me know. Also possibly if you can, search the logs at Appdata/LocalLow/BarShiftGames/PortableEmulator/Player<-prev>.log and see if in those files contain the words "Exception" "error" or "crash", to bring up any sections of code that look like error logs? 

For instance this is an example error: 

NullReferenceException
at (wrapper managed-to-native) UnityEngine.GameObject.SetActive(UnityEngine.GameObject,bool)
at BlockingInputManager.unblockInput () [0x00014] in <a9a5c357337344c1902c522035ed88a6>:0 
at BlockingInputManager.OnDestroy () [0x00000] in <a9a5c357337344c1902c522035ed88a6>:0 
(Filename: <a9a5c357337344c1902c522035ed88a6> Line: 0)

Curl error 42: Callback aborted

Pretty cool so far, is there any way to use this with a bluetooth xbox controller?

(+1)

Unfortunately not, if you want that, you'll want to use retroarch directly (it supports controller inputs I think) and then use OVR drop and hold your Xbox controller while in VR. I think that'll do it?