FILES  EAW CODE  10-07-2024

Written and Edited By: MarkEAW

[ GOTO THE MAIN EAWHS PAGE ]

 

CONTENTS

INTRODUCTION

VOLUNTEER PROGRAMMER NEEDED | MAJOR UPDATES

SOURCE CODE
TRYLIB | D3D | SDK

 

INTRODUCTION

This document was written to help obtain a capable volunteer programmer or two for EAW.

The game currently runs natively, with issues, under legacy compatibility layers or fixes provided by WinXP , WinVista (and the newer modern Window OS's, like Win7, Win8.1 and Win10); In most situations an external Wrapper Program or Registry Fix is needed to run the game with out problems, or with reduced issues.


VOLUNTEER PROGRAMMER NEEDED

The EAW community is in need of Volunteers to code new updates for this Windows 95 designed game. Too distribute free fixed eaw.exe's etc, not for resale.

There is no programmers available to update the code to issue hardware repairs to the game at this time. Not many of the current EAW source code users have looked for new programmers, so everyone else is. A few of the past old timer EAW users have tried to find someone in the past , but no luck in the end. So I thought I'd re-mention it here.

If anyone is really willing and capable of doing the updates below, let us know.


MAJOR UPDATES

These are the major things that need to be improved to keep EAW compatible in native mode running on modern WindowsOS.

  • An updated DirectX version is preferred to go from DX5/6 to maybe at least 9.0c/9_1 so modern drivers and hardware can be taken advantage of by the game. So filters set in the GPU's video control panel settings will all work properly.

  • There is no Horizon Fog (Table Fog) in D3D when using NVidia Cards.

  • Low Frames per second in DD/D3D performance in flight, an update to DX in the game will improve these.

  • Right now the 8-bit in game front end doesn't work correctly (even though the games is a 32 bit executable). It uses the old DirectDraw to display. Its faulty; the menu, map and briefing screens do not have perfect color, and at times are garbled (tearing), sometimes corrupt. (However in Win10 the game looks proper with its compatibility fix applied).

  • Memory management intended for Win95 is CPU intensive (system memory) rather than using GPU memory.

  • Add modern Hardware compatibility, primarily proper full GPU usage.

  • File save EAW error on Windows 10. In particular career saves do not save, since at least 12-2023.

  • See my 'First Use Help Document', there is a section that has a list of other known issues that effect all versions / types of EAW when run natively.

  • See my various other 'Help Documents' for mentioned issues that hamper EAW from working correctly, natively.

  • more??

 

 

SOURCE CODE

The original eaw code was lost, and MPS nor Atari at the time did not have it. It was finally obtained fully to the community by about August of 2005. It was pieced together from various original eaw team programmers and archives. Then it was finally made compliable and working before 2006 where a few changes where added, to produce a game ready 1.2x version executable. Its not exactly the same MPS eaw.exe...

The fixed up working source code is in a mixture of "C", "C++" and assembler. You can use Microsoft Visual Studio 6.0 (In WinXP) to work on and compile the code. A custom DX6 SDK (although the DX7 SDK should also work) can be used, or use what ever you want. I'd like to see Open Watcom to be used for modern programming, but again, up to you.

There is a bunch of remmed out code in the source, like the cockpit gunflash (that is working in the demo). Most of it seems to be from an earlier game but there's also code for a newer game, possibly Gunship. Incorporated in the code are the various tools MicroProse used, the cockpit editor and the target editors are all there and part of the menu system. Those were also remmed out from the release version. Part of the EAW world editor (.TM and .TTD) is a much more sophisticated 3D system...


Here is the list of the actual C/C++/ASM files that are used to compile the source:
(There are some 254 needed 'code' files for an eaw.exe)

3dcode.c 3devent.c 3dload.c 3dmessage.c 3dmgo.c 3dmount.c 3dobject.c 3dplanes.c 3dsetup.c 3dtarget.c aaa.c anim.c anipic.c arming.c awards.c barracks.c bfile.c briefing.c bullet.c button.c campaign.c career.c chat.c circle.c ck_grfx.c clouds.c CNetLib.c cockpit.c cockpite.c combat.c commands.c config.c convert8.c crc32.c credits.c cursor.c d3dmode.c daypass.c ddStuff.c debrief.c debug.c detailgrid.c distuff.c dogfight.c dpstuff.c Dstrtime.c Dstrwave.c eaw3d.c encript.c engsound.c enterstr.c fade.c fadeout.c ffinput.c filemenu.c film.c flightmap.c fly.c fly_ctrl.c fm_bullet.cpp fm_flight.cpp fm_io.cpp fm_math.cpp fog.c font.c gm.c grafix.c HallFame.c hangar.c hmap3d.c hmapedit.c hqoffice.c hwspriteR.c input.c in_views.c landedit.c lz77_io.c magvid.c main.c mapedit.c mapview.c medalscr.c menu.c menu_gfx.c mgo.c misc_ai.c misc_sim.c mission.c n3d.c netmisn.c newsreel.c npolys.c packets.c pcx.c pilotmap.c pilots.c plane_ai.c pl_cmds.c pmap_gfx.c pow.c quotes.c radiocom.c railroad.c rating.c rcredit.c readfile.c readpic.c renderwr.c rhline.cpp rm_views.c rotate.cpp setup.c ship.c single.c singlmap.c singlset.c sky.c Smakplay.c sndsetup.c sound.c spritec.c stars.c start.c stretch.c targedit.c tex3d.cpp text_io.c thrdwait.c tileedit.c tiletarget.c timer.c triangle.c tstccode.c vars.c viewer.c viewobj.c voodoo.c weapons.c window.c WinEawStuff.c wininput.c Winmain.c WinSnd.c world.c worldai.c worldio.c worldset.c worldvar.c wparser.c zoomedit.c clipline.asm clpsprit.asm cockpita.asm data3d.asm debuga.asm dsurf.asm fonta.asm geroud.asm grfix.asm gtexture.asm input_a.asm isqrt.asm math.asm math3d.asm misc_3d.asm misc_gfx.asm misc_io.asm monsprit.asm palette.asm pasm.asm polyfill.asm random.asm rectangl.asm sim_misc.asm spritea.asm string.asm texture.asm transfill.asm tree.asm tstacode.asm vgraphic.asm xyangle.asm

The following files are not used:

ai_asm.asm bitmap.asm bufline.asm drawsun.asm entrstra.asm fastroll.asm flight.asm gm_a.asm keyboard.asm land3d.asm landsky.asm make_lan.asm mgo_a.asm moveship.asm news.asm sclsprit.asm shipmem.asm startgfx.asm vcockpit.asm vcrio.asm vesa.asm wakes.asm windowa.asm

afont.c basemode.c Commcode.c commmenu.c detail.c DibAPI.c DibFile.c difficul.c do_land.c drawbull.c dsound.c end.c fileio.c formatio.c forty3.c fqsort.c gif.c gunsound.c hmisos.c hwsprite.c init_sim.c Joystick.c map_menu.c misncmds.c mountme.c mpsnet.c Neteng.c netipx.c objviewr.c radback.c radiback.c radiocom-patch.c radiocom_is.c sentance.c setlang.c setupipx.c ships.c ship_ai.c skyland.c sort.c static.c stratmap.c support.c Tapicode.c Tapiinfo.c tenscr.c tenscr.cpp v1.c vc.c vcr.c vcrmouse.c vcrsetup.c vcr_ctrl.c waypoint.c winmem.c wthr_fx.c


========================================

Again the files used in list order:


3dcode.c
3devent.c
3dload.c
3dmessage.c
3dmgo.c
3dmount.c
3dobject.c
3dplanes.c
3dsetup.c
3dtarget.c
aaa.c
anim.c
anipic.c
arming.c
awards.c
barracks.c
bfile.c
briefing.c
bullet.c
button.c
campaign.c
career.c
chat.c
circle.c
ck_grfx.c
clouds.c
CNetLib.c
cockpit.c
cockpite.c
combat.c
commands.c
config.c
convert8.c
crc32.c
credits.c
cursor.c
d3dmode.c
daypass.c
ddStuff.c
debrief.c
debug.c
detailgrid.c
distuff.c
dogfight.c
dpstuff.c
Dstrtime.c
Dstrwave.c
eaw3d.c
encript.c
engsound.c
enterstr.c
fade.c
fadeout.c
ffinput.c
filemenu.c
film.c
flightmap.c
fly.c
fly_ctrl.c
fm_bullet.cpp
fm_flight.cpp
fm_io.cpp
fm_math.cpp
fog.c
font.c
gm.c
grafix.c
HallFame.c
hangar.c
hmap3d.c
hmapedit.c
hqoffice.c
hwspriteR.c
input.c
in_views.c
landedit.c
lz77_io.c
magvid.c
main.c
mapedit.c
mapview.c
medalscr.c
menu.c
menu_gfx.c
mgo.c
misc_ai.c
misc_sim.c
mission.c
n3d.c
netmisn.c
newsreel.c
npolys.c
packets.c
pcx.c
pilotmap.c
pilots.c
plane_ai.c
pl_cmds.c
pmap_gfx.c
pow.c
quotes.c
radiocom.c
railroad.c
rating.c
rcredit.c
readfile.c
readpic.c
renderwr.c
rhline.cpp
rm_views.c
rotate.cpp
setup.c
ship.c
single.c
singlmap.c
singlset.c
sky.c
makplay.c
sndsetup.c
sound.c
spritec.c
stars.c
start.c
stretch.c
targedit.c
tex3d.cpp
text_io.c
thrdwait.c
tileedit.c
tiletarget.c
timer.c
triangle.c
tstccode.c
vars.c
viewer.c
viewobj.c
voodoo.c
weapons.c
window.c
WinEawStuff.c
wininput.c
Winmain.c
WinSnd.c
world.c
worldai.c
worldio.c
worldset.c
worldvar.c
wparser.c
zoomedit.c

clipline.asm
clpsprit.asm
cockpita.asm
data3d.asm
debuga.asm
dsurf.asm
fonta.asm
geroud.asm
grfix.asm
gtexture.asm
input_a.asm
isqrt.asm
math.asm
math3d.asm
misc_3d.asm
misc_gfx.asm
misc_io.asm
monsprit.asm
palette.asm
pasm.asm
polyfill.asm
random.asm
rectangl.asm
sim_misc.asm
spritea.asm
string.asm
texture.asm
transfill.asm
tree.asm
tstacode.asm
vgraphic.asm
xyangle.asm


TRYLIB.LIB
The asm files and .i files are replaced by the programmer who chooses to use a custom trylib.lib file. The Lib file was created under VC++2010 environment. If you want to use an open source compiler and not be stuck with having to use VC++ 6, it should work under any C compiler.

You place the lib file in with the rest of the src files and remove the asm and i ones. Open up "Winmain.c" from the EAW code and add this line at the very top of that file then recompile an EAW.EXE and see if it runs correctly.
Code:
#pragma comment(lib,"TryLib.lib")

 

D3D.DLL
There is also another thing about EAW, the d3d.dll file. The code for this is not needed to compile an eaw.exe. You can see calls to the .dll from the .exe. Most of the d3d.dll stuff is a lot of graphics with some C++ code stuff for heavy lifting.

 

SDK
A folder that has both the INCLUDE files as well as the LIBRARY files that are necessary to compile EAW from both the "DX SDK 2005" and "Platform SDK 2005", Microsoft SDK's.

 

The possible community provided 1.2x code can be downloaded here: source. The original un-sorted code files included the original set of about 400 .c .h and some other files. Those extra files mostly are artifacts from the developing. Some are even empty. I don't pretend to know if it is all there, but I have many other files that may contain other forms of the code I can provide with some guidance from someone that knows. Contact me on the CombatACE EAW Forums.

 

[END]