86Box / 86Box

Emulator of x86-based machines.
GNU General Public License v2.0
2.81k stars 354 forks source link

Suffering illegal instruction when installing or running Win95 on 386 machines #4303

Closed borisvolk117 closed 8 months ago

borisvolk117 commented 8 months ago

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

Download source

Official website (Jenkins, GitHub)

Additional context

No response

OBattler commented 8 months ago

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

OBattler commented 8 months ago

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.

sskras commented 8 months ago

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