VOGONS


First post, by geekguy

User metadata
Rank Newbie
Rank
Newbie

I have recently started using Dosbox 0.72 (My first version) to play X-Com Apocalypse. It works fairly well, however there has been 1 crash (divide by 0 error dos4gw reported), and the game hangs at midnight on my save game after you ok the status/financial screen. This game is saved at 23:11 on April 4th, so not awfully far in, and the freezes are each time at midnight.

My motherboard is an Asus motherboard. I don't know the model.
BIOS Version/Date American Megatrends Inc. 0201, 1/20/2006
Processor x86 Family 15 Model 55 Stepping 2 AuthenticAMD ~2204 Mhz
Total Physical Memory 1,024.00 MB No idea what type.
Video card:
Adapter Type ATI Radeon Graphics Processor (0x71C2), ATI Technologies Inc. compatible
Adapter Description Sapphire RADEON X1600 PRO
Adapter RAM 512.00 MB (536,870,912 bytes)
Sound card:
Name Creative Audigy Audio Processor (WDM)
Manufacturer Creative Technology, Ltd.
OS:
OS Name Microsoft Windows XP Home Edition
Version 5.1.2600 Service Pack 3 Build 2600
X-com Apocalypse, authentic CD version (No patches were ever released as far as I know). No cracks or hacks applied - full install off cd, as well as standard install. Volume in drive D is XCOM APOC V1.00 25 June 1997

Game runs well, except for the freeze at midnight, which I can't get around. Have been unable to continue past this point. Do I need to restart or something? I can provide the save file if needed.
This problem is 100% repeatable for me, and I can not avoid it.

# 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=true
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=64

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

[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=auto
cycles=30000
cycleup=500
cycledown=500

[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=4096
prebuffer=12

[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. 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 d d:\ -t cdrom -usecd 0
mount g g:\dos\ -freesize 1024
g:

I have taken the following steps to try to fix the problem:
Tried fullscreen and windowed
Installed the game fully instead of running partially off the cd.
set fulldouble=false
changed memsize=64 from 16.
changed core=auto to normal, and dynamic
changed cycles=30000 to 25000, 35000, and several other values.
added -freesize 1024 to the mounting for hard drive
added -usecd 0 to the mounting for cd. Also used some other weird thingy to install as was suggested on these forums.
Not really sure where to go from here. I am using Dosbox by itself. No vdm or dos32a, or anything.

Attachments

  • Filename
    SAVEGAME.txt
    File size
    2.05 MiB
    Downloads
    375 downloads
    File comment
    My savegame that crashes at midnight. When posting I get the error that the extension 00 is not allowed, therefore I have renamed the file from .00 to .sav
    File license
    Fair use/fair dealing exception

Reply 1 of 14, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Removed posts that had nothing to do with the op's problem.

Keep your issues in your own threads people.

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

Reply 2 of 14, by NobuoUematsu

User metadata
Rank Newbie
Rank
Newbie

This may sound dumb, but did you mount the CD-ROM drive?

I found it worked best to use Daemon Tools to emulate the ISO (CD Image) of XCom3:Apocalypse and then mount it in Dosbox.

Also, be sure to copy the SMK folder from the CD/ISO into your XComApoc directory.

Reply 3 of 14, by NobuoUematsu

User metadata
Rank Newbie
Rank
Newbie

Oh!

I also found XCom won't play nice if it doesn't think it's on the C:\Xcoma\ directory.
It doesn't actually have to be, just that DOSBOX has to tell it, that it is.

Also, it won't read the CD unless it's either drive D:, or L:. No idea why L:

Reply 4 of 14, by geekguy

User metadata
Rank Newbie
Rank
Newbie

I am mounting the cd rom as d: with
mount d d:\ -t cdrom -usecd 0
in the [autoexec] section.

I hesitate to emulate some cd image since I have the real authentic cd, and it seems to work ok, except for the freeze at midnight. If you think this is the problem, I can change it, and attempt emulation.

The game is installed to the G:\xcoma directory, but since xcom allows you to set any drive you wanted, I didn't think it would cause a problem on the g: drive. I will change it to the C drive and test it now then. . .

It still froze, so this didn't seem to be the issue. If you are emulating the cd image of xcom apocalypse, it might help if you downloaded my savegame, and tested it with your setup. If it gets past midnight, then we know it is my system or setup only, which would point to possible changes. If it doesn't work for you, then we know our differences will not lead to the fix...

Reply 5 of 14, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

@geekguy - This 'midnight' you are talking about, this is real-time midnight? As in you are playing, and when the real time goes from 23:59 (11:59 PM) to 00:00 you get a crash?

It could be due to DOSBox not handling that transition correctly, or not handling it at all. I think there has been some work done recently about DATE/TIME handling in DOSBox. The discussion(s) should be somewhere here at VOGONS.

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 6 of 14, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

See the notes for HAL 9000's "Mega Build":

DOSBox SVN Builds

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 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It locks up after midnight by the game's clock, not by the system clock, right after you exit the status report and go back to the city view. Using the debugger version of DOSBox 0.72, nothing out of the ordinary appears to be going on: the game is not executing invalid opcodes or showing typical signs of a program running amok, it is simply stuck in a fairly small loop of instructions and never reaches the exit conditions.

Using other saves I have archived in the past, and new ones I have just made, the game does not get stuck in a loop after the status/progress screen at midnight, so this may be just a case of a save position that brings out a bug in the game. Unless the save is known to not lock up the game on a real DOS system, I don't see a clear reason to think that DOSBox is responsible.

Reply 8 of 14, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

> on a real DOS system

Or maybe check it out with FreeDOS/MS-DOS running in some virtual PC?

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 9 of 14, by geekguy

User metadata
Rank Newbie
Rank
Newbie

Well, I never managed to get the game to crash on a real dos system, but I no longer have one. 🙁 I have gotten 2 different crash/freezes now, the other being some divide by 0 error, but I haven't seen that one again.

Saving this game at a different time and exiting/reloading it doesn't change anything, so there's a good chance the save itself is toast. Well, good enough for me. I will assume it's a rare freeze bug in xcom that I've simply never gotten before, and start again from the beginning.

Thank you for checking into this. It is far beyond my abilities to debug or stuff like that. @.@ I appreciate it. ^^

Reply 10 of 14, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

There should be alot of people playing this game since it was release on STEAM. You may want to check on the STEAM forums and see if anyone has had this issue.

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

Reply 13 of 14, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Not sure how useful this might be, but I forced the game out of its loop with the debugger and then saved the game right at the start of the new day. Nothing seems wrong with the game, and subsequent day changes didn't lock up on me, but it's obviously quite possible something isn't right about it.

Don't play it further in a serious way, or with much expectation... treat it like scientific research. 😉

Attachments

  • Filename
    beyond.zip
    File size
    386.05 KiB
    Downloads
    653 downloads
    File license
    Fair use/fair dealing exception