Garhoogin
banner
garhoogin.com
Garhoogin
@garhoogin.com
Site administrator at dshack.org.
Though most changes introduced with each revision to the DS firmware had minimal visible difference, the 2005-02-28 version does introduce a bug fix for the initial setup language selection GUI. Before, you could input the Back button before the animation completes, cutting off the selection sound.
August 13, 2025 at 6:06 AM
In the DS firmware boot menu, the health and safety heading text is split into two separate text elements to adjust for kerning in the word HEALTH. This is controlled by a BNLL file, which defines text and where it goes on the screen. [1/2]
July 24, 2025 at 4:32 AM
I've been examining the differences between different DS firmware versions, I'm surprised that there isn't much information about what's different between them. [1/6]
February 26, 2025 at 5:01 AM
Took some time this week to write up a quick and dirty program for operating on DS firmware images. Can clean/replace user data, extract/replace modules, fix errors and more. Find it at github.com/Garhoogin/fw.... :)
GitHub - Garhoogin/fwutil: Operate on DS firmware.
Operate on DS firmware. Contribute to Garhoogin/fwutil development by creating an account on GitHub.
github.com
February 9, 2025 at 4:03 AM
A cool bit trick I've picked up is a really quick way to average an RGB color with white. In the end, the whole process is reduced to just two operations. Over the course of this thread I'll walk through my process of coming to this conclusion, and hope that you might find it interesting. [1/9]
January 25, 2025 at 4:53 AM
Texture compression on the DS is such a tricky thing. In a way, it's structurally similar to common DXT texture compression. It's just different enough to make it a huge pain to encode. [1/7]
December 18, 2024 at 6:00 AM
Something cool the DS firmware does is that it tries to display banner text in the boot menu even when banner text for the user's language is not present. What's also interesting is that the way it searches for the banner text depends on the selected language. [1/3]
December 15, 2024 at 10:38 PM
A really cool detail on the DS that I think seems to be often overlooked is that PictoChat has a feature that allows you to change up the message chime by holding certain keys while sending a message. [1/9]
December 11, 2024 at 11:14 PM
The IS-NITRO-EMULATOR follows an interesting boot process when compared to that of a normal retail DS unit. The debugger's BIOS is identical to a retail unit's. Both contain code to detect the debugger on startup. The isDebugger field in shared memory is then set to 1 when detected. [1/7]
December 10, 2024 at 7:10 PM
On the DS, graphics were commonly created using software like NITRO-CHARACTER. On the GBA, IS-AGB-CHARACTER was sometimes used. But in between the two, there looks to have been another piece of software, IS-IRIS-CHARACTER, presumably for use on original Iris hardware. [1/7]
December 7, 2024 at 8:51 PM
On the subject of games with cool compression algorithms, there's the Mario vs Donkey Kong games for the DS. Specifically, Minis March Again and Mini-Land Mayhem. These two games share their own generic compression container format similar to the one the BIOS parses. [1/8]
December 3, 2024 at 5:36 AM
I previously talked about optimal LZ encoding of data and how it requires knowing the length of each token of the output. Very often a greedy approach is taken to encoding LZ, but an optimal LZ encoding can be computed in the same time complexity. [1/9]
December 2, 2024 at 12:39 AM
In 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]
November 30, 2024 at 3:46 AM
Earlier in the year I was approached by NinjaCheetah about help writing an ASH compressor. It seemed like a fun challenge, and it definitely proved to be. [1/8]
November 27, 2024 at 10:56 PM
An interesting thing I noticed in the IS-NITRO-EMULATOR's firmware is that there's code for patching Super Mario 64 DS. This code is run after downloading a child ROM through Download Play, and not on game card boot. This was identified on firmware version 2006/02/20 20:20:59. [1/4]
November 26, 2024 at 5:44 PM
An interesting thing I came across the other day is that the typical greedy encoding of data in the DS's (and GBA's) standard RLE compression format isn't always optimal. The format stores compressed data as strings of repeated bytes, or a string of directly stored bytes. [1/5]
November 25, 2024 at 8:58 PM