Offline, no PSN account required.
psOff is a closed-source PlayStation 4 emulator (compatibility layer) written in C++20. The project is still in its early stages, and many games may not work properly yet. However, we are continuously improving compatibility and performance. Stay updated via our Discord server and Compatibility Tracker. You can track our progress here.
- Ray - Project Founder (GitHub: @SysRay)
- Daydreamer - Secondary Developer (GitHub: @igor725)
- Overlay User Interface – Accessible in-game anytime via
Share
(gamepad) orSpace
(keyboard) button. - Couch Co-Op – Play local multiplayer with up to 3 friends using multiple gamepads (it is possible to emulate gamepad using keyboard too – check bottom of README for keybinds).
- PS4 Firmware Modules – Load system modules for broader compatibility.
- Community Patches – Supports illusion0001's patches (manual installation required for now – check our Discord for more info).
- Per-Game Settings – Customize FPS limits, resolution, and other options per title.
- Separate Save Files – Each user profile maintains independent game progress.
- Auto Game Detection – Scans folders recursively for PS4 games and their patches.
- Smart Library – Sort, filter, and list favorite games in your collection.
- Trophies – Check your progression and earn trophies with in-game notifications (requires decryption key from retail console – check our Discord for more info).
- Playtime Stats – Tracks hours played.
- Background Music – Plays game-specific background music/ambient in emulator menu.
- Mouse/Keyboard Support – Native controls for compatible games (WIP).
- Multi-GPU Setups Support – Select preferred graphics card if you have Multi-GPU setup.
- Gamepad Audio – Games can output audio to your gamepad speaker.
- 1-Click Bug Reports – Submit GitHub issues with game-specific templates.
- Auto-Updater – Seamlessly installs latest versions from GitHub.
- Ensure there is no existing issue for your game before posting.
- Issues must be submitted in English. However, screenshots or videos containing non-English text are acceptable.
- Log files are mandatory. Issues without logs will be closed within 24 hours. (Exception: If the game runs perfectly with no issues, log files are optional.)
- Submit issue reports WITHOUT community patches enabled.
- Provide as much information as possible. Detailed information is crucial for resolving issues.
- Log files must be in FileBin format (
*.p7d
). Since these files cannot be uploaded directly to GitHub, compress them into a zip, tar, or 7z archive and attach the archive to your issue. - Specifying the game engine in your report is encouraged, if known.
- The game status is updated to "Intro" if the emulator can display at least one intro screen (audio/video or both) or reach the game's main menu in any form.
- The game status is updated to "Ingame" if the emulator can boot into the game's world. Additionally, the game is labeled “beat-request” if it shows stable performance (60+ fps or 30+ fps if the frame rate is limited by the game itself), the player can control the character without issues, and the game does not crash during the reported session.
- The game status is updated to "Playable" if the emulator maintains a stable frame rate, there are no memory leaks or critical graphical bugs, and the player can complete the game from start to finish without significant issues. If the game is infinite, the user should have no problem utilizing all of its core mechanics.
- The report is labeled "input" if it mentions problems with input using any gamepad backend (xinput, sdl, or keyboard) available in the emulator settings.
- The report is labeled "graphics" if there are rendering issues, such as missing game objects, flickering, incorrect colors, or a complete lack of image.
- The report is labeled "hang" if the game freezes and becomes unresponsive to user input.
- The report is labeled "regression" if a new emulator version causes degraded performance, such as graphical rendering issues, missing or distorted sound, input problems, or the game failing to run entirely.
- The report is labeled “need-info” if it is incomplete or the developers request additional information.
- AES-128-CBC - AES encryption and decryption library (removed since 2025Feb23, replaced with OpenSSL implementation).
- alpaca - Serialization library for C++17.
- boost - Cross-platform development tools.
- emhash - Fast and memory-efficient C++ flat hash map/set.
- FFmpeg - Cross-platform multimedia library (optional, installed on user request).
- Fixed Containers - C++20 containers library.
- googletest - Google Testing and Mocking Framework.
- imgui - Bloat-free graphical user interface.
- libp7-baical - Logger and telemetry library.
- libpng - Portable Network Graphics library.
- libzip - C library for managing zip archives.
- magic_enum - Static reflection for enums in modern C++.
- nlohmann::json - JSON library for modern C++.
- openssl - TLS/SSL and cryptography library.
- pugixml - Lightweight, fast XML parser.
- RenderDoc - Standalone graphics debugger.
- SDL - Simple DirectMedia Layer.
- tracy - Graphics frame profiler.
- VMA - Vulkan memory allocation library.
- xxHash - Extremely fast non-cryptographic hash algorithm.
- zlib - Cross-platform data compression/decompression library.
- zydis - Fast and lightweight x86/x86-64 disassembler and code generation library.
- W, A, S, D - Left Stick (Hold Shift to emulate L3 click).
- I, J, K, L - Right Stick.
- Up, Down, Left, Right - DPad.
- KpEnter, Enter - Options.
- Ctrl + T - Touchpad click.
- Q - L1.
- E - L2.
- U - R1.
- O - R2.
- M - R3.
- Z - Square.
- T - Triangle.
- X - Cross.
- C - Circle.