Added support for the new "August 3rd" BIOS

There's a new BIOS revision floating around (MD5 hash first posted in Discord on August 3rd); no official announcement from Data Frog about it yet, but I've gone ahead and added support for it to the Boot Logo Changer and the Button Mapping Changer tools
This commit is contained in:
vonmillhausen 2023-08-19 17:45:25 +01:00
parent fbd7946b29
commit 462672a757
3 changed files with 25 additions and 5 deletions

View File

@ -83,6 +83,12 @@
logoOffset = 0x9BB098;
setMessage("info", "bisrvMessages", "INFO: May 22nd <code>bisrv.asd</code> detected.");
break;
// August 3rd BIOS...
case "08.03":
logoOffset = 0x9B3530;
setMessage("info", "bisrvMessages", "INFO: August 3rd <code>bisrv.asd</code> detected.");
break;
default:
// Huh... wasn't false so had bisrv.asd structure, but didn't return
@ -220,6 +226,6 @@
}
</script>
<hr>
<p><a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>: public domain. Version 1.3, 20230626.1</p>
<p><a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>: public domain. Version 1.4, 20230819.1</p>
</body>
</html>

View File

@ -119,6 +119,14 @@
setMessage("info", "fileMessages", "INFO: May 22nd <code>bisrv.asd</code> detected.");
break;
// August 3rd BIOS...
case "08.03":
mappingTableOffset = 0;
mappingConsoles = ["NES", "SNES", "Genesis/Mega Drive, Master System", "Game Boy, Game Boy Color", "Game Boy Advance", "Arcade"];
step1BRequired = true;
setMessage("info", "fileMessages", "INFO: August 3rd <code>bisrv.asd</code> detected.");
break;
default:
// Huh... wasn't false so had bisrv.asd structure, but didn't return
// a known hash... a new BIOS version? Unknown anyway!
@ -345,7 +353,7 @@
// bytes are in here. If they do other weird stuff in the future,
// it'll probably be here that needs to change!
var buttonByteOrder = ['X', 'Y' ,'L', 'A', 'B', 'R'];
if (mappingConsoles[currentConsole] == "Game Boy Advance" && ["05.15", "05.22"].includes(firmwareVersion)) {
if (mappingConsoles[currentConsole] == "Game Boy Advance" && ["05.15", "05.22", "08.03"].includes(firmwareVersion)) {
buttonByteOrder = ['L', 'R', 'X', 'A', 'B', 'Y'];
}
@ -485,7 +493,7 @@
// the bytes are in here. If they do other weird stuff in the
// future, it'll probably be here that needs to change!
var buttonByteOrder = ['X', 'Y' ,'L', 'A', 'B', 'R'];
if (mappingConsoles[currentConsole] == "Game Boy Advance" && ["05.15", "05.22"].includes(firmwareVersion)) {
if (mappingConsoles[currentConsole] == "Game Boy Advance" && ["05.15", "05.22", "08.03"].includes(firmwareVersion)) {
buttonByteOrder = ['L', 'R', 'X', 'A', 'B', 'Y'];
}
@ -522,6 +530,6 @@
}
</script>
<hr>
<p><a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>: public domain. Version 1.3, 20230626.1</p>
<p><a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>: public domain. Version 1.4, 20230819.1</p>
</body>
</html>

View File

@ -12,6 +12,9 @@
Just like the tools themselves, this file should be considered CC0 Public
Domain (https://creativecommons.org/publicdomain/zero/1.0/)
Version 1.1: Added support for the August 3rd BIOS in getFirmwareHash() and
knownHash()
Version 1.0: Initial version
*/
@ -50,7 +53,7 @@ function getFirmwareHash(data) {
var dataCopy = data.slice();
// Only really worthwhile doing this for big bisrv.asd files...
if (dataCopy.length > 12640000) {
if (dataCopy.length > 12600000) {
// First, replace CRC32 bits with 00...
dataCopy[396] = 0x00;
@ -175,6 +178,9 @@ function knownHash(hash) {
case "6aebab0e4da39e0a997df255ad6a1bd12fdd356cdf51a85c614d47109a0d7d07":
return "05.22";
case "3f0ca7fcd47f1202828f6dbc177d8f4e6c9f37111e8189e276d925ffd2988267":
return "08.03";
default:
return false;
}