Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

openblack

VCPKG CIPackaging CIGitHub StarsDiscord chatLicense

openblack is an open source reimplementation of Black & White (2001) written in modern C++ and modern rendering engines (OpenGL, Vulkan).

You still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.


Pre-built Binaries

For the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.

Linux (amd64) BuildOSX (amd64) BuildWindows (amd64) Build

Arch Linux

Experimental

The following are qualified as exprimental. They have base minimum setup such as compilation and rendering system. Don't expect to be able to launch without some effort and your own patches.

Windows (x86) BuildWindows (arm64) Build

AndroidiOS

Linux (x86) BuildLinux (arm64) BuildFlatpakAppImageSnap

Building

Clone the code using: git clone --recursive https://github.com/openblack/openblack.git

If you forgot to add --recursive, you will have to also run git submodule update --init from the openblack/ directory.

Configuration for using vcpkg (Recommended for new users)

The simplest way to obtain all the required dependencies is through vcpkg which is included with a manifest file.

The easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration for you. To do so, you will be selecting the "ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg) preset. Other presets are available for more advanced users.

Visual Studio Code

Visual Studio 2022

Clion

XCode

  • Install XCode
  • Install the homebrew depenedencies using homebrew: brew install cmake ninja pkg-config
  • Run sudo xcode-select --reset after installing cmake
  • You need to configure using the cmake preset xcode-vcpkg using cmake in either the GUI or using the command line argument --preset xcode-vcpkg

Android Studio

  • Install Android Studio
  • Install a recent SDK and an NDK of at least 23
  • Open openblack from the android directory
  • Set the SDK and NDK in the project settings
  • Do gradle configure which will run cmake configuration and compile the vcpkg dependencies
  • Build the project for either a virtual device or a connected device
  • Currently requires user to upload game assets to /data/local/tmp/bw and chmod -R a+wrx /data/local/tmp/bw with adb

Web Assembly

  • Get emsdk
  • Add the directory of emsdk as the EMSDK environment variable.
  • Run emsdk install latest
  • Run emsdk activate latest
  • Build the emscripten-vcpkg preset

Command Line

  • Your usual build tool-chain.
    • Ubuntu / Debian: # apt install build-essential cmake ninja-build
    • Arch Linux / Manjaro: # pacman -S base-devel cmake ninja
  • You can generate the cmake build preset using cmake --preset and you can list the presets using cmake --list-presets

Configuration for using System Dependencies (Recommended for packagers)

If you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.

CMake will find the required libraries as long as they provide a proper config file.

Arch Linux

Install openblack-git from the AUR which builds and installs directly for all Arch Linux derived distros such as Manjaro. This will require pacman to install all required dependencies.

The prefix to use is "linux-system-deps" - Linux (System Deps)

Contributing

Contributions are always welcome, whether it's modifying source code to add new features or bug fixes, documenting new file formats or simply editing some grammar.

You can also join the Discord for development discussion if you are unsure of anything.

Extracting asset files from original game

As mentioned before, the original game assets are required in order to run openblack. Since these data are copyrighted, we won't provide them, so please don't ask. Here is a guide for extracting them from the original game.

Prerequisites

You will need the following:

Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable

Installation

On Windows

  1. Install the game from the installer, remember the installation directory (C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\ is the default)
  2. Install the official patch 1.10 (in the same directory)
  3. Install the official patch 1.2 (in the same directory)

On Linux and macOS

If you run on Linux or macOS, you can install the game with Wine (App Page on WineHQ).

  1. Install wine
  2. Run wine Setup.exe from the directory containing the installer, don't change the install path
  3. Run wine Black_White_Patch_v1.100.exe from the directory containing the first patch (adapt the command in case the filename isn't exactly that)
  4. Run wine black_white_patch_v1_20.exe from the directory containing the second patch (adapt too)
  5. In case you would like to install the unofficial patch, it requires .NET 2.0, that can be installed with winetricks dotnet20sp2 (you should install winetricks first)

All the files should be installed in the following directory: ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

Getting the assets

The folders you're interested in are the Audio, Data and Scripts folders in the installation directory. You can use them from there or make a copy to the location of your choice.

Using them in place

If you want to use them from there, remember the installation directory chosen in the installation step, unless you changed it, it should be either:

  • eitherC:\\Program Files (x86)\\Lionhead Studios\\Black & White\\
  • or ~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White

This is the path you will give to openblack (using the -g flag).

If you prefer to copy the data (e.g. if you want to uninstall the original game), just copy the Data and Scripts folders to the desired new location, and give the path to this location to openblack (using the -g flag).

License

openblack is released as open source software under the GPL v3 license, see the license file in the project root for the full license text.

About

openblack is an open-source game engine that supports playing Black & White (2001).

Topics

Resources

Contributing

Stars

1.6k stars

Watchers

48 watching

Forks

Releases

Used by

Contributors

Languages