Written and Edited By: MarkEAW
[
GOTO THE MAIN EAWHS PAGE ]
CONTENTS
INTRODUCTION
VOLUNTEER PROGRAMMER NEEDED
| MAJOR UPDATES
SOURCE CODE TRYLIB
| D3D | SDK
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.
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.
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??
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]
|