Every tag's GitHub Release carries the
pfx tool for three platforms, with a
SHA256SUMS file holding the sha256 of every asset. Check a
download before you unpack it:
sha256sum --check --ignore-missing SHA256SUMS
On macOS the command is
shasum -a 256 --check --ignore-missing SHA256SUMS; on
Windows, Get-FileHash <file> prints the hash to compare.
The tool needs a GPU wgpu can open: Vulkan on Linux, Vulkan or DX12 on Windows,
Metal on macOS.
Linuxpfx-v3.1.3-linux-x86_64.tar.gz
mkdir pfx && tar -xzf pfx-v3.1.3-linux-x86_64.tar.gz -C pfx
install -Dm755 pfx/pfx ~/.local/bin/pfx
cp -r pfx/share/. ~/.local/share/
update-mime-database ~/.local/share/mime
update-desktop-database ~/.local/share/applications
share/ installs the desktop file, the
application/x-pfx type for .pitofx files and
pfx's icons. pfx must be on PATH;
~/.local/bin is on it in most desktops.
Windowspfx-v3.1.3-windows-x86_64.zip
In PowerShell, from the folder holding the zip:
Expand-Archive pfx-v3.1.3-windows-x86_64.zip -DestinationPath $env:LOCALAPPDATA\Programs\pfx
$user = [Environment]::GetEnvironmentVariable('Path', 'User')
[Environment]::SetEnvironmentVariable('Path', "$user;$env:LOCALAPPDATA\Programs\pfx", 'User')
powershell -ExecutionPolicy Bypass -File $env:LOCALAPPDATA\Programs\pfx\associate.ps1
associate.ps1 registers the .pitofx type and
a Start menu entry for the current user only, with no administrator;
associate.ps1 -Remove takes it out again. Typing pfx in a terminal runs
pfx.com, the command line; pfx.exe is the window
launcher. Both stay in the same folder.
The command-line tool:
tar -xzf pfx-v3.1.3-macos-arm64.tar.gz
sudo install -m755 pfx /usr/local/bin/pfx
From sourceLinux, Windows, macOS
cargo install --locked --git https://github.com/gmrdad82/pfx --tag v3.1.3 pfx
The pfx tool builds from source on Linux, Windows and macOS
(Apple Silicon). It needs Rust 1.97 or newer and a GPU wgpu can open:
Vulkan on Linux, Vulkan or DX12 on Windows, Metal on macOS. On Debian
or Ubuntu, first:
sudo apt install libasound2-dev libudev-dev libxkbcommon-dev libwayland-dev libx11-dev
pfx alone opens the window,
pfx <file.pitofx> opens that document in it, and any
command or flag runs on the command line without one.
Your gamethe crates, by tag
Make a game, play it and open it in the editor:
git init my-game
pfx new my-game
cd my-game
cargo run --release
cargo run --release -- edit
A game links the crates it uses by the same tag, on Linux, Windows
and macOS:
pfx-game = { git = "https://github.com/gmrdad82/pfx", tag = "v3.1.3" }
pfx and its crates build and pass their unit tests on Linux, Windows
and macOS (Apple Silicon), and a game's Windows build runs on Linux
and the Steam Deck through Proton.