DiscWright 0.7.0 - a disc Windows XP can read
A minor bump rather than a patch, and the rule at the top of the changelog says why: below 1.0.0, minor is reserved for a change to the project file format or the on-disc layout. This release changes both.
Nothing you already have breaks. A 0.6.0 project opens exactly as it did, and rebuilding it produces the disc it produced before.
A disc Windows XP can read
New checkbox, off by default, beside the Linux one:
Also make the disc: [ ] named on Linux [x] readable on Windows XP and older
DiscWright writes the ISO as UDF 2.50, and Windows Vista was the first version that could read that. So on Windows XP, 2000, ME, 98 and 95 one of these discs could not be mounted at all. Not a missing menu, not a broken autorun: the drive letter appeared and the disc would not open.
Somebody trying exactly this described it better than I could:
If its WinXP, it sees the Drive and Drive Letter, but unfortunately does not say anything. Disc is not explorable, autorun does not work, nothing.
Tick the box and the disc carries ISO9660 and Joliet as well. Every system takes the newest filesystem it understands and ignores the rest, so a disc built with it ticked behaves on Windows 11 exactly as one built without it. That was checked by building the same disc both ways and comparing every file by SHA256, not by reasoning about it.
Old DVD players and other appliances that only speak ISO9660 benefit from the same box.
Two things that were supposed to make this impossible
Neither survived being measured.
Joliet holds filenames to 64 characters. It does, but IMAPI writes long names into the ISO9660 tree regardless. A real 96-character GOG patch filename comes through intact, and there is a test using that exact name.
ISO9660 keeps a file's length in 32 bits, so it cannot describe a file of 4 GiB or more. True, and GOG already lives with it: its installers split at 4,294,967,294 bytes, one byte under, because FAT32 has the same ceiling.
Where a file really is too big, the checkbox greys itself and says why. If something added in step 5 slips past that, the build re-checks the finished disc folder and falls back to UDF alone rather than write an image that has lost a file to a 32-bit field.
Reading a disc is not installing from it
Joliet long filenames go back to Windows 95, so the disc itself browses a long way back. The games do not. Every GOG installer checked declares Windows 2000 as its minimum in its own PE header, and Windows 9x refuses to load a program asking for 5.0.
So on 98 and 95 the disc opens and reads correctly and nothing on it will install. XP and 2000 are the oldest versions where the disc is genuinely useful. That still has a use: an era-correct patch sitting in step 5 beside an installer 98 will not run.
Confirmed on real hardware
This shipped saying it did not claim to fix autorun on Windows XP, only the disc being unreadable there, because nobody had tested the rest. Somebody has now, on the machines themselves:
I tried the ISO on Win11, WinXP and Win98, and they ALL autorun and work great except for Win98.
So Windows XP autoruns and runs the menu. Thanks to u/kelphelpOG on Reddit, who went and found out on real hardware, which is not something I could do from here.
Windows 98 reads and browses the disc, which is the part that matters there, but the menu's buttons do not work. That is a version floor rather than a bug in this release: the menu launches things through Shell.ShellExecute, which needs shell32.dll 5.0 and is documented as Windows 2000 or newer. Windows 98 has the object and not the method. Being looked at for the next release.
Documentation
Two things a disc costs to learn, now written down.
Burn the ISO, or the disc folder's contents - never the folder itself. Burning the disc folder puts everything one level down, so the disc carries E:\disc\autorun.inf rather than E:\autorun.inf. AutoRun only ever reads the root, so one level down it is an ordinary file nothing looks at. The disc still opens and the menu still runs when double-clicked, and autorun is simply dead, on every version of Windows.
What step 5 is for. It was described as somewhere to put loose files, which says nothing about why. A GOG installer will not run on Windows 98, but an official patch from that era will, and a disc is the easiest way onto a machine that has no business being online.
Project files
Schema 8, which adds one field: whether the disc should also be readable on older Windows. Absent in anything older, where it reads back as off.
Checksums
DiscWright-0.7.0-setup.exe 4C9F220AD0160B31A2D9368FC295D6897BA7E2B38925D625118FAE10F924142F
Tests: 409 logic, 76 window.