joncampbell123 / dosbox-x

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

[0.83.16] Immediate crash when running “Future Crew - 2nd Reality” #2730

Open Drag0nFly opened 3 years ago

Drag0nFly commented 3 years ago

When starting the above demo, it immediately crashes dosbox-x after doing the soundcard selection. Other demos launch with the same DosBox config.

Logging: opened logfile '/opt/retropie/emulators/dosbox/dosbox-x.log' successfully. All further logging will go to this file.
DOSBox-X version 0.83.16 (Linux SDL2)
Host keyboard layout is now us (US English)
Mapper keyboard layout is now us (US English)
SDL2 reports desktop display mode 1920 x 1080
Configured windowposition:
SDL:Current window pixel format: SDL_PIXELFORMAT_ARGB8888
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
INFO: switched to full screen mode
ISA BCLK: 8333333.333Hz (25000000/3)
monopal: green,
Active save slot: 1 [Empty]
USING AVI+ZMBV
Max 1048576 sz 16384
Final 16384
SDLNet_TCP_Open: Couldn't connect to remote host
TiMidity: can't open control connection (host=127.0.0.1, port=7777)
MIDI:fluidsynth: Loaded SoundFont: /usr/share/sounds/sf2/FluidR3_GM.sf2
MIDI:Opened device:fluidsynth
Pentium CMPXCHG8B emulation is enabled
One joystick reported, initializing with 4axis
Using joystick Goodbetterbest Ltd Gioteck VX2 2.4G Wireless Controller with 4 axes, 13 buttons and 1 hat(s)
VOODOO LFB now at d0000000
Serial1: BASE 3f8h
Serial2: BASE 2f8h
Parallel1: BASE 378h
MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
Allocated APM BIOS pm entry point at f000:e88c
Writing code to fe88c
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
ISA Plug & Play BIOS enabled
VGA ROM BIOS init callback
pixratio 1.000, dw false, dh false
Aspect ratio: 640 x 480  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
    469966 ERROR BIOS:Keyboard layout file auto not found
    469966 ERROR BIOS:Keyboard layout file auto not found
XMS: 50 handles allocated for use by the DOS environment
COMMAND.COM env size:             720 bytes
COMMAND.COM environment block:    0x0701 sz=0x002d
COMMAND.COM main body (PSP):      0x072f sz=0x009a
COMMAND.COM stack:                0x0749
pixratio 1.350, dw false, dh false
Aspect ratio: 720 x 540  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
    475831 ERROR BIOS:Disk 2 not active
    506366 ERROR BIOS:Disk 2 not active
INFO: switched to window mode
Aspect ratio: 720 x 540  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
--END OF LOG--
joncampbell123 commented 3 years ago

Not seeing it here (64-bit Linux/X11). This is on a ARM-based Raspberry Pi with OpenGL?

joncampbell123 commented 3 years ago

Also no such crash on ARM-based Macbooks, even with SDL2.

Drag0nFly commented 3 years ago

It is on rpi4, with the dosbox binary compiled against SDL2. Same config does not crash with other DosBox variants (e.g, Dosbox-staging).

Drag0nFly commented 3 years ago

Perhaps there is a config option DosBox-X does not like. Since the log offers scarce details I am including the config for the demo here–

[sdl]
fullscreen       = true
display          = 0
#fullresolution   = 1920x1080
fullresolution   = desktop
#windowresolution = 1280x960
windowresolution = original
#output           = texturenb
#output           = texturepp
output           = opengl
texture_renderer = opengles2

[dosbox]
#machine  = vesa_nolfb
machine  = svga_s3
memsize  = 16

[render]
aspect    = true
scaler    = none
glshader  = none

[cpu]
core = dynamic
#cycles = fixed 28000
#cycles = 55000
#cycles    = fixed 200000

[dos]
xms            = true
ems            = false
umb            = false

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

mount c "/home/pi/RetroPie/roms/pc/_Demos/2nd_Reality-FutureCrew"
c:
SECOND.EXE
EXIT
Wengier commented 3 years ago

@Drag0nFly There is a delicate page for this demo (a.k.a. "Unreal" by Future Crew) in the DOSBox-X Wiki, please try to use the configuration mentioned there:

https://dosbox-x.com/wiki/Software%3Ademoscene%3AUnreal-by-Future-Crew-(1992)

See also the following Wiki page for a library of demos and the recommended configurations for them in DOSBox-X:

https://dosbox-x.com/wiki/Guide%3ADOS-demoscene-software-in-DOSBox%E2%80%90X

BridgeHeadland commented 3 years ago

Where do I fine 0.83.16?

Wengier commented 3 years ago

@BridgeHeadland It should be ready in a few days.

Drag0nFly commented 3 years ago

Tried the suggested .conf file. The demo runs, however extremely badly (the worst performance so far); audio stutters all over the place, with low fps even running in a tiny screen size. Definitely not meant for a Raspberry pi.

The image is also relegated to the bottom left-hand corner of the screen (covering about 1/8th of a 1080p screen). Switching to, e.g, dosbox-staging (and dosbox-sdl2) with the exact same .conf file, the screen is full-size so there must be some default setting somewhere. Performance-wise -staging and -x behave quite similar. However, -*sdl2 runs better but has some graphical glitches.

Dosbox-X still crashes with the .conf file I provided earlier (which runs on all other DosBox flavors I've tested, the smoothest so far – although being far from smooth it is playable on rpi4)

The only info in the log when this occurs (right after selecting the soundcard & launching the demo is):

INFO: switched to window mode
Aspect ratio: 720 x 540  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
--END OF LOG--

Including an excerpt of the dosbox-x.log below

EDIT: I was able to get a larger res (1/4th of the screen) by setting fullscreen and fulldouble to ="true" in /home/pi/.config/dosbox-x/dosbox-x-0.83.16.conf. Performance-wise it runs the same.

tail -f /opt/retropie/emulators/dosbox/dosbox-x.log
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
DOSBox-X has switched to max cycles, because of the setting: cycles=auto.
If the game runs too fast, try a fixed cycles amount in DOSBox-X's options.
pixratio 1.200, dw true, dh false
Aspect ratio: 640 x 480  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)

tail: /opt/retropie/emulators/dosbox/dosbox-x.log: file truncated
Logging: opened logfile '/opt/retropie/emulators/dosbox/dosbox-x.log' successfully. All further logging will go to this file.
DOSBox-X version 0.83.16 (Linux SDL2)
Host keyboard layout is now us (US English)
Mapper keyboard layout is now us (US English)
SDL2 reports desktop display mode 1920 x 1080
The default output for the video system: opengl
Configured windowposition:
SDL:Current window pixel format: SDL_PIXELFORMAT_ARGB8888
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
WARNING: DOS/V is only supported for SVGA_TsengET4K and SVGA_S3Trio video cards.
ISA BCLK: 8333333.333Hz (25000000/3)
monopal: green,
Active save slot: 1 [Empty]
USING AVI+ZMBV
Max 1048576 sz 2048
Final 2048
SDLNet_TCP_Open: Couldn't connect to remote host
TiMidity: can't open control connection (host=127.0.0.1, port=7777)
MIDI:fluidsynth: Loaded SoundFont: /usr/share/sounds/sf2/FluidR3_GM.sf2
MIDI:Opened device:fluidsynth
One joystick reported, initializing with 4axis
Using joystick Goodbetterbest Ltd Gioteck VX2 2.4G Wireless Controller with 4 axes, 13 buttons and 1 hat(s)
VOODOO LFB now at d0000000
Serial1: BASE 3f8h
Serial2: BASE 2f8h
Parallel1: BASE 378h
MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
Allocated APM BIOS pm entry point at f000:e88c
Writing code to fe88c
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
ISA Plug & Play BIOS enabled
VGA ROM BIOS init callback
pixratio 1.000, dw false, dh false
Aspect ratio: 640 x 480  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
   4553444 ERROR BIOS:Keyboard layout file auto not found
   4553444 ERROR BIOS:Keyboard layout file auto not found
XMS: 50 handles allocated for use by the DOS environment
EMS page frame at 0xe000-0xefff
COMMAND.COM env size:             720 bytes
COMMAND.COM environment block:    0x0701 sz=0x002d
COMMAND.COM main body (PSP):      0x072f sz=0x009a
COMMAND.COM stack:                0x0749
pixratio 1.350, dw false, dh false
Aspect ratio: 720 x 540  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
   4889670 ERROR BIOS:Disk 2 not active
   7756350 ERROR BIOS:Disk 2 not active
pixratio 1.200, dw true, dh false
Aspect ratio: 640 x 480  xToY=1.333 yToX=0.750
menuScale=1
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
font texture id=2 will make 128 x 256
Screen report: Method 'None' (-1.000 x -1.000 pixels) at (0.000 x 0.000) (-1.000 x -1.000 mm) (-0.039 x -0.039 in) (-1.000 x -1.000 DPI)
Wengier commented 3 years ago

Tried with demo 1.1 downloaded from here. With the following change to your original config file the demo runs fine here:

[gus]
gus=true

As for the config file shown in the Wiki page, you can get better performance by changing:

core=normal

to:

core=dynamic

With this change the audio no longer stutters here. But please note that config files as provided focus more on accuracy rather than performance. If you want better performance try to change the config settings or try a different DOSBox build.

m12cpl commented 2 years ago

On my machine (DOSBox-X 0.83.18) it crashes at the start of vector balls... It runs on DosBox 0.74 though. "Because of a bug, this part will crash if the demo is installed in a directory with the complete path length exceeding 30 characters." That's not the case, I have got it in c:\second. The only issue with the DosBox 0.74 is the Plasma Effect does not look so good. dosbox-x.conf.zip

joncampbell123 commented 2 years ago

I run it from C:\ which seems to work. Can you try that?

The plasma effect requires some per-scanline manipulation of the Offset register to make it warp. SVN by default will only render the screen in quarters instead of per scanline, which doesn't work well with that, however SVN has per-scanline rendering (like DOSBox-X always does) if you specify machine=vgaonly.

Of course playing music AND doing this plasma effect is not 100% perfect, interrupts seem to cause an occasional (maybe once every 1-2 seconds) one-frame glitch.

m12cpl commented 2 years ago

I run it from C:\ which seems to work. Can you try that?

Yes, I do that. That's not the case.

if you specify machine=vgaonly.

Can I do that in DosBox 0.74? The demo works fine here, except the plasma effect looks worse than in DosBox-x.

joncampbell123 commented 2 years ago

I'm not sure about that, DOSBox 0.74 was a loooong time ago. I think that code might have been added by then, not sure.

DOSBox 0.74 and SVN render the VGA display one quarter of the screen at a time, not per scanline. However machine=vgaonly will render per scanline if I recall correctly.

DOSBox-X was modified to always render per scanline regardless of VGA/SVGA machine type. There are a few things in the demoscene that require the ET4000 emulation AND per-scanline rendering.

m12cpl commented 2 years ago

Nope. If I change to "vgaonly" it's even worse. :-) (dosbox 07.4).