If you’ve ever fiddled with SideQuest, you might have tried changing the settings on your Meta Quest one day. To do this, you must connect your headset to your computer or to your Android smartphone via the USB cable and / or authorize wireless debugging, then go to the « Device settings & tools » as in the screenshot below.
From this screen, it is possible to change the resolution of the textures (1) and to modify the performance of the central processor and the graphics processor (2), or the fixed foveal rendering (3).
The result is an often sharper, more detailed image and/or smoother application.
The following images show the texture resolution setting (512px vs 3072px) in the Walkabout Mini Golf game.
However, these operations require going back and forth on the computer or smartphone, and taking off your headset to make new settings from the SideQuest application, as soon as the headset restarts, or we want to modify another game.
The solution we offer is a tool, in the form of a macro (see our tutorial: Programming and automating our VR headset using macros (FR)) which allows us to free ourselves from repetitive SideQuest manipulations, to keep the headset on our head and to store in memory a specific setting for each game that we want to modify. It then becomes possible to juggle our favorite games, set as we want.
And concretely, how is it going? Well, when a game that we want to set up launches, its custom profile (entered by hand or predefined by us) is automatically applied and a notification appears, indicating the success of the operation.
Keep in mind, however, that this does not improve the performance or the sharpness of PC VR games. Indeed, it is the graphics card of the computer that works to generate the images and send them as they are to the Meta Quest, which simply acts as a screen.
We configure the graphics performance profiles by games in a variable acting as a configuration file.
The profile setting contains the following parameters. They are optional and if you leave them blank, the default values will be applied.
- TS (Texture Size) : changes the rendering quality of textures for each eye. It is a kind of supersampling.
Below is the default resolution (per eye) and native resolution of Meta Quest 1 & 2.
Per eye (px)
The screen resolution is much higher than the default Quest resolution. This is why we are tempted to fully exploit, or even exceed the native resolution to obtain better display fineness. In the case of Quest 2, you will notice that the default resolution is equal to the native resolution of Quest 1. This is why a lot of content appears blurry to us.
Here is the size of the textures available by default. These are the ones listed in the SideQuest application. These are the resolutions for each eye.
Per eye (px)
512 x 563
768 x 845
768 x 845
1024 x 1127
1440 x 1584
1536 x 1690
2048 x 2253
2560 x 2816
3072 x 3380
Since version 2.0.0 of the Quest Games Optimizer, we can set an « exotic » texture resolution, at 2000px for example, instead of the values listed above.
Be careful, just like on a computer, playing on oversampling induces a much greater need for resources. As a result, it becomes necessary to increase the overall performance of the headset in order to maintain a satisfactory frame rate and thus avoid lags.
- FFR (Fixed Foveated Rendering) : Defines how the image is rendered at the outer edges of the image. It is possible to keep the image sharpness in the center of the lens while degrading the image around the periphery. The result is a performance gain because the headset no longer calculates the entire image in high resolution. In principle, this artifice is almost imperceptible to our eyes, because the lenses by their convex design blur the image as our look moves away from the center of the image.
The higher the value, the more blurry the image is on the sides and the more relieved the graphics chip is.
* By default, the helmet uses dynamic foveal rendering.
- Here is a configuration sample. Note that for the first profile, the FFR was not indicated. It will therefore be a dynamic FFR which will be used and managed by the headset. You can do the same with TS and PERF :
« MyGame1;TS:2048;PERF:2; | MyGame2;TS:3072;PERF:3;FFR:4;| »
Each game profile and application is separated by the character « | » and each parameter ends with « ; ».
It is possible to enter as many profiles as desired. However, think about enriching the trigger of the « Quest_Games_Optimizer » macro to add the games you want to optimize.
The screenshots below are taken from the games After The Fall (read our review (FR)) and Mission: ISS for which we have established graphics performances profiles. The difference in sharpness of the scenes is clearly visible between the « BEFORE » and « AFTER » images.
Keep in mind that these manipulations are not trivial and can cause the headset to overheat, become unstable, drop in frame rate and decrease battery life. However, knowingly modifying these parameters can be beneficial in many situations and can bring real added value in video games in particular.
These manipulations need to be applied in the right way. If you increase the resolution of textures, for example, you will probably have to increase the performance of the CPU and GPU or play with the fixed foveal rendering.
WARNING: before embarking on the following manipulations, we would like to point out that we are not held responsible for any possible inconvenience that may arise on your device during its configuration. Also, you act with full knowledge of the facts.
The following video is an installation guide, but also serves as a demonstration of the capabilities of the Quest Games Optimizer. The installation of the .apk (download at this address), the activation of the plugin and the recovery of the « Quest_Games_Optimizer » macro from the Macrodroid application are to be done only once.
It’s not visible in the video above, but when a profile is detected and applied, a notification pops up, synonymous of success.
Be careful, even if the possibilities of this tool seem miraculous to you, there is a catch. As long as Super User (root) rights are not available on the Meta Quest, we need, each time the headset is physically restarted (no problem in standby mode), to enable Wi-Fi debugging from the SideQuest application, the Oculus Developper Hub or manual commands. This involves plugging the headset into our computer or our Android smartphone, each time the headset cold starts. This is a limitation of Android system that resets ADB debugging settings on every reboot. The same thing happens if you do your manipulations manually through the SideQuest application.
To learn more about Macrodroid, ADB and the purpose of the plugin, go to the « Lexic » section at the bottom of the tutorial.
We provide many graphics performance profiles already pre-established and tested by us. To retrieve our latest profiles, you just need to press the Power button twice (turn off then turn on the screen or standby mode). The Quest Games Optimizer will save them for you. If ever the configuration that we offer you does not please you, you can overwriting it by filling in your own configuration in the « appsPerformancesProfiles » variable.
We make sure that the profiles we offer you meet certain specifications :
- Improved sharpness compared to the original game ;
- Maintaining the number of frames per second (FPS) at the level of the frame rate of the headset defined for the game. We therefore try not to go below constant 72fps for a frequency of 72hz in order to avoid lags as much as possible ;
- Moderate heating of the battery when possible.
The notification does not appear :
- Check that the application you want to configure is present in the macro’s application trigger ;
- Check the spelling of the applications you have configured in the « appsPerformancesProfiles » variable ;
- Remember to separate the profiles with « | » and the parameters with « ; » ;
- Remember to check that the « do not disturb » option is disabled on your headset ;
- Please note, we regularly add new game profiles to our Cloud database but many are still missing, so some games should be configured on your side as long as we have not saved them in our database.
If the graphics performance profile does not apply despite the presence of the notification of the applied profile, or you encounter an error :
- Check that Wi-Fi debugging is still enabled. To do this, simply check in SideQuest if the connection lights are green and reactivate wireless debugging if necessary ;
- Relaunch the ADB Shell [Tasker Plugin] ;
- Accept USB debugging and RSA key again ;
- In some cases (quite rare), if the headset is busy for example, the macro could not be triggered in due time when launching a game. Also, the profile could not be applied correctly. You will be notified if the processing time exceeds a certain time limit (it does not cover all cases) and you will be prompted to simply relaunch your game.
We are constantly improving the Quest Games Optimizer. At the time of this tutorial, the « Quest_Games_Optimizer » macro is in version v2.0.0, but you may receive a notification indicating the presence of a new update to download.
To update the macro, all you have to do is go to the « Macros » tab of the Macrodroid application and do a long press on the tile of the macro in question, then click on « Delete ».
Be careful, after reinstalling the macro, you will have to re-configure your applications trigger.
2.0.0 [2021-12-29] (Quest_Games_Optimizer)
- From now on there will be only one macro: « Quest_Games_Optimizer ». It replaces the two existing ones (« OQ_APP » & « OQ_APP_Reset ») ;
- Automatic headset configuration ;
- Automatic creation of the « appsPerformancesProfiles » global variable ;
- Initialization of the « appsPerformancesProfiles » global variable with an example profile ;
- Possibility to define custom values for the size of the textures. No need to respect the default sizes (2048, 2560 etc …) ;
- Possibility of obtaining profiles from an external source such as a personal FTP via the « appsPerformancesProfilesCustomUrl » global variable. Ex: http: //myDomain/myProfilesFile.txt ;
- Separation of Cloud profiles for Quest 1 and Quest 2 ;
- Refresh Cloud profiles by pressing the Power button twice (screen off then on or standby mode). It’s no longer automatic ;
- Back in the home, the headset will use dynamic foveal rendering by default ;
- Back in the home, the headset will use a dynamic CPU and GPU level by default ;
- Debugging mode ;
- Minor fixes and code optimization ;
- NB: remember to remove or deactivate the old OQ_APP & OQ_APP_Reset macros.
1.1.0 [2021-11-28] (OQ_APP & OQ_APP_Reset)
- Graphics performance profiles automatically downloaded from the cloud. The list is updated regularly ;
- The « appPerformancesProfiles » global variable is used to override the profiles coming from the cloud, if necessary ;
- Profile detection notification ;
- Profile application notification ;
- Notification in case of error ;
- Macros update notification ;
- More permissive configuration settings.
1.0.1 [2021-11-16] (OQ_APP & OQ_APP_Reset)
- Removal of blanks at the start and end of configuration.
1.0.0 (OQ_APP & OQ_APP_Reset)
We would particularly like to thank the following people :
- Cédric Carvalho for his excellent work on the new logo for the app. He was able to meet our expectations and bring his personal touch. The result is a dynamic logo, a well-defined visual identity ;
- Nova Lacertae (invaluable ally of the gamergen / vr team) for its dedication as a finder of profiles that will soon allow you to play with a long list of pre-configured games ;
- Guilhem Esteve for his ideas brought to version v2.0.0 and his outside view as a developer ;
- Et Samuel Hédouin (developer and writer at gamergen / vr) for getting out of his mind and developing this great tool that allows us today to optimize our Meta Quest.
- After The Fall (read the review (FR))
- Anne Frank
- Bait !
- Beat Saber
- The Thrill Of The Fight
- Ocean Rift
- Carly And The Reaperman
- Clash Of The Chefs
- Dance Central
- Demeo (read the review (FR))
- Disc Ninja (read the review (FR))
- Drop Dead Dual Strike
- First Contact
- First Step
- Fruit Ninja
- Gorilla Tag
- Home After War
- I Expect You To Die
- I Expect You To Die 2
- Job Simulator
- Journey of the Gods
- Learn Languages VR By Mondly
- Mission: ISS
- Painting VR
- Physics Playground
- Poker Star VR
- Population: One
- Racket Fury
- Real VR Fishing
- Republique VR
- Robo Recall
- Smash Drums
- Sports Scramble
- Stride (read the review (FR))
- Super Hot VR
- Ragnarok (read the review (FR))
- Tetris Effect
- The Curious Tale Of Stolen Pets
- The Room VR
- Touring Karts
- Walkabout Mini Golf
Let us know in the comments or on the networks if you find any new configurations or just if the ones we offer can be improved. We are counting on the community to grow this list.
Android application available for smartphones, allowing you to program your Android device in the form of macros and to perform tasks automatically according to numerous rules and conditions (read the full tutorial (FR)).
ADB is the basic tool for developers and all hackers who want to operate their Android device from a computer. It is part of the SDK (Android Software Development Kit). ADB stands for Android Debug Bridge. It is a bridge between the Android system and our computer, or more generally our Android device and another device. It allows developers (and others in the Android ecosystem) to communicate with their device through commands. Everything works on the client-server (or slave-master) model. adbd, the ADB deamon (background process) runs on the Android device and can receive commands from an ADB server, installed on a computer or other device, and thus execute them. In most cases, it is used through a USB connection. This is what happens when we plug the Meta Quest into our computer. The client (our headset), goes into debug mode and receives commands from the server (our computer and SideQuest), such as changing the resolution of textures via a Shell command.
Plugin ADB Shell
The ADB Shell plugin is an extension that is grafted onto the Macrodroid application. It allows you to send ADB Shell commands to a remote Android device, either through a USB connection or over Wi-Fi. But it goes even further. It also allows the device to send commands to itself using the ADB protocol built into the Android system. But in order to do this, Wi-Fi debugging must be enabled.