No VM would make it a whole lot easier to play the game. Now to find a 1.2 copy...Thanks for the info!
If you're using Windows x64 you have to use a version that provides a Win32 exe since Windows x64 cannot run Win16 applications. Here's a list of versions that I found:
v1.1 English
- 4shared: spslvgg
- Win32 only (ssgwin32.exe)
v1.12 English
- archive.org: SSGWINCD / SuperSolversGizmosGadgetsTheLearningCompany1997 / ssgwincd1998
- Win16 (ssgwincd.exe) and Win32 (ssgwin32.exe)
v1.2 English
- archive.org: SSGCD
- Win32 only (ssgwin32.exe)
v1.2 German
- Download link in YouTube comment
- Win16 only (ssgwincd.exe and ssgwin32.exe are identical)
Today DxWnd v2.05.78 was released. It adds support for running the Win32 version of the game in non-fullscreen mode:
- Open DxWnd
- Enable Options -> Expert mode
- Click Edit -> Add
- Main tab:
-
- Enter the path to ssgwin32.exe in Path
-
- Set W to 640 and H to 480
- Hook tab: check Inject suspended process
- Video tab:
-
- Check Force win resize
-
- Check Initial resolution and set it to 640 x 480
- Tweaks tab: enable win:LockSystemMenu
The latest version v2.06.04 works, but a couple of the options were renamed:
- Options -> Extended mode
- Hook -> Injection = Inject DLL
Unfortunately only the window size and initial resolution hooks work in wine. The window is still not moveable unless you check both “Allow the window manager to {decorate,control} the windows” in winecfg, and even then, mouse input goes to the wrong coordinates when moved, and the window moves back to (0,0) when focused.
The best approach I’ve found for wine is to check “Emulate a virtual desktop” in winecfg, but this can make it very annoying to use other programs like Cheat Engine at the same time.
If you need to be able to do that, you can make the window moveable and a reasonable size by patching ssgwin32.exe (v1.2 english) as follows…
- at 129Dh (410C9Dh), in what I call “Game::CreateWindow”, replace
FF 35 54 48 46 00 push dword ptr [$DesktopRect.height]
FF 35 50 48 46 00 push dword ptr [$DesktopRect.width]
FF 35 4C 48 46 00 push dword ptr [$DesktopRect.top]
FF 35 48 48 46 00 push dword ptr [$DesktopRect.left]
with
68 E0 01 00 00 90 push 0x1E0; nop
68 80 02 00 00 90 push 0x280; nop
6A 00 90 90 90 90 push 0; nop x4
6A 00 90 90 90 90 push 0; nop x4
- at 199Dh (41139Dh), in “MainWndProc”, WM_ACTIVATE case, replace
66 C7 05 BC 01 46 00 01 00 mov word ptr [Game::needToMakeGameAnnoying], 1
with
90 90 90 90 90 90 90 90 90 nop x9
- at 461BCh (4601BCh), in “Game::needToMakeGameAnnoying”, replace
01 00 (WORD)1
with
00 00 (WORD)0