DS3 Input And Report Inspector è uno strumento avanzato che permette di esplorare in profondità il funzionamento del controller DualShock 3, uno dei dispositivi più iconici nella storia delle console PlayStation.
Pensato per appassionati di tecnologia, sviluppatori e modder, il programma consente di monitorare in tempo reale gli input del controller, analizzarne il comportamento e modificarne alcune funzioni interne, offrendo una comprensione dettagliata del modo in cui comunica con il computer.
Another option for calibrating now PS3 DS3 contollers is now possible ‼️ Calibrate stick and more …thanks to a member of our Modibox team 🫡 Huge thanks to leway20014 🔥
We share this project with you https://t.co/lIa2TuMN9B#ps3 #sony #calibration #joystick #dualshock pic.twitter.com/woOrekbKYy— modyfikatorcasper (@Modyfikator89) May 21, 2025
Il software, scritto in Python e dotato di un’interfaccia grafica semplice ma funzionale, mostra visivamente la pressione dei tasti, il movimento degli stick analogici e i dati dei sensori di movimento, rendendo accessibile anche l’analisi di informazioni complesse.
Non si limita alla visualizzazione, dall’app è possibile gestire le funzioni del controller, come l’attivazione dei LED, la regolazione della vibrazione o l’invio di comandi diretti, trasformando il programma in un vero e proprio laboratorio di test e personalizzazione.
Inoltre, uno degli aspetti più affascinanti riguarda la possibilità di lavorare direttamente con i report HID, i pacchetti di dati utilizzati dal controller per comunicare con il sistema.
Questo permette non solo di leggere informazioni tecniche come firmware e calibrazione, ma di intervenire anche manualmente per testare o modificare comportamenti specifici. questa è una funzionalità molto preziosa per chi si occupa di reverse engineering o sviluppa emulatori.
Il programma offre strumenti per l’esplorazione e il salvataggio della memoria interna del controller, permettendo di estrarre dati in formato binario, analizzarli in esadecimale o modificarli.
Questo apre la porta a personalizzazioni spinte e alla risoluzione di eventuali problemi firmware. In più, è possibile calibrare gli stick analogici in modo preciso, correggendo eventuali imprecisioni rilevate nel tempo.
L’utilizzo richiede il collegamento del DualShock 3 al PC via USB, e su Windows può essere necessario installare driver compatibili tramite Zadig.
Una volta configurato correttamente, il programma rileva automaticamente il controller e inizia a monitorarne l’attività, fornendo anche strumenti di debug e log avanzati.
Pur offrendo funzionalità molto tecniche, DS3 Input And Report Inspector rimane accessibile anche a utenti meno esperti, grazie alla sua interfaccia chiara e all’impostazione user-friendly.
Funzionalità
- Visualizzazione in tempo reale degli input:
- Mostra lo stato dei pulsanti digitali (D-Pad, pulsanti frontali, dorsali, stick cliccabili e tasto PS).
- Le posizioni degli stick analogici sono rappresentate su pad 2D.
- I valori dei pulsanti analogici sensibili alla pressione vengono visualizzati tramite barre di progresso.
- I dati dei sensori di movimento (accelerometro e giroscopio) sono mostrati sia in forma grezza che elaborata (in m/s² e °/s), sfruttando i dati di calibrazione recuperati.
- Controllo dell’output:
- Accensione e spegnimento individuale dei LED (giocatori da 1 a 4).
- Controllo della durata e dell’intensità della vibrazione per entrambi i motori.
- Gestione dei Feature Report:
- Visualizzazione dei report comuni decodificati:
0x01
: Tipo di controller, firmware, centri stick, deadzone/gain.0xF2
: MAC Bluetooth, numero di serie, revisione PCB.0xEF
: Dati di calibrazione del sensore di movimento (bias/gain accelerometro, offset Z giroscopio).
- Possibilità di leggere manualmente qualsiasi Feature Report tramite ID e visualizzarne i dati grezzi.
- Possibilità di scrivere manualmente un Feature Report con un payload personalizzato in esadecimale (usare con cautela!).
- Visualizzazione dei report comuni decodificati:
- Descrittore HID:
- Recupero e visualizzazione del descrittore HID grezzo del dispositivo.
- Associazione Bluetooth (report 0xF5):
- Visualizzazione dell’indirizzo MAC Bluetooth attualmente associato al controller.
- Impostazione manuale di un nuovo MAC host per associare il controller a un PC.
- Strumenti per la memoria flash (report 0xF1):
- Dump completo dei banchi A e B della memoria flash (totale 512 byte) in un file
.bin
. - Scrittura dei banchi A e B da un file
.bin
al controller (ATTENZIONE: procedere con estrema cautela). - Visualizza il dump esadecimale grezzo delle banche di memoria flash A e B direttamente nell’interfaccia grafica.
- Sondaggio delle pagine della memoria flash tramite test scrittura-lettura.
- Dump completo dei banchi A e B della memoria flash (totale 512 byte) in un file
- Calibrazione del centro degli stick (report 0xF1, banca A, offset 0x0020):
- Visualizzazione del segmento di calibrazione di 16 byte.
- Modifica dei singoli byte (B0-B7) della parte principale degli 8 byte di calibrazione.
- Visualizzazione dei valori a 16 bit combinati per ogni asse degli stick analogici (LX, LY, RX, RY).
- Comandi del controller:
- Invio del comando di riavvio.
- Attivazione/disattivazione dello streaming degli input (richiede la pressione del tasto PS per iniziare lo stream).
- Diagnostica e interfaccia:
- Visualizzazione del tasso di polling USB.
- Indicatore dello stato di connessione.
- Opzione per registrare i dati dettagliati degli input nella console.
- Tentativi automatici di riconnessione.
Requisiti
- È necessario un backend compatibile con
libusb
: - Per Windows: WinUSB, libusb-win32 o libusbK. Si consiglia di usare Zadig per installare uno di questi driver (vedi sezione Installazione).
Installazione
- Configurazione del driver libusb (fondamentale per Windows):
- I driver standard del DS3 (SCP Toolkit, DsHidMini o i driver ufficiali Sony) non funzionano con PyUSB per l’accesso diretto, pertanto è necessario sostituire il driver dell’interfaccia USB del DS3 con WinUSB, libusb-win32 o libusbK.
- Scaricare Zadig da https://zadig.akeo.ie/.
- Collegare il controller DS3.
- Aprire Zadig. Andare su “Options” > “List All Devices”.
- Selezionare “PLAYSTATION(R)3 Controller” o simile dall’elenco a discesa.
- Verificare che l’ID USB sia
054C:0268
. - Scegliere il driver WinUSB (consigliato), libusb-win32 o libusbK.
- Cliccare su “Replace Driver” o “Install Driver”.
- I driver standard del DS3 (SCP Toolkit, DsHidMini o i driver ufficiali Sony) non funzionano con PyUSB per l’accesso diretto, pertanto è necessario sostituire il driver dell’interfaccia USB del DS3 con WinUSB, libusb-win32 o libusbK.
Attenzione: Questo renderà il controller inutilizzabile con i driver/applicazioni da gaming finché non si ripristina il driver originale.
Utilizzo
- Collegare il DS3 via USB.
- Assicurarsi che il driver corretto sia attivo (soprattutto su Windows).
- Aprire il terminale nella directory del programma.
- Avviare
DS3 Input & Report Inspector.exe
. - Se non si vede subito dati in ingresso, premere il tasto
sul controller: spesso è necessario per iniziare lo stream.
- Utilizzare l’interfaccia per esplorare, testare e inviare comandi.
Comandi personalizzati
I comandi per scrivere nella memoria del controller seguono pattern specifici.
Funzionalità chiave spiegate
- Ispezione degli input: I pannelli sinistro e centrale dell’interfaccia forniscono un feedback in tempo reale su tutti gli input del controller. Questa funzione è utile per diagnosticare pulsanti difettosi, drift degli stick analogici o problemi ai sensori.
- Feature Report: Si tratta di report HID utilizzati per configurazioni e stato del dispositivo. Questo strumento consente di leggere report noti (come la versione del firmware o l’indirizzo MAC) e di sperimentare con quelli non documentati tramite la sezione “Interazione Manuale con i Report delle Funzionalità”.
- Memoria Flash (0xF1): Il controller DS3 possiede una memoria flash interna che memorizza dati di calibrazione, abbinamento Bluetooth e impostazioni del firmware.
- Dumping: è possibile eseguire il backup del contenuto della memoria flash, utile per analisi o per conservare una copia di sicurezza prima di apportare modifiche.
- Flashing: si può scrivere sul controller dati provenienti da un file .bin. Questa operazione è estremamente rischiosa e può danneggiare il controller in modo irreversibile se si scrivono dati errati. È consigliato procedere solo se si sa esattamente cosa si sta facendo e si dispone di un dump valido.
- Calibrazione stick (0xF1, offset 0x0020): I primi 8 byte all’indirizzo 0x0020 della Bank A memorizzano i valori di calibrazione del centro degli stick analogici (LX LSB, LX MSB, LY LSB, …, RY MSB). I successivi 8 byte contengono dati di checksum/suffisso. Lo strumento consente la modifica diretta degli 8 byte principali.
- Le modifiche vengono scritte direttamente nella memoria flash del controller, è consigliabile fare piccoli aggiustamenti e testare il risultato.
- Attenzione: Valori errati possono rendere inutilizzabili gli stick. Effettuare sempre un backup della memoria flash prima di procedere.
- Associazione Bluetooth (0xF5): Il report
0xF5
viene utilizzato per impostare l’indirizzo MAC Bluetooth del PC host con cui il controller deve abbinarsi.- Lo strumento cerca automaticamente di rilevare il MAC del PC, ma è sempre consigliabile verificare e correggere manualmente il valore, poiché il rilevamento automatico può risultare impreciso.
- Dopo l’impostazione, scollega l’USB e premi il tasto PS per avviare la connessione (non funziona su Windows senza driver e patch L2CAP custom).
- LED & Rumble: test di base. I LED mostrano il numero del giocatore. Il rumble potrebbe richiedere correzioni future.
Note e risoluzione dei problemi
- Controller non rilevato: Assicurarsi che sia ben connesso via USB. Su Windows, verificare che WinUSB sia installato correttamente.
- Dati mancanti / polling a 0 Hz: Premere il tasto
.
- Errore “Failed to Claim Interface” o “Resource Busy”: Un’altra app potrebbe usare il controller. Chiudi altri programmi. Oppure il driver non è stato installato correttamente.
- Attenzione ai comandi di scrittura: Flash, calibrazione o comandi
SET_REPORT
errati possono bloccare il controller. Effettuare sempre un backup. - Valori dei sensori di movimento: I valori visualizzati dipendono dai dati di calibrazione e da costanti predefinite. Potrebbero variare leggermente. L’asse fisico/gravitazionale mostrato può richiedere aggiustamenti.
Download: Source code DS3 Input And Report Inspector
Fonte: x.com