Here is what i tried, and it seem to fix my problem. I download the this
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3b170b25-abab-4bc3-ae91-50ceb6d8fa8d and then, i dont install, but rather just extract the x86 d3dx9_31.dll d3dx9_32.dll and d3dx9_33.dll. back up the same dll in system 32, and then replace the one in system 32 with the x86 i just extracted. i also have all 3 in the parent folder of bts
this is for civ4 complete, but im sure i will work for other version
i think the problem is that in 64 bit system, direct x update to the 64 bit dll files, which doesnt work with civ4