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
Updated the custom firmware FAQ answer with the latest progress notes. Replaced the bootloader bug FAQ with a more generic FAQ covering the main situations under which the SF2000 fails to boot correctly. Added a brief note on the mysterious new `August 3rd` BIOS that has started appearing on some newer devices.
Corrected that gpSP Retroarch core demo does indeed have sound (but it's stuttery/crackly). Added a new FAQ about where to ask questions. Updated the Audacity steps for custom sound creation with some additional detail.
Just removing some formatting from headers; the HTML IDs being generated by the Github theme don't match the format being generated by my IDE for the TOC, breaking the links. This is why we can't have anything nice.
Updated FAQ about custom firmware with latest details. Moved "what can I do" bullet point about custom themes to its own separate FAQ to make it easier to find, and added more details about how to actually _install_ a theme.
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.
Added a FAQ about slow SNES games. Updated details of CFW development with the latest status. Added a link to the discovered SDK. Added a link to `Zerter#4954`'s new theme collection site. Added a link to the Tadpole tool by `.ericgoldstein`.
Added some functionality to search for and strip Retroarch save state headers if they're found in the input data when converting to SF2000 format. See Javascript comments on function `stripRetroarchHeaders` for more details
Was incorrectly pointing to an old `rmapi.png` file which is no longer accurate for current firmware versions, now pointing to `rmapi.tax.png` - thanks `davyper`!
Decided to do a bit of digging into the ROMs with corrupt thumbnails, to see if I could determine it programmatically; turns out yup, they all have thumbnail data that's longer than the 59,904 bytes the format allows for. Updated my WQW-scanning code to find the first offset, and now I flag any ROMs whose thumbnail data is too long.
This change also let me fix up and match a few more ROMs where the WQW zip file is actually fine, but is just at the wrong place in the file.
Turns out the SF2000's NES ROMs contain an "iNES" header, which No-Intro doesn't like; stripped the header now, and compared against the "headerless" DAT - thanks to `osaka#9664` for the tip!
Added a new tool for extracting and creating SF2000 save state files. Also added details to the main page about the save state file format, and about the mysterious arcade `.skp` files
Added a new tool, the Generic Image Tool - allows you to convert SF2000 images to PNG, and PNG/JPEG images to SF2000 formats with several options.
Also added a large amount of arcade-specific information thanks to some heroic work by `adcockm#8175`, fixed some typos thanks to `Luke#4448`, and tracked down where an "unused" image was actually being used thanks to `kid_sinn#9691`