Skip to content
develop
Go to file
Code

README.md

BStone

Unofficial source port for Blake Stone series (Aliens Of Gold and Planet Strike).

Contents

  1. Disclaimer
  2. Overview
    2.1. Overview (PS Vita)
  3. Installation
    3.1. Windows (GOG / Steam)
    3.2. Windows (Generic)
    3.3. Addons
  4. Required assets
  5. Profile
  6. Compiling
    6.1. Generic instructions for Linux-based system or build environment (MinGW)
  7. Command-line options
  8. Cheat key
  9. Debug keys
  10. Third party use
  11. Credits
  12. Links
    12.1. Essentials
    12.2. General
    12.3. Add-ons for Aliens Of Gold (full)
    12.4. Add-ons for Planet Strike

1 - Disclaimer

Copyright (c) 1992-2013 Apogee Entertainment, LLC
Copyright (c) 2013-2020 Boris I. Bendovsky (bibendovsky@hotmail.com)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

For a copy of the GNU General Public License see file LICENSE.
For an original source code license see file "Blake Stone source code license.doc".

2 - Overview

BStone is unofficial source port for "Blake Stone" game series: "Aliens Of Gold" and "Planet Strike".

Features:

  • High resolution vanilla rendering
  • 3D-rendering
  • Allows to customize control bindings
  • Separate volume control of sound effects and music

Supported games:

  • Aliens Of Gold (v1.0/v2.0/v2.1/v3.0) full or shareware
  • Planet Strike (v1.0/v1.1)

2.1 - Overview (PS Vita)

See README-PSVITA.md for details about the source port on PS Vita.

3 - Installation

3.1 - Windows (GOG / Steam)

  • Download the latest release.
  • Extract it into convinient for you directory.
  • Run bstone.exe to play.

3.2 - Windows (generic)

  • Download the latest release.
  • Extract it into the directory with game files.
  • Run bstone.exe to play.

3.3 - Addons

  • Put addon's files into separate directory. Do not overwrite any original files!
  • Run with command line option --mod_dir to point to this directory (i.e. bstone.exe --mod_dir addon1).

4 - Required assets

Since all titles are not free (except shareware) you have to own a copy of the game in order to play.

Required files for each game:

AOG SW AOG PS
AUDIOHED.BS1 AUDIOHED.BS6 AUDIOHED.VSI
AUDIOT.BS1 AUDIOT.BS6 AUDIOT.VSI
EANIM.BS6 EANIM.VSI
GANIM.BS6
IANIM.BS1 IANIM.BS6 IANIM.VSI
MAPHEAD.BS1 MAPHEAD.BS6 MAPHEAD.VSI
MAPTEMP.BS1 MAPTEMP.BS6 MAPTEMP.VSI
SANIM.BS1 SANIM.BS6
VGADICT.BS1 VGADICT.BS6 VGADICT.VSI
VGAGRAPH.BS1 VGAGRAPH.BS6 VGAGRAPH.VSI
VGAHEAD.BS1 VGAHEAD.BS6 VGAHEAD.VSI
VSWAP.BS1 VSWAP.BS6 VSWAP.VSI

Legend:

  • AOG SW - Aliens Of Gold (shareware)
  • AOG - Aliens Of Gold (full)
  • PS - Planet Strike

The port auto-detect assets of some digital distribution services. Note that option --data_dir disables auto-detection.

Supported services:

5 - Profile

Configuration file, saved game files, etc. are stored in user's profile. The path to those files depends on platform. To override the path use --profile_dir option.

On Windows, the path might look like C:\Users\john\AppData\Roaming\bibendovsky\bstone\

On Linux, the path might look like /home/john/.local/share/bibendovsky/bstone/

On Mac OS X, the path might look like /Users/john/Library/Application Support/bibendovsky/bstone/

Configuration file name: bstone_config
Log file name: bstone_log.txt
High scores file name: bstone_<game>_high_scores
Saved game file name: bstone_<game>_saved_game

Where <game> is:

  • aog_sw - Aliens Of Gold (shareware)
  • aog_full - Aliens Of Gold (full)
  • ps - Planet Strike

6 - Compiling

Minimum requirements:

CMake variables:

  • CMAKE_BUILD_TYPE
    Selects which build(s) to compile. Use semicolon to separate entries. Usually it's Release. For other values see CMake documentation.

  • CMAKE_INSTALL_PREFIX
    Selects location where to install files to.

  • BSTONE_PANDORA
    Enables build for Open Pandora.

  • BSTONE_USE_PCH
    If enabled utilizes precompiled headers to speed up the compilation.
    Note: Visual C++ only

  • BSTONE_USE_STATIC_LINKING
    If enabled links modules statically to avoid dependency on system and custom libraries at run-time.

  • BSTONE_USE_MULTI_PROCESS_COMPILATION
    Enables multi-process compilation if supported.

  • SDL2W_SDL2_DIR
    Defines directory with SDL2 CMake configuration file or with official SDL2 development Windows build.

Notes:

  • Use ON value to enable option and value OFF to disable option.

6.1 - Generic instructions for Linux-based system or build environment (MinGW)

  1. Install minimum required software described above.

  2. Obtain source code and extract it (if necessary) into some directory. For our example we will use working directory ~/bstone-x.y.z.

  3. Make directory ~/bstone-x.y.z/build current.

  4. Generate Makefile.
    cmake ../src -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/bstone-x.y.z/build/install

  5. Build and install: make install

  6. On success you will find executable and text files in the directory ~/bstone-x.y.z/build/install.

7 - Command-line options

  • --version
    Outputs the port's version to standard output and into message box.

  • --aog_sw
    Switches the port to "Blake Stone: Aliens Of Gold (shareware)" mode.
    If appropriate data files will not be found the port will fail.

  • --aog
    Switches the port to "Blake Stone: Aliens Of Gold" mode.
    If appropriate data files will not be found the port will fail.

  • --ps
    Switches the port to "Blake Stone: Planet Strike" mode.
    If appropriate data files will not be found the port will fail.

  • --no_screens
    Skips start-up screens and the ending promo pages (AOG SW).

  • --cheats
    Enables so called "debug mode" without much fuss.

  • --data_dir dir
    Specifies a directory with game's resource files.
    Default: current working directory.

  • --mod_dir dir
    Specifies a directory with mod's resource files.
    Default: undefined.

  • --profile_dir dir
    Overrides default directory of the game's profile files.

  • --vid_renderer value
    Select a renderer.
    Values:

    • auto_detect - tries to select the best renderer.
    • software - the vanilla renderer.
    • gl_2_0 - OpenGL 2.0 or higher.
    • gl_3_2_c - OpenGL 3.2 core or higher.
    • gles_2_0 - OpenGL ES 2.0 or higher.

    Default: auto_detect

  • --vid_is_windowed value
    Starts up the game in windowed mode or in fake fullscreen otherwise.
    Values: 0 (fake fullscreen) or 1 (windowed)
    Default: 1

  • --vid_windowed_width width
    Specifies window width for windowed mode.
    Minimum width: 320
    Default width: 640

  • --vid_windowed_height height
    Specifies window height for windowed mode.
    Minimum height: 240
    Default height: 480

  • --vid_windowed_x offset
    Sets a horizontal offset from the left side of the desktop screen.
    Applicable for positionable window only.
    Default: 0

  • --vid_windowed_y offset
    Sets a vertical offset from the top side of the desktop screen.
    Applicable for positionable window only.
    Default: 0

  • --vid_is_positioned value
    Centers a windowed window on the desktop or moves it in the specified position.
    Values: 0 (centered) or 1 (positioned)
    Default: 0

  • --vid_is_vsync value
    Enables or disables vertical synchronization.
    Values: 0 (disable) or 1 (enable)
    Default: 1

  • --vid_is_widescreen value
    Enables or disables widescreen rendering.
    Values: 0 (disable) or 1 (enable)
    Default: 1

  • --vid_is_ui_stretched value
    Stretches the UI or keeps it at 4x3 ratio otherwise.
    Values: 0 (non-stretched) or 1 (stretched)
    Default: 0

  • --vid_2d_texture_filter filter
    Sets texturing filter for UI.
    Applicable only for 3D-rendering.
    Values: nearest or linear
    Default: nearest

  • --vid_3d_texture_image_filter filter
    Sets texturing image filter for the scene.
    Applicable only for 3D-rendering.
    Values: nearest or linear
    Default: nearest

  • --vid_3d_texture_mipmap_filter filter
    Sets texturing mipmap filter for the scene.
    Applicable only for 3D-rendering.
    Values: nearest or linear
    Default: nearest

  • --vid_3d_texture_anisotropy value
    Sets anisotropy degree for the scene.
    Value 1 or lower disables the filter.
    Applicable only for 3D-rendering.
    Values: [1..16]
    Default: 1

  • --vid_texture_upscale_filter filter
    Sets texturing upscale filter.
    Applicable only for 3D-rendering.
    Values: none or xbrz
    Default: none
    WARNING xbrz is a high resource usage filter!

  • --vid_texture_upscale_xbrz_degree degree
    Sets a degree of xBRZ texturing upscale.
    Applicable only for 3D-rendering.
    Values: [2..6]
    Default: 0

  • --vid_aa_kind value
    Sets an anti-aliasing mode.
    Applicable only for 3D-rendering.
    Values: none or msaa
    Default: none

  • --vid_aa_degree value
    Sets a degree of the anti-aliasing.
    Applicable only for 3D-rendering.
    Values: [2..32]
    Default: 1

  • --vid_filler_color_index value
    Sets a color for screen bars.
    Values: [0..255]
    Default: 0

  • --snd_is_disabled value
    Enables or disables audio subsystem.
    Values: 0 (disable) or 1 (enable)
    Default: 0

  • --snd_rate sampling_rate
    Specifies sampling rate of mixer in hertz.
    Default: 44100
    Minimum: 11025

  • --snd_mix_size duration
    Specifies mix data size in milliseconds.
    Default: 40
    Minimum: 20

  • --snd_resampling_interpolation value
    Specifies interpolation method for sample-rate conversion.
    PCM audio only.
    Values: zoh (zero-order hold) or linear
    Default: linear

  • --snd_resampling_lpf value
    Toggles low-pass filter for sample-rate conversion.
    PCM audio only.
    Values: 0 (disable) or 1 (enable)
    Default: 1

  • --calculate_hashes
    Calculates hashes (SHA-1) of all resource files and outputs them into the log.

  • --extract_vga_palette dir
    Extracts VGA palette into existing directory dir.
    Supported file format: BMP

  • --extract_walls dir
    Extracts graphics resources (wall, flooring, etc.) into existing directory dir.
    Supported file format: BMP

  • --extract_sprites dir
    Extracts graphics resources (actors, decorations, etc.) into existing directory dir.
    Supported file format: BMP

  • --extract_music dir
    Extracts music resources into existing directory dir.
    Supported file format: WAV

  • --extract_sfx dir
    Extracts sfx resources into existing directory dir.
    Supported file format: WAV

  • --extract_texts dir
    Extracts text resources into existing directory dir.
    Supported file format: TXT

  • --extract_all dir
    Extracts all resources (walls, sprites, etc.) into existing directory dir.

8 - Cheat key

J A M Enter
Press specified keys sequentially. Shows message "NOW you're jammin'!!", and gives to you all keys, all weapons and restores health to 100% but zeroes score points. Not available in shareware version.

9 - Debug keys

Add option --cheats to enable these keys.

  • Backspace+A
    Toggles visibility of actors on auto-map.

  • Backspace+C
    Shows counts of total static objects, in use static objects,
    doors, total actors, active actors.

  • Backspace+D
    Toggles player's invisibility.

  • Backspace+E
    Win mission instantly.

  • Backspace+F
    Shows player's coordinates and direction.

  • Backspace+G
    Toggles god mode.

  • Backspace+H
    Hurt yourself by 1%.

  • Backspace+I
    Each usage adds 99% health, 5 tokens, 50 ammo, one new weapon.

  • Backspace+K
    Shows total counts of enemies, points and informants on the map.

  • Backspace+M
    Memory information.

  • Backspace+O
    Shows push walls on auto-map.

  • Backspace+Q
    Instant quit.

  • Backspace+R
    Shows full map.

  • Backspace+S
    Slow motion.

  • Backspace+U
    Unlocks all maps.

  • Backspace+W
    Warps to specified map.

  • Backspace+Shift/Caps Lock+W
    Warps to specified map but loads it from scratch rather from a saved game file or memory.

  • Backspace+Home
    Selects previous ceiling texture.

  • Backspace+Page Up
    Selects next ceiling texture.

  • Backspace+End
    Selects previous flooring texture.

  • Backspace+Page Down
    Selects next flooring texture.

  • Backspace+-
    Decreases shading depth.

  • Backspace+=
    Increases shading depth.

  • Backspace+[
    Decreases shading drop off.

  • Backspace+]
    Increases shading drop off.

  • Backspace+l
    Dumps information into the log about remaining bonus items and enemies.

10 - Third party use

  • SDL (Simple DirectMedia Library)
    See file COPYING-SDL2.txt for license information.

  • DOSBox
    See file src/dosbox/COPYING for license information.
    Note: The source port uses only OPL emulation code.

  • GLM (OpenGL Mathematics)
    See file src/lib/glm/copying.txt for license information.

  • xBRZ
    See directory src/lib/xbrz for license information (License.txt) and essential changes made by the port (bstone_changelog.txt).

11 - Credits

  • id Software
    Wolfenstein 3D engine.

  • JAM Productions
    The game itself.

  • Apogee Entertainment, LLC
    Publishing the game and releasing a source code.

  • Scott Smith
    Adaptation to Pandora console, various fixes.

  • Filipe Tolhuizen
    Testing the port.

  • Various contributors for providing fixies, ideas, etc.

12 - Links

12.1 - Essentials

12.1 - General

12.2 - Add-ons for Aliens Of Gold (full)

12.3 - Add-ons for Planet Strike

You can’t perform that action at this time.