VOGONS


First post, by WonderSlug

User metadata
Rank Newbie
Rank
Newbie

Hello. I've been using DOSBox for a while now and have just encountered a problem with an app that I can't seem to resolve.

One of my main uses for DOSBox has been to run the DemoScene demos that came out from 1990 to 1998 and were almost exclusively DOS based.

One of the best was Future Crew's Second Reality demo which won the Assembly 1993 competition.

I have been able to get this program running great in DOSBox 0.65, but under DOSBox 0.7x, one of the demo's sequences partially crashes.

The sequence I'm talking about is the one that has hundreds of vector balls spinning around in a cyclonic fashion. It is after the spinning plasma cube, and before the animated sword that comes out of the water.

Under DOSBox 0.7x, as soon as the sequence begins an error message is displayed by the Second Reality program inside the DOSBOX window. Something about "Integer divide by zero". This message only displays for about a second and then the entire DOSBOX window goes blank. However, the program is still running, as the music is playing, and after the sequence "ends" and the next sequence begins, everything is back to normal. All the parts of the demo before this sequence work properly as well. It's just this portion that doesn't work.

I've tried editing the dosbox.conf file and changing cores around from normal, simple, dynamic, and auto and the same problem happened.

I also tried changing the memory from 16, 32, to 64 MB and still the problem.

Changing output to ddraw, opengl, surface, or overlay didn't help either.

Changing the scaling from none, normal2x, normal3x, hq2x, etc. didn't resolve the issue.

I even tried copying the dosbox.conf file that was in the working DOSBOX 0.65 folder into the DOSBOX 0.7x folder (tried both 0.70 and 0.72) and the problem still existed.

So, that leads me to believe that maybe something DOSBOX 0.7x does differently video-wise (VGA?) than 0.65 is causing this issue.

Other than this one sequence in the Second Reality demo partially crashing under DOSBox 0.7x, it works fine using the GUS and cycles set to 8000 on my Athlon XP 1800+ running Windows XP.

You can download the file from Scene.ORG at the following link, and maybe someone can get it running under DOSBox 0.7x

http://www.scene.org/dir.php?dir=%2Fparties%2 … embly93%2Fdemo/

I'm using the 2nd_real.zip and the 2ndpatch.zip files

Reply 1 of 33, by Freddo

User metadata
Rank Oldbie
Rank
Oldbie
WonderSlug wrote:

Other than this one sequence in the Second Reality demo partially crashing under DOSBox 0.7x, it works fine using the GUS and cycles set to 8000 on my Athlon XP 1800+ running Windows XP.

Then use GUS and not lots of cycles?

I watched Second Reality on my AMD 3500+ in DOSBox 0.7x just fine a couple of weeks ago.

Reply 3 of 33, by Xelasarg

User metadata
Rank Member
Rank
Member

I've just tested it with the standard conf file, core=dynamic and cycles=14000, sbtype=sb16, GUS=false (using SB Pro in 2ndreal). Works just fine.
I remember that crash happening some time ago, but that was with an older version of DOSBox. I wasn't able to solve the problem back then either.
Have you tried disabling GUS?

"What's a paladin?!"

Reply 4 of 33, by WonderSlug

User metadata
Rank Newbie
Rank
Newbie

Yeah, I'm still getting the problem.

Although now, by disabling the GUS emulation and making a few other changes, that "runtime error R600 -integer divide by 0" error message doesn't appear for a split second.

I now get some garbage characters in the upper left of the DOSBOX window before it goes blank.

Here's the DOSBOXNOGUS.CONF file I'm using

# This is the configurationfile for DOSBox 0.72.
# Lines starting with a # are commentlines.
# They are used to (briefly) document the effect of each option.

[sdl]
# fullscreen -- Start dosbox directly in fullscreen.
# fulldouble -- Use double buffering in fullscreen.
# fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
# windowresolution -- Scale the window to this size IF the output device supports hardware scaling.
# output -- What to use for output: surface,overlay,opengl,openglnb,ddraw.
# autolock -- Mouse will automatically lock, if you click on the screen.
# sensitiviy -- Mouse sensitivity.
# waitonerror -- Wait before closing the console if dosbox has an error.
# priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest,pause (when not focussed).
# Second entry behind the comma is for when dosbox is not focused/minimized.
# mapperfile -- File used to load/save the key/event mappings from.
# usescancodes -- Avoid usage of symkeys, might not work on all operating systems.

fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=original
output=surface
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper.txt
usescancodes=true

[dosbox]
# language -- Select another language file.
# memsize -- Amount of memory DOSBox has in megabytes.
# machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga.
# captures -- Directory where things like wave,midi,screenshot get captured.

language=
machine=vga
captures=capture
memsize=16

[render]
# frameskip -- How many frames DOSBox skips before drawing one.
# aspect -- Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler -- Scaler used to enlarge/enhance low resolution modes.
# Supported are none,normal2x,normal3x,advmame2x,advmame3x,hq2x,hq3x,
# 2xsai,super2xsai,supereagle,advinterp2x,advinterp3x,
# tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x.
# If forced is appended (like scaler=hq2x forced), the scaler will be used
# even if the result might not be desired.

frameskip=0
aspect=false
scaler=normal3x

[cpu]
# core -- CPU Core used in emulation: normal,simple,dynamic,auto.
# auto switches from normal to dynamic if appropriate.
# cycles -- Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# You can also let DOSBox guess the correct value by setting it to max.
# The default setting (auto) switches to max if appropriate.
# cycleup -- Amount of cycles to increase/decrease with keycombo.
# cycledown Setting it lower than 100 will be a percentage.

core=dynamic
cycles=auto 14000 80% limit 56000
cycleup=1000
cycledown=1000

[mixer]
# nosound -- Enable silent mode, sound is still emulated though.
# rate -- Mixer sample rate, setting any devices higher than this will
# probably lower their sound quality.
# blocksize -- Mixer block size, larger blocks might help sound stuttering
# but sound will also be more lagged.
# prebuffer -- How many milliseconds of data to keep on top of the blocksize.

nosound=false
rate=22050
blocksize=2048
prebuffer=10

[midi]
# mpu401 -- Type of MPU-401 to emulate: none, uart or intelligent.
# device -- Device that will receive the MIDI data from MPU-401.
# This can be default,alsa,oss,win32,coreaudio,none.
# config -- Special configuration options for the device. In Windows put
# the id of the device you want to use. See README for details.

mpu401=intelligent
device=default
config=

[sblaster]
# sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
# sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster.
# mixer -- Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
# On auto the mode is determined by sblaster type.
# All OPL modes are 'Adlib', except for CMS.
# oplrate -- Sample rate of OPL music emulation.

sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
mixer=true
oplmode=auto
oplrate=22050

[gus]
# gus -- Enable the Gravis Ultrasound emulation.
# gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the
# Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
# gusrate -- Sample rate of Ultrasound emulation.
# ultradir -- Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.

gus=false
gusrate=22050
gusbase=240
irq1=5
irq2=5
dma1=3
dma2=3
ultradir=C:\ULTRASND

[speaker]
# pcspeaker -- Enable PC-Speaker emulation.
# pcrate -- Sample rate of the PC-Speaker sound generation.
# tandy -- Enable Tandy Sound System emulation (off,on,auto).
# For auto Tandysound emulation is present only if machine is set to tandy.
# tandyrate -- Sample rate of the Tandy 3-Voice generation.
# disney -- Enable Disney Sound Source emulation. Covox Voice Master and Speech Thing compatible.

pcspeaker=true
pcrate=22050
tandy=auto
tandyrate=22050
disney=true

[joystick]
# joysticktype -- Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks,
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# timed -- enable timed intervals for axis. (false is old style behaviour).
# autofire -- continuously fires as long as you keep the button pressed.
# swap34 -- swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap -- enable button wrapping at the number of emulated buttons.

joysticktype=auto
timed=true
autofire=false
swap34=false
buttonwrap=true

[serial]
# serial1-4 -- set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq.
# for directserial: realport (required), rxdelay (optional).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000

serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled

[dos]
# xms -- Enable XMS support.
# ems -- Enable EMS support.
# umb -- Enable UMB support.
# keyboardlayout -- Language code of the keyboard layout (or none).

xms=true
ems=true
umb=true
keyboardlayout=none

[ipx]
# ipx -- Enable ipx over UDP/IP emulation.

ipx=false

[autoexec]
# Lines in this section will be run at startup.
mount c c:\dosbox -freesize 1024
mount d e:\ -t cdrom -usecd 0 -ioctl
c:

Reply 5 of 33, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

what is the path to the demo
it will crash if it too short. i think that is a bug of the demo itself
c:\real should work i think

Water flows down the stream
How to ask questions the smart way!

Reply 12 of 33, by bugs_bugger

User metadata
Rank Member
Rank
Member

@QBix: The demo actually crashes if the part is too _long_. I can reproduce the error by having a path of "D:\demos\dos\2nd_real\second.exe" but with a path of "F:\dos\2nd_real\second.exe" it works fine.

Reply 13 of 33, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

There are several ways to crash that balls part, like not putting it into a
subdirectory, directory too short (and directory recursion maybe as well).
c:\second\ or c:\real\ worked for me.

Reply 14 of 33, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Works fine here too. Attaching the files I use to run it.

Edit: Hang on - looks like I better let the demo run its full course before I claim victory.

Edit2: Ran perfectly (no subdirectory - directly from C:\)

Attachments

  • Filename
    Second Reality.zip
    File size
    1.38 KiB
    Downloads
    359 downloads
    File license
    Fair use/fair dealing exception

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 16 of 33, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Error trap? I dunno know what is meant by that. What I do know is that DOSBox crashes and burns, asking me send diagnostics to Microsoft, if I try to run the demo from a long subdirectory path like C:\Demos\DOS\2nd_Real instead of just C:\.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 18 of 33, by dh4rm4

User metadata
Rank Oldbie
Rank
Oldbie
WonderSlug wrote:

Under DOSBox 0.7x, as soon as the sequence begins an error message is displayed by the Second Reality program inside the DOSBOX window. Something about "Integer divide by zero". This message only displays for about a second and then the entire DOSBOX window goes blank. However, the program is still running, as the music is playing, and after the sequence "ends" and the next sequence begins, everything is back to normal. All the parts of the demo before this sequence work properly as well. It's just this portion that doesn't work.

This.

Reply 19 of 33, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Well, I don't get that kind of error. I don't know if a text or anything shown in DOSBox, because all the DOSBox windows closes, program exits, no sound is played, etc, etc, and instead I get the Microsoft diagnostic upload dialog when I run it from a long-winded subdirectory like C:\Demos\DOS\2nd_Real.

And h-a-l, that is not nitpicking. I am trying to be precise about an error that occors in DOSBox, an error that causes DOSBox - not the application - to die.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32