Skip to content

DiscWright 0.7.1 - the menu's buttons work on Windows 98

Choose a tag to compare

@github-actions github-actions released this 12 Sep 09:24
· 47 commits to main since this release
4392308

A patch release, a day after 0.7.0. Nothing needs migrating: project files are unchanged, the disc layout is unchanged, and a 0.7.0 project opens and rebuilds exactly as it did.

The menu's buttons work on Windows 98

0.7.0 made the disc readable on Windows XP and older. Thanks to u/kelphelpOG on Reddit, who went and tried it on real Windows 11, XP and 98 machines:

I tried the ISO on Win11, WinXP and Win98, and they ALL autorun and work great except for Win98... None of the buttons work on the interface BUT the DVD or CD is explorable and able to be read, and on Win98 that's what counts!

The buttons had a single cause. The menu opened everything through Shell.ShellExecute, and that method needs shell32.dll 5.0 - Microsoft documents it as Windows 2000 or newer. Windows 98 has the Shell.Application object and not that method, so every button threw and nothing happened.

Opening now goes through one helper that tries ShellExecute first and falls back to WScript.Shell, which has been there since Windows Scripting Host shipped with 98. The modern call is tried first, so on Windows 2000 and anything later the fallback is never reached and nothing changes.

What that is worth on a 98 machine is the half of the disc that works there. A GOG installer will not run - they declare Windows 2000 as their minimum in their own headers - but Manual and Extras open, which is what a 98 box actually wants from one of these discs:

the fact that I CAN put old game patches and other content and use it to open via extras is fantastic!

Play still will not work on 98, for an unrelated reason: it searches the registry through WMI, which 98 did not install by default. Left as it is, since a GOG game cannot install there for Play to find.

This has not been tested on Windows 98. There is no 98 machine here, and the tests only prove the code is shaped correctly - that every button routes through the one helper, and that the fallback exists in the right order. If you have the hardware and try it, I would like to know either way - and thanks again to u/kelphelpOG, who has offered to.

Checksums

DiscWright-0.7.1-setup.exe  70A4788B2C18306F27B3B599B4EFA7DCA900079153571530D7F338FB1DD87DC3

Tests: 413 logic, 76 window.