Running Windows apps on Xiaomi POCO Pad Android 14 tablet via Winlator
I decided to spend the weekend making full use of my Xiaomi POCO Pad 12″ tablet, which features 8GB of RAM, 256GB of flash storage, and runs on Android 14. Despite its compact size (around 580g, or 800g with a screen protector and case), the POCO Pad offers great battery life, lasting about 8 hours of continuous use, and works well for my everyday needs. However, the abundance of Android productivity apps still didn’t quite satisfy me, so I decided to experiment with Magic Dosbox, Bochs, Limbo, and Winlator to run MS-DOS and Windows apps on the tablet.
Magic DosBox, available in both free and paid versions, is an actively maintained port of DosBox for Android. Magic DosBox works well on both phone and tablet running the latest Android 14. Another tool called aDosBox used to work well on my older devices, but has since been removed from the store. On this POCO Pad, aDosBox (installed via APK) crashed upon launch, while Magic Dosbox works fine and is able to run most games. With a USB keyboard, programming via Turbo Pascal or Turbo C via Magic DosBox is convenient. The lack of key mapping for ESC and TAB, which is an Android issue and not unique to Magic Dosbox, does not affect most games (except when exiting) but will make typing text annoying. To solve this issue, Magic Dosbox maps ESC to its menu and has an on-screen keyboard supporting ESC, TAB and many other keys. The paid version has some extra support for keyboard/joystick mapping, which is not very useful for me. In my tests, “Move mouse in Hybrid mode” in Magic Dosbox settings may need to be checked for mouse in DOS apps to work:
Windows 95 (with some tweaks) works fine on Magic Dosbox, supporting sound and network access, but at a rather slow speed. To be able to use DOS and Windows 95 on this tablet for any meaningful tasks, I decided to use my Bluetooth mouse and keyboard in landscape mode, due to poor touch support in Magic Dosbox. A USB mouse and keyboard will work too, if you don’t mind connecting a USB-C hub. Just don’t use an Amazon Basics Bluetooth mouse which doesn’t support Android. Unfortunately, on the POCO pad, using an external mouse with Magic DosBox results in overlapping display of both Android and Windows cursors at the same time. I just couldn’t find a way to hide the Android USB mouse cursor which happens to be an annoying big circle on this device.
For a faster Windows 95 experience, I then tried Bochs, only to experience an erratic cursor, although sound and networking worked fine. There used to be a port of Bosch optimized for Android called iBochs, which has since been removed from the store. After installing iBochs via APK, I noticed my virtual machine started fine but crashed after 5 seconds, complaining “Installation Error”. From my research, it appears the Bochs developer wrote code to intentionally quit the app unless it has been installed through the Play Sore. I decided not to waste any more time and gave up on Bochs.
Next, I experiment with Limbo, a QEMU-based emulator for Android. Limbo is available in 2 variants, Limbo for ARM supporting ARM OS and Limbo for x86, designed for x86 OS. With this, I was able to run up Windows 95 with networking just fine, although audio was heavily distorted. This time, however, there was a huge offset between the Android mouse cursor and the Limbo mouse cursor, both in SDL and VNC mode. After just a few minutes of usage, the Android mouse cursor could be on the left edge of the screen while the Windows mouse cursor could be on the right, requiring a screen touch to calibrate. This photo demonstrates the issue – the circle is from Android while the arrow is from Windows 95:
Despite a lot of efforts, I could not find any VNC client that supports a mouse capture behavior similar to VirtualBox, and decided not to play with Limbo any further.
Last, I tried Winlator, an Android application that lets you run some Windows applications using Wine and Box86/Box64. Because Wine is not a full Windows environment and has several limitations, even more so when built for Android, I decided to pick apps that can run on Windows XP or Windows 7. Recent apps with built-in artificial checks for Windows 10 are excluded, together with apps requiring .NET frameworks (although one particular app requiring .NET 4 Client Profile appears to work fine). Even with Wine Mono installed, these apps still complains about missing .NET framework. Trying to install the official Microsoft .NET Framework causes Winlator to freeze or crash towards at the end of the installation. Apps requiring Visual C++ runtime work fine, as do most apps requiring Visual Basic 6 runtime, although vbrun300.dll or msvbvm60.dll may need to be copied to C:\WINDOWS\SYSTEM32 folder. Apps that are 16-bits (either for MS-DOS or Windows), despite being supported by other builds such as OTVDM, will not work on Winlator. Most likely, nothing will happen (no error message, no UI feedback) when you attempt to run an unsupported app.
After extensive testing, it turns out that the latest versions of simpler, well-built apps tend to work well, such as Notepad++, 7-Zip, HeidiSQL, PuTTY, WinSCP, FileZilla, LibreOffice, WinMerge, IrfanView, and DOSBox, to name a few. Many such apps are written in C/C++ and designed for other platforms, often featuring more robust error-checking, which allows them to run smoothly on Wine without major issues. Finally, Winlator also auto-captures the mouse cursor and hence the overlapping Android and Windows mouse cursor issue no longer happens. With the right applications, running Windows on Winlator can be surprisingly smooth and enjoyable—offering much better performance than alternatives like DOSBox, Bochs, or Limbo.
The following sections will discuss general issues I have with Winlator (or Wine in general) and specific apps which could be made to work on Winlator, for example by tweaking its configuration or by using an older version.
File Explorer
- Wine’s default Explorer, accessible from System Tools > Computer, although integrated with 7-Zip is very limited, often hangs while deleting files. The recent 32-bit version 1.4.0.2293 of Explorer++ is much better and works fine for most tasks on Winlator, despite having no integration with 7-Zip. Thumbnail view and Properties dialog will not work, due to lack of API support.
- For better file management, Total Commander 7.04a 32-bit works totally fine – recent versions have various UI issues.
- The enhanced and open source version of WinFile, the original Windows 3.1 File Manager, works fine on Wine and has support for File > Associate, which can be useful to set the default application for a particular File Type, in the absence of the Open With menu.
- To create a shortcut, use Shortcuts Creator, a basic C++ app which creates .LNK file in various locations (Desktop, Start Menu, Quick Launch). Creating a shortcut in Startup is useless as this group is not processed by Wine at launch.
Windows built-in apps
- NOTEPAD.EXE, CALC.EXE, CLOCK32.EXE, Freecell, SOL (for Solitaire), Spider, Winmine taken from Windows 7 works file, although the Help menu does nothing, even in the presence of the correct Help files and WINHLP32.EXE, either from Wine or from a standard Windows installation. Other apps’ Help menu seem to work fine. CALC.EXE from Windows 8 refuses to launch.
- Wine does not set the timezone and defaults to GMT-12 so your clock display will be incorrect. Use DS Clock 4.2 instead and create a custom clock display for the current timezone. Always On Top might not work due to buggy Wine’s Windows implementation
- CALENDAR.EXE refuses to launch. Use WinDates instead keeping in mind the timezone issues.
- Sticky Notes app from Windows could not run. PNotes works great for me on Winlator.
Word, Excel and PowerPoint
- No versions of Wordpad I tried could work on Winlator, which is perhaps why Wine has its own version of Wordpad that supports RTF and TXT files.
- Jarte works but does not support table, complaining about outdated Wordpad Word Processing (RICHED20.DLL). I tried to update this DLL which resulted in Jarte crashing. Otherwise, RTF works fine in JARTE, while DOC/DOCX does not work – Jarte keeps complaining that the compatibility pack has not been installed, regardless of which version I tried.
- PolyEdit which targets Windows 95/98 and works fine on Windows 11, also works on Winlator for DOC/RTC. DOCX doesn’t work for the same reason above. Within Winlator, Unicode does not work in PolyEdit but works fine on other apps.
- AbiWord v2.9 works but cursor is very tall. AbiWord v2.8 has no cursor issue but does not support Unicode. Newer versions for Abiword are not officially compiled for Windows.
- Gnumeric 1.10.14, a common build for Windows, work well enough for most XLS/XLSX files, although there might be warnings opening modern XLXS.
- Despite trying hard, I could not find any lightweight replacement for PowerPoint.
- The most recent version of LibreOffice works but is far too slow and would only be useful for Office to PDF conversion in my opinion.
- Microsoft Office 2003 viewer (Word/Excel/Powerpoint) works fine and can open DOC/XLS/PPT. It cannot open 2007 formats despite the converter being installed.
- Office Reader 2.0, my favorite Office viewer, does not work. Installation is successful but nothing happens when the .EXE is clicked.
- Microsoft Office 97 portable, download from here, does not work. I did not bother trying the full installation, fearing it might corrupt Winlator.
- Atlantis Word Process Lite including thesaurus works well and is very fast – tables, RTF/DOC/DOCX and Unicode are supported. There is even a spelling checker which is decent. The full version works fine too. This is my preferred word processor for Winlator.
Dictionaries
- An early version of WordWeb, v3.0.3, which I have been using since the early 2000, works well. More recent versions will most likely work, but is bloated and should not be installed on Wine.
- StarDict v3.0.1 works well for work lookup, although initial config can be challenging as the dropdown menu would flash repeatedly before eventually showing. The definition window might also flicker randomly when StarDict is in the background, requiring manual closing.
- Various early English-Vietnamese dictionaries (LacViet MTD EVA 2002, Just Click’n’See 2.51) could not run, likely due to missing dependency or system assumptions that fail on Wine.
Web Browsers, HTML/CHM
- Wine’s default Internet Explorer browser is very slow and could not even download files from IIS Directory Listing. Using K-Meleon instead to transfer files and for HTML viewing. Complicated websites or HTTPS links should be opened natively on Android.
- Open Wine’s regedit and update the Default value for
HKEY_CLASSES_ROOT\http\shell\open\commandto use K-meleon for http:// links; otherwise whenever an app attempts to open any URL, Android’s native browser will be opened and Winlator may be closed, due to Winlator’s default file association. - To open CHM (Compiled HTML) documentation, use KchmViewerPortable.
- If an app attempts to use an embedded web view, Wine will ask to ask a suitable Gecko package. Just cancel the dialog; attempting to do so will crash Winlator.
Graphics Tools
- GIMP v3 crashes at launch but GIMP v2.8 works fine, despite slow startup.
- Photoshop CS6 loads slowly and crashes WINE. Photoshop CS3 works but is very slow. Photoshop 8 works reasonably fast and can still convert image formats, crop/trim, and make transparent PNG, which is what I often use Photoshop for.
- IrfanView works well for graphic files, as well as for PDF files (with the correct plugin)
- MSPAINT.EXE from various Windows versions does not work. PBRUSH.EXE from Windows NT 3.51 works but hangs upon exit. OpenPaint, which looks close enough to MsPaint, works fine. Paint.NET does not work due to .NET framework requirements. The following screenshot shows OpenPaint editing a JPG file, zoomed out, with some minor menu UI distortions but otherwise OpenPaint works fine:
- Foxit PDF Reader works but is bloated. SummatraPDF latest version (3.5.2) works but can only open certain files while refusing many other files, although these files can be open using the same version on Windows. eVince v2.32.0.145 can open all tested files. An example of such file can be downloaded here.
- No PDF printers I tried (CutePDF or Foxit PDF) could show up. To convert HTML and images to PDF, use Adobe Acrobat XI Portable (which launches instantly on Winlator and can also edit PDF). To convert Office files to PDF, use LibreOffice (which is very slow but works well).
PHP & MySQL
- WAMP, a PHP/Apache/MySQL stack for development, works but services need to be started from command line because its system tray menu crashes. XAMPP works well. To note, you must edit XAMPP’s httpd.conf to disable HTTPS and run HTTP on port 80, or else you will encounter permission denied and various cryptic issues. Disable InnoDB for MySQL and use MyISAM only, otherwise it will complain “Semaphore wait has lasted more than 600 seconds” and crash after a while.
- HeidiSQL works fine as the MySQL client for the installed XAMPP server. Workbench doesn’t work, requiring .NET. The MySQL command line tool works fine – just use the portable version and don’t install the junk that comes with MySQL installer.
Visual Studio
- Tried Visual C++ 6.0 portable and the IDE refused to run, but the command line compiler worked fine. Tried copying various runtime libraries from the full version (in OS\SYSTEM on the installer CD) to no avail.
- Visual Basic 32-bit IDE from 4.0 to 6.0, including NanoVB6, could not run no matter what I tried. The IDE shows up, but complained “Unexpected Error, quitting”. Tried registering OCX files which did not help. Wine does not have an event viewer system which could have logged the reason why the .EXE could not load. VB3.0 IDE, being a 16-bit app, obviously could not load. Most VB6 apps could run, with the correct runtime libraries installed.
- VSCode refuses to install, not surprisingly. I believe it checks for Windows 10. I did not bother to try installing modern versions of Visual Studio.
Java IDEs
- The latest version of Eclipse, 2025-06, which has a bundled JRE, works but is far too slow and occasionally crashes Wine. I tried various older versions from Juno onward which have issues with Oracle Java on Wine and keeps complaining about missing jvm.dll or JVM error code 13, despite using the correct releases for x86/x64 architecture. These errors disappear when OpenJDK is used, but various internal functions would crash due to missing classes in Open JDK such as com.sun.javafx.*. I believe early versions of Eclipse are not OpenJDK ready.
- Netbeans took very long to load and eventually crashed Winlator, most likely due to memory overflow.
- Geany, a lightweight Java IDE, works. It is however quite limited. Sublime is far more useful if configured correctly. Other lightweight Java IDE which are Java apps either crash or are far too slow.
C/C++ IDEs
- UltraEdit and UEStudio version 16.0 works fine. Autocomplete in UEStudio is quite good and is able to support function parameters and structure members, while UltraEdit autocomplete support is limited to common language keywords and words found in current document.
- Early lightweight C/C++ IDE such as Quincy 2005 and Dev-CPP which comes with their built-in MinGW compiler works fine. Quincy has no autocomplete support while Dev-CPP autocomplete support is limited (structure members only, no function parameters support). Qt-Creator latest version works with great autocomplete, but is a bit slow and requires setting up with an external compiler.
- CodeLite v9 is too slow to be used. CodeLite v2 is very fast but autocomplete only prompts word within the same file. Autocomplete is reasonable in CodeLite v5, but a full project build might be needed. Of note is that early version of CodeLite such as v5 has a bundled C compiler while new versions require separate compiler configuration.
- Code::Blocks crashes due to stack overflow.
Text editors
- Notepad++ and Sublime text works fine and is fast enough for generic C/C++/Java development using command line compilers. Notepad++ function list and simple keyword autocomplete can still be very useful. The same can be achieved by Ctrl-R in Sublime. For advanced C/C++ autocomplete including property list and go to definition, install Sublime Clang plugin. JavaImports and JavaIME can be used for advanced autocomplete in Sublime if src.zip is configured to point to a Java JDK.
- I could not get any .NET IDE to work. SharpDevelop requires .NET framework which cannot be installed on Wine. When I have more free time, I will try early versions of MonoDevelop and MonoDevelop IDE to see if I could get some C# code to compile.
- Bowpad, a fancy text editor with the ribbon interface, does not work – ribbon is blank. I suspect the necessary Win32 API to draw the ribbon is unimplemented on Wine. When running on Windows the ribbon Function button to view the function list inside the current source file is also grayed out.
Other Development Tools
- IDA Pro 5.3 works fine as a disassembler. Later versions should also work, but I did not try.
- QB64 (a QuickBasic clone for Windows) works fine and compiling PAS/BAS is very convenient, until the window is dragged, after which the content will remain at its old position while the border will be redrawn, and the app will stop responding to keypress. Just don’t drag its console window, I guess.
- FreePascal IDE works well without the dragging issue. I suspect the developer of FreePascal IDE did not rely too much on the Win32 console API which is buggy on Wine.
Media playback
- The latest version of VLC installs and plays MP3 fine, but hangs when resuming from pause. The version of Media Player Classic that comes with K-Lite Codec Pack has no issues with MP3/WMA playback.
- Most standard players will not play MIDI on Wine, due to the lack of a MIDI synthesizer. I installed CoolSoft VirtualMIDI Synth, which is not detected by VanBasco’s Karaoke Player, saying that MIDIMAP.CFG not found in Sytem32 directory (which is untrue).
- What works is to install Winamp (latest version 5.93 is fine), Synthfont and its Winamp plugin pointing to the SF2 located inside the Synthfont folder. Inside WinAmp, press Ctrl-P to remove the Nullsoft MIDI player from the plugin list, leaving only the Synthfont plugin – otherwise WinAmp will still complain about MMSYSTEM error. MIDI files will then be played without issues.
- Synthfont also serves as a standalone sophisticated MIDI editor which can play MIDI file. v1.8 and above crashes on Wine while v1.6 works fine. Earlier versions work but do not accept command line parameters so you can’t double click a file to open with Synthfont.
- Media Player Classic, VLC or Winamp 5.093 could not play any sort of video files (FLV, WMV, AVI) on Wine. I suspect these players attempt hardware rendering that is unsupported by Wine. An old version of Zoom Player could not work either (black screen). WinAmp 2.95 (which most likely uses software rendering) could play WMV and some early AVI files. I use WinFile to associated WMV/AVI with WinAmp 2.95, leaving other media files to the newer version of WinAmp. WinAmp should not be configured to associate file types with it; otherwise the custom configuration will be reset when you open WinAmp. The following picture shows WinAmp 2.95 playing a video in WMV format:
- IrfanView could not play SWF, complaining lack of Flash IE plugin. SWF File Player doesn’t work due to lack of .NET. The Standalone versions of Adobe Flash Player work fine, but some releases do not accept command line parameters so SWF can only be opened from within the player’s interface and cannot be played by double clicking the Explorer icon.
Audio Editor
- The latest version of Audacity works well with no issues
- Goldwave also works well, but the latest version would always complain about incorrect registration key, despite using a valid key. Version 4.26 works fine, including license registration.
Gaming
- Gaming is not my focus and hence was only minimally tested.
- Various built-in games from Windows XP and 7 work fine (see above). Other lightweight games such as Tetris and MoorHunt also work.
- SDLPop, an SDL port of Prince of Persia 1.3 for Windows, works fine even in full screen mode. Control is smooth and audio is great. Just don’t drag the window while playing!
- Charlie II v3.11 for Windows, by Mike Wiering, installs and runs fine but is too fast to be played. I believe it would be playable if Winlator emulation speed could be adjusted.
- Zint Nicolaas and Zwarte Pierte, two open source games written in the now-deprecated Clean programming language by Wiering Software, installed fine but could not be started.
- If anything, DOSBox 0.74 also works under Wine so some DOS apps and games can be used this way. But you might as well use Magic Dosbox directly.
Keyboard Hooks
- Wine’s SendInput (aka SendKeys) implementation appears to have some issues, and hence no On Screen Keyboard utilities I tried could work to replace the missing ESC and TAB key. It could also be because the On Screen tool always regains focus when the virtual keyboard is used, so key presses are not sent to the target app. Use Alt-F4 (or just the mouse) in place of ESC instead.
- Despite this, tools such as Unikey (a Vietnamese input method for Windows) work fine.
- There is no support for the Print Screen key. Various snipping tools I tried did not manage to capture anything. Lightshot v5.5.0.4 (the most recent version) did not work either – it successfully took a screenshot of the Wine Desktop with icons but the individual app windows are not included in the screenshot. Just use Android for screenshot instead!
Miscellaneous
- Wine command prompt is very limited, does not support MODE CON (to change number of rows and columns), window resizing, or TAB autocomplete for filename and does not support Unicode. For a better command prompt, use TCC LE 12.1 (link to download at the end of this article). To improve terminal behavior, use Console2 or ConEmu – the latest versions work just fine. Set the font to Courier New as the default font might not support Unicode.
- Occasionally clicking on a window (especially setup wizards) would not set focus to that window, until you drag it. Some setup wizards would also freeze at 99% requiring a restart of Winlator, although the app has been successfully installed.
- Wine has no screen saver (not that it is needed). I copied the SCR files from Windows 95/98/XP over, renaming to .EXE and run with /s (for standalone testing) and /p HWND (to run inside a window) only to experience a black screen which closes when a key is pressed, likely due to lack of Win32 API support.
- AIDA32, an old system information utility, works fine, showing the emulated machine configuration running Windows 7 Professional. The reported total amount of RAM and disk space is that of the host Android tablet:
At the end of process, I was able to get many apps to run satisfactorily on Winlator and could also get some light C/C++ programming done from my tablet, without having to purchase some limited C/C++ IDE apps for Android or to live with full screen video ads. Battery usage is still great and does not seem to be impacted by the use of Winlator. A README.TXT file was found to be of size 8GB, entirely filled with zeroes, raising concerns about file system corruptions as Winlator crashed quite a few times during my experiment. Due to how Winlator works, a Windows disk utility such as Scandisk or CHKDSK would most likely not detect these kind of corruptions. Winlator lacks an option to export the container and only offers to clone the container so I resorted to using FileZilla to upload the entire C:\ drive to my FTP server, where a ZIP backup could be created. A registry backup could also be created from regedit as an additional safety measure. With this I am satisfied with my Winlator setup and will continue to use it to play with Windows on my POCO Pad.
This is a photo of my Winlator machine running on POCO Pad, showing Winamp playing MIDI files, Notepad and PNotes on the desktop:
You can download some of the apps mentioned in this article from the archive Winlator_APK_Windows_Apps_Collection.zip in this shared folder.
See also
Super 8086 Box, my home-built PC XT emulator with Adlib, MPU-401, joystick and NE2000 support
Open Office 2007 documents on Windows 98
Useful software for Windows 98SE (PDF, FTP, text editor, media players, etc.)










