Hacking Mario Kart 8 Modding Central

lonemoonHD

7
OP
Member
Joined
Dec 31, 2015
Messages
438
Trophies
0
XP
649
Country
Norway
Hello Tempers! This has been on my mind (and for that matter, on my "to-do" list) for a while. I was looking for some GBAtemp threads on this subject, but nothing came up, so I took the liberty of making one such thread myself! ;P

I have prepared an aggregation of tutorials for you below, as well as some extra downloads to existing mods. Find the tutorial that suits your need and follow it closely. If you have any questions, simply tag me (@lonemoonHD) and I'll make sure to answer everything I get!

These tutorials are targeted towards the 5.5 firmware version, so if you are using anything else, don't worry; most of the guides apply towards other firmware versions too!

So, without further hindrace, let's get right to it!

Using Cafiine
You will need: Cafiine for 5.5, Mario Kart 8's file structure and title ID

1. Go to http://loadiine.ovh in your Wii U's web browser.
2. Run the kernel exploit and launch Cafiine on your Wii U.
3. Open a Command Line window on your computer and type in ipconfig.
4. Mark down your IPv4 address and insert it into the Cafiine client on your Wii U (You can do this by using the D-Pad.). After you're done, click A to proceed.
5. Download Cafiine onto your computer and go to the server folder. Run cafiine_server.exe and if it succeeds, you will see a command line window pop up saying "[listener] Listening on 7332".
6. Go to the cafiine_root folder and make a folder in there with your game's title ID. The ID varies depending on your region, so I recommend checking for the right one.
7. Emulate the folder structure from the link above and insert all hacks in the correct directories.

I also recommend using @Ray Koopa's extended Cafiine server for more great features.

Using TCPGecko
You will need: TCPGecko for 5.5, some cheat code

Installation

1. Go to http://loadiine.ovh in your Wii U's web browser.
2. Go to your Wii U's web browser settings and enable Developer Settings. Mark down the IP you see.
3. Run the kernel exploit and launch TCPGecko on your Wii U.
4. Download TCPGecko onto your computer and run Gecko dNet.exe.
5. Go to your computer's firewall and allow TCPGecko through. Tick both the Public and Private boxes.

6. Place your Wii U's IP into the Connect to Gecko box and click it. You should now be able to click buttons in the program and therefore modify RAM.

Cheat code use

1. Take any cheat code you want from the link above.
2. Go to the Search tab in Gecko dNet.exe.
3. Mark down the cheat code you want to use.
4. Paste the first row of offsets into the first search box, and then paste the second row of values into the second one. Once you're done, press Poke.

Custom Music
You will need: Looping Audio Converter, list of MK8 songs

1. Take any song of your choice and open it in Looping Audio Converter.
2. Choose the correct audio settings and export the file as .bfstm.
3. Take the .bfstm and rename it with one of the names I linked above.
5. Make a folder in Cafiine called audio, and in it, create the folder stream. This is where you will put your .bfstm.
6. Run Cafiine and enjoy your custom song!

Custom Textures
You will need: TexHaxU, a game dump, Python 2, Paint.NET, yaz0dec, yaz0enc, any .szs/.bfres file you want

How to edit textures

1. In the game dump, go and find any course's/driver's .szs file you like and use yaz0dec to decrypt it.
2. Then, there should be a .bfres file. Put it into the main TexHaxU folder.
3.
Run "extract.bat" and in quotation marks, put in the file name of the .bfres letter for letter. Then run "convertGTX.bat" and wait for the application to finish.
4. Go inside the folder OutDDS_Lossless and modify the .dds files in Paint.NET.

Getting them to work

1. Once you're done editing the .dds files, move the edited .dds file and a .gtx file with the same name to the main TexHaxU folder.

2. Make a new text file and name it "filelist.bat". In this file, write "hax.py Mario.bfres pause". Running it will show you all the texture positions in the file, which are crucial for the textures to get inserted. You must download Python 2.7 for this to work, as the hax.py file has instructions only Python can interpret/decode.

3. Once you get the file list, search for your file's name in it and mark down the file's position. Then, make a new file called "splicer.bat" and in it, write "hax.py filename.dds Mario.bfres 0 position pause".

Here's where it gets complicated. "position" is obviously the file's position you got earlier. It should be written without brackets or quotation marks. "filename" is again replaced by the file's actual name, and the "0" is the minmip number.

Now, of course, the "0" is just temporary. Once the script runs, it will show you "BFRES Mips = X". You need to edit the script and replace the "0" with whatever number you see. Then, when you run the script's edited version, you'll see the "GTX Mips = X", which is the definitive minmip number you want. Edit the script again with this number and run the script again.

Now, here's an example how the script should look now:
"hax.py anus_alb.dds Mario.bfres X 31 pause"

4. Run "splicer.bat" and if it works, a new file will be made in the main TexHaxU directory; "anus_alb1.gtx". This means you've done it correctly and that your file is now in the .bfres. The file should be smaller than the uncompressed .gtx file from earlier, and it should always have the "1" at the end of its name.

5. Repeat this for every single texture you want to replace and once you're done, use "yaz0enc" to encode the .bfres file into .szs. It will give you a ".bfres.yazo" extension at first, but once it's done compressing, just change it to ".szs".

6. Put the file into Cafiine and you should have your working texture hack hit you in your face. ;P

Text Edits
You will need: MSBT Editor Reloaded, a game dump (please don't link to game dumps)

1. Go to the game dump and find the ui folder.
2. Identify this folder's path in the game by running Cafiine and finding ".msbt" in the command line. Mark this path down and make the same folders inside of Cafiine.
3. In the ui folder, open the ue folder and modify anything you like with MSBT Editor Reloaded. To save time, I recommend going to the Find tab, ticking Match Case and typing in your desired text.
4. Once you're done editing the text, save the file.
5. Put the file inside of Cafiine and hooray, text edits are now possible!

BYAML Edits
I was planning on writing this from scratch, but I couldn't have written this better than the amazing @Ray Koopa. Most (if not, all) of what you need to know is on this thread here, which is kept updated fairly often. With all due respect and credit, I'd like to thank him for making this far easier for everyone.

@The Koopa Kingdom also wrote an edited version of MrRean's BYAML editor, so for those that need a tool, the program is available on GitHub.

Miscellaneous
Dumping with Cafiine:
You need to know the file name you want to dump. For track models (I guess you want those), the file name is always course_model.szs. The Cafiine server logs the requested file names and you can find the path in there. Then, just create an empty "course_model.szs-request" file under that path and Cafiine server will request a dump for it, storing it under "course_model.szs-dump".

You can also extract the whole directory and file structure with TCPGecko, but that always crashed my Wii U.

If that's too complicated for you and you have some time, you can use my newly created extended Cafiine server. Start it with the /DUMPALL parameter and it will recreate the directory and file structure in the specified dump directory as soon as files are queried. (I'll write a thread about the extended server in a few).



Hope this helped you all!

Make sure to join the Discord server too!
 
Last edited by lonemoonHD,

sora10pls

Well-Known Member
Member
Joined
Oct 25, 2015
Messages
190
Trophies
0
XP
715
Country
Canada
I'm glad this finally exists. I can vouch for her as she's helped solve my own issue involving custom textures, so I'm sure all the other information is reliable :)
 
  • Like
Reactions: lonemoonHD

PeeJay Bonobo

Well-Known Member
Member
Joined
May 10, 2014
Messages
117
Trophies
0
Age
37
Location
Jamaica, New York
Website
steamcommunity.com
XP
2,028
Country
United States
When I grab a .szs file and throw it to yaz0dec, I get a .rarc instead of .bfres

Help?

I had the same problem following those instructions as well, it turns out that the .rarc files are actaully bfres files (I've checked the .rarc files in a hex editor, and the first four bytes consisted of "FRES"). Rename the extension to .bfres and proceed with the instructions.
 
  • Like
Reactions: lonemoonHD

Katkat

Well-Known Member
Newcomer
Joined
Jul 13, 2015
Messages
46
Trophies
0
Age
30
XP
126
Country
France
"2. Make a new text file and name it "filelist.bat". In this file, write "hax.py Mario.bfres pause". Running it will show you all the texture positions in the file, which are crucial for the textures to get inserted. You must download Python 2.7 for this to work, as the hax.py file has instructions only Python can interpret/decode."

@lonemoonHD Hello, I have a concern when I run filelist.bat well nothing happens console closes immediately.
http://iforce.co.nz/i/sy3c4mil.doz.jpg
 

lonemoonHD

7
OP
Member
Joined
Dec 31, 2015
Messages
438
Trophies
0
XP
649
Country
Norway
okay under custom music, you need to specify what "2. Choose the correct audio settings " means.
Oh yeah, I'll update this when I get home. Thanks for telling me! :)

"2. Make a new text file and name it "filelist.bat". In this file, write "hax.py Mario.bfres pause". Running it will show you all the texture positions in the file, which are crucial for the textures to get inserted. You must download Python 2.7 for this to work, as the hax.py file has instructions only Python can interpret/decode."

@lonemoonHD Hello, I have a concern when I run filelist.bat well nothing happens console closes immediately.
http://iforce.co.nz/i/sy3c4mil.doz.jpg
Is the text inside of filelist.bat in quotation marks? It's supposed to say hax.py Mario.bfres pause without the "" (quotation marks). It might be one reason why it's closing.
 

justfam

Member
Newcomer
Joined
May 10, 2016
Messages
8
Trophies
0
Age
34
XP
57
Country
United States
Oh yeah, I'll update this when I get home. Thanks for telling me! :)


Is the text inside of filelist.bat in quotation marks? It's supposed to say hax.py Mario.bfres pause without the "" (quotation marks). It might be one reason why it's closing.
thank you <3 cant wait to replace all the music with the daytona OST :^)
 
  • Like
Reactions: lonemoonHD

lonemoonHD

7
OP
Member
Joined
Dec 31, 2015
Messages
438
Trophies
0
XP
649
Country
Norway
thank you <3 cant wait to replace all the music with the daytona OST :^)
Well, honestly "choosing all the correct audio" settings really just means choosing the correct file extension (BFSTM), then choosing your desired output directory (usually always Desktop, depends on you) and then export it. ;P
 

justfam

Member
Newcomer
Joined
May 10, 2016
Messages
8
Trophies
0
Age
34
XP
57
Country
United States
Question though, whats the difference between tracks like pBGM_AGB_MARIO_CIRCUIT_F.bfstm and pBGM_AGB_MARIO_CIRCUIT_N.bfstm? i noticed one has F other N.
 

smileyhead

I like cute stuff.
Member
Joined
Aug 31, 2015
Messages
4,798
Trophies
3
Age
23
Location
Budakeszi, Hungary
Website
sites.google.com
XP
10,549
Country
Hungary
Question though, whats the difference between tracks like pBGM_AGB_MARIO_CIRCUIT_F.bfstm and pBGM_AGB_MARIO_CIRCUIT_N.bfstm? i noticed one has F other N.
Fast and Normal. The music speeds up on the third lap.
 
  • Like
Reactions: lonemoonHD

N28582R

Well-Known Member
Newcomer
Joined
Apr 30, 2016
Messages
60
Trophies
0
XP
289
Country
Gambia, The
So uh I currently work on a guide to edit BYAML's for tracks (I'm still not sure if or when it's done). A lot of stuff can be done with BYAML's. An editor like Splat3D or SM3DW-Editor would be very useful. MrRean developed something like that some time ago (IIRC). It would be nice to see something like that.
 
Last edited by N28582R,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • K3Nv2 @ K3Nv2:
    Alot of manufactures do care about older consoles they just want to whine about piracy
    +2
  • S @ salazarcosplay:
    @BigOnYa I had 4.89 hfw on super slim that was great, but when I got a new hard disk I forgot where the guide was and could only find a guide for 4.90 and its resources
  • S @ salazarcosplay:
    @BigOnYa I think another reason to want to update is if the hfw is at the level of the fw
  • S @ salazarcosplay:
    you can sync trophies
  • BigOnYa @ BigOnYa:
    Yea that's what I'm sitting on now- 4.9, and it seems fine, have had no issues at all
  • S @ salazarcosplay:
    I don't know if people play online or such
  • K3Nv2 @ K3Nv2:
    My ps3 short circuited during a deep clean still salty about it after downloading 2tbs worth but SteamDeck okay with emulation still just can't run mgs4 worth shit
  • BigOnYa @ BigOnYa:
    Yea forgot bout trophies. They just silly to me. Just like the xbox achievements. Hey, to each they own tho.
  • K3Nv2 @ K3Nv2:
    It keeps players in touch with the game like a check list of things to do after they beat it
  • S @ salazarcosplay:
    @BigOnYa they ruined the gaming experience for me to be honest
  • S @ salazarcosplay:
    @BigOnYa Im not crazy about getting all of them, i feel like I have something to show for for the time put in
  • S @ salazarcosplay:
    @BigOnYa If you want to do rgh or 360 mod
  • S @ salazarcosplay:
    does it matter if you update your 360 or not before trying is it advisable or not
  • BigOnYa @ BigOnYa:
    Yea I don't pay attention to them really. Or do I try to 100% a game. I just play till story ends/ or I get the girl!
  • K3Nv2 @ K3Nv2:
    Bigonya uses his wiener to mod 360s
    +1
  • Xdqwerty @ Xdqwerty:
    Going to the water park, see ya
  • BigOnYa @ BigOnYa:
    You should update the 360 to newest dash before RGHing it yes. But not a big deal if you don't, you can install new dash/avatar updates after. It's just easier to do it auto online before, instead manual offline after.
  • BigOnYa @ BigOnYa:
    Have fun @Xdqwerty. If you see a chocolate candy bar floating in the water, don't eat it!
  • AncientBoi @ AncientBoi:
    :O:ohnoes: Y didn't U Tell ME that ALSO? @BigOnYa :ohnoes: 🤢🤮
    +1
  • BigOnYa @ BigOnYa:
    Does it taste like... chicken?
    +1
  • S @ salazarcosplay:
    @BigOnYa I wanted to ask you about your experience with seeing south park. Most of the people a bit younger like my younger brother and cousins that are a few younger than me that saw kids found south park funny because of the curse words, kids at school, that seemed like liking the show on a very basic level.

    I could not quite have a in depth discussion of the show.

    How was it for you? As an adult. What did you find the most interesting part about it. Did you relate to the parents of the kids and their situations. Was it satires, the commentary on society. The references on celebrities' and pop culture.
  • BigOnYa @ BigOnYa:
    I remember seeing the very first episode back in the day, and have watched every episode since. I used to set my VCR to record them even, shows how long ago.
  • BigOnYa @ BigOnYa:
    I just like any comedies really, and cartoons have always been a favorite of mine. Family guy, American Dad, Futurama, Cleveland Show, Simpsons - I like them all.
  • BigOnYa @ BigOnYa:
    South Park is great cause they always touch on relavent issues going on today, and make something funny out of it.
    BigOnYa @ BigOnYa: South Park is great cause they always touch on relavent issues going on today, and make...