Releases: hmofet/unodos
Release list
UnoDOS v3.34.0 - an editor, the modern Office formats, and a pass over real hardware
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.CFGwas 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
.UNOinto 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.PYandGOODNITE.PY- plusucc_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
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
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
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
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