Frusciantelove on 28/5/2006 at 16:31
I just got SS1 working (for the most part) on my PC. I want to help anyone else out there by posting what works for me.
First, my specs:
Windows XP SP2
AMD Athlon 2600+ XP
ASUS A7n8X Motherboard
ATI Radeon X800 XL
SB Audigy 2 Value Sound
I got my copy of the game from Home of the UnderDogs.
My first inclination was to try DosBox, which works very well for most DOS games that I've tried. DB had serious trouble with SS1 though. It was very slow initially, so I upped the CPU cycles via CTRL-F1 (to 9-10,000). After that the game ran okay, with some stuttering. But after exiting and attempting to reload the game, I would get "Illegal Command" messages (I think that's what it was, but it might have been worded slightly differently) after typing cdshock (ENTER). So I had to reinstall the game every time I wanted to play--not very fun.
So I decided to use the method the FAQ prescribed. I found dos4gw.exe to be useless, except for providing an error message before running the game. I followed the directions other than that to a T.
Now, as most of you know, the game looks atrocious at its native resolution. But I got the "slow mouse" problem every time I increased the resolution to 640x480. Even when increasing mouse2kv's parameters to very high numbers, no change was noted.This renders the game essentially unplayable.
The solution was partially provided by the previous poster: when editing cdshock.BAT, use this line of code:
***\sshock\MOUSE2KV.EXE 640 480 8 8 cdshock.exe
This made the mouse hypersensitive in the opening menu, and also made the game crash when a new game was started. The solution, as others have noted, is to use only the keyboard in setting the game up; use the mouse only after you start the first level.
So now the game works at 640x480. I'm still having some glitches, but they're minor. In case anyone wants to assist...
1. The opening movie stutters badly.
2. The opening movie doesn't fill the whole screen-- a rectangle at the bottom is chopped off.
3. The game still runs a little slowly. This seems odd considering my specs are lightyears ahead of what the game needs.
Anyway, thanks for the great forum.
dvwjr on 29/5/2006 at 00:37
Quote Posted by Frusciantelove
2. The opening movie doesn't fill the whole screen-- a rectangle at the bottom is chopped off.
The opening introduction NEVER filled the complete screen in VESA mode 101h (640x480) - the bottom section was left blank for text display if the user configured SYSTEM SHOCK for no digital sound. Working as designed.
If you wish to watch the introduction without any stuttering, DOSBOX v0.65 with MIDI music (12) and SB16 (3) digital selections work just fine as CYB.CFG entries and DOSBOX.CONF selections. Very smooth.
The 'slow mouse' problem is a Windows NT/2K/XP NTVDM design fault. The MOUSE2KV program is an incomplete attempt to remedy the Int 33h API fault. No problem in DOSBOX 0.65 with the mouse, but playable only at 320x200 (mode 13h) with CORE=NORMAL and around 14,500 cycles with your AMD setup.
Perhaps more WinXP NTVDM fixes for SYSTEM SHOCK will appear in the future... There have already been ToxicFrog's Hi-res patch and Mok's DPMI fix.
Hope this helps,
dvwjr
Frusciantelove on 29/5/2006 at 13:19
dvwjr,
I appreciate the assistance. I'm trying to get the game working in DosBox now-- I realize that my problem before what that I didn't have the modified cdshock.exe in my \sshock folder. So DosBox couldn't find an executable at all.
Now I get this:
Our system has been shocked!! But remember to Salt the Fries
System shock can no longer run due to a fatal error.
Error code 2004
Could not find palette.
Try setting FILES=30 in config.sys.
Common problem solutions:
*Increase FILES in config.sys to 30 or more.
*Disable SmARTDRV write caching
*Use a minimal config.sys and autoexec.bat
If none of these work, call Origin Tech Support.
(512) 335-0440
Since I'm on XP, I created a fake config.sys, put FILES=30 in it, and saved it to my "C drive" (the directory I mount C to in DosBox). No effect. Same thing if I increase cycles to 14500. Any suggestions?
EDIT:
I reinstalled the game to a different folder (I used DosBox to install rather than Windows) and copied the modified cdshock.exe into ***\SSHOCK. Now the game works nicely except that it is insanely slow at 640x480 and pretty slow (though not unplayable) at 320x200. I took CPU cycles up to 19000 to no avail. Help?
dvwjr on 30/5/2006 at 01:27
Quote Posted by Frusciantelove
I reinstalled the game to a different folder (I used DosBox to install rather than Windows) and copied the modified cdshock.exe into ***\SSHOCK. Now the game works nicely except that it is insanely slow at 640x480 and pretty slow (though not unplayable) at 320x200. I took CPU cycles up to 19000 to no avail. Help?
You've done about everything which can be done on DOSBOX v0.65 - you might try setting the DOSBOX.CONF settings to CORE=DYNAMIC and try the cycles at 15,000 to 27,000. The problem with the DosBox dynamic core is that the CPU usage varies greatly due to the dynamic core not caring for self-modifying code which is heavily used in SYSTEM SHOCK. The only other thing that would help DosBox is future processors capable of say ~16GHz speed
(compared to Intel P4) vs today's ~3GHz speed. Emulating a VESA video mode 107h
(1280x1024x256color) capable video card with 25-35fps apparent throughput will take some real grunt-work for the CPU.
The best solution for SYSTEM SHOCK continues to be the NTVDM of WinXP
(SP2). The combination of DirectMusic providing the MIDI support and the built-in SoundBlaster 2.0
(mono) digital support requires no additional program support - except for the half-way helpful MOUSE2KV.EXE program. The speed and fluidity of SYSTEM SHOCK in the 320x200
(mode 13h) under the WinXP NTVDM comes from the ability to let the graphics adapter BIOS/IO ports do their real-time video work and the fact that the NTVDM is running in native v86 mode, instead of the x86 emulation of DosBox. The slowdown in higher resolution modes is due to two facts - more pixels must be pushed and the VESA graphics routines use VESA v1.2 mode 'bank switches' - which costs dearly in DPMI overhead.
The original SYSTEM SHOCK programmers made some mistakes when it came to their home-grown keyboard and mouse handlers. They rushed it out the door to make deadlines - understandable in the commercial environment - but introduced DPMI memory, stack and IRQ handler errors as a result. Notice that Mok had to make up for memory allocation errors that the DPMI environment of the day masked. The 'spinning' or 'running' bugs which will occasionally occur due to a keyboard buffer race condition. The mouse 'slowdown' is which becomes visible in SVGA video modes partially due to the incorrect values used for the mickey/pixel ratio for the various supported video modes, even under DOS. On the plus side: they did leave an engine which could support very high res/color video modes which was never implemented in 1994 - but can be unlocked and run today due to the advances in CPU speeds in the past 12 years.
No need for a 'fake' CONFIG.SYS, the one default one used by the NTVDM is called CONFIG.NT typically located in the %SystemRoot%\system32\ sub-directory along with the default AUTOEXEC.NT file.
The latest versions of the Miles Audio AIL3 drivers for the SoundBlaster series of audio adapters will read the DOS environment variable "BLASTER=" string for any settings, so no need to modify the CYB.CFG (-1) IO port values for any SoundBlaster selections, just select the SoundBlaster 'digi_card' types listed below.
Use just the 'native' SoundBlaster 2.0 support of the WinXP (SP2) NTVDM
Code:
CONFIG.NT
**********
FILES=36
Device=%SystemRoot%\system32\Himem.sys
Dos=High,UMB
EMM=RAM
AUTOEXEC.NT
**********
DOSX.EXE
SET BLASTER=A220 I5 D1 P330 T3
CYB.CFG
*********
midi_card 12
digi_card 1
or use the SoundBlaster 16 support of VDMSound v2.1.0
Code:
CONFIG.NT
**********
FILES=36
Device=%SystemRoot%\system32\Himem.sys
Dos=High,UMB
EMM=RAM
AUTOEXEC.NT
**********
DOSX.EXE
SET BLASTER=A220 I7 D1 H5 P330 T6
DOSDRV.EXE
CYB.CFG
*********
midi_card 12
digi_card 3
Hope this helps,
dvwjr
Frusciantelove on 31/5/2006 at 02:02
dvwjr,
I'm not going to pretend that I understood most of what you said. Still, I appreciate it and learned from it.
I tried doing core=dynamic and CPU cycles=22500... nothing changed. The game works pretty well at 320x200, and is deathly slow at 640x480.
So with DosBox, the game works basically perfectly, but only at 320x200.
Using VDMSound et al. , I can run the game at 640x480. But it is a bit slow, the music constantly stutters (regardless of resolution), and of course the mouse doesn't work in the menu screens. Also, when I die, the resulting video is very very slow and the game crashes when it finishes playing.
So I don't really see how the latter approach (I assume that's what NTVDM means) is superior. I tried all the changes you prescribed but nothing appeared to change.
Thanks again for your patience.
dvwjr on 31/5/2006 at 05:15
As you have found with the current DosBox v0.65, the only playable resolution is the default 320x200 (mode 13h). Until CPUs get much faster, this will be the DosBox SYSTEM SHOCK limit. However, the sound in the introduction and game is first rate, especially the Gravis Ultrasound with a revised DOSBOX gus.cpp module.
Under Windows XP (SP2) you should be able to get good performance at the 640x480 resolution (VESA mode 101h). If you are using the first set of CONFIG.NT and AUTOEXEC.NT entries in my previous post - the SYSTEM SHOCK NTVDM shortcut you make should be sure to have the MISC/Idle Sensitivity slider set entirely to the LEFT - at the LOW setting. The NTVDM has built-in SoundBlaster 2.0 (T3) support - no VDMSound necessary if you chose 'digi_card 1' in the CYB.CFG file. I've not seen the WinXP DirectMusic MIDI support not being able to keep up with and MIDI XMI files played in the NTVDM. If you have to as a test, turn off the DIGITAL support in the CYB.CFG file by setting "digi_card 0" and "midi_card 12". This will result in 'music only' for SYSTEM SHOCK - see how it responds in combination with the 'Idle Sensitivity' slider set to the LEFT. Your AMD system is more than fast enough to support the SYSTEM SHOCK music via the MIDI sub-system.
I am not a fan of the MOUSE2KV.EXE program. It was a quick hack to try to solve the WinNT/2K/XP/2003 NTVDM problem. Most have found that it does not adjust by video resolution - therefore what seems OK at 640x400 is insanely quick at 320x200. It was also not implemented as either a device driver or TSR - rather as a executing shell program. It is better than nothing, however the proper way to fix the NTVDM Int 33h API problem is a bit more complicated than the design by the author of MOUSE2KV... The best advice from this board is to make sure that the mouse cursor is always in the upper left corner of the screen before any video resolution changes take place.
With a series of fixes to the CDSHOCK.EXE program - the result would be better and faster on WinXP than the day in mid-December 1994 when it was commercial released for DOS...
Best of luck,
dvwjr
Frusciantelove on 3/6/2006 at 01:39
This is all so interesting... I wish I knew what it meant.
I never even considered running without VDMSound until your post. So I did it (just turned the slider to "low" and ran CDSHOCK.exe)and I think it's generally an improvement.
But now the mouse is slow again, despite the Mouse2kv thing being set up the same way. Since VDMSound links to CDSHOCK.BAT (which has the mouse hack) and CDSHOCK.EXE doesn't have the mouse hack, I guess this makes sense. So is there any way to make the mouse hack work with the (also hacked) .EXE file?
The music seems to be up to speed, but (I neglected to mention this before) the music VOLUME is waaay too low. So low that turning the sound effect volume down all the way and cranking up my speakers still doesn't provide an adequate balance. Eh??
Again, thanks for the help you're giving me and all the other people who are reading/will read this.
dvwjr on 3/6/2006 at 03:33
The only thing you should do to add the Mouse2kv support to your DOS shortcut is the following command-line:
MOUSE2KV.exe 640 480 8 8 CDSHOCK.exe
The will allow Mouse2kv to compensate for the 'slow' mouse in the VESA mode 101h (640x480) of SYSTEM SHOCK - the CD version.
Now as to the digital sounds overwhelming the music (MIDI) sound -yes that does happen depending on your sound configuration. I find that I have to leave the SYSTEM SHOCK Audio 'Music' slider all the way to the right; the 'Digital FX' slider placed so that it is right under the 'g' of Digital; the 'Audio Message Volume' slider right under the 'd' of Audio. Then you might have fairly 'level' volumes.
Try without any VDMSound, just use that which is built into WinXP (SP2) for starters. You may always add VDMSound in the future - but first get it working correctly with just the native WinXP (SP2) support.
Best of luck,
dvwjr
Frusciantelove on 3/6/2006 at 13:57
(Ignorance warning)
So... to add the command line that you specified to the DOS shortcut... right-click on the shortcut --> properties ---> program...
Cmd Line: "D:\Old Games\SSHOCK\CDSHOCK.exe"
What do I change it to? I get errors every time I mess with it.
dvwjr on 3/6/2006 at 23:24
Make sure that Mouse2KV.exe is located in your D:\Old Games\SSHOCK sub-directory.
Now change this: Cmd Line: "D:\Old Games\SSHOCK\CDSHOCK.exe"
To this: Cmd Line: D:\Old Games\SSHOCK\MOUSE2KV.exe 640 480 8 8 CDSHOCK.exe
You should then be able to use CDSHOCK.exe with Mouse2KV providing some limited 'speed' correction.
Best of luck,
dvwjr