He Chunhui (hchunhui) has developed the Tiny386 x86 PC emulator in C (C99) and managed to run Windows 3.1/3.2 and Windows 95 on an ESP32-S3 devkit with a 3.5-inch display.
We had already seen Linux 5.0 boot on an ESP32 board, and Olimex ESP32-S3-DevKit-LiPo run a more recent Linux 6.3 image, but I think it might be the first time somebody has loaded Windows on ESP32 hardware. Bear in mind that since the Tiny386 is an emulator running SeaBIOS, it can also boot the Linux kernel directly.
He Chunhui explains that the i386 CPU emulator is built from scratch and still lacks some features, such as debugging, hardware tasking, and certain permission checks. It also includes some 486 and 586 instructions to be able to boot a modern Linux kernel and Windows. The code is rather small as the CPU emulator is only about 6,000 lines of code (LOC) long, and there’s also an optional x87 FPU emulator.
The project borrows the code from TinyEMU and QEMU for peripherals support: 8259 PIC, 8254 PIT, 8042 Keyboard Controller, CMOS RTC, ISA VGA with Bochs VBE, IDE Disk Controller, NE2000 ISA Network Card, 8257 ISA DMA, PC speaker, Adlib OPL2, and SoundBlaster 16. As noted in the introduction. The BIOS/VGABIOS firmware comes from the SeaBIOS project.

You can quickly try the Tiny386 emulator online thanks to a Web Assembly demo booting Windows 3.2 (a Chinese version of Windows 3.1), JSLinux, or FreeDOS. The source code, basic instructions to build the project from source, config file documentation, and prebuilt image can be found on GitHub. A few more details, including the two images above, are available on the project’s page on Hackster.io. Right now, only ESP32-S3, and more specifically, the GUITION JC3248W535 devkit, is supported, but other microcontrollers and platforms could be ported to the project.

You can also watch the demo of the Guition JC3248W535 running Windows 95. Some takeaways from the video if you don’t have time to watch it. Boot time takes around 4 minutes, and the system is sluggish, but it works with NotePad, Solitaire, and Internet Explorer programs tested successfully. Network connectivity is also implemented, and the info.cern.ch website was loaded in the demo. I’d recommend watching the video in 2x mode…
Via Hackster.io. Thanks to Zoobab for the tip.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.






Cool, there are still people having fun hacking at the lower layers 😉
Astonisihing! While Microsoft goes full enshittification (win 11 anyone?) we see an individual building some 3/4/586 emulator for some $3 espressif MCU!
The responsive of this Windows Start menu is still faster than mine on Windows 11.