@All (but mostly Balaton and Joerg):
Want to play with graphics drivers a bit to understand how it all works on low level, and so far found that PCIgraphics.card contain hardcoded list of supported graphics cards (by name of *.chip files or by vendor/ids value?) and adding any new card which not in, can be done or by creating new xxxx.card, or by patching PCIGraphics.card. That correct ?
I just grep on strings inside of PCIgraphics.card, and found those:
Picasso96/%s
RadeonHD.chip
ATIRadeon.chip
3dfxVoodoo.chip
3DLabsPermedia2.chip
SiliconMotion502.chip
So, like anything else is out and if i want to add any new vendor/id/driver-name i need to create own *.card file or patch PCIgraphics.card , right ?
What is interesting, is that PCIGraphics.card does not have RadeonRX.chip string, so that mean RadeonHd there only for supporting "lite" version of the driver which come with the OS4 installation.
I disassembly RadeonRX driver, and found that it do have 2 resident tags : RadeonRX.chip main code, and RXCardPatch cold-start resident. RXCardPatch runs early, and have high priority, so it scan/build RadeonRX card info, and then opens PCIGraphics.card , get its main interface and via SetMethod() replace FindCard() and InitCard(). Then, when time come and PCIGraphics.card runs, it's already patched and do what need to do.
So, the way to add any new card which is not in PCIGraphics.card is probably that one, right ?