The game Logical Journey of the Zoombinis was an amazing game when I was young. It was fun, and apparently I learned a lot. I decided to try to install it on my Devuan ceres laptop. Here is the optimal route for making it work.
How to Install Zoombinis on Linux
The Zoombinis game was published in 1996, and it supports Windows 3.1 and Windows 95. We are going to install Windows 3.1 in DOSBox, install drivers, and then install the game.
Prepare Windows 3.1
Install DOSBox, which is probably in the main package manager on your GNU/Linux platform.
sudo dnf install dosbox sudo apt-get install dosbox
Extract the Windows 3.1 VHD file (which I had from my old MSDN AA days). Also extract into sub-folders the Zoombinis disc contents, the sound drivers that DOSBox emulates, and the emulated video drivers.
mkdir -p ~/win31 ; cd ~/win31 ; 7z x ~/Downloads/Windows\ 3.1.vhd mkdir -p ~/win31/zoominst ; cd ~/win31/zoominst && 7z x ~/Downloads/Logical\ Journey\ of\ the\ Zoombinis.iso mkdir -p ~/win31/drivers/SB ; cd ~/win31/drivers/SB && 7z x ~/Downloads/SB16W3x.zip mkdir -p ~/win31/drivers/S3 ; cd ~/win31/drivers/S3 && 7z x ~/Downloads/s3drivers.zip
Prepare a batch file for mounting the right drives in the emulated environment.
cat <<'EOF' > win31.bat REM for Zoombinis MOUNT C ~/win31 MOUNT D ~/win31/zoominst EOF
It might prompt you about deleting a corrupt swap file. You can select “Y” to do so, and then go into the Control Panel, “386 Enhanced,” Virtual Memory button, and save the information that is present. Then it shouldn’t prompt you anymore.
Install sound and video drivers
Zoombinis will warn you about sound and video settings, so the driver we loaded earlier should cover this. Now we have to install them. DOSBox emulates the SoundBlaster and S3 video hardware, so we just apply those drivers for Windows 3.1, and then audio will work and higher graphics settings too.
In DOSBox, cd to DRIVERS\SB and run the INSTALL utility.
cd DRIVERS\SB INSTALL.EXE
Press enter to install the driver now.
Press enter to do a full installation.
Navigate with the arrow keys down to the Windows 3.1 path and enter in the “C:\Windows” value.
Change the Interrupt setting to the DOSBOX default of 7, as seen in this screenshot (unless you modified it in the dosbox.conf).
If it prompts you about replacing a file, feel free. It will not harm anything to replace it.
When that finishes, you can either reboot or stay on the current session.
Now it is time to install the video drivers. In DOSBox, run the Windows SETUP.EXE utility.
cd WINDOWS SETUP.EXE
Select the DISPLAY option and press enter.
Scroll all the way to the bottom of the list and select “Other (requires disk…)”
Type in the directory where the video drivers are, e.g. “C:\DRIVERS\S3”
I am uncertain if Windows 3.1 has the ability to change the display resolution, so just pick your preferred screen resolution here.
I picked the 800×600 64K color with small fonts (as opposed to large-print fonts).
The SETUP utility will then return to the full list of system information, and you can select “Accept the configuration shown above.”
You might need to point it to the “C:\DRIVERS\S3” folder once more.
Now you can run Windows 3.1 with sound and an 800×600 display!
Use File Manager to navigate to where we injected the install files.
Run the setup.exe!
Make sure you have enough disk space.
I installed QuickTime as well, although I don’t know what its omission would do.
Now you should have “Broderbund Software” group in Program Manager and the Zoombinis launcher inside it!
First of all, I had to find my old .VCD file (from my Virtual Drive Manager days on a non-free OS). I know those are basically ISO files and can just loop-mount them. Unfortunately, my .VCD file was corrupted. I then had to scrounge around for the old .FCD file and finally found it. But then, I had to try to get the contents out of it. I spent about 45 minutes researching online before I found IsoBuster. That software is shareware, but its free components worked enough to let me copy out the contents of the FCD file. On GNU/Linux these days, it’s all ISOs, and those are much easier to work with and find tutorials.
Did you know that 7zip can extract files from ISO and VHD files? That was very neat to learn.
I tried installing the game in Wine, and after getting the cd check part to work (by modifying the ini file “INSTALLFROMDRIVE=D”), I ran into an error: “Cannot initialize graphics.” And it included some contents of a register, and I never solved it.
err:int21:INT21_Ioctl_Block int21: unknown/not implemented parameters: int21: AX 440d, BX 0004, CX 0848, DX db46, SI 0000, DI 0000, DS 0000, ES 0000 fixme:reg:RegOpenUserClassesRoot (0x7c, 0x0, 0x2000000, 0xe2e6d8) semi-stub err:int21:INT21_Ioctl_Block int21: unknown/not implemented parameters: int21: AX 440d, BX 0004, CX 0848, DX dde2, SI 0000, DI 0000, DS 0000, ES 0000
I think that’s functionality that just hasn’t been added to Wine. I’m pretty sure the game does some early DirectX fullscreen mumbo-jumbo and this version of how it does that was not implemented in wine. Ah, well.
But, during all this work I had read the Zoombini readme and it indicates it can be installed in Windows 3.1, ergo the main part of this article.
General Win 3.1 howto https://www.howtogeek.com/230359/how-to-install-windows-3.1-in-dosbox-set-up-drivers-and-play-16-bit-games/
Another general Win.31 howto, with sound and video driver installations https://joshmccarty.com/run-windows-3-1-in-dosbox/
Sound driver SB16W3X https://joshmccarty.com/wp-content/uploads/2013/08/SB16W3X.zip
Video driver S3 https://joshmccarty.com/wp-content/uploads/2013/08/s3drivers.zip