DS4: fix random range-calib fail. Add more DS5 colors

This commit is contained in:
dualshock-tools
2025-07-13 10:51:27 +02:00
parent 65376ea717
commit 1fa7066477
22 changed files with 140 additions and 6 deletions

18
core.js
View File

@@ -236,6 +236,7 @@ async function ds4_calibrate_range_begin() {
try {
// Begin
await device.sendFeatureReport(0x90, alloc_req(0x90, [1,1,2]))
await new Promise(r => setTimeout(r, 200));
// Assert
data = await device.receiveFeatureReport(0x91)
@@ -261,6 +262,7 @@ async function ds4_calibrate_range_end() {
try {
// Write
await device.sendFeatureReport(0x90, alloc_req(0x90, [2,1,2]))
await new Promise(r => setTimeout(r, 200));
data = await device.receiveFeatureReport(0x91)
data2 = await device.receiveFeatureReport(0x92)
@@ -289,6 +291,7 @@ async function ds4_calibrate_sticks_begin() {
try {
// Begin
await device.sendFeatureReport(0x90, alloc_req(0x90, [1,1,1]))
await new Promise(r => setTimeout(r, 200));
// Assert
data = await device.receiveFeatureReport(0x91);
@@ -316,6 +319,7 @@ async function ds4_calibrate_sticks_sample() {
try {
// Sample
await device.sendFeatureReport(0x90, alloc_req(0x90, [3,1,1]))
await new Promise(r => setTimeout(r, 200));
// Assert
data = await device.receiveFeatureReport(0x91);
@@ -342,6 +346,7 @@ async function ds4_calibrate_sticks_end() {
try {
// Write
await device.sendFeatureReport(0x90, alloc_req(0x90, [2,1,1]))
await new Promise(r => setTimeout(r, 200));
data = await device.receiveFeatureReport(0x91);
data2 = await device.receiveFeatureReport(0x92);
@@ -371,6 +376,7 @@ async function ds4_calibrate_sticks() {
// Begin
await device.sendFeatureReport(0x90, alloc_req(0x90, [1,1,1]))
await new Promise(r => setTimeout(r, 200));
// Assert
let data = await device.receiveFeatureReport(0x91);
@@ -384,11 +390,12 @@ async function ds4_calibrate_sticks() {
}
set_progress(10);
await new Promise(r => setTimeout(r, 100));
await new Promise(r => setTimeout(r, 200));
for(var i=0;i<3;i++) {
// Sample
await device.sendFeatureReport(0x90, alloc_req(0x90, [3,1,1]))
await new Promise(r => setTimeout(r, 200));
// Assert
let data = await device.receiveFeatureReport(0x91);
@@ -407,6 +414,7 @@ async function ds4_calibrate_sticks() {
// Write
await device.sendFeatureReport(0x90, alloc_req(0x90, [2,1,1]))
await new Promise(r => setTimeout(r, 200));
if(data.getUint32(0, false) != 0x91010101 || data2.getUint32(0, false) != 0x920101FF) {
let d1 = dec2hex32(data.getUint32(0, false));
let d2 = dec2hex32(data2.getUint32(0, false));
@@ -559,9 +567,15 @@ function ds5_color(x) {
'07' : l('Volcanic Red'),
'08' : l('Sterling Silver'),
'09' : l('Cobalt Blue'),
'10' : l('Chroma Teal'),
'11' : l('Chroma Indigo'),
'12' : l('Chroma Pearl'),
'30' : l('30th Anniversary'),
'Z1' : l('God of War Ragnarok'),
'Z3' : l('Astro Bot')
'Z2' : l('Spider-Man 2'),
'Z3' : l('Astro Bot'),
'Z4' : l('Fortnite'),
'Z6' : l('The Last of Us')
};
const colorCode = x.slice(4, 6);

View File

@@ -830,7 +830,7 @@ dl.row dd { font-family: monospace; }
<div class="container">
<footer>
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top" id="footbody">
<p><a target="_blank" href="https://github.com/dualshock-tools/dualshock-tools.github.io/commits/main/"><span class="ds-i18n">Version</span> 2.7</a> (2025-06-07) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a>&nbsp;<span id="authorMsg"></span></p>
<p><a target="_blank" href="https://github.com/dualshock-tools/dualshock-tools.github.io/commits/main/"><span class="ds-i18n">Version</span> 2.8</a> (2025-07-13) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a>&nbsp;<span id="authorMsg"></span></p>
<ul class="list-unstyled d-flex">
<li class="ms-3"><a class="link-body-emphasis" href="mailto:ds4@the.al" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#mail"/></svg></a></li>

View File

@@ -198,6 +198,9 @@
"Cannot unlock": "",
"Center X": "",
"Center Y": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -205,6 +208,7 @@
"DualSense Edge Calibration": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -221,11 +225,13 @@
"Right Module Barcode": "",
"Right stick": "",
"Save": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This screen allows to finetune raw calibration data on your controller": "",

View File

@@ -174,6 +174,9 @@
"Cannot unlock": "",
"Center X": "",
"Center Y": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -190,6 +193,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -215,11 +219,13 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This screen allows to finetune raw calibration data on your controller": "",

View File

@@ -160,6 +160,9 @@
"Center X": "",
"Center Y": "",
"Changes saved successfully": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -178,6 +181,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -210,12 +214,14 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Stickdrift is caused by a physical defect; namely dirt, worn potentiometer or in some cases a worn spring.": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -196,6 +196,9 @@
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -205,6 +208,7 @@
"FW Update Info": "",
"FW Version": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -221,9 +225,11 @@
"Right Module Barcode": "",
"SBL FW Version": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"Touchpad FW Version": "",

View File

@@ -160,6 +160,9 @@
"Center X": "",
"Center Y": "",
"Changes saved successfully": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -178,6 +181,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -210,12 +214,14 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Stickdrift is caused by a physical defect; namely dirt, worn potentiometer or in some cases a worn spring.": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -160,6 +160,9 @@
"Center X": "",
"Center Y": "",
"Changes saved successfully": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -178,6 +181,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -210,12 +214,14 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Stickdrift is caused by a physical defect; namely dirt, worn potentiometer or in some cases a worn spring.": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -235,5 +235,11 @@
"Sterling Silver": "Sterling Silver",
"Volcanic Red": "Volcanic Red",
"White": "Fehér",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Fortnite": "",
"Spider-Man 2": "",
"The Last of Us": "",
"": ""
}

View File

@@ -236,5 +236,11 @@
"Sterling Silver": "Sterling Silver",
"Volcanic Red": "Volcanic Red",
"White": "Original White",
"Chroma Indigo": "Chroma Indigo",
"Chroma Pearl": "Chroma Pearl",
"Chroma Teal": "Chroma Teal",
"Fortnite": "Fortnite",
"Spider-Man 2": "Spider-Man 2",
"The Last of Us": "The Last of Us",
"": ""
}

View File

@@ -169,6 +169,9 @@
"Cannot store data into": "",
"Cannot unlock": "",
"Changes saved successfully": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -186,6 +189,7 @@
"FW Update Info": "",
"FW Version": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -213,10 +217,12 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Stickdrift is caused by a physical defect; namely dirt, worn potentiometer or in some cases a worn spring.": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -197,6 +197,9 @@
"Cannot unlock": "",
"Center X": "",
"Center Y": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -204,6 +207,7 @@
"DualSense Edge Calibration": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -220,11 +224,13 @@
"Right Module Barcode": "",
"Right stick": "",
"Save": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This screen allows to finetune raw calibration data on your controller": "",

View File

@@ -160,6 +160,9 @@
"Center X": "",
"Center Y": "",
"Changes saved successfully": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -178,6 +181,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -210,12 +214,14 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Stickdrift is caused by a physical defect; namely dirt, worn potentiometer or in some cases a worn spring.": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -236,5 +236,11 @@
"here": "tutaj",
"left module": "lewy moduł",
"right module": "prawy moduł",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Fortnite": "",
"Spider-Man 2": "",
"The Last of Us": "",
"": ""
}
}

View File

@@ -174,6 +174,9 @@
"Cannot unlock": "",
"Center X": "",
"Center Y": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -190,6 +193,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -215,11 +219,13 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This screen allows to finetune raw calibration data on your controller": "",

View File

@@ -225,15 +225,21 @@
"right module": "módulo direito",
"30th Anniversary": "",
"Astro Bot": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Cosmic Red": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
"Midnight Black": "",
"Nova Pink": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"The Last of Us": "",
"Volcanic Red": "",
"White": "",
"": ""

View File

@@ -206,12 +206,16 @@
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Cosmic Red": "",
"DualSense Edge Calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -223,9 +227,11 @@
"Please connect a DualShock 4, a DualSense or DualSense Edge controller to your computer and press Connect.": "",
"Please note: the stick modules on the DS Edge <b>cannot be calibrated via software alone</b>.To store a custom calibration on the stick's internal memory, a <b>hardware modification</b> is required.": "",
"Right Module Barcode": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"Volcanic Red": "",

View File

@@ -224,16 +224,22 @@
"right module": "Правый модуль",
"30th Anniversary": "",
"Astro Bot": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Cosmic Red": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
"Midnight Black": "",
"Nova Pink": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"The Last of Us": "",
"Volcanic Red": "",
"White": "",
"": ""
}
}

View File

@@ -174,6 +174,9 @@
"Cannot unlock": "",
"Center X": "",
"Center Y": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
@@ -190,6 +193,7 @@
"FW Version": "",
"Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "",
"Galactic Purple": "",
"God of War Ragnarok": "",
"Grey Camouflage": "",
@@ -215,11 +219,13 @@
"Show all": "",
"Software": "",
"Spider FW Version": "",
"Spider-Man 2": "",
"Starlight Blue": "",
"Sterling Silver": "",
"Support for calibrating DualSense Edge stick modules is now available as an <b>experimental feature</b>.": "",
"Thank you for your generosity and support!": "",
"The DualShock Calibration GUI does not currently support the DualSense Edge.": "",
"The Last of Us": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This screen allows to finetune raw calibration data on your controller": "",

View File

@@ -235,5 +235,11 @@
"White": "Білий",
"left module": "лівий модуль",
"right module": "правий модуль",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Fortnite": "",
"Spider-Man 2": "",
"The Last of Us": "",
"": ""
}
}

View File

@@ -236,5 +236,11 @@
"Sterling Silver": "亮灰银",
"Volcanic Red": "火山红",
"White": "白色",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Fortnite": "",
"Spider-Man 2": "",
"The Last of Us": "",
"": ""
}

View File

@@ -236,5 +236,11 @@
"Sterling Silver": "亮灰銀",
"Volcanic Red": "火山紅",
"White": "白色",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
"Fortnite": "",
"Spider-Man 2": "",
"The Last of Us": "",
"": ""
}