ninjacheetah.dev
Hey there! I'm Campbell, an 19yo genderqueer furry femboy software developer working primarily in Rust (go figure) and Swift, with a little bit of Kotlin […] 🌉 bridged from ⁂ https://mastodon.online/@NinjaCheetah, follow @ap.brid.gy to interact
👤 Joined on 01 January 0001
Followers
Following
Total Posts
@NinjaCheetah.mastodon.online.ap.brid.gy@NinjaCheetah.mastodon.online.ap.brid.gy → @ninjacheetah.devIn my last post I went over some of the challenges of writing an ASH compressor. You may know the ASH compression very well from its use in some Wii titles, but it was also used on the DS. The DS firmware stores its resources and secondary modules in a data blob compressed using ASH. [1/3]
Show PostThe only difference in the variant DS firmware uses is that the first 4 bytes aren't an "ASH0" signature. Instead, a 4-byte little endian header stores the length of the compressed data. The low 24 bits store the compressed size of the data, shifted left 2 bits. [2/3]
Show PostThe file is still stored in big endian byte order, and thus has to be reversed at runtime. Because of this, you may decompress these compressed blobs by writing over the first 4 bytes of the file with "ASH0" and use any normal ASH decompressor. [3/3]
Show PostHad to take my DSis out to World of Commodore to snap some pics. #DSi #Nintendo #TPUG #Commodore
Show Post