_dodger opened this issue on Jul 22, 2003 ยท 6 posts
williamsheil posted Wed, 23 July 2003 at 1:39 PM
IIRC Direct3D (and DX) are in fact implemented as DLL imporable libraries which provide both hardware calls and software emulation of the functionality. However all calls that an executable makes to any external interface, whether its a dynamically loaded library or the kernel API (including DirectX), use the same mechanism. This is ulitimately dependent on a set of address arrays (the Import Address Table?) mapped into the calling program's virtal address space, which contain the (real) addresses of the kernel/DLL functions. These can be (and routinely are by system programmers) changed to redirect calls to spy programs. The Microsoft SDK provides information and software to do this as do other third parties. Another solution, would, of course, be to set up a "Trojan Horse" version of the DirectX libraries with the data call subsequently being passed on the real image of the modules after the "dirty work" has been carried out. The big question is, either of these ways the best to grab DirectX data. It certainly is an involved solution, as Syntax says, and it may well have to perform decisions on data processing and storage at frame rate. Plus many games are pushed so far to the limit in performance terms that keeping them stable while you peek at their data transfers could well be a major challenge in itself. The much more obvious (for me) solution would be to search the game data files for chunks that seem to resemble .x formatted meshes. There's a good long, tradition of game modding and file deformatting has always been a suucessful (if involved) and preferred technique. Naturally, of course, copyrights apply automatically, unless there is an explicit (ab)usage statement, but there's nothing to disallow this kind of thing for personal use. Bill