Bochs Install Windows Xp 3,5/5 4232 votes
- Install Windows Xp Free Download
Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Configuring the Emulated Machine. You'll see the “Bochs Start Menu.” Edit “Disk & Boot.” Switch to the “ATA Channel 0” tab. Next switch to the “First HD/CD on Channel 0” sub-tab. Click to “Enable This Device.” The “Type of ATA Device” should be “disk.” Point the “path” to the disk image you just created. If you don't have a jailbroken iPhone 7, you can sideload it using XCode or Cydia Impactor. For Cydia Impactor to work you will need an IPA file of Bochs emulator. If you have a jailbroken iPhone 7, you can simply install the IPA file from Filza with. Windows XP running in Bochs. There are few tips to make OS under Bochs to unstall smoothly: Disable as much as possible devices during installation. Install using VBE (not Cirrus), without networking or sound. All these devices could be always re-enabled and installed after your have working OS image.
Sign up
New issue Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
commented Feb 29, 2016
Windows XP and OS/2 don't boot because of an unhandled double fault exception. At the page fault handler, I tried doing this: but then there were more #GP exceptions and it would have triple-faulted anyways. It would be really cool to see Windows or OS/2 booting. |
commented Feb 29, 2016
Windows XP and OS/2 don't boot because of an unhandled double fault exception.
It's not the double fault exception that causes this. The double fault shouldn't happen in the first place. If you want to see how far Windows XP gets, set ENABLE_ACPI to true here. It's experimental and will cause some other OSes to stop working. After that Windows XP gets stuck on a black screen. The APIC needs some more work. What version of OS/2 are you testing? If possible, can you upload a disk image? I have managed to get Windows NT 4.0 to start properly in copy.sh if you want to see a Windows NT-based operating system working in it, you can use NT 4.0. Just letting you know!
That's very cool, I'm also testing a (probably different) version of Windows NT and it doesn't work for me. Did you apply some fixes? Can you upload a disk image somewhere? |
commented Mar 1, 2016
I'm guessing that the ACPI interpreter is failing (it's very strict, according to what I heard). According to osdev.org, the ACPI tables seem to be very complex. Couldn't we just copy the tables from an emulator like Bochs and insert it into the memory? Something like this:
if(ENABLE_ACPI){ cpu.memory.u8.set([ 1, 2, 3, 4, cpu.something someValue, ...], 0x1234567]); } These are tables, after all. How hard could it be to copy tables? BTW I am using OS/2 Warp 4.52 (I think). I created the disk image in QEMU and I'll try to upload it somewhere. There used to be a 16-bit iret problem but now it's gone, thanks to a recent commit. :) |
commented Mar 1, 2016
I think I figured out why some OSes don't work when ACPI is enabled. It's not the emulator's fault (although it might be -- you never know). Early OSes have no support for ACPI at all (see https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Operating_systems). When an OS, such as DOS sees random AML bytecode in spots where x86 code is supposed to be, then things go south.... |
commented Mar 1, 2016
These are tables, after all. How hard could it be to copy tables?
This isn't necessary, the bios sets up ACPI tables: https://github.com/KevinOConnor/seabios/blob/master/src/fw/acpi.c Early OSes have no support for ACPI at all
That's good to know, this will need to be a runtime option then. |
commented Mar 3, 2016
Then what's the problem? Is there an I/O port that's mis-reading/writing? And BTW, how do you debug things like this? |
commented Mar 3, 2016
Then what's the problem? Is there an I/O port that's mis-reading/writing?
The APIC implementation is quite incomplete, so there are just many parts missing (or wrong). And BTW, how do you debug things like this?
Run the emulator in debug.html. You'll see a rather verbose log in the JavaScript console, XP produces this: https://gist.github.com/copy/c4de5225317922d035d3 You can see what is being used. There are some unimplemented IO ports. Then Windows goes to sleep waiting for something to happen, probably an interrupt. Could also be related to that RTC register. |
commented Mar 3, 2016
Is it ACPI or APIC? In the code, I saw 'APIC' in acpi.js. |
commented Mar 4, 2016
Is it ACPI or APIC?
ACPI needs to be enabled for it to work at all. APIC implementation is incomplete. In the code, I saw 'APIC' in acpi.js.
Do you have the latest version? |
commented Mar 5, 2016
I have one from a while ago -- it still has traces of the dynamic translator in it. So, let me get these things straight: Windows XP doesn't boot because of incomplete ACPI ports and an incomplete APIC implementation. OS/2 Warp 4.52 doesn't boot because of... I don't know. I'm uploading to Dropbox right now. |
commented Mar 5, 2016
That's the file (I made it in QEMU) |
commented Mar 5, 2016
Thanks for the disk image. After a bit of fixing small things, I found that OS/2 uses far call gates, which aren't implemented yet. Windows XP doesn't boot because of incomplete ACPI ports and an incomplete APIC implementation.
Probably the latter, yes. |
commented Mar 5, 2016
So Win XP doesn't boot because of APIC problems and OS/2 doesn't boot because of far call gates. |
commented Mar 5, 2016
commented Mar 12, 2016
I did some research yesterday and I discovered this: http://lifehacker.com/5827222/jpc-2-lets-your-run-windows-xp-and-ubuntu-in-your-web-browser I just thought it was interesting. Unfortunately, it's not up anymore :( |
commented Mar 12, 2016
Actually, from what I saw, it worked more like the Windows 98 demo: http://copy.sh/v86?profile=windows98 I looked a bit more and apparently, it emulates the code, but loads the hard disk over the Internet. It would have been really neat to see it in action and see the source code, but it's down now -- and all traces of the jar file are gone! |
commented Mar 13, 2016
I dug some more and it's by a company named 'eMediaTrack' in Great Britan (because they say 'optimised' instead of 'optimized'). I went to eMediaTrack.net and saw their demos -- it's called 'Proteus' or something. Then, I looked up 'Proteus' online and came up with proteuscc.sourceforge.net. I found out that they compiled Bochs to Java. Somehow. Then, I went back to archive.org and looked at the page source. The main class is com.emt.proteus.vmimpl.?. I decompiled the demos and found out that there was no 'vmimpl' class there... Finally, I looked backwards in time and found something new! Apparently, they compiled Bochs to Java with their 'Proteus-S' product. The company got liquidated in October 2015. I saw this in the British 'Companies' House' web site. They owed a bunch of money to other companies. Maybe the file is owned by one of them now..? |
commented Mar 13, 2016
Oh, BTW a site called ww45.jpc2.com was up in 2014 but now it's down. |
commented Apr 9, 2016
Just discovered this (http://sandpile.org/x86/cpuid.htm#level_0000_0001h) The (fixed) default APIC ID is encoded in bits 31...24.
Maybe the lack of this is causing the double faults. |
commented Jun 9, 2016
jsbochs is Bochs compiled to JavaScript via Emscripten. JPC-2 is basically JPC but with more features (according to their web site). In unrelated news, Windows XP launched for retail sale on October 25, 2001. It would be cool to have it work in the browser as a '15th anniversary' thing. |

commented Jun 11, 2016• edited
There's a difference between regular Windows XP and the 'small variants'. For example, I tried a PEBuilder ISO and it faults with a BSOD (after taking like 50 minutes to boot). However, Windows XP SP3 (It's a 1.5 GB image, so I can't post it online like my OS/2 one) just stops in the middle[1]. The IPS counter just goes down to 0. That's because a 'double fault' exception is being thrown (AKA no ACPI/APIC support). [1] It's been a while since I checked, so who knows? :D I could probably implement ACPI in a few days, but I'm busy at the moment (and I don't know a lot about hardware stuff) |
commented Jun 11, 2016
I had an interesting idea: I saved an instance of Windows XP on Bochs when I had a little too much free time on my hands. So, it would be relatively easy to convert the Bochs format (which is like JSON but with equal signs) into the v86 format, because I believe that ACPI tables are only parsed on startup and aren't used unless you want to shut down the computer or mess around with the power options. On the other hand, implementing ACPI/APIC can make some more operating systems work and I personally think that this is a bit like cheating. |
commented Jun 11, 2016
That's true... Anyways, it is possible to install Win XP without ACPI and APIC. But it takes XP a LOOOOOOOOOOOONG time to install (3 hrs. for me in QEMU). Anyways, I'll try to implement ACPI/APIC soon. Speed is not an issue. Windows XP can run on 8 MHz, and I'm sure the speed here is more than 10 MHz... I hope. |
commented Jun 13, 2016
Imagine Vista at 8 MHz! >:-) Sometimes, the computer gets the clock speed wrong. XP said the computer was a 5 MHz Pentium IV. I can't see the entire IPS counter in the UI, though. But that's pretty fast compared to a Pentium 60 (but people say the Pentium IV was slow, though...) By the way, did anybody have any success implementing ACPI yet? |
commented Jun 13, 2016
I'm not actually sure if the copy.sh CPU is at 8 MHz, but I checked four different operating systems
They're just measuring the TSC, which runs at a constant speed, defined here. By the way, did anybody have any success implementing ACPI yet?
There's not much to do as far as I know, most work is done by the bios: https://github.com/coreboot/seabios/blob/master/src/fw/acpi.c |
commented Jun 14, 2016• edited
Install Windows Xp Free Download
commented Jun 14, 2016• edited
I think the original Windows XP should work, since it booted in safe mode in JDosbox[1]. When I tried SP3 on it, it double faulted. A closer inspection of the project revealed that there was no ACPI or APIC. A forum thread[2] didn't say anything about ACPI or APIC. But, I can't find any original (non 'service pack'ed) ISOs out there. [1] http://jdosbox.sourceforge.net/ [2] http://www.vogons.org/viewtopic.php?t=27467 PS: There is a cool OS on the last page that you should try: http://ftp.unixdev.net/pub/iso/QNX/qnxnc621.iso But its 237 MB. |
commented Jun 14, 2016
Sure! That would be great! Can you post it online somewhere so that I can test it/install it? I think the disk is about 200 MB, won't take me that long to download. But it installs to a 1 GB hard disk. Which leads me to wonder: how does it make 5 times more data than there was on the CD-ROM itself? There's a way to disable APIC during install, but I couldn't find it. And people are typing in ACPI instead of APIC and vice versa. Driving me crazy. |
added a commit that referenced this issue Oct 15, 2016
commented Nov 16, 2016
Well, after all that, what is the status of Windows XP support ? |
commented Nov 21, 2016
@socketpair I'd suggest to clone the repository and try running it yourself. Currently there's some missing code here. After that it tries to use the APIC and fails. You can change log levels here and don't forget to use debug.html (it has assertions and logging enabled and you don't need to compile). |
commented Mar 31, 2017
Status update: I've implemented all APIC features that are required by Windows XP and fixed a few small bugs. It's more-or-less usable now. I'll need to do some more testing before pushing the code. |
added a commit that referenced this issue Apr 29, 2017
added a commit that referenced this issue Jun 1, 2017
IDE: Use same PCI device id as qemu, required for Windows installatio…
added a commit that referenced this issue Jun 1, 2017
commented Jun 1, 2017
I have now pushed the remaining pieces to run Windows XP in v86. You can clone the repository, set ENABLE_ACPI = truehere and try it out locally. I recommend installing XP in QEMU with the default disk configuration (otherwise you'll likely get INACCESSIBLE_BOOT_DEVICE). In order to make a release on the website, a few pieces are still missing: - Speed is too slow to really do anything, we're working on this (see #122)
- The legality isn't certain, at least WinWorld doesn't consider XP abandonware: https://winworldpc.com/winboards/viewtopic.php?f=1&t=6612
ENABLE_ACPI must become a runtime option since it breaks some other OSes
|
added a commit that referenced this issue Jun 5, 2017
commented Jun 7, 2017
What is the status of ACPI enabled with the Linux kernel booting? I compiled a test script and ran Linux 4.11.x kernel and received a kernel panic indicating to run as 'noacpid.' I know it might not be necessary for Linux but I was just playing around. Is there any logs I can gather to help out to make this more stable of a feature? I have yet to test Windows XP which I plan to this week. |
commented Jun 7, 2017
What is the status of ACPI enabled with the Linux kernel booting? I compiled a test script and ran Linux 4.11.x kernel and received a kernel panic indicating to run as 'noacpid.' I know it might not be necessary for Linux but I was just playing around. Is there any logs I can gather to help out to make this more stable of a feature? I have yet to test Windows XP which I plan to this week.
I can boot it (4.11.2-1). Are you on latest master? There are still a few problems with ACPI. Logs probably won't help me diagnose the problem, I'd need more details on the VM image. |
commented Jun 8, 2017
I'll check my image. I have been creating my images with Buildroot targeting the i586 platform. Maybe I have a configuration problem within the defconfig. The Linux kernel is Linux 4.11.3 # 1 SMP i686 GNU/Linux. |
commented Jun 8, 2017
I'll check my image. I have been creating my images with Buildroot targeting the i586 platform. Maybe I have a configuration problem within the defconfig. The Linux kernel is Linux 4.11.3 # 1 SMP i686 GNU/Linux.
In that case, if the image is small and the problem still persists, could you upload the image somewhere so I can have a look? |
added a commit that referenced this issue Jun 11, 2017
commented Jun 14, 2017
@copy APIC and ACPI aren't really required for XP to work AT ALL. 86Box runs it and it emulates neither. |
commented Jun 15, 2017
@copy APIC and ACPI aren't really required for XP to work AT ALL. 86Box runs it and it emulates neither.
That may be the case, but I couldn't make it run without an APIC. Maybe this was due to a newer service pack or something hard-coded during installation. Either way, Windows XP works now. |
added a commit to AmaanC/v86 that referenced this issue Jun 16, 2017
commented Oct 17, 2017
Is anyone else having issues with Windows XP now? I can't get it to work |
commented Oct 17, 2017
Is anyone else having issues with Windows XP now? I can't get it to work
Can you describe your problem with more detail? |
pushed a commit to AmaanC/v86 that referenced this issue Dec 13, 2017
commented Feb 5, 2018
Is anyone else having issues with Windows XP now?
I just tried a Windows XP SP2 image in v86 with ACPI enabled, and I got a BSOD screen similar to @BenNottelling's: The hda image was created using: where winxp.iso is from an install disk. I did some logging and naive googling, and I think I found something interesting. Apparently, the stop code 0x7E is SYSTEM_THREAD_EXCEPTION_NOT_HANDLED, and I think the exception code (param 1) 0xC000001D represents illegal instruction. I ran v86 in debug mode, and it encountered a failed assert for unimplemented SSE (t[0x2B]), and if we skip over the failed assert, the BSOD gets drawn almost immediately after that. Could the BSOD be because of unimplemented SSE instructions? |
commented Feb 5, 2018
Could the BSOD be because of unimplemented SSE instructions?
That's certainly possible. If you run in debug mode you should see this assertion failing. You can also disable the four relevant bits in cpuid (this line), then Windows should stop using SSE instructions |
commented Feb 5, 2018
Thanks! Clearing the cpuid SSE bits did the trick. @BenNottelling, this probably helps you too. |
commented Feb 5, 2018
I'll make sure to try it tonight |
commented Sep 17, 2018


@copy XP without ACPI should work if select 'Standard PC' HAL when hit F5 on install screen |
commented Sep 17, 2018
What @vitalyster suggested does indeed work, awesome. On the topic of ACPI though: Old spec: http://uefi.org/sites/default/files/resources/ACPI_5_Errata_A.pdf Current spec: http://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf |
Open
commented Mar 23, 2019
just something really cool, windows 10 boots to a recovery screen, but at least it boots
|
commented Mar 23, 2019
Unfortunately v86 is far from emulating windows 10, so it won't work as we just don't have every cpu instruction needed to run it |
commented Mar 24, 2019• edited
Also, i got a diagnostic windows pe modified portable version (basically windows xp) working. It runs after like booting for 8 min. its called bartpe |
commented Aug 25, 2019
I got Windows XP Fully working! No mods! |
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment
Posted by3 years ago
Archived
TYou might remember my post 'Reminding me of the past'. In it, some people requested how to run Windows XP. So, here it is:
Open Cydia, tap on sources, and is they are refreshing, tap Cancel.
Tap on edit, then on add, and delete the text shown. Write in http://hackingjules.yourepo.com .
After the repos refresh, tap on Return to Cydia. Or, if you have Flame, wait for the sources screen to show up.
Tap on Search, and search Bochs (pronounced 'box'). Tap on it, and tap install. Then, tap on Confirm Queuing. Then, search iFile Documentation (en), and install it. You'll see that Cydia installs Bochs, iFile Documentation, and iFile itself all at the same time.
After completion, click the home button, and tap on iFile. Tap on the button in the top right hand corner until it disappears. Now, scroll down, tap on Users, tap on Library, and then tap edit. Then, tap on the + button. Name the folder this exact name: Bochs. Then, tap on done.
Now, click the home button, and open Safari. Tap here. When the download is finished, a screen will pop up. Tap on Open In..., and tap on iFile. You will be presented with options. Tap on unarchiver. Then, tap on the done button, scroll up, and then tap the Edit button. Select Edit, and then tap on the WinXP folder. Tap on the clipboard, and tap on Cut. Navigate back to the Bochs folder we made earlier. There, tap edit again, tap the clipboard, and tap paste.
Open Bochs, and tap on WinXP. After a minute, you should see a screen that says 'Loading Windows XPE [The Horse Power]'. After a few seconds, it should disappear. In another minute, you'll see a screen that says Windows XP, has the Windows logo, and a loading bar. After about two minutes, you'll see a cool blue background. After 30-40 seconds, a tab will appear, and say Windows XPE Preinstallation Environment. It will take over 20 minutes to boot. Then, you should have icons, and you're free to explore Windows XPE!
Disclaimer (Added 9:40 PM on 4/15/2016): You'll need to buy a separate keyboard that has up, down, left, and right buttons to be able to type and move around better
Update: Some people on 64-Bit iOS devices have reported Bpchs crashing. This means that Bochs probably doesn't support 64-Bit devices.
Update: Here's some video footage from my iPhone: https://vimeo.com/163089311 . It's super slow, because there's a screen recorder using up RAM and CPU
159 comments