BSP Headquarters



BSP .96d Released... - 10/10/2007
So, things seem to be winding down over here. My life is at one of those crossroads again, and I don't know if I will have any more time to commit to BSP. In case I don't return to development, I want to make this final release for everyone. Although the code is incomplete, I am making this release because some cool features have been added. If there are any major bugs in this, just let me know and I will do my best to get them fixed. Quake forever! :)


.EXE Only release, so copy over a BSP .96 install.

Highres textures:

BSP can load "highres" textures now. This works by finding tga,jpg, or png images in the configured highres directory that match the .wal texture name. Yes, wals (texture directories and .wads) are still needed to determine the name of the highres texture.

The highres texture path accepts a semicolon-separated list of paths. if the path is set to "A:\;B:\;C:\", for the texture "tex", BSP will first search for "A:\tex.jpg", "A:\tex.tga", "A:\tex.png". If not found, it will search in directory "B:\tex...", then "C:\tex...". If not found, it will just use the wal texture.

All highres textures in the highres texture directories are loaded into memory at once. If you do not have enough memory (video or system), BSP will crash or stop responding! If you have a low memory system, create a highres directory that has only the textures you need for your map. Loading all textures from the Quake1 Retexture Project on my system bumps BSP memory usage close to 400mb.

Next, if you are loading a lot of highres textures, don't panic, it may take some time. Watch the load progress on the status bar at the bottom left.

If BSP renders really slow with highres textures, make sure "gl_texturemode" is set to "GL_NEAREST_MIPMAP_NEAREST"


To use skyboxes, put your skybox textures in a directory. Set "gl_skybox_path" to that directory. Set "gl_skybox_name" to the name of the skybox BEFORE the up/bk/lf/rt/dn/ft in the filename (and underscores can be ignored). For example, if one of your skybox textures is "purple_chaos_bk.png", set the name to just "purple_chaos". Then set "gl_skybox" to 1.


The Squirrel scripting engine was added (try typing "print(2+2)" in the console, it cannot do much more than this, anyways). If you mistype something in the console and see a funny error message, this is why. The only functions implemented into it are "set" and "cmd". In the console: 'set("gl_highres",1)' is equivalent to 'gl_highres 1', and 'cmd("cm_filenew")' is equivalent to 'cm_filenew'. Sorry it is not more exciting than that.

There is a debug command named "cm_hack". It will combine the XY and 3D views into one window. It is buggy and incomplete.

Download the new version here

New features:

  • Added new support for loading jpg,tga,png image formats.
  • Added "gl_skybox" setting, set to 1 to enable skyboxes. "gl_skybox_path" sets location of skybox images. "gl_skybox_name" sets filename of skybox to load. Name matches to 6 images ending with up,dn,ft,bk,lf and rt before the file extension.
  • Added command "CM_LIST_SKYBOX" to display a list of skyboxes in the configured directory.
  • Added "gl_enable_stencil" setting. Required for skyboxes, but can be disabled if necessary.
  • Added high-res texture support in GL mode. High-res textures are loaded from a specified directory and match the original .wal texture name. Added two settings to the "Game" group so textures can be configured per game: "gl_highres" to enable/disable high res textures, and "gl_highres_path" to set a semicolon-separated list of paths to search for textures. Using high-res textures will increase your memory usage and may slow down rendering a bit. :)
  • Entities can be rendered translucent with "gl_trans_ents" setting.
  • Improved handling of leak files. GL mode will render .pts and .lin with thick lines.
  • Fixed crash on Win98 when opening help file.
  • "Replace texture" will update 3d view.
  • Added command "CM_SHOW_PALETTE" to display the current palette.
  • Added drag and drop capability - open maps and images (jpg,tga,png) by dragging files onto the main window.
  • Removed "BSPBuild" support (sorry if you used it, I had plans to replace this that went unfinished)
    Tip to enable vertex dragging - 7/18/2007
    In the newest release, one rather important feature was left disabled in the included Bsp.cfg. The setting "vertex_select_mode" should be set to option "2" instead the default of "0" so vertex dragging can be enabled.

    Also, I forgot to add an option to the menu to show the new preferences dialog with all settings visible. To get around this, the main preferences dialog can be accessed by opening the Color dialog and choosing "All" from the Group dropdown list. The command to show the new preferences dialog is CM_BSPSETTINGS.

    BSP .96c update for Windows 98 users - 7/14/2007
    This update fixes the issue of "Save" and "Open" dialogs not showing under Windows 98. It is necessary to download only if you plan to run BSP on Windows 98. This is an executable update and must be copied over a BSP .96b install. Download the update here.
    BSP .96b Released! - 7/10/2007
    Lots of fun new features, get it before Quake goes out of style!

    EDIT: A quick adjustment was made to the version number in the .exe (forgot to change 'a' to 'b'). And just a reminder that the help file has been updated and that there is an HTML version of the documentation available on the website.

    Download the new version here

    Changes and New Features for BSP .96b

  • Zooming in XY with mousewheel will center zoom on the mouse cursor.
  • Added console window. Features history buffer, custom font and fore/back color, tab completion for commands and settings.
  • Reformatted settings: Bsp.ini moved to Bsp.cfg, and Game.ini moved to Game.cfg. Game.cfg can specify any option available in Bsp.cfg to further customize individual game configs.
  • Added commands CM_WRITECFG to save settings from all groups except "Game" to bsp.cfg, and CM_WRITEGAMECFG writes the "Game" group settings to the current game.cfg file. Note that these will drop any settings from the excluded groups.
  • Relative paths allowed in settings. Partial paths are relative to main BSP dir. Allows "." and ".." dir names.
  • Toolbar bitmaps now stored in "Bsp\Settings\gfx\toolbar" dir. Bitmap filename pairs to command name.
  • Added config file "menu.cfg" to allow customized menus.
  • Keyboard shortcuts update on menu names.
  • Renamed a lot of commands and settings, and organized them into groups.
  • Added config file "cmdstr.cfg". Each line defines the menu text and description for a command.
  • Color values can be stored as "255 255 255" (old way), "200" (palette index), or "129AEF" (6 digit hex number).
  • Added version and border to splash screen.
  • Added setting "extrude_depth", set to 0 to use gridsize or any other value to use that depth when extruding.
  • Fixed bug in script parser where block comments "/**/" were prematurely ended by a single slash.
  • Timer-refresh shows redraw in GL mode, fixed start and stop points.
  • Exporters are listed alphabetically, CM_EXPORTER0 will point to the first exporter in the list.
  • Added "gl_brightness" setting. Set 0 to disable, or value 1 or greater to increase GL brightness.
  • Added "gl_selection_wiremode" setting. Value 0 shows regular outline, 1 draws entire wireframe, 2 draws hidden lines with the brush outline color.
  • Improved rendering of outlines in GL mode.
  • Fixed bug: MD2/Q2 model textures show in software mode.
  • Improved scrollbar behavior on the texture window.
  • Pak texture loader will no longer load .wal files from the root "textures/" directory (region.wal in particular).
  • Fixed bug in software renderer where drag-shifting textures on outlined faces would be offset by 1 pixel.
  • Added option "gl_texturemode", set to GL_LINEAR or GL_NEAREST for smooth or sharp pixel edges on textures, respectively.
  • Log file "bsp.log" created on startup. Logs fatal errors and messages written before interface is initialized.
  • Fixed "look at selection" software mode drawing problem.
  • Fixed bug that caused Merge Brushes to merge no more than one brush at a time.
  • Added option "entity_inline_help" to show the help inline on the entity window.
  • Fixed the Make list.
  • BSP.exe now has version info.
  • Fixed to run under Win98.
    Development update - 7/6/2007
    Just an update that BSP development is still underway and a new version will be completed soon. Here are some screenshots of new features to come.

    Selection wireframe screenshot
    Show wireframe through selected objects.

    New settings dialog screenshot
    New preferences interface.

    Console window screenshot
    BSP console window, allows changing settings and executing commands. Features tab complete and a history buffer. Error and diagnostic messages are printed here, too.

    BSP .95e Released! - 1/7/2007
    This release fixes some bugs and adds a few minor features. This is an .exe-only release, so copy it over an existing install of .95c.

    Download the new version here!

    Changes and New Features for BSP .95e

  • Fixed "blank render" issue with OpenGL.
  • Improved map loading code - QuArK maps should load now.
  • Fixed entity outline color in software renderer.
  • Added face count to map info.
  • Fixed mirror, flip and rotate causing brushes to misalign from grid.
  • Surface window: Set Flags and Set Contents buttons will update textures in 3D view.
  • Added texture search.
  • Set option "zero_crosshair=2" in bsp.ini to make XY crosshair span to world edges.
  • XY coordinates will draw when grid is hidden.
  • Added bsp.ini option "full_res_texture". set to 1 for full sized textures in gl, or 0 to limit size and conserve memory.
  • +Det and -Det buttons now update 3D view.
  • XY views: Green dot on detail brushes draws in the correct place again.
  • Customize main title with "apptitle" setting in game.ini.
  • "Save As" gives warning if map name contains spaces. Disable message with "no_warn_spaces=1" in bsp.ini.
  • Added 2 new buttons to mouse configs for mice with more than 3 buttons. Button names "X1" and "X2".
  • Added option for Merge Brushes to compare contents and flags.
  • "Sphere" option removed from Make list.
    The correct axis... - 10/14/2006
    For those who use WQBSP165 to build their Quake 1 maps, you must specify the -alternateaxis command line option. Without it, textures in your compiled level may not appear correctly, especially on brush faces angled at 45 degrees.
      From WQBSP165.txt:
      Supports "-alternateaxis" which allows you to choose between which axis to use in natural texture mapping. Default will look as it does in Worldcraft.
    i.e., WQBSP165's default behavior is to compensate for a bug in WC.
    BSP .95c Released! - 10/7/2006
    This release fixes a lot of bugs and adds some new features, especially shading and translucency to GL, models rendered in GL, and configurable keyboard layout. Some important bug fixes include the handling of surface flags in the surface window and clipper drawing in XY views. And finally, included is a new (and unfinished) help file in .chm format.

    Download the new version here!

    Changes and New Features for BSP .95c

  • Texture shifting in 3D window is completely fixed.
  • New handling for window positions. Windows can only be saved as shown, hidden or minimized. Z-order is saved.
  • Fixed camera locking bugs. Handling of 0/1 flag for "lock_cameras" in bsp.ini has changed, so change 0 to 1, or 1 to 0 in old configs to retain the same behavior!
  • Added offset to camera when locked. See options "lock_camera_ofs_x/y/z".
  • Camera angle drawn in Front and Right views.
  • Added shading, fog, translucency to GL. See new gl_* settings in bsp.ini.
  • Added command CM_KBSETTINGS to show keyboard configuration dialog, and added menu option to File->Preferences.
  • Cleaner drawing outlines in GL mode.
  • Added extrude face command. Creates new brush from selected face. Command name "CM_EXTRUDE_FACE".
  • Added option "outline_use_group" to bsp.ini. Set to 1 for brush outlines to use group color in GL mode.
  • Added option "look_at_sel" and command "CM_LOOK_AT_SEL". Camera will look at selection for strafe, move up/down and camera drags. Camera will stay fixed on selection when selection is dragged.
  • Fixed bug: "right" XY view won't make invalid wedge brushes...
  • Q1 and Q2 models will render in GL mode.
  • Model outlines rendered with entity color. Disable model bounding box with "gl_no_model_bbox" option.
  • Added toolbar to group window. Show/hide with "group_toolbar". Configure buttons in groupbar.ini.
  • Added option "flymode" to move camera up/down based on pitch in forward/back navigations.
  • Added option "flats_like_texture" to color flats with color like texture.
  • Added recent files list. Recent files are tracked per game type. "num_recent" in bsp.ini sets number to show.
  • Added "Show Key Mappings" to Help menu, and removed "Help Window" option.
  • Current face will stay selected after brush manipulations.
  • Current face edges in XY won't be obscured by other selected brushes.
  • New snap option: Set "snap_back" to 1 and dragging edges will snap back to grid rather than just moving by grid size. Menu Brush->Snap Back.
  • Improved vertex dragging: when dragging a vertex in old versions, one face would sometimes get "stuck" and the vertex would stay aligned to one face rather than move freely.
  • Fixed mouselook: now takes into account mouse delta. Changed defaults for mlook_vert_step/mlook_horiz_step.
  • Fixed memory leak during brush rotations.
  • Fixed bug: Certain menu/toolbar items (regions, copy brush) wouldn't enable after a selection change.
  • Added option "clippers_stay", clippers will remain visible after carve and split when set.
  • Added new command "CM_CLIP_CUR_FACE" and menu "Clip->Create from Current Face" to show 3 clippers defining selected face.
  • Drag clip points when adding to create next clip point where the mouse is released.
  • Added option "track_clippers" to control clipper drawing in XY. Set 0=update after, 1=update current XY, 2=update all XY.
  • Added option "clipper_autoflip". When set, adding clip points automatically leaves the portion of the selection containing the center point (cuts off smaller piece). Added menu item "Clip->Auto Flip"
  • Added option "clipper_mode". Set to 0 for normal 3 point mode, set to 1 for axial 2 point mode. Added items to "Clip" menu.
  • Fixed bug: clippers will always snap to grid.
  • Fixed bug: clippers draw in GL mode again, clip points are connected too.
  • Changed default clipper shortcuts: "C" will carve, and "/" will flip clippers.
  • "Mode" command in 3D window will change action of left-mouse only instead of applying to all mouse buttons.
  • Increased max token length to reduce occurance of map loading error "Token too large on line xx".
  • Fixed bug: remaining portion of brush during clip operation is shown again.
  • Changed default settings in bspmouse.ini. Now prioritizes selecting clip points first, next camera, then brush points.
  • Entities won't show a selected face anymore.
  • Fixed bug: selection rectangle won't flicker.
  • Edge knobs and selection lines draw in GL 3D again.
  • Fixed angle drawn on pitch control in GL 3D.
  • Fixed bug with finding exe directory on startup.
  • Fixed bug: exit from menu or toolbar won't crash.
  • Changing entities from entity window will redraw 3D view
  • Fixed bug in CM_JUMP (alt+j) command that prevented it from jumping.
  • Added more error handling to wad loader, (blood2.wad won't crash anymore)
  • Set 3D window background color in GL mode.
  • Brush center knobs won't "shift" in XY.
  • GL mode is default. Change with "gl_mode_default" option.
  • Fixed bug: origin brushes incorrectly shifted all other brush textures.
  • Fixed bug: Offset copy/move will handle zero values correctly.
  • Minimized windows should restore properly when switching window configurations.
  • Added "Select One" mode to 3D window and "SELECTONE" command to Bspmous3d.ini. Selects a single brush at a time.
  • Added "Strafe Camera" mode to 3D window and "NAVIGATE_STRAFE" to Bspmouse3d.ini. Mouse navigate with strafe.
  • Added command and toolbar button "CM_JUMP_SEL_XY" to move selection to center of XY windows.
  • Fixed bug with surface flags update in surface window.
  • Fixed hang if bsppos.ini was missing.
  • Added "Goto group in XY" option to group window menu.
  • Truncated trailing zeroes in surface window and in saved .maps.
  • ALT key is configurable in bspmouse.ini and bspmous3d.ini.
  • Fixed bug: models will load from file now, must be in equivelent path/subdir of game's .pak file.
  • Fixed bug: .lin leak files will render correctly.
  • Fixed bug in software renderer: textures were incorrectly offset by 1 pixel.
  • GL: Got rid of "use_mipmaps" options. Always using mipmaps now. Updated texture settings dialog.
  • Added command "CM_NOOP". Can be used to disable default key mappings.
  • New brush center calc.
  • CLIPPLANEDRAG will redraw in XY windows correctly.
  • Added alternate snap method "Snap Planes". Added menu Brush->Snap Planes and command "CM_SNAP_PLANES". Snaps all plane points to grid.
  • S,T,R texture values displayed as integers.
    Extrude face command - 8/21/2006

    Use "extrude face" to quickly create complex architecture

    New features - 8/8/2006
    If you are a BSP user, you should stop by #level_design on Myself and other mappers hang out there, so you can get questions answered or just talk to other BSP users. I will also give out top-secret latest builds to those who want it...

    Here are some screenshots showing off recently added features.

    Drag multiple brush edges at once

    Brush edges can be drawn with group color

    OpenGL Transparency - 7/20/2006

    Live from QExpo - 7/19/2006
    Check out my BSP Quake Editor booth at QExpo. See the small bit of new content there... :)
    In the works - 7/13/2006
    Here is an update on some features I have been working on that you can expect to see in a near-future release. Notable items include a dialog to configure BSP's keyboard and enhancements to the OpenGL renderer. In the renderer, I have added shading and fog, and have optimized a lot of the rendering routines. Here are some screenshots.

    BSP .94b Released! - 7/2/2006
    BSP lives again! It has been 8 years since a release and at last a new version is finally here. Thanks Yahn for all of your hard work up to .93b, and also for passing along the source code. Get the new version from the downloads page.

    What's new? The code base has been ported from Borland's Win3.1/Win95 OWL framework to pure Win32 API. The source now builds on a modern compiler with new optimizations that give a noticeable increase in performance. I have fixed numerous bugs, memory leaks, and buffer overflows. I've added many features that I've always wanted in BSP, such as cleaner 3D rendering, mouselook, handling of the mousewheel and drag-navigation in 2D windows. Remaining work includes multi-level undo, fixing texture manipulation, OpenGL enhancements, UI makeover, configurable keyboard layout, and lots more.

    I hope you enjoy it!


    Changes and New Features for BSP .94b

  • Added "Auto" render quality option that uses the 3D window size rather than a fixed size. Option in menu Display->Render->Quality->Auto, or set render_auto=1 in bsp.ini to enable by default.
  • Right-click and drag for XY windows when xy_drag_move=1 in bsp.ini.
  • Mousewheel scrolls texture window, or zooms on selected texture with CTRL.
  • Mousewheel zooms XY windows, or changes grid size with CTRL.
  • Mousewheel moves forward/backwards in 3D view, or up/down with CTRL.
  • Added mouse look to 3D view (command name MLOOK). Configure in bspmou3d.ini
  • Set keys: INS: strafe left. PGUP: strafe right. HOME: move up. END: move down.
  • Added bsp.ini option cloneDeltaDisable. Set to 1 and CTRL+Space won't offset cloned brushes.
  • Configurable brush rotation step size. Set bsp.ini option xy_rotate_step to change the default step size. Added toolbar commands for bspbars.ini named CM_ROT1, CM_ROT5, CM_ROT10, CM_ROT15, CM_ROT30 and CM_ROT45.
  • Added option new_brush_depth to bsp.ini to set a fixed depth for new brushes. Set to 0 to use the old automatic sizing, or to any other number to always use that depth. Added menu item Edit->Set Brush Depth.
  • Added grid to 3D window. Set "show_3d_grid" to 1 in bsp.ini to enable by default, and set color with "color_3dgrid" option. Added toolbar button "CM_GRID3D".
  • Cameras, eye, and origin no longer hide when editing brushes.
  • Changed default camera placement on new maps.
  • Disabled CAMERADIRECTION command for XY views because it doesn't work and breaks camera.
  • Larger minimum size for cameras in XY views (when zoomed out).
  • Double-click when selecting a brush in XY views to deselect all other brushes.
  • Fixed bug where brushes rotated in the opposite direction in Front view.
  • Removed flicker in texture window.
  • Fixed bug in surface window where clicking any of the flags or contents buttons would crash if not in Q2 mode.
  • Fixed grid drawing at the incorrect offset sometimes, grid always intersects brushes instead of drawing offset by 1px.
  • Toggle grid dots/lines from main Grid menu.
  • Hardcoded maximum editable bounds to +/-32765.
  • Fixed bug where brushes sometimes couldn't be selected or moved when outside world_minmax range.
  • Clippers are projected correctly in 3D view.
  • Fixed clipper code: animated points redraw properly in when dragged in XY, points are never hidden behind brushes in 3D
  • Coordinate numbers no longer overlap on grid.
  • world_minmax bounds drawn in XY view with region color (magenta), also disabled the warning for going outside the range.
  • Added default scale value 75% to scale menus.
  • "use_crosshair" option now applies to 3D window too.
  • Added bsp.ini option "default_gamedir". Set to a game subdir and bypass startup game dialog. The -game arg overrides.
  • Surface window will now keep the current brush face selected after hitting apply brush or apply face.
  • Surface window is now saved in window arrangements. Note: This makes bsppos.ini incompatible with earlier versions of BSP, it can be reverted by removing the SURFACE entries.
  • Partially fixed texture shifting in 3D view. Vertical faces should shift in the correct direction unless they are rotated. Top and bottom faces on brushes will still move in the wrong direction from most angles (need to take into account the camera angle)...
  • XY windows use software rendering in GL mode.
  • Yaw/angle control in 3D view is updated in real-time.
  • Added pitch and FOV control to 3D view. Swap yaw/pitch/fov by right clicking control. Added control selection to 3D right-click menu. Added option to bsp.ini to disable 3D window angle control. Set "no_angle_control" to 1...
  • Fixed bug where opening .map files containing info_player_start would invert camera movement.
  • Got rid of "hitByRay: negative t" error msg. Fixed code so it shouldn't happen, but won't exit if it does.
  • Fixed bug where grouped brushes would go unseen during rotation, and probably other operations too.
  • Groups window will use white text when on dark backgrounds
  • Fixed bug in group window, "make X only visible" now applies to selected group instead of always "None"
  • Added translucency to software renderer. Set bsp.ini "render_trans" to one of three modes: 0=disabled, 1=scanline, 2=dot. Scanline should be a little faster than dot mode. Added options to Display menu.
  • Moved Display->Render submenu items to main Display menu.
  • Creating a region saves the brush it destroys for undo. Undo won't remove the region, and the undone brush needs to be deselected before it can be used (more work is needed here)
  • Opening a new map wouldn't update the caption in the 3d window right away...
  • BSP will warn you if you try to open the same map multiple times.
  • Made toolbar buttons for CM_SETCOLORS and CM_SETDIRECTORIES
  • Fixed bug where colors would get messed up after changing color settings.
  • Added "smallmajor" option to bsp.ini, set to 1 to use small major grid dots.
  • Sped up rendering during camera navigations by not re-rendering each XY view.
  • Help window starts scrolled to the top.
  • Changed grid coordinate font to "Small Fonts".
  • Removed "faster_textures" option from ini. Always on now.
  • Removed File->Preferences->Mouse dialog, just right-click XY or 3D window title bars to set.
  • Allow entity values up to 1024 chars.
  • Added "Hide All Groups" menu item to groups window.
  • Skips textures named CONCHARS when loading wads
  • Textures in texture window are selected on mousedown instead of mouseup
  • Save confirmation from clicking "X" close box now gives "Cancel" option.
  • Reimplemented texture windows "Copy 3D window area to clipboard" and "Paste from clipboard". Copy exports in 24bit color. Paste handles more bitmap formats. Still may be some bugs to work out...
  • Fixed "List used textures" crash, also no longer tries to save texture list to disk.
  • Mousing over menu items with submenus shows no tip instead of wrong tip on statusbar.
  • Fixed bug where some textures would show up blank in texture window
  • Surface, texture windows can be made "always on top"
  • New flat toolbars, cleaner status bar, and new Open and Save dialogs.
  • GL: fixed drawing of selected face outline.
  • Improved "choose game" dialog.
    © 2018