-
Notifications
You must be signed in to change notification settings - Fork 87
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
Windows XP not working in halfix-demo #25
Comments
The WebAssembly version is notoriously unstable. WinXP occasionally
works, other times it crashes. Based on the fact that it works in the
native version but not in the browser, I have a feeling that there's
some obscure translation bug regarding endianness, alignment, or
something else.
When I was first debugging the WebAssembly version, I tested Win95 in
the browser, and it crashed midway through boot. It worked fine in the
native version, but there was a very minor quirk in how WASM compiled
the MUL/IMUL instruction sequences, which caused them to produce the
wrong value. I fixed it, but it goes to show how flaky support is.
Some things to check are:
- Do you have APIC enabled? Windows XP will ordinarily triple fault
(+restart) if you don't have it enabled
- License key might be expired (this happens to me because the date
is screwed up)
- It might be network lag (might not be your fault, the emulator has
weird timing issues with XHR loads)
You can comment out `#define LOGGING_DISABLED` on line 22 of
`include/util.h` to get logging output like you do in the native
version. You can call `saveLog()` in the console (line 439 of
`libhalfix.js`) and inspect the tail end of the logging output.
I am working on a rewrite in Rust to get rid of stupid issues like
these and hopefully improve performance. Sorry for the inconvenience.
…On 4/16/21, ***@***.*** ***@***.***> wrote:
![bsod](https://user-images.githubusercontent.com/68371847/115024663-97b9bc80-9eea-11eb-812c-a2c8a7c562b5.png)
Next Boot, Maybe BSOD?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#25 (comment)
|
This sounds like a bug. 86Box doesn't emulate the APIC at all, yet Windows XP runs without any problems. |
If you install XP on a system with APIC support, it will assume that
it's present for all future boots, whether or not the current system
has it or not. The exact sequence of events is that it tries to access
0xFEE00000 in physical memory, finds nothing there, tries to read the
APIC base field from the MADT (which the BIOS sets up), the BIOS
rightly doesn't detect an APIC and zeroes it, and XP crashes because
it attempts to read from an invalid address. That was a lot of fun to
debug. This bug also manifested when users created images in QEMU
(which emulates the APIC) and running it in the v86 emulator (which at
the time didn't support the APIC).
Images made on 86Box (or another emulator that doesn't support APIC,
like jDosBox) will work without the APIC enabled because the system
that it was installed on doesn't have it. In fact, I have a test image
that I installed on jDosBox, and it works with the APIC disabled.
Both QEMU and Halfix enable the APIC by default, but the web version
is a bit wonky, and it's a problem that I've experienced in the past
when I had unwittingly turned off APIC support in the browser and had
XP crash on me.
…On 4/27/21, qeeg ***@***.***> wrote:
>Do you have APIC enabled? Windows XP will ordinarily triple fault
(+restart) if you don't have it enabled
This sounds like a bug. 86Box doesn't emulate the APIC at all, yet Windows
XP runs without any problems.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#25 (comment)
|
Oh, OK. |
Sorry for the long wait, I'm very busy at the moment.
You may want to try enabling PCI as well. Taking a closer look at the
error, it seems like the OS is intentionally triggering the reset, so
this is likely a hardware configuration error or something similar.
…On 4/28/21, ***@***.*** ***@***.***> wrote:
![image](https://user-images.githubusercontent.com/68371847/116404517-e5261a00-a858-11eb-86e2-b803f97494d2.png)
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#25 (comment)
|
With PCI and ACPI not works. (I've installed without PCI) |
On Halfix for Windows:
In Browser, before loading screen VM resets:
On Windows works with .img/splitted image.
In browser in Safe Mode not works
The text was updated successfully, but these errors were encountered: