86Box/86Box

Windows 98 + Voodoo 3 crashes on rapid mouse movement (Apple Silicon host).

Closed this issue · 0 comments

What happened?

Running Windows 98, with a Pentium II and a Voodoo 3. When I move the mouse rapidly, 86box crashes with a bad access failure:

crash_log.txt

Configuration file

[3dfx Voodoo3 3000]
bilinear = 1
dithersub = 0
dacfilter = 0
render_threads = 1

[Standard PS/2 Mouse]
buttons = 2

[Sound Blaster AWE32]
base = 0220
emu_base = 0620
base401 = 0330
irq = 5
dma = 1
dma16 = 5
onboard_ram = 8192
opl = 1
control_pc_speaker = 0
receive_input = 0
receive_input401 = 0

[General]
video_filter_method = 0
video_fullscreen_scale = 4
host_cpu = Apple M2
uuid = aa95f7ca-df36-5a97-b922-eeb0dfecaa44
vid_renderer = qt_software
emu_build_num = 5683

[Machine]
machine = p65up5_cpknd
cpu_family = pentium2_deschutes
cpu_speed = 300000000
cpu_multi = 4.5
fpu_type = internal
cpu_use_dynarec = 1
fpu_softfloat = 0
time_sync = local
mem_size = 65536

[Video]
gfxcard = voodoo3_3k_pci

[Input devices]
mouse_type = ps2

[Sound]
sndcard = sbawe32
fm_driver = nuked

[Network]
net_01_card = ne2kpci
net_01_link = 2
net_02_link = 0
net_03_link = 0
net_04_link = 0

[Storage controllers]
hdc = none
cassette_mode = load

[Hard disks]
hdd_01_parameters = 63, 16, 20317, 0, ide
hdd_01_fn = C Drive.vhd
hdd_01_speed = 1998_5400rpm
hdd_01_vhd_blocksize = 4096
hdd_01_ide_channel = 0:0

[Floppy and CD-ROM drives]
fdd_01_type = 35_2hd
fdd_02_type = none
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 0:1
cdrom_01_host_drive = 200
cdrom_01_image_path = /Users/bernard/MacBox/Win98carepackage
fdd_01_image_history_01 = /Users/bernard/MacBox/Boot.img
cdrom_01_image_history_01 = /Users/bernard/MacBox/Microsoft Windows 98 Second Edition (4.10.2222) (Retail Full)/Windows 98 SE (101 - Retail Full).iso
cdrom_01_type = 86BOX_CD-ROM_1.00

[Realtek RTL8029AS #1]
mac = 84:e1:a0

Operating system

macOS Sonoma 14.4.1

CPU

Apple M2

86Box version

v4.2 (Build 5683)

Build architecture

macOS - Universal (Intel and Apple Silicon)

Build type

  • New recompiler
  • Debug build

Download source

Manager auto-update

Additional context

I built 86box on the same machine and ran it in Xcode. It might be a coincidence but it didn't seem to reproduce until I enabled NEW_DYNAREC.

It's crashing in banshee_hwcursor_draw in vid_voodoo_banshee.c:2113. In this expression:

                        (svga->monitor->target_buffer->line[displine])[x_off + xx + svga->x_add] = (plane1[x >> 3] & (1 << 7)) ? col1 : col0;

x_off is -1, xx is 0, and svga->x_add is 0, leading to it trying to write to the index '-1'.

If you want me to check something in the debugger that might be helpful, let me know.