Introduction to DuckStation
DuckStation is the premier PlayStation 1 emulator for arcade cabinets, offering unmatched accuracy, performance, and arcade-specific features. Unlike older PS1 emulators, DuckStation provides hardware acceleration, advanced upscaling, and robust controller mapping that makes it ideal for professional cabinet installations.
This guide covers everything from initial setup to advanced kiosk mode configuration, ensuring your arcade cabinet delivers a flawless PlayStation 1 experience.
Controller Configuration
Watch Tutorial6-Button Arcade Button-Mapping Diagram (PS1 Fighting Games)
Mapping a 6-button arcade panel to a PlayStation controller requires a layout that respects both the 1990s "fighting game" standard and the PS1's shoulder-heavy input design. For a professional cabinet, use the following industry-standard cross-reference:
The Universal "Street Fighter" 6-Button Layout
This layout places the primary PS1 "face" buttons on the left and moves the essential triggers/shoulders to the right-most columns.
| Row | Button 1 (Left) | Button 2 (Center) | Button 3 (Right) |
|---|---|---|---|
| Top Row | Square (□) | Triangle (△) | R1 (Shoulder) |
| Bottom Row | Cross (×) | Circle (○) | L1 (Shoulder) |
If You Only Remember One Thing:
Always set your virtual controller type to Analog Controller (DualShock) for maximum compatibility, even if your games don't require analog sticks.
Hardware-Specific Mapping Profiles
Depending on your brand of encoder or controller, DuckStation's binding process varies. Always set your virtual controller type to Analog Controller (DualShock) for maximum compatibility.
1. Xbox Series/Xbox One Controllers (XInput)
Because PS1 and Xbox buttons are positioned differently, use this "SNES-rotated" logic to ensure your muscle memory stays intact:
- DuckStation Mapping: Map Xbox X to PS1 Square, Xbox Y to PS1 Triangle, Xbox A to PS1 Cross, and Xbox B to PS1 Circle.
- Triggers: Use the Xbox LB/RB for PS1 L1/R1 and Xbox LT/RT for PS1 L2/R2.
2. 8BitDo Arcade Stick & M30
8BitDo devices often have a physical switch for XInput (X) or DirectInput (D) mode. Always use X-mode for the fastest auto-configuration.
- Manual Tuning: Use the 8BitDo Ultimate Software to create a custom profile where the top three arcade buttons are hard-coded to your PS1 punches (Square/Triangle/R1) and the bottom three to your kicks (Cross/Circle/L1).
- D-Pad Toggle: On the 8BitDo M30, you can toggle the D-pad to act as a Left Analog stick by holding Select + Up for five seconds—useful for games that require analog movement but lack D-pad support.
3. I-PAC & Keyboard Encoders
For I-PAC boards, map your buttons based on the standard MAME keycodes to ensure the cabinet remains "frontend friendly."
| Physical Cabinet Button | MAME/I-PAC Key | DuckStation virtual PS1 Binding |
|---|---|---|
| P1 Button 1 | Left Ctrl | Square (□) |
| P1 Button 2 | Left Alt | Triangle (△) |
| P1 Button 3 | Space | R1 |
| P1 Button 4 | Left Shift | Cross (×) |
| P1 Button 5 | Z | Circle (○) |
| P1 Button 6 | X | L1 |
Specialist Tip: Per-Game Profiles for Fighting Games
For games like Tekken 3, where R2/L2 are frequently used for macros (like 1+2 grabs), you should use a Per-Game Settings Override:
- Open Tekken 3 in DuckStation.
- Press Escape and select Game Properties.
- Go to the Controller tab and enable Per-Game Configuration.
- Remap Button 3 (Top Right) to R2 specifically for this title. This change will be saved to your
gamesettings/[Serial].inifile and will not affect your global layout for other games.
📺 Video Tutorial: DuckStation Controller Setup & Mapping
Step-by-step walkthrough of mapping arcade controls to DuckStation's virtual PlayStation controller.
🕹️ Arcade Hardware: Light Guns, Trackballs & Sanwa Controls
DuckStation's greatest strength for arcade cabinet builders is its native support for real arcade hardware. Unlike a standard gamepad setup, a proper arcade cabinet uses dedicated input devices that require specific configuration.
🔫 Light Gun Setup
DuckStation supports GunCon 1 and GunCon 2 natively. For modern arcade light guns (Sinden, AimTrak, GunForce):
- Set controller type to GunCon in port settings
- Enable Relative Mouse Mode for Sinden guns
- Calibrate crosshair offset under Controller → Crosshair
- Use per-game profiles for Namco GunCon vs. Konami games
Best PS1 light gun titles: Time Crisis, Point Blank, Die Hard Trilogy, Elemental Gearbolt
🎱 RGB Trackball Mapping
Trackballs appear as relative mouse input. In DuckStation, map them to the analog stick axes for games like Breakout or Centipede ports:
- In Settings → Controllers, bind Left Stick X/Y to mouse axes
- Set Analog Sensitivity to 1.0–1.5 for trackball feel
- Enable Invert Y-Axis if ball movement feels reversed
- Test with Breakout or Arkanoid ports
RGB trackballs (Ultimarc U-Track, Happ) connect via USB and are recognized as standard HID mice
🕹️ Sanwa Joystick Layout
Sanwa JLF and JLW joysticks with 6-button panels are the arcade standard. For PS1 fighting games (Tekken, Street Fighter EX):
- Map buttons in Street Fighter layout: LP, MP, HP top row; LK, MK, HK bottom
- Assign Select+Start to a hidden admin button for exit
- Enable D-Pad to Analog conversion for 3D PS1 titles
- Use per-game profiles to switch between fighting and 3D game layouts
Sanwa buttons (OBSF-30) connect via Ultimarc IPAC or Brook Universal Fight Board encoders
Pro Tip: Pre-Configured Cabinet Advantage
G&G Arcade cabinets ship with DuckStation pre-configured for all three input types—light gun, trackball, and Sanwa joystick—with per-game profiles already assigned. No calibration required on delivery.
Multi-Disc Game Management
Watch TutorialTo automate the management of multi-disc titles in your arcade cabinet, you can use a simple Windows batch script to create .m3u files. This removes the "multi-track mess" from your frontend and allows DuckStation to handle disc swapping as a single library entry.
The Multi-Disc Automation Script
Follow these steps to generate your playlists automatically:
- Open Notepad on your arcade PC.
- Copy and paste the following code exactly as shown:
@echo off
for /R %%I in (*.chd) do (
for %%J in ("%%~dpI.") do echo %%~nxI >> "%%~dpI%%~nxJ.m3u"
)
echo Playlist Generation Complete!
pause- Save the file as
generate_playlists.batinside your main psx ROMs folder. - Run the file. It will scan every subfolder and create a single .m3u file named after that folder, containing all the disc images inside.
Why This Works for Arcade Cabinets
- One Entry per Game: Your frontend (like LaunchBox) will now only show "Final Fantasy VII" once instead of "Disc 1," "Disc 2," and "Disc 3".
- Seamless Swapping: When the game prompts for a disc change, you can use the DuckStation Pause menu to "Change Disc" and select the next file from the auto-generated playlist.
- Storage Efficiency: The script is set to target .chd files, which are the industry standard for cabinets because they offer lossless compression and save up to 50% of your storage space.
If You Only Remember One Thing:
Always use .m3u playlists for multi-disc games to ensure your frontend shows one entry per game instead of multiple disc files.
Final "Kiosk Mode" Pro-Tips
- Bypass the UI: To make the process invisible to the user, ensure your frontend is set to launch the .m3u file rather than individual discs.
- Shift-Key Exit: In Settings → Controllers → Hotkeys, map "Close Emulator" to a "Shift" combo like Select + Start so players can exit to the cabinet menu without needing a keyboard.
- Auto-Resume: Enable "Save State on Exit" in the general settings; this ensures that even if a cabinet is powered down, the next player starts exactly where the game left off.
📺 Video Tutorial: Multi-Disc .m3u Playlist Setup
How to create .m3u playlists and configure seamless disc swapping for multi-disc PlayStation 1 games.
The DuckStation "Golden Rules": Do's and Don'ts
To finalize our DuckStation guide, it is essential to address the operational nuances that separate a "broken" experience from a professional arcade-standard one.
The Do's (Best Practices)
✓ DO Use CHD Files
Always source or convert your library to CHD format. It provides lossless compression, saves 50% storage space, and eliminates the "multi-file" clutter of BIN/CUE sets.
✓ DO Match BIOS Regions
Ensure your BIOS matches your ROM's region (e.g., scph1001.bin for NTSC-U) to prevent silent crashes or a "Black Screen" on load.
✓ DO Target Integer Scaling
For the sharpest image on arcade monitors, set your internal resolution to an exact multiple (e.g., 5x or 6x for 1440p) rather than "Window Size" to avoid blurry scaling artifacts.
✓ DO Use Adaptive Downsampling
For games with high-res 3D models but low-res 2D menus (like Final Fantasy VII), enable Adaptive Downsampling. This keeps models sharp while preventing menus from looking "disconnected".
✓ DO Save Input Profiles
In an arcade cabinet, USB port order can shift. Save your controller bindings as a unique profile (e.g., Cabinet_P1) and link it to your games to ensure controls never swap.
The Don'ts (Common Pitfalls)
✗ DON'T Enable "PGXP Texture Perspective Correction" Globally
While it fixes "wobbling" textures, it is known to break 2D HUDs and certain 3D graphics in some games, such as Silent Hill or Crash Team Racing. Only enable this via Per-Game Overrides.
✗ DON'T Overuse Runahead
While Runahead reduces lag, it doubles or triples the CPU load. On lower-spec cabinet PCs (like those with Snapdragon 855 or older Intel CPUs), setting this too high will cause audio crackling and stutter.
✗ DON'T Ignore .sbi Files for PAL Games
European (PAL) games with LibCrypt protection will hang or crash if the .sbi sidecar file is missing from the ROM folder.
✗ DON'T Launch from BIN without the CUE
Loading a .bin file directly instead of its .cue sheet often results in missing background music or boot failures.
✗ DON'T Mix BIOS Save States
Save states created without a BIOS will not work if you later enable a BIOS for that game. Pick a BIOS configuration and stick to it for the life of the cabinet.
If You Only Remember One Thing:
Always use CHD files and ensure your BIOS matches your ROM region to prevent the most common DuckStation issues.
📺 Video Tutorial: DuckStation 2025 Full Setup — Best Settings for Perfect PS1 Emulation
Complete DuckStation installation and configuration walkthrough — covers BIOS setup, graphics settings, controller mapping, and performance optimization for 2025.
Troubleshooting Matrix for Arcade Cabinets
This matrix addresses the most common issues encountered in arcade cabinet DuckStation installations and their professional-grade solutions.
| Issue | Potential Cause | Pro-Steward Resolution |
|---|---|---|
| Black Screen on Boot | Wrong/Missing BIOS or Bad ROM | Verify BIOS in Tools → Start BIOS. |
| Missing "Start" Menu | UI is hidden (Batch Mode) | Use the Escape key (or your mapped arcade hotkey) to reveal the Pause menu. |
| Broken/Missing Floor Textures | PGXP Conflict | Toggle PGXP Texture Perspective Correction to OFF for that title. |
| Audio Stuttering/Popping | Performance Bottleneck | Lower Resolution Scale or disable Runahead. |
| Controller Order Swapped | Non-deterministic USB IDs | Switch input backend to SDL and load your saved Input Profile. |
This concludes the technical scaffolding for the DuckStation guide. The guide is now structured to support a complete newcomer while providing the deep-level precision required for a professional-grade arcade installation.
Kiosk Mode Configuration
Kiosk mode configuration details will be added in a future update. This section will cover fullscreen settings, UI hiding, and escape key disabling for arcade environments.
Graphics & Display Settings
Graphics and display settings details will be added in a future update. This section will cover resolution scaling, texture filtering, and rendering backends (Vulkan, OpenGL, Software).
Ready to Skip the DIY Process?
We've configured DuckStation in dozens of custom arcade cabinets. Get a professionally built cabinet with PlayStation 1 emulation set up perfectly.
Explore More Emulator Guides
DuckStation covers PlayStation 1. For other platforms on your arcade cabinet, check out these guides:
