La rétro-ingénierie, ou ingénierie inverse ou inversée, est l'activité qui consiste à étudier un objet, dans le cas présent la DualShock 4, pour en déterminer le fonctionnement interne ou la méthode de fabrication. On parle également de rétroconception, le terme équivalent en anglais est reverse engineering, et tout hack et toutes modifications, passent forcément par ce type de technique.
Le développement déjà opéré sur la PlayStation Caméra puis sur PlayStation VR a débouché sur des librairies C :
LibPSVR
C'est désormais le développeur j0lama qui diffuse ses travaux sur la Dual Shock 4 sous : DS4Lib. j0lama n'est pas à son coup d'essai sur la PS4, il avait déjà proposé en Juillet 2016 un outil PS4 PUP permettant l'extraction des fichiers des firmwares officiels.
Avec DS4Lib 0.5, il souhaite offrir une librairie destinée à contrôler la Dual Shock 4 avec le câble USB sous Linux, sans utilisé de dongle bluetooth. Tout n'est pas encore parfait, toutes les fonctions ne sont pas encore présentes, il est possible de profiter de chaque bouton, à l'exception des positions des joysticks et des fonctions tactiles du touchPAD. Le développeur travaille sur ces manquements et aussi sur les fonctions gyroscopiques et accélérométriques, ce qui viendra compléter le développement déjà effectué par
Chrippa.
Funtions
All functions are in ds4.h.
Include this file to your project to can use DS4Lib.
Functions
DS4_CONTROLLER * ini_DS4();
int free_DS4(DS4_CONTROLLER * ds4);
int button_pressed(DS4_CONTROLLER * ds4, int Button);
int ds4_update_status(DS4_CONTROLLER * ds4, char * data);
int ds4_print_status(DS4_CONTROLLER * ds4);
Changelog DS4Lib 0.5: Initial release.
Tracking of all buttons.