DuckStation is a Sony Playstation 1 emulator.
Website: https://www.duckstation.org/
Github: https://github.com/stenzek/duckstation
Compatibility List: https://docs.google.com/spreadsheets/d/1H66MxViRjjE5f8hOl5RQmF5woS1murio2dsLn14kEqo/edit#gid=0
DuckStation Table of Contents
Getting Started with DuckStation
DuckStation is a fairly straight-forward emulator to set up. Place your ROMs in Emulation/roms/psx
. Place your BIOS directly in Emulation/bios
. Read the Configuration section to learn more about DuckStation and its folder locations.
To launch your ROMs in game mode, use Steam ROM Manager and use one of the following parsers to play your PlayStation 1 ROMs:
EmulationStation-DE
Sony PlayStation - DuckStation
Emulators
DuckStation Configuration
- Type of Emulator: Flatpak
- Config Location:
/home/deck/.var/app/org.duckstation.DuckStation
- ROM Location:
Emulation/roms/psx
- BIOS Location:
Emulation/bios
- IMPORTANT: Files go directly in this folder. Do not make or use a
PSX
,PS1
, or any sort of folder here. DuckStation will not be able to find your bios files if they are in a folder. - Required BIOS (Example set, one per region - US, Europe, Japan):
scph5500.bin
,scph5501.bin
,scph5502.bin
- IMPORTANT: Files go directly in this folder. Do not make or use a
- Saves:
Emulation/saves/duckstation/saves
- Save States:
Emulation/saves/duckstation/states
Note:
~/.var
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, clickShow Hidden Files
to see these folders.- Refer to: https://en.wikipedia.org/wiki/PlayStation_models#Comparison_of_models, for a full list of PSX bios
- System Models and PSX BIOS have matching names
Works With
- Steam ROM Manager
- EmulationStation-DE
DuckStation Folder Locations
These file locations apply regardless of where you chose to install EmuDeck (to your internal SSD, to your SD Card, or elsewhere). Some emulator configuration files will be located on the internal SSD as listed below.
$HOME
refers to your home folder. If you are on a Steam Deck, this folder will be named /home/deck
(you will likely not see deck
in the file path when navigating using the file manager).
Paths beginning with Emulation/..
correspond to your EmuDeck install location. If you installed on an SD Card, your path may be /run/media/mmcblk0p1/Emulation/roms/..
. If you installed on your internal SSD, your path may be /home/deck/Emulation/roms/..
Note: Folders with a .
(.var
, .local
, .config
, etc.) at the beginning are hidden by default. In Dolphin (file manager), click the hamburger menu in the top right, click Show Hidden Files
to see these folders.
$HOME/.var/app/org.duckstation.DuckStation
org.duckstation.DuckStation/
├── cache
├── config
│ ├── duckstation
│ │ ├── cache
│ │ ├── cheats
│ │ ├── covers
│ │ ├── dump
│ │ ├── gamesettings
│ │ ├── inputprofiles
│ │ ├── playtime.dat
│ │ ├── screenshots
│ │ ├── settings.ini
│ │ ├── settings.ini.bak
│ │ ├── shaders
│ │ └── textures
│ ├── kdeglobals
│ ├── pulse
│ │ └── cookie
│ ├── QtProject.conf
│ └── user-dirs.dirs
└── data
└── duckstation
├── settings.ini
└── settings.ini.bak
How to Update DuckStation
How to Update DuckStation
- Through the
Update your Emulators & Tools
section on theManage Emulators
page in theEmuDeck
application - Run
Update Emulators & Tools
inEmuDeck
- Launch the emulator from
Steam
after adding it via theEmulators
parser inSteam ROM Manager
How to Launch DuckStation in Desktop Mode
How to Launch DuckStation in Desktop Mode
- Launch
DuckStation
from the Applications Launcher (Steam Deck icon in the bottom left of the taskbar) - Launch the script from
Emulation/tools/launchers
,duckstation.sh
- Launch the emulator from
Steam
after adding it to Steam via theEmulators
parser inSteam ROM Manager
DuckStation File Formats
- .cue and .bin
- .chd
- .ecm
- .iso
- .m3u
- .mds
- .pbp
Configuring DuckStation to work alongside Retroarch's Beetle HW PSX core
- ROM files for Retroarch's Beetle HW PSX core are shared with DuckStation in
Emulation/roms/psx
. - BIOS files for Retroarch's Beetle HW PSX core are shared with DuckStation in
Emulation/bios
(no subfolders). - As long as you name your BIOS files in this format:
scph####.bin
(####'s are a placeholder), Retroarch's Beetle HW PSX core will work alongside DuckStation. - Be sure to rename your BIOS files and note the lowercase
scph
, lowercasebin
in the example above.
Note: By default, EmulationStation-DE uses Retroarch's Beetle HW PSX core. Both Retroarch's Beetle HW PSX core and DuckStation should work if you have set everything up properly.
To switch between the two in EmulationStation-DE, you can use the Alternative Emulators
feature. Refer to https://github.com/dragoonDorise/EmuDeck/wiki/EmulationStation-DE#how-to-select-a-different-emulator-for-a-system, for instructions.
DuckStation Hotkeys
DuckStation comes with a Steam Input profile for Hotkeys. Activate the Steam Input profile by clicking the Game Controller
icon in Game Mode
, change the template to Emudeck - DuckStation
. The hotkeys below can only be used if you have the Steam Input profile active.
Long Press to activate hotkeys on the left trackpad radial menu.
Hotkey | DuckStation |
---|---|
Save State | Left Trackpad Touch Menu |
Load State | Left Trackpad Touch Menu |
Next Save Slot | Left Trackpad Touch Menu |
Previous Save Slot | Left Trackpad Touch Menu |
Pause/Play | Left Trackpad Touch Menu |
Quick Menu | Left Trackpad Touch Menu |
Swap Disc | Left Trackpad Touch Menu |
Fast Forward (Toggle) | Left Trackpad Touch Menu |
Fast Forward (Hold) | Select + R2 |
Rewind | Select + L2 |
Pause | Select + A |
Toggle Full Screen | Select + R3 |
Quick Menu | Start + L3 |
Load State | Select + L1 |
Save State | Select + R1 |
Next Save Slot | Start + R1 |
Previous Save Slot | Start + L1 |
Increase Resolution Scale | Start + DPad Up |
Decrease Resolution Scale | Start + DPad Down |
Toggle Widescreen | Start + DPad Right |
Toggle PGXP | Start + DPad Left |
Toggle Software Rendering | Start + L3 |
Exit | Select + Start |
Note:
DuckStation Tips and Tricks
How to Optimize Storage (Compression Tool)
To optimize storage, you can use the EmuDeck Compressor
within EmuDeck.
The EmuDeck Compressor
will compress your Playstation 1 ROMs from ISO or BIN/CUE to CHD. If your ROM is a BIN/CUE, the Compression Tool will only compress it if you have both the BIN and the CUE files for a ROM. If the ROM is in a zip file or is missing a paired BIN or CUE file, the Compression Tool will not detect the ROM.
After running the EmuDeck Compression Tool
, re-run Steam ROM Manager to update your ROM shortcuts to the newly compressed ROM.
How to Manage Multiple Discs
M3U files can be used to manage multiple discs for DuckStation. When the time comes to switch discs, use the Left Trackpad Touch Menu Hotkey. A full list of hotkeys and a tutorial on how to use Steam Input profiles can be found here: #hotkeys.
Learn how to create an M3U File
How to Use Cheats
- While in game, either: press
Start
andR2
or use the left Trackpad and select theQuick Menu
icon- Steam Input profiles for PlayStation 1 ROMs and EmulationStation-DE are enabled by default. However, if you do not see the Trackpad menu, see How to Select a Steam Input Profile
- Click
Cheat List
- Select which cheats you would like to use
How to Configure Multiplayer
Multiplayer for DuckStation is configured out of the box, no additional configuration is needed.
You may need to re-arrange the controller order in Game Mode for your controllers to function as expected. See How to Re-Arrange the Controller Order for more information.
How to Roll Back DuckStation to an Older Version
- In Desktop Mode, open
Konsole
- To see a list of prior versions of the emulator, type:
flatpak remote-info --log flathub org.duckstation.DuckStation
- Each version will have a long accompanying alphanumeric string (the “commit” code). Copy the string for the version you want to downgrade to.
- To downgrade to the version you want:
flatpak update --commit=put_commit code_here org.duckstation.DuckStation
- Replace
put_commit code_here
with the actual code you located in Step 2. - If this line does not work, you may need to type:
sudo flatpak update --commit=put_commit code_here org.duckstation.DuckStation