This is archived copy of currently unavailable Nem's Tools website, restored from Web Archive.
Download section now provides links to both Web Archive and to this unofficial Github mirror.
BSP Viewer v1.5.6 Full - NemPosted: Apr 17th, 2004 - 5:06:58 pm
About:

BSP Viewer v1.5.6 - BSP Viewer and all the files you need to run it (except the .NET Framework).

Download from Web Archive: Download from unofficial Github mirror: Runtimes: (Required)

.NET Framework v1.1 (23,698 KB Executable) - BSP Viewer is written in C++ .NET and such as requires the .NET runtimes. The .NET runtime is available as a Windows Update. v1.1 is required.

Download:
Modified: Apr 14th, 2006 - 1:38:17 pm[ 138087 Views ]

1. margusmagiPosted: Jun 12th, 2004 - 1:14:27 am

gunfight

2. Dev1LPosted: Jun 19th, 2004 - 12:39:51 am

happy

3. ArtemPosted: Jul 19th, 2004 - 1:46:21 pm

yeahbabyyeahbabyyeahbaby

4. targétPosted: Jul 20th, 2004 - 9:41:01 am

free Hurray! Finally an operable HL bsp viewer!

5. quakeglenPosted: Jul 26th, 2004 - 4:40:39 am

It give me an error

Error inicializing OpenGL

what can i do?

6. NemPosted: Jul 26th, 2004 - 1:27:58 pm

Try the latest build for improved error messages then tell me what the error is.

7. ezitaPosted: Aug 18th, 2004 - 2:19:21 am

I get this error:

Error initializing OpenGL.

BSP::Initialize() Failed.

I'm using XP Pro SP1, MS .net installed , bsp viewer 1.2.2 and a gforce mx 200, any ideas?

8. L. DukePosted: Aug 18th, 2004 - 7:49:03 am

I get the same error.

Win XP Pro SP1
MS.net 1.1
BSPViewer 1.2.2
Mobility Radeon 9000

I tried both the archive and the install exe.



9. NemPosted: Aug 18th, 2004 - 9:21:01 am

BSP Viewer requires multitexturing support and two texture units to render a BSP in a single pass. If you are getting the error BSP::Initialize() Failed. then you don't have the minimum system requirements to run BSP Viewer.

I am surprised that a GeForce mx 200 and a Radeon 9000 don't have multitexturing support (any recent card should) but it never helps to go for the cheaper video cards.

Support for double pass rendering may be added in the future (in fact I will try to focus on it for the next release) but it's not likely to happen anytime within the next three weeks.

Thanks for posting your hardware, that always helps,
Nem

10. Snuffz0rModified: Aug 21st, 2004 - 8:36:52 am

i get the same error with an radeon 9800 pro :).
having the same software installed as the others with the error

11. BitkaPosted: Aug 30th, 2004 - 8:33:04 pm

When I try to start it I get C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorwks.dll could not be loaded.
I tried to run windows update, and it took a very long time since I'm on dialup. Could someone please help me?

By the way, this viewer is very sweet especially for me since I don't have HL or CS on this computer and I lost my disc.

12. NemPosted: Aug 30th, 2004 - 10:10:33 pm

The .NET framework is not selected to update by default, you have to find it in whichever category it is located in and select it for update.

13. BitkaPosted: Aug 31st, 2004 - 8:21:23 pm

Could someone please host the file so I don't have to spend another half hour running update?

14. NemPosted: Aug 31st, 2004 - 8:48:21 pm

Well the link below GCFScape's download will point you to a .NET installer hosted by Microsoft (and as far as servers go they don't get much faster then Microsoft's).

15. SorcererPosted: Sep 3rd, 2004 - 5:03:22 pm

Hm.. nice tool, if I could use it :P

It loads up properly, but as soon as I hit "open" it hangs and I have to terminate the process by taskmanager.
.net 1.1 is installed on win2k system

16. NemPosted: Sep 3rd, 2004 - 8:42:21 pm

I remember someone with the same problem only with MAPViewer. In that instance I came to the conclusion that based on where the program hung it had to be a problem with the .NET framework. One solution is to shell execute your BSP files (double click them and tell windows to use BSPViewer to open them).

17. SorcererPosted: Sep 4th, 2004 - 9:37:44 am

Nice, it works with shell execution now :)
But still one problems persists with it then, due to the problem with opening something from the BSP viewer itself, I also can't set the root directory in the program. I had to do that manually by editing the cfg.
Oh and a suggestion, make it possible to set more than one root directory for textures, would be quite handy if you work with old won hl and steam hl, not having to switch directories.
Anyway, nice job with the viewer. :)

18. pappacaloPosted: Oct 14th, 2004 - 6:42:50 am

I would very much get my hands on a editor for gcf-files that allows deleting files from the gcf, anyone who knows of such a tool ??

19. SlackillerPosted: Oct 14th, 2004 - 7:40:23 pm

Working fine for me.... good job Nem


free

20. liberal.nyulismPosted: Feb 8th, 2005 - 7:49:49 am
Love for some help....
Crashes on Open with unhandled exception. Log is below. System is xppro, sp1,1gigRAM,NV6800GT

************** Exception Text **************
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
at _CxxThrowException(Void* , _s__ThrowInfo* )
at ?Load@CBSP@Engine@BSPViewer@@$$FQAE_NPBDW4ETextureFilter@@@Z(CBSP* , SByte* cBSPFile, Int32 TextureFilter)
at BSPViewer.Engine.CBSPEngine.Load(CBSPEngine* , SByte* cBSPFile)
at BSPViewer.CBSPViewer.Open(String sFileName, Boolean bAddToRecentFiles)
at BSPViewer.CBSPViewer.Open(String sFileName)
at BSPViewer.CBSPViewer.btnOpen_Click(Object sender, EventArgs e)
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

21. NemPosted: Feb 8th, 2005 - 11:24:18 am
Woops, commented out the CBSP::Load() try catch block by mistake.

Anyways, If you are loading a Half-Life .bsp make sure you have v1.5.1 (v1.5.0 had a bug). If you are loading a Source .bsp then know that BSP Viewer does not support Source .bsp files. It should generate a error message but I commented out the try catch block (will fix this).

If it is a Half-Life .bsp file and you have v1.5.1 then please send me the .bsp file (it could be something specific).

22. kimchiPosted: Mar 31st, 2005 - 1:31:01 pm
hi , i get an error

if i wanna open the bsp file :

Error loading : "d:/blabla"


help :)

23. soontekkModified: Jul 3rd, 2005 - 6:23:22 pm
This tool is very promising
I try to open a hl2 bsp file but i get the following error message:
Loading BSP...
Loading lumps...
Error loading BSP file: Invalid Half-Life BSP file format.

The file is a map i played in hl2
Any ideas
Maybe a link to a map that will work so i can see
thx
soon
where
tekk

24. NoBodyPosted: Jul 6th, 2005 - 10:10:21 am
This is the half-life bsp viewer not the half-life 2 bsp viewer, witch hasen't been released yet as it is still in development.

25. BladePosted: Aug 22nd, 2005 - 8:51:26 pm
sad Why does BSP viewer not working?? bleeh

26. NoBodyPosted: Aug 23rd, 2005 - 12:55:56 pm
It does work.
What is your problem with it, are you getting any errors or where does it stop to work.

27. SilencerPosted: Oct 19th, 2005 - 12:01:20 pm
Nem hey it's silencer again..
how's work on your bsp source going?
i got a new pc to handle constant loading between CS and hammer but you know how easy it is with a viewer :P

28. NemPosted: Oct 19th, 2005 - 5:46:58 pm
It's going, albeit rather slow. I'm working on a few other projects at the same time (such as VTFLib and TG v4), and with contract work and full time university, I just don't have the spare time I used to have.

Hopefully I'll get something out soon.

29. SilencerPosted: Oct 20th, 2005 - 12:33:21 am
heh no rush i too know college and it's not easy

30. MichaelPosted: Oct 25th, 2005 - 6:08:39 am
I keep getting "Error loading BSP file: Unknown error" when I try to open one of the Half-Life:Blue Shift levels.

31. the-copyPosted: Oct 26th, 2005 - 3:26:49 pm
Can you edit included WADs in a file? That would help me ALOT, i would like to change some textures to grayscale.

32. NemPosted: Oct 26th, 2005 - 7:31:37 pm
Michael:
I never tested BSP Viewer with Blue Shift maps (because I don't own Blue Shift) so it is possible that the format is slightly different and may be causing loading errors.

The-Copy:
No, that is not possible. It would also require a fair bit of work so I have no plans to add that feature.

33. MichaelPosted: Oct 27th, 2005 - 6:57:30 am
Nem, If you did have a Blue Shift BSP file, would it be easy for you to adjust BSP Viewer to open it?

34. NemPosted: Nov 1st, 2005 - 12:14:21 pm
Possibly, depends on how different they are.

35. MichaelPosted: Nov 3rd, 2005 - 8:35:26 am
The-Copy:
If you want to edit the .WAD files, you can do that with a program called "Wally".

36. BluefangPosted: Nov 3rd, 2005 - 2:56:58 pm
Michael:
That wont help because he wants to edit the textures compiled into a map (BSP file). Wally can't do that AFAIK.

37. NoBodyPosted: Nov 4th, 2005 - 4:48:31 am
The differenc betwean hl and bs bsp's is that the first two sets of 8 byte chunks in the .bsp are switched, so it should be very easy to alow bspviewer to open bs maps.

38. oblivionPosted: Dec 27th, 2005 - 5:59:48 am
Need help....
nem I know u like ns and u use this program for ns so u can help me :P........

ok with this.... it cant see any of the ns entities like the hive or cc...... and u cant see the spawn points either..... if u can help me with this that wud b great!

i think its coz u need to add the entities from ns but it doesnt ahve a .gfc

please email answer to jacob_wassup99@hotmail.com

thank u

39. JipiiPosted: Dec 27th, 2005 - 7:15:44 am
It seems nice. But when I import/export it to .3ds file and try to import/export it to 3dsmax it whines something that the file ain't valid or something like that what

40. NemPosted: Dec 28th, 2005 - 4:39:35 pm
oblivion:

BSP Viewer doesn't do anything MOD specific, such as rendering the hives. You can see the hives locations if you select them in the entity list, an orange box will appear where they are located.

Jipii:

BSP Viewer uses a 3rd party library for .3ds support, the actual .3ds format has never officially been released so there may be problems with the library. You might try importing it into another program or disabling the materials.

I plan to add HL .bsp support to the Object Viewer I've been working on as well as basic export support for all supported formats (probably to .obj because it is a well documented format).

41. the-copyPosted: Jan 8th, 2006 - 6:58:00 am
Nem:

okay. but is it possible? i mean not possible with bspviewer but possible, as in.. possible? :p

42. NemPosted: Jan 8th, 2006 - 1:25:35 pm
Umm, ya, this is BSP Viewer's code for loading the textures:

[code]
int CBSP::BuildBSPTexture(char *cName, DWORD dwWidth, DWORD dwHeight, LPBYTE lpPalette,
LPBYTE lpData, ETextureFilter TextureFilter)
{
// Setup texture.
int iTextureIndex = this->TextureManager->GetTextureIndex(cName);

// Check if the texture is loaded.
if(iTextureIndex != -1)
{
return iTextureIndex;
}

CTexture Texture;
Texture.Width = dwWidth;
Texture.Height = dwHeight;

if(*cName != '{')
{
// Texture is a normal RGB texture.

Texture.BPP = 3;
Texture.Data = new unsigned char[dwWidth * dwHeight * 3];

for(DWORD i = 0; i < dwWidth * dwHeight; i++)
{
for(DWORD j = 0; j < 3; j++)
{
Texture.Data[i * 3 + j] =
lpPalette[(unsigned int)lpData[i] * 3 + j];
}
}
}
else
{
// Texture has a transparent index.

LPBYTE lpAlpha = lpPalette + 255 * 3;

Texture.BPP = 4;
Texture.Data = new unsigned char[dwWidth * dwHeight * 4];

for(DWORD i = 0; i < dwWidth * dwHeight; i++)
{
bool bAlpha = true;

for(DWORD j = 0; j < 3; j++)
{
Texture.Data[i * 4 + j] =
lpPalette[(unsigned int)lpData[i] * 3 + j];
bAlpha &= Texture.Data[i * 4 + j] == lpAlpha[j];
}

if(bAlpha)
{
// Color value is alpha mask.
for(unsigned int j = 0; j < 4; j++)
{
Texture.Data[i * 4 + j] = 0;
}
}
else
{
// Color value is not alpha mask.
Texture.Data[i * 4 + 3] = 255;
}
}
}

iTextureIndex = this->TextureManager->Load(Texture, cName, TextureFilter);

delete []Texture.Data;

return iTextureIndex;
}

bool CBSP::BuildBSPTextures(ETextureFilter TextureFilter)
{
LPBSPMIPTEXTURELUMP lpMipTextureLump = (LPBSPMIPTEXTURELUMP)(this->lpTextureData);

char cMessage[512];
INT iTexturesLoaded = 0, iSubTexturesLoaded;

//
// Load embedded textures.
//

this->Log->Push(" Loading embedded textures...", Types::CColor::Gray);

// Loop through each lump in the BSP file.
iSubTexturesLoaded = 0;
for(INT i = 0; i < lpMipTextureLump->MipTextureCount; i++)
{
// If the lump doesn't exist don't process it.
if(lpMipTextureLump->Offsets[i] == -1)
{
continue;
}

LPBSPMIPTEXTURE lpMipTexture = (LPBSPMIPTEXTURE)((LPBYTE)this->lpTextureData
+ lpMipTextureLump->Offsets[i]);

// If the lump isn't embedded don't process it.
if(lpMipTexture->Offsets[0] == 0)
{
continue;
}

// Load the lump.
DWORD dwSize = lpMipTexture->Width * lpMipTexture->Height;

LPBYTE lpData = (LPBYTE)lpMipTexture + lpMipTexture->Offsets[0];
LPBYTE lpPalette = lpData + dwSize + (dwSize / 4) + (dwSize / 16)
+ (dwSize / 64) + 2;


this->BuildBSPTexture(lpMipTexture->Name, lpMipTexture->Width,
lpMipTexture->Height, lpPalette, lpData, TextureFilter);
iTexturesLoaded++;
iSubTexturesLoaded++;
}

sprintf(cMessage, " %d textures loaded.", iSubTexturesLoaded);
this->Log->Push(cMessage, Types::CColor::Gray);
}
[/code]
Where this->lpTextureData is the texture data lump (lump 2) loaded into memory. All you would have to do is alter the palette to convert it to greyscale. The lighting data is also RGB so you might want to convert it to greyscale. I'm not sure if the lighting data lump (lump 8) is tightly packed, but I suspect it is.

43. adyarcPosted: Feb 27th, 2006 - 2:09:41 am
I get this error:

"halflife.wad not found"
"Failed to load gfx\env\snowft.tga."
"Failed to load sky."

How to setup the path for ".wad" textures and ".tga" enviroment.


Thanks!

44. NemPosted: Feb 27th, 2006 - 12:41:16 pm
The setup instructions are located in the readme.txt file.

45. OzwaldPosted: May 4th, 2006 - 10:09:37 am
Any chance of getting the source? I downloaded the old 'BSP View', but the code is quite a mess...I can barely follow it.

46. mastermindsroPosted: Nov 4th, 2006 - 4:05:24 pm
Daamn! You guys make some fantatsic tools & free too!
You're the best > Keep up the outstanding releases!

47. edman747Posted: Mar 29th, 2007 - 9:06:32 pm
hello,
thanks for all the cool tools. I use gcfscape to yank stuff out of pak & gcf files. use crafty very little. it does not do so well with the half-life single player maps, converted for svencoop. get the most use from bspviewer. it allows me to click on a door or whatever then i can see the model number. some bsp have been ripented and there are lines commented out with "//" at the begining. bspviewer has some problems with these comments and will not read the rest of the entity info.

1. would there be any updates planned to handle "//" comment lines?

have an old monitor can only adjust gamma and brightness for normal desktop. 3d graphics like games are to dark to see.
setup my ATI 9000 color properties to tweak gamma automatically when in 3d graphics mode like a game. works well.

2. bspviewer and crafty are very dark. do they set the graphics mode to 3d like a game?

tia


48. NemPosted: Mar 30th, 2007 - 11:35:16 am
edman747:
1. would there be any updates planned to handle "//" comment lines?

I didn't know you could do this, I'll try to release a fix soon (though I'm quite busy at the moment so it might not be for a week or two).

edman747:
2. bspviewer and crafty are very dark. do they set the graphics mode to 3d like a game?

You can change the BSP gamma in Crafty's options, and BSPViewer's BSPViewer.cfg file.

49. NoMoreErrorsPosted: Aug 30th, 2008 - 6:49:44 am
adyarc:
--------------------------------------------------------------
I get this error:

"halflife.wad not found"
"Failed to load gfx\env\snowft.tga."
"Failed to load sky."

How to setup the path for ".wad" textures and ".tga" enviroment.


Thanks!
--------------------------------------------------------------
Nem:
--------------------------------------------------------------
The setup instructions are located in the readme.txt file.
--------------------------------------------------------------
But you said how to set ".GCF & .PAK" up on readme.txt...
1st part:
--------------------------------------------------------------
I have same problem always. If I open a bsp, it says "Failed to load sky." with red color. ALL MAPS! I'm playing Sven Co-Op and I want to play some multiplayer maps on lan mode.
--------------------------------------------------------------
2nd part:
--------------------------------------------------------------
OK, OK... Skip 1st part. I exported .map file. And I tried to open that .map file. But now hammer editor says:

1st map:
-------
"For your information, 79 solids were not loaded deu to errors in the file."
-------
2nd map:
-------
"For your information, 1634038899 solids were not loaded deu to errors in the file."
-------
...
1st map can be load with hammer editor,
2nd map can't be load with hammer editor: Because, it had 1634038899 error happy

50. NoMoreErrorsModified: Aug 30th, 2008 - 6:55:33 am
And, ".WAD" files can't be load but program doesn't says any errors of .wad errors...

51. NemPosted: Sep 16th, 2008 - 10:51:24 pm
Well, it says it couldn't find halflife.wad. Try setting the WADRoot variable (Options->Setup) to the folder that your halflife.wad file is located in.

52. zangetsuPosted: Mar 24th, 2009 - 4:49:55 am
it works but wouldnt it be nice to be able to view the maps from half-life 2 and wolfenstein enemy territory ?

53. vAAnPosted: May 22nd, 2009 - 7:27:48 am
This is just what i need. thanks !!

Nem's Tools v2.0 © 2006 Ryan Gregg.
Execution time: 0.07963s; Queries: 14.