VOGONS


First post, by thiima

User metadata
Rank Newbie
Rank
Newbie

Hello

I'm trying to play Constructor online with a friend, the game itself and the network settings seem fine but after about 15 minutes playing a game, it seems to stop updating each others movements (the computer players continue playing as normal) however if either of us pauses the game it will still pause the other player so we are still connected to each other.

We're both running DosBox version 0.70 and are connected to each other through VPN and both running similar specced machines using Windows XP. We have played other network games like 'Z' without problems however my friends sound does stutter a little bit on constructor but we played without sound and the game still desync'ed in the same way.

We are also connected to a Teamspeak server and are both almost constantly talking to each other so I don't think its a network issue, but I will running a constant ping next time we play just to make sure.

Also, we both have a wierd problem when it comes to using the mouse; vertical movememnt is absolutely fine and normal but when you move the mouse horizontally it moves much slower and wont register slight movements but this issue isn't really major and can be sort of solved by whacking up the mouse sensitivity in Windows.

Thanks in advance,

Reply 1 of 13, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

> but we played without sound and the game still desync'ed in the same way.

Cute 😉 but your friend should decrease the cycles a bit instead. Not sure if it helps though...

1+1=10

Reply 2 of 13, by Tabris:DarkPeace

User metadata
Rank Newbie
Rank
Newbie

You need to run at the same cycles=##### as each other to stop de-sync in many older network games.

Just set cycles=##### in the dosbox.conf files.

Make sure you both set it to the same value (and that your PCs are fast enough to emulate that value or it will get MUCH worse instead).

Consider using CORE=NORMAL / FULL instead of CORE=DYNAMIC in dosbox.conf (Dynamic may cause flux in the speed at either end, causing desync).

For reference: A upper mid range Core 2 Duo can run about CYCLES=100000 (100,000). So if you're using 1 GHz Pentium 3, or a mid-range Pentium 4 / Athlon 64 don't try going that high.

PS: Multi-core won't help DOSBox very much (maybe +5% tops).

http://users.on.net/~darkpeace

Reply 3 of 13, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

> You need to run at the same cycles=##### as each other to stop de-sync in many older network games.

No. Computers had different speed in DOS era too. But if the sound skips it means the time base (CPU speed independent) desyncs and games may respond badly (depends on how they're programmed).

1+1=10

Reply 4 of 13, by dh4rm4

User metadata
Rank Oldbie
Rank
Oldbie
Tabris:DarkPeace wrote:

PS: Multi-core won't help DOSBox very much (maybe +5% tops).

I disagree. Multicore can improve DOSBox performance greatly, just by relegating other processes to the the core that DOSBox isn't assigned to. ie DOSBox.exe affinity set to Core 0, Teamspeak and other such apps affinity set to Core 1.

How do you come by such a figure anyway?

Reply 5 of 13, by thiima

User metadata
Rank Newbie
Rank
Newbie

Thanks for the replies

We've tried both running the game at 12000 cycles but the problem still persists but we will try 'core=normal' and see if it helps.

My friends sound stutter problem has been solved but that hasn't help to prevent the game from desync'ing.

We're both running S939 Athlon 64 Processors, Im using a 3200+ and he's using a 3000+.

One other thought i've had which I will try later is using a program called Hamachi to do the VPN tunnel instead of windows as that doesn't use compression where as the Windows one is.

Reply 6 of 13, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

My friends sound stutter problem has been solved but that hasn't help to prevent the game from desync'ing.

But before (that is when the sound stuttered) it DID work fine, is that correct?
Or did it never work without desync and just the stuttering was solved?

Reply 8 of 13, by Tabris:DarkPeace

User metadata
Rank Newbie
Rank
Newbie

Make sure you're running DOSBox 0.70

Check CORE= line in dosbox.conf.

Actually, attach your dosbox.conf so others can look over it.

And get your mate to attach theirs (or get a copy of it too). 😜

http://users.on.net/~darkpeace

Reply 9 of 13, by thiima

User metadata
Rank Newbie
Rank
Newbie

Well my dosbox config is pretty much the default one and the CORE=Auto apparently. Havn't got around to playing it on hamachi yet so I'm not sure how that will go. I'm pretty sure my friends config is identicle apart from him being the server but I'll see if I can get him to post it.

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

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=auto
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=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=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

[joystick]
# joysticktype -- Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks), 4axis,
# 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.
# an 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.

ipx true
ipxnet connect 192.168.8.5
# mount a e:\z
# mount i i:\ -t cdrom
mount b e:\constructor
ipxnet status

Reply 11 of 13, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Does the game have any other network options besides IPX? Like modem or null modem?

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

Reply 12 of 13, by thiima

User metadata
Rank Newbie
Rank
Newbie

It doesn't appear to. The network games option appears as 'Network not available' unless ipx is set to true even with modem, null modem or directserial set up and there are no network options at all in game.

Reply 13 of 13, by DeliciousDemon

User metadata
Rank Newbie
Rank
Newbie

I know I'm bumping an old topic, but I have to say that this is not a dosbox issue. I remember playing with my friend back in the day and getting extremely frustrated because it seemed like after playing multiplayer for some time, the AI would sort of take over on the other player and let us continue playing against AI instead of eachother. I don't know if this is something that can be fixed. We didn't work it out back then.