Animal Crossing Wii DLC Recap

Larsen Vallecillo
RiiConnect24
Published in
7 min readApr 10, 2020

We at RiiConnect24 have been looking at getting Animal Crossing Wii DLC to work since 2015. The DLC usually contains a gift that usually is furniture, but can also be a design pattern or a new NPC villager that can move into your town (Nintendo never used this ability). It’s taken us years to figure out why people haven’t been receiving DLC more than one time.

TL;DR: Never got the RC24 carpet or Gracie tile we distributed? We figured out what happened, it was a tiny fix that we didn’t realize needed to be made.

Many years ago, someone named conanac made a homebrew application called DiiLC that can download Nintendo’s DLC currently on their servers or some “hacked” DLC. Around the same era, a tool named EZ DLC Install was made, allowing you to inject any of Nintendo’s DLC or hacked DLC in your save file.

Although conanac distributed a couple of DLC with DiiLC, he worked hard and managed to make some DLC files in the proprietary “BITM” format that the game uses. The DLC items are stored in .brres format, which is the native model format for the Wii and used in a good portion of Wii games.

We contacted conanac and he gave us some DLC files, even though they were ones we already had.

The .brres files in the BITM file are compressed with a cryptic compression format called ASH. The format isn’t used in many games and apps on the Wii, but the Wii Menu uses the format. It turns out conanac made a tool to compress files in ASH format, I have no idea how he figured out how he made it but it was great.

We asked him for the ASH compressor and he gave it to us, we also uploaded it to other places because it’s a useful tool. Later, we asked conanac for other things such as the source code for DiiLC and the ASH compressor, but he was unable to find it since it had been such a long time since he worked on the DLC.

Around 2016(?) we decided our first DLC item would be a RiiConnect24 T-Shirt for the villager to wear in the game, and the back of the shirt would contain the Wiimmfi logo. We made the BITM file, wrote a letter and packaged it up, but it didn’t work. Someone told us they received the item, but when they checked the item, you would get an apple. This is weird, but it seems that any DLC files that the game doesn’t like just fallback and give you an apple instead.

We were unable to try distributing a fixed version of the DLC item, and this is the problem that we’ve had with DLC for years. For a mysterious reason, one person could only receive one DLC item, no matter what it is.

Another attempt at getting the DLC to work was to distribute this DLC in this “game store” set that you could find in Animal Crossing: Happy Home Designer. That also gave people an apple instead of the actual item, and the DLC idea didn’t really work because there was a file size limit for DLC (the item file cannot exceed a few kilobytes!) so it was scrapped.

The game store DLC.

Since it was so hard to debug DLC without making a save file, we stopped looking at the DLC stuff in the game for a while. Eventually we made a patcher to patch a WBFS or ISO of Animal Crossing Wii to change some references in the game’s text from “Nintendo WFC” to “Wiimmfi” and “WiiConnect24” to “RiiConnect24”. It also changed the RSA public key which the Wii uses to verify the file, assuming that could be the reason why the DLC wasn’t working. The patcher has since been deprecated and we don’t recommend using it because it’s trivial.

At the end of the BITM file, there’s a checksum. conanac and someone else told us that it’s a CRC32 checksum, and that’s what we assumed it was, but the seed (aka initialization value) wasn’t the default seed that a regular CRC32 has for some reason. We didn’t know how to figure out what the seed was nor did we know what programming language could be used to do it.

Eventually we figured out that a module for the Perl programming language allows you to calculate a CRC32 and set the seed file, so we write a script to brute force the seed, which there are over 4 billion possibilities for the seed! If I recall correctly, it took at least 48 hours for the script to run and to brute force it, but we found the seed.

Another thing we made was a script to attempt to generate Animal Crossing: City Folk DLC, but it ended up not being used in the end.

The first DLC item distributed was a RiiConnect24 carpet in October 2017. It worked! We tested it with Dolphin Emulator and people got it and hopefully enjoyed it. For some reason, the DLC ended up crashing some people’s Wiis, but we likely solved it when we edited some unknown bytes in the BITM file. We kept the DLC up for a while. A small problem with the DLC caused the letter to be blank in languages other than English though.

The carpet and a temporary wallpaper.

Over a year later, we were in talks with Aurum, who also created the Super Mario Galaxy mod known as Neo Mario Galaxy. He was making a tool to make DLC files. He also has a tool to insert all DLC items into your save file. Eventually, Aurum made a “Gracie tile” DLC item, which we released. It worked, but people who received the RC24 carpet would still not get new DLC for some reason.

It turns out because Nintendo is stupid and messed up how they did RSA verification on the Wii, it’s not needed to patch the key. The game downloads to a file called “wc24dl.vff”. I think it’s supposed to error out and not put the DLC item in the vff file when the RSA signature doesn’t match, but it makes its way in there. Animal Crossing doesn’t care about the signature as long as the DLC is in the vff file.

Aurum also made a silver roses DLC file. It’s not a type of flower you can plant on the ground, but it’s still a cool item you can place in your house. The only person we seen actually get the DLC file caused their game to crash when detaching the item attached to the letter. Of course, they never received DLC before. We don’t know why that happened. We pulled the DLC file from the servers because of this problem. It’s weird because it didn’t crash Aurum’s game when he tested it in Dolphin.

We did some investigation on our own without Aurum to try to figure out why people weren’t receiving this additional file the game downloads, a “bad word filter”. The reason being we thought that could potentially be the reason that people are not receiving the items. When Wiis were trying to download the DLC, the server was returning HTTP 400 Bad Request because there was a space at the end of the URL. We have no idea why the game has that. The Wii seems to only return HTTP 400 Bad Request when you’re using a DNS, which is required for you to receive the DLC items.

Our Apache logs weren’t showing the bad word filter being downloaded until we found that it’s requesting the file on our actual IP address. A RewriteRule wasn’t fixing the request, but it was when we added “HttpProtocolOptions Unsafe” to the IP’s vhost. Now it was requesting the file in the correct place instead of the IP.

We asked people if they received the Gracie Tile DLC item if they haven’t before, but we didn’t hear any reports. Further testing with Aurum, who was reverse engineering the game, tried changing one of the values in another file the game downloads. Changing that value fixed the DLC! One tiny value needs to be different for each DLC item that’s distributed, and that’s what was confusing us for 4 years! I tested it in my game and got the DLC.

Time to get people to get the RC24 carpet and Gracie tile DLC if they haven’t got it before, then get some old and new DLC distributed. Hopefully we can automatically distribute DLC so people can always get some.

I think some people still play the Wii version of Animal Crossing even though New Horizons for the Switch came out, which is a great game by the way.

Some more notes:

  • Aurum figured out how to make a custom pattern. He just needs to figure out how to fix the palettes so the pattern will look correct.
  • Aurum also figured out how to add a custom NPC animal to move in your town. I don’t think Nintendo ever distributed DLC with that.
  • Aurum wants to make a mod of Animal Crossing Wii.
  • We figured out how to distribute items as DLC that are already stored in the game. Looks like Nintendo did that to distribute a box of chocolates in Japan for Valentine’s Day.
  • For some reason, the Channel known as “The Legend of Zelda: Skyward Sword Save Data Update Channel” has a lot of similarities with Animal Crossing Wii. It has a similar jingle on the Wii Menu that Animal Crossing Wii has, it uses the same cursor, and it even contains some unreleased DLC.

--

--