I have an old game that I am wanting to increase the resolution on. The problem is that the game is ancient and was written using DDRAW and GDI .A few things are weird with this application, First starting from the entry point all the program does is create the process. secondly all the other code is indeed executed just I can't break over it (Making reversing a very slow process).

Has anyone tried to reverse a DDraw application?

I so far, have it to where I have expanded the resolution in such, that the application is still showing the default resolution just pushed to the left top corner and everything is still the 640x480 and is surrounded by black BUT the cool thing is I can click out of the 640x480 in the black area and click on objects and move to them. Would anyone know how to possibly resolve this?

Another thing, it doesn't seem to matter what kind of break point I set in this(outside of EP) area of code the program never breaks there. Is there something I am missing here?

I can try to come up with a picture as an example if that would help ; if no one understands how I am describing resolution.

Also, I only see a call for DirectDrawCreate and it looks like it would point to an object or window but I cant tell entirely cause I cant break here.

1 Answer 1


DDRAW is an object based interface. DirectDrawCreate creates DDRAW interface object (based on GUID provided as paramter). Regarding black area, most probably rendering part uses internally smaller resolution. Could you share the game's name?

  • Thanks for the fast reply. The game is hellfire the expansion of diablo 1. I don't suppose you know why I can't break anywhere in most of the code. I was guessing I will have to use dll injection to continue further .
    – LUser
    Jul 25, 2014 at 14:16
  • I've checked hellfire binary. It seems that it just starts itself. Creates another process with the same binary and exits. You could patch binary to skip that part. Just put some NOP instructions. In my binary it was first CALL instruction in WinMain function.
    – malikcjm
    Jul 25, 2014 at 20:15
  • You must be talking about call 00409283 right ? Looking for main now .
    – LUser
    Jul 25, 2014 at 21:04
  • In my binary function that starts at 00409283 is WinMain. In that function there is call 004096B1. That function contains CreateProcessA call.
    – malikcjm
    Jul 25, 2014 at 21:26
  • And is there a spot to jump to ? Or just nop out the create process
    – LUser
    Jul 26, 2014 at 0:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.