Jonathan Wilson wrote:
This is the best things to do but the problem is not always obvious. If REing does not give significant result, I would suggest to check how the function behaves in windows and implement the same behaviour with maybe a big comment about ChessMaster 9000.
I suggest that some kind of windows API hook (I have done direct3d hooking before so I know it can be done) or API spy to find ouit just what gets passed by chessmaster on windows would be a good idea.
This would be great but how do you do with COM objects. What did you do for your direct3d hooking.
BTW, I remember I had a problem with a registry key that was closed and read afterwards. I've never figured out why the app closes this key. API hooking would have been usefull. Is there something available for doing that?
If chessmaster passes the same thing on windows, one can figure out what to do with it. If it doesnt, one can figure out why wine is being passed bad input...
This would be great but how do you do with COM objects. What did you do for your direct3d hooking.
Well, this is a pet project I had for a long time (and maybe will do the day I will have a faster PC and QEMU runs any Windows version in a reasonnable speed :-) ).
Basically, take the Wine DirectX framework (i.e. all the COM object methods + TRACEing) and just use it to 'wrap' the real API. The only stuff to be careful are the functions returning new COM objects (either creation functions or QueryInterface) and callbacks.
A part from that, it's something that is definitely doable in a day hacking session :-)
Lionel
Hi,
From what I'm hearing, there is some code that is usefull and not part of the Wine project. Does it worth adding it to Wine so every one can use it to ease debugging of apps under Windows?
Bye, Christian
From Jonathan
This would be great but how do you do with COM objects. What did you do for your direct3d hooking.
I remember someone on the ReactOS team gave me the hook related stuff. (I cant remember who) What I do is to modify the target to load the hook dll instead of the normal dll. The hook dll then loads the normal dll and hooks whatever direct3d functions you like...
Lionel Ulmer wrote:
This would be great but how do you do with COM objects. What did you do for your direct3d hooking.
Well, this is a pet project I had for a long time (and maybe will do the day I will have a faster PC and QEMU runs any Windows version in a reasonnable speed :-) ).
Basically, take the Wine DirectX framework (i.e. all the COM object methods
- TRACEing) and just use it to 'wrap' the real API. The only stuff to be
careful are the functions returning new COM objects (either creation functions or QueryInterface) and callbacks.
A part from that, it's something that is definitely doable in a day hacking session :-)
Lionel
This would be great but how do you do with COM objects. What did you do for your direct3d hooking.
I remember someone on the ReactOS team gave me the hook related stuff. (I cant remember who) What I do is to modify the target to load the hook dll instead of the normal dll. The hook dll then loads the normal dll and hooks whatever direct3d functions you like...