Activity for crazyc

  • crazyc crazyc modified a comment on discussion General Discussion

    If I use SDL renderer I get this. My display is 2560 pixels wide which is 640*4 and the image appears to be 1/4 of the window width. This combined with the ddraw surface pitch being 2560 pixels suggests to me that it expects the surface to wrap around as it pans left and right. To be clear the same thing happens with the primary surface render except it's not squished.

  • crazyc crazyc modified a comment on discussion General Discussion

    If I use SDL renderer I get this. My display is 2560 pixels wide which is 640*4 and the image appears to be 1/4 of the window width. This combined with the ddraw surface pitch being 2560 pixels suggests to me that it expects the surface to wrap around as it pans left and right. To clear the same thing happens with the primary surface render except it's not squished.

  • crazyc crazyc posted a comment on discussion General Discussion

    If I use SDL renderer I get this. My display is 2560 pixels wide which is 640*4 and the image appears to be 1/4 of the window width. This combined with the ddraw surface pitch being 2560 pixels suggests to me that it expects the surface to wrap around as it pans left and right.

  • crazyc crazyc posted a comment on discussion General Discussion

    SUnMapLS_IP_EBP_12 is a win95 only export. You can use the EXPAND command to extract the executable rather than using the installer but I've attached it for simplicity.

  • crazyc crazyc modified a comment on discussion General Discussion

    Well, if it's trying to draw to the front buffer then syncing to vblank makes sense but it doesn't work for me either, Possibly a version difference with the copy you have or maybe since I'm using a 144hz display it's syncing to the wrong frequency but setting "wait for frequency" to 60 also doesn't work. Logging shows it never sets the ddraw palette and sync with the gdi palette just has different wrong colors.

  • crazyc crazyc posted a comment on discussion General Discussion

    Well, if it's trying to draw to the front buffer then syncing to vblank makes sense but it doesn't work for me either, Possibly a version difference with the copy you have or maybe since I'm using a 144hz display it's syncing to the wrong frequency but setting "wait for frequency" to 60 also doesn't work. Logging shows it never sets the ddraw palette and sync gdi palette just has different wrong colors.

  • crazyc crazyc posted a comment on discussion General Discussion

    It does https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-disableprocesswindowsghosting as an alternative to pumping the message queue which doesn't always work.

  • crazyc crazyc modified a comment on discussion General Discussion

    Using https://archive.org/details/EccoTheDolphinSega1995 with the default dxwnd profile (except no ghosting otherwise the opening movie hangs) i get the above crash. With yours i still need no ghost but the game runs with a corrupt palette and very weird scrolling. It's version 1.1 according to the about box.

  • crazyc crazyc posted a comment on discussion General Discussion

    Using https://archive.org/details/EccoTheDolphinSega1995 with the default dxwnd profile (except no ghosting otherwise the opening movie hangs) i get the above crash. With yours i still need no ghost but the game runs with a corrupt palette.

  • crazyc crazyc modified a comment on discussion General Discussion

    As i said above it's waiting for vblank not setting the palette. Dxwnd does support this but it's checking for the wrong instruction sequence: // this pattern: // start: IN AL,DX ; I/O command // TEST AL,08 // JNZ SHORT start or JZ SHORT start // is often used to sample the video card status and wait for a vSync status. // since the JNZ block is followed by a JZ block removing the IN instruction is not // enough to avoid an endless loop. You have to clear all 3 instructions. but this uses AND AL,8...

  • crazyc crazyc modified a comment on discussion General Discussion

    As i said above it's waiting for vblank not setting the palette. Dxwnd does support this but it's checking for the wrong instruction sequence: // this pattern: // start: IN AL,DX ; I/O command // TEST AL,08 // JNZ SHORT start or JZ SHORT start // is often used to sample the video card status and wait for a vSync status. // since the JNZ block is followed by a JZ block removing the IN instruction is not // enough to avoid an endless loop. You have to clear all 3 instructions. but this uses AND AL,8...

  • crazyc crazyc posted a comment on discussion General Discussion

    As i said above it's waiting for vblank not setting the palette. Dxwnd does support this but it's checking for the wrong instruction sequence: // this pattern: // start: IN AL,DX ; I/O command // TEST AL,08 // JNZ SHORT start or JZ SHORT start // is often used to sample the video card status and wait for a vSync status. // since the JNZ block is followed by a JZ block removing the IN instruction is not // enough to avoid an endless loop. You have to clear all 3 instructions. but this uses AND AL,8...

  • crazyc crazyc modified a comment on discussion General Discussion

    There is a win16 and win32 version on the cdrom. The win16 version tries to start but has issues with window focus. The win32 one directly accesses vga ports. If run (on my computer) without dxwnd it dies with a directdraw error.

  • crazyc crazyc posted a comment on discussion General Discussion

    There is a win16 and win32 version on the cdrom. The win16 version tries to start but has issues with window focus. The win32 one directly accesses vga ports.

  • crazyc crazyc modified a comment on discussion General Discussion

    No, bad program (it's waiting for vblank). Edit: I haven't seen it documented anywhere but if you open about, move it so the edge is off the right-bottom corner of the screen, hold ctrl-shift while pressing ok, then hold ctrl-shift again while right clicking on the main window, a level select menu appears.

  • crazyc crazyc posted a comment on discussion General Discussion

    No, bad program (it's waiting for vblank).

  • crazyc crazyc modified a comment on discussion General Discussion

    I found the real default.gb3 in the cd image. Game starts properly with this. Annoyingly it's aggressive mouse capture tends to crash explorer. Center on exit seems to help by fooling the game into thinking the mouse is still in the window.

  • crazyc crazyc posted a comment on discussion General Discussion

    I found the real default.gb3 in the cd image. Game starts properly with this. Annoyingly it's aggressive mouse capture tends to crash explorer.

  • crazyc crazyc posted a comment on discussion General Discussion

    When I go to new game it just exits. It seems to grab the mouse so clicks are unresponsive everywhere but the computer otherwise seems to be fine. Pressing the windows key breaks it out. Debugging shows it's looking for save\default.gb3 to have ALOB at the start but it has ALAC instead.

  • crazyc crazyc modified a comment on discussion General Discussion

    It's just doing if(GetDriveTypeA("%cdrom%:/") == 5) if(CFileFind::FindFile("%cdrom%:/"+"B-17.EXE", 0)) goto success; goto fail; https://github.com/Zero-Fanker/MFC42/blob/master/src/FILEFIND.CPP#L60 MFC42 needs to be hooked for FindFirstFileA

  • crazyc crazyc posted a comment on discussion General Discussion

    It's just doing if(GetDriveTypeA("%cdrom%:/") == 5) if(CFileFind::FindFile("%cdrom%:/"+"B-17.EXE, 0)) goto success; goto fail; https://github.com/Zero-Fanker/MFC42/blob/master/src/FILEFIND.CPP#L60 MFC42 needs to be hooked for FindFirstFileA

  • crazyc crazyc modified a comment on discussion General Discussion

    Another Director game. Anyway, the problem here is that WM_ACTIVATE is being sent before CreateWindow returns and the program isn't ready for it.

  • crazyc crazyc posted a comment on discussion General Discussion

    Another Director game. Anyway, the problem here is that WM_ACTIVATE is being sent before CreateWindow return and the program isn't ready for it.

  • crazyc crazyc committed [56dea0] on Code

    i386: qword ptr also needs the fix

  • crazyc crazyc committed [9641b6] on Code

    i386: fix softfloat with gcc 15 optimizer

  • crazyc crazyc committed [26247d] on Code

    i386: include the 486

  • crazyc crazyc committed [b23a85] on Code

    i386: adjust cs for ppro+

  • crazyc crazyc committed [a0c5fb] on Code

    i386: use the correct bits for dpl

  • crazyc crazyc committed [9c9da7] on Code

    i386: fix smm

  • crazyc crazyc posted a comment on discussion General Discussion

    There's no other visible window for me.

  • crazyc crazyc modified a comment on discussion General Discussion

    Using the demo which has the same issue, I see a window called Innerloop. user32.CreateWindowExA: class="Innerloop" wname="Innerloop" pos=(80,60) size=(640,480) Style=0x96080000(WS_CLIPCHILDREN+CLIPSIBLINGS+POPUP+SYSMENU+VISIBLE) ExStyle=0(WS_EX_RIGHTSCROLLBAR) hWndParent=0 hMenu=0 depth=0 user32.CreateWindowExA: DEBUG fullscreen=0 mainwin=0 screen=(800,600) user32.CreateWindowExA: ActiveMovie=0 This seems a bit weird. IDirect3DDevice8::GetDisplayMode: size=(2560x1440) RefreshRate=60 Format=22 IDirect3DDevice8::GetDisplayMode:...

  • crazyc crazyc posted a comment on discussion General Discussion

    Using the demo which has the same issue, I see a window called Innerloop. user32.CreateWindowExA: class="Innerloop" wname="Innerloop" pos=(80,60) size=(640,480) Style=0x96080000(WS_CLIPCHILDREN+CLIPSIBLINGS+POPUP+SYSMENU+VISIBLE) ExStyle=0(WS_EX_RIGHTSCROLLBAR) hWndParent=0 hMenu=0 depth=0 user32.CreateWindowExA: DEBUG fullscreen=0 mainwin=0 screen=(800,600) user32.CreateWindowExA: ActiveMovie=0

  • crazyc crazyc posted a comment on discussion General Discussion

    Seems to work perfectly.

  • crazyc crazyc modified a comment on discussion General Discussion

    Have you looked into https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-disableprocesswindowsghosting ? Sounds maybe too good to be true? Does seem to work though with a small amount of experimentation.

  • crazyc crazyc modified a comment on discussion General Discussion

    Have you looked into https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-disableprocesswindowsghosting ? Sounds maybe too good to be true?

  • crazyc crazyc posted a comment on discussion General Discussion

    Have you looked into https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-disableprocesswindowsghosting ?

  • crazyc crazyc modified a comment on discussion General Discussion

    It still hangs at the course selection if you stop moving the mouse but it now starts working again after about 30 sec. The most looped action is ironically PeekMessageA but filter min and max are both WM_MOUSEMOVE.

  • crazyc crazyc posted a comment on discussion General Discussion

    It still hangs at the course selection if you stop moving the mouse but it now starts working again after about 30 sec.

  • crazyc crazyc modified a comment on discussion General Discussion

    The hang is weird and seems to be caused by the windows hang detection. Windows hides the real window when it detects a hang. If I move the ghost window, show the real window and give it focus then it responds correctly. The dxwnd message pump doesn't help because it is pumping messages but only checking for WM_MOUSEMOVE.

  • crazyc crazyc posted a comment on discussion General Discussion

    The hang is weird and seems to be caused by the windows hang detection. Windows hides the real window when it detects a hang. If move the ghost, show the real window and give it focus then it responds correctly. The dxwnd message pump doesn't help because it is pumping messages but only checking for WM_MOUSEMOVE.

  • crazyc crazyc modified a comment on discussion General Discussion

    So, the flag is now useless though I should try to understand why it causes this effect. # Time of Day Thread Module API Return Value Error Duration 41 6:50:21.427 PM 1 jgld.dll CreateScalableFontResourceA ( 0, "manu3_.fot", "Z:\:\Users\crazy\Downloads\Sid-Meiers-SimGolf_Win_EN_RIP-Version\Sid Meier's SimGolf\manu3_.ttf", NULL ) FALSE 87 = The parameter is incorrect. 0.0000486 42 6:50:21.427 PM 1 gdi32full.dll CreateScalableFontResourceW ( 0, "manu3_.fot", "Z:\:\Users\crazy\Downloads\Sid-Meiers-SimGolf_Win_EN_RIP-Version\Sid...

  • crazyc crazyc posted a comment on discussion General Discussion

    So, the flag is now useless though I should try to understand why it causes this effect. # Time of Day Thread Module API Return Value Error Duration 41 6:50:21.427 PM 1 jgld.dll CreateScalableFontResourceA ( 0, "manu3_.fot", "Z:\:\Users\crazy\Downloads\Sid-Meiers-SimGolf_Win_EN_RIP-Version\Sid Meier's SimGolf\manu3_.ttf", NULL ) FALSE 87 = The parameter is incorrect. 0.0000486 42 6:50:21.427 PM 1 gdi32full.dll CreateScalableFontResourceW ( 0, "manu3_.fot", "Z:\:\Users\crazy\Downloads\Sid-Meiers-SimGolf_Win_EN_RIP-Version\Sid...

  • crazyc crazyc modified a comment on discussion General Discussion

    2) Curiously, the text in the menu panels has a y offset about the size of a window titlebar. I initially thought that this was caused by the titlebar, but then I noted that the same offset is present also when running the game in fullscreen or modal style. The problem does not exist running the game alone, so it must depend on DxWnd. This problem is fixed for me by disabling Fake HD so the correct fonts get loaded. Something annoying I see though is when I close the window using the X button it...

  • crazyc crazyc posted a comment on discussion General Discussion

    2) Curiously, the text in the menu panels has a y offset about the size of a window titlebar. I initially thought that this was caused by the titlebar, but then I noted that the same offset is present also when running the game in fullscreen or modal style. The problem does not exist running the game alone, so it must depend on DxWnd. This problem is fixed for me by disabling Fake HD so the correct fonts get loaded. Something annoying I see though is when I close the window using the X button it...

  • crazyc crazyc modified a comment on discussion General Discussion

    Hook opengl doesn't work because it also has the IsRealDesktop problem although when opengl renders to a bitmap open hooking probably isn't needed anyway. Edit: If Fake HD is enabled in the I/O tab and you are using the rip version, disable it to fix the fonts.

  • crazyc crazyc posted a comment on discussion General Discussion

    Hook opengl doesn't work because it also has the IsRealDesktop problem although when opengl renders to a bitmap open hooking probably isn't needed anyway.

  • crazyc crazyc modified a comment on discussion General Discussion

    Just disable hook opengl and it works. The DC remapping was the only problem. The popup settings menu doesn't appear though. Edit: Menu is fixed with "Position Mouse Processing".

  • crazyc crazyc modified a comment on discussion General Discussion

    Just disable hook opengl and it works. The DC remapping was the only problem. The popup settings menu doesn't appear though. Edit: Menu is fix with "Position Mouse Processing".

  • crazyc crazyc modified a comment on discussion General Discussion

    Just disable hook opengl and it works. The DC remapping was the only problem. The popup settings menu doesn't appear though.

  • crazyc crazyc modified a comment on discussion General Discussion

    Just disable hook opengl and it works. The popup settings menu doesn't appear though.

  • crazyc crazyc posted a comment on discussion General Discussion

    Just disable hook opengl and it works.

  • crazyc crazyc posted a comment on discussion General Discussion

    Post a build with these changes?

  • crazyc crazyc posted a comment on discussion General Discussion

    I've found a bug in dxwChoosePixelFormat and dxwSetPixelFormat. Simgolf passes a memory dc to them which then if(dxw.Windowize && dxw.IsRealDesktop(WindowFromDC(hdc))){ returns 0 as it's not a window dc. IsRealDesktop returns TRUE as it treats 0 as the desktop dc. The memory dc is then incorrectly remapped to the game window dc.

  • crazyc crazyc modified a comment on discussion General Discussion

    Using bear https://the-sz.com/products/bear/ I examined the memory bitmaps while the game was running without dxwnd and the only interesting ones are attached. The bitmap with the sprites is a dib section so the game isn't using bitblt to draw them (there are no bitmaps with the sprites in them either), it's writing directly to the dib section after copying the terrain bitmap into it.

  • crazyc crazyc modified a comment on discussion General Discussion

    Using bear https://the-sz.com/products/bear/ I examined the memory bitmaps while the game was running without dxwnd and the only interesting ones are attached. The bitmap with the sprites is a dib section so the game isn't using bitblt to draw them, it's writing directly to the dib section after copying the terrain bitmap into it.

  • crazyc crazyc modified a comment on discussion General Discussion

    Using bear https://the-sz.com/products/bear/ I examined the memory bitmaps while the game was running without dxwnd and the only interesting ones are attached. The bitmap with the sprites is a dib section so the game isn't using bitblt to draw them, it's writing directly to the dib section after copying the terrain bitmap into it.

  • crazyc crazyc posted a comment on discussion General Discussion

    Using bear https://the-sz.com/products/bear/ I examined the memory bitmaps while the game was running without dxwnd and the only interesting ones are attached. The bitmap with the sprites is a dib section so the game isn't using bitblt to draw them, it's writing directly to the dib section after copying the terrain bitmap into it.

  • crazyc crazyc posted a comment on discussion General Discussion

    Winevdm does nothing with clip regions, they are passed directly to win32.

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen. I'm...

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen. I'm...

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen. I'm...

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen. I'm...

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen. I'm...

  • crazyc crazyc modified a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing it to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen.

  • crazyc crazyc posted a comment on discussion General Discussion

    I think what happening is that opengl isn't bitblting to the screen but instead to a bitmap as PFD_DRAW_TO_BITMAP is set in the call to SetPixelFormat. The gl output bitmap is fed to jgld.dll which combines it with the sprites then drawn to the screen. Dxwnd is overriding the pixel format when wglCreateContext is called and changing to PFD_DRAW_TO_WINDOW. Since the opengl output is sent to the screen jgld.dll is getting a blank bitmap that it then puts the sprites on and draws to the screen.

  • crazyc crazyc modified a comment on discussion General Discussion

    Terrain.dll tries to set the pixel format to 16bpp but when it calls wglCreateContext it returns error 0x2000 ERROR_INVALID_PIXEL_FORMAT which makes sense since windows 11 only supports 32bpp. Edit: I was wrong, it does work fullscreen. Edit2: I wonder if in fullscreen opengl is being forced to use software rendering somehow.

  • crazyc crazyc modified a comment on discussion General Discussion

    Terrain.dll tries to set the pixel format to 16bpp but when it calls wglCreateContext it returns error 0x2000 ERROR_INVALID_PIXEL_FORMAT which makes sense since windows 11 only supports 32bpp. Edit: I was wrong, it does work fullscreen.

  • crazyc crazyc posted a comment on discussion General Discussion

    Terrain.dll tries to set the pixel format to 16bpp but when it calls wglCreateContext it returns error 0x2000 ERROR_INVALID_PIXEL_FORMAT which makes sense since windows 11 only supports 32bpp.

  • crazyc crazyc modified a comment on discussion General Discussion

    Game seems to hang on my computer very easily. When I do get in game I get an error about "Unable to create GL rendering context", I don't see that mentioned anywhere so it might just be a problem here. Anyway, once running I do get the same problem with black grass. Edit: Wait this happens even when run fullscreen. Looks like it's completely broken on my computer.

  • crazyc crazyc posted a comment on discussion General Discussion

    Game seems to hang on my computer very easily. When I do get in game I get an error about "Unable to create GL rendering context", I don't see that mentioned anywhere so it might just be a problem here. Anyway, once running I do get the same problem with black grass.

  • crazyc crazyc modified a comment on discussion General Discussion

    Wine supports dsound and d3d 2 but it's not guaranteed to be 100% compatible, just good enough so most software runs. Dxwnds hooks might expect things that wine doesn't implement.

  • crazyc crazyc posted a comment on discussion General Discussion

    Wine supports dsound and d3d 2 but it's not guaranteed to be 100% compatible, just good enough so most software runs. Dxwnds hooks might do things that wine doesn't implement.

  • crazyc crazyc posted a comment on discussion General Discussion

    1) the hook seems successful but in reality it is not and the wrapper routine is bypassed Maybe with IAT redirection but don't how this is possible with Hot Patch. 2) the hook had success but it took place after that the window was created, just too late. Don't see how this is possible with detours. It could be interesting to see how this Win8.1 Entony said it happens with windows 10 also. Only ideas I can think of is joytokey or textractor are interfering some how if they are still running or this...

  • crazyc crazyc committed [283641] on Code

    hiscore.dat: updates

  • crazyc crazyc posted a comment on discussion General Discussion

    I think that more than user32 is affected as there are a bunch of calls missing from the logs. Try setting hook mode to hot patch.

  • crazyc crazyc modified a comment on discussion General Discussion

    I also see the calls to CreateWindowExA but also with "Don't notify on task switch" it crashes after restoring the window.

  • crazyc crazyc posted a comment on discussion General Discussion

    I also see the calls to CreateWindowExA but with "Don't notify on task switch" it crashes after restoring the window.

  • crazyc crazyc posted a comment on discussion General Discussion

    bitc=640 A bitdepth of 640 isn't going to work.

  • crazyc crazyc posted a comment on discussion General Discussion

    Your log shows it returns 0xffffffff which should be correct as dummy doesn't exist. So the game still doesn't work?

  • crazyc crazyc posted a comment on discussion General Discussion

    Dxwnd is truncating (DWORD)-1 to (WORD)-1 and winevdm expects the former. eax=00000003 ebx=00000000 ecx=00000000 edx=00000000 esi=80000000 edi=00000000 eip=761b78d8 esp=03e6e23c ebp=03e6e260 iopl=0 nv up ei ng nz na pe cy cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000287 KERNEL32!_lopen+0x38: 761b78d8 ff15f8121d76 call dword ptr [KERNEL32!_imp__CreateFileA (761d12f8)] ds:002b:761d12f8={KERNELBASE!CreateFileA (75f06470)} 1:014> eax=ffffffff ebx=00000000 ecx=84307f0b edx=00000000 esi=80000000...

  • crazyc crazyc posted a comment on discussion General Discussion

    You should add +int21,+msg to the WINEDEBUG env var as win16 programs heavily use dos int 21h syscalls and window messages are also very useful to see. Anyway, here's the problem. 9824:trace:int21:DOSVM_Int21Handler AX=19bc BX=0000 CX=d8b4 DX=1907 SI=d8b4 DI=1907 DS=1c17 ES=1907 EFL=00003282 9824:trace:int21:DOSVM_Int21Handler GET CURRENT DRIVE -> C: 9824:trace:int21:DOSVM_Int21Handler returning: AX=1902 BX=0000 CX=d8b4 DX=1907 SI=d8b4 DI=1907 DS=1c17 ES=1907 EFL=00003282 9824:trace:int21:DOSVM_Int21Handler...

  • crazyc crazyc posted a comment on discussion General Discussion

    A debug trace when it fails might show the problem.

  • crazyc crazyc posted a comment on discussion General Discussion

    This runs okay for me. Is there some specific option you are using?

  • crazyc crazyc modified a comment on discussion General Discussion

    At line 261 or GameIcons.cpp if (cx2 && cy2) pIconId[++i] = LookupIconIdFromDirectoryEx(pCIDir, TRUE, cx2, cy2, flags); pIconId is best so if the file has more than 1 icon it will overwrite the next bytes on the stack.

  • crazyc crazyc posted a comment on discussion General Discussion

    At line 261 or GameIcons.cpp if (cx2 && cy2) pIconId[++i] = LookupIconIdFromDirectoryEx(pCIDir, TRUE, cx2, cy2, flags); pIconId is best so if the file has more than 1 icon it will overwrite the next bytes on the that.

  • crazyc crazyc posted a comment on discussion General Discussion

    Can you build it with pdb symbols?

  • crazyc crazyc posted a comment on discussion General Discussion

    You'd need to set a breakpoint after return and set eax to 0. I don't know if ap monitor can do that, you might need a real debugger.

  • crazyc crazyc posted a comment on discussion General Discussion

    346c:Call VER.6: GETFILEVERSIONINFOSIZE(12070eee "USER.EXE",1207:53dc) ret=11ff:68ba ds=1207 346c:Ret VER.6: GETFILEVERSIONINFOSIZE() retval=000001c0 ret=11ff:68ba ds=1207 346c:Call KERNEL.15: GLOBALALLOC(0042,000001c0) ret=11ff:68d5 ds=1207 AX=01c0 BX=171a CX=0000 DX=01c0 SI=00d0 DI=5960 ES=1207 EFL=00003216 346c:Ret KERNEL.15: GLOBALALLOC() retval=none ret=11ff:68d5 ds=1207 AX=12d6 BX=12d6 CX=12d6 DX=01c0 SI=00d0 DI=5960 ES=0000 EFL=00003216 346c:Call KERNEL.18: GLOBALLOCK(12d6) ret=11ff:68db ds=1207...

  • crazyc crazyc posted a comment on discussion General Discussion

    https://github.com/otya128/winevdm/issues/1510

  • crazyc crazyc posted a comment on discussion General Discussion

    This has the same problem in xp/ntvdm with 32bpp so it's a color mode problem. The problem is different but still wrong with 256 compat mode.

  • crazyc crazyc modified a comment on discussion General Discussion

    I can't explain why my config doesn't work for you but making GetAttachedSurface from dxwnd return NULL eventually passes the hang starting a mission. I then fails with a "Could not aquire analogue device" from https://github.com/gondur/mig_src/blob/master/SRC/INPUT/ANALOGUE.CPP#L379 .

  • crazyc crazyc posted a comment on discussion General Discussion

    I can't explain why my config doesn't work for you but making GetAttachedSurface from dxwnd return NULL eventually passes the hang starting a mission. I then fails with a "'Could not aquire analogue device" from https://github.com/gondur/mig_src/blob/master/SRC/INPUT/ANALOGUE.CPP#L379 .

  • crazyc crazyc committed [ba2b9a] on Code

    v5x: clear m_brc_enable in constructor

  • crazyc crazyc posted a comment on discussion General Discussion

    As I said above, your config did give the error. Changing the DirectX render to primary surface made it go away. If I do that then there is a resolution list in the preferences. A log with your config shows that the only resolutions returned by EnumModesCallback are 32bpp ones that the game rejects.

  • crazyc crazyc modified a comment on discussion General Discussion

    Okay, this one does give "failed to find ddraw modes" error. Here's mine which doesn't. To fix the error set DX renderer to primary surface and to fix the preferences set window initial size in the main tab to the same as the initial screen size in the video tab.

  • crazyc crazyc modified a comment on discussion General Discussion

    Okay, this one does give "failed to find ddraw modes" error. Here's mine which doesn't.

  • crazyc crazyc posted a comment on discussion General Discussion

    Okay, this one does give "failed to find ddraw modes" error. Here's mine which doesn't.

  • crazyc crazyc posted a comment on discussion General Discussion

    The error comes from https://github.com/gondur/mig_src/blob/master/SRC/HARDWARE/DDRWINIT.CPP#L686 after checking for an lpdd2 object which is created in the constructor at https://github.com/gondur/mig_src/blob/master/SRC/HARDWARE/WIN3D.CPP#L1572 . Again on my computer this doesn't happen which suggests some display driver difference.

  • crazyc crazyc modified a comment on discussion General Discussion

    If i set Inital res to 1024x768 in the video tab the preferences pages look much better. I also see the bad pixel format. IDirectDraw2::GetDisplayMode: lpdd=0x47d2a28 lpddsd=0x19f9f8 dxwnd.GetPixFmt: PixelFormat flags=0x40(DDPF_RGB) BPP=1024 RGB=(0xf800,0x7e0,0x1f) IDirectDraw2::GetDisplayMode: returning size=(1024x768) PixelFormat flags=0x40(DDPF_RGB) BPP=1024 RGB=(0xf800,0x7e0,0x1f)

  • crazyc crazyc modified a comment on discussion General Discussion

    If i set Inital res to 1024x768 in the video tab the preferences pages look much better.

1 >
MongoDB Logo MongoDB