Reading the repo
Opening the box…
Reading the repo
Opening the box…
Assembly instructions
Homebrew PS2 port of Dark Souls Remastered: C/VU1 engine plus exporters that read your own copy of the game (no game data included)
GitHub didn't answer, so this is the saved copy from 13 h ago
Will it work on macOS?
There are three ways to get a disc image (ISO) of the latest main. All of them read your own copy of the game, and
the ISO they make is yours only: never share it.
| Way | What it takes | Notes |
|---|---|---|
| ./build-iso.sh in the repository root | A Linux shell; the steps below, or Docker / Podman | The recommended way. One command exports the game data, builds the ELF and writes build/proto.iso. Without a ps2dev toolchain it pulls the official ps2dev image (ps2dev/ps2dev) and builds in it with Docker / Podman (tools/build-iso.sh). ./build-iso.sh --help lists the options |
| The project page, https://nekomancer01.github.io/DarkSoulsPS2/ | A desktop browser (Chrome, Edge or Firefox) and plenty of memory | Converts your game folder into an ISO inside the browser tab; nothing is uploaded. Very much a work in progress, see below |
| The full developer setup (steps 1 to 6 below) | Linux, ps2dev, Python, PCSX2 | For changing the code and running the tests |
[!CAUTION] The in-browser converter is a heavy work in progress. It runs the port's own Python converter (
tools/convert.py) in WebAssembly (Pyodide, with its C helpers built bytools/native/build-wasm.sh) and packs the game-free ELF from CI withtools/iso9660.py. It is slow (about 10 to 20 minutes), each worker needs up to about 2.5 GB of memory and can fail on PCs with less, the ISO it makes has no sound yet (the game's MP3 sound banks can't be decoded in the browser), and it may lag behind or break when the native build changes. If it fails or the result misbehaves, use./build-iso.shinstead and please report what happened.
Tested on Linux. The steps assume a Linux shell; Windows users should use WSL or a Linux VM.
| Need | Notes |
|---|---|
| Dark Souls Remastered, Steam PC version | Build 10943698 with English data is the one that's checked. python3 tools/verify_game.py lists supported versions. |
| ps2dev toolchain with gsKit | Get a ps2dev release from https://github.com/ps2dev/ps2dev. ps2/env.sh looks for it in ~/tools/ps2dev-2.0.0/ps2dev; set PS2DEV=/your/path if it's elsewhere. |
| Python 3.10 or newer | The tools need Pillow and numpy (step 3). |
| gcc, g++ | Compile a few small native helpers on first use (g++: meshoptimizer's simplifier for the far horizon level). |
| libmpg123 | Decodes the game's MP3 sound banks for the sound packs (Debian/Ubuntu libmpg123-0, Fedora/Arch mpg123). |
| PCSX2 2.x | The Flatpak net.pcsx2.PCSX2 is what the run scripts use. |
| RAM | The first full export needs several GB. |
The game folder is the one that holds DarkSoulsRemastered.exe. Usually you don't need to do anything:
tools/gamepath.py searches the usual Steam libraries (native, Flatpak and Snap Steam, and every library in
libraryfolders.vdf). If yours is somewhere else, use one of these:
export DSR_GAME="$HOME/.local/share/Steam/steamapps/common/DARK SOULS REMASTERED"
or put DSR_GAME = /path/to/DARK SOULS REMASTERED in config.local.mk at the repo root (git-ignored), or pass
make DSR_GAME=....
Then check your copy:
python3 tools/verify_game.py
It hashes the exe and the data files the exporters need. An unknown version stops the build with a message;
DSR_ALLOW_UNSUPPORTED=1 builds anyway, for trying a newer patch.
python3 -m venv .venv && .venv/bin/pip install -r tools/requirements.txt
The build uses .venv automatically. To use a different Python, put PY = /path/to/python in config.local.mk.
The game loads its files from your disk through PCSX2's host: device. In PCSX2's PCSX2.ini (Flatpak:
~/.var/app/net.pcsx2.PCSX2/config/PCSX2/inis/PCSX2.ini), set:
[EmuCore]
HostFs = true
You can skip this if you only play the ISO build (step 6).
source ps2/env.sh
make -C ps2/proto
The first build converts the game data. It takes several minutes and several GB of RAM. Later builds only redo what
changed. make uses every CPU core by default; make -j4 (or JOBS=4) limits it. The result is build/proto.elf, which starts at the Firelink Shrine bonfire.
tools/pcsx2-run.sh build/proto.elf
Or build a disc image and open it in PCSX2 like any game (HostFs isn't needed for this):
make -C ps2/proto iso # writes build/proto.iso
./build-iso.sh in the repository root does steps 5 and 6 in one command: it exports the game data, builds the ELF
and writes build/proto.iso. -i DIR picks the game folder, -o FILE also copies the ISO elsewhere, -c N sets
how many CPU threads it uses; --help lists every option. In a terminal it shows a progress view (a progress bar,
the current step and the latest output line) and writes the full log to build/build-iso.log; --plain (or
DSR_TUI=0, or output to a file or pipe) prints the plai
…
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: xcode-select --install
git clone https://github.com/nekomancer01/DarkSoulsPS2.git cd DarkSoulsPS2
make, Python 3
xcode-select --install brew install python
In the maintainers' order. Do the README instructions above first — they cover steps outside the terminal.
export DSR_GAME="$HOME/.local/share/Steam/steamapps/common/DARK SOULS REMASTERED" python3 tools/verify_game.py python3 -m venv .venv && .venv/bin/pip install -r tools/requirements.txt source ps2/env.sh make -C ps2/proto tools/pcsx2-run.sh build/proto.elf make -C ps2/proto iso # writes build/proto.iso
No reports for macOS yet.
GitManual AI Agent reads the 4 key files and writes a step-by-step guide for macOS. Once written, it's saved for everyone.