VOGONS

Common searches


First post, by dvwjr

User metadata
Rank Member
Rank
Member

Sid Meier's Antietam! on Windows XP (Service Pack 2)/DirectX 9.0c

June 16th, 2005

Rationale:

The game Sid Meier's Antietam! was originally a Win98 game by Firaxis Games which requires some modifications to its default installation to properly function outside of its original native Windows 98 environment. This document addresses the steps necessary to make this Win98-era game fully functional on the now current Windows workstation standard, Windows XP (Pro), Service Pack 2, which incorporates DirectX 9.0c as standard.

The base-line requirements for Sid Meier' Antietam!:

OS:         Win95/98
Processor: 133mHz Pentium (minimum)
RAM: 32MB (minimum)
Hard Disk: 70MB free
CD-ROM: 2X speed (minimum)
DirectX: Version 7.0 (8.0 or higher recommended)
Video card: Resolution of 800x600 at 8-bit color (256 color)
Sound Card: DirectX 7.0 compliant
Mouse: 2-button

Problems under WinXP(SP2):

The primary problem with attempting to play Sid Meier's Antietam on Windows XP(SP2) is that the game sound, a vital part of feed-back for the game, does not function in any way. The other unrelated but co-incident occurrence is that the opening AVI logo files from Firaxis Games and/or BreakAway Games suffer a display corruption or visual 'tearing' effect. These errors occurred with the introduction of Windows XP, Service Pack 2. The fixes necessary are entirely accomplished by file deletion and replacement.

Read on...

The problems in executing "Sid Meier's Antietam!" on today's hardware and operating systems can be delineated in four areas: Hard-coded Win9x programming practices; the improper inclusion of Windows 9x-era system level Dynamic Link Libraries (DLL) files in the application installation sub-directory; the 'inadvertent' changes by Microsoft in CODEC support for the now deprecated 'Microsoft Video for Windows' API; the ever increasing speed of current/future x86 processors and its effect on critical timing sensitive game routines.

1.) Resolution: Hard-coded Win9x programming practices

Firaxis did not bother to correct the minor Win9x hard-coding present in Antietam! as it had to do with the release of the Gettysburg! Windows 2000/XP Update. The reason is that the Windows XP(SP2) Application Compatibility Database, which is dynamically updated if a WinXP workstation is connected to the Internet, will already have the fix necessary for Antietam! included. This fix (or shim) is known as the "Win98VersionLie" for ANTIETAM.EXE, which causes the executable to believe that it is operating under the Windows 98 operating system. If you wish to examine the Application Compatibility Database, or add modifications for other applications not included, please see the Windows Application Compatibility page at Microsoft.

Firaxis continues to host a single patch for "Sid Meier's Antietam!" at its own web-site, the Firaxis Download page:

The necessary patches for 'Sid Meier's Antietam!' are as follows:

Date            Title                                  Size
---------------------------------------------------------------
02-18-2000 Antietam! Beta Patch (version 2.0) 930.00 kB (not available on Firaxis site)
08-28-2000 Antietam! Final Patch w/SM Scenarios 10.05 MB

Each of the above patch files contain the files necessary to update the Antietam! executable ANTIETAM.EXE, SOUND.DLL and some other supporting files. Here is what each patch contains:

The Antietam! v2.0 Beta Patch:   (Antietam_Beta_Patch.EXE)
------------------------------------------------------------
01.) ANTIETAM.EXE 770,048 bytes 2000/02/11
02.) SOUND.DLL 577,536 bytes 1999/12/13
03.) README.TXT 12,965 bytes 2000/02/18
04.) ROADS.TXT 4,479 bytes 2000/01/31
05.) CN3STAND.PCX 54,134 bytes 2000/01/20
06.) 39_1.PCX 77,719 bytes 2000/01/14
07.) 39_2.PCX 76,223 bytes 2000/01/14
08.) 39_3.PCX 72,851 bytes 2000/01/14
09.) 39_4.PCX 82,505 bytes 2000/01/14
10.) 39_5.PCX 76,014 bytes 2000/01/14
11.) 39_6.PCX 63,608 bytes 2000/01/14


The Antietam! v3.0 Final Patch w/SM Scenarios: (South_Mountain.exe)
-------------------------------------------------------------------
1.) ANTIETAM.EXE 806,912 bytes 2000/08/07
2.) SOUND.DLL 577,536 bytes 1999/11/02
3.) README.TXT 12,665 bytes 2000/08/18
4.) ChapHelp0001.txt 7KB 2000/05/08
5.) ChapHelp0002.txt 4KB 2000/05/08
6.) ChapHelp0003.txt 14KB 2000/06/12
7.) ChapHelp0004.txt 14KB 2000/05/08
8.) ChapHelp0006.txt 7KB 2000/05/08
9.) ChapHelp0008.txt 8KB 2000/05/08
10.) ChapHelp0009.txt 12KB 2000/06/12
11.) ChapHelp0011.txt 8KB 2000/05/08
12.) ChapHelp0012.txt 14KB 2000/05/08
13.) ChapHelp0013.txt 3KB 2000/05/08
14.) ChapHelp0016.txt 14KB 2000/07/30
15.) Chapter12.txt 134KB 2000/05/18
16.) Chapter13.txt 66KB 2000/05/18
17.) Chapter14.txt 135KB 2000/05/18
18.) Chapter15.txt 99KB 2000/05/18
19.) Chapter16.txt 28KB 2000/05/18
20.) crampmap1.pcx 372KB 2000/04/17
21.) crampmap2.pcx 384KB 2000/04/17
22.) CramptonBuild.txt 19KB 2000/04/25
23.) CramptonElev.txt 19KB 2000/04/25
24.) CramptonNames.txt 22KB 2000/04/25
25.) CramptonRoads.txt 19KB 2000/04/25
26.) CramptonTerrain.txt 19KB 2000/04/25
27.) crmpt-1.sci 2KB 2000/05/15
28.) crmpt-2.sci 1KB 2000/05/15
29.) crmpt26.pcx 72KB 2000/05/12
30.) crmpt26.sci 5KB 2000/04/14
31.) crmpt26.scn 6KB 2000/04/25
32.) crmpt26_1.pcx 69KB 2000/05/10
33.) crmpt26_2.pcx 67KB 2000/05/10
34.) crmpt26_3.pcx 74KB 2000/05/10
35.) crmpt26_4.pcx 69KB 2000/05/10
36.) crmpt26_5.pcx 66KB 2000/05/10
37.) crmpt27.pcx 72KB 2000/05/12
38.) crmpt27.sci 2KB 2000/04/14
39.) crmpt27.scn 6KB 2000/04/26
40.) crmpt27_1.pcx 73KB 2000/05/10
41.) crmpt27_2.pcx 68KB 2000/05/10
42.) crmpt27_3.pcx 69KB 2000/05/10
43.) crmpt27_4.pcx 80KB 2000/05/10
Show last 101 lines
44.) crmpt27_5.pcx   	 69KB	  2000/05/10  
45.) crmpt28.pcx 72KB 2000/04/13
46.) crmpt30.pcx 72KB 2000/05/12
47.) crmpt30.sci 4KB 2000/04/14
48.) crmpt30.scn 4KB 2000/04/26
49.) crmpt30_1.pcx 66KB 2000/05/10
50.) crmpt30_2.pcx 67KB 2000/05/10
51.) crmpt30_3.pcx 66KB 2000/05/10
52.) crmpt30_4.pcx 66KB 2000/05/10
53.) crmpt30_5.pcx 65KB 2000/05/10
54.) gmapd.pcx 263KB 2000/08/09
55.) gmapg.pcx 263KB 2000/04/26
56.) Menu.fre 10KB 2000/05/18
57.) Menu.ger 9KB 2000/05/18
58.) menu.txt 9KB 2000/07/26
59.) open_n.pcx 504KB 2000/06/12
60.) open_n1.pcx 504KB 2000/06/12
61.) open_n2.pcx 490KB 2000/06/12
62.) open_n3.pcx 489KB 2000/06/12
63.) open_s.pcx 534KB 2000/06/12
64.) open_s1.pcx 534KB 2000/06/12
65.) open_s2.pcx 516KB 2000/06/12
66.) open_s3.pcx 516KB 2000/06/12
67.) open_xn.pcx 483KB 2000/06/15
68.) open_xn1.pcx 483KB 2000/06/15
69.) open_xn2.pcx 471KB 2000/06/20
70.) open_xn3.pcx 470KB 2000/06/20
71.) open_xs.pcx 493KB 2000/06/15
72.) open_xs1.pcx 493KB 2000/06/15
73.) open_xs2.pcx 484KB 2000/06/20
74.) open_xs3.pcx 483KB 2000/06/20
75.) readme.txt 13KB 2000/08/18
76.) Roads2.pcx 96KB 1999/12/22
77.) roads3.pcx 77KB 1999/12/20
78.) roads4.pcx 94KB 1999/12/20
79.) smaman.pdf 234KB 2000/07/17
80.) smListMap.pcx 446KB 2000/04/18
81.) smlistmap2.pcx 493KB 2000/04/18
82.) SouthMtnObc.txt 17KB 2000/01/06
83.) SouthMtnObu.txt 20KB 1999/12/29
84.) TurnerBuild.txt 6KB 2000/02/07
85.) TurnerElev.txt 6KB 2000/02/07
86.) turnermap1.pcx 379KB 2000/04/13
87.) turnermap2.pcx 379KB 2000/04/13
88.) TurnerNames.txt 7KB 2000/02/07
89.) TurnerRoads.txt 6KB 2000/02/07
90.) TurnerTerrain.txt 6KB 2000/02/07
91.) turnr-1.sci 2KB 2000/05/15
92.) turnr-2.sci 1KB 2000/05/15
93.) turnr26.pcx 75KB 2000/05/12
94.) turnr26.sci 5KB 2000/04/17
95.) turnr26.scn 4KB 2000/04/17
96.) turnr26_1.pcx 71KB 2000/05/10
97.) turnr26_2.pcx 78KB 2000/05/10
98.) turnr26_3.pcx 83KB 2000/05/10
99.) turnr26_4.pcx 77KB 2000/05/10
100.) turnr26_5.pcx 74KB 2000/05/10
101.) turnr26_6.pcx 78KB 2000/05/10
102.) turnr27.pcx 76KB 2000/05/12
103.) turnr27.sci 4KB 2000/04/13
104.) turnr27.scn 8KB 2000/04/18
105.) turnr27_1.pcx 76KB 2000/05/10
106.) turnr27_2.pcx 74KB 2000/05/10
107.) turnr27_3.pcx 74KB 2000/05/10
108.) turnr27_4.pcx 64KB 2000/05/10
109.) turnr28.pcx 75KB 2000/05/12
110.) turnr28.sci 4KB 2000/04/14
111.) turnr28.scn 6KB 2000/04/19
112.) turnr28_1.pcx 72KB 2000/05/10
113.) turnr28_2.pcx 67KB 2000/05/10
114.) turnr28_3.pcx 65KB 2000/05/10
115.) turnr28_4.pcx 71KB 2000/05/10
116.) turnr28_5.pcx 60KB 2000/05/10
117.) turnr29.pcx 75KB 2000/05/12
118.) turnr29.sci 2KB 2000/04/14
119.) turnr29.scn 12KB 2000/04/19
120.) turnr29_1.pcx 77KB 2000/05/10
121.) turnr29_2.pcx 73KB 2000/05/10
122.) turnr29_3.pcx 66KB 2000/05/10
123.) turnr29_4.pcx 64KB 2000/05/10
124.) turnr29_5.pcx 80KB 2000/05/10
125.) turnr30.pcx 75KB 2000/05/12
126.) turnr30.sci 3KB 2000/04/14
127.) turnr30.scn 8KB 2000/04/20
128.) turnr30_1.pcx 75KB 2000/05/10
129.) turnr30_2.pcx 74KB 2000/05/10
130.) turnr30_3.pcx 58KB 2000/05/10
131.) turnr30_4.pcx 71KB 2000/05/10
132.) turnr30_5.pcx 69KB 2000/05/10
133.) turnr30_6.pcx 73KB 2000/05/10
134.) turnr30_7.pcx 68KB 2000/05/10
135.) turnr30_8.pcx 74KB 2000/05/10
136.) 39_1.PCX 77,719 bytes 2000/01/14
137.) 39_2.PCX 76,223 bytes 2000/01/14
138.) 39_3.PCX 72,851 bytes 2000/01/14
139.) 39_4.PCX 82,505 bytes 2000/01/14
140.) 39_5.PCX 76,014 bytes 2000/01/14
141.) 39_6.PCX 63,608 bytes 2000/01/14
142.) Video 786KB Directory
143.) Video\BreakAway_logo.avi 2000/05/09

So we have the following possible ANTIETAM.EXE and SOUND.DLL files from the original v1.0 Antietam! CD-ROM, the v2.0 Beta patch and finally the v3.0 Final Patch:

File Name           Size              Date        Linker Version   Version
-----------------------------------------------------------------------------
1.) ANTIETAM.EXE 1,142,784 bytes 1999/11/04 6.00 v1.0 Original
2.) ANTIETAM.EXE 770,048 bytes 2000/02/11 6.00 v2.0 Patch (Beta)
3.) ANTIETAM.EXE 806,912 bytes 2002/08/07 6.00 v3.0 Patch (Final)

1.) SOUND.DLL 577,536 bytes 1999/11/02 6.00 v1.0 Original
2.) SOUND.DLL 577,536 bytes 1999/12/13 6.00 v2.0 Patch (Beta)
3.) SOUND.DLL 577,536 bytes 1999/11/02 6.00 v3.0 Patch (Final)
**************
Demo SOUND.DLL 577,536 bytes 1999/11/09 6.00 v2.0 Antietam! Demo

We need to end up with the Number 3 item (version 3.0) listed above of the ANTIETAM.EXE file, since the SOUND.DLL files are identical for the original version 1.0 release and the final version 3.0 release. The two files necessary to properly execute the Antietam! game engine, ANTIETAM.EXE and the file SOUND.DLL comprise the Antietam! game engine. The version 3.0 updated version of ANTIETAM.EXE is the one that all owners of Antietam! should be using, regardless of operating system version. The exception to this recommendation is that the version 2.0 Patch (Beta) version of ANTIETAM.EXE is necessary for those who wish to use the SMGIIe add-on to recreate "Sid Meier's Gettysburg!" using the "Sid Meier's Antietam!" game engine. The version 3.0 Patch (Final) of ANTIETAM.EXE will not allow for the modified map necessary for SMGIIe to function.

Some comments on internet forums indicate that the "lack of sound problem" can be resolved by using the SOUND.DLL file from the Firaxis "Sid Meier's Antietam! Demo" download. This will not solve the 'no sound' problem, since the SOUND.DLL file in the Demo package is the same as the one in the hard-to-locate version 2.0 Patch (Beta) release, except for the internal Linker date/time stamp. There is no functional difference and no benefit to downloading the Antietam! demo to get this 'magical' SOUND.DLL file. Save Firaxis and the Internet the wasted bandwidth... The key to restoring the game sound is the removal of system-level DLLs from the Antietam! sub-directory, not a replacement SOUND.DLL file.

The following registry changes are made by the v3.0 Patch (Final) South Mountain add-on package to the Window XP(SP2) Registry.

Version 3.0 Patch (Final) South Mountain additions to
Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Firaxis Games\Sid Meier's South Mountain Add-on
HKEY_LOCAL_MACHINE\SOFTWARE\Firaxis Games\Sid Meier's South Mountain Add-on\1.00.000
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Antietam.exe

2.) Resolution: Improper inclusion of Windows 9x-era system level Dynamic Link Libraries (DLL)

Now on to the other DLLs which are placed in the Antietam! sub-directory by the SETUP.EXE installation program for use by the ANTIETAM.EXE program file.

Listed below are some of the DLL dependencies for the executable "ANTIETAM.EXE" according to version 2.1.3623 of the Microsoft Dependency Walker for Win32(x86). These are the files that the executable ANTIETAM.EXE loads from its own installation directory. The complete DLL listing will show while many of the system-level DLLs are being properly provided by WinXP(SP2) from the %windir%\System32 sub-directory, two system-level DLLs are being loaded from the application execution sub-directory, which is a cause of the 'lack-of-sound' problem. As long as the DLL files SETUPAPI.DLL and CFGMGR32.DLL exist in the Antietam! sub-directory there will be both NO SOUND and NO STABILITY.

c:\program files\firaxis games\sid meier's antietam\ANTIETAM.EXE
c:\program files\firaxis games\sid meier's antietam\CFGMGR32.DLL
c:\program files\firaxis games\sid meier's antietam\SETUPAPI.DLL
c:\program files\firaxis games\sid meier's antietam\SOUND.DLL

The two files ANTIETAM.EXE and SOUND.DLL represent the Antietam! game engine. The other two DLL files which exist in the Antietam! sub-directory are system-level DLLs which were improperly installed by the SETUP.EXE program. The only DLL which should be available is the SOUND.DLL file, as the SETUPAPI.DLL and the CFGMGR32.DLL files should be supplied by the WinXP operating system via the %windir%\System32 sub-directory. These two files, SETUPAPI.DLL and CFGMGR32.DLL prevent the Antietam! sound from functioning and cause intermittent game faults. The only DLL which should remain in the Antietam! sub-directory is the SOUND.DLL file. The other two DLL files listed below should be deleted so that the Antietam! sound will function properly again under WinXP(SP2).

There is a structure to the way that supporting system and application DLLs are located and loaded by the Windows operating system when executing a Win32 application. This DLL search order and changes made to the functions supported by system-level DLLs over that past years can cause problems for applications when past programmers improperly included operating system-level DLLs in their release by either over-writing any existing Windows system directory DLLs, or by including such system-level DLLs in the application sub-directory. This approach functioned in the Windows 9x-era when the application release was close to the release dates of Win98, Win98SE and WinME as major Windows operating systems supporting DirectX and gaming. While Windows XP can protect itself from applications installing their own DLLs in the Windows system sub-directory, it can not stop applications from installing out-of-date system-level DLLs in the application sub-directory.

With the release of Windows XP (SP1) and Windows 2003 Server the traditional DLL search order was changed. There now exists a registry entry which controls how the DLL search order is defined, either the 'traditional' method or the new 'safe' method.

 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode)

The traditional DLL search path: (SafeDllSearchMode is 0)

  • 1. Directory from which app is loaded (executable directory)
    2. Current directory (can be overridden with an API call to SetDllDirectory)
    3. System directory (%windir%\System32)
    4. 16-bit system directory (%windir%\System)
    5. Windows directory (%windir%)
    6. Directories listed in the PATH environment variable

The new WinXP(SP1)+ DLL search path: (SafeDllSearchMode is 1)

  • 1. Directory from which app is loaded (executable directory)
    2. System directory (%windir%\System32)
    3. 16-bit system directory (%windir%\System)
    4. Windows directory (%windir%)
    5. Current directory (can be overridden with an API call to SetDllDirectory)
    6. Directories listed in the PATH environment variable

Source: MSDN: Dynamic-Link Library Search Order

Notice that in both DLL search order cases that the Directory from which an application is loaded is still searched FIRST before the (new & old) DLL search rules are applied. Therefore any older system level DLLs which are co-located in the 'Antietam!' sub-directory where the executable "ANTIETAM.EXE" is located will be used before the Windows XP(SP2) operating system can provide the proper system-level DLLs from the %windir%\System32 sub-directory.

Due to this search order, there are other files installed to the Antietam! sub-directory which should be deleted since the latest versions are already installed in the WinXP(SP2) %windir%\System32 sub-directory. There is no need to risk accidently installing the much older DirectX v7.0 over the Windows XP(SP2) native DirectX v9.0c by leaving these files in place.

Here are other DLLs which serve no purpose under WinXP(SP2) and should be deleted for safety sake.

  • 01.) DSETUP32.dll
    02.) DSETUP.dll

The following files are no longer necessary and should be deleted from the Antietam! sub-directory. This will eliminate any chance of the DirectX v7.0 installation being executed. Delete all five listed files.

  • 01.) AUTOLEE.exe
    02.) DXSETUP.exe
    03.) DIRECTX.cab
    04.) AUTORUN.inf
    05.) DIRECTX.inf

To repeat, the proper setup for Antietam! for DLL support would have only the latest v3.0 SOUND.DLL file in the Antietam! sub-directory. No other DLLs should be present, so to repeat - delete all of the unnecessary system-level DLLs from the Antietam! sub-directory.

3.) Resolution: 'inadvertent' changes by Microsoft in VfW CODEC support

Since the release of Service Pack 2 for Windows XP, the initial AVI files which display the Firaxis and/or BreakAway Games video Logos appear to be corrupted or suffer visual 'tearing' when the ANTIETAM.EXE program attempts to display said files upon program execution. This video problem occurred at the same time as the sound to Antietam! stopped working and therefore appeared related. The problems are unrelated and occurred due to an unfortunate coincidence in the release of Service Pack 2.

Windows XP(SP2) provides audio/video CODEC support for past and current applications via two API mechanisms. The first and oldest method was the original 'Microsoft Video for Windows' code base which was grafted onto the Win9x and WinNT4 operating systems with CODECs supported as DLL files in the Windows system directory. The current method for Windows XP(SP2) support for older applications which rely on the WVfW interface is to get their CODECs DLL support from the files located in the %windir%\System32 directory. The Registry defines the installed CODECs, their description and location for those applications which need CODEC support via the WVfW API mechanism.

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32

The second and current method of providing CODEC support by WinXP(SP2) is via DirectShow Filters, with the registration of the COM component CODECs in the form of 'SomeCodec.AX' file structure. These files with the "AX" file extension are COM component DLLs by another name. The DirectShow API interface is a superset of the VfW API and provides a 'wrapper' around older VfW DLL CODECs for those applications which make DirectShow requests for the services of older CODECs. Microsoft therefore had no need to re-write the code from the third-parties who provided the CODECs in years past.

The two AVI files which now fail to display properly when ANTIETAM.EXE is executed are the LOGO.AVI and BREAKAWAY_LOGO.AVI files. These files were created with the 'cvid' CODEC 'Cinepak' for Windows 32 by Radius, Inc. Even worse, if the Windows Media Player 9/10 is used to play one of these Logo AVI video clips directly from the Antietam! sub-directory, the Media Player 9/10 will abort and be terminated by the Windows XP(SP2) operating system. Clearly something is wrong with the Cinepak CODEC support in WinXP(SP2).

So we have a situation where the Microsoft Windows Media Player 9/10 can NOT properly display the Antietam! opening AVI video files, nor can the ANTIETAM.EXE program file do so... First off is identifying the error prone 'cvid' labeled CODEC - it is the Radius Cinepak for Windows 32. This CODEC exists in the WinXP(SP2) %windir%\System32 sub-directory as the VfW CODEC DLL file: ICCVID.DLL, with a date of 08/04/2004 and a file size of 80,384 bytes. It has two version numbers, v1.10.0.12 and v1.10.0.11, strange but true.

Curious also is the fact that this same SP2 installed v1.10.0.12 'cvid' CODEC file ICCVID.DLL will also cause the Windows Media Player 9/10 to terminate if the original Sid Meier's Gettysburg! LOGO.AVI is played. However, the actual Gettysburg! LEE.EXE program file has no problem with its own initial Firaxis Games LOGO.AVI file using that same v1.10.0.12 'cvid' CODEC.

OK, so the answer is to go back to the ICCVID.DLL version which was installed with Windows XP, Service Pack 1. On a Windows XP(SP1) CD-ROM the compressed version of the file is located in the \i386 sub-directory as the file ICCVID.DL_ with a file size of 36,141 bytes. Copy the compressed file to a temporary sub-directory, then use the WinXP command-line utility EXPAND.EXE as follows:

EXPAND ICCVID.DL_ ICCVID.DLL

This file expansion should yield the file ICCVID.DLL with a file size of 110,592 bytes, dated 08/29/2002. The version number is v1.10.0.6 and will correct all problems with 'cvid' AVI files. The recommendation would be to rename the current Service Pack 2 installed ICCVID.DLL file in the %windir%\System32 sub-directory. Also maintain a duplicate copy of the SP1 ICCVID.DLL file in the %windir%\System32 sub-directory in the case a future Windows XP Service Pack 3 would again replace the ICCVID.DLL with a newer, even less helpful version... So the %windir%\System32 sub-directory should contain:

08/29/2002  08:00 AM    110,592  iccvid.dll     (v1.10.0.6)
08/29/2002 08:00 AM 110,592 iccvid.dll.sp1 (spare for future!)
08/04/2004 03:56 AM 80,384 iccvid.dll.sp2 (spare for future?) (broken!)

Yes, it's that simple... Now the Antietam! initial video Logo clips for Firaxis and BreakAway Games work perfectly, and the Windows Media Player 9/10 does not crash when playing the either the Gettysburg! or Antietam! Logo AVI files.

Note: Even with these fixes any attempt to use Windows Explorer to 'right-click' the mouse to select one of the Logo AVI files to be played, that process will cause a DEP exception and a termination/restart of Explorer.

4.) Resolution: Ever increasing speed of current/future x86 processors

Many of the timing routines in the code of Antietam! are not processor dependent, however the ones that are processor speed dependent impact the user interface for moving about the complete map using today's much faster x86 processors. When using the mouse to navigate around the map by placing the mouse pointer at one of the four edges of the display 800x600 screen, the map is redrawn so quickly that it is sometimes hard not to 'overshoot' the intended map destination. With no coding modifications to ANTIETAM.EXE on the horizon, the only solution seems to be a combination of making the x86 processor do as much work as possible during the game, plus adding some sort of slow-down utility to the workstation to allow for a more reasonable speed of the user interface.

For the in-game slow downs, go to the Antietam! F9 preferences and make sure that the following items are set to ON:

  • Normal Trees and Houses
    Map Scrolling Enabled
    Maximize Graphic Detail
    Full Draw on Scroll

This will at least make the x86 processor work as hard as possible in drawing the 2D images and sprites which are the center of the Antietam! graphics sub-system. Probably the simplest 'slowdown' coding fix would to be to cause any DirectDraw screen redraws performed on a map scroll to be executed twice in a row. This would waste CPU time, but that is after all the objective...

The following web page titled "The NEW PC Slow Down Page!" has various DOS and Windows x86 CPU slow-down utilities. The site is hosted by DeBray Bailey and includes a free copy of the Microsoft DirectShow SDK utility 'CPU Grabber'. This Microsoft "CPU Grabber" utility and the shareware "CPUKiller! v3.0" are probably the best utilities for slowing down the faster x86 CPUs now in use. The utility "CPUKiller! v 3.0" is hyper threading and multiprocessor aware, but does cost if you like the time-limited demo.

Final Observations

The final software recommendation would be Daemon Tools v3.47 a free CD-ROM emulation program which will allow an ISO CD-ROM image be used instead of the actual Antietam! CD-ROM. Very good at speeding up access to the video clips when there is a need to run them at the conclusion of a scenario. It also helps that you don't have go looking for the CD-ROM just to play Antietam!, it's just an ISO image stored on the hard drive...

If the Gettysburg! and Antietam! engines were just re-coded to support 1024x768 screen resolution @32bit color with the processor dependent timing fixed, it would be enough for me...

Hope this helps,

dvwjr

Credit: Marc Swaby (via the Gettysburg! Online Society Forums) for the idea that SETUPAPI.DLL in the application sub-directory was part of the cause of the problem with the Sid Meier's Antietam! lack of sound operating under WinXP(SP2).

Last edited by dvwjr on 2005-06-16, 18:05. Edited 2 times in total.