VOGONS


Magic Carpet crashing (CVS)

Topic actions

First post, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

I hope this is the correct forum for this post...

I tried getting MC to run with DOSBox. Official 0.65 has problems with the game control. The cursor keys seem to "hang", making controlling the carpet (and thus, playing the game) impossible.

With the latest two CVS builds from Daum Cafe, MC runs very good, and the speed is awesome with dynamic core. But i get random crashes. The effect is more or less the same everytime: DOSBox status window shows "Illegal Opcode" (haven't written down the exact msg, i'll do it if it's important), and the game hangs, while music and sfx will continue to play most of the time. DOSBox can still be exited with CTRL-F9. I've tried both MC (Floppy) and MC Plus (CD), both with original DOS4GW and DOS32A (latest version). With DOS32A, the crashes seem to happen more often. Drastically reducing cpu cycles seems to extend the time before a crash, but the game will get unplayable. Btw, i'm using SB16 (default settings) and GM for sound.

What else... This is the only game giving me this kind of problem. I'm playing alot of demanding games (Blood, Dungeon Keeper, MC1/2, Tomb Raider Software/3DFX), and they seem to run ok.

Please tell me if you need more information. I can supply a savegame that crashes after 10-15 mins of playtime.

Reply 1 of 91, by kruwi

User metadata
Rank Member
Rank
Member

Could you please try out a clean cvs build? This is important to find out if the problem is related to offcial cvs or only to ykwongs build which contains many experimental extra patches.

Visit the end of the internet: www.groskreutz.de

Reply 2 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

Which CVS is "clean" for testing? AEP's?

Reply 3 of 91, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Yep.
How random are the crashes? Something reproducable?

Reply 4 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

Currently testing, give me some time... 😎

Reply 5 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

Just a quick result: with the latest AEP CVS and DOS32A, i got an immediate crash (about 2 minutes playtime). DOSBox just closed itself, i got no chance seeing the status window. With the original DOS4GW, i was able to play through the level. Next thing i'll try is the combination ykwongs/DOS4GW.

It might be interesting that i got serious problems while DOSBox priority was set to "high" in dosbox.conf. With a high number of cycles (45.000, the maximum on my machine should be around 60.000), keys would "hang", and the game would be unplayable. That went away after setting "priority=normal,normal".

Reply 6 of 91, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

ADDiCT - if you start DOSBox with the -noconsole option, it will write the status/error message to a stdout.txt file.

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 7 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

Aahhh, didn't know that, thanks for the hint! It looks like the prob is with ykwongs build, though. If this is the case, does it make sense to report the error here?

Reply 8 of 91, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Did you encounter the crash with the clean cvs build more than once?
Does it look the same?

Reply 9 of 91, by dragonmaster

User metadata
Rank Newbie
Rank
Newbie

I also have experienced random crashes with the dynamic core in Bleifuss aka screamer and Magic carpet 2, both with highres vesa, the crashes happend randomly but regulary, the higher the cycles the more often, DOS32A and dos4gw crashes both, bot dos32a seems to crash more often.

The report of the crashing with screamer is displayed in the dosbox status window, but is different everytime.

Reply 10 of 91, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

MC2 crashed on my DX4100 back in the day too....never was that stable of a game. If this is different behavior from earlier builds of DosBox or a bug in DosBox then fine and hopefully it is....but if not there's not much that can be done.

How To Ask Questions The Smart Way
Make your games work offline

Reply 11 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

I'm still testing, isolating random effects like this takes a lot of time. Dosfreak: My "problem game" is MC1, not MC2. I remember playing it on my old DOS machine, and it was working very well (no crashes, as far as i can remember).

Currently, it seems that ykwongs latest build is crashing very often with MC. In the logfile, this will look like:
Illegal read from 37df632, CS:IP 160: 182133
(repeat this about 500 times (!), with various numbers)
Dynamic unhandled opcode hlt F4

This can be reproduced quickly, only some minutes playtime required to crash DOSBox. I've made the same experience dragonmaster did: DOS32A will crash more often that DOS4GW.

THE AEP build behaves a lot better, but has crashed several times. But, alas, no logfile until now - for the recent crashes, i forgot enabling the logfile 🙄 . Still on it.

Reply 12 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

OK, here are some logfiles. The game is "Magic Carpet Plus", installed from original CD. I'm playing in lores mode, using the original DOS4GW extender.

I was using AEP CVS 11.02.2007 (that's 11-Feb) for testing.

I'm starting the game with the following parameters:
config -set "cpu cycles=45000"
config -set "cpu core=dynamic"
config -set "dos ems=false"
config -set "dos xms=false"
config -set "dos umb=false"

I get crashes all over the place. Anywhere from 2 to about 25 minutes into gameplay. Is there anything else i can check out? I already tried decreasing memory size.

BTW: before trying out DOSBox, i was playing MC in QEmu. About 10 maps, without one single crash. I was playing in hires, because the game ran much too fast in lores mode.

dosbox.conf used for testing:

[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.
# 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=normal,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,advinterp2x,advinterp3x,tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x.

frameskip=0
aspect=true
scaler=normal2x

[cpu]
# core -- CPU Core used in emulation: simple,normal,full,dynamic.
# cycles -- Amount of instructions dosbox tries to emulate each millisecond.
# Setting this higher than your machine can handle is bad!
# You can also let DOSBox guess the correct value by setting it to auto.
# Please note that this guessing feature is still experimental.
# cycleup -- Amount of cycles to increase/decrease with keycombo.
# cycledown Setting it lower than 100 will be a percentage.

core=normal
cycles=3000
cycleup=500
cycledown=20

[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=32

[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=true
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.

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

[bios]
# joysticktype -- Type of joystick to emulate: none, 2axis, 4axis,
# fcs (Thrustmaster) ,ch (CH Flightstick).
# none disables joystick emulation.
# 2axis is the default and supports two joysticks.

joysticktype=2axis

[serial]
# serial1-4 -- set type of device connected to com port.
# Can be disabled, dummy, modem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameters for all types are irq, startbps, bytesize,
# stopbits, parity (all optional).
# for directserial: realport (required).
# for modem: listenport (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 (false,true,max).

xms=true
ems=true
umb=true

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

ipx=false

[autoexec]
# Lines in this section will be run at startup.
@echo off
mount c: "..\..\_roms\PC\Virtual_C"
mount d: "..\..\_roms\PC\Virtual_D"
path=%path%;C:\TOOLS\MENU;C:\TOOLS\DOS32A\BINW;C:\TOOLS\DCC;C:\TOOLS\MOO;
set dos32a=C:\TOOLS\DOS32A
set temp=C:\TEMP
set tmp=C:\TEMP
mount e "..\..\_roms\PC\CDRips\_install" -t cdrom
keyb.com gr
c:
rem cd tools\moo
rem call moo.bat
rem cd \
rem exit
call c:\tools\menu\dosbox.bat

Reply 13 of 91, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I'll see if i can reproduce it, thanks for the report.

Reply 14 of 91, by dragonmaster

User metadata
Rank Newbie
Rank
Newbie

This bug seems only to happen in vesamode 640*480 but not in 320*240

Reply 15 of 91, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie
ADDiCT wrote:

OK, here are some logfiles. The game is "Magic Carpet Plus", installed from original CD. I'm playing in lores mode, using the original DOS4GW extender.

Reply 16 of 91, by dragonmaster

User metadata
Rank Newbie
Rank
Newbie

screamer 1 stdout.txt:

Exit to error: DynCore: illegal option in opcode 0xff

Reply 17 of 91, by dragonmaster

User metadata
Rank Newbie
Rank
Newbie

screamer 1: 2nd error message

Exit to error: IRET:Illegal descriptor type 0

Reply 18 of 91, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Yes thanks, though the exact error message doesn't really matter
in this case. Think the mc1 crash is the same as with stonekeep,
but hard to tell as it rarely occurs for me.
Does it happen a lot more frequently for screamer1?

Reply 19 of 91, by dragonmaster

User metadata
Rank Newbie
Rank
Newbie

imo yes it crashes nearlly in every race, with dos4gw and dos32 its the same, in Magic carpet 2 it crashes more rearlly.