Fix hard-coded display setting without source (24-bit, need 32-bit)

Posted by FerretallicA on Stack Overflow See other posts from Stack Overflow or by FerretallicA
Published on 2010-04-30T02:17:57Z Indexed on 2010/04/30 2:27 UTC
Read the original article Hit count: 283

I wrote a program about 10 years ago in Visual Basic 6 which was basically a full-screen game similar to Breakout / Arkanoid but had 'demoscene'-style backgrounds. I found the program, but not the source code. Back then I hard-coded the display mode to 800x600x24, and the program crashes whenever I try to run it as a result. No virtual machine seems to support 24-bit display when the host display mode is 16/32-bit. It uses DirectX 7 so DOSBox is no use.

I've tried all sorts of decompiler and at best they give me the form names and a bunch of assembly calls which mean nothing to me. The display mode setting was a DirectX 7 call but there's no clear reference to it in the decompilation.

In this situation, is there any pointers on how I can:

  • pin-point the function call in the program which is setting the display mode to 800x600x24 (ResHacker maybe?) and change the value being passed to it so it sets 800x600x32

  • view/intercept DirectX calls being made while it's running

or if that's not possible, at least

  • run the program in an environment that emulates a 24-bit display

I don't need to recover the source code (as nice as it would be) so much as just want to get it running.

© Stack Overflow or respective owner

Related posts about directx

Related posts about reverse-engineering