86Box/86Box

Suffering illegal instruction when installing or running Win95 on 386 machines

Closed this issue · 3 comments

What happened?

One month after the BSOD issue in #4189, I still suffer bugs in recent builds. When I try running Internet Explorer 3.0 on ECS Panda 386V with Win95, it shows "iexplore.exe illegal instruction". Then I try reinstalling Win95, and it shows "regsvr32.exe illegal instruction" after the first restart.
The VM:
https://1drv.ms/u/s!Aj8ez5JAwe2uixPIE9JCQfyyI0Uo?e=uNy42e
Monitor_1_20240325-214153-921

Configuration file

[General]
vid_renderer = qt_software
language = zh-CN
vid_resize = 2
window_fixed_res = 1024x768
window_remember = 1

[Machine]
machine = ecs386v
cpu_family = cx486drx2
cpu_speed = 66666666
cpu_multi = 2
cpu_use_dynarec = 0
fpu_softfloat = 0
time_sync = local
mem_size = 16384

[Video]
gfxcard = cl_gd5434_isa

[Input devices]
mouse_type = msserial

[Sound]
fm_driver = nuked
sndcard = sb16

[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0

[Storage controllers]
hdc = none
cassette_mode = load
scsicard_1 = aha154xc

[Adaptec AHA-154xC #1]
base = 0334
irq = 11
dma = 6
bios_addr = C8000

[Hard disks]
hdd_01_parameters = 63, 16, 3000, 0, scsi
hdd_01_scsi_location = 0:00
hdd_01_fn = 114114.vhd
hdd_01_speed = ramdisk
hdd_01_vhd_blocksize = 4096

[Floppy and CD-ROM drives]
fdd_01_type = 35_2hd
fdd_02_type = 525_2hd
cdrom_01_speed = 16
cdrom_01_parameters = 1, scsi
cdrom_01_scsi_location = 0:01
cdrom_01_host_drive = 200
cdrom_01_image_path = C:/Users/13980/Downloads/Compressed/win95_cn_all(jb51.net).iso
fdd_01_image_history_01 = C:/Users/13980/Downloads/Windows98_SE.img
cdrom_01_type = 86BOX_CD-ROM_1.00

[Monitor #1]
window_coordinates = 426, 137, 1024, 768

[Monitor #2]
window_coordinates = 0, 0, 0, 0

Operating system

Windows 11 pro x64 23H2

CPU

Intel Core i5-9400

86Box version

v4.2 build 5642

Build architecture

Windows - x86 (32-bit)

Build type

  • New recompiler
  • Debug build

Download source

Official website (Jenkins, GitHub)

Additional context

No response

It's not an illegal instruction but an invalid page fault.

This is a CANTFIX - it requires a properly working prefetch queue (or cache) as it expects the bytes to have been fetched from the page before the page's present bit has been cleared.

Would increasing the swapfile in guest OS help to avoid the fault?