bibendovsky / Bstone
Labels
Projects that are alternatives of or similar to Bstone
BStone
Unofficial source port for Blake Stone series (Aliens Of Gold and Planet Strike).
Contents
- Disclaimer
- Overview
2.1. Overview (PS Vita) - Installation
3.1. Windows (GOG / Steam)
3.2. Windows (Generic)
3.3. Addons - Required assets
- Profile
- Audio
6.1 OpenAL driver - External textures
7.1 Aspect ratio
7.2 Transparency
7.3 Naming conventions
7.4 Supported file formats
7.5 File format search order - Compiling
8.1. Generic instructions for Linux-based system or build environment (MinGW) - Command-line options
- Cheat key
- Debug keys
- Third party use
- Credits
- Links
14.1. Essentials
14.2. General
14.3. Add-ons for Aliens Of Gold (full)
14.4. Add-ons for Planet Strike
1 - Disclaimer
Copyright (c) 1992-2013 Apogee Entertainment, LLC
Copyright (c) 2013-2021 Boris I. Bendovsky ([email protected])
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
- Upscale texture filter
- Support for external textures
- Allows to customize control bindings
- 3D-audio
- 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
Both all lowercase and all uppercase (default) file names are supported.
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 - Audio
Provides default stereo driver and optional 3D one.
Use option GAME OPTIONS - SOUND - DRIVER
to change the driver.
6.1 - OpenAL driver
Supports any OpenAL v1.1 compatible implementation (Creative Labs, OpenAL Soft, etc.).
Implementation driver should be available system wide (i.e., via oalinst.exe
) or should be placed along with port's binary.
Expected driver name is OpenAL32.dll
on Windows or libopenal.so
on non-Windows system.
Set configuration string snd_oal_library
to use another name.
The port uses default device name.
Set configuration string snd_oal_device_name
to open specific device.
7 - External textures
Allows to replace stocked textures with custom ones.
Supported targets: wall, sprite, flooring, ceiling.
Option GAME OPTIONS - VIDEO - TEXTURING - EXTERNAL TEXTURES
enables or disables them on the fly.
WARNING Changing the option may take some time if the dimensions of loaded textures are high.
7.1 - Aspect ratio
Both vanilla games ran only in a 320x200 video mode. On monitors, widely available at the time, this video mode took up the entire screen, which had a 4:3 physical aspect ratio. This meant that the 320x200 display, with a 16:10 logical ratio, was stretched vertically - each pixel was 20% taller than it was wide.
In-game graphics have been specifically designed for the 320x200 resolution as stretched to a 4:3 physical aspect ratio.
The port stretches the geometry (world, objects) vertically by 20%. That means if you created a wall or sprite texture, for example, with physical dimensions 1024x1024 it will be rendered as 1024x1228, i.e. stretched.
Flooring and ceiling textures has always 1:1 aspect ratio.
TLDR
- Design wall, sprite, HUD element or screen images in 1:1.2 aspect ratio (i.e. 1280x1536), but export for the game in 1:1 aspect ratio (i.e. 1024x1024).
- Design flooring or ceiling image in 1:1 aspect ratio (i.e. 1280x1280), and export for the game in 1:1 aspect ratio (i.e. 1024x1024) too.
7.2 - Transparency
Images with alpha channel should be exported as premultiplied.
7.3 - Naming conventions
All letters should be lower case.
"Aliens Of Gold" resources are goes into aog
directory.
"Planet Strike" resources are goes into ps
directory.
Sprite name format: sprite_xxxxxxxx.ext
.
Wall name format: wall_xxxxxxxx.ext
.
Where:
-
xxxxxxxx
- an internal decimal number of the sprite padded with zero on the left. For "Aliens Of Gold" those internal numbers are based on version2.1
. -
.ext
- file name extension.
Examples:
-
aog/sprite_00000034.bmp
- "Aliens Of Gold" yellow key card sprite in BMP format. -
aog/wall_00000088.png
- "Aliens Of Gold" turned on south-north switch wall in PNG format.
7.4 - Supported file formats
7.5 - File format search order
- PNG
- BMP
8 - Compiling
Minimum requirements:
- C++14 compatible compiler.
- CMake 3.1.3
- SDL v2.0.4
CMake variables:
-
CMAKE_BUILD_TYPE
Selects which build(s) to compile. Use semicolon to separate entries. Usually it'sRelease
. 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. -
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 valueOFF
to disable option.
8.1 - Generic instructions for Linux-based system or build environment (MinGW)
-
Install minimum required software described above.
-
Obtain source code and extract it (if necessary) into some directory. For our example we will use working directory
~/bstone-x.y.z
. -
Make directory
~/bstone-x.y.z/build
current. -
Generate Makefile.
cmake ../src -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/bstone-x.y.z/build/install
-
Build and install:
make install
-
On success you will find executable and text files in the directory
~/bstone-x.y.z/build/install
.
9 - 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) or1
(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) or1
(positioned)
Default:0
-
--vid_is_vsync value
Enables or disables vertical synchronization.
Values:0
(disable) or1
(enable)
Default:1
-
--vid_is_widescreen value
Enables or disables widescreen rendering.
Values:0
(disable) or1
(enable)
Default:1
-
--vid_is_ui_stretched value
Stretches the UI or keeps it at 4x3 ratio otherwise.
Values:0
(non-stretched) or1
(stretched)
Default:0
-
--vid_2d_texture_filter filter
Sets texturing filter for UI.
Applicable only for 3D-rendering.
Values:nearest
orlinear
Default:nearest
-
--vid_3d_texture_image_filter filter
Sets texturing image filter for the scene.
Applicable only for 3D-rendering.
Values:nearest
orlinear
Default:nearest
-
--vid_3d_texture_mipmap_filter filter
Sets texturing mipmap filter for the scene.
Applicable only for 3D-rendering.
Values:nearest
orlinear
Default:nearest
-
--vid_3d_texture_anisotropy value
Sets anisotropy degree for the scene.
Value1
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
orxbrz
Default:none
WARNINGxbrz
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
ormsaa
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
-
--vid_external_textures value
Toggles external textures.
Values:0
(disable),1
(enable).
Default:0
-
--snd_is_disabled value
Enables or disables audio subsystem.
Values:0
(disable) or1
(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) orlinear
Default:linear
-
--snd_resampling_lpf value
Toggles low-pass filter for sample-rate conversion.
PCM audio only.
Values:0
(disable) or1
(enable)
Default:1
-
--snd_driver value
Specifies the audio driver to use.
Values:auto-detect
,2d_sdl
(2D SDL),3d_openal
(3D OpenAL)
Default:auto-detect
Auto-detect order:3d_openal
,2d_sdl
-
--snd_oal_library value
Specifies OpenAL driver's name.
Default: "" (OpenAL32.dll
on Windows andlibopenal.so
on non-Windows system). -
--snd_oal_device_name value
Specifies OpenAL device name.
Default: "" -
--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 directorydir
.
Supported file format: BMP -
--extract_walls dir
Extracts graphics resources (wall, flooring, etc.) into existing directorydir
.
Supported file format: BMP -
--extract_sprites dir
Extracts graphics resources (actors, decorations, etc.) into existing directorydir
.
Supported file format: BMP -
--extract_music dir
Extracts music resources into existing directorydir
.
Supported file format: WAV -
--extract_sfx dir
Extracts sfx resources into existing directorydir
.
Supported file format: WAV -
--extract_texts dir
Extracts text resources into existing directorydir
.
Supported file format: TXT -
--extract_all dir
Extracts all resources (walls, sprites, etc.) into existing directorydir
.
10 - 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.
11 - 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.
12 - Third party use
-
SDL (Simple DirectMedia Library)
See filesrc/lib/sdl/COPYING.txt
for license information. -
DOSBox
See filesrc/dosbox/COPYING
for license information.
Note: The port uses OPL emulation code only. -
GLM (OpenGL Mathematics)
See filesrc/lib/glm/copying.txt
for license information. -
OpenAL Soft
See filesrc\lib\openal_soft\COPYING
for license information.
Note: The port uses public headers only. -
stb_image
See filesrc\lib\stb\LICENSE
for license information. -
xBRZ
See directorysrc/lib/xbrz
for license information (License.txt
) and essential changes made for the port (bstone_changelog.txt
).
13 - 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.
14 - Links
14.1 - Essentials
14.1 - General
- Blake Stone: Aliens Of Gold official site
- Blake Stone: Planet Strike official site
- Apogee's article about releasing of an original source code
- Original source code
- Repacked shareware Blake Stone: Aliens Of Gold (v3.0)