Windows 95 made to run on ESP32-S3 hardware with Tiny386 x86 PC emulator

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.

Windows 95 on ESP32-S3 LCD board

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.

Solitaire on ESP32
You can now play Solitaire on an ESP32-S3 platform…

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.

Tiny386 Linux demo
Web Assembly demo booting a Linux 6.18 image

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…

YouTube video player

Via Hackster.io. Thanks to Zoobab for the tip.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

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.

Radxa Orion O6 Armv9 mini-ITX motherboard

3 Replies to “Windows 95 made to run on ESP32-S3 hardware with Tiny386 x86 PC emulator”

  1. Astonisihing! While Microsoft goes full enshittification (win 11 anyone?) we see an individual building some 3/4/586 emulator for some $3 espressif MCU!

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC