Ta3d
First Compilation of TA3D Page
This will hold a links menu.

SourceCode Of Ta3d

Tools  for Ta & Ta3d 

Videos of Ta3d

Contact me with comments or questions about the site

I can also be reached Here in general


01/12/08
The first things I did was download Mingw & Msys.

Mingw Be sure to goto Sourceforge and get Msys as well.

After some experimenting I found that it is easiest to grab the Mingw installer and do a quick install.

Nice but leaves you with no shell to use.
This is why alot of people use cygwin, however cygwin uses a linux shell layer and not true win32, Hence I use msys.

The next thing to do is put Msys in the root of the mingw install and extract it there. It will put a few files into bin and a couple of other directories, thats fine.

Now here  is where I save you a bunch of hassle. 
rename make.exe to make.xex and copy mingw32-make.exe to make.exe
The mingw make is NOT! the same as cygwin or any other make.

The base install is here with Msys already in place uninitialzed. When you click on msys.bat it will read the profile info for your login to windows, create a profile for you and lanch it.

Lanch mingw then exit it. This creates the Home directory with your profile directory under it.

Copy the ta3d archive into this directory and extract in place.
This creates a ta3d directory with the game and sourcecode in it.

Relaunch mingw and goto the ta3d directory by typeing cd ta3d and type ./configure
This configures the makefiles Etc and checks to see that you have everything you need to compile the program.
This will fail with an Fmodex error

---

Next you will need FMODex. Just grab archive here, I made this from what the installer puts in, it's just easier than installing it and hunting the stuff you need down. At this point you either mod a bunch of config files or extract the files here and copy them this way.

From the api directory copy the dll files the the \bin directory under mingw. c:\mingw\bin
From the inc directory under api copy those files to \include under mingw. c:\mingw\include
From the lib directory under api copy the *.a files to \lib under mingw. c:\mingw\lib
There is also a plugin directory that I don't know if will be needed yet.

When you retry to compile ta3d you should now get an fmodex  yes

Now comes the hard part - Allegro.

---

First let me say that although Allegro may be a wonderful timesaver programming wise it is a stone cold B*tch when it comes to compiling and installing under win32.

The first among many trials is the need to set an extra enviornment variable. Without this you are wasting your time.
The directions are there for all of this but they take more than one read through.

open the msys.bat file and after line thirteen which should be after the start is msys comamns add the follwing line.

set MINGDIR=C:\MinGW ; Assuming that you installed Mingw there. Point it to wherever you installed.

This tells the sourcecode of allegro where to find mingw. On linux I guess it just knows.

Now here is where I wander a little from what I have been able find as the norm. Instead of putting the the Allegro directory under my profile I instead made a directory off of the Mingw root.

\packages   --- c:\mingw\packages

Then put Allegro under that.

\packages\allegro   --- c:\mingw\packages\allegro

Now here is a lesson for thoses of us who work mostly in Win32. Mingw like Cygwin & most of Linux / Unix Has is case sensitive for commands. That means that 'Case Sensitive', 'case sensitive' and 'CASE SENSITIVE' are three seperate observations .(read complaints if you are looking at it from my point of view.)

Another little quirk is that typo Linux people insist on putting in front of everything the ./ that you find everywhere. That is not a typo, it is a part of the command. The shell for Mingw, Cygwin and I think Linux / Unix will only execute a command that is located on the path, it has no local file execute function. The ./ is a pointer to look in the local directory as a bypass  to execute a local file. Takes some getting used to. I am very used to the 'If I can see it I can run it' rule from win32.

To me, the person coming from Win32 and Pascal  and Basic I find this silly. I also find most Visual languages including Lazuras (Delphi Clone) silly as well. (I mostly use TurboVision or the freepascal clone). The whole encapulate and wait for a message thing drives me nuts, Makes the odds of getting of understanding C++ stink but it's not impossible.

So be sure to always check your CASE and pointer ./ when checking your spellinG as a missed Case can cause a bad CAse of missing things even when they really are there. In any CaSe, Just remember that computers do exactly what you tell them to do, not what you meant for them to do.

So anyway,

cd .. (Should be /home/profile - Use pwd to check directory , Don;t use ./ as this command is in the /bin directory in the executables path, Use set if you want to see the enviornement variables. - pwd = Print working directory)
cd .. (Should be /home - Use pwd again if need be)
cd .. (Should be / - Use pwd again)(The / is root of the install)

Then

cd packages
cd allegro

Make sure you are in the allegro directory and

./configure - Thid time use the ./ as it is a local command.

Then wait, And wait, And try to read the gibberish scrolling by, Get a cup of coffe if dark, A soda if light And tea if dawn or dusk. Now for an extra choice bit of fun.

./fix.sh mingw

What this does is finalize the setup to build on the freako setup of win32. Don't ask me why, I just compile here.
Now just type out make. (Yes I mean make not MAKE or Make as this is more of that casE sesitivity.).

Looks great doesn't it, Oops, Looks like maybe we should haave poured over those directions a little more.
Turns out there is a great document called mingw32.txt in /docs/build and it says we need also need the following.

Now here is more fun, making is building. When you use the make command it tries to build the project from peices.
It uses the make files made by the ./configure command. I will later write a tutorial on how to make ./configure files if and when I figure it out.

Anyway we need the Directx Sdk for mingw. Grab dx70_mgw.zip and place it in your Mingw root and extract in place. It adds a bunch files to include and lib. (yes I miss Caps for Emphasis to.)

Replace the files it wants to and retry the make. After a while and another drink you get sucess.
Great now read ther screen and do a make install.

make install

Yea, Optimized library installed. Now run along back to the ta3d directory. (The necessary lack of caps sure makes this hard to skim doesn't it?) and redo the

./configure

Yea it's gibberishing. WHAT? What do you mean allegro_config is missing? I just saw it say that it was created, what the problem? This is not professional at all. Guess what, this is not a professional thing at all. This is all free software, That means that it cost you othing and you are benefitting from other peoples volunteered time and effort. If you don't like the way you ahve to configure the tools then either spend th money to go buy the pro stuff or get good enough to fix it yourself and show the courtesy that others have and contribute that solutuion back the community.

In the mean time it's off for mre reading. You eventually find by reading the screen after exhausting the documentation that you need to set another enviornment variable like you just did with MINGDIR.
This time though it is ALLEGRO_CONFIG (yes the caps are correct) You will need to set it to

ALLEGRO_CONFIG=C:\MinGW\packages\allegro\allegro-config

or whereever you installed mingw. (I miss caps)

So exit mingw and open the msys.bat file then add

set ALLEGRO_CONFIG=C:\MinGW\packages\allegro\allegro-config

just after the other values you added and resave it. Relaunch Msys and goto the ta3d directory and

./configure

Yes you can scream now. I won't bore you with the amount of reading it took but the reason that WIn32 has a problem is that Linux is by defenition a developer system, Win32 is not. What that ends u[p meaning is that you need to add the follwing to your commandline --disable-allegrotest so you end up with

./configure --disable-allegrotest

And whalah, It works. Or at least allegro does.

This brings us to AllegroGl

---

AllegroGl - What fun. Grab the archive here and drop it in the packages directory and extract so that it ends up in

c:\mingw\packages\alleggl

Now is where you need a bit of faith. This actually worked on my system so hopefully it should on yours as well.

./fix.sh mingw32

And it claims success. so next you

make

and read the screen. Failure on some random thing. Let save you a ton tracing.
You need Zlib.

Grab zlib_win32.7z and extract it to a directory. It's more of the same refrain, /bin goes into /bin Etc etc.

make

Finally notice a missing file in the lua directory. dlfnc.h is not home.
Went to a copy of cygwin, found it there and copied it to /include and then

make

Compiles and runs. This archive mingw-ta3d.7z is an archive of my efforts completed.
everything is there and in place. You will have to adjust the drive letter in the msys.bat file
if you install to other than c:\ which I do but I put back to c:\ as a standard.

The ./config_mingw32.sh is modified to add the --disable-allegrotest command.

Yae.

P.S. - Does NOT include the media files from totala.

This concludes phase one of my quest.

Now to figure out why the exe is 11 megs.

Found it. it is the inclusion of the -g parameter in config_mingw32.sh
I eliminated it and the exe shrunk from 11.8 to 2.8 megs.
I will upload the corrected mingw-ta3d.7z once I get done.