Clone wiki

UniPCemu / Home

This wiki is to provide information and manual on the UniPCemu emulator.

If this is your first time using UniPCemu, click here.

For information on controlling the emulator, see Controls.

For information on supported disk images and XT-IDE Universal BIOS support, see Disk images.

For information on the emulator Settings and execution modes(as well as BIOS ROMs), see Settings menu.

For information on the emulator debugger, see Debugging.

For advanced command line parameters, see Command-line parameters.

The emulated system

  • Intel 8086/80186/80286/80386/80486/Pentium/Pentium Pro/Pentium II (Cycle-accurate 80286+(up to and including 80386 instructions) emulation, still containing some bugs due to unfound errors in the CPU emulation). A FPU isn't present on the 80486 and up. 8086/8088 is pretty cycle-accurate(up to 4% off).
  • IBM VGA graphics card directly emulated, CGA/MDA graphics card using a compatibility layer on the VGA renderer(fully working, even with accurate demos), Tseng Labs ET3000 and ET4000 is fully emulated(adding high-res up to 16M colors working on top of VGA modes(no non-VGA text modes working yet) using an Sierra SC15025 or AT&T 20C490 DAC). The ET4000 graphics card can use an extension for the ET4000/W32 chip to be used instead (when enabled). Various SVGA DACs can be emulated (Sierra SC11487 (up to 64K colors), UMC UM70C178 (Up to 64K colors), AT&T 20C490 (Up to 16M colors) and Sierra SC15025 (Up to 16M colors)). Various hack modes are also available(for using a VGA BIOS with software putting the hardware into CGA or MDA mode when it's control registers are addressed). EGA is emulated as a VGA restricted mode.
  • MPU-401 (Requires soundfont loaded using the BIOS, or can use a MIDI command passthrough to Windows(on Windows only)).
  • PS/2 keyboard (and PS/2 mouse instead of a serial mouse when set to PS/2 architecture).
  • PIC interrupt controller on all platforms. i430fx/i440fx motherboards also include an IO APIC controller that can be used with a compatible CPU.
  • XT RTC chip (XT only, a NC MM58167 chip). It uses it's own clock instead of the CMOS RTC on AT and up(though configured using the same settings file method, but only using the time set in those settings(CMOS RAM values are ignored) as well as the EXTRARAM values.
  • CMOS RTC (on AT and up, an MC146818 chip). Settings on it are architecture-dependent and configured for each architecture individually. The EXTRARAM values in the settings aren't used for this chip(those are for the XT RTC only).
  • Adlib sound card(cycle-accurate, except for drum channels having sound bugs).
  • IDE ATA(ATA-1) emulation on the Primary IDE controller. IDE CD-ROM is also fully implemented for the CD-ROM drives(On the Secondary IDE controller).
  • Dual DMA controller.
  • Floppy disk controller.
  • PCI emulation (used by ATA and CD-ROM controller).
  • PIT timer (with PC Speaker).
  • Dual Programmable Interrupt Controller (i8259).
  • Serial mouse (When set only, either Serial or PS/2(8042) mouse&keyboard is selectable).
  • Software debugger (Bochs' Port E9 hack, also port EA extensions for the UniPCemu emulator (see included debugger.txt)).
  • UART serial port (with Serial mouse at COM1, when not using a PS/2 mouse).
  • PPI hardware interface (simple buffers) for detecting floppy disk controller and specific hardware correctly.
  • Lo-tech 2MB EMS Board with 4MB EMS memory on 80(1)86.
  • Disney Sound Source/Covox speech things are both supported.
  • XT expansion unit (only capturing memory I/O and reporting it).
  • Several joysticks: Gravis Gamepad, Gravis Analog Pro and Logitech Wingman Extreme Digital.
  • Game Blaster sound card, rendered at 7MHz for full quality.
  • Sound Blaster 1.5 and 2.0 sound cards. Adlib and MPU-401 emulation are required, with the Adlib always emulated(instead of using the Adlib setting), Game Blaster emulation chips is optional and enabled by enabling the Game Blaster. Disabling MPU-401 emulation will also disable the Sound Blaster emulation. Recording uses a simple hack to allow realtime recording without transforming sound due to speed vs realtime differences. All of the Game Blaster, Adlib and MPU-401 can be used without the Sound Blaster by disabling the Sound Blaster. Otherwise, they're emulated as part of the Sound Blaster board.
  • Option ROMs managed by a Atmel 64K ROM(AT28C64B).
  • BIOS flash ROM (Intel) on i430fx/i440fx.
  • Serial modem(Server TCP port is configurable using the SETTINGS.INI file only, defaulting to port 23) on the second serial port).

All hardware uses the default IRQ assignments documented for XT/AT/Compaq hardware. Exceptions are(shared interrupt lines):

  • ATA/ATAPI on XT: IRQ5(shared line with below and third parallel port, if any).
  • Sound Blaster on any hardware: IRQ5(shared with above and a third parallel port, if any).
  • VGA uses IRQ2(XT) or IRQ11(AT and up), shared with the MPU-401 controller on XT hardware only.
  • The MPU-401 uses IRQ 2(XT) or IRQ9(AT and up), shared with the VGA controller on XT hardware only.

Full IRQ assignments list:

  • 0 PIT
  • 1 PS/2 keyboard
  • 2 MPU-401 (XT only)
  • 2 VGA (XT only)
  • 3 UART2&4
  • 4 UART1&3
  • 5 Sound blaster
  • 5 Parallel port 3 - unused
  • 5 ATA Primary and Secondary channel (XT only)
  • 6 Floppy
  • 6 Parallel port 2 - unused
  • 7 Parallel port 1
  • 8 CMOS
  • 9 MPU-401 (AT and up)
  • 11 VGA (AT and up)
  • 12 PS/2 mouse
  • 14 ATA primary channel (AT and up)
  • 15 ATA secondary channel (AT and up)

A little sidenote: The PS/2 Architecture just changes the mouse to a PS/2 mouse instead of a serial mouse, while keep using the Compaq Deskpro 386 architecture(Basically just a more modern machine). The serial mouse is connected to the first serial port (COM1) when used. The second serial port (COM2) has the serial modem connected to it.


Different parts of the emulator (except the SETTINGS.INI file) are placed in various subfolders:

  • The "disks" folder contains the disks that can be mounted with the emulator. It will be automatically generated when a disk is generated using UniPCemu.
  • The "soundfonts" folder contains any SoundFonts (in 2.04 format) to be used with UniPCemu's MIDI emulation.
  • The "music" folder contains any filed to be played using the Music player inside the Sound submenu. Currently Dosbox recordings (DRO) for the adlib sound card and MID/MIDI files are played using the emulated hardware. In order for playback to work, the Adlib sound card needs to be emulated(requires restart of the emulator to apply) for DRO files. The MPU needs to be having a soundfont loaded(and applied to be running, like the adlib) in order for MIDI playback to work.
  • A "logs" subfolder will automatically be created to hold logging data, when anything is logged by the emulator. This is for output purposes(by the emulator) only.'


Different platforms have different methods of checking the version of the installed app:

  • Linux: See Command-line parameters.
  • Android: The package that's installed has the version in it. Simply check the app information inside Android for the version number.
  • Windows: The executable properties has the version number in the Product version field in the file information.
  • PSP/Vita/Switch: The settings menu has an option that displays version information in the main menu.