What runs, and what does not
Every claim on this page is marked with how strongly it is known: measured on a Quest 3S, inferred from measurements of comparable hardware, or untested. Nothing is listed as working until it has actually been run.
Results are given by arcade board, not by title. What decides whether something is playable is the hardware it was written for and the core emulating it, so the board is the useful unit — and QuestGun neither supplies nor endorses any particular game.
What QuestGun contains
- No games. No ROMs, no disc images, no game data of any kind.
- No BIOS files.
- No emulator cores. Cores are loaded at runtime from files you provide; none are bundled in the package.
- No downloader. The app never fetches content from anywhere, and holds no network permission with which to try.
- One piece of original content: a built-in demo range, a shooting gallery drawn by the app itself. It emulates nothing and loads no files.
A fresh install cannot run any game until you supply an emulator core and game files of your own. The demo range works out of the box, and is the quickest way to check your aim is calibrated before you add anything.
Cores are third-party software under their own licences — mame2003-plus, MAME and Flycast are GPL. You are responsible for having the right to use the files you supply.
The four ways a game can fail
These feel identical while wearing the headset and have completely different causes, so it is worth knowing them apart.
| Outcome | Cause | Fixable? |
|---|---|---|
| Will not load | The core has no driver for that hardware, or the files are for a different version of MAME | Yes — different core, or matching files |
| Loads, unplayably slow | The arcade hardware is too demanding for a mobile chip | No |
| Loads, then closes the app | A bug inside the emulator core on this hardware | Not from QuestGun |
| Works |
Confirmed working
| Board | Core | Evidence |
|---|---|---|
| Namco System 22 | current MAME | Measured. A System 22 lightgun title at 640x480, 60 fps emulated, 72 fps held in the headset, with aiming, trigger, pedal, coin and start all reaching the game |
The lightgun path is therefore proven end to end on real hardware.
This list is short because it is honest, not because the app is limited to one board. The hardware below is less demanding still — it simply has not been run yet, so it is not claimed.
Expected to work — not yet run
Inferred, not measured. Two-dimensional and early-3D arcade lightgun boards from the late 1980s and 1990s — Taito, Konami, Midway, SNK and Namco hardware of that era — have drivers in the supported cores and are far less demanding than the System 22 board already measured holding full speed. Around fifteen lightgun titles across those boards fall into this group.
The 3D boards among them are the most likely to struggle. If you run something on one of them, tell us how it went and the result goes on this page.
Will load, but is too slow to play
This is a limit of the headset's processor. No update to QuestGun changes it.
| Board | Status |
|---|---|
| Namco System 23 | Measured: 4 fps. One emulated frame takes 100 ms against a 13.9 ms budget — roughly 7x too slow |
| Namco System 246 (PlayStation 2 based) | Inferred. Requires PS2 emulation; no viable ARM implementation |
| Sega Model 2 | Inferred. Drivers exist in current MAME but the board is slower to emulate than System 23 |
| Sega NAOMI under MAME | Inferred — see Flycast below for the other route |
| Namco System 12 | Inferred. Lighter than the above but still demanding |
For the record, QuestGun's own cost is about 0.6 ms per frame — under 5% of the frame budget. When something runs slowly, essentially all of that time is the emulator core, not the cabinet around it.
Dreamcast and NAOMI do not currently work
Measured, repeatedly. Flycast loads this content completely — BIOS, data, graphics, audio, correct hardware ID — and then the app closes as soon as emulation begins.
[VMEM] Virtual memory file allocation failed: errno 13
[VMEM] Warning! nvmem is DISABLED
Flycast cannot allocate the memory arena it needs, because Android blocks the mechanism it uses for apps targeting API 29 or higher. Its recompiler then reads from unmapped memory and the process dies. Confirmed across two different Flycast builds and both the arcade NAOMI and the Dreamcast disc routes.
This is a fault in the core on this platform, not a QuestGun bug and not a setup error on your part. It may be fixed by a future Flycast release. Until then, use MAME. If Flycast content does crash the app, the next launch skips it automatically and opens the menu instead of crashing again.
PlayStation — untested
PCSX-ReARMed and SwanStation are supported and pre-configured for GunCon, and PCSX-ReARMed needs no BIOS file. Nothing has been run on either, so no claim is made about PlayStation support yet.
Cores
Cores are not bundled. Download the Android arm64-v8a build of the core you want and copy it into the app's cores/ folder.
| Core | Runs | Status |
|---|---|---|
| mamearcade (current MAME) | Arcade | Recommended. Widest hardware coverage. ~250 MB |
| mame2003-plus | Arcade | Fast and light. Best for older boards |
| mame2010 | Arcade | Middle ground |
| pcsx_rearmed | PlayStation | Installed and configured, not yet proven |
| swanstation | PlayStation | Installed and configured, not yet proven |
| Flycast | Dreamcast / NAOMI | Does not work on Quest — see above |
Match your files to your core. MAME data is tied to the MAME version a core was built from, and a mismatch is rejected. This is the single most common cause of "it will not load". Short names can differ between MAME versions too, so a file that is correct for one core may be both the wrong contents and the wrong name for another.
Known gaps in the app itself
- Settings are not saved between launches. Screen placement and gun calibration reset every time.
- No guided first-run setup. A new install still shows an empty ROM list and expects you to have read the guide. The demo range at least gives it something that works out of the box.
- One player only. No two-gun support.
- No save states.
- A slow core drags the whole interface down with it, because emulation runs on the display thread.