The game runs quite well in DOSBox, except for one detail: Most of the controls will become inoperable after a period of time when using keyboard controls. The controls are CTRL/ALT (either one) for jump and space for fire. After awhile, the fire button is inoperable, and anything else other than jumping will not respond either. I tried keeping one of the two jump keys exclusive (only using ALT, or only using CTRL), but it does this with both.
I solved this in Windows by using my gamepad with the game (though the thing's button mappings to Xargon are rather odd, at least compared to what I usually use). However, DOSBox doesn't detect my joystick in Linux (and I'm guessing Linux doesn't see it either), so this doesn't work here. Any suggestions?
Note that I'm not actually sure which version of DOSBox I'm currently using (CVS or plain) at the moment on Linux (I've installed both at different times). I'm using the stable one on Windows, however.
I found the same problem with keys locking in NovaStorm;
You could try give the international keyhandler a go ..
(See developers forum on this site);
it uses a different mapping method.
It might also be a bug in the keybuffer mechanism; will look into
it a bit later.
Might be the array declaration not leaving free space;
Arrays are declared as 1 based, and indexed as 0 based;
also if we step out of the array the keyboard freezes as experienced;
try the following modification to keyboard.cpp
(line 62):
struct KeyBlock {
........struct {
-- ................KeyCode code[KEYBUFSIZE];
++................KeyCode code[KEYBUFSIZE*2];
................Bitu used;
................Bitu pos;
................KeyStates state;
................} buf;
... etc.
Note that this will drop keys that exceed the keybuffer size,
but shouldnt "ice" the keyboard in the process.
Yesterday I tried to play with this game and I found that it simply does not start in the latest CVS (0.70.2007.04.10) by Ykhwong. It does not give any error messages and it does not kill DosBox, just exits to DosBox CLI immediately.
But to my surprise it could run under 0.61 (with sound and music!). I tried many things to revive it under the new dosbox (I like its d3d output much better), including trying all the cores, speeding up/slowing down the emulated CPU, disabling/enabling ems,xms,umb, disabling the emulated sb/gus, decreasing the memory size to 4 megs (normally it's 32 megs in my config) but the did not help. I even tried it on two different PCs (an AthlonXP and a Core2 based rig) without success. OS was xp sp2 in both cases. Unfortunately I don't have 0.63, 0.65 or official 0.70 on my system to check when xargon went wrong, nor I have my dosbox.conf here with me (now I'm at my workplace) so I can not provide with more details at the moment, sorry for that 🤐
(two days later)
Here's my dosbox.conf, just in case:
1[sdl] 2# fullscreen -- Start dosbox directly in fullscreen. 3# fulldouble -- Use double buffering in fullscreen. 4# fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768). 5# windowresolution -- Scale the window to this size IF the output device supports hardware scaling. 6# output -- What to use for output: surface,overlay,opengl,openglnb,openglhq,ddraw,direct3d. 7# autolock -- Mouse will automatically lock, if you click on the screen. 8# sensitiviy -- Mouse sensitivity. 9# waitonerror -- Wait before closing the console if dosbox has an error. 10# priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest,pause (when not focussed). 11# Second entry behind the comma is for when dosbox is not focused/minimized. 12# mapperfile -- File used to load/save the key/event mappings from. 13# pixelshader (direct3d) -- Pixelshader program to use for resizing: none,point.fx,bilinear.fx,scale2x.fx,2xsai.fx, 14# 2xSaI_sRGB.fx,Cartoon.fx,GS2x.fx,GS4x.fx,GS4xColor.fx,GS4xColorFilter.fx,GS4xColorScale.fx, 15# GS4xFilter.fx,GS4xScale.fx,Matrix.fx,MCGreen.fx,MCOrange.fx,scale2x_ps14.fx,Sketch.fx. 16# usescancodes -- Avoid usage of symkeys, might not work on all operating systems. 17# overscan -- Width of overscan border. 18 19fullscreen=false 20fulldouble=false 21sdlresize=false 22fullresolution=1920x1200 23windowresolution=original 24output=direct3d 25autolock=true 26sensitivity=100 27waitonerror=true 28priority=normal,normal 29mapperfile=mapper.txt 30pixelshader=GS4xHqFilter.fx 31usescancodes=true 32overscan=0 33 34[dosbox] 35# language -- Select another language file. 36# memsize -- Amount of memory dosbox has in megabytes. 37# machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga. 38# captures -- Directory where things like wave,midi,screenshot get captured. 39 40language= 41machine=vga 42captures=capture 43memsize=32 44 45[log] 46# Message not Found! 47 48logfile= 49vga=true 50vgagfx=true 51vgamisc=true 52int10=true 53sblaster=true 54dma=true 55fpu=true 56cpu=true 57paging=true 58fcb=true 59files=true 60ioctl=true
…Show last 239 lines
61exec=true 62dosmisc=true 63pit=true 64keyboard=true 65pic=true 66mouse=true 67bios=true 68gui=true 69misc=true 70io=true 71 72[render] 73# frameskip -- How many frames dosbox skips before drawing one. 74# aspect -- Do aspect correction, if your output method doesn't support scaling this can slow things down!. 75# scaler -- Scaler used to enlarge/enhance low resolution modes. 76# Supported are none,normal2x,normal3x,advmame2x,advmame3x,hq2x,hq3x, 77# 2xsai,super2xsai,supereagle,advinterp2x,advinterp3x, 78# tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x. 79 80frameskip=0 81aspect=true 82scaler=none 83 84[vsync] 85# vsyncmode -- Synchronize vsync timing to the host display. Requires calibration within dosbox. 86# Supported are off,on,force. 87# vsyncrate -- Vsync rate used if vsync is enabled. 88 89vsyncmode=off 90vsyncrate=75.023426 91 92[cpu] 93# core -- CPU Core used in emulation: normal,full,dynamic,force_normal,auto. 94# auto switches from normal to dynamic if appropriate. 95# cycles -- Amount of instructions dosbox tries to emulate each millisecond. 96# Setting this higher than your machine can handle is bad! (unless timesynched is set) 97# You can also let DOSBox guess the correct value by setting it to max. 98# The default setting (auto) switches to max if appropriate. 99# cycleup -- Amount of cycles to increase/decrease with keycombo. 100# cycledown Setting it lower than 100 will be a percentage. 101# timesynched -- Do not emulate more cycles than possible. 102 103core=dynamic 104cycles=12000 105cycleup=10 106cycledown=10 107timesynched=false 108 109[vga] 110# svgachipset -- Select one of the following supported SVGA chipsets: 111# s3 (default), et4000, et4000new, et3000, pvga1a, or none. 112# Full chipset name (like 'Tseng ET4000') will also work 113# as long as it contains one of the strings above. 114# videoram -- Amount of video memory on emulated SVGA. Not all emulated 115# chipsets support this setting. 116 117svgachipset=s3 118videoram=2048 119 120[mixer] 121# nosound -- Enable silent mode, sound is still emulated though. 122# rate -- Mixer sample rate, setting any devices higher than this will 123# probably lower their sound quality. 124# blocksize -- Mixer block size, larger blocks might help sound stuttering 125# but sound will also be more lagged. 126# prebuffer -- How many milliseconds of data to keep on top of the blocksize. 127 128nosound=false 129rate=48000 130blocksize=2048 131prebuffer=10 132 133[printer] 134# printer -- Enable printer emulation. (turn off disney) 135# dpi -- Resolution of printer (default 360). 136# width -- Width of paper in 1/10 inch (default 85 = 8.5''). 137# height -- Height of paper in 1/10 inch (default 110 = 11.0''). 138# printoutput -- Output method for finished pages: 139# png : Creates PNG images in the DOSBOX directory 140# ps : Creates Postscript documents in the DOSBOX directory (default) 141# bmp : Creates BMP images (very huge files, not recommend) 142# printer : Send to an actual printer (Print dialog will appear) 143# multipage -- Adds all pages to one Postscript file or printer job until CTRL-F2 is pressed. 144 145printer=false 146dpi=360 147width=85 148height=110 149printoutput=ps 150multipage=false 151 152[midi] 153# mpu401 -- Type of MPU-401 to emulate: none, uart or intelligent. 154# device -- Device that will receive the MIDI data from MPU-401. 155# This can be default,alsa,oss,win32,coreaudio,mt32,none. 156# mt32rate -- Sample rate of MT32 emulation 157# config -- Special configuration options for the device. In Windows put 158# the id of the device you want to use. See README for details. 159 160mpu401=intelligent 161device=default 162mt32rate=48000 163config= 164 165[debug] 166# Debugger related options. 167 168 169[sblaster] 170# sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16. 171# sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster. 172# mixer -- Allow the soundblaster mixer to modify the dosbox mixer. 173# oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3. 174# On auto the mode is determined by sblaster type. 175# All OPL modes are 'Adlib', except for CMS. 176# oplrate -- Sample rate of OPL music emulation. 177 178sbtype=sb16 179sbbase=220 180irq=7 181dma=1 182hdma=5 183mixer=true 184oplmode=auto 185oplrate=48000 186 187[gus] 188# gus -- Enable the Gravis Ultrasound emulation. 189# gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the 190# Gravis Ultrasound. (Same IRQ's and DMA's are OK.) 191# gusrate -- Sample rate of Ultrasound emulation. 192# ultradir -- Path to Ultrasound directory. In this directory 193# there should be a MIDI directory that contains 194# the patch files for GUS playback. Patch sets used 195# with Timidity should work fine. 196 197gus=true 198gusrate=48000 199gusbase=240 200irq1=5 201irq2=5 202dma1=3 203dma2=3 204ultradir=C:\GUS2 205 206[innova] 207# innova -- Enable the Innovation SSI-2001 emulation. 208# samplerate -- Sample rate of Innovation SSI-2001 emulation. 209# sidbase -- SID base port (typically 280h). 210# quality -- Set SID emulation quality level (0 to 3). 211 212innova=false 213samplerate=22050 214sidbase=280 215quality=0 216 217[speaker] 218# pcspeaker -- Enable PC-Speaker emulation. 219# pcrate -- Sample rate of the PC-Speaker sound generation. 220# tandy -- Enable Tandy Sound System emulation (off,on,auto). 221# For auto Tandysound emulation is present only if machine is set to tandy. 222# tandyrate -- Sample rate of the Tandy 3-Voice generation. 223# disney -- Enable Disney Sound Source emulation. 224# innova -- Enable Innovation SSI-2001 emulation. 225# innovabase -- Base port for Innovation SSI-2001 emulation. 226 227pcspeaker=true 228pcrate=48000 229tandy=auto 230tandyrate=22050 231disney=false 232 233[joystick] 234# joysticktype -- Type of joystick to emulate: auto (default), none, 235# 2axis (supports two joysticks), 4axis, 236# fcs (Thrustmaster), ch (CH Flightstick). 237# none disables joystick emulation. 238# auto chooses emulation depending on real joystick(s). 239# timed -- enable timed intervals for axis. (false is old style behaviour). 240# autofire -- continuously fires as long as you keep the button pressed. 241# swap34 -- swap the 3rd and the 4th axis. can be useful for certain joysticks. 242 243joysticktype=none 244timed=true 245autofire=false 246swap34=false 247 248[serial] 249# serial1-4 -- set type of device connected to com port. 250# Can be disabled, dummy, modem, nullmodem, directserial. 251# Additional parameters must be in the same line in the form of 252# parameter:value. Parameter for all types is irq. 253# for directserial: realport (required), rxdelay (optional). 254# for modem: listenport (optional). 255# for nullmodem: server, rxdelay, txdelay, telnet, usedtr, 256# transparent, port, inhsocket (all optional). 257# Example: serial1=modem listenport:5000 258 259serial1=dummy 260serial2=dummy 261serial3=disabled 262serial4=disabled 263 264[glide] 265# glide - Enable glide emulation: true,false. 266# port - I/O port to use with host communication. 267 268glide=false 269port=300 270 271[dos] 272# xms -- Enable XMS support. 273# ems -- Enable EMS support. 274# umb -- Enable UMB support. 275# keyboardlayout -- Language code of the keyboard layout (or none). 276 277xms=true 278ems=true 279umb=true 280keyboardlayout=none 281 282[ipx] 283# ipx -- Enable ipx over UDP/IP emulation. 284 285ipx=false 286 287[autoexec] 288# Lines in this section will be run at startup. 289 290mount c: c:\ 291mount d: d:\ 292mount e: e:\ 293mount f: f:\ 294mount g: q:\sound\ 295set path=c:\vc;c:\utils;c:\packers;c:\gus2;z:\;c:\sound\players 296c: 297cd tmp\!demo 298kbfast 299mixer master 33:33
Shame on us, doomed from the start
May God have mercy on our dirty little hearts