Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
No PC, no streaming, no emulator. A free, from-source VR port built on the GoldenEye decompilation. Bring your own ROM.
GamesC · C++GitHub @MrScoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
GoldenEye 007, running natively on your Meta Quest.
No PC, no streaming, no emulator: a from-source port built on the GoldenEye decompilation.
Bring your own game. This download contains no GoldenEye 007 game data:
no ROM, graphics, sound, music, text or levels. You need a ROM of the
USA (NTSC-U) cartridge that you own. The app reads everything it needs from that
file on your headset. Please don't ask for ROMs, and don't share them in Issues.Read the full README ↗[!IMPORTANT] Bring your own game. This download contains no GoldenEye 007 game data: no ROM, graphics, sound, music, text or levels. You need a ROM of the USA (NTSC-U) cartridge that you own. The app reads everything it needs from that file on your headset. Please don't ask for ROMs, and don't share them in Issues.
[!NOTE] v0.4.22 fixes co-op mission starts blocked by unused player bodies, including Facility's air vent, and preserves your start through the intro. It plays online with v0.4.16 and newer; update every co-op headset to get the fixes. See the v0.4.22 notes.
Two ways to play. Pick one at launch, and switch any time in game.
| 🥽 Stereo VR | 📺 Big virtual screen |
|---|---|
| Real 3D first-person play. Look around with your head, lean and step with your body. | The whole game on a cinema-sized screen floating in front of you. |
| Aim the gun with your right hand. Shots leave the muzzle and go where the barrel points. | Flat or curved screen, any size and distance. |
| A 3D sight where your shot will land. Your ammo counter sits on the gun. | Grab the screen with both grips to move it anywhere. |
| Your left arm is Bond's own suit sleeve with his watch, keeping mission time and showing live health, armor, and multiplayer radar. The launcher offers Off / On / Only for wrist status and a separate watch gesture to pause toggle. | The classic experience, with no motion at all. |
| Gadgets are in your hand: mines, the covert modem, cameras and more, thrown from where you hold them. | |
| The sniper rifle's scope shows the zoomed view in its lens, 4.4x up to 25x, with a red sight when you aim. The Moonraker laser has a 3x scope, and the KF7 and AR33 show a magnifier when you bring your eye to their sights. | |
| Melee with either hand: swing your hand, a gun, the knife or the sniper rifle's butt at a guard. Sneak up on one and chop him. | |
| The watch laser fires when you bring your gun hand to the watch and grip it, as Bond does in the original. | |
| Hold any gun with both hands: put your left hand on it and squeeze the grip. A rifle then aims along the line between your hands. | |
| Spent shell casings fly from the ejection port. | |
| Smooth or snap turning, and an optional comfort vignette for motion sickness. |
Also:
An in-VR launcher with Play, Controls, Comfort, and Screen tabs: ROM check, display mode, screen shape and size, turning, comfort, display rate (Auto and the headset's supported rates), aim steadying, a left-handed mode, swap sticks, gun fit (set where the gun sits in your hand), an in-game stats readout for troubleshooting, and a Cheats page (the classic cheats, tiny or big guns, and unlock all missions and cheats).
HD textures: the launcher's Mods page downloads a fan-made texture pack on request and installs it in the headset:
Nothing of theirs ships with the app. New pack releases show up on the Mods page as updates.
In game, hold Menu until the return-to-launcher prompt shows, then press X to switch the HD textures off and back on to compare.
Multiplayer (experimental): deathmatch for up to eight players, with bots to fill the empty slots or to play against on your own, endless Horde waves in Archives for one to four, or the campaign in co-op for up to four, each in their own headset, over the internet or your Wi-Fi: browse public games or share a private code. See Multiplayer.
Optional ragdolls and limb dismemberment (experimental): Ragdolls and Dismemberment on Play -> Game rules. Off by default; works in every mode, with the body count set to fade, 12, 24 or 48. Physics and cuts are local to each headset. See setup, limits and testing.
3D sound: gunfire, explosions, doors and the game's other sounds come from where they happen, through the same Steam Audio 3D audio as voice chat. A fight in the next room sounds like it's round the corner, not through the wall.
No Developer Mode, and no computer needed. You'll need:
.z64, .v64 or .n64, 12 MBAlready set up with Developer Mode and SideQuest on your computer? See Install from a computer instead.
SideQuest is the most popular free store for apps outside the Meta Store, and it now installs straight from the headset.
sdq.st/go. The SideQuest app downloads.SideQuest's own video walkthrough shows each step.
Put the ROM in the headset's Download folder:
In the headset, open Library, change the filter to Unknown Sources (or use the shortcut SideQuest added), and start GoldenEye VR. The launcher opens and shows "No GoldenEye ROM yet". That's expected.
[!NOTE] Don't create the app's folder yourself. The app makes
Android/data/com.gevr.port/files/datathe first time it starts. A folder made by hand (or byadb) can belong to someone else, and the app then can't use it. The headset's own file browser can't see insideAndroid/dataeither, which is why Choose ROM file... starts from Download.Prefer copying straight into the app's folder? Start the app once first, then copy the ROM into
Android/data/com.gevr.port/files/datafrom your computer and press Look again. Any file name works: the launcher recognizes the ROM and renames it for you.
The older way, with SideQuest's desktop app over a USB cable. It needs Developer Mode, a USB-C cable (the charging cable works) and a Windows PC or Mac.
GoldenEye-VR-vX.Y.Z.apk from the
latest release. In SideQuest, click
the "Install APK file from folder on computer" icon (a box with an arrow, top right), choose
the APK, and wait for "All tasks completed". Dragging the APK onto the SideQuest window
works too.[!TIP] Comfortable with the command line? You can skip SideQuest:
adb install GoldenEye-VR-vX.Y.Z.apkStart the app once so it creates its folder (a folder made by
adbbelongs to the USB shell, and the app then can't save its settings), then push the ROM:adb push "GoldenEye 007 (USA).z64" /sdcard/Android/data/com.gevr.port/files/data/ge.z64
From v0.1.13 on, the launcher checks GitHub for a newer version each time it opens. When one is out, an Update button appears beside Cheats.... Press it and confirm in the window that opens. The first time, a settings window asks first: turn on Allow from this source and the game comes back by itself. Your ROM and settings stay.
Coming from v0.1.12 or older, or if you'd rather not update in the headset: install the new APK the same way as the first time. Your ROM and settings stay where they are. Don't uninstall first: uninstalling deletes the app's folder, ROM included.
Wreck's Mirror Mode is available as a separate solo campaign. Apply the August 2017 Mirror Mode patch to your own GoldenEye 007 (USA) ROM, then choose Add Mirror Mode ROM... in the campaign dropdown beside START. Select Mirror Mode (Wreck) there to play. Your original ROM stays installed, and Mirror Mode has its own progress save. Online play and GoldenEye X are off for this campaign; Bean and HD packs work, flipped with it. See optional campaigns for preparation and supported versions.
GoldenEye X is a ROM hack of Perfect Dark. This port can read its models and animations for every GoldenEye weapon and item, and its hands, arms and watch, as optional replacements while you play GoldenEye:
GE-X's campaign and maps are not imported.
Keep your usual GoldenEye 007 (USA) ROM installed. For GE-X, you also need your own
legally obtained Perfect Dark USA v1.1 / Rev 1 ROM, in big-endian .z64 format
(33,554,432 bytes; MD5 e03b088b6ac9e0080440efed07c1e40f), and the GE-X 6a patch
from Wreck's N64 Vault page.
GE-X_6a_01-19-25.xdelta to a clean Perfect Dark v1.1
ROM and save the result as gex.z64. Preserve the original. The
full preparation guide covers byte-order conversion, patching
with a GUI or Python, and checking the result.gex.z64 into the Quest's Download folder using USB or SideQuest.Android/data/com.gevr.port/files/data/gex.z64.On the virtual screen, GE-X's own fire and reload animations play. To reload by hand in stereo VR, also turn on Hand reload (WIP) in Controls → Gestures.... It needs GoldenEye X; until GE-X is on, it reads Hand reload (needs GoldenEye X).
Remote mines. With GoldenEye X on, remote mines and their detonator are one weapon:
Some mission-specific items may still need their fit adjusted in the headset (Gun fit..., below).
No Perfect Dark ROM, patched ROM or GE-X assets ship with the app. The app imports the file you prepare; it does not apply the patch for you. Use the Mods picker for GE-X and the Play page's Choose ROM file... for your GoldenEye ROM.
| Control | Action |
|---|---|
| Right trigger | Fire (the gun in your right hand) |
| Left trigger | Fire (or throw) what your left hand holds; nothing when it's empty. The right grip aims |
| Right grip | Aim / zoom, and shows the 3D sight. Steadies a gun with a scope |
| Left grip | Dual-wielding: shows the left gun's sight (blue) |
| Left hand on the gun + left grip | Hold it with both hands |
| Hand at its own hip + grip | Holster what that hand holds; squeeze there again to draw it (Hip holster (WIP)) |
| Hand at a door, switch or console + grip | Use it, as B does |
| Hand at a gun on the floor + grip | With Grip to hand (WIP) on (off by default): that gun goes into that hand. Walking over guns still picks them up |
| Hand at your own stuck mine + grip | Take it back (remote mines, and proximity mines still arming; single player and the co-op host) |
| Grip a throwable, swing, release the grip | Throw it from your hand: throwing knives, grenades, mines (Motion throwing, on by default). The trigger cooks a grenade meanwhile |
| Left stick | Walk and strafe |
| Right stick | Turn: smooth (with its speed) or snap, set in the launcher |
| Left stick click | Crouch (toggle) |
| Left stick up/down (aiming the sniper rifle) | Zoom the scope (the stick doesn't strafe then) |
| Swing either hand at a guard | Melee: chop, punch, pistol-whip, stab or club |
| Gun hand at the watch + right trigger | Fire the watch laser (or the Detonator, without GoldenEye X) |
| Left trigger, with GE-X remote mines in your gun hand and the left hand empty |
Real-world movement works too: lean around corners, duck, and step. Ducking behind cover hides you from guards. Aiming with the grip stops you walking, unless Aim: no lean is on.
Gestures... on the launcher's Controls tab turns each grip gesture on or off, and holds Watch gesture to pause. Anywhere else the grip aims as before. It also holds two options that are off by default:
Game rules... on the Play tab opens an optional AI ally page for solo GoldenEye, campaign co-op and Horde: one extra Natalya companion with weapon, aggression, damage, health and invincibility choices. The host chooses; changes apply next mission or Horde retry. It also works with Fast reinforcements. Missions with their own Natalya (Bunker II, Train, Jungle, Control) keep only her.
Other optional rules, off by default: mines stick to guards (solo), bodies stay (the newest 12, 24 or 48, solo), and Fast reinforcements. Fast reinforcements increases difficulty by letting alerted guards call more reinforcements while earlier ones are still alive. It works with any body count, including Off. In co-op, the host controls Fast reinforcements for the mission. Turn it off for normal spawning. Keeping bodies alone preserves the original reinforcement behavior across all levels; 48 bodies no longer causes the reported enemy surge. See body retention and reinforcements.
VR settings, at the bottom of the watch's Game Options page, changes settings mid-mission in seven sections: Comfort, Controls, Gestures, Weapons, Display, Game rules, and Mods and fun. These include left-handed mode, stick swapping, gun fit, watch and grip gestures, reloads, recoil, motion throwing, screen size/distance/curve/passthrough, stats, the GoldenEye X toggle and gun size. Display → Refresh requests the supported rate immediately. Texture-pack selection and play mode stay outside these sections; switch play mode by holding the right stick click.
The watch's Control page shows your Touch controllers (Quest 1, Quest 2, Touch Plus or Touch Pro, picked from the headset; VR settings → Controls → Controllers picks them by hand), each above a list of what its controls do in your play mode and handedness. A control you press lights up on the model and in the list. See docs/touch-controllers.md.
Left-handed? Tick Left-handed in the launcher. The gun goes in your left hand and the watch on your right wrist, and the sticks and face buttons swap sides. The ☰ Menu button stays on the left controller: the right one is Meta's system button. To walk with the left stick anyway, tick Swap sticks as well.
Watch face status is on the launcher's Controls tab: Off keeps the standard displays, On (the default) shows both wrist and standard status, and Only shows wrist status during stereo gameplay. Holster the offhand to see the watch; its clock hands still show mission time. Pause-menu status stays visible in every setting, and virtual-screen mode keeps its standard displays. Disable Watch gesture to pause (under Gestures...) to read your wrist without opening the pause menu; the Menu button still pauses.
| Control | Action |
|---|---|
| Either trigger | Fire (in menus: select) |
| A or X / B or Y | The game's A / B buttons |
| Grips | Aim / zoom |
| Left stick | Walk and strafe (in menus: move the cursor) |
| Right stick | Look and turn (in menus: move the cursor) |
| Point a controller | Laser pointer for the file and mission folders |
| Hold both grips and move your hands | Carry the screen somewhere else |
| Hold both grips and use the right stick | Up/down: nearer/farther. Left/right: smaller/bigger |
| Left stick click | Crouch (toggle) |
| Both stick clicks | Recenter the view and the screen |
| ☰ Menu | Pause; hold it (1.5 s) to go back to the launcher |
| Hold left stick click (1 s) | Bring the screen back in front of you |
| Hold right stick click (1 s) | Switch to stereo VR |
| Grips (in Bond's watch) | Turn the watch pages |
Host a deathmatch alone or play with up to eight players, each in their own headset, on the game's multiplayer stages. Or play the campaign together: up to four players in co-op, the host picking the missions. It's still experimental: expect rough edges, and please report what you find.
Everyone needs the same version of GoldenEye VR, and each player their own ROM.
Host a game. In the launcher press Multiplayer..., stay on the Host tab, and pick (across its Lobby, Match, Fun and Player tabs):
Then press Start Hosting, and Launch once everyone connected shows Ready. You can launch alone. In Deathmatch, the host can explore in warmup without running the round clock or score. When a guest has loaded the map, the stage and equipment reset and the timed round begins together. If the last guest leaves, the host returns to warmup.
Horde. Clear increasingly large waves of regular GoldenEye guards in Archives, with 15-second breaks between them. Hits and kills earn points (more for headshots): spend them at the Mystery Box for a random weapon or at Wall Buys for a weapon, its ammo at half price, or body armour (grip or press B at a station). Revive downed teammates by standing beside them. Everyone down ends the run; open the pause menu for results and Retry Horde. You can launch alone. Every player needs v0.5.4 or later (protocol 22). See Horde mode.
Join a game. Press Multiplayer... and choose the Join tab. Pick a public internet game (Public), enter a code (Private), or select a game discovered on your Wi-Fi (LAN). Direct IP remains available as a fallback. Then choose your character on the Player tab and tick Ready. Open spots can be joined during warmup or an active round. Joining a deathmatch round in progress, you watch until the next round starts, unless you take a bot's place; co-op joiners drop straight in. Reconnecting doesn't restore a previous score.
Bots. In deathmatch, the host's Match tab has a Bots: setting: Off, Fill empty slots, or Fixed count with 1 to 7 bots, plus a Bot difficulty: from Perfect Dark's six levels (Meat, Easy, Normal, Hard, Perfect, Dark). The same settings are on the pause menu's Rules tab as BOTS, BOT COUNT and BOT DIFFICULTY. They can be changed in the lobby and in warmup, and apply from the next round.
In a match. ☰ Menu (or the watch gesture) opens the pause menu, with Match, Rules, Player and Audio tabs. The match goes on while it's open.
Online, players don't block each other: overlapping players are pushed gently apart and slowed, so nobody can pin you in a corner. Walls and guards still stop you.
While you spectate, the gun hand's A follows the next player and B the previous one. In co-op, stand beside a downed teammate for 3 seconds to revive them.
Voice chat. Allow microphone access to talk. Everyone can hear each other in the lobby; in a match, voices come from the speaker's direction, like the game's own sounds. Teammates are always at full volume: your team in team battles, and everyone in Horde and co-op. The host's Voice mode applies to free-for-all opponents: Proximity gets quieter with distance, Couch stays at full volume. Mute with Mute microphone in the launcher, MIC on the pause menu's Audio tab, or Menu + B. Your mute choice is saved. If you deny microphone access, you can still hear other players.
Over the internet. No IP addresses and no router setup: headsets connect directly when they can, and through a Cloudflare relay when they can't. The game list and private codes come from our lobby service at lobbies.goldeneyevr.com, which shows public activity and keeps a game's listing and connection details (including IP addresses) only while the game is open. Games on your Wi-Fi still work without it (UDP 27008).
Not there yet: You don't see other players' hands move.
In co-op, every headset sees the tank move on Runway and Streets. Its engine sound still plays only for the driver. The reported invisible Bunker ending cutscene remains under investigation.
Launcher settings are saved for next time. Finer settings live in
Android/data/com.gevr.port/files/data/goldeneye-vr.ini, which explains each line: gun
position in your hand, HUD distance, player height and more. Edit it on your
computer while the headset is plugged in.
The ROM section collapses after validation succeeds and opens when a ROM is missing or selection fails. Expand it to change files.
Display rate. Auto leaves the refresh rate to the headset and external profiles. New Quest settings default to Auto; existing saved choices remain selected. The launcher offers the rates supported by your headset, including 80 Hz where available. Explicit choices request a rate; Show stats reports the rate actually in use.
SpaceWarp. Beside Display rate on the Screen tab. The game draws half the frames and the headset makes the ones between from motion and depth, so Bean holds 120 Hz while turning, with a little more latency. On by default while Bean is on; tick or untick it to choose for yourself.
Anti-aliasing. Off, 2x or 4x (the default) on the Screen tab smooths jagged edges and changes right away. 4x is the most the Quest supports.
Render resolution. Quest uses the render dimensions recommended by its OpenXR runtime
when the app starts. These can differ from the panel's physical resolution. The
Video.VRRenderScale line in goldeneye.ini multiplies those dimensions, so an external
resolution profile and a saved scale compound: a 2400×2600 recommendation at scale 2
requests 4800×5200 per eye. Use scale 1 when checking an external profile. Device limits
can reduce the actual size without changing your saved scale; Show stats reports the
actual eye-buffer size. Restart the app after changing an external resolution profile.
Actual QGO profile behavior is awaiting the device comparison.
Gun fit... (in Controls) sets where the gun sits in your hand, in the headset. Turn it on, start a mission in stereo with a gun, and move the gun with the sticks until its grip is in your hand. Hold the gun with both hands to fit the holding hand as well. A saves, B undoes back to the last save; the fit stays on for the next gun or gadget. In single player, Menu + A starts and ends it during play, so you can leave it, switch weapons and come back.
X steps through the fit modes the gun has. Left-handed, that's the A button. The modes are:
GE-X fits are saved separately from GoldenEye's. Holding a GE-X gun with both hands fits its supporting hand and grab point. See the fit guide for the full controls.
With a gadget in hand instead (a mine, keycard, key analyzer, document and so on), the same
fit moves that gadget: the move stick forward and sideways, the turn stick up and down and
(sideways) its size. Hold the right grip and the sticks turn it. A saves every gadget's fit
to files/gevr_itempose.txt on the headset. Send debug log includes it and
goldeneye-vr.ini (the gun fit), so fits can be made the defaults.
The launcher's first line shows the build, for example Build 4526b62 built 2026-09-23 15:10.
Mention it when you report a bug.
Change the Library filter (top of the Library window) from All to Unknown Sources. Or let SideQuest add GoldenEye VR to your main Library.
Android/data/com.gevr.port/files/data,
the data folder inside files, and the app must have created that folder itself (start the
app once before copying; delete a folder you made by hand, then start the app again).Use v0.4.7 or later (see release notes). Prepare GE-X 6a from Perfect Dark USA v1.1, check its byte order and checksum, then import it through Play → Mods... → GOLDENEYE X → Choose ROM.... The setup guide explains the error messages and restart steps.
Put the headset on and accept Allow access to data, then reopen the Quest in File Explorer. Or, with Developer Mode on, use the SideQuest desktop app's file manager instead.
The desktop app needs Developer Mode on (see Install from a computer). SideQuest in the headset doesn't. Put the headset on while it's plugged in and accept Allow USB debugging. Try another cable or port if it still won't connect: some cables only charge.
You have a build signed by someone else installed (for example one you built yourself).
Back up your ROM and goldeneye-vr.ini from the app folder, uninstall the old app, install
the release, then copy them back.
In the launcher, turn on Comfort (darkens the edges while you move) and try Snap turning. Or play on the virtual screen, which has no artificial motion at all.
The current source fixes a frame-buffer overrun reported in v0.4.6 during Facility combat. Use a build containing PR #118 and include the build line and debug log if it happens again. Sustained combat on Quest 2 with the heaviest settings still needs headset verification; see the investigation.
The whole game boots, and the Dam has been played end to end in both modes. Other levels are playable but less tested. Expect rough edges: this is an early release. Found a bug? Open an Issue with:
For the engineering side, see STATUS.md (short, kept current) and the archived session log in docs/archive/HANDOFF.md.
| Host | Windows (the build scripts assume it) |
| Target | Android / Horizon OS, arm64-v8a |
| NDK | 25.1.8937393 (Clang) |
| CMake | 3.22.1 |
| Device | Quest 2 / Pro / 3 / 3S with Developer Mode on |
The application targets Android/Meta Quest only. The root CMakeLists.txt builds
libgevr.so, and the Gradle project in android/ packages it. Desktop game targets
are disabled; native regression tests under port/tests/ compile independently.
The first configure fetches SDL2 and zlib with CMake FetchContent, so it needs network
access. The OpenXR loader is vendored under OpenXR/.
Point android/local.properties at your SDK (Android Studio writes it for you):
sdk.dir=C\:\\Users\\<you>\\AppData\\Local\\Android\\Sdk
Then build:
cd android && ./gradlew.bat assembleDebug
The APK lands in android/app/build/outputs/apk/debug/.
powershell -File tools\gevr_boot_test.ps1 builds, installs, launches and captures a boot log in one go.
Clone to a short path on Windows. The NDK nests object files deeply, and a long path ends in
ninja: error: manifest 'build.ninja' still dirty after 100 tries.
About assets/: the repository keeps only the decompilation's tables the code
compiles against: file and image indexes, model headers, weapon stats, render-state
lists. None of Rare's content is here. Animations, textures, models, levels, text,
fonts, music and the Rareware logo are all read from the player's ROM at runtime.
Some developer tools under tools/ expect the full assets/ tree of
n64decomp/007 next to a ROM you own.
| Path | What |
|---|---|
src/ | GoldenEye engine and game code from the decomp |
port/src/, port/include/ | Host layer: platform, ROM loading, soft audio mixer |
port/fast3d/ | N64 display lists to OpenGL ES |
port/vr/ | OpenXR session, stereo, controllers, the in-VR launcher |
assets/ | Decompiled tables the code compiles against (no game content) |
android/ | Gradle project and MainActivity |
tools/ | Build, probe and generator scripts |
docs/ | Deep dives on specific subsystems |
Built on the shoulders of:
src/.CREDITS.md says exactly what each project contributed.
This project's own code is MIT licensed (LICENSE). Vendored components keep their own notices:
| Path | Upstream | Notice |
|---|---|---|
port/ | Perfect Dark PC port | port/LICENSE |
Bean adaptations in port/ | Dab / DabDavis, Dab's Mod | MIT, port/licenses/dabs-mod.txt |
port/vr/ | perfect_dark_VR | port/vr/LICENSE |
src/ | n64decomp/007 | upstream ships no licence file |
port/vr/imgui/ | Dear ImGui | port/vr/imgui/LICENSE.txt |
port/fast3d/ | n64-fast3d-engine | port/fast3d/LICENSE.txt |
OpenXR/ | Khronos OpenXR loader | Apache-2.0 |
port/external/steamaudio/ | Steam Audio (Valve) | Apache-2.0, LICENSE.md |
The app icon and banner art were made for this project.
Texture packs on the Mods page belong to their authors and are downloaded when you
ask: GoldenEye 007 HD by intermissionfb and GhostlyDark
(evilgames.eu). Our fork,
GoldenEye 007 HD + AI (MrSco/GoldenEye-007-HD),
is their pack plus AI upscales, made with tools/texai, for the textures it doesn't have yet.
GoldenEye VR is a non-commercial fan project. It is not affiliated with, endorsed by or sponsored by Nintendo, Rare, Microsoft, MGM, Danjaq or Eon Productions. GoldenEye 007, James Bond and 007 are trademarks of their respective owners. No copyrighted game content is distributed with this project; you must supply a ROM of a cartridge you own.
GoldenEye X (optional, WIP): models and animations for every GoldenEye weapon and item, with magazines, single rounds and speedloaders reloaded by hand in VR, one-handed remote mines, and its arms wearing the watch, loaded from your own patched Perfect Dark ROM. See GE-X setup.
Project Bean visuals (optional, experimental): characters, weapons, props, rooms and skies downloaded from the launcher's Mods page or loaded from your own extracted Bean files. Select Bean alongside HD / AI; switch during play through the watch VR options or one grip + right-stick click. GE-X keeps its first-person gear. See Project Bean setup and checks.
Updates in the headset: the launcher offers each new release, no computer needed.
Laser-pointer menus: point a controller at the file and mission folders and pull the trigger.
Menus, briefings and cutscenes play on the virtual screen in both modes.
| Set off all the remote mines you've placed |
| A | Next weapon for your gun hand |
| Right grip + A | Previous weapon |
| X | Next item for your left hand: empty, or something you carry that it can hold |
| Left grip + X | Previous item for your left hand |
| Hold A | Weapon wheel above your gun hand: push the other stick toward a category (pistols top, rifles upper right, heavy lower right, gadgets lower left, thrown upper left), pull a trigger to step through the guns in it (gun hand forward, other hand back), let go of A to equip (dual-wield pairs included) |
| Hold X | Left-hand wheel: anything you carry for your left hand, guns, knives, grenades and mines included (not the watch laser, Detonator or tank shells). Point with the right stick, step with the triggers, let go to equip. In multiplayer, only when the host's Dual wield rule isn't Off |
| B / Y | Action: doors and switches take priority; dual wielding, reload the gun in that button's hand. With one gun, either button reloads it (not with Hand reload (WIP) on) |
| ☰ Menu (left controller) | Pause / Bond's watch (in multiplayer: the pause menu) |
| ☰ Menu + A | Gun fit on or off (single player) |
| ☰ Menu + B | Mute or unmute your microphone (multiplayer) |
| Hold ☰ Menu (1.5 s) | Back to the launcher, to change settings or cheats (asks first: A yes, B no) |
| Raise left wrist to your face | Open Bond's watch when Watch gesture to pause is enabled |
| Both stick clicks | Recenter the view |
| Hold right stick click (1 s) | Switch to the virtual screen |