Skip to content

Releases: hmofet/unodos

UnoDOS v3.34.0 - an editor, the modern Office formats, and a pass over real hardware

Choose a tag to compare

@hmofet hmofet released this 21 Aug 05:26

UnoDOS pc64 gained a VS Code-class editor, UnoOffice learned the modern Office
formats, and the whole desktop was then driven end to end on two physical
machines rather than in an emulator.

UnoCode is a new application: activity bar, Explorer, Search, Source
Control, Run and Extensions, tabbed editors with a minimap, the command
palette, Go to File, a Problems / Output / Terminal panel, multiple cursors,
regex find and replace, bracket matching, and IntelliSense. Its on-disk formats
are VS Code's, key for key - a colour theme, a keybindings file, a snippet file
or an extension manifest written for VS Code loads here unmodified - and its
extension host runs real JavaScript in the system's own engine. That host is
fuel-bounded: on a machine with no preemption and no process boundary, a slice
of fuel per call is the only thing between a bad extension and a dead desktop.

UnoWord, UnoCalc and UnoShow now open and save .docx, .xlsx and
.pptx
, alongside the Office 97 formats they already read and wrote, and
.xlsx round-trips through our own writer. Opening identifies a file by its
contents rather than its extension, so a renamed workbook still opens
correctly.

Wi-Fi speaks WPA3. The supplicant now reads what the access point is
offering and negotiates, instead of announcing WPA2-PSK and hoping: WPA2-PSK or
WPA3-SAE, with management-frame protection when the network requires it. A
modern access point that demands protected management frames refuses a machine
that cannot offer them, and a 6 GHz network is WPA3-only by regulation, so this
is the difference between "older" and "locked out". Honest caveat: the SAE path
is verified against test vectors on a development machine and has not yet
completed a join against a real access point.

The conformance pass

On 2026-08-20 pc64 was run on a ZimaBlade and a ThinkPad X13 Yoga and driven
through 86 checks. 23 of 23 applications launched, at 60 fps and 95-96% idle.
The defects it found are all fixed in this release and were re-verified on the
same machine. Method and results:
pc64/CONFORMANCE-2026-08.md.

The ones a user would have hit:

  • The Start menu's right pane never took a click. Tile, Cascade, Minimize
    all, Restart and Shut Down were all dead, so there was no way to restart or
    shut the machine down from the interface. It was a draw-only canvas, and a
    press goes to the widget it lands on, not to the focused one.
  • The reset path never asked the firmware to reset, so once the menu worked
    Restart still had nothing to call. Both are fixed.
  • A zero-byte SHELL.CFG was read as an empty config, which silently threw
    away every Control Panel preference on that machine, every boot. Your
    resolution, theme, scale, wallpaper, volume and pointer speed persist again.
  • A Python app whose draw() raised showed a blank window and said nothing -
    no dialog, no output line, no log record. It now paints the traceback into the
    window and logs the exception. This affected all Python app development.
  • Leaving fullscreen never restored the resolution. Eight routes leave
    fullscreen; only the close path undid the mode change.
  • UnoOffice's Open dialog ignored every keystroke in its File name field.
  • Studio would load a .UNO into the text editor and saving it back
    destroyed the module. It now refuses.
  • Four sites called firmware boot services after ExitBootServices, which
    crash-looped a ThinkPad X13 Yoga from its first boot.
  • The SSH key store and saved Wi-Fi credentials went to the wrong disk on a
    machine whose lowest writable volume is not the one you booted.

Still open and stated rather than buried: on the X13 Yoga a LAN gateway ping
degrades about 4x per round until the main loop stalls. It is Yoga-specific so
far and is tracked in
PLATFORMS.md.

Also in this release

  • Sampled audio is a first-class surface. Games mix their effects into the
    ring and play their score from memory. Dostris has its line-clear blip back
    and its CGA look (bevelled blocks, the Next preview, buttons, a state line);
    Pac-Man has four original tunes, a score, a high score and a death pause; and
    OutLast has its crash thud.
  • ac97 was silent on any machine with 4 GB of RAM or more - the buffer
    descriptor list landed above the 4 GB line and the 32-bit register writes
    truncated.
  • Duum moved to its own repository and is
    vendored back. It gained wall collision, the WAD's own sounds and music, a
    pause menu and an FPS counter, and its per-column rasteriser moved into C.
  • Five new SDK samples, acceptance-tested and on the disk: TIMER.C,
    LIFE.C, TODO.PY, CHART.PY and GOODNITE.PY - plus ucc_host, the
    hosted UnoC compiler.
  • The BIOS boot path had red and blue reversed.

Every non-pc64 artifact is byte-identical to v3.33.0, and through it to
v3.32.0. Only the pc64 images were rebuilt.

The images carry no Intel Wi-Fi firmware. unodos-wifi-firmware-tool.zip
fetches it on your own machine if you want Wi-Fi.

Flash a USB stick

Windows: download UnoDosFlasher.exe and run it. No install, pick your
USB drive, click Install. It builds the volume on the stick rather than
cloning a fixed image (GPT, one FAT32 partition spanning the whole drive), so a
32 GB stick becomes a 32 GB UnoDOS drive with room for your documents. Windows
prompts for Administrator, because raw disk writes need it, and everything on
the stick is erased.

macOS: download UnoDosFlasher-macOS.zip, unzip it in Finder and open
UnoDosFlasher.app. Universal (Apple silicon and Intel), code-signed. Unzip
in Finder rather than with unzip on the command line, which breaks the
signature.

Linux, or by hand: write unodos-pc64-hybrid.img.gz with balenaEtcher
(which reads .gz directly) or gunzip it and dd. unodos-pc64.iso is the
convenience artifact for attaching to a VM's CD-ROM.

Then boot the target PC from USB with Secure Boot off.

Both flashers carry the same redistributable build as the published images:
Freedoom as Duum's game data, and no Intel Wi-Fi firmware.

UnoDOS v3.33.0 - Duum, with a WAD in the box

Choose a tag to compare

@hmofet hmofet released this 18 Aug 14:29

Duum now works out of the box.

Every previous image shipped the Doom engine without any game data, so the app
most likely to make someone try UnoDOS opened and told them a file was
missing. The pc64 images now carry Freedoom, a free, from-scratch,
Doom-compatible IWAD whose licence allows it to be given away inside other
software, staged on the boot disk as DOOM1.WAD.

If you own Doom, drop your own DOOM1.WAD in the top level of the disk
(beside APPS) and Duum will use it instead. See
the manual.

The ISO is much larger for it - 60 MB to 92 MB - because that is the size
of the game data. Nothing else grew.

Also in this release, all landed since v3.32.0:

  • Duum is a full game: weapons, monsters that chase and shoot back, doors,
    lifts, switches, teleporters, keycards, pickups, exploding barrels, the
    STBAR status bar, damage, and E1M1 through E1M9 in order.
  • UnoWord keeps a document's formatting when it opens it. It read the text
    and discarded everything else, so a bold run arrived unbold and a centred
    paragraph flush left - and saving afterwards wrote the stripped version back
    over the file. Strikethrough is drawn now too.

The images carry no Intel Wi-Fi firmware. unodos-wifi-firmware-tool.zip
fetches it on your own machine if you want Wi-Fi.

Every non-pc64 artifact is byte-identical to v3.32.0.

Flash a USB stick (Windows)

UnoDosFlasher.exe writes a bootable UnoDOS stick in one step: no install,
pick your USB drive, click Install. It builds the volume on the stick
rather than cloning a fixed image (GPT, one FAT32 partition spanning the whole
drive), so a 32 GB stick becomes a 32 GB UnoDOS drive with room for your
documents. Windows prompts for Administrator, because raw disk writes need it,
and everything on the stick is erased.

Then boot the target PC from USB with Secure Boot off. On macOS or Linux,
write unodos-pc64-hybrid.img.gz with balenaEtcher (reads .gz directly) or
dd instead.

The flasher carries the same redistributable build as the published images:
Freedoom as Duum's game data, and no Intel Wi-Fi firmware
(unodos-wifi-firmware-tool.zip fetches that on your own machine if you want
Wi-Fi on real hardware).

UnoDOS v3.32.0 - every platform

Choose a tag to compare

@hmofet hmofet released this 08 Aug 17:47

UnoDOS on 22 machines, from an 8088 to a modern UEFI PC. Every file below is
built from this one source tree. Pick a machine, load the file in an emulator,
and you are running it in about a minute.

Full per-file checksums are in SHA256SUMS.

Modern PC (x86-64)

File What it is
unodos-pc64.iso Hybrid UEFI ISO. Attach to a VM's CD-ROM (QEMU+OVMF, VirtualBox, VMware).
unodos-pc64-hybrid.img.gz 96 MiB disk image, boots both legacy BIOS and UEFI. Decompress and write to a USB stick with dd or Rufus, then boot any PC from roughly 2007 on.

The desktop, the window manager, ten themes, an office suite that reads and
writes the real Microsoft formats, a browser with two switchable JavaScript
engines, its own TCP/IP stack, and a C compiler that runs on the operating
system it compiles for.

Wi-Fi firmware is deliberately not included. UnoDOS can drive Intel
wireless adapters, but that firmware is Intel's and is not ours to
redistribute, so published images ship without it. Wired Ethernet works out of
the box. To enable Wi-Fi, supply the blobs yourself.

Consoles and handhelds

File Machine Run it in
unodos.nes NES / Famicom Mesen, FCEUX, EverDrive
unodos.sfc Super Nintendo Snes9x, bsnes, FXPak
unodos.gb Game Boy / Color SameBoy, BGB, mGBA
unodos.gba Game Boy Advance mGBA, EZ-Flash
unodos.sms Master System Emulicious, MAME
unodos.gg Game Gear Emulicious, MAME
unodos.gen Genesis / Mega Drive BlastEm, Kega Fusion
unodos.pce PC Engine / TurboGrafx-16 Mednafen, Ootake
unodos.ws WonderSwan Mednafen
unodos-dc-uui.iso Dreamcast Flycast, redream, or burn to CD-R
unodos-ps2.elf PlayStation 2 PCSX2, or uLaunchELF on real hardware

Home computers

File Machine Run it in
unodos_c64.d64 Commodore 64 VICE (x64sc), SD2IEC
unodos_vic20.prg VIC-20 VICE (xvic)
unodos68k.adf Amiga WinUAE, FS-UAE. Attach unodos-data.adf as DF1
unodos_apple2.dsk Apple II AppleWin, MAME. .woz also provided
unodos_iigs.po Apple IIgs GSplus, MAME
unodos_macplus.dsk Macintosh Plus Mini vMac
unodos_ppcmac.bin PowerPC Macintosh QEMU (qemu-system-ppc)
unodos-144.img IBM PC / XT (8088) QEMU, 86Box, PCem, real floppy

Single-board and mobile

File Machine Run it in
kernel8.img Raspberry Pi (AArch64) SD card boot partition, or QEMU
unodos_pinephone.bin PinePhone (Allwinner A64) Real hardware via SD card

Not in this release

The Macintosh (System 1-7) port is absent. The Retro68 cross-toolchain on
the build machine is incomplete, so there is no current binary. The source is
in the repository and builds once Retro68 is installed.

Licence

MPL 2.0. Use it freely, including commercially; modifications to these files
must be published. Third-party components keep their own licences, all listed
in THIRD-PARTY.md.

UnoDOS pc64 pc64-v1.1

Choose a tag to compare

@hmofet hmofet released this 19 Jul 23:11

UnoDOS / pc64 - the modern-PC (x86-64 / UEFI) world of UnoDOS. Boots straight
into the unoui desktop shell.

Flash a USB

Easiest: download UnoDosFlasher.exe, run it (Windows, no install), pick your
USB drive, and Install.

Or write the image yourself with Rufus / balenaEtcher (they read .gz directly)
or dd (gunzip first):

gunzip -c unodos-pc64-uefi.img.gz | sudo dd of=/dev/sdX bs=4M status=progress

Or use the ISO

unodos-pc64.iso is a hybrid UEFI ISO: attach it to a VM (QEMU, VirtualBox,
VMware, Hyper-V) as a CD-ROM, or write it to a USB stick with Rufus,
balenaEtcher or dd - both ways boot the same desktop.

Boot it

UEFI only (x86-64 PCs, ~2012 on). In firmware: disable Secure Boot, then pick
the USB from the boot menu. There is no BIOS/Legacy build - pc64 is UEFI-native.

UnoDOS pc64 USB flasher v1.0.0

Choose a tag to compare

@hmofet hmofet released this 18 Jul 01:05

One-click USB installer for UnoDOS pc64 (x86-64 / UEFI).

Download the flasher for your OS, plug in a spare USB stick, click Install, and boot the target PC from it (turn Secure Boot off).

  • Windows: UnoDosFlasher.exe (no install; prompts for Administrator)
  • macOS: UnoDosFlasher-macOS.zip (unzip, open UnoDosFlasher.app; universal arm64 + x86_64)

These builds are not signed with a paid developer certificate, so your OS may warn on first launch: on Windows click More info -> Run anyway; on macOS right-click the app and choose Open.

See the user guide: https://hmofet.github.io/unodos/getting-started.html