I just spotted an error in what I said - I'm not sure where 0xC came from. Looking at the BIOS dumps I think I meant 0x1C. Annoyingly, I don't have my GTX690 dumps handy, and they are the most minimally modified ones I have.
Ignore the second strap mask - there is nothing of interest there. The important bit is AND0/OR0.
The 32-bit mask can be represented this way:
-xx4 xxxx xxxx xxxx xx32 10xx xxxx xxxx
You want to flip bit 2 low (AND0 to 0, OR0 to 0) and bit 1 high (OR0 to 1).
OLD AND0 7FFC3FFF 0111 1111 1111 1100 0011 1111 1111 1111
NEW AND0 7FFC2FFF 0111 1111 1111 1100 001
0 1111 1111 1111
OLD OR0 80005000 1000 0000 0000 0000 0101 0000 0000 0000
NEW OR0 80004800 1000 0000 0000 0000 010
0 1000 0000 0000
Which makes the new mask:
AND0 7FFC2FFF
OR0 80004800
And of course remember the byte order is little-endian when editing in the BIOS.
Disclaimer - I may be completely wrong in the above calculation - I haven't had enough coffee yet today.
On the off-chance I'm right, however, the relevant hex pseudo-patch would be:
< 00000010: 08 E2 00 00 00 06 00 00 02 10 10 82 FF 3F FC 7F
> 00000010: 08 E2 00 00 00 06 00 00 02 10 10 82 FF
2F FC 7F
< 00000020: 00 50 00 80 0E 10 10 82 FF FF FF 73 00 00 00 8C
> 00000020: 00
48 00 80 0E 10 10 82 FF FF FF 73 00 00 00 8C
If you could let me know in the next few hours if that works for you, I'd very much appreciate it - I need to make a decision on whether to get a Titan by tonight, and a confirmation that soft-modding works on the GTX780 would go a long way toward persuading me that is the way forward.
Unfortunately, GTX780 and Titan only different in the 4th nibble, so while we should have no trouble figuring out which resistor controls the 4th nibble based on the difference, finding the 3rd nibble will be more difficult.