joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.56k stars 373 forks source link

SDL1 background switching causes CPU core to trip #3653

Open jackson2k2 opened 1 year ago

jackson2k2 commented 1 year ago

Describe the bug

kmode This does not happen when using an SDL2 build.

Steps to reproduce the behaviour

  1. Attempt setting up Windows NT 4.
  2. Switch the window to the background after it boots to the GUI setup, whether the kernel is loading or the stage has fully loaded.

Expected behavior

The emulator resumes operation intact.

What operating system(s) this bug have occurred on?

Windows 10

What version(s) of DOSBox-X have this bug?

0.84.1 SDL1, MinGW and MSVC.

Used configuration

[sdl]
fullscreen        = false
fulldouble        = false
fullresolution    = desktop
windowresolution  = original
windowposition    = 
display           = 0
output            = openglpp
videodriver       = 
transparency      = 0
maximize          = false
autolock          = false
autolock_feedback = beep
middle_unlock     = manual
clip_mouse_button = right
clip_key_modifier = shift
clip_paste_bios   = default
clip_paste_speed  = 30
sensitivity       = 100
usesystemcursor   = false
mouse_emulation   = locked
mouse_wheel_key   = -1
waitonerror       = true
priority          = higher,normal
mapperfile        = mapper-dosbox-x.map
usescancodes      = auto
overscan          = 0
titlebar          = 
showbasic         = true
showdetails       = false
showmenu          = true

[log]
logfile     = 
debuggerrun = debugger

[dosbox]
language                  = 
title                     = 
fastbioslogo              = false
startbanner               = true
bannercolortheme          = default
dpi aware                 = auto
quit warning              = auto
working directory option  = default
working directory default = 
show advanced options     = false
resolve config path       = true
hostkey                   = mapper
mapper send key           = ctrlaltdel
ime                       = auto
synchronize time          = false
machine                   = svga_s3trio64v+
captures                  = capture
autosave                  = 
saveslot                  = 1
savefile                  = 
saveremark                = true
forceloadstate            = false
a20                       = mask
memsize                   = 128
nocachedir                = false
freesizecap               = cap

[render]
frameskip      = 0
aspect         = false
aspect_ratio   = 0:0
char9          = true
euro           = -1
doublescan     = true
scaler         = normal2x
glshader       = none
pixelshader    = none
autofit        = true
monochrome_pal = green

[pc98]
pc-98 BIOS copyright string     = true
pc-98 fm board                  = off
pc-98 enable 256-color          = true
pc-98 enable 16-color           = true
pc-98 enable grcg               = true
pc-98 enable egc                = true
pc-98 bus mouse                 = true
pc-98 force ibm keyboard layout = auto
pc-98 try font rom              = true
pc-98 anex86 font               = 

[dosv]
dosv             = off
getsysfont       = true
fontxsbcs        = 
fontxsbcs16      = 
fontxsbcs24      = 
fontxdbcs        = 
fontxdbcs14      = 
fontxdbcs24      = 
showdbcsnodosv   = auto
yen              = false
fepcontrol       = both
vtext1           = svga
vtext2           = xga
use20pixelfont   = false
j3100            = off
j3100type        = default
j3100colorscroll = false

[video]
vmemsize                   = 4
vmemsizekb                 = 0
high intensity blinking    = true
vesa modelist width limit  = 0
vesa modelist height limit = 0

[vsync]
vsyncmode = off
vsyncrate = 75

[cpu]
core               = normal
fpu                = true
segment limits     = true
cputype            = pentium
cycles             = 60000
cycleup            = 10
cycledown          = 20
turbo              = false
apmbios            = true
integration device = false
isapnpbios         = true

[keyboard]
font         = 
fontbold     = 
fontital     = 
fontboit     = 
colors       = 
outputswitch = auto
winperc      = 60
ptsize       = 0
lins         = 0
cols         = 0
righttoleft  = false
wp           = 
bold         = true
italic       = true
underline    = true
strikeout    = false
printfont    = true
autodbcs     = true
blinkc       = true
gbk          = false
chinasea     = false
dosvfunc     = false

[voodoo]
nosound         = false
sample accurate = false
swapstereo      = false
rate            = 44100
blocksize       = 1024
prebuffer       = 25

[midi]
mpu401          = none
mpubase         = 0
mididevice      = default
midiconfig      = 
samplerate      = 44100
mpuirq          = -1
mt32.romdir     = 
mt32.model      = auto
fluid.driver    = default
fluid.soundfont = 

[sblaster]
sbtype                       = none
sbbase                       = 220
irq                          = 7
dma                          = 1
hdma                         = 5
enable speaker               = false
sbmixer                      = true
oplmode                      = auto
oplemu                       = default
oplrate                      = 44100
oplport                      = 
retrowave_bus                = serial
retrowave_port               = 
hardwarebase                 = 220
goldplay                     = true
blaster environment variable = true

[gus]
gus               = false
gusrate           = 44100
gusmemsize        = -1
gus master volume = 0.00
gusbase           = 240
gusirq            = 5
gusdma            = 3
gustype           = classic
ultradir          = C:\ULTRASND

[innova]
innova     = false
samplerate = 22050
sidbase    = 280
quality    = 0

[speaker]
pcspeaker    = true
pcrate       = 44100
tandy        = auto
tandyrate    = 44100
disney       = false
ps1audio     = off
ps1audiorate = 22050

[joystick]
joysticktype = none
timed        = true
autofire     = false
swap34       = false
buttonwrap   = false

[mapper]
joy1deadzone0- = 0.60
joy1deadzone0+ = 0.60
joy1deadzone1- = 0.60
joy1deadzone1+ = 0.60
joy1deadzone2- = 0.60
joy1deadzone2+ = 0.60
joy1deadzone3- = 0.60
joy1deadzone3+ = 0.60
joy1deadzone4- = 0.60
joy1deadzone4+ = 0.60
joy1deadzone5- = 0.60
joy1deadzone5+ = 0.60
joy1deadzone6- = 0.60
joy1deadzone6+ = 0.60
joy1deadzone7- = 0.60
joy1deadzone7+ = 0.60
joy2deadzone0- = 0.60
joy2deadzone0+ = 0.60
joy2deadzone1- = 0.60
joy2deadzone1+ = 0.60
joy2deadzone2- = 0.60
joy2deadzone2+ = 0.60
joy2deadzone3- = 0.60
joy2deadzone3+ = 0.60
joy2deadzone4- = 0.60
joy2deadzone4+ = 0.60
joy2deadzone5- = 0.60
joy2deadzone5+ = 0.60
joy2deadzone6- = 0.60
joy2deadzone6+ = 0.60
joy2deadzone7- = 0.60
joy2deadzone7+ = 0.60

[serial]
serial1       = dummy
serial2       = dummy
serial3       = disabled
serial4       = disabled
serial5       = disabled
serial6       = disabled
serial7       = disabled
serial8       = disabled
serial9       = disabled
phonebookfile = phonebook-dosbox-x.txt

[parallel]
parallel1 = printer
parallel2 = disabled
parallel3 = disabled
parallel4 = disabled
parallel5 = disabled
parallel6 = disabled
parallel7 = disabled
parallel8 = disabled
parallel9 = disabled
dongle    = false

[printer]
printer     = false
dpi         = 360
width       = 85
height      = 110
printoutput = printer
multipage   = false
device      = -
docpath     = .
fontpath    = FONTS
openwith    = 
openerror   = 
printdbcs   = auto
shellhide   = false
timeout     = 0

[dos]
xms                             = true
xms handles                     = 0
shell configuration as commands = false
hma                             = true
hard drive data rate limit      = 0
floppy drive data rate limit    = 0
ansi.sys                        = true
log console                     = false
share                           = true
file access tries               = 3
network redirector              = true
minimum mcb free                = 0
ems                             = true
umb                             = true
quick reboot                    = false
ver                             = 7.1
lfn                             = auto
fat32setversion                 = ask
shellhigh                       = auto
automount                       = true
automountall                    = false
mountwarning                    = true
autofixwarning                  = false
startcmd                        = false
starttranspath                  = true
startwait                       = true
startquiet                      = false
vmware                          = true
int33                           = true
keyboardlayout                  = auto
customcodepage                  = 
dbcs                            = true
dos clipboard device enable     = false
dos clipboard device name       = CLIP$
dos clipboard api               = true

[ipx]
ipx = false

[ne2000]
ne2000  = false
nicbase = 300
nicirq  = 3
macaddr = AC:DE:48:88:99:AA
backend = auto

[ethernet, pcap]
realnic = list
timeout = default

[ethernet, slirp]
ipv4_network    = 10.0.2.0
ipv4_netmask    = 255.255.255.0
ipv4_host       = 10.0.2.2
ipv4_nameserver = 10.0.2.3
ipv4_dhcp_start = 10.0.2.15

[ide, primary]
enable = true
pnp    = true

[ide, secondary]
enable                 = true
pnp                    = true
cd-rom insertion delay = 4000

[ide, tertiary]
enable = false
pnp    = true

[ide, quaternary]
enable = false
pnp    = true

[ide, quinternary]
enable = false
pnp    = true

[ide, sexternary]
enable = false
pnp    = true

[ide, septernary]
enable = false
pnp    = true

[ide, octernary]
enable = false
pnp    = true

[fdc, primary]
enable = true
pnp    = true
mode   = ps2

[4dos]
rem = This section is the 4DOS.INI file, if you use 4DOS as the command shell

[config]
rem         = This section is DOS's CONFIG.SYS file, not all CONFIG.SYS options supported
break       = off
numlock     = 
shell       = 
dos         = high, umb
fcbs        = 100
files       = 200
country     = 
lastdrive   = a
set path    = Z:\;Z:\SYSTEM;Z:\BIN;Z:\DOS;Z:\4DOS;Z:\DEBUG;Z:\TEXTUTIL
set prompt  = $P$G
set temp    = 
install     = 
installhigh = 
device      = 
devicehigh  = 

[autoexec]

Output log

No response

Additional information

Have you checked that no similar bug report(s) exist?

Code of Conduct & Contributing Guidelines

jackson2k2 commented 1 year ago

Happens regardless of context, I think we might be having some sort of threading issue.

jackson2k2 commented 1 year ago

This appears to happen on just SDL1 builds.

jackson2k2 commented 1 year ago

Swapping floppy Happens in early setup stage, too. Once again, SDL1 might not be handling multitasking properly.