At line 1 changed one line |
!!!MKDS Workshop Part 1: Getting the Tools |
!!!Mario Kart DS Custom Track Tutorial |
At line 4 changed one line |
Hello and welcome to the Mario Kart DS Workshop! This will be a tutorial series aiming to teach people through modding Mario Kart DS, particularly making custom tracks! You will learn all about making a track, from the modeling, to the ingame things like checkpoints! This first part will show you through the tools you will and will not be using, and how to set up some of them. If you have any doubts or questions, I recommend joining the Mario Kart DS Modding server, where the main community resides. Without further ado, let's dive in!\\ |
This tutorial page outlines the process of creating custom tracks for Mario Kart DS. This will cover everything from modeling to importing the track into the game. If you ever have any questions or comments, do consider joining the [Discord server|https://discordapp.com/invite/CAktUYP].\\ |
At line 6 changed 2 lines |
!!!The Tools you WON'T need |
Let's start by highlighting the tools that are no longer recommended to use, mostly because they are dated and surpassed by other tools, or because they're not useful for modding MKDS.\\ |
!!!Software used |
__1. [Mario Kart Toolbox|Mario Kart Toolbox]__\\ |
At line 9 changed one line |
__Mario Kart DS Course Modifier__\\ |
Mario Kart Toolbox is the general program used for editing Mario Kart DS. This is the software you will be using to create collision, edit text, edit character and kart stats, generate a course picture, generate global maps, and more. The current stable version is currently in the process of being superseded.\\ |
At line 11 changed one line |
MKDSCM used to be the main tool for anything regarding MKDS, but nowadays, it is severely outdated and not recommended. There are many reasons: Course model creation is clunky and inefficient, as it doesn’t support quads or stripping, which are key to making a good model. It’s collision generator is just as bad, and the tool overall can even corrupt files. Plus, it lacks the ability to save anything you change! This tool is almost 10 years old, and is not receiving support any longer. It does have some uses still, but I will mention these later on. For now, steer clear of this tool!\\ |
2. __Blender__\\ |
At line 13 changed one line |
__Every File Explorer__\\ |
Blender is a free, open source modelling program with tons of other features to boot. This is the main tool used for making course, character and kart models. While it seems daunting at first, for Mario Kart DS, we only use a small subset of its features, which we will guide you through. The NNS Blender Plugin is currently compatible with Blender 2.8 through 4.0. You can download a compatible version [here|https://www.blender.org/download/lts/].\\ |
At line 15 changed one line |
Another tool that used to be rather useful for MKDS modding, nowadays it doesn’t have much use for this game specifically. It’s collision generator is also outdated, and it’s main purpose, browsing files, has been succeeded by newer tools. While it’s useful in other games, it serves no purpose here, so no need to use this one.\\ |
3. __[NNS Blender Plugin|NNS Blender Plugins]__\\ |
At line 17 changed one line |
__SketchUp__\\ |
A plugin for Blender, which lets you export models in the NITRO Intermediate format, from which you will make your files compatible with the game. You can download it [here|https://github.com/jellees/nns-blender-plugin/releases/latest].\\ |
At line 19 changed one line |
So this is kind of a tricky one. SketchUp is rather easy to use for some people, but for MKDS it isn’t the best option. It prevents you from utilizing vertex colors, which are important to shading a track model, and the model comes out buggy, which will cause issues when generating a track’s collision. This series will strictly be using Blender, so it’s recommended that you give that a shot for this.\\ |
4. __G3DCVTR__\\ |
At line 21 changed one line |
__DeSmuME Emulator__\\ |
A command line converter for the intermediate formats that converts them into the runtime formats used by Mario Kart DS. It also includes batch files for easy conversion. This software aims to be replaced in the future. You can download it [here|G3DCTVR].\\ |
At line 23 changed one line |
Chances are this emulator is what you might be most familiar with, but it’s not recommended when testing your tracks, mainly because it doesn’t emulate limitations of the DS hardware accurately. For this series, I will be using MelonDS instead, as well as Twilight Menu++ on my 3DS. A flashcart is strongly recommended, as testing on a console is the best way to go.\\ |
5. __NitroPaint__\\ |
At line 25 changed 4 lines |
The first 2 tools have links here in the site, should you ever need them. With that done, let's mention the tools you will be needing!\\ |
|
!!!The Tools you WILL need |
__Mario Kart Toolbox__\\ |
NitroPaint is a general graphics editing program aimed towards the DS. This program is used to create the NNS TGA format textures that the Blender plugin expects. You can download it [here|https://github.com/Garhoogin/NitroPaint].\\ |
At line 30 removed 20 lines |
This handy program is the (almost) all-in-one toolset for modding Mario Kart DS! This program lets you do a lot of things within the game, such as editing the NKM, (checkpoints, CPU routes, cameras, objects, etc), creating the KCL (collision), editing text and kart stats, and most importantly, explore the filesystem in an easy and convenient way! It’s still a work in progress, but there is already a wide range of features that make modding this game a piece of cake. This is the tool that you’ll mainly be using. [Download|Mario Kart Toolbox]\\ |
\\ |
__Blender__\\ |
\\ |
Blender is an open source, free modelling program with tons of other features to boot. This is the main tool used for making course models, kart models, and the like. While it seems daunting at first, for MKDS we only use a small part of the features, which I will guide you through very soon. You can use either 2.79 or 2.8, but the latest tools support 2.8, so if you have never tried Blender, I recommend going straight to it. [Download (2.83)|https://www.blender.org/download/lts/]\\ |
\\ |
__NNS Blender Plugins__\\ |
\\ |
A plugin for the aforementioned Blender, specifically Blender 2.8, which lets you export models in the Intermediate NITRO format, from which you will make your files compatible with the game. [Download|https://github.com/jellees/nns-blender-plugin/releases/latest]\\ |
\\ |
__G3DCVTR__\\ |
\\ |
A set of programs from the Nintendo DS SDK that converts the IMD format files mentioned before into the files MKDS will use. It also includes batch files for easy conversion. Unlike all the other tools, this one is not public, as it is pretty much copyrighted, being part of the DS SDK and whatnot. You will have to ask NinjaboySC in the Mario Kart DS Modding server for the file. [__click here__|G3DCTVR]\\ |
\\ |
__TGAConv__\\ |
\\ |
This program converts image files to the Nitro TGA format, which you will be needing for the creation of models. [Download|https://garhoogin.com/mkds/tgaconv/]\\ |
\\ |
\\ |
There are tons more programs, which you will be able to find in the #getting-started and #tools channels of the MKDS Modding server, which I highly recommend checking once you get there. To avoid confusion and feeling overwhelmed, I will introduce tools as we go along, but these 4 are extremely important to begin with MKDS modding. Now, let's set up the plugins in Blender, and export our project as a ROM in Mario Kart Toolbox.\\ |
At line 51 changed 2 lines |
!!!Installing the NNS Blender Plugins |
''Tip: There is an option to import shortcuts from Blender 2.79 here into 2.8 in the splash screen, so if you come from that version I recommend doing that! It'll make it easier to adjust to 2.8.''\\ |
!!!1. Setting up the NNS Blender Plugin |
''Tip: There is an option to import shortcuts from Blender 2.79 here into 2.8 in the splash screen, so if you're used to that version I recommend doing that! It'll make it easier to adjust to 2.8.''\\ |
At line 72 changed one line |
!!!Exporting your ROM as a project |
!!!2. Exporting your ROM as a project |
While possible to edit a ROM directly, doing so is quite cumbersome. We recommend using Mario Kart Toolbox to create a ROM project from your existing Mario Kart DS ROM file. This will extract all the files and archives and allow you to browse the file system using Windows Explorer. |
|
At line 87 changed 6 lines |
!!!That's it for now! |
With all that finished, you are officially ready to start modding MKDS! The next part will show you through modeling, texturing, and creating the materials of your track in Blender! Remember to join the MKDS Modding Discord in the case of any doubts, and to get to know the community! Until then, see you around!\\ |
\\ |
Video version:\\ |
[{Video url='https://www.youtube.com/watch?v=S84j4AnP5sw' width=560 height=315}]\\ |
\\ |
!!!2. Converting Textures |
To export a model with the NNS Blender Plugin, textures must first be converted to NNS TGA. What is NNS TGA? This is an extension to a standard TGA image with DS texture data embedded. This allows Blender to preview the textures while editing the model. |
At line 69 added 28 lines |
Textures on the DS have sizes as powers of 2 between 8x8 pixels and 1024x1024 pixels. This means allowed dimensions are 8, 16, 32, 64, 128, 256, 512, and 1024 pixels. Using textures as large as 256x256 is not recommended, as this will consume a lot of VRAM. Use smaller texture sizes wherever appropriate, and bear in mind the DS's screen resolution. |
|
To convert a texture to NNS TGA, you can simply drag and drop an image onto NitroPaint and click "Create Texture." You can now click on the "Convert To..." button on the right hand side. You should now be prompted with the parameters for texture conversion. By default, the converter selects a texture format and palette size it thinks is appropriate for your image. You may edit these, however. The texture formats are outlined below and under what conditions you might use them: |
|
||Texture Format||Bits per pixel||Translucency||Usage |
| {{{tex4x4}}} | 3 | No | This is the most common texture format used in Mario Kart DS. It offers generally the best quality/size tradeoff. It uses block compression to achieve its size. They often have quite large palettes. The larger the palette size, the better the quality you can achieve. |
| {{{palette4}}} | 2 | No | This is the smallest texture format on the DS. Use this when your texture has 4 colors or less and doesn't have translucent pixels. You can have transparent pixels, but you may then only have 3 colors. |
| {{{palette16}}} | 4 | No | With this format, you have 16 colors and no translucency. You can use transparency, but with 15 colors. |
| {{{palette256}}} | 8 | No | With this format, you have 256 colors and no translucency. You can use transparency, but with 255 colors. |
| {{{a3i5}}} | 8 | Yes | This format allows storing translucent pixels. You can use 32 colors, but get 8 levels of translucency. |
| {{{a5i3}}} | 8 | Yes | This format allows storing translucent pixels. You can use 8 colors, but get 32 levels of translucency. |
| {{{direct}}} | 16 | No | This format is entirely uncompressed. They are quite huge, so avoid them whenever you can. |
|
|
!!!4. Modeling |
This video outlines the process of track modeling in accordance with best practices in Mario Kart DS: |
[{Video url='https://youtu.be/YfVbMzkl7hE?t=80' width=560 height=315}] |
|
!!!5. Exporting the Course Model |
To export the model from Blender, go to File -> Export -> Nitro Intermediate. This will produce an IMD file if everything is correct in your model. With this IMD file, you can now create the final NSBMD and NSBTX files. Included with the g3dcvtr linked above, there is a batch file that converts the IMD to these. You can drag and drop the IMD file onto the {{{mdltex.bat}}} file which should produce these files. You may now replace the {{{course_model.nsbmd}}} in the course archive, and {{{course_model.nsbtx}}} in the course texture archive. |
|
!!!6. Creating the Course Collision |
[{Video url='https://youtu.be/p91mmSLP1S8' width=560 height=315}] |
|
!!!7. Editing the NKM |
[{Video url='https://youtu.be/xGy_9R3wlmg' width=560 height=315}] |
|
|