For TF2, any way to SPOOF VR mode(-vr) without having an OR?

Post Reply
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

For TF2, any way to SPOOF VR mode(-vr) without having an OR?

Post by sandumanu »

I have an HMD in the making but far from done. As you all know, without an actual OR connected, VR mode won't open in TF2.

I want to test out some things in the TF2 console etc.. Any way to spoof/force/trick the system into opening -vr mode TF2 without an OR?

I figure some dev or hacking enthusiast might've figured out how to spoof the OR connection by now ;)
Lookforyourhands
Binocular Vision CONFIRMED!
Posts: 228
Joined: Thu Nov 15, 2012 2:12 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by Lookforyourhands »

I think you probably need to have the Rift plugged in when forcing -vr mode or it won't even work..
2EyeGuy
Certif-Eyable!
Posts: 1139
Joined: Tue Sep 18, 2012 10:32 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by 2EyeGuy »

sandumanu wrote:I have an HMD in the making but far from done. As you all know, without an actual OR connected, VR mode won't open in TF2.

I want to test out some things in the TF2 console etc.. Any way to spoof/force/trick the system into opening -vr mode TF2 without an OR?

I figure some dev or hacking enthusiast might've figured out how to spoof the OR connection by now ;)
Only one way so far, but it has too many side effects, since it's basically using a completely different code path.
That way is to turn on Sixense (Razer Hydra) mode and vr mode at the same time. But -vr only seems to make it side-by-side, unwarped, 2D if you do that, and doesn't affect the menus.

TF2 uses a DLL with the Oculus Rift SDK in it, but it's all object oriented and hard to hack.
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

2EyeGuy wrote:
sandumanu wrote:I have an HMD in the making but far from done. As you all know, without an actual OR connected, VR mode won't open in TF2.

I want to test out some things in the TF2 console etc.. Any way to spoof/force/trick the system into opening -vr mode TF2 without an OR?

I figure some dev or hacking enthusiast might've figured out how to spoof the OR connection by now ;)
Only one way so far, but it has too many side effects, since it's basically using a completely different code path.
That way is to turn on Sixense (Razer Hydra) mode and vr mode at the same time. But -vr only seems to make it side-by-side, unwarped, 2D if you do that, and doesn't affect the menus.

TF2 uses a DLL with the Oculus Rift SDK in it, but it's all object oriented and hard to hack.
I do have a Razer Hydra and the software associated with it.

When you say turn them on at the same time, you mean open the Razer Hydra Configurator or Motion Creator 2 apps the same time as I open up the -vr mode TF2 executable?
User avatar
Kilobyte
One Eyed Hopeful
Posts: 14
Joined: Tue Mar 26, 2013 2:48 pm
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by Kilobyte »

sandumanu wrote:I do have a Razer Hydra and the software associated with it.

When you say turn them on at the same time, you mean open the Razer Hydra Configurator or Motion Creator 2 apps the same time as I open up the -vr mode TF2 executable?
There's a Sixense launch option for TF2, so you combine them as launch options. The following worked for me:

-vr +sixense_enabled 1

Loads up properly without a Rift or Hydra attached, and gameplay works fine with the mouse. The screen is divided into the two views, but isn't warped for the lenses, and has a few issues with things like UI/scoreboard/team selection.
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

Kilobyte wrote:
sandumanu wrote:I do have a Razer Hydra and the software associated with it.

When you say turn them on at the same time, you mean open the Razer Hydra Configurator or Motion Creator 2 apps the same time as I open up the -vr mode TF2 executable?
There's a Sixense launch option for TF2, so you combine them as launch options. The following worked for me:

-vr +sixense_enabled 1

Loads up properly without a Rift or Hydra attached, and gameplay works fine with the mouse. The screen is divided into the two views, but isn't warped for the lenses, and has a few issues with things like UI/scoreboard/team selection.

Thanks for clarifying! I'll give it a try :D
2EyeGuy
Certif-Eyable!
Posts: 1139
Joined: Tue Sep 18, 2012 10:32 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by 2EyeGuy »

sandumanu wrote:
Kilobyte wrote: There's a Sixense launch option for TF2, so you combine them as launch options. The following worked for me:

-vr +sixense_enabled 1

Loads up properly without a Rift or Hydra attached, and gameplay works fine with the mouse. The screen is divided into the two views, but isn't warped for the lenses, and has a few issues with things like UI/scoreboard/team selection.
Thanks for clarifying! I'll give it a try :D
But don't expect much, it's just a glitch that it works like that. It's obviously not starting up VR mode properly when you do that.
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

2EyeGuy wrote:
sandumanu wrote:
Kilobyte wrote: There's a Sixense launch option for TF2, so you combine them as launch options. The following worked for me:

-vr +sixense_enabled 1

Loads up properly without a Rift or Hydra attached, and gameplay works fine with the mouse. The screen is divided into the two views, but isn't warped for the lenses, and has a few issues with things like UI/scoreboard/team selection.
Thanks for clarifying! I'll give it a try :D
But don't expect much, it's just a glitch that it works like that. It's obviously not starting up VR mode properly when you do that.

Yeah, I noticed after messing around with it :shock: Guess, I'm going to have to wait until someone figures out a way to run full VR mode without the OR before I can experiment.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Does anyone have the exact name of the Rift headtracker USB device in Device Manager?

You'd also need the Vendor and Device IDs to have a chance of spoofing the Rift.
The SDK probably forces a check of the tracker itself though, so a simple USB spoof might not work. :(
I'm assuming TF2 doesn't also check the Rift's EDID (panel controller's "plug and prey" info)?
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

OzOnE2k10 wrote:Does anyone have the exact name of the Rift headtracker USB device in Device Manager?

You'd also need the Vendor and Device IDs to have a chance of spoofing the Rift.
The SDK probably forces a check of the tracker itself though, so a simple USB spoof might not work. :(
I'm assuming TF2 doesn't also check the Rift's EDID (panel controller's "plug and prey" info)?
I'm hoping this info will come out soon. No doubt many people took apart their Rift by now.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

Oculus Rift DK1 (Development Kit #1)
USB VID/PID: 2833/0001
USB Name: Tracker DK1
EDID Name: Rift DK
HDCP Status: HDCP-capable
Native Resolution: 1280x800
Maximum Resolution: 1920x1200
2EyeGuy
Certif-Eyable!
Posts: 1139
Joined: Tue Sep 18, 2012 10:32 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by 2EyeGuy »

OzOnE2k10 wrote:Does anyone have the exact name of the Rift headtracker USB device in Device Manager?

You'd also need the Vendor and Device IDs to have a chance of spoofing the Rift.
The SDK probably forces a check of the tracker itself though, so a simple USB spoof might not work. :(
I'm assuming TF2 doesn't also check the Rift's EDID (panel controller's "plug and prey" info)?
It checks the Rift's EDID, but doesn't require it. If it find it, it runs on that monitor instead of your primary monitor.
Sensor_VendorId = 0x2833,
Sensor_ProductId = 0x0001,

// ST's VID used originally; should be removed in the future
Sensor_OldVendorId = 0x0483,
Sensor_OldProductId = 0x5750
But the Oculus SDK also checks some other things, I think.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

2EyeGuy wrote:
Sensor_VendorId = 0x2833,
Sensor_ProductId = 0x0001,

// ST's VID used originally; should be removed in the future
Sensor_OldVendorId = 0x0483,
Sensor_OldProductId = 0x5750
But the Oculus SDK also checks some other things, I think.
FYI, those "Old*" values are used by the STM32F3 dev kits (with built-in "9-DoF" compass/accelerometer/gyro) that you can get for $10.80USD (including shipping):

[youtube]http://www.youtube.com/watch?v=s3j6gIxTmI0[/youtube]

Which means that the OculusVR SDK "might" work with STM32F3 boards (perhaps with custom firmware on them). Both devices may use the same motion sensor chips.
Last edited by geekmaster on Mon Apr 08, 2013 6:21 am, edited 2 times in total.
User avatar
jaybug
Binocular Vision CONFIRMED!
Posts: 302
Joined: Sun Sep 09, 2012 4:55 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by jaybug »

Curiously enough, when you launch TF2 with "-vr" on a mac, it does start in a sort of messed up side by side 3d mode.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

The Oculus SDK docs say that the Rift should be used in Windows desktop "extended display" mode (not duplicate monitor mode) to prevent VSYNC problems. However, they also say that duplicating the Rift content onto a second display is useful, but affordable DVI/HDMI splitters do not reliably pass EDID information through. The Oculus Rift demo videos usually show a large LCD display duplicating the Rift, so they must be using an HDMI splitter (if they are following their own recommendations).
Generally, the use of third party splitters and video switching boxes means that Rift EDID data may not be reliably reported to the Windows OS. ... As a result, the only viable option currently is to use the Rift in extended display mode.
In that case, the SDK demos (and TF2) should not rely on detecting the Rift EDID.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Cool. Thanks, geekmaster and 2EyeGuy!

Should be able to at least spoof the tracker IDs with a PIC 18F2550 or AVR with USB.
It will probably crash or freeze the s/w without the actual data being passed though?

I have an HDMI splitter here (not a cheap one), which I bought for S3D experiments then didn't think I'd ever find a use for it.
Now it looks like it will be perfect for the Rift. :D

Spoofing the basic EDID info is as easy as programming an EEPROM and hooking it up to the DVI / HDMI.
(You could even reprogram your DIY panel controller's EDID with the Rift EDID just using Windoze software.)

I saw that the Rift tracker uses an STM32F103, but never thought of looking for an accelerometer dev kit.
This is the sort of info I like to see. I'm now off to compare the Rift tracker to the STM32 kit. hehe

It may not be much use to recreate the Rift tracker, as I trust their method of calibration is very precise.
Without the calibration data, I'd imagine a DIY board would produce disappointing results?

OK, some more things to try. Thanks guys!
No wonder they haven't activated my Rift Dev login yet. lol

I still haven't got round to trying the "Lightboost" mod on the Hydis panel. :(
Last edited by OzOnE2k10 on Mon Apr 08, 2013 8:16 am, edited 1 time in total.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Just tried a USB sniffer. Works great on my mouse (Gyration Airmouse)...
http://sourceforge.net/projects/usbsnoop/?source=dlp

When the program first starts, it shows you a list of all USB devices (including ones which aren't currently plugged in).
Sometimes there may be multiple copies of the same device in the list (if you've plugged it in a different port for instance).
You just need to do this to start snooping...

1. Run SnoopyPro.exe from whereever you have saved it.
2. Open up the USB devices window with F2.
3. Choose 'Unpack Drivers' from the 'File' menu.
4. Choose 'Install Service' from the 'File' menu.
5. Locate the device you want to sniff.
6. Right-click on it and choose 'Install and Restart'.
7. Wait for the magic to happen...


Once the drivers are unpacked / service installed and you've done the "Install and Restart" on your chosen device, close the USB list (you can get it back with F2), then make a New log and see if you can capture some packets.

(need to click the stop button to see the actual log).

Who wants to be daring and try this on the Rift tracker? :twisted: :)
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

I see that they raised the price of the STM32F3 dev kit. I bought 3 of them at $10.80, but now the price is listed as $10.90. It went up $0.10! :o ;)
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

I just tried the "Oculus Room Tiny" demo, with the Rift video disconnected from the PC. That demo said "Oculus Sensor detected; HMD display EDID not detected." and it refused to run without the EDID.

Other apps may have the same problem, so EDID spoofing may be needed.

Some apps may automatically display to whichever display device has the Rift EDID.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

http://www.entechtaiwan.com/util/moninfo.shtm
(download icon on the left)

You can grab the raw EDID data from the Rift if you fancy? ;)
Not sure the Oc guys would appreciate it being posted though?
tbh, the apps probably only need to see the correct ID, so would be easy enough to create from scratch.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

OzOnE2k10 wrote:http://www.entechtaiwan.com/util/moninfo.shtm
(download icon on the left)

You can grab the raw EDID data from the Rift if you fancy? ;)
Not sure the Oc guys would appreciate it being posted though?
tbh, the apps probably only need to see the correct ID, so would be easy enough to create from scratch.

Code: Select all

Monitor
  Model name............... Rift DK
  Manufacturer............. OVR
  Plug and Play ID......... OVR0001
  Serial number............ Serial
  Manufacture date......... <deleted>
  Filter driver............ None
  -------------------------
  EDID revision............ 1.3
  Input signal type........ Digital
  Color bit depth.......... Undefined
  Display type............. Undefined
  Screen size.............. Undefined or variable
  Power management......... Standby, Suspend, Active off/sleep
  Extension blocs.......... 1 (Reserved - 0x00)
  -------------------------
  DDC/CI................... Not supported

Color characteristics
  Default color space...... sRGB
  Display gamma............ 2.20
  Red chromaticity......... Rx 0.591 - Ry 0.341
  Green chromaticity....... Gx 0.303 - Gy 0.565
  Blue chromaticity........ Bx 0.145 - By 0.117
  White point (default).... Wx 0.313 - Wy 0.328
  Additional descriptors... None

Timing characteristics
  Horizontal scan range.... 30-83kHz
  Vertical scan range...... 56-76Hz
  Video bandwidth.......... 230MHz
  CVT standard............. Not supported
  GTF standard............. Not supported
  Additional descriptors... None
  Preferred timing......... Yes
  Native/preferred timing.. 1280x800p at 60Hz (16:10)
    Modeline............... "1280x800" 71.110 1280 1328 1360 1440 800 803 809 823 +hsync -vsync

Standard timings supported
     640 x  480p at  60Hz - IBM VGA
     800 x  600p at  60Hz - VESA
    1280 x  800p at  60Hz - VESA STD
    1280 x  720p at  60Hz - VESA STD
    1920 x 1200p at  60Hz - VESA STD
    1920 x 1080p at  60Hz - VESA STD

Report information
  Date generated........... 4/8/2013
  Software revision........ 2.60.0.972
  Data source.............. Real-time 0x0022
  Operating system......... 6.1.7601.2.Service Pack 1

Raw data
  <deleted>
The EDID info claims to support up to 76Hz refresh rate (Vertical scan range...... 56-76Hz). But Windows only shows the "standard" 60Hz timings available for that display device (Properties, List All Modes). According to the EDID info shown above, it should be safe to force it to run faster with PowerStrip (also from EnTech).
Last edited by geekmaster on Mon Apr 08, 2013 10:21 am, edited 1 time in total.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Oh, you naughty, geekmaster. :lol:
(PM incoming)

Yep, the Hydis panel datasheet says it supports up to 70Hz V, and up to 57.6KHz H refresh.

Windows tends to use the "Standard timings" block, but you can add some extended info to the EDID to allow an extra res etc.
(assuming the EEPROM is big enough?)

I think the EDID data on the Realtek / Rift boards are held in the firmware though, so the whole thing would need to be reprogrammed for custom stuff.

I seriously doubt there's any great risk in trying a custom refresh on the Rift though.
It will generally either work or it won't, but it's not like an old CRT which you need to be careful with.

I wonder if the 7" panel in the Rift can actually refresh at 70 or 76Hz?
It might just be re-timing it in the scaler chip and only really capable of 60Hz in reality?
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

I tried using PowerStrip.

My Rift Dev Kit works fine at 64Hz, but going up even to 64.1Hz gives it get periodic flickering (three quick flashes every half second), and 65Hz or above gives constant flickering. Perhaps it could be made to work at higher frequencies with a custom resolution (different front/back porch, narrower retrace intervals, or whatever).

But even 64Hz is better than 60Hz, to lower latency, and that does not need any other custom timing adjustments.

EDIT: What is not public about the EDID data? It is available to any app that wants to read it. No hacking involved.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Very nice.
Yet another thing to be anxious to try while waiting for my Rift. :roll: :shock:

The default modeline on the Rift EDID matches the Hydis 5.6" panel datasheet timings.
Well, it should I suppose, it's a standard VESA type thingy.

There are no other custom timing sets listed in the Hydis datasheet unfortunately, it only gives the 1280x800 @60Hz timings.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

geekmaster wrote:EDIT: What is not public about the EDID data? It is available to any app that wants to read it. No hacking involved.
I completely agree. Just that some people get a bit funny about it when they "think" it's a huge secret.
I got banned from using the college computers back in the day, simply because I memorized this little trick from "tips.txt" in Windows 95/98...

Create a new folder and call it...
Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}

...and it will magically access the real Control Panel!
Even though the college computers still had the normal Control Panel enabled, they took great offensive to my "hacking" and nearly "called the police". lol

That "tips.txt" file was included with Win 95/98 I think? I seem to remember those little registry refs working on XP as well, but not on Win 7/8.

Sorry, back on topic. :roll:
Just writing to four people at once while deciding what to do next with the Rift stuff. hmmmm

EDIT: Oops, missed that - if your Rift is working at 64Hz, then I think it will go even higher.
Have you noticed any motion blur improvements yet? Unlikely though.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

Wonder if any of these timings will work with the Rift + Powerstrip?...

# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68kHz; pclk: 83.46MHz
ModeLine "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync

# 1280x800 @ 75 Hz
ModeLine "1280x800" 107.21 1280 1360 1496 1712 800 801 804 835 -HSync +Vsync

Oh, the pixel clock for these is higher than in the Hydis datasheet anyway. Prolly won't work on the Rift?

OK, so Rift modeline is (VESA Standard for 60Hz)...
"1280x800" 71.110 1280 1328 1360 1440 800 803 809 823 +hsync -vsync

With absolute timings, the Rift matches the 5.6" Hydis panel @60Hz...
H Active 1280 Pixels
H Front porch 48 Pixels
H Sync Blanking 32 Pixels
H back porch 80 Pixels
H Period 1440 Pixels

V Active 800 Lines
V Front porch 3 Lines
V Sync Blanking 6 Lines
V Back Porch 14 Lines
V period 823 Lines

Erm, not sure how to calc a new custom timing for the Rift until we now the type of panel and max pixel clock?

You could try plugging the above values into this, but that only shows you the V/H refresh for a given pixel clock.
http://www.abramovbenjamin.net/calc.html

The max pixel clock for the Hydis panel is 83MHz. For a 60Hz refresh with the above timings, the pix clock would be ~71.11MHz.

@geekmaster - are you able to increase only the pixel clock in Powerstrip but keep the same timings?
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

geekmaster wrote:In that case, the SDK demos (and TF2) should not rely on detecting the Rift EDID.
geekmaster wrote:IOther apps may have the same problem, so EDID spoofing may be needed.


Ok, so from what I've read so far TF2 VR mode might still possibily need the EDID of the OR but also uses or needs the tracker ID for VR mode to be activated.

geekmaster wrote:Which means that the OculusVR SDK "might" work with STM32F3 boards (perhaps with custom firmware on them). Both devices may use the same motion sensor chips.
OzOnE2k10 wrote:Should be able to at least spoof the tracker IDs with a PIC 18F2550 or AVR with USB.
Does this mean that, so far, the only solution for spoofing both the tracker ID and the EDID would be a hardware solution (which is no issue but a simple time constraint)? Software spoofing isn't an option?
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

There will generally always be a software solution to a problem like this, but I'm personally not very good with the Windoze side of C / C++ programming.

Ironically, I'd find it easier to make a hardware spoofer than to try messing with the software. (although, either would be a challenge unless someone finds a simpler method).

EDIT: Please ignore the following junk, it doesn't work, sorry!
The Oculus s/w ignores the Windoze inf stuff, and checks the monitor(s) hardware EDID directly. TF2 likely does the same.
I'm only leaving this here for reference. I really shouldn't post when extremely tired. :roll:


The EDID part is actually simpler than I thought. I forgot that you can simply do an EDID override...

I've just tried this using the inf generated directly from the Rift DK1 data that geekmaster posted earlier. Windoze now thinks my monitor is a Rift! This is a software only patch, so won't actually write anything to your monitor's EEPROM...

You just need to download this inf file...
http://www.filedropper.com/showdownload.php/riftedid

Before doing this, you should really make a backup of the inf for your monitor using moninfo (http://www.entechtaiwan.com/util/moninfo.shtm), or just download the inf from your monitor's Web site.

Then, go into Device Manager, find the monitor you want to change, right-click > Update Driver Software..., then Browse..., "Let me pick...", Have Disk, then browse again to the folder where the Rift inf file is kept. Install the file (ignore the Red warning message box), and you should be done.

Your screen resolution will probably change and you'll be limited to the Rift's resolutions, so it might be best to use a second monitor for the EDID spoofing. Or, you can grab your monitor's real EDID with moninfo, then change it's ID strings with to match the Rift's ID strings (so you keep your monitor's normal modes). This assumes your monitor also supports 1280x800 @60Hz, but most modern monitors do.

The USB part is more difficult, but mainly because the SDK probably expects to read some data from the tracker.
So, it might not just be a case of spoofing the USB ID's on their own.

Short version is - it's possible, but probably a LOT of effort for little payoff.
I might look into this further in the next few days, but I have so many other projects and things to get done first. :(

Give the EDID override a try. You can always revert back, and the simplest way is to go back into Device Manager, but when you do the "Let me pick" part, it should show you your monitor's default driver. Just install that and you should be able to set your resolution back to normal.

If for some reason the Rift inf file screws up your display and you can't see anything (unlikely), you might need to restart the PC and do an F8 at boot up, choose "Enable Low Resolution Video" from the menu, then change back to your monitor's old driver in Device Manager. phew!
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

EDIT: Please ignore the following junk, it doesn't work, sorry!
The Oculus s/w ignores the Windoze inf stuff, and checks the monitor(s) hardware EDID directly. TF2 likely does the same.
I'm only leaving this here for reference. I really shouldn't post when extremely tired. :roll:
No no no, it's ok. You gave it your best. ;) I'm just super glad that there is an interest in learning how to spoof the OR connection. The more we investigate this the more we learn :mrgreen:

If it turns out that it's way too much effort to do a spoof software wise, then I'll go ahead and get the appropriate hardware...STM32F3 boards, the PIC 18F2550, AVR with USB or whatever is relevant to make it spoof correctly.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

You seem very determined to do this, what's the main motivation? :?
Have you ordered a Rift kit yet? (it may be too late to preorder now AFAIK)

I can certainly help you build an EDID spoofer at some point.
It's basically the same as Petrus' diagram...
http://www.mtbs3d.com/gallery/albums/us ... EEprom.gif

Where it says Pin 6 and Pin 7, it's related to a DVI connection, and not HDMI or VGA.
You can get +5V from DVI pin 14, and ground is on pin 15.

I don't know if EDID software will program the EEPROM without it be pre-programmed first, so we'll need to check that.
That circuit is all you need for a basic spoofer though, we just need a way to program it.

You should be able to rip out a serial EEPROM from a broken gadget. They're used everywhere, and often have the 8-pin DIP or SOIC type package.
I believe it can be a slightly higher capacity than usual and still work OK for EDID too?

PowerStrip can be used to rewrite the EDID apparently, by using the raw .bin file from the Rift DK (this one should be in it's unmodified state, and was created from geekmaster's post)...
http://www.filedropper.com/riftedid_1

Sleep time now. 5am. yaaaaawwwwwwwwwwwn
User avatar
sandumanu
One Eyed Hopeful
Posts: 21
Joined: Thu Mar 21, 2013 3:24 pm
Location: USA

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by sandumanu »

OzOnE2k10 wrote:You seem very determined to do this, what's the main motivation? :?
Have you ordered a Rift kit yet? (it may be too late to preorder now AFAIK)
I'm currently making my own DIY. As for my true motivation, I think if it's ever figured out how to spoof the OR it would be a useful benefit to the developer community. If this puzzle is solved, current and future applications that require the OR can be debugged without the OR.

There aren't a lot of apps out for the OR now, and the one that is the most stubborn is TF2 VR mode, which is why I am targeting that.
Xerion
Binocular Vision CONFIRMED!
Posts: 211
Joined: Wed Mar 21, 2007 3:22 am

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by Xerion »

If I use "-vr +sixense_enabled 1" I get that same sort of side-by-side mode everyone else gets. If I however try "-vr oculus +sixense_enabled 1" TF2 doesn't start, but errors out with "Unable to pre-init VR tracker. Are all the cables on your HMD connected?". So maybe only the tracker needs to be spoofed that way, and the display doesn't matter.
Current Rig: Intel i7 920 @ 4.0GHz, 6 GB ram, Geforce GTX670 -> Nvidia 3D Vision on LG 47LM615S (interlaced, spoofing Zalman EDID) + Oculus Rift
Control Peripherals: Novint Falcon, Razer Hydra, P5 Glove, XBOX 360 Controller, Wiimote, Saitek X52 Pro (flight control system), Logitech G27 (racing wheel), Logitech G15 (keyboard), Razer Naga Molten Edition (mouse)
2EyeGuy
Certif-Eyable!
Posts: 1139
Joined: Tue Sep 18, 2012 10:32 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by 2EyeGuy »

The only point in spoofing the Rift's EDID, is to get Rift games to automatically start on that monitor without you having to make it your primary monitor or having your monitors cloned. Rift games will still work if they don't detect the EDID. So I don't think it's worth worrying about.

It's very interesting about 64Hz mode though. Once we get a latency tester, we can check whether that actually makes any difference. I'd love to see 75Hz working. Does anyone know if there are any side effects? Does it affect the brightness or colour?
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

2EyeGuy wrote:The only point in spoofing the Rift's EDID, is to get Rift games to automatically start on that monitor without you having to make it your primary monitor or having your monitors cloned. Rift games will still work if they don't detect the EDID. So I don't think it's worth worrying about.

It's very interesting about 64Hz mode though. Once we get a latency tester, we can check whether that actually makes any difference. I'd love to see 75Hz working. Does anyone know if there are any side effects? Does it affect the brightness or colour?
Unless we can adjust other timing parameters, anything beyond 64Hz causes strange pulsating flicker. At about 64 Hz, you get 3 quick flashes then a pause, repeating about each second. At 70Hz and beyond, you get constant flicker. I think it is timing overflow (Powerstrip incorrectly configuring the LCD timing). When speeding up the clock you need to make some other parameters shorter to compensate. I did not do that.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by OzOnE2k10 »

I got my EPROM programmer back now, so I've written the Rift EDID into an I2C EEPROM and hooked it up to an HDMI socket.

It's very rough, 'cos I didn't have an DIP chips to hand, so I simply soldered it directly to the socket pins.
http://i38.tinypic.com/hs3rx0.jpg

You can get HDMI sockets cheaply by buying those swivel type adapters on eB*y...
http://www.ebay.co.uk/itm/HDMI-1-4-Fema ... 43ac157c6c

This seems to work fine for the display part of the SDK, and the Sixense Tuscany Demo now only says "No sensor detected" instead of "No HMD" / "No sensor detected".
I'll try TF2 right now and see if it changes anything. EDIT: Nope, it still give the HMD tracker error ofc, how silly of me. lol

I'm not sure when I'll get round to trying to spoof the tracker's USB protocol, but I might have a go at building a DIY Rift soon (I have the Hydis panel and 5x lenses).
So, I don't know how useful the EDID thing is atm. It's easy enough to do though.

I tried all sorts to write the EEPROM directly by using Windoze software alone, but didn't have much luck.
There probably is a software way to do it, although it seems to be far more hassle than simply using the HDMI "dongle".

If you don't have access to a proper programmer, you can build a simple I2C EEPROM parallel port programmer using two transistors and a couple of resistors...
(see the "Easy I2C Bus Interface" at the bottom of the page)
http://www.lancos.com/prog.html

OzOnE.
P.S. If anyone wants the Rift EDID file, I can PM it to you. :)
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

OzOnE2k10 wrote:...
This seems to work fine for the display part of the SDK, and the Sixense Tuscany Demo now only says "No sensor detected" instead of "No HMD" / "No sensor detected".
I'll try TF2 right now and see if it changes anything. EDIT: Nope, it still give the HMD tracker error ofc, how silly of me. lol

I'm not sure when I'll get round to trying to spoof the tracker's USB protocol, but I might have a go at building a DIY Rift soon (I have the Hydis panel and 5x lenses).
So, I don't know how useful the EDID thing is atm. It's easy enough to do though.
P.S. If anyone wants the Rift EDID file, I can PM it to you. :)
The 0.1.5 version of the OculusVR SDK still supports the STM32F3DISCOVERY ($10.90) USB VID/PID in addition to the RiftDK VID/PID (and that is the Digi-Key price). And that dev kit even has a built-in IMU (same chipset as the RiftDK). Look in the SDK source code...
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: For TF2, any way to SPOOF VR mode(-vr) without having an

Post by geekmaster »

geekmaster wrote:
OzOnE2k10 wrote:http://www.entechtaiwan.com/util/moninfo.shtm
(download icon on the left)

You can grab the raw EDID data from the Rift if you fancy? ;)
Not sure the Oc guys would appreciate it being posted though?
tbh, the apps probably only need to see the correct ID, so would be easy enough to create from scratch.

Code: Select all

Monitor
  Model name............... Rift DK
  Manufacturer............. OVR
  Plug and Play ID......... OVR0001
  Serial number............ Serial
  Manufacture date......... <deleted>
  Filter driver............ None
  -------------------------
  EDID revision............ 1.3
  Input signal type........ Digital
  Color bit depth.......... Undefined
  Display type............. Undefined
  Screen size.............. Undefined or variable
  Power management......... Standby, Suspend, Active off/sleep
  Extension blocs.......... 1 (Reserved - 0x00)
  -------------------------
  DDC/CI................... Not supported

Color characteristics
  Default color space...... sRGB
  Display gamma............ 2.20
  Red chromaticity......... Rx 0.591 - Ry 0.341
  Green chromaticity....... Gx 0.303 - Gy 0.565
  Blue chromaticity........ Bx 0.145 - By 0.117
  White point (default).... Wx 0.313 - Wy 0.328
  Additional descriptors... None

Timing characteristics
  Horizontal scan range.... 30-83kHz
  Vertical scan range...... 56-76Hz
  Video bandwidth.......... 230MHz
  CVT standard............. Not supported
  GTF standard............. Not supported
  Additional descriptors... None
  Preferred timing......... Yes
  Native/preferred timing.. 1280x800p at 60Hz (16:10)
    Modeline............... "1280x800" 71.110 1280 1328 1360 1440 800 803 809 823 +hsync -vsync

Standard timings supported
     640 x  480p at  60Hz - IBM VGA
     800 x  600p at  60Hz - VESA
    1280 x  800p at  60Hz - VESA STD
    1280 x  720p at  60Hz - VESA STD
    1920 x 1200p at  60Hz - VESA STD
    1920 x 1080p at  60Hz - VESA STD

Report information
  Date generated........... 4/8/2013
  Software revision........ 2.60.0.972
  Data source.............. Real-time 0x0022
  Operating system......... 6.1.7601.2.Service Pack 1

Raw data
  <deleted>
The EDID info claims to support up to 76Hz refresh rate (Vertical scan range...... 56-76Hz). But Windows only shows the "standard" 60Hz timings available for that display device (Properties, List All Modes). According to the EDID info shown above, it should be safe to force it to run faster with PowerStrip (also from EnTech).
I extracted the EDID data from my new replacement Rift. "Real-time" extraction with moninfo tool, as above, shows no same data as before. Here it is parsed with a different (online) EDID parser tool:

Copied from Windows Registry, and parsed by http://www.edidreader.com/:

Code: Select all

EDID:

Block 0
Valid Checksum: FALSE

Header Information
Edid Header: OK 
EISA ID: OVR 
Product Code: 100 
Serial Number: 0 
Manufacture Date: 8/2013 
Edid Version: 1.3 

Basic Display Parameters
Digital Input: true 
Compatible with VESA DFP: false 
Maximum Horizontal Image Size: 0 
Maximum Vertical Image Size: null 
Display Gamma: 1.00 
DPMS Standby: false 
DPMS Suspend: true 
DPMS Active-Off: true 
Display Type: RGB 4:4:4 + YCrCb 4:4:4 + YCrCb 4:2:2 
Standard sRGB Color Space: false 
Preferred Timing Mode: false 
GTF Supported: false 

Chromaticity Coordinates
Red X: 0.003 
Red Y: 0.593 
Green X: 0.343 
Green Y: 0.303 
Blue X: 0.563 
Blue Y: 0.146 
White X: 0.119 
White Y: 0.315 

Timing Bitmap
720×400 @ 70 Hz: false
720×400 @ 88 Hz: true
640×480 @ 60 Hz: false
640×480 @ 67 Hz: true
640×480 @ 72 Hz: false
640×480 @ 75 Hz: true
800×600 @ 56 Hz: false
800×600 @ 60 Hz: false
800×600 @ 72 Hz: false
800×600 @ 75 Hz: false
832×624 @ 75 Hz: true
1024×768i @ 87 Hz: false
1024×768 @ 60 Hz: false
1024×768 @ 72 Hz: false
1024×768 @ 75 Hz: false
1280×1024 @ 75 Hz: true
1152x870 @ 75 Hz: false

Standard Timing Information

Standard Display Modes
X Resolution: 248 
X:Y Pixel Ratio: 5:4 
Vertical Frequency: 61 
X Resolution: 248 
X:Y Pixel Ratio: 5:4 
Vertical Frequency: 61 
X Resolution: 1784 
X:Y Pixel Ratio: 16:9 
Vertical Frequency: 77 
X Resolution: 248 
X:Y Pixel Ratio: 16:9 
Vertical Frequency: 77 

Detailed Timing Descriptor 1
Pixel Clock: 2.57MHz 
Horizontal Active: 199 
Horizontal Blanking: 27 
Vertical Active: 672 
Vertical Blanking: 80 
Horizontal Sync Offset: 23 
Horizontal Sync Pulse: 560 
Vertical Sync Offset: 3 
Vertical Sync Pulse: 0 
Horizontal Display Size: 2358 
Vertical Display Size: 1536 
Horizontal Border: 94 
Vertical Border: 0 
Interlaced: false 
Stereo Mode: 0 
Sync Type: 0 
Vertical Sync Serrated: false 
Sync on all 3 RGB lines: false 
2-Way Line-Interleaved Stereo: false 

Detailed Timing Descriptor 2
Pixel Clock: 66.56MHz 
Horizontal Active: 0 
Horizontal Blanking: 0 
Vertical Active: 0 
Vertical Blanking: 252 
Horizontal Sync Offset: 338 
Horizontal Sync Pulse: 873 
Vertical Sync Offset: 22 
Vertical Sync Pulse: 6 
Horizontal Display Size: 1056 
Vertical Display Size: 2884 
Horizontal Border: 10 
Vertical Border: 32 
Interlaced: false 
Stereo Mode: 1 
Sync Type: 0 
Vertical Sync Serrated: false 
Sync on all 3 RGB lines: false 
2-Way Line-Interleaved Stereo: false 

Detailed Timing Descriptor 3
Pixel Clock: 82.24MHz 
Horizontal Active: 32 
Horizontal Blanking: 0 
Vertical Active: 0 
Vertical Blanking: 255 
Horizontal Sync Offset: 339 
Horizontal Sync Pulse: 869 
Vertical Sync Offset: 0 
Vertical Sync Pulse: 32 
Horizontal Display Size: 1641 
Vertical Display Size: 3169 
Horizontal Border: 10 
Vertical Border: 32 
Interlaced: false 
Stereo Mode: 1 
Sync Type: 0 
Vertical Sync Serrated: false 
Sync on all 3 RGB lines: false 
2-Way Line-Interleaved Stereo: false 

Detailed Timing Descriptor 4
Pixel Clock: 82.24MHz 
Horizontal Active: 32 
Horizontal Blanking: 32 
Vertical Active: 3840 
Vertical Blanking: 3328 
Horizontal Sync Offset: 0 
Horizontal Sync Pulse: 312 
Vertical Sync Offset: 52 
Vertical Sync Pulse: 44 
Horizontal Display Size: 83 
Vertical Display Size: 23 
Horizontal Border: 10 
Vertical Border: 32 
Interlaced: false 
Stereo Mode: 1 
Sync Type: 0 
Vertical Sync Serrated: false 
Sync on all 3 RGB lines: false 
2-Way Line-Interleaved Stereo: false 

Number of Extensions: null 
Checksum: 0x20
This report also shows detailed timing descriptor blocks, missing from the earlier report.
Post Reply

Return to “Oculus VR”