I flashed the latest BIOS to my board, extracted the DSDT from it and patched it exactly like the old one.
Boots fine the first time, but sleep stopped working - my monitor switches off but the computer enters some catatonic state, LED doesn't flash, it can't wake up and I have to hard reboot. Then on the following boot, it will freeze at the IOAPIC message and I have to jump through hoops to get it to boot again. Shutdown seems to have broken as well but since it's such a pain to test I can't be 100% sure of that yet. Reboot works.
I thought this was odd so out of curiosity I went looking for a file comparison tool (and found Winmerge which is great btw). Comparing the working DSDT (as attached above) to the new one, I can pat myself on the back for getting all the patching right, it's exactly the same as the old DSDT. To answer my own question, a search and replace on the _T_x stuff works fine.
But...I also found several changes and additions by ASUS to the new DSDT. This is the output from Winmerge, the upper lines are from the old, working DSDT, lower ones from the new one.
CODE
55c55
< OperationRegion (BIOS, SystemMemory, 0x7FF7E064, 0xFF)
---
> OperationRegion (BIOS, SystemMemory, 0xFFFFFF00, 0xFF)
1431c1431
< Name (_HID, EisaId ("PNP0A08"))
---
> Name (_HID, EisaId ("PNP0A03"))
2540c2540
< OperationRegion (RAMW, SystemMemory, 0x7FFF0000, 0x00010000)
---
> OperationRegion (RAMW, SystemMemory, 0xAABBCCDD, 0x00010000)
2692c2692
< Store (GNVS (0xA748), Local0)
---
> Store (GNVS (0xA750), Local0)
2724c2724
< Store (GNVS (0x1774), T_0)
---
> Store (GNVS (0x177C), T_0)
5759c5759
< Store (GNVS (0x1773), ASB1)
---
> Store (GNVS (0x177B), ASB1)
5775c5775
< SNVS (0x1773, Arg1)
---
> SNVS (0x177B, Arg1)
5869c5869
< Subtract (GNVS (0xA748), 0xC8, ASB1)
---
> Subtract (GNVS (0xA750), 0xC8, ASB1)
5968c5968
< Subtract (GNVS (0xA748), 0xC8, Local3)
---
> Subtract (GNVS (0xA750), 0xC8, Local3)
5991c5991
< SNVS (0x1773, One)
---
> SNVS (0x177B, One)
6001c6001
< SNVS (0xA748, Local2)
---
> SNVS (0xA750, Local2)
6013c6013
< SNVS (0x16FB, 0x04)
---
> SNVS (0x16FD, 0x04)
6461c6461
< Store (GNVS (0x16F1), ASB1)
---
> Store (GNVS (0x16F3), ASB1)
6480c6480
< Store (GNVS (0x16F5), ASB1)
---
> Store (GNVS (0x16F7), ASB1)
6504c6504
< If (LNotEqual (GNVS (0x16F1), Arg1))
---
> If (LNotEqual (GNVS (0x16F3), Arg1))
6508c6508
< SNVS (0x16F1, Arg1)
---
> SNVS (0x16F3, Arg1)
6532c6532
< If (LNotEqual (GNVS (0x16F5), Arg1))
---
> If (LNotEqual (GNVS (0x16F7), Arg1))
6536c6536
< SNVS (0x16F5, Arg1)
---
> SNVS (0x16F7, Arg1)
6882c6882,6890
< Store (GNVS (0x34E8), ASB1)
---
> If (LOr (LGreaterEqual (GNVS (0x4484), 0x09), LEqual (GNVS (0x34E8),
> 0x05)))
> {
> Store (Zero, ASB1)
> }
> Else
> {
> Store (GNVS (0x34E8), ASB1)
> }
7776c7784
< Store (GNVS (0xA748), Local2)
---
> Store (GNVS (0xA750), Local2)
7868c7876
< Multiply (GNVS (0xA748), Local0, Local0)
---
> Multiply (GNVS (0xA750), Local0, Local0)
7877c7885
< Multiply (GNVS (0xA748), Local0, Local0)
---
> Multiply (GNVS (0xA750), Local0, Local0)
9285c9293
< ShiftRight (Local1, 0x08, Local1)
---
> ShiftRight (Local1, 0x07, Local1)
9309c9317
< ShiftLeft (Local3, 0x08, Local3)
---
> ShiftLeft (Local3, 0x07, Local3)
9328c9336
< ShiftLeft (Local3, 0x08, Local3)
---
> ShiftLeft (Local3, 0x07, Local3)
9352c9360
< ShiftLeft (Local3, 0x08, Local3)
---
> ShiftLeft (Local3, 0x07, Local3)
Something has been rearranged that breaks S3 sleep (or I did something wrong). Most changes seems to be to SNVS and GNVS but I can't find any details on what those are. And memory region changes probably don't help either. Of course I have no idea what I'm talking about so I could be on the wrong track.
I'm wondering if I would have to reinstall OS X in order to get it working again with the new DSDT, or if some system configuration somewhere can be reset. Or if something can be edited in the new DSDT.
In the meantime I can just use the old DSDT of course.