Tiny386 is a x86 PC emulator written in C99. It now boots Windows 9x/NT on ESP32-S3 dev board JC3248W535.
The core of the project is a built-from-scratch, simple and stupid i386 cpu emulator. Some features are missing, e.g. debugging, hardware tasking and some permission checks, but it should be able to run most 16/32 bit softwares. To boot modern linux kernel and windows, some 486 and 586 instrutions are added. The cpu emulator is kept in ~6K LOC. There is also an optional x87 fpu emulator.
To assemble a complete PC system, we have ported many peripherals from TinyEMU and QEMU, it now includes:
- 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
- SoundBlaster 16
Files
esp32s3_win95.webm
win95 demo
Open Web Media Project - Video -
6.09 MB -
11/02/2025 at 01:56