Skip to content

petermg/TheOcularMigraineMCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

The Ocular Migraine: {Dev Mode} Master Control Program.

GitHub Downloads (specific asset, all releases)

GitHub Downloads (all assets, all releases)

GitHub Downloads (specific asset, all releases)

This is an application for use with the Oculus / Meta Quest mobile VR headsets, including the original Oculus Quest, Oculus / Meta Quest 2, Meta Quest Pro, Meta Quest 3.

Summary of Features:

  • ADB permissions SURVIVE a REBOOT. PC is only required for the initial installation.
  • Change Headset Resolution.
  • Change CPU level (0-5), set as static or dynamic.
  • Change GPU level (0-5), set as static or dynamic.
  • Change Fixed Foveated Rendering level (0-4), set as static or dynamic.
  • Create detailed custom resolution profiles for games which can be selected to be AUTOMATICALLY applied to that application or game upon launching that application or game (like Quest Games Optimizer does).
  • Backing up games, which includes the APK, OBB files if any, and data files and folders located in /sdcard/Android/data/.
  • Restore game backups after moving them to your PC by using the included bat file in the backup folder.
  • Restore game backups directly from the headset backup folder.
  • Modify detailed recording settings such as bitrate, resolution, frame rate, rendering area, recording eye, with the option to save them to a custom recording profile which can be loaded for recording different applications and games.
  • Invoke recording with STEREO AUDIO on the Quest 2 and Quest 3 (maybe Quest Pro?)!
  • Video Editing. Because the Quest notoriously has problems with out of sync audio in it's recordings, you can adjust the audio offset and speed/tempo (stretching or compressing the audio) along with the start and end trimming of your video.
  • Inject 3D metadata into your 3D recorded video making it ready to upload to YouTube.
  • Set redirect/shortcut apps to launch apps from UNKNOWN SOURCES via the main menu so you don't have to go into the UNKNOWN SOURCES section.
  • Set Start Up application, for example to launch a third party launcher upon reboot. On my Quest 3 I have my start up app set to Lightning Launcher.
  • KIOSK MODE: Set an application to be the only application that can be launched and PREVENT the user from EXITING that application. This mode is password protected.
  • Access Control Lists: Create a black list or a white list. Enabling one list disables the other.
  • Web Server: for file sharing and uploading via http. You can select which folder you want to share over HTTP. You can also enable UPLOADING to your headset over HTTP. Both of these options are independent of each other.
  • Install OVR Metrics Tool and display overlay performance statistics for performance evaluation of Game and Recording profiles.
  • Install and launch SideQuest
  • Install and launch F-Droid
  • Install and launch File Manager +
  • and more...

YouTube Guide Version:

Table Of Contents:

(click on the arrows for each screen to open the Table Of Contents for that section)

The Main Screen

The Recording Screen

The Tools Screen

The Misc Screen

Support

GitHub

Discord

Reddit

Installation YouTube Version

  1. Make sure your device is in developer mode. If it isn't, watch this 60 second video here which shows you how: https://youtu.be/jB1gwgSpU3E

  2. Download the zip file "Install.zip" and extract it to any folder on your computer.

image

  1. Download the latest version of The Ocular Migraine apk file from the latest releses here.

  2. Take the APK you downloaded and drag and DROP it onto the bat file named "Installation.bat" from the zip file "Install.zip" that you extracted earlier and follow the onscreen prompts. DO NOT CLOSE THE BAT FILE WINDOW after the file has been installed! Press any key to continue as it then runs the command "adb tcpip 5555" which opens up the port on the Quest for this application to authenticate itself on the very first run. This is the one and ONLY time your PC will be required for this!

  3. Put on your headset.

  4. Go to UNKNOWN SOURCES.

  5. Click on "The Ocular Migraine". You will see the following screen: image

  6. After it begins to load, you will be prompted a total of 3 different times with a prompt that says "Allow USB debugging?". Each time you must select the option at the bottom which says "Always allow from this computer". After you select this option the first time, the applicaiton will close. Launch it again by clicking on it from UNKNOWN SOURCES and you will be propmted 2 more times to "Allow USB debugging?" Again select "Always allow from this computer".

  7. Now once the app is up and running, select "MISC" from the bottom and it will take you to the MISC page.

  8. Select "Battery Optimization Settings" to open the Battery optimization settings.

  9. Make sure "The Ocular Migraine" is set to "NOT OPTIMIZED". By default soon after this application is installed, the Quest will "optimize" it, which ends up KILLING the app from running in the background. This prevents the app from being able to initiate custom gaming profiles. If you do not see The Ocular Migraine listed under "NOT OPTIMIZED", click on the drop down menu showing "NOT OPTIMZED" and select "ALL APPS". Find The Ocular Migrine and click on it and select "Dopn't optimized" then click DONE. If you have already found The Ocular Migraine set as NOT OPTIMIZED without changing anything, chances are the Quest will end up "optimizing" it later. So you may want to revisit these settings later on to change it back. I have found once I change it back manually, the Quest honors the user selection.

  10. Next select "Notification Settings" from the MISC page.

  11. Find The Ocular Migraine, if it's not already showing, you can select ALL APPS from the dropdown menu. Click on the toggle to DISABLE notificaitons for The Ocular Migraine. This is NOT required but recommended.

NOTE: From now on, after each reboot of your device, after about 10 to 15 seconds you will see a BLACK SCREEN, press the OCULUS/META button then you will see the prompt to "Allow USB debugging?". Select "Always allow from this computer" each time. This happens after a reboot of your device. It will not ask this question again until the next device reboot.

Each screen has 3 sub-sections, top, middle, bottom.

Main Screen:

image

Main screen TOP section:

image

Statistics

image

From this section you will find a statistics read-out showing things like your device name, IP address, SSID name and signal strength, free space, and battery level and currently enabled display resolution. If you click on this it will update. It does not update the statistics in realtime.

About

image

Clicking on "About" will take you to a screen showing the current version number of the app, credits, and IF an update is avialable, an UPDATE button that will update the app (this will ONLY be shown if an update is available). NOTE: A check will be run to see if there is an available update whenever you click on ABOUT. You will also find a link to this online help document if you click on "Help".

image

Font Size Adjustment

image

Below "About" you will see "Font Size". If you click on this you will have the option to change the scale of the font for the application.

image

Resolution Slider

image

"Resolution Slider" is a slider where you can slide the cross-hair to the left and right. Left REDUCES the resolution and right INCREASES the resolution. However you must click on "Set Resolution" to apply your resolution setting. The slider also has the options "AR 1:1.1" and "x32". The first is the aspect multiplier of the slider, for example, if the height was set to 1000, the width is set to 1100. You can change this "AR" by simply clicking on it, you will be prompted for a new multiplier factor, and it will change the mathematical product of the slider. Also there is the "x32" option. This is the factor by which the notch of the cross-hair is multiplied by. The cross-hair starts on the left at 32 and all the way on the right goes to 130. Changing the default "x32" to another number changes the multiplication factor of the notches. If you click on the resolution numbers up top (i.e. where it says 1440 x 1584 on this help page) you will be prompted to manually set your resolution width and height by direct input.

FFR Level

image

"FFR Level" allows you to set the Fixed Foveated Rendering amount. For best performance set this to 4 and keep "dynamic" unchecked. This way FFR level 4 is forced always on. If you check "dynamic" it will only go up to 4 when required to maintain framerate.

image

CPU Level

image

"CPU Level" allows you to change the CPU to a set clock level. Do this if you are confident you know what you are doing. Setting this to 5 will improve performance at the cost of battery life.

image

GPU Level

image

"GPU Level" allows you to change the GPU to a set clock level. Setting this to 5 will improve performance at the cost of battery life.

image

Main screen MIDDLE section:

image

Display Frequency

image

"Display Frequency:" The options are 60hz, 72hz, 90hz, 120hz, Adaptive and Manual. Only the Quest 2 headset supports all 4 preset frequencies. The Quest 1 cannot go past 72hz. The Quest Pro cannot go past 90hz, nor can it do 60hz. The Quest 3 cannot do 60hz. Click on the frequency you want to set and it will be set if supported for your device. The Quest 3 supports adaptive refresh rates in incriments of 5hz whereas the Quest 2 does it in incriments of 1. I am not sure about the Quest Pro. You can use the OVR Metrics Tool overlay to see these changes in real time, which can be enabled from the Tools page.

Default Display Settings

image

If you click on "Default Display Settings" any custom display settings you enabled will be cleared, thus setting the device back to default settings.

Reset ALL settings to default

image

"Reset ALL settings to default" will clear any settings changes you made on the headset. (Actually this will clear ALL "oculus.debug" setprop settings). This will NOT remove any custom profiles nor will it erase any files on the device nor anything you saved to the device.

Manage Game Profiles

image

Manage Game Profiles allows you to load any saved profiles you have. Select from any of the 3 folders, DefaultProfiles, RecordingProfiles, or GameProfiles. It will read the selected profile and open a window showing the details of the profile. You then have the following options:

  1. Delete - Deletes the saved profile.
  2. Cancel - Closes this screen without doing anything else.
  3. Delete Default - This will delete the default profile for the game. This option will ONLY be shown if a default profile exists for the selected game.
  4. Set Default - This will set the currently shown profile as default for the selected game.
  5. Run - This will run the game with the profile listed, BYPASSING any default profiles.
Manage.Game.Profiles.mp4

Save Game Profile

image

Save.Game.Profile.mp4

"Save Game Profile" will save your custom display settings, (resolution, refresh rate, FFR amount, etc.) to a text file for whichever game you choose. You can also set these profiles to AUTOMATICALLY run by DEFAULT whenever you run the game you specify for it. When you click "Save Game Profile" you will be prompted to select the game you want to save the profile for. You will also then be prompted with a summary of the profile you are about to save. In order to create a custom game profile, do the following:

  1. Move the Resolution Slider to your desired game resolution and press Set Resolution.

  2. If desired, set your Display Frequency, CPU Level, GPU Level and FFR Level.

  3. Click on Save Game Profile. image

  4. Select the game you want to save the profile for.

  5. Make your selection of "Yes" (creates loadable non-default profile), "Make Kiosk App" (sets the game as the Kiosk App), "Set as Default" (saves the profile AND makes it the default profile to load when you launch the game), or "No", which cancels the action without saving the profile.

image

  1. Run your game from the normal game selection menu and it will automatically load it's default profile if you saved one for it. Otherwise you can go to "Manage Game Profiles" on the Tools page and load different profiles you have saved for your games, you can have multiple profiles per game, and run ones from that menu without invoking the default profile being loaded. This is good for testing different profiles or just switching between different profiles for different reasons, like recording vs just gameplay.

Game Backup

"Game Backup" will open a menu to back up (or restore a backup of) the game of your choice. This will give you the option to backup the entire game, (i.e. APK, obb and data folders from /sdcard/Android/), or to just back up the data files (from /sdcard/Android/data/yourgame). This can only back up the data folders that are stored in "/sdcard/Android/" From this same menu you can RESTORE your game backups with the option to restore the ENTIRE game, (APK, OBB, Data files), or JUST the data folders. Again, this only applies to data folders in "/sdcard/Android/" All backups will be made in /sdcard/MCP/Backups/name-of-your-game. Along with the backup files there will be additional files, a Windows binary of adb and a bat file. This will allow you to restore your backups directly from a Windows PC without the need to copy the backup files back to your headset before restoring them. Just copy the backup folders to your Windows PC, then run the bat file for the game you wish to restore and select your restore options. It will restore your game directly from your PC. (HINT: If you use a file manager that has OTG support, such as File Manager +, you can move the backups from your headset to the OTG drive. If you want to restore them you must first copy them back onto the headset.) To get started, click on

image

You will be presented with the following menu: image

BACKUP OPTIONS:

Full Game Backup

"Game + Data" (backs up the APK file of the game, plus any obb and data folders contained in /sdcard/Android) Please note, larger games will take longer to create backup files.

Backup_Full.Game+Data.mp4

Game Data Backup Only

"Game Data Only" (backs up only the data folders for the game from /sdcard/Android). This will create a dummy APK file named "DATA ONLY APK" for selection during the restore option.

Backup_GameDataOnly.mp4

RESTORE OPTIONS:

Full Game

Full Game (restores the game by installing the APK files and copying it's data and obb folders back to /sdcard/Android)

RestoreFullGame+Data.mp4

Game ONLY

Game ONLY (Installs the APK file and copies any OBB folder back to /sdcard/Android)

RestoreGameOnly-NoData.mp4

Game Data

Game Data (just copies the data folder back to /sdcard/Android). You can restore JUST the game data of any backups you have created, including from FULL backups.

RestoreGameDataOnly.mp4

Main Screen Bottom Section

image

User Defined Resolution Presets

Here you can create your own global resolution presets. This fisrt reads all of your device's display settings and then creates a profile with them. HOWEVER, it will NOT read the current device resolution that is set but rather it will read what the resolution SLIDER is set to and save THAT to the global preset. I might change this later on based on user feedback. On the bottom you have three page options, Recording,, Misc, and Tools. Clicking either of those will take you to those pages.

image

Disable

image

Clicking on Disable will disable The Ocular Migraine from monitoring app launches. This will prevent the gaming profiles from working. If you disable it, it will close the app. Just run The Ocular Migraine again and it will be re-enabled.

Screen Navigation

image

This is how you navigate between pages, or "Screens". Your options are "Main", "Recording", "Tools", and "Misc".

Recording Screen:

image

Recording Screen Top Section

image

Resolution Presets

image

On the top section of the Recording Screen you can set different recording resolutions. There are custom resolution presets and the option to set your own custom resolution. The presets are as follows:

1920x1080(16:9) - this is the Full HD resolution, pretty self explainitory.

3840x2160(16:9) - this is 4K resolution, only recommended for the Quest 3.

1280X720(16:9) - "HD" resolution.

3840X1080(32:9) - I created this preset thinking that the device would record both eyes in a 16:9 aspect ratio. However when telling the device to record both eyes, it records each eye in a 1 by 1 aspect ration. This seems not to be able to be changed. However you can still use this when recording in 3D if you want, but this does NOT set the device to record in 3D, it only sets the resolution, you will need to click on [Both(3D)] in the Middle Section under Recording Eye to record in 3D.

2560X720(32:9) - see notes from previous preset.

1080X1920(9:16) - makes a vertical recording resolution like for YouTube Shorts, tiktok, etc..

720X1280(9:16) - makes a vertical recording resolution like for YouTube Shorts, tiktok, etc..

Custom Resolution

image

Here you can enter in your own recording Width and Height.

Recording Bitrate

image

Select this to set your recording bitrate.

Recording Screen Middle Section

image

Recording FrameRate

The following options are:

  • 60fps
  • 72fps
  • 90fps
  • 120fps
  • Manual
  • Hertz

image

Please note that if you select a framerate to record that is above your display refresh rate, the display refresh rate will be raised to the framerate selected. If you select a recording framerate that is lower than your display refresh rate, the refresh rate will remain unchanged. The Quest 1 probably cannot record any higher than 72fps. The Quest Pro probably cannot record any higher than 90fps. The Quest Pro and the Quest 3 even though they cannot do 60hz refresh rate are still able to record at 60fps. The Quest 2 can record at all listed framerates.

Manual: Selecting this option will set your device to record at a custom framerate. This doesn't always work as intended so test this by making a test recording after setting it to verify.

Hertz: This sets the device to record at the framerate of the display frequency.

Recording Eye

image

The following options are:

  • Left Eye - Records from the left eye.
  • Both(3D) - Records BOTH eyes, for 3D.
  • Right Eye - Records from the right eye.

Start Recording and Stop Recording

image I don't know if this works on the Quest Pro or not. Let me know! This uses a different method of recording than the normal user activated recording method. On the Quest 3, it records in stereo. On the Quest 1 it records in mono. This uses "metacam" for recording, a built-in method that is used by the Meta Quest Developer Hub. This method is useful if you want to record in stereo on your Quest 2 or Quest 3 (again not sure if this works on the Quest Pro yet, waiting for user feedback). This method does record on the Quest 1 but it's not in stereo.

Recording Screen Bottom Section

image

FOV Crop

image

This seems to be a little known feature that allows you to crop the rendered areas of your screen. This concentrats whatever your set resolution is into this cropped area, thus making the image much clearer. This is beneficial for gameplay recordings, it improves the visual quality of them greatly. Here are the following options:

  • Up - crops the top part of the render area.
  • Down - crops the bottom part of the render area.
  • Outward - crops the outward edges of the render area, the edges of the screen that are away from your nose for each eye.
  • Inward - crops the inward edges of the render area, the edges of the screen that are toward your nose for each eye.
  • Remove Crop - removes any crop you have set.
  • Optimal Crop - enables a preset crop that should correctly match up with the rendering area for recording.

Save Recording Profile

image

Saving a Recording Profile creates a recording profile that stores all of your current disiplay information, such as resolution, GPU/CPU levels, FFR level, Refresh Rate and also your recording settings such as recording bitrate, recording eye, recording resolution, screen crop and saves it to a recording profile which you can load for the game you have selected or even load it for use with any game. You can even save it as a default profile using the Manage Game Profiles option on the Main Screen. In order to create a Recording Profile, just set whatever resolution you want from the Main Screen (if you want anything other than the default device resolution), along with any FFR Level, CPU Level and GPU Level selections, set the recording resolution and framerate and bitrate and eye recording selection then click on Save Recording Profile. It will propmt you to select which game you wish to save it for, but this does NOT make it a default profile for that game. The game selected will still be run with it's default profile unless you load it's recording profile from the Load Recording Profile screen and select RUN.

SaveRecordingProfile.mp4

Load Recording Profile

image

Clicking on Load Recording Profile you will be able to load any saved recording profiles. After selecting your recording profile you are presented with the following options:

  • Load Only - This will load the settings in the selected Recording Profile onto the headset.
  • Run - This will engage the settings from the Recording Profile and run the game it was saved for.
  • Delete - This will delete the selected Recording Profile.
  • Cancel - This will cancel the operation.
LoadRecordingProfile.mp4

Inject 3D Metadata

This is used to inject 3D metadata into the videos you've recorded after selecting "Both(3D)" for eye recording, for upload to YouTube. This will allow your video to be played back in 3D from YouTube in YouTube VR for sharing with friends.

  1. Click on Inject 3D Metadata

image

  1. You will be prompted to select your video file:

image

  1. You will be propmted to CONFIRM your video file in a different window showing the entire listing with full names: image

  2. You will be prompted to set the Audio Offset. This is in case your audio is out of sync. You can play with this to try and fix that. This will shift the audio forward or backward depending on your input. Positive values makes the audio delayed by that amount and negative values plays the audio earlier by that amount. image

  3. You will be prompted to set the Audio Tempo. This is useful for when your audio is not just out of sync but because gradually out of sync over time. This will stretch your audio to play slower/longer or faster/shorter based on your input here. A value of 1.0 keeps the audio rate untouched. A value of 1.5 makes the audio play faster, at a rate of 1.5x. A value of 0.5 makes the audio play slower, at half speed. image

  4. You will be prompted to set a start time. If you leave this unchanged, it will not trim the beginning of your video. image

  5. You will then be prompted to set a Trim End Point. The default is set to 9 hours so if you don't touch this the end of your video will remain trimmed since there's not gonna be any recordings this long. image

  6. You will be prompted to accept or change the aspect ratio if needed. This should NEVER be needed unless the Quest 3 no longer records 3D in a 1:1 aspect ratio. So just click on the green arrow to accept. image

  7. You will be shown the ffmpeg command about to be run. You can modify this commend from here before pressing OK, if you know what you're doing. Otherwise don't touch this: image

  8. You will then be shown a summary of the options you have selected before continuing to proceed with processing your video file.

  9. Wait while your video file is being processed. This might take a bit depending on your file size and length. The audio will be recompressed, but the video is not being recompressed.

  10. After it is finished it will show you the command output results: image

  11. Your video file is now ready to be uploaded to YouTube for 3D processing. You will find it in /Oculus/VideoShots/3D.

Process 2D Video

image

This option does the EXACT SAME THING as the INJECT 3D METADATA option except that it does NOT inject 3D metadata. It does all the other options however, such as set the audio offset, tempo, start and end trim points.

adaclocks

image

This option enables or disables adaclocks. This seems to have something to do with audio clocks and maybe affect recording sycn one way or another. Sometimes it seems to help, other times it seems to make no difference. This feature seems to be the Adaptive Clocking feature, which scales the performance of the system based on need. Setting this to 0 disables this.

Swap Interval

image

The Swap Interval settings is a bit hard to explain. THIS PAGE seems to explain it in a very technical manner, under "Frame Timing". In practice this is what it seems to do, if your refresh rate is 90hz and you have the Swap Interval set to 1, when you record the framerate will be 90fps. However if you set the Swap Interval to 2, it will halve the recorded framerate. This is automatically set to "1" in my framerate recording presets.

Reset Recording to default

image

Resets all recording options back to system defaults.

Tools Screen:

image

Tools Screen Top Section

image

Install APK via ADB

image

Clicking on this will prompt you to select an APK to install. It will then be installed via the internal adb binary.

Input ADB command

image

For anyone who wants to play with the internal ADB binary.

ADB Shell command

image

Runs a command after "ADB shell".

Console Output Screen

image

This is where you will see the output of "ADB command", "Shell command", and "ADB Shell Command" options.

Tools Screen Middle Section

image

Enable OVR Metrics Tool Overlay

image

This will cause the OVR Metrics Tool to display an overlay consisting of statistics to monitor the performance of your game. This is useful when testing out new gaming profiles. If the OVR Metrics Tool is not installed, this will install it for you automatically.

File Manager

image

This will open File Manager +. If it is not installed, it will download it and install it then open it.

SideQuest

image

This will open the Android version of SideQuest. If it is not installed, it will download it and install it.

Set Kiosk Mode App

image

This will prompt you to set up Kiosk mode. This is how Kiosk Mode works:

  1. Prompted to select your app for Kiosk Mode.
  2. Prompted to create a password.
  3. When you are running your Kiosk mode app, hold the volume up for a few seconds until you are prompted to enter the Kiosk Mode password.
  4. Kiosk mode will be enabled if you entered the password correctly.
  5. In order to get out of Kiosk Mode you must restart your headset and open The Ocular Migraine and input the correct Kiosk Mode password to disable it.
  6. If you enter the wrong password at this point, the Kiosk Mode app will launch again and you will need to reboot your headset to try again to re-enter it.
  7. The only time you do NOT need to reboot your headset is in cases where the application you are running has an "EXIT" button allowing you to quit the application.
  8. Kiosk Mode effectively "disables" the Oculus / Meta home button on the right controller. You can still however hold it down to recenter yourself.

Un-set Kiosk Mode

image

This will prompt you for the Kiosk Mode password and then it will entirely disable Kiosk Mode. This is here so that pressing the Volume Up button for an extended amount of time no longer triggers the Kiosk Mode enable password prompt.

Create Shortcut App

image

The Create Shortcut App feature allows you to redirect one app to another. This is useful especially for apps that are in the UNKNOWN SOURCES menu. You can substitute an offical app for one that's in your UNKNOWN SOURCES in which case you don't have to go to the UNKNOWN SOURCES menu. Official apps are able to be pinned to the bottom menu, making it even more convienent to launch an UNKNOWN SOURCES app directly from the main menu! In the video example below, I create a shortcut for the app "File Manager +" that's in UNKNOWN SOURCES using an official app, which allows me to launch "File Manager +" simply by launching the official app I set as it's shortcut. Now obviously you cannot run the app you are using as the shortcut while this is in effect. To remove this shortcut just use the Manage Saved Profile feature and find the saved profile in the Default Profiles folder, load it and select DELETE, then you will be able to run the original program again. I recommend using this with apps you have no interest in running. I personally use this to launch this exact app, The Ocular Migraine. I have set the ESPN app as the shortcut. When I click on it, it runs The Ocular Migraine instead.

Create.Shortcut.App.mp4

Create Startup App

image

This allows you to set an application to launch upon start up. Useful for an alternate launcher for example.

Disable Startup App

image

Disables the auto startup of the previously selected application.

Tools Screen Bottom Section

image

Access Lists

Here you can create access lists. NOTE: If you enable the white list, the black list is disabled. If you enable the black list, the white list gets disabled.

Create White List

image

This will prompt you to select applications to be white-listed. After which if you try to launch any other application other than those on the white list, they will be immediately shut down.

Create Black List

image

This will prompt you to select applications to be black-listed. If you try to run any application on the black list it will be immediately shut down. You can alternatively use the built in "lock" function for applications that Meta has now enabled in the menu for each app.

Disable Access Lists

image

This disables the access lists without deleting them. The purpose of this is so that when you create the list again, it will reload your previously created list with your previously select applications to which you can add or remove applications from that list. It's useful if you just want to add or remove another application or two and not have to create your list all over from scratch.

Delete Access Lists

image

This will actually DELETE the access lists files, both white list and black list. This is useful if you want to create another list from scratch without having anything from before selected.

Access List Enforcement Method

image

Switches between two different modes of enforcing the access lists. Depending on what Meta will do with it's firmware in the future, certain features might break so I tried a couple of different methods. If you find one doesn't work, try switching to the other.

Misc Screen:

image

Misc Screen Top Section

image

Switch App Launch Detection Method

image

image

Clicking on this will toggle between two different app launch detection methods. The default WAS Logcat. Currently the default is set to App Usage. App Usage is pretty fool proof overall but is slightly slower than the Logcat method. The Logcat method is very fast but doesn't detect already running apps being brought to the foreground as clicking on them, whereas App Usage does detect this. However this issue only applies to 2D apps, not VR 3D applications.

Disable Battery Optimization

image

This is required to prevent the Quest from killing The Ocular Migraine when running in the background which is required for it to detect when apps are launched so that it can enable the resolution presets for that app. Also for the Kiosk mode and access lists to work.

Disable.Battery.Optimization.mp4

Enable All File Access

image

The purpose of granting this special permission to The Ocular Migraine is so that it can access OTG storage for the purpose of restoring any backups you might have copied to a thumb drive. Yes, you can connect a thumb drive to your Quest via an OTG cable and copy game backups onto it using a file manager that supports OTG storage, such as "File Manager +" which you can install using the menu on The Ocular Migraine. To enable this option, click on "Android Settings", then "Apps", then "Special app access", then "All files access", then scroll to find The Ocular Migraine from the list of apps. Click on it to select it, then click on the toggle "Allow access to manage all files".

Enable.All.Files.Access.For.OTG.USB.Storage.mp4

Disable Notifications

image

This is NOT a requirement but a recommendation. If you want to do it, this is how:

Disable.Notifications.For.The.Ocular.Migraine.mp4

Android Settings

image

This opens the general Android Settings of your Quest. Be careful with this. I put this in here just for fun for those who want to poke around, but again, be careful with this. Not all settings are documented or necessarily work as expected here.

User Defined ADB Commands

image

Long press to ender an adb shell command you wish to save. This will create a script text file that will be run each time you click on it. The script is stored in /sdcard/MCP/Scripts/. You can manually modify each script if you would like it to run multiple commands, just put a semicolon between the commands, for example "echo this is a test;echo test completed". Those are two commands on a single line. If you put multiple lines in the script, it probably will not run correctly.

Misc Screen Middle Section

image

Web Server File Sharing and Remote Uploading

image

Here you can configure the web server of your Quest. The top option allows you to turn web server file sharing on and off using "Toggle Server". "Set Server Directory" allows you to specify which directory you would like to share. Once the web server is enabled you will see the web server URL in green along with the shared folder in green. So in the screen shot above on my phone or computer I would go to http://192.168.1.248:1987 which would then show me all my files in the shared directory which in this example is /storage/emulated/0, which is the root of the sdcard partition. You will then be able to access the files and subfolders here.

"Toggle Remote Uploading" is useful to allow you to upload files to your Quest from your phone or computer. When enabled it will show you the web address to go to for uploading. In the example above the address I could go to on my phone or computer would be http://192.168.1.248:1987/upload. This will bring me to a webpage that will allow me to select a file from my device and upload it to the Quest. It will ALSO allow me to specify a directory to upload it to. If the directory does not exist, it will be created. If a directory is not specified, it will be uploaded to "/sdcard/Uploaded" by default.

Currently this seems to work well on the Quest 2, but on the Quest 3 it seems that when it goes to sleep, the web server becomes unresponsive. Sometimes when it's plugged into USB-C it stays responsive to YMMV on the Quest 3. HOWEVER, when downloading a very large video file on the Qeust 3 it will finish the download, it will not cut it off.

Misc Screen Bottom Section

image

Restart Home Environment

image

Clicking this will restart your home environment. This is for the purpose of applying resolution changes to it. If you want to change the resolution in your home environment, you must select this option after making the settings changes on the Main Screen.

Check Enabled Profiles

image

This is mainly for troubleshooting. I will probably remove this button or make it able to be toggled on by a "debug" option.

Devices

This is also good for troubleshooting. It runs the "adb devices" command and then shows the output. I also may only make this show up in a debug mode.

image

Restart ADB Server

Restarts the ADB server on the device, for troubleshooting.

image

Reboot

This will INSTANTLY reboot the headset. Instantly.

image

Current Settings

image

This will query the headset for all it's "oculus.debug" set flags and display them.

Load System Defaults

image

This will clear ALL "oculus.debug" flags. Usually this sets the headset back to "default" however some firmwares have some of these flags already set to certain specific settings for some reason. This will clear all of that. Just reboot your headset to get it back.

Save Settings to file

image

This is a VERY cool feature. This reads all of the "oculus.debug" flags that are currently set and saves them to a text file which you are prompted to name. This is to be used with the next option...

Load Settings from file

image

You can use this feature to load settings onto the headset that you saved from the last option. This is useful to test a different array of settings. This is kind of like saving a profile but these are not able to be automatically loaded. You have to load these manually. This is gererally for testing or if you have some things on your headset working exactly as you like but aren't sure which settings you changed to get there, the Save Settings to file and Load Settings from file is a great way to save the overall settings.

Delete BlazeRush Config

image

"Delete BlazeRush config" will delete the config settings file for the game "BlazeRush". This is required if you want to run that game at a different resolution. This is because upon first run BlazeRush will get the device resolution and create a config file telling the game to run at that resolution. Once this config file is created, it will no longer look to see if the device has a different display resolution than what is stored in the config file. Therefore, if you want to run BlazeRush at a different resolution you MUST first delete the config file so that it will create a new config file based on the resolution you have set the device to.

Apps I Worked On

image

This opens a page with links to other applications I've worked on.

TO-DO LIST

  • Make an alternate Web GUI for better display compatibilitiy and a cleaner look.
  • Add Quest Pro option to toggle local dimming.

Troubleshooting FAQ

BLACK SCREEN:

You might see a BLACK SCREEN during the installation or after a reboot of the headset. PRESS THE OCULUS/META Home button on the right controller and then you will see the propmt to ALWAYS ALLOW USB Debugging.

Question:

Do I really need my PC for this?

Answer:

Yes. Please follow the installation instructions exactly as listed here. Otherwise the application will not function correctly if at all. If you have a failed installation, you should uninstall the app, reboot the headset, then start the installation proceedure from the very beginning in order for the application to properly function.

Question:

It worked until I rebooted my headset and now it doesn't work.

Answer:

This happens when the application has not been installed correctly and thus not having the proper permissions granted each of the 3 times it should have been. The solution is the UNINSTALL the application, REBOOT your headset then carefully following the installation instructions exactly.

Question:

Where can I find support?

Answer:

You can find support on my Discord Server, or on The Ocular Migraine sub on Reddit, or better yet post an issue here on GitHub.

Source Files

The source file is the xml file posted in the releases section. You must import it into Tasker as a project. You can then take it from there.

About

The Ocular Migraine {Dev Mode} Master Control Program - This is a program that runs on your Quest and give you access to many features otherwise not available.

Resources

Stars

Watchers

Forks

Packages

No packages published