Overview | News | Windows | macOS | Android | iOS | Audio Formats | Components | Encoder Pack | Screenshots | Help & Support | Developer | Old Versions | Other Projects | Blog & Rants
PSF Decoder
By: oops
foo_input_psf is a decoder component that adds playback support for PSF, PSF2, miniPSF and miniPSF2 files ripped from PlayStation and PlayStation 2 discs to foobar2000.
It is based on foo_psf by Christopher Snowhill (kode54).
It uses the PS1 and PS2 Sound Emulator Library (Highly_Experimental) by Neill Corlett and the PSF Parser Library (PSFlib).
PSF/PSF2 soundtracks can be distributed as a single ".psf"/".psf2" file per song (with a lot of redundant data) or as a set of ".minipsf"/".minips2" and ".psflib"/".psf2lib" files, where all redundant data is stored together in a single ".psflib"/".psf2lib" file and the data unique to each song is stored in the ".minipsf"/".minipsf2" files.
The PSF format (originally PlayStation Sound Format, now renamed to Portable Sound Format) was created in 2002 by Neill Corlett, also the author of the Highly Experimental Winamp plugin.
Features
It is based on foo_psf by Christopher Snowhill (kode54).
It uses the PS1 and PS2 Sound Emulator Library (Highly_Experimental) by Neill Corlett and the PSF Parser Library (PSFlib).
PSF/PSF2 soundtracks can be distributed as a single ".psf"/".psf2" file per song (with a lot of redundant data) or as a set of ".minipsf"/".minips2" and ".psflib"/".psf2lib" files, where all redundant data is stored together in a single ".psflib"/".psf2lib" file and the data unique to each song is stored in the ".minipsf"/".minipsf2" files.
The PSF format (originally PlayStation Sound Format, now renamed to Portable Sound Format) was created in 2002 by Neill Corlett, also the author of the Highly Experimental Winamp plugin.
Features
- Decodes music files from the PlayStation and PlayStation 2 consoles, ripped to the PSF, PSF2, miniPSF or miniPSF2 formats.
- Supports dark mode for its Preferences page and configuration dialogs.
- Includes 32-bit and 64-bit x86 component variants as well as ARM64EC.
- Tested on foobar2000 v2.25.10 (x86 64-bit) and Microsoft Windows 11 (Build 26200).
- Requires Windows 10 or later.
Current version: 2.5.0, released on 2026-07-26
Change log:
Changelog relative to foo_psf 2.3.1:
- Enable x64 build and playback
- Enable ARM64EC build and playback
-
Refactor `input_psf` decoder and inline tag handling
- Extract Preferences page and `cfg_*` variables into "preferences.cpp/h"
- Extract context menu entry and time/fade dialog into "context.cpp"
- Extract time and tag utilities into "utility.cpp/h"
- Extract DLL entry module into "dllmain.cpp"
-
Update Preferences page dialog and controls
- Add dark mode support to the Preferences page and to the time/fade dialog
- Replace circular buffer
- Replace deprecated SDK functionality
-
Add more info and metadata tags
- Add "date" file information formatting option
- Replace "magic numbers" with constant expressions
- Rethrow original exception on loader cleanup
- Use `m_`-prefixed names for `input_psf` decoder's data member variables
- Guard against out-of-range reads and invalid state
- Lower console message verbosity
- Update highly_experimental emulator core to b6ba47f
- Update psflib to 8c7d5fb
- Update zlib to 1.3.2
- Update WTL to 10.01
- Update foobar2000 SDK to 2025-03-07
- Update to v145 platform toolset
- Update Windows 11 SDK to 10.0.28000.2114
- Update README
Supported systems: Windows 32-bit, Windows 64-bit, Windows ARM.
Works with foobar2000 v2.0 and newer.
Works on Windows 10 and newer.
Links
View version history
Documentation
Discussion
More components
Browse all
Browse by author: oops
Tags: decoder, game music, Sony Playstation, Sony Playstation 2