Running Windows XP on my Droid 2 Global using Bochs
It takes a good 4 minutes to boot, most of which is staring at a blank background and a mouse cursor, so you probably want to skip around.
00:08 Safe Mode Menu (Emulator crashed before, more below)
00:36 XP splash screen appears (yay!)
01:12 CHKDSK (from the previously mentioned crash -- I skipped it)
01:40 Video driver initializes.
03:26 Taskbar appears.
03:33 Desktop icons appear.
04:33 I open the Task Manager (from taskbar context menu)
04:56 Task Manager Opens
05:11 About Windows Task Manager Screen
06:23 Open System Properties (from Start Control Panel)
06:29 System Properties
07:04 Opening Solitaire (from Desktop)
07:26 Emulator crashes.
08:00 Using andExplorer, I open bochsrc.txt file, for viewing.
Bocks2_5_1.apk found at http://forum.xda-developers.com/showt... (13 Dec 2011)
I installed Windows XP in QEMU on my PC, then copied the disk image to my phone for testing. It worked, but took about 15 or 20 minutes to finish hardware detection (since Bochs emulates slightly different hardware). The Windows XP installation here is heavily nLited to around a 250MB install, with minlogon installed to speed up boot in the slow emulator. Also, all services are off, except for PlugnPlay, RPC, and Crypto. A normal install should work just fine, but would probably run somewhat slower. Also, it would probably make good sense to keep Themes off, as in this video.
Realize that this is indeed Windows XP Professional SP2, for i386, not Windows 98 made to look like XP through Revolution Pack, UberSkins, etc. If it was, it would be running a heck of a lot faster. (see here: http://www.msfn.org/board/topic/13104...)
About the crashing: If you use more memory than the phone can handle, it may crash after a while (as shown). I initially had the memory set to megs:128, and it was stable. I wanted to try more memory, so set it to 384 before the video, but this was too much.
Note about vgaromimage: The vgaromimage specified has the wrong file name. It is actually the Cirrus VGA ROM, usually called "VGABIOS-lgpl-latest-cirrus", with a file size of 36KB. It can be found under that name in a standard install of Bochs 2.5.1 (current as of writing).
Note about sb16: I accidentally removed all the drivers from Windows with nLite, so while sb16 is enabled in the emulator, the sound is not demonstrated because there are no drivers installed. The proper video driver is also missing. I have not tested those here.
About QEMU on Android: There are a few versions of QEMU for Android floating around. Last I checked, none could run any OS that used 32-bit disk access (all modern Windows/NT, Linux, BSD, OS X, etc). If you know one that works, comment! QEMU would otherwise be preferable, as it is much faster (a "Fast CPU Emulator").
About Dual-Core phones: My Droid 2 Global has a single core, 1.2GHz processor, which should run the emulator faster than a dual-core 1.0 GHz phone. Bochs, like most emulators, uses a single thread for emulation, so a dual-core phone would not provide an improvement, unless the cores are faster (e.g. a 1.6 GHz phone), or the emulator is heavily changed. Your milage may vary.
I appologize for the somewhat awkward camera control. It is difficult to take a good video of a phone while using the touch screen (and hitting the volume rocker to click, as described on the Bochs link).
Thanks to korvs2003 on xda-developers.com for the emulator.
Thank you for watching!
http://www.youtube.com/watch?v=4clKRE... A video with a more interesting version of Windows installed.
bochsrc.txt (without most comments):
cpu: count=1, ips=6000000, reset_on_triple_fault=1, ignore_bad_msrs=1
# filename of ROM images
vga: extension=cirrus, update_freq=25
pci: enabled=1, chipset=i440fx, slot1=cirrus
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata0-master: type=disk, path="c.img"
#ata0-slave: type=disk, path="d.img"
#ata1-master: type=disk, mode=vvfat, path=/sdcard/HDD, journal=vvfat.redolog
#type=cdrom, path="CD.ISO", status=inserted
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga
sb16: wavemode=1, dmatimer=500000
clock: sync=none, time0=1