Skip to content
Yharnam Together

Build from source

Build the port, the server and the release of Yharnam Together on Windows, run the local checks and the multi-game test rig.

Prerequisites

Windows only for now.

  • The port: MSYS2 with the CLANG64 packages listed in bbport/packaging/windows/README.md, and a python.org Python 3.10 or later (it freezes the launcher).
  • The server and emulator: VS 2022 Build Tools (C++ workload, Windows SDK), LLVM 20.1.8 (clang-cl), CMake, Ninja, Qt 6.8.3 msvc2022_64.
  • Checks: Python 3.12 with clang-format==19.1.7 and reuse, and jj for the local CI script.

Get the code

git clone https://github.com/lKaniel/bloodborne-server.git C:\bb\bloodborne-server
cd C:\bb\bloodborne-server
git config submodule.emulator/externals/mesa-kosmickrisp.update none   # macOS-only
git submodule update --init --recursive

BB_ROOT (default C:\bb) holds the checkout. Build output goes to C:\bb\out, outside the tree.

Scripts

ScriptWhat it does
tools/build-bbport.ps1 [-Test]builds the port and, with -Test, its co-op tests
tools/build-server.ps1builds shadNet and its tests
tools/build-emu.ps1builds the emulator and its unit tests
tools/ci-check.ps1 -Component <name>local CI per component: format, licenses, build, tests
tools/make-release.ps1 -Version x.y.zbuilds and checks a release
tools/rig/run_scenario.pythe automated multi-game test rig

Make a release

tools\make-release.ps1 -Version 0.1.0              # build and package into C:\bb\release
tools\make-release.ps1 -Version 0.1.0 -Publish     # ... and create a draft GitHub release

It builds and packages the port and shadNet, adds the launcher's setup and texts, and checks the result: everything a player needs is there, and no game file, save, log or setting is. Build from a clean, pushed commit; check the draft on GitHub, then publish it.

The test rig

tools/rig starts two to four low-spec games on one PC, headless, drives them through scenarios (join, lamp trips, boss kills, hits on a shared health bar, party wipes, crashes and rejoins) and checks their logs. Changes run through it alongside the unit and contract tests.

This website

website/ is a Next.js app with shadcn/ui components. npm ci, then npm run dev; npm run check runs the lint, the type check, the tests and the production build.