Directx 9.0b --- 9.0c MISSION IMPOSSIBLE

Started by
10 comments, last by DeadXorAlive 18 years, 6 months ago
OMFG retarted directx! i have directx9.0b and i installed a new game that requires 9.0c.it asked me if i wanted to install the 9.0c after the istallation and i said ok.it finished immediately and said that 'directx installed' or smth like that.ofcouse it didnt install it.i go to start>run>dxdiag and still i have the 9.0b version.i downloaded directx9.0c so i could install it myself and EVERY FREAKIN' time it says that it installed it without actually doing so.so the outcome is: when i start Lineage it says 'Please Install directx 9.0c or later' .the BRAINIACS at microsoft NATURALLY dont have an uninstallation (hey whats that?) process for their achievment.so what am i supposed to do? FORMAT?Reinstall Windows which now work so *lovely* ?start erasing directx files from c:/windows/system & system32 and then MAYBE then istallation of 9.0c begin??? Directx; makes me feel like a pc newbie allover again.and that was 10 years ago P.S I getting ahead of u : everything works fine on my pc,i dont have a problem with drivers and such P.S Sorry about the language.i 'm usually a very lovely person ;) but i am SO FURIUS r8 now thx in advance
______________________________________There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult
Advertisement
Does this have anything to do with programming?

BTW, I'm pretty sure that DirectX 9.x creates a system restore point before installing, so you may be able to do a roll-back and try again.

Also, try installing while in safe mode.

PS: I'm assuming your using windows XP.
Yeah i have WindowsXp.I tried the safe Mode idea but didnt work.The Roll-back is chaotic since directx is 1 of the 1st things i install when i have a fresh installation of windows.if i do it it will take me way back,and i ll have to reinstall evertything from the begging (there goes my day well spent).without being sure i think that Service pack2 installs directx9.b.so a roll-back will isnt a realistic option.

P.S sorry i didnt realize this was a programming forum or so.Rest asure I ll pm the moderator to erase the thread when solve this problem.
P.S2 How the hell did microsoft managed to screw this one SOOOOOOO badly?
______________________________________There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult
Quote:
P.S Sorry about the language.i 'm usually a very lovely person ;) but i am SO FURIUS r8 now


I don't really see that as too much of an excuse. Hurling insults everywhere and blaming everybody but yourself for a problem isn't likely to get you much just. Just calm down, take a deep breath, and give your post a bit more consideration.

That said:
I see an uninstall option for the DirectX SDK on every one of my computers right now, under Add-Remove Programs in the control panel. This MAY be because its the SDK and not just the runtime. But it sounds like if you have dxdiag you probably have the SDK installed? Maybe not.

I do recall having trouble installing a newer SDK version over an older one without uninstalling the older one first.

What didn't work about safe mode?
Hi,

@Samuraigamer:

I've been a victim to this "directx 9.0b to 9.0c" anomally. What worked for me was that I uninstalled service pack 2 (I'm using Win XP Professional by the way) so it was the original Windows again and installed directx 9.0c and after it installed, I put back service pack 2. If you try to search in google, you'll see that a lot of people have this problem as well and they propose different solutions which not surprisingly, don't work for everyone's system. If this method didn't worked for you, search for the others' cause I can't guarantee that this will work on your system as well but I am hoping that it will since I have gone through this problem too so I know how frustrating it is.

cannot install directx9.0c

directx9.0b to directx9.0c
DirectX doesn't come with an uninstaller because it's a core system component. It would be like trying to uninstall explorer.exe.

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

This seems to be a possible solution.

If that fails, though, you could try a windows repair with your windows installation CD -- I recommend that you slipstream SP2 first: instructions here or here (Beginning Users section, ignore steps 3 and 4).

A windows repair is done like this:
- Boot from your Windows XP CD (make sure it's an installation CD, not a recovery CD/DVD) and let it run though its startup, until you get to a menu.
- Press ENTER for Windows installation. No, it's not R.
- Press F8 to agree to the EULA.
- It will now search for previous versions. When you get to an OS selection screen, select your OS (there should be only one) and press R for a Windows Repair. If R is unavailable, then you are probably not using the same edition installation CD as the local installation.
- After that it should take 45 minutes to an hour to finish.
- When you restart the computer, the first thing to do is install all recent windows updates (as anything more recent than what is on the installation CD will no longer be installed).
- You should then be able to install DX9.0c. If you slipstreamed SP2, then DX9.0c should already be installed.

Note that a Windows Repair will keep your data, but as with any major operation dealing with system files, it's a good idea to have a backup. Although I've never had a problem that was not hardware-based.


Good luck.

jfl.
Ok guyz,thx for all the help.problem solved (if a windows user can ever make such a claim).what worked for me was the uninstallation of Service pack 2 as the Black Wind suggested (yeah i know what KuroKage means ^^),and installation of 9.0c afterwards.

Jpetrie : i dont see how u were offended by my 'insults'. did i insult u? the community of the forum?hurled insults everywhere? why blame myself? for not being a better programmer than microsoft's wizards? My KI is in harmony dont worry.anyway thank u too for the input,u 've helped nevertheless. btw,i dont know what SDK is (omfg what a newbie this samurai-guy is).

Superpig : yes thats correct.it a system component.but do u actually think what happend to me is normal in ANY way?is it normal not to be able to update your directx version? microsoft could have made some uninstallation proccess of some kind for directx especially for situtions like that.i remember a few years back some team succeded in uninstalling Internet explorer,which supposedly was a Crucial part of Windows installation (and still *is*).


P.S maybe this thread is outside the bounds of this site,i dont know cause i didnt bother indulging into it.if ya wanna delete it ,i ll gladly pm the moderator to do so.or i can leave it to possibly help some1 else
P.S.2 jfl damn gj !
______________________________________There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult
hello

i m having trouble with the function D3DXCreateFont. it generates an exception in the program. and maybe that is because of the device i supply as the arguement but i cant seem to find the problem... please guide me what maybe the problem... here is some of the source code

P.S: i m using an Radeon X800. are there any compliance faults?

void c_D3DLayer::CreateGraphics ( HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD Flags )
{
if ( !(this->hMainWindow) )
this->hMainWindow = hWnd;

D3DPRESENT_PARAMETERS sd3dpp;
memset ( &sd3dpp, 0, sizeof D3DPRESENT_PARAMETERS );

sd3dpp.BackBufferCount = 1;

if ( dwWidth )
sd3dpp.BackBufferWidth = dwWidth;
else
sd3dpp.BackBufferWidth = 1024;

if ( dwHeight )
sd3dpp.BackBufferHeight = dwHeight;
else
sd3dpp.BackBufferHeight = 768;

if ( Flags & FD3DLAYERFLAGS_BPP32 )
sd3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
else if ( Flags & FD3DLAYERFLAGS_BPP24 )
sd3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
else if ( Flags & FD3DLAYERFLAGS_BPP16 )
sd3dpp.BackBufferFormat = D3DFMT_R5G6B5;
else
{
sd3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
}

if ( Flags & ( FD3DLAYERFLAGS_ZBUFFER | FD3DLAYERFLAGS_HIRESZBUFFER ) )
{
sd3dpp.EnableAutoDepthStencil = TRUE;

if ( Flags & FD3DLAYERFLAGS_HIRESZBUFFER )
{
if ( Flags & FD3DLAYERFLAGS_STENCIL )
sd3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
else
sd3dpp.AutoDepthStencilFormat = D3DFMT_D32;
}
if ( Flags & FD3DLAYERFLAGS_ZBUFFER )
{
if ( Flags & FD3DLAYERFLAGS_STENCIL )
sd3dpp.AutoDepthStencilFormat = D3DFMT_D15S1;
else
sd3dpp.AutoDepthStencilFormat = D3DFMT_D16;
}
}
else
{
sd3dpp.EnableAutoDepthStencil = FALSE;
}

sd3dpp.Windowed = FALSE;
sd3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
sd3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

sd3dpp.hDeviceWindow = (this->hMainWindow);

sd3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
sd3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;

sd3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
sd3dpp.MultiSampleQuality = 0;

D3DDEVTYPE DevType = D3DDEVTYPE_HAL;

if ( Flags & FD3DLAYERFLAGS_FORCEHARDWARE )
DevType = D3DDEVTYPE_HAL;
else if ( Flags & FD3DLAYERFLAGS_FORCEREFERENCE )
DevType = D3DDEVTYPE_REF;

this->InitD3dFullscreen ( dwWidth, dwHeight, &sd3dpp, DevType );
}

void c_D3DLayer::InitD3dFullscreen ( DWORD dwWidth, DWORD dwHeight, D3DPRESENT_PARAMETERS *sd3dpp, D3DDEVTYPE DevType )
{
if ( this->Graphics )
return;

HRESULT r = 0;

this->lpd3d9 = Direct3DCreate9 ( D3D_SDK_VERSION );

if ( !(this->lpd3d9) )
{
MessageBox ( this->hMainWindow, "Cannot Initiate Direct3D ( Direct3DCreate9 )", "ERROR", MB_OK );
return;
}

r = this->lpd3d9->CreateDevice ( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
this->hMainWindow,
D3DCREATE_SOFTWARE_VERTEXPROCESSING /*| D3DCREATE_PUREDEVICE*/,
sd3dpp,
&(this->lpd3ddevice9) );

if ( FAILED ( r ) )
{
MessageBox ( this->hMainWindow, "Cannot CreateDevice", "ERROR", MB_OK );
return;
}

//a RECT structure for the srceen dimensions may come
RECT ScreenRect = { 0, 0, dwWidth, dwHeight };

r = this->lpd3ddevice9->GetBackBuffer ( 0, 0, D3DBACKBUFFER_TYPE_MONO, &(this->lpframebuffer ) );
if ( FAILED ( r ) )
{
MessageBox ( this->hMainWindow, "Cannot get screen buffer", "ERROR", MB_OK );
this->DestroyAll ( );
PostMessage ( this->hMainWindow, WM_QUIT, 0, 0 );
}
}

void c_D3DLayer::DrawString ( DWORD x, DWORD y, D3DCOLOR color, const CHAR* str )
{
HRESULT r = 0;

if ( !(this->lpframebuffer) )
return;

DWORD Count = -1;
LPD3DXFONT lpd3dfont = NULL;
HFONT hFont = (HFONT)GetStockObject ( SYSTEM_FONT );

r = D3DXCreateFont ( /*NULL*/lpd3ddevice9, hFont, &lpd3dfont );

MessageBox ( this->hMainWindow, "", "", MB_OK );
if ( FAILED ( r ) )
{
return;
}

RECT TextRect = { x, y, x + 1, y + 1 };

lpd3dfont->Begin ( );

//Calculating rectangle for the text
lpd3dfont->DrawTextA ( str, Count, &TextRect, DT_CALCRECT, 0 );

lpd3dfont->DrawTextA ( str, Count, &TextRect, DT_LEFT, color );

lpd3dfont->End ( );

lpd3dfont->Release( );
}
@Safiullah: You should make a new thread about this.
And [ source lang="cpp] [/ source] tags drastically improve readability of long source code postings.

This topic is closed to new replies.

Advertisement