brave-fencer-musashi-decomp-port
brave-fencer-musashi-decomp-port is an experimental PC port of Brave Fencer Musashi for PlayStation, playable on Linux and Windows.
- Type: PC port
- Game: Brave Fencer Musashi
- Runs on Windows and Linux
- By Blizz127
- Latest release bfm-r41-3634893fe, 2026-10-05
- Source: https://github.com/Blizz127/brave-fencer-musashi-decomp-port
README
brave-fencer-musashi-decomp-port
An experimental PC port of Brave Fencer Musashi (PlayStation, USA, SLUS-00726). You play from your own disc; no game data or BIOS is included. The current runtime is hybrid: compiled host code plus a CPU interpreter. The fully native port remains a development goal.
Public r38 — 2026-10-02: Linux x86_64 is available. Forest rendering fixes and isolated inn save/cold Continue checks passed. Windows x64 test build — 2026-10-05:
bfm-r44-c427ee546-windows-x64.zipis available in the bfm-r41-3634893fe test prerelease. It has been validated under Wine only, not on real Windows. The same prerelease also has a newer Linux r41 test build. Whole-game completion and full graphics/audio fidelity are unverified.
About this project
This is a passion project. I'm working hard on it, but it's made for fun and for everyone's enjoyment — free, non-commercial, and made by a fan. If you enjoy it, that's the whole point.
Milestones and progress
Public releases mark selected improvements; an entire milestone may still be in progress. The Milestones wiki page defines each milestone and records segment status and a dated changelog.
Next milestone: Chapter 1 playable end to end, with saving.
How to play
These instructions match bfm-r38-61c60516d. Read the setup guide for prerequisites, controls, saves and troubleshooting.
Linux x86_64
Download bfm-r38-61c60516d-linux-x86_64.tar.gz and SHA256SUMS from the
release page into the same directory, then:
sha256sum -c SHA256SUMS
mkdir -p "$HOME/Games/bfm-port"
tar -xzf bfm-r38-61c60516d-linux-x86_64.tar.gz -C "$HOME/Games/bfm-port"
"$HOME/Games/bfm-port/bfm-r38-61c60516d/launch.sh"
Requires glibc 2.38+, a C++ runtime with GLIBCXX_3.4.32, OpenGL
and the desktop graphics/audio libraries listed in the setup guide.
Put a .cue/.bin dump of your own USA SLUS-00726 disc in
~/Games/brave-fencer-musashi/disc/ or a disc/ folder beside launch.sh.
Keep all referenced tracks together. One-bin and per-track dumps work; a
2048-byte .iso does not. A file picker is offered when available, or set
BFM_DISC="/path/to/your/game.cue" when launching.
For Steam Deck/Game Mode, add launch.sh as a non-Steam game and keep Steam
Input enabled. Preserve earlier version folders and back up saves after
quitting normally; no running game needs to be updated or restarted.
Windows x64 (test build, Wine-validated only)
Download bfm-r44-c427ee546-windows-x64.zip and SHA256SUMS from the
bfm-r41-3634893fe release page. This build was cross-compiled for
Windows 10/11 x64 and has run only under Wine. It has not been tested on
real Windows hardware. Its native-lane function set is the same as Linux r41.
- Optional: check the download in PowerShell with
Get-FileHash bfm-r44-c427ee546-windows-x64.zip -Algorithm SHA256. Compare the result with the line inSHA256SUMS. - Extract the zip to a folder you control, for example
%USERPROFILE%\Games\bfm-port. - Put the
.cue/.bindump of your own USA SLUS-00726 disc in adisc\folder next tolaunch.cmd, or in%USERPROFILE%\Games\brave-fencer-musashi\disc. Keep all referenced tracks together. If neither folder has a disc, a file picker asks once. You can also setBFM_DISCto the.cuepath. - Run
launch.cmd. Saves go to%APPDATA%\bfm-port(memory cardbfm_card0.mcd). The log of the last run is%APPDATA%\bfm-port\last-run.log.
The package README says controls and the dev menu work as in the Linux build:
F8 or Select+Start opens the menu, and BFM_DEV_MENU=0 turns it off. That
has not been re-checked on a Windows machine. See
Windows notes.
Controls, saves and dev menu
- Gameplay: D-pad/left stick or arrows/WASD; controller A/B/X/Y correspond to Cross/Circle/Square/Triangle, or keyboard C/V/X/Z. Enter is Start; Space is Select. Full controls.
- Save using the game's menus. The default Linux card is
~/.local/state/bfm-port/bfm_card0.mcd;BFM_SAVE_DIRselects a separate card directory. Inn save and cold Continue passed isolated tests. Save/config locations and limitations. - The packaged dev menu is enabled by default, with cheats initially off. Open with F8 or Back/Select+Start on one controller. Navigate with Up/Down or D-pad/left stick; Enter/A selects, Esc/B goes back. F1 is help. The game keeps running while the menu is open.
- The menu offers 29 warp destinations, an empty Finish Area page, HP/BP refills, Drans/time actions, fast-forward and screenshots. See the current Dev Menu wiki for exact options, effects and precautions.
The log is ~/.local/state/bfm-port/last-run.log by default. See
troubleshooting. General config.ini
settings are not reliably loaded by r38; the setup guide lists working
launcher controls instead.
Status
r38 fixes forest frames going dark and includes tested inn saving and cold
Continue. Forest, village and the recorded four-scene attract route passed
scoped checks. Attract still stops at known refusal 800495ec; later
unsupported code may also stop. Automated checks used null audio, and do
not establish hardware audio fidelity or whole-game completion.
The goal remains a faithful, fully native port. Original rendering is the release default. Cheats start off, even though the dev menu is enabled. Milestones and known divergences distinguish completed checks from remaining work.
Build from source
Source snapshot limitation: the public r38 tag points to sanitized
snapshot ec620c78dd5f68a166f6565f7c2d8539e9c378a0; its runtime binaries
were built from 61c60516d18bf6402e6dbd937d8c8d18ebd1af4b. GitHub's automatic
source archives and the historical build instructions below do not
reproduce the newer r38 binary. The Windows x64 binary was cross-built
from unpublished port sources (windows-port c427ee546); this recipe does
not build it. Public player instructions above describe the release
artifact, not the older source snapshot's menu behavior.
This repository holds the port (pc_port/), its tools (tools/), tests,
configuration and documentation, and the owner-authored matched C that the
port compiles natively (src/main/, 252 functions, with their entries in
provenance/matches.json: addresses, sizes and source paths only). All of it
is the owner's original work. See EXCLUDED.md for what is left
out and why.
Matched C is a reimplementation of the game's own code, written so that the original compiler reproduces the original machine code. It is published for study, interoperability and preservation, like other matching decompilations; it does not grant any rights in Brave Fencer Musashi.
The r38 release binary is built with -DMUSASHI_NATIVE_LANE=ON -DMUSASHI_LANE_OWN_CODE_ONLY=ON. With these options the native lane compiles
only owner-authored matched C listed in
config/lane_own_code_allow.txt (guest
addresses only). Everything else runs interpreted from your own disc,
including every function whose recorded origin names the upstream
decompilation or Sony/Psy-Q code. The commands below describe the older
sanitized source snapshot. Its historical function counts do not describe
r38; the current release's admitted sources passed the no-m2c-macro guard.
A build needs the following:
-
Linux build dependencies: CMake, a C/C++ compiler and clang, Python 3, SDL2, OpenAL Soft, OpenGL, OpenSSL (libcrypto), and optionally zlib.
-
PsyCross (MIT).
./tools/fetch_toolchains.shfetches it at the pinned commite56e4cdintotools/third_party/psycross/. The same script also fetches maspsx, m2c and the old-gcc compilers used by the matching tools. Then apply the port's local PsyCross edits (MIT):git -C tools/third_party/psycross apply ../../patches/psycross-local.patch(the patch istools/patches/psycross-local.patch, made againste56e4cde)../tools/fetch_lua.shfetches Lua for mod scripts. This step is optional. -
Your own disc, at build time.
tools/native_lane_gen.pyreadsextracted/disc/files/SLUS_007.26andextracted/overlays/main/0003.binto verify what it compiles. The tools create both files from your disc:# dumpsxiso from https://github.com/Lameguy64/mkpsxiso, built into # tools/third_party/mkpsxiso/build/; chdman (MAME) on PATH python3 tools/register_retail.py "/path/to/Brave Fencer Musashi (USA).chd" python3 tools/extract_retail.py "/path/to/Brave Fencer Musashi (USA).chd" python3 tools/extract_cd.py extracted/disc/files/MAIN.CD --output extracted/overlays/mainThese commands check your CHD against the pinned size and SHA-256 of the USA release. They write the BIN/CUE and the disc files to the ignored
extracted/directory. -
Configure and build:
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DMUSASHI_NATIVE_LANE=ON -DMUSASHI_LANE_OWN_CODE_ONLY=ON cmake --build build -j"$(nproc)" build/musashi_native_boot --disc extracted/disc/disc.cue
Full build instructions will be in BUILD.md (to be added). Also see
docs/PC-PORT.md and
docs/ARCHITECTURE-PORT.md.
tools/package_legion.sh builds the release bundle with launch.sh, and runs
the retail-data guard before it writes the tarball.
License
- The owner's original work in this repository is under the MIT License (LICENSE). That license covers only this work.
- The upstream decompilation
Druthulu/BFM-decomp is credited
as the reference this project was checked against. Its symbol and type
names are used in
config/, with credit. None of its code is included (see CREDITS.md). - Third-party libraries and tools keep their own licenses (see CREDITS.md).
- Brave Fencer Musashi is © Square Enix (originally Square Co., Ltd.). This project is not affiliated with or endorsed by Square Enix or Sony Interactive Entertainment. See NOTICE.md.