Reply 60 of 131, by idspispopd
wrote:I wonder if someone with a copy of SoftICE or a similar debugger could find out how Expendable detects the G400 so a new patch could be made.
It checks for vendor id 102B (Matrox) and device id 0525 (G400/G450).
If it can't find a Matrox card it displays a message "SORRY......... This Version Needs MATROX Hardware!".
I can't tell exactly what happens it it can't find a G400, but if it finds a G200 it displays a message "SORRY......... This Version Needs MATROX G400 Hardware." I suppose the game will still quit.
I don't know which API is used to get the IDs, but I really suggest trying if 3D-Analyze can fake them. As far as I understand EMBM is a DirectX 6 feature (7 and 8 still seem to have it) that is also supported by the Radeon line, Geforce 3 and up, Kyro and possible others. On newer cards it was removed but I don't know when, my guess would be DirectX 10 cards.
If you want to try patching the go.exe in Maulwurf's patch you can change the following bytes:
Search for 3D 2B 10 00 00 75 39 and change 75 39 to 90 90 (disable check for 102B / Matrox)
Search for 81 F9 25 05 00 00 75 0A and change the 75 0A to 90 90 (disable check for 0525 / G400)
I don't know if there are any further checks or problems. I don't have the game so I can't test it, even when I try to start it I get an error message about smackw32.dll which seems to be some video codec installed with the game.