Hi, quick reply. I tried with device-id, but it did not work. Since my post, I went a bit mad, and reinstalled the machine back with clover (just to realize how convoluted it is and how bad it is), so now it works, however my plan is to install another one with HS and opencore and play around till I make it work, this way I would still be able to have a functioning MacOS while trying to work out OpenCore.
Anyway, back to the device-id, what I did was put under the PCI device path: device-id = 68e0 & vendor-id = 1002 also added the ATY,device-id = 68f9 & ATY,vendor-id = 1002. My assumption is that device-id is the desired one, while the ATY,device-id is the real one that I want changed (btw, I tried it vice-a-versa, too, to no avail). Those were all base64 encoded values of course (i.e. data). However when I look at your proposal, you seem to flip the value 67b0 (which is the ID of R290, not my card, but I get what you mean) to b067, so did I mess up the endianness ? If I understood correctly I should set device-id = b64(e068) and ATY,device-id = b64(f968)? I can skip the vendor-id, I think, as it is not changing anyway. There is another key that I don't know what it is and if it is critical. According to this Clover conversion readme of OpenCore in the FakeAti section there is also "@0,compatible" key, that I have no idea what it should be, what type it is, or is it mandatory. I couldn't figure it out from the source code. If I'm not successful with doing it through the config.plist I'm also thinking about the SSSD GPU SPOOF from opencore, which would be pain, as I don't know how to easily find the ACPI path of the video card under a VM.
As to the frame-buffer, my config.plist (the clover one) says this:
<key>Graphics</key>
<dict>
<key>DualLink</key>
<integer>0</integer>
<key>FBName</key>
<string>Eulemur</string>
<key>Inject</key>
<dict>
<key>ATI</key>
<true/>
</dict>
<key>VideoPorts</key>
<integer>3</integer>
</dict>
Again, I'm not very well versed in the hackintosh ways, I'm a linux guy by trade, who happens to shoot film in his spare time :).
Sidenote to libvirt.xml: My proposal of setting cpu features as policies works with opencore flawlessly, when I attempted using it with Clover it did not work as expected so I had to revert to qemu arguments in the libvirt.xml. You live, you learn, I guess.