

“Transform your DualShock 4 into a native Xbox 360 controller”
LazyDS4 is a controller mapping application designed to convert HID input from a DualShock 4 controller directly to a virtual Xbox 360 controller. Optimized for simplicity and performance, it offers real-time input mapping with a ~1ms (1000Hz) polling rate, modern graphical interface with PyQt5, intelligent drift detection, and enhanced joystick calibration with adaptive algorithms.
🚀 Download and Installation
Get the latest stable release from any of the following platforms:
Quick Installation
- Download the installer
LazyDS4-2.1.0-Installer.exe
- Run as administrator (required for ViGEmBus)
- Installer will automatically setup ViGEmBus driver
- Launch LazyDS4 from start menu or shortcut
🖼️ Interface Preview
💻 Main View

- Controller Tab: Interactive DS4 visualization with real-time status
- Battery Monitor: Visual indicator with level, charging state, and alerts
- Controls: Start/Stop buttons, Bluetooth Pairing, Calibrate
🧪 Other Views
- Log Tab: Detailed event and error logging

- Info Tab: Developer information, button mapping, and utilities

- Calibration Dialog: Interactive tool to adjust joysticks

✨ Key Features
- ✅ Direct HID to XInput Mapping — Optimized real-time translation
- ✅ USB and Bluetooth Connection — Complete support for DS4 v1 and v2
- ✅ 1000Hz Polling Rate — Ultra-fast response of ~1ms
- 🎯 Smart Drift Detection — Automatic detection with visual alerts and severity analysis
- 🎨 Modern Interface with dark theme design and visual effects
- 🔋 Battery Monitor with low battery alerts and charging status
- 🎯 Enhanced Joystick Calibration with adaptive deadzone and drift correction
- 🔧 Automatic ViGEmBus Installation and driver management
- 📱 Integrated Bluetooth Pairing Assistant
- 🎮 Interactive Controller Visualization in real-time
📌 What’s New (v2.1.0)
- 🎨 Visual Overhaul — Modern, professional interface with gradient backgrounds and advanced styling
- 📐 Layout Optimization — Improved spacing, alignment, and responsiveness
- 🎉 Icon Integration — Consistent use of dynamic SVG icons throughout
- ⚡ Enhanced Button Design — Polished buttons with smooth animations and clear actions
- 📊 Responsive Interface — Adapted for various screen sizes without overlaps
- 🔔 Real-time Visual Indicators — Clear and immediate feedback for status, warnings, and battery levels
⚙️ How to Use
- Connect your DualShock 4 via USB or Bluetooth
- Open LazyDS4 as administrator (recommended)
- Press “▶ Start Service” to start mapping
- Configure as needed:
- Calibrate joysticks if drift occurs
- Pair new Bluetooth controllers
- Monitor battery and connection status
- Enjoy Playing! Your DS4 now works as an Xbox 360 controller
| DualShock 4 |
Xbox 360 |
Function |
| ✕ (Cross) |
A |
Confirm |
| ● (Circle) |
B |
Cancel |
| ■ (Square) |
X |
Action |
| ▲ (Triangle) |
Y |
Action |
| L1 |
LB |
Left Bumper |
| R1 |
RB |
Right Bumper |
| L2 |
LT |
Left Trigger |
| R2 |
RT |
Right Trigger |
| Share |
Back |
Menu |
| Options |
Start |
Pause |
| PS Button |
Guide |
Xbox Home |
💾 Project Structure
LazyDS4/
├── assets/ # Resources (icons, ViGEmBus installer)
├── core/ # Main controller logic
│ ├── ds4_controller.py # DualShock 4 handling
│ └── vigem_controller.py # ViGEm virtual controller
├── ui/ # PyQt5 graphical interface
│ ├── main_window.py # Main window
│ ├── battery_widget.py # Battery widget
│ ├── interactive_controller.py # Controller visualization
│ └── calibration_dialog.py # Calibration dialog
├── utils/ # System utilities
│ ├── input_translator.py # HID to XInput translator
│ ├── vigem_setup.py # ViGEmBus installer
│ └── bluetooth_manager.py # Bluetooth manager
├── LazyDS4.py # Main file
├── build.py # Build script
├── Setup.iss # Inno Setup script
└── requirements.txt # Python dependencies
📋 System Requirements
- OS: Windows 10/11 (x64/x86/ARM64)
- RAM: Minimum 2GB (4GB recommended)
- Controller: DualShock 4 v1 or v2 (CUH-ZCT1/ZCT2)
- Connection: USB or Bluetooth 4.0+
- Privileges: Administrator (for ViGEmBus)
- Dependencies: ViGEmBus driver (installed automatically)
📦 Technologies Used
| Technology |
License |
Author/Maintenance |
Link |
| Python 3.10+ |
PSF License |
Python Software Foundation |
python.org |
| PyQt5 |
GPL v3 |
Riverbank Computing |
riverbankcomputing.com |
| hidapi |
BSD-3-Clause |
Alan Ott, Signal 11 Software |
GitHub |
| vgamepad |
MIT License |
Yann Bouteiller |
GitHub |
| ViGEmBus |
MIT License |
ViGEm Project |
GitHub |
| PyInstaller |
GPL-2.0+ |
PyInstaller Development Team |
pyinstaller.org |
| Inno Setup |
Inno License |
Jordan Russell |
jrsoftware.org |
🧑💻 Contributing
Contributions are welcome!
- Fork the project
- Create a branch for your improvement (
git checkout -b feature/new-feature)
- Make your changes and commit them (
git commit -am 'Add new feature')
- Push to the branch (
git push origin feature/new-feature)
- Open a Pull Request with details
For bug reports or suggestions: GitHub Issues or contact the developer
📜 License
© 2025 Iván Eduardo Chavez Ayub (@Ivan-Ayub97)
Distributed under the MIT License. See LICENSE for more details.
🔧 Development and Compilation
For Developers
# Clone repository
git clone https://github.com/Ivan-Ayub97/LazyDS4.git
cd LazyDS4
# Install dependencies
pip install -r requirements.txt
# Run in development mode
python LazyDS4.py
# Build executable
python build.py
Included Scripts
build.py: Automated build with PyInstaller
Setup.iss: Installer creation with Inno Setup
LazyDS4.spec: Advanced PyInstaller configuration
Built by the lazy, for the lazy.
评论