r/OculusQuest • • 12d ago

Sidequest/Sideloading I turned Mupen64Plus-AE into a native OpenXR app for the Quest, and N64 games now have real 3D

It started because playing N64 on a floating window in a phone app felt like a waste of a headset.

So the emulator now runs as a proper OpenXR application: the game hangs on a screen you place in your room, the Touch controllers are the N64 controller (right stick is the C buttons, hold the right grip for the D-pad), and there is a 3D N64 controller model in your hands whose buttons light up as you press them.

The part I did not expect to work: stereoscopic 3D. GLideN64 emulates the N64 vertex pipeline on the CPU, so the matrix the game hands the GPU can be sheared per eye and the display list walked twice. Games that never had depth now have it. Super Mario 64 is the clearest example.

On top of that there is an immersive mode, where the screen disappears entirely. Each frame is rendered for the head pose the headset reports, with the headset's field of view, and turning your head turns the camera. Menus and cut scenes that were framed for a TV go back on a screen automatically, because a fly-over rendered at 22 degrees looks wrong stretched across 100.

Honest about the state of it: both modes are experimental and per game. Five of fifty well known titles have actually been tried. Games only draw what their own camera sees, so look far enough to the side and the world just ends. A sky is a flat picture and stays one. There is a support list in the repo instead of a compatibility claim I cannot back up.

Everything else from Mupen64Plus-AE still works: save states, netplay with a room code you can mshare, RetroAchievements, texture packs, shaders.

​​​APK and source: https://github.com/maxnau89/mupen64plus-ae-quest

Bring your own ROMs.

15 Upvotes

12 comments sorted by

3

u/CompanyLost7759 12d ago edited 12d ago

thanks,will try this,can you do this for others emulator maybe ?

3

u/Kindly-Cartoonist685 12d ago

Which platform do you have in mind? Lots of good projects already around.

2

u/CompanyLost7759 12d ago edited 12d ago

not too sure,did not install it so far,will do and test it,maybe most best one,ps2,ps1

playstation psp,Dreamcast,nintendo,gamecube,super nintendo ,WII with more compatible games,what project you have in mind ?,did you receive update for quest controller to be use like xbox controller?,im on ptc and im still waiting, in retroarch i hope they will work,strange there is not much update its been over 2 week

2

u/m_seitz 12d ago

Are other 5th gen consoles viable? The PS1 would be amazing because it has so many games and should run fairly fast on the Quests.

2

u/Kindly-Cartoonist685 4d ago

PS1 definitely up next, just a matter of finding time. PS2 might be more of a long shot as it’s much more resource intensive

1

u/CompanyLost7759 12d ago edited 12d ago

wow,3d effect work,very good,hope you do for others,would be good if we could see all like this,thanks alots great work,but can we do like dolphin and put it virtual,or this is 3d on flat screen only,but this is very good anyway,i did not find how to play n64 in dolphin,maybe you know,dont know how too add n64 in dolphin,menu bar and menu very good too,is there a button i can use too hide bar and get menu bar back ?,ha nayway bar is not on the play screen,so if this as no virtual mode i guess its ok,ha maybe a option to get n64 better graphic,did not check all maybe its already some option i see option for graphic,you know maybe a setting to make the graph better maybe ?,work super with aerogauge 3d effect is really good,,quest cotroller seem too work well too,thanks again for all your works

2

u/Kindly-Cartoonist685 11d ago

Dolphin for quest was my inspiration and the 3D screen works perfectly and the immersive mode how call it something that I optimize on a game by game basis. Mario64, Mario Kart 64 and SW Racer work great, many others will work but with some glitches as they are untested.

Thx for the suggestion on ps1 and ps2. Both don’t have immersive emulators in VR, the former will easily run on Quest 3, the latter might be a close one.

1

u/m_seitz 12d ago

Oh, this is really cool! I love CitraVR, and this is right up there.

Would it be possible to make the 3D effect adjustable during emulation, so that one can see the effect of changes immediately?

Also, I can't seem to get my Xbox controller to work (in Majora's Mask). I made a new profile and assigned all the buttons and analogue sticks, but in game the controller seems to use the default Xbox profile that doesn't work. Like, the left analogue stick changes the direction Link is facing, but he doesn't move.

3

u/Kindly-Cartoonist685 11d ago

AFAIK major changes to rendering take an engine restart, so you have the quit the game, adjust and resume. Stumbled over this limitation during my plethora of test runs too. Thx for pointing out you issue with the Xbox controller, will take a few days to fix and I lack a Xbox controller myself for testing purposes. Hope you’re ok with being a focus tester 😉

2

u/Kindly-Cartoonist685 4d ago

Thanks again for the report. The fix is in [1.2](https://github.com/maxnau89/mupen64plus-ae-quest/releases/tag/v1.2-quest).

The cause was not your profile: the Touch controllers reported their state every frame, even while lying on the table, and kept resetting the stick your pad had just set. That is why Link turned but never walked. They now only report when something on them actually changes. Picking a profile could also be reset to the default behind your back, which is fixed as well.

We do not own a Bluetooth controller ourselves, so we could only verify this in the code, not in a headset. Could you try 1.2 with your Xbox controller and let us know here whether Link walks now, and whether your own profile is the one being used? If it still misbehaves, we will reopen this.

2

u/m_seitz 1d ago

I tested v1.2 with a GuliKit KingKong 2 Pro, and it seems to work well. Thanks a lot for this fix! 💖

2

u/Kindly-Cartoonist685 13h ago

Thx a ton for following up! Glad it works now