{"id":13530961,"url":"https://github.com/openblack/openblack","last_synced_at":"2025-04-01T19:30:57.639Z","repository":{"id":35410418,"uuid":"117585488","full_name":"openblack/openblack","owner":"openblack","description":"openblack is an open-source game engine that supports playing Black \u0026 White (2001).","archived":false,"fork":false,"pushed_at":"2024-05-22T17:36:38.000Z","size":10388,"stargazers_count":841,"open_issues_count":110,"forks_count":54,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-05-22T18:06:30.207Z","etag":null,"topics":["blackandwhite","c-plus-plus","contributions-welcome","game-development","openblack","reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openblack.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":".github/contributing-style.md","funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-15T19:17:12.000Z","updated_at":"2024-06-01T22:03:33.676Z","dependencies_parsed_at":"2023-12-31T20:25:05.892Z","dependency_job_id":"80db8197-242b-403b-8818-dba8a86d9060","html_url":"https://github.com/openblack/openblack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openblack%2Fopenblack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openblack%2Fopenblack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openblack%2Fopenblack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openblack%2Fopenblack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openblack","download_url":"https://codeload.github.com/openblack/openblack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246700138,"owners_count":20819829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blackandwhite","c-plus-plus","contributions-welcome","game-development","openblack","reverse-engineering"],"created_at":"2024-08-01T07:00:58.455Z","updated_at":"2025-04-01T19:30:52.628Z","avatar_url":"https://github.com/openblack.png","language":"C++","funding_links":[],"categories":["C++","Strategy"],"sub_categories":[],"readme":"# openblack\n\n[![VCPKG CI](https://github.com/openblack/openblack/actions/workflows/ci-vcpkg.yml/badge.svg?branch=master\u0026event=push)](https://github.com/openblack/openblack/actions/workflows/ci-vcpkg.yml?query=branch%3Amaster+event%3Apush)\n[![Packaging CI](https://github.com/openblack/openblack/actions/workflows/packaging.yml/badge.svg?branch=master\u0026event=push)](https://github.com/openblack/openblack/actions/workflows/packaging.yml?query=branch%3Amaster+event%3Apush)\n[![GitHub Stars](https://img.shields.io/github/stars/openblack/openblack?logo=github)](https://github.com/openblack/openblack/stargazers)\n[![Discord chat](https://img.shields.io/discord/608729286513262622?logo=discord\u0026logoColor=white)](https://discord.gg/5QTexBU)\n[![License](https://img.shields.io/github/license/openblack/openblack)](LICENSE.md)\n\nopenblack is an open source reimplementation of [Black \u0026 White (2001)](https://en.wikipedia.org/wiki/Black_\u0026_White_(video_game)) written in modern C++ and modern rendering engines (OpenGL, Vulkan).\n\nYou still need to have the original game assets in order to use this. See further below for an explanation on how to extract them.\n\n---\n\n\u003ca href=\"https://user-images.githubusercontent.com/32263167/184559293-56cfc6a7-a7da-4876-8fce-434ba8827eae.png\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/32263167/184559293-56cfc6a7-a7da-4876-8fce-434ba8827eae.png\" width=\"45%\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://user-images.githubusercontent.com/32263167/184559291-f37e44b3-c738-4c0f-82eb-28b7c84a3919.png\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/32263167/184559291-f37e44b3-c738-4c0f-82eb-28b7c84a3919.png\" width=\"45%\"\u003e\n\u003c/a\u003e\n\n# Pre-built Binaries\n\nFor the latest build of openblack without having to build it yourself, we offer pre-built binaries from our test service.\n\n[![Linux (amd64) Build](https://img.shields.io/badge/Build-Linux%20(amd64)-333333)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-ubuntu-24.04-master.zip)\n[![OSX (amd64) Build](https://img.shields.io/badge/Build-OSX%20(amd64)-eeeeee)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-macos-13-master.zip)\n[![Windows (amd64) Build](https://img.shields.io/badge/Build-Windows%20(amd64)-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-windows-latest-master.zip)\n\n[![Arch Linux](https://img.shields.io/badge/Package-Arch%20Linux-1793d0)](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-arch-linux-pkg-master.zip)\n\n## Experimental\n\nThe following are qualified as exprimental. They have base minimum setup such as compilation and rendering system.\nDon't expect to be able to launch without some effort and your own patches.\n\n[![Windows (x86) Build](https://img.shields.io/badge/Build-Windows%20(x86)-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-windows-master.zip)\n[![Windows (arm64) Build](https://img.shields.io/badge/Build-Windows%20(arm64)-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-windows-master.zip) \n\n[![Android](https://img.shields.io/badge/Package-Android-3ddc84)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-android-apk-master.zip)\n[![iOS](https://img.shields.io/badge/Package-iOS-eeeeee)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-ios-arm64-vcpkg-master.zip)\n\n[![Linux (x86) Build](https://img.shields.io/badge/Build-Linux%20(x86)-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-linux-master.zip)\n[![Linux (arm64) Build](https://img.shields.io/badge/Build-Linux%20(arm64)-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-linux-master.zip)\n[![Flatpak](https://img.shields.io/badge/Package-Flatpak-79ADE3)](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.flatpak.zip)\n[![AppImage](https://img.shields.io/badge/Package-AppImage-00BBFF)](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.AppImage.zip)\n[![Snap](https://img.shields.io/badge/Package-Snap-E95420)](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.snap.zip)\n\n\n# Building\n\nClone the code using: `git clone --recursive https://github.com/openblack/openblack.git`\n\nIf you forgot to add `--recursive`, you will have to also run `git submodule update --init` from the `openblack/` directory.\n\n## Configuration for using vcpkg (Recommended for new users)\n\nThe simplest way to obtain all the required dependencies is through [vcpkg](https://github.com/Microsoft/vcpkg) which is included with a [manifest file](https://github.com/microsoft/vcpkg/blob/master/docs/users/manifests.md).\n\nThe easiest way to get started on any platform is to allow CMake and vcpkg to handle all dependencies and configuration\nfor 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.\n\n### Visual Studio Code\n * Install [Visual Studio Code](https://code.visualstudio.com/Download)\n * Install the [C++ Extension](vscode:extension/ms-vscode.cpptools)\n    * The extension might not be required on Linux\n    * Install a compiler depending on your platform\n        * GNU or Clang compilers on Linux\n        * Visual Studio's MSVC on Windows (See Visual Studio)\n        * Clang compiler on Mac\n * Install the [CMake Tools Extension](vscode:extension/ms-vscode.cmake-tools)\n     * Install [CMake version 3.20+](https://cmake.org/download/)\n * You can simply [open the `openblack` folder directly in Visual Studio Code and select a preset](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/).\n\n### Visual Studio 2022\n* Install [Visual Studio](https://visualstudio.microsoft.com/downloads/)\n    * Select an appropriate MSVC C++ Component for your version\n    * Select an appropriate Windows SDK Component for your version\n    * Select the C++ CMake tools for Windows Component\n* You can simply [open the `openblack` folder directly in Visual Studio and select a preset](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/).\n\n### Clion\n* Install [Clion](https://www.jetbrains.com/clion/download/)\n* You can simply [open the `openblack` folder directly in CLion and select a preset](https://www.jetbrains.com/help/clion/cmake-presets.html).\n\n### XCode\n* Install [XCode](https://apps.apple.com/ca/app/xcode)\n* Install the homebrew depenedencies using [homebrew](https://brew.sh/):  `brew install cmake ninja pkg-config`\n* Run `sudo xcode-select --reset` after installing cmake\n* 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`\n\n### Android Studio\n* Install [Android Studio](https://developer.android.com/studio)\n* Install a recent SDK and an NDK of at least 23\n* Open openblack from the `android` directory\n* Set the SDK and NDK in the project settings\n* Do gradle configure which will run cmake configuration and compile the vcpkg dependencies\n* Build the project for either a virtual device or a connected device\n* Currently requires user to upload game assets to `/data/local/tmp/bw` and `chmod -R a+wrx /data/local/tmp/bw` with adb\n\n### Web Assembly\n\n* Get [emsdk](https://github.com/emscripten-core/emsdk)\n* Add the directory of emsdk as the `EMSDK` environment variable.\n* Run `emsdk install latest`\n* Run `emsdk activate latest`\n* Build the `emscripten-vcpkg` preset\n\n### Command Line\n* Your usual build tool-chain.\n    * Ubuntu / Debian: `# apt install build-essential cmake ninja-build`\n    * Arch Linux / Manjaro: `# pacman -S base-devel cmake ninja`\n* You can generate the cmake build preset using `cmake --preset` and you can list the presets using `cmake --list-presets`\n\n## Configuration for using System Dependencies (Recommended for packagers)\n\nIf you don't want to use vcpkg; CMake will use system libraries, or manually specified package directories.\n\nCMake will find the required libraries as long as they provide a [proper config file](https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#libraries-providing-config-file-packages).\n\n### Arch Linux\n\nInstall [openblack-git](https://aur.archlinux.org/packages/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.\n\nThe prefix to use is `\"linux-system-deps\"   - Linux (System Deps)`\n\n\n## Contributing\nContributions are always welcome, whether it's modifying source code to add new\nfeatures or bug fixes, documenting new file formats or simply editing some\ngrammar.\n\nYou can also join the [Discord for development discussion]((https://discord.gg/5QTexBU))\nif you are unsure of anything.\n\n# Extracting asset files from original game\n\nAs mentioned before, the original game assets are required in order to run\nopenblack. Since these data are copyrighted, **we won't provide them**, so please\ndon't ask. Here is a guide for extracting them from the original game.\n\n## Prerequisites\n\nYou will need the following:\n\n- The original installer (usually on a CD)\n- [Official patch 1.10](https://www.bwgame.net/downloads/v1-1-patch.129/)\n- [Official patch 1.2](https://www.bwgame.net/downloads/v1-2-patch.130/)\n- Not needed (but will not compromise the extraction): [Unofficial patch 1.42](https://www.bwgame.net/downloads/black-white-unofficial-patch-v1-42.1418/)\n\n**Do not install 1.3, it is a patch to add P5 Power Glove support and is generally unstable**\n\n## Installation\n\n### On Windows\n\n1. Install the game from the installer, remember the installation directory\n(`C:\\\\Program Files (x86)\\\\Lionhead Studios\\\\Black \u0026 White\\\\` is the default)\n2. Install the official patch 1.10 (in the same directory)\n3. Install the official patch 1.2 (in the same directory)\n\n### On Linux and macOS\n\nIf you run on Linux or macOS, you can install the game with Wine\n([App Page on WineHQ](https://appdb.winehq.org/objectManager.php?sClass=application\u0026iId=156)).\n\n1. Install `wine`\n2. Run `wine Setup.exe` from the directory containing the installer, don't\n   change the install path\n3. Run `wine Black_White_Patch_v1.100.exe` from the directory containing the\n   first patch (adapt the command in case the filename isn't exactly that)\n4. Run `wine black_white_patch_v1_20.exe` from the directory containing the\n   second patch (adapt too)\n5. In case you would like to install the unofficial patch, it requires .NET 2.0,\n   that can be installed with `winetricks dotnet20sp2` (you should install\n   `winetricks first`)\n\nAll the files should be installed in the following directory:\n`~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black \u0026 White`\n\n## Getting the assets\n\nThe folders you're interested in are the `Audio`, `Data` and `Scripts` folders in the\ninstallation directory. You can use them from there or make a copy to the\nlocation of your choice.\n\n### Using them in place\n\nIf you want to use them from there, remember the installation directory chosen\nin the installation step, unless you changed it, it should be either:\n\n- either`C:\\\\Program Files (x86)\\\\Lionhead Studios\\\\Black \u0026 White\\\\`\n- or `~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black \u0026 White`\n\nThis is the path you will give to openblack (using the `-g` flag).\n\nIf you prefer to copy the data (e.g. if you want to uninstall the original\ngame), just copy the `Data` and `Scripts` folders to the desired new location,\nand give the path to this location to openblack (using the `-g` flag).\n\n# License\n\nopenblack is released as open source software under the [GPL v3](https://opensource.org/licenses/gpl-3.0.html)\nlicense, see the [license](./license) file in the project root for the full license text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenblack%2Fopenblack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenblack%2Fopenblack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenblack%2Fopenblack/lists"}