Step 2.x games by AM3 require step 1.x PCI ID?

We've known for years that the step 2.x games by AM3 - Dirt Devils, L.A. Machineguns, Virtual-On 2 and Magical Truck Adventure - all require the step 1.x PCI ID to run (the games hang if we use anything else), but I have a theory as to what is actually supposed to happen.
On step 1.x, retrieving the video board PCI ID code via MPC105/106 returns 0x16C311DB, which is from Mercury (315-5827); this is the chip directly connected to the PCI slot on the step 1.x video board. On step 2.x, doing the same thing returns 0x178611DB from the chip (315-6022) that is directly connected to the PCI slot on the step 2.x video board; maybe this is the DMA device that replaces the NCR 53C810 on step 2.x?
We've always assumed that both MPC106 and the step 2.x DMA device retrieve the same PCI ID code, but my theory is that retrieving a PCI ID code using the DMA device actually returns the PCI ID of Mercury, which is still 0x16C311DB even though it has a different chip number (315-6057) on step 2.x boards; perhaps it was preserved for compatibility reasons.
This would explain why the step 2.x games by AM3 use both of these different methods to retrieve PCI ID codes as documented in Real3D.cpp; each method is meant to retrieve a different code!
I've tested and confirmed every step 2.x game works with the DMA device always returning 0x16C311DB and MPC106 always returning 0x178611DB.
On step 1.x, retrieving the video board PCI ID code via MPC105/106 returns 0x16C311DB, which is from Mercury (315-5827); this is the chip directly connected to the PCI slot on the step 1.x video board. On step 2.x, doing the same thing returns 0x178611DB from the chip (315-6022) that is directly connected to the PCI slot on the step 2.x video board; maybe this is the DMA device that replaces the NCR 53C810 on step 2.x?
We've always assumed that both MPC106 and the step 2.x DMA device retrieve the same PCI ID code, but my theory is that retrieving a PCI ID code using the DMA device actually returns the PCI ID of Mercury, which is still 0x16C311DB even though it has a different chip number (315-6057) on step 2.x boards; perhaps it was preserved for compatibility reasons.
This would explain why the step 2.x games by AM3 use both of these different methods to retrieve PCI ID codes as documented in Real3D.cpp; each method is meant to retrieve a different code!
I've tested and confirmed every step 2.x game works with the DMA device always returning 0x16C311DB and MPC106 always returning 0x178611DB.