bibendovsky / bstone

Unofficial source port for Blake Stone series
Other
296 stars 34 forks source link
blake-stone c-plus-plus-14 sdl2 source-port unofficial

BStone

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

Contents

  1. Disclaimer
  2. Overview
  3. Known issues
    3.1 Windows
  4. Installation
    4.1 Windows (GOG / Steam)
    4.2 Windows (Generic)
    4.3 Addons
  5. Required assets
  6. Profile
  7. Audio
    7.1 OpenAL driver
  8. External textures
    8.1 Aspect ratio
    8.2 Transparency
    8.3 Naming conventions
    8.4 Supported file formats
    8.5 File format search order
  9. Taking screenshots
  10. Compiling
    10.1. Generic instructions for Linux-based system or build environment (MinGW)
  11. Command-line options
  12. Cheat key
  13. Debug keys
  14. Third party use
  15. Credits
  16. Links
    16.1. Essentials
    16.2. General
    16.3. Add-ons for Aliens Of Gold (full)
    16.4. Add-ons for Planet Strike

1 - Disclaimer

Copyright (c) 1992-2013 Apogee Entertainment, LLC
Copyright (c) 2013-2022 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:

Supported games:

3 - Known issues

3.1 - Windows

Problem: OpenAL runtime v1.9.9 causes a (crash)[http://github.com/bibendovsky/bstone/issues/375] in non-MinGW-W64 build.
Solution: Update the (OpenAL runtime)[http://openal.org/].

4 - Installation

4.1 - Windows (GOG / Steam)

4.2 - Windows (generic)

4.3 - Addons

5 - Required assets

Since all titles except shareware are not free 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

SHA-1 for AOG SW v1.0:

File name SHA-1
AUDIOHED.BS1 0c3de403b524107809fa9308b730d60e8e41ba93
AUDIOT.BS1 3d4e8b62aa4683671027513ad9720f76f176ba5b
IANIM.BS1 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS1 55b9eb9ed555b0f249c2cefd54ecc3f511bfcd55
MAPTEMP.BS1 293464e7143ff7e6faf5f5b20799e76a394d65bf
SANIM.BS1 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS1 b54d48d35d095e27a3c9130cfa59ed9c4f05abe7
VGAGRAPH.BS1 d1fa19131281d30787125f946881652be876f57a
VGAHEAD.BS1 cc44c362e9e2c9f7b9fb2e4ba31331dde42a1e96
VSWAP.BS1 37412ca9139562fc31330d72470822de4d9ceb4a

SHA-1 for AOG SW v2.0:

File name SHA-1
AUDIOHED.BS1 0c3de403b524107809fa9308b730d60e8e41ba93
AUDIOT.BS1 3d4e8b62aa4683671027513ad9720f76f176ba5b
IANIM.BS1 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS1 04a8e4e7c360f6033dc70f7b09edbc4a6447e462
MAPTEMP.BS1 bbb3cd6ab3e742eada427862504eba06437036d0
SANIM.BS1 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS1 058fe0b59c7aa020bf4e7509103892d4c7459aa6
VGAGRAPH.BS1 e14b6172b6ab7568d3736f087f07a0df5eac5dad
VGAHEAD.BS1 6c0e273df7fd3940c038fc20a5bdfb81cd50e7ef
VSWAP.BS1 dbde907ba1110bef445d6daae283c4520d6951b4

SHA-1 for AOG SW v2.1:

File name SHA-1
AUDIOHED.BS1 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS1 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
IANIM.BS1 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS1 04a8e4e7c360f6033dc70f7b09edbc4a6447e462
MAPTEMP.BS1 bbb3cd6ab3e742eada427862504eba06437036d0
SANIM.BS1 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS1 ed1ab61ad2529e046f966d9c1627508f76693ef8
VGAGRAPH.BS1 b59cbe3793b4612b06254ece48bf8e961ab6f528
VGAHEAD.BS1 0635a4a2b823eef2904ed1d590d98362fb16621d
VSWAP.BS1 dbde907ba1110bef445d6daae283c4520d6951b4

SHA-1 for AOG SW v3.0:

File name SHA-1
AUDIOHED.BS1 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS1 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
IANIM.BS1 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS1 04a8e4e7c360f6033dc70f7b09edbc4a6447e462
MAPTEMP.BS1 bbb3cd6ab3e742eada427862504eba06437036d0
SANIM.BS1 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS1 537676ddcafeee415c22bb9d00097b25bc7e13c5
VGAGRAPH.BS1 9f9f4c40c9637af472ce5e1a360e51364c3a418a
VGAHEAD.BS1 e7fb8f241b8fa94739c3bd09ea05c1afc7bbfc95
VSWAP.BS1 dbde907ba1110bef445d6daae283c4520d6951b4

SHA-1 for AOG v1.0:

File name SHA-1
AUDIOHED.BS6 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS6 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
EANIM.BS6 af5af59ad7ed17517d87b3ece3c0cac23ade535b
GANIM.BS6 9b2418a1a1f34abdcf6fcd9ed3344a49912c9b5e
IANIM.BS6 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS6 6f19a144d8985e90f096fc1c67ade58e9051235c
MAPTEMP.BS6 4d00c5f5c843f99a266bd938648192a6eff17b5a
SANIM.BS6 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS6 d4f81ace1701a7338d43ce07723c2adaafdc837c
VGAGRAPH.BS6 02dc27d4810e3ffa26540b310eac6091f5e16de0
VGAHEAD.BS6 639ec9e7a81ad83fc5b5c557cf4fc5fa28b9676b
VSWAP.BS6 0a700732ccbc72f95318a6226a7e1ad78ac713bb

SHA-1 for AOG v2.0:

File name SHA-1
AUDIOHED.BS6 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS6 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
EANIM.BS6 af5af59ad7ed17517d87b3ece3c0cac23ade535b
GANIM.BS6 9b2418a1a1f34abdcf6fcd9ed3344a49912c9b5e
IANIM.BS6 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS6 028f624e150f84ffc8336336cb0ecea0932cc22d
MAPTEMP.BS6 8b48e7eb859382a4c84948c5a62899194288e853
SANIM.BS6 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS6 e83b690836c9edf9ef60f6189b8384fb2319b735
VGAGRAPH.BS6 67a679e3b107db8685ba5ff1643a38f9291b00bf
VGAHEAD.BS6 48b18caa86151610957b64b207cf2a2977ef7d57
VSWAP.BS6 6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb

SHA-1 for AOG v2.1:

File name SHA-1
AUDIOHED.BS6 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS6 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
EANIM.BS6 af5af59ad7ed17517d87b3ece3c0cac23ade535b
GANIM.BS6 9b2418a1a1f34abdcf6fcd9ed3344a49912c9b5e
IANIM.BS6 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS6 028f624e150f84ffc8336336cb0ecea0932cc22d
MAPTEMP.BS6 8b48e7eb859382a4c84948c5a62899194288e853
SANIM.BS6 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS6 e4ae3ef9a3ac158a832092b7b5487227337c6f13
VGAGRAPH.BS6 6868e6cc4f8cb9160a218c5bce680a11f64c675a
VGAHEAD.BS6 1a3864cd12de4b8fd6be023b73d2d79e91b9018d
VSWAP.BS6 6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb

SHA-1 for AOG v3.0:

File name SHA-1
AUDIOHED.BS6 e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2
AUDIOT.BS6 b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25
EANIM.BS6 af5af59ad7ed17517d87b3ece3c0cac23ade535b
GANIM.BS6 9b2418a1a1f34abdcf6fcd9ed3344a49912c9b5e
IANIM.BS6 ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.BS6 028f624e150f84ffc8336336cb0ecea0932cc22d
MAPTEMP.BS6 8b48e7eb859382a4c84948c5a62899194288e853
SANIM.BS6 22bf818465da0f32eef9611de936cba9966b14aa
VGADICT.BS6 60da35e506d57753f83cca5f232a76dd1cf074ba
VGAGRAPH.BS6 001037fafdff124befb5437c563d0b9c613b3c00
VGAHEAD.BS6 ff165ca5924d738853587a7e4ab1cd239e10e359
VSWAP.BS6 6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb

SHA-1 for PS:

File name SHA-1
AUDIOHED.VSI 2ed9a587926b2b455f8176788f595d03f6359171
AUDIOT.VSI ecac8a800c5d021c8b68d170066c8859df9bd79a
EANIM.VSI b668330e56ceb069c1b972cefddd8a3d618a14af
IANIM.VSI ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd
MAPHEAD.VSI c3fb0a9b81e0240d12c952fe5b57b78c1108aa48
MAPTEMP.VSI acd03031d526eeaee64072518adf6814f96e2a37
VGADICT.VSI 061692d166f68d7e0b81568725439078cc728f33
VGAGRAPH.VSI e619a3e6245f79888da5436df138d63204d2caba
VGAHEAD.VSI ad5fed9de5d1d82145df3ff2286e4bc62cb80e2a
VSWAP.VSI 4113ce83c42e69dc5cb20de79f41971a100f876e

Legend:

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:

6 - 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:

7 - Audio

Provides default stereo driver and optional 3D one.
Use option GAME OPTIONS - SOUND - DRIVER to change the driver.

7.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.

8 - 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.

8.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

8.2 - Transparency

Images with alpha channel should be exported as premultiplied.

8.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:

Examples:

8.4 - Supported file formats

8.5 - File format search order

  1. PNG
  2. BMP

9 - Taking screenshots

Default key is F5.
Use menu to modify bindings.

Taken screenshots are placed in the profile directory.

Supported format: PNG

10 - Compiling

Minimum requirements:

CMake variables:

Notes:

10.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 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=~/bstone-x.y.z/build/install ..

  5. Build and install: cmake --build . --target install

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

11 - Command-line options

12 - 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.

13 - Debug keys

Add option --cheats to enable these keys.

14 - Third party use

15 - Credits

16 - Links

16.1 - Essentials

16.1 - General

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

16.3 - Add-ons for Planet Strike