![]() Hi, i've Rollercoaster Tycoon 1 CD version with Loopy Landscapes expansion installed, already applied patch 1.20.013 official. There are still a couple o things to fix, but the path is traced. Filtering these messages (that is, preventing them to reach the WindowProc routines) allow to move and scale the window without big troubles. In particular, the game seems to use the GetRegionData call, though playing with the returned values seems to produce no good results.Īfter so many attempts with region manipulations (that raised more questions than they solved.) I found that the problem with screen scaling is due to interception of WM_WINDOWPOSCHANGING/CHANGED message processing. To let dxwnd manage these, one must set the "Use DLL injection" flag, because the GetProcAddress take place before the window hook! Looking more carefully at the game, it is quite a deceiving one! The import table shows a limited number of gdi32/user32 calls, but the game at startup loads a lot of further calls via GetProcAddress calls. I suspect the game is grabbing the actual window size from window messages, either WM_NCCALCSIZE or WM_WINDOWMOVING, but is that true? And, if so, is it possible to fake just the main game logic without affecting the window behavior?Īqurit, where are you? Please, help me!!! ) The situation in RollerCoaster Tycoon Deluxe is even worse: it is impossible to start it in window size greater than the native 640x480 resolution (it has a memory fault), while at smaller resolution (see the screenshot at 400x300) it scales everything further down. I also suspect that something similar could be happening on Diablo: both games have problems trying to enlarge the window to the whole desktop. I tried to figure out what could be the cause of the problem, that on even bigger sizes can even prevent the game to work. Just look carefully at the first screen lines of the bigger windows. Apparently something is writing on top of a ddraw surface buffer!Ģ) creating a new scenario, the selection menu is not centered in the screen as it happens on 640x480 size, and seems centered respect to the actual window size instead of the virtual size.Īll this is shown in the attached pictures, that I think are quite self explaining. Increasing the window size causes at least two mysterious effects:ġ) the upper region of the screen is corrupted. Is this fixing all the problems? No, not at all! This is implemented in the attached dxwnd debug release. It works with 0,0 window size (that is, the native 640x480 resolution), but to scale to different sizes you need to hook the GetRgnBox gdi call. The "RollerCoaster Tycoon" game (the first one of the series) is showing a very peculiar behavior. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |