Skip to content

DiscWright 0.9.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 20:41
· 35 commits to main since this release
dba4366

DiscWright used to stop at the ISO. It now prints the artwork and burns the disc.

Printing

Print artwork makes two things for the disc you have planned: a case wrap as a PDF at its true size with crop marks, and a disc face as a 300 dpi PNG with the hub left clear. A PDF because the page carries its real physical size, so "print at 100%, no scaling" is something a printer driver can honour. A PNG for the disc because that is what printer software for printable discs wants: you hand it a picture and it keeps the diameters and lines the tray up, which is the part that ruins discs when a tool guesses at it.

Artwork you already have is printed exactly as it is. People make covers for games and share them, and somebody who has found or drawn one does not want a layout imposed on it. Point DiscWright at one and it places it at exact trim, carries its own edges outwards to make the bleed it has not got, and puts crop marks outside that. Nothing is added, nothing is cropped off, and nothing is stretched: a cover whose proportions are slightly out is placed whole rather than trimmed to fit. With no picture at all you get a plain label with the title on it, which is still worth having on an unmarked disc in a stack.

Two boxes hold the pictures, one for the cover and one for the disc face, because a cover is tall and a disc face is a circle and one picture rarely suits both. Under them a line says what each picture will cost before anything is printed: a 16:9 wallpaper loses about 60% of its width on a cover panel, and being told that beforehand beats finding out on paper.

Burning

Burn to disc writes the ISO to a blank and then proves it. It asks first, and the question carries what is worth refusing on: which image, how large, which drive, what disc is in it and how much of it is free. It refuses by name rather than guessing when there is no disc, when the disc is not blank, when the media cannot be written, or when the image is larger than the space.

It burns below the drive's top speed, 16x on a CD and 8x on a DVD, because cheap media written flat out is the usual way to make a coaster and the minute saved is not worth a disc. Afterwards it reads every file back off the disc and compares it with what was built, by SHA-256, and says plainly if anything is missing, unexpected, the wrong length or the wrong bytes. A burn that ends without an error is not the same thing as a disc holding the right bytes.

Play from disc

A disc built from folders of game files rather than GOG installers used to grey Play out with "is not installed yet, use Install first" and offer Install, on a disc where nothing can be installed because the executable is the game. Such an entry now shows one button reading Play from disc, and no Install button at all. GOG discs are unchanged.

This was found by burning a disc and looking at the screen. Every menu test had been written around GOG discs, where the old behaviour is correct, so the suite was green throughout. The menu tests now walk both kinds of disc.

The installer may not run on a current Windows 11

Smart App Control blocks unsigned programs, and the installer is not signed. It refuses it with "An Application Control policy has blocked this file". It is on after a clean install of Windows 11 22H2 or later, in North America and Europe, and starts in an evaluation mode that blocks nothing before switching itself on. A machine upgraded from an older Windows has it off.

Correction, added after publishing. These notes first said signing would not settle it, because Smart App Control wants reputation as well as a signature. That is wrong. Microsoft's documentation says that where the app intelligence service cannot make a prediction, Smart App Control still allows an app signed with a certificate from a CA in the Trusted Root Program, with no reputation required. Signing would fix this; DiscWright has not taken that cost on.

The ZIP is unaffected, needs no installing, and is the download to use. This was measured rather than assumed: the same installer check passed in a Windows Sandbox on 27 September, when Smart App Control there was still in evaluation mode, and was blocked on 1 October once it had switched on. The installer is still attached for anyone whose machine will run it, and for winget later.

Why the version skips 0.9.0

0.9.0 was tagged and its build attached artifacts to a draft. Unpacking that draft showed the zip had no print\ or burn\ folder in it, so both of the buttons above would have been dead ends for everybody who took the main download. Released tags are protected in this repository and cannot be moved or deleted, which is worth more than a version number, so 0.9.0 stands as a tag that was never released and this is the first release of what it was meant to contain.

Checksums

artifact sha256
DiscWright-0.9.1.zip 47459A50E039AAD2BFA106C141F53DBBF329FFE27BD34348E84831FCA04642B7
DiscWright-0.9.1-setup.exe 56E6501C1E260D9443E33845B16FB7F7F44486C83115F2044FAE2570C711BC14

What was tested, and where

651 logic tests and 108 window tests, both run on a real Windows 11 desktop rather than in CI, which does not run the window suite because a hosted runner has no desktop. CI ran the logic suite, the parse check and the analyzer on every push.

Three CD-Rs were burned by this build on an ASUS DRW-24D5MT, because none of the burning or menu behaviour had ever been proved on anything but a mounted image. A 241.7 MB disc burned in 93 seconds and every file matched byte for byte. Windows offered Run DISCWRIGHT TEST on insert and the menu opened from the disc. A 120 MB program on the disc started in 8 seconds and reported its own path back from the optical drive. The third disc was built from loose game files and is the one that found the Play button defect above.

The zip was downloaded from this release, unpacked, and started: it reports DiscWright 0.9.1 in its title bar and carries both modules. The installer was run in a Windows Sandbox and was blocked by Smart App Control, as described above.

What is still unproven is listed in burn/README.md rather than claimed: a disc read in another machine, a multi-disc set, and the older-Windows filesystem option read on something old.