Looks like there's a new official firmware version out, and it's got a critical bug with SNES save states - avoid this one!
Updated the tools I host to support the new firmware, complete with warnings about it. Also updated the main Github document with the first details about the firmware, more will come later when my own download of it has completed.
Just a tweak really - re-ordered the zeroing-out checks in getFirmwareHash() to match the expected order of each section within the BIOS file. This may help to avoid a theoretical issue where bytes in user-substituted content (e.g., a boot logo) accidentally matches against some other blob of binary we're searching for using findSequence(). Doing the search-and-replace in the expected ordering should help to avoid that... I think? Won't hurt anyway!
Added support for checking firmwares that have modified the two byte-pairs `bnister` identified as a workaround for the whole "start-SNES-games-twice" issue that cropped up in firmware versions after March
Some recent work by `dteyn` and `bnister` now allows for the bytes responsible for power monitoring on the SF2000 to be changed to more sensible values. I've updated the BIOS version checking details to account for these bytes, so that `bisrv.asd` file versions can still be detected correctly even if the user has altered their power monitoring bytes
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
There was a lot of repeated JS across all my tools (e.g., image conversion, BIOS hash checking, etc.), and so I decided to move all shared code out to its own separate library. This will improve scalability and maintainability at the cost of portability - a fair trade in my opinion.
This work also involved large-scale refactoring of all of the tools. There's no actual functional difference (all the tools should behave exactly the same), bar some UI improvements for the oldest tools as a result of moving to the same codebase used by the more recent tools.