Windows 98 + Voodoo 3 crashes on rapid mouse movement (Apple Silicon host).
Closed this issue · 0 comments
bhelyer commented
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:
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.