Pages: 1
Posted on 02-02-22, 06:14 am (rev. 3 by newluigidev on 02-03-22, 07:48 am)
Nipper Plant


Karma: 2416
Posts: 415/417
Since: 08-17-15
Got a good one for y'all today - I've recently been working on getting a fully custom Mario body + head model to function correctly in NSMBDS. I figured out how to do it and got Wario's model from SM64DS to function correctly within NSMBDS. This thread will explain completely on how to do that.

If there are any issues, you can send me a message on Discord at jpr#1548

Firstly, you're gonna need to have some things:
SM64DSe - since the only way to get the correct body armature for Mario/Luigi is by exporting the one(s) from 64DS. (This means you will need a SM64DS ROM too).
Blender 2.93 and the blender NNS plugins - these will assist with overall model editing & exporting to NITRO intermediate format.
Autodesk FBX converter - you must convert the exported DAEs from SM64DSe to FBX in order for them to correctly display in-game.
A way to view/edit XML files - I use Notepad++.
G3DCVTR - a converter for the NITRO intermediate format that outputs a NITRO binary file.
Newest version of NSMBe.
Any image editor to create your textures.
TGAConv - to convert your image files into NITRO TGA.

Its smart to create a project folder or somewhere where you can find everything - as well as backing up the model files from NSMBDS/NSMBDS ROM, your SM64DS ROM etc in case anything becomes corrupt during the process.
Also, putting G3DCVTR and its associated files into its own folder is also smart, as you can directly export the IMDs from Blender into there, edit the XMLs, save and then convert using G3DCVTR.

Getting the armature from SM64DS
1. Open your SM64DS ROM, and open any level - preferably the testing level.
2. Select any object and choose the option to "Replace model" (above the object list)
3. A new window will appear that displays the model etc. You now want to select the "Load" option on the top left of the window and choose the "Internal Model/Collision" option
4. Once the file tree window appears, you want to go to "ARCHIVE/arc0.narc/data/player" and select "mario_model.bmd" for Mario's body model or "luigi_model.bmd" for Luigi's body model.
5. The model should appear in the model preview. If it has appeared correctly, go to the "Export" option (at the top of the window) and select "Model" - choose a place to save the DAE.

Converting to FBX
1. Open up the Autodesk FBX converter and select the "Add..." option on the left of the the small window within the main window.
2. Find and choose the DAE file you just exported from SM64DSe.
3. Go to the right side of the small window, and select the "Convert" option (at the bottom-right of the window) - the program will create a FBX in the same directory as the DAE file. (unless you chose otherwise)

Importing the NNS plugins
1. Open Blender and go to "Edit->Preferences" (you may need to open a new project in order to do this - so just create a General project)
2. In the preferences window, go to "Add-ons" and then choose the "Install" option at the top-right of the window
3. Find where you put the blender plugins files and choose them to install
4. Once it has installed, you will need to go through the list of plugins and find "Export: Nitro Intermediate". Tick the box to enable it and close the window. (If it correctly installed, you should be able to find a Nitro Intermediate option in "File->Export").

Importing the armature
1. Open a General project in Blender (if not done so already) and delete the cube, light and camera from the workspace (highlight them by dragging and press the Delete key on your keyboard).
2. Import your FBX file of the 64DS armature via "File->Import->FBX"
3. Delete the mesh, but not the bones/nodes from the workspace - simply select the mesh and press Delete on your keyboard

Preparing & Importing your body model
a) -- Converting your textures
1. Find your copy of TGAConv and open it.
2. Open the texture for your body model.
3. Go to "Edit->Edit Palette"
4. Select "Resize palette" and choose 256 colors - then select "Generate palette" and then "Apply" (if your texture looks bad you need to make sure there aren't a lot of colors)
5. Export the texture via "File->Export"
(This process must be repeated for all body textures - there are 4 of them in the order of: Normal, Fire, Unused, Star - however you only need one of them for now)

b) -- Importing your model into Blender
1. Import your model into Blender into the same project as the 64DS armature - your model should not have bones etc, just the textured mesh
2. Rig your model to the armature - there are millions of tutorials out there, so make a quick Google search and find a good one. (when rigging, make sure the weight is either 0 or 1 - DS models do not support anything else)
3. Once you have rigged your model correctly, select the mesh and go to Material Properties on the bottom-right of the window
(it looks like a red sphere with a checker pattern)
4. Select one of the materials and select the "Create NNS Material" option
5. Under "NNS Material Options", click the dropdown next to the "Material Type" text - and choose the option "Textured + Normals"
6. Then you want to find the TGA image you created using TGAConv. Select the file button (looks like a file icon) and choose the TGA. (It may appear on the model in a weird way - this is fine)
7. Then in the NNS options, click on the Light0 button to enable correct in-game lighting
8. If all looks correct, then go to "Export->Nitro Intermediate"
9. On the right of the window, click on the Intermediate Model Data option and change the Magnification to 1.000, then export the IMD. (I recommend you export to the same folder as G3DCVTR)

Editing the IMD
1. Open the exported IMD in your text editor.
The most important parts you need to worry about are:
a) The model info should look like this:
<model_info pos_scale="0" scaling_rule="standard" vertex_style="direct" magnify="1.0" tool_start_frame="1" tex_matrix_mode="maya" compress_node="none" node_size="16 16" compress_material="off" material_size="1 1" output_texture="used" force_full_weight="on" use_primitive_strip="on"/>

The most important part is the node_size which should be 16.

b) The matrix array should look like this:
<matrix_array size="16"> <matrix index="0" mtx_weight="1" node_idx="0"/> <matrix index="1" mtx_weight="1" node_idx="1"/> <matrix index="2" mtx_weight="1" node_idx="2"/> <matrix index="3" mtx_weight="1" node_idx="3"/> <matrix index="4" mtx_weight="1" node_idx="4"/> <matrix index="5" mtx_weight="1" node_idx="5"/> <matrix index="6" mtx_weight="1" node_idx="6"/> <matrix index="7" mtx_weight="1" node_idx="7"/> <matrix index="8" mtx_weight="1" node_idx="8"/> <matrix index="9" mtx_weight="1" node_idx="9"/> <matrix index="10" mtx_weight="1" node_idx="10"/> <matrix index="11" mtx_weight="1" node_idx="11"/> <matrix index="12" mtx_weight="1" node_idx="12"/> <matrix index="13" mtx_weight="1" node_idx="13"/> <matrix index="14" mtx_weight="1" node_idx="14"/> <matrix index="15" mtx_weight="1" node_idx="15"/> </matrix_array>


c) and the node array (at the bottom of the file) should look like this:
<node_array size="16"> <node index="0" name="mario_all_root" kind="mesh" parent="-1" child="1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="0.000000 -0.000000 0.000000" translate="0.0 0.0 0.0" visibility="on" display_size="1" vertex_size="432" polygon_size="296" triangle_size="296"> <display index="0" material="0" polygon="0" priority="0"/> </node> <node index="1" name="skl_root" kind="chain" parent="0" child="2" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="90.000003 -0.000000 90.000003" translate="-0.0 6.144287 -0.473877" visibility="on" display_size="0"/> <node index="2" name="leg_l1" kind="joint" parent="1" child="3" brother_next="5" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-0.000007 -179.999991 0.000000" translate="-1.35376 0.307129 3.537842" visibility="on" display_size="0"/> <node index="3" name="leg_l2" kind="joint" parent="2" child="4" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-179.999978 -0.000009 -0.000014" translate="2.091552 -0.0 0.0" visibility="on" display_size="0"/> <node index="4" name="ankle_l1" kind="joint" parent="3" child="-1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="0.000000 -0.000012 -90.000016" translate="2.008301 -0.0 1e-06" visibility="on" display_size="0"/> <node index="5" name="leg_r1" kind="joint" parent="1" child="6" brother_next="8" brother_prev="2" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-0.000007 -179.999991 0.000000" translate="-1.35376 0.307128 -3.537597" visibility="on" display_size="0"/> <node index="6" name="leg_r2" kind="joint" parent="5" child="7" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-179.999978 -0.000009 -0.000014" translate="2.091308 0.0 0.0" visibility="on" display_size="0"/> <node index="7" name="ankle_r1" kind="joint" parent="6" child="-1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="0.000000 -0.000012 -90.000016" translate="2.008301 -0.0 1e-06" visibility="on" display_size="0"/> <node index="8" name="spin" kind="joint" parent="1" child="9" brother_next="-1" brother_prev="5" draw_mtx="off" billboard="off" scale="1 1 1" rotate="0.000000 -0.000000 0.000000" translate="0.972412 -0.0 -0.0" visibility="on" display_size="0"/> <node index="9" name="arm_l1" kind="joint" parent="8" child="10" brother_next="12" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="179.999991 -89.999989 0.000000" translate="2.949951 -0.032715 4.125" visibility="on" display_size="0"/> <node index="10" name="arm_l2" kind="joint" parent="9" child="11" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-179.999978 -0.000009 0.000024" translate="2.747559 0.0 -1e-06" visibility="on" display_size="0"/> <node index="11" name="wrist_l1" kind="effector" parent="10" child="-1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-0.000010 -0.000007 0.000018" translate="2.250001 0.0 1e-06" visibility="on" display_size="0"/> <node index="12" name="arm_r1" kind="joint" parent="8" child="13" brother_next="15" brother_prev="9" draw_mtx="off" billboard="off" scale="1 1 1" rotate="179.999991 89.999989 0.000000" translate="2.94995 -0.032715 -4.125" visibility="on" display_size="0"/> <node index="13" name="arm_r2" kind="joint" parent="12" child="14" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-179.999978 -0.000022 -0.000024" translate="2.747559 -0.0 0.0" visibility="on" display_size="0"/> <node index="14" name="wrist_r1" kind="effector" parent="13" child="-1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="-0.000010 -0.000004 -0.000018" translate="2.249999 -0.0 0.0" visibility="on" display_size="0"/> <node index="15" name="face_1" kind="effector" parent="8" child="-1" brother_next="-1" brother_prev="-1" draw_mtx="off" billboard="off" scale="1 1 1" rotate="0.000003 -0.000000 0.000003" translate="4.27661 -0.0 -0.0" visibility="on" display_size="0"/> </node_array>


(You don't need to change the scale, rotate or translate data, keep it the same as what was exported)

To create the correct data for the fire/unknown/star palettes, do the following:
a) Go to the tex_palette_array at the top of the file.
b) Change the "color_size" from 256 to 1024.
c) Copy the existing data within the array and paste it at the end of the data (
0000 0000 *copied data goes here* </tex_palette>

OR you can:
a) In blender replace the textures with TGAs of your fire, unused and star textures and export them to separate IMDs one by one.
b) Open the exported IMDs, and copy the data from the tex_palette array from each of the IMDs, and then paste them into the base IMD in order of (fire, unused, star). (make sure color size is 1024)

Once it looks correct, save the file.

(For the small body, you can simply copy the IMD and name it something else, otherwise resize in blender, export and copy the editing from the big body IMD).

Converting to NSBMD
1. Open a command window within the folder that contains your IMDs and g3dcvtr.exe/its files
2. Type in this command: "g3dcvtr *big_body_model*.imd *small_body_model*.imd -s -o *output*.nsbmd"

Replacing the in-game model **MAKE SURE YOU BACKUP THE ORIGINAL FILES**
1. Open your NSMBDS ROM with NSMBe, then go to the "ROM File Browser" tab
2. Go into "root/player" and select "mario_model_LZ.bin" for Mario's body model or "luigi_model_LZ.bin" for Luigi's body model.
3. Replace the file with your NSBMD, and then Compress the file

Test the model out in-game - if it works, awesome!

If the body's textures are broken - then you need to open the body model in NSMBe, export all the textures using "Export all textures + palettes", edit the image in your editor and then reimport using "Import all textures + palettes" and then "Save all".

If it works, then lets move onto the player head & cap!

With the head, follow the exporting process for the body, import it the same way, rig it the same way, convert the textures same way etc

If you don't want the eyes to animate, then you can simply export and convert to NSBMD the same way as the body, and it should work fine. Just replace the:
- head_cap_LZ.bin file for head and cap
- head_nocap_LZ.bin file for head without the cap
- deadhead_LZ file for deadhead
- deadhead_n_LZ file for deadhead w/o cap (this is never used so you don't need to replace it)

Otherwise:
**You need to make sure there are different polygons for the eyes and for the remaining part of the head for your head model or else it will not work.**

Editing in Blender
1. Go to the Material Properties and make sure there are 2 materials (if not press the + button and create 2 NNS materials): the first one for the eyes, second one for the rest of the head - import one of your eye TGAs into the eye material and the head TGA into the head material

Then go ahead and export to IMD.

Editing the IMD
1. In the tex_image_array, it should look like this:
<tex_image_array size="5"> <tex_image index="0" name="mario_eye.1" width="32" height="16" original_width="32" original_height="16" format="palette16" color0_mode="color" palette_name="mario_eye.1_pl" path="C:\Users\\Documents\wario-mod\wario_eye-0.tga"> <bitmap size="128">1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1133 2333 3333 2222 1111 1111 1111 1111 3231 3233 5555 2888 2222 1111 1111 1111 2311 4323 3355 4448 1888 dddd 3333 1113 2111 4372 7635 4446 4444 cd55 332c 1113 3111 7007 8848 4448 4444 dd55 339c eeee 3111 0002 4870 4444 4444 dd55 339c eeee 3111 0722 0000 4487 4444 ad55 0009 ee76 3111 1112 0007 7000 999a 66aa 0000 e700 1111 e111 6731 0000 0000 0000 0000 1700 1111 1111 1111 0077 0000 0000 0000 1170 1111 1111 1111 7111 0000 0000 7000 1117 1111 1111 1111 1111 7721 7667 3377 1111 </bitmap> </tex_image> <tex_image index="1" name="mario_eye.2" width="32" height="16" original_width="32" original_height="16" format="palette16" color0_mode="color" palette_name="mario_eye.2_pl" path="C:\Users\\Documents\wario-mod\wario_eye-0.tga"> <bitmap size="128">1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1133 2333 3333 2222 1111 1111 1111 1111 3231 3233 5555 2888 2222 1111 1111 1111 2311 4323 3355 4448 1888 dddd 3333 1113 2111 4372 7635 4446 4444 cd55 332c 1113 3111 7007 8848 4448 4444 dd55 339c eeee 3111 0002 4870 4444 4444 dd55 339c eeee 3111 0722 0000 4487 4444 ad55 0009 ee76 3111 1112 0007 7000 999a 66aa 0000 e700 1111 e111 6731 0000 0000 0000 0000 1700 1111 1111 1111 0077 0000 0000 0000 1170 1111 1111 1111 7111 0000 0000 7000 1117 1111 1111 1111 1111 7721 7667 3377 1111 </bitmap> </tex_image> <tex_image index="2" name="mario_eye.3" width="32" height="16" original_width="32" original_height="16" format="palette16" color0_mode="color" palette_name="mario_eye.3_pl" path="C:\Users\\Documents\wario-mod\wario_eye-0.tga"> <bitmap size="128">1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1133 2333 3333 2222 1111 1111 1111 1111 3231 3233 5555 2888 2222 1111 1111 1111 2311 4323 3355 4448 1888 dddd 3333 1113 2111 4372 7635 4446 4444 cd55 332c 1113 3111 7007 8848 4448 4444 dd55 339c eeee 3111 0002 4870 4444 4444 dd55 339c eeee 3111 0722 0000 4487 4444 ad55 0009 ee76 3111 1112 0007 7000 999a 66aa 0000 e700 1111 e111 6731 0000 0000 0000 0000 1700 1111 1111 1111 0077 0000 0000 0000 1170 1111 1111 1111 7111 0000 0000 7000 1117 1111 1111 1111 1111 7721 7667 3377 1111 </bitmap> </tex_image> <tex_image index="3" name="mario_eye.4" width="32" height="16" original_width="32" original_height="16" format="palette16" color0_mode="color" palette_name="mario_eye.4_pl" path="C:\Users\\Documents\wario-mod\wario_eye-0.tga"> <bitmap size="128">1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1133 2333 3333 2222 1111 1111 1111 1111 3231 3233 5555 2888 2222 1111 1111 1111 2311 4323 3355 4448 1888 dddd 3333 1113 2111 4372 7635 4446 4444 cd55 332c 1113 3111 7007 8848 4448 4444 dd55 339c eeee 3111 0002 4870 4444 4444 dd55 339c eeee 3111 0722 0000 4487 4444 ad55 0009 ee76 3111 1112 0007 7000 999a 66aa 0000 e700 1111 e111 6731 0000 0000 0000 0000 1700 1111 1111 1111 0077 0000 0000 0000 1170 1111 1111 1111 7111 0000 0000 7000 1117 1111 1111 1111 1111 7721 7667 3377 1111 </bitmap> </tex_image> <tex_image index="4" name="wario_head" width="64" height="64" original_width="64" original_height="64" format="palette256" color0_mode="color" palette_name="wario_head_pl" path="C:\Users\\Documents\wario-mod\wario_head-flip.tga"> <bitmap size="2048">0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0101 0101 0101 0101 0401 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0606 0000 0700 0107 0101 0101 0101 0401 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0900 0a0a 0009 0b00 070b 0101 0101 0101 040c 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0906 0909 0009 0b00 0b0b 070b 0101 0101 040c 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0b00 0d0d 0b0d 0107 0101 0f01 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0010 0000 0000 0000 0000 0000 0000 0000 0000 1111 0000 0011 0b00 0d0d 0d0d 070b 0101 0f12 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 0013 0000 0000 0014 0000 0000 0000 0000 0000 1515 1515 1111 1700 0d0b 0d0d 0b0d 0107 0f12 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 1813 0000 0000 1a19 001b 0000 0000 0000 0000 1715 1d1d 111d 1700 1717 0d0b 0d0d 0107 0f12 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 1f1e 2020 211b 2222 1b23 0000 0000 0000 0000 2411 2525 0024 0100 0101 0b17 0b0b 260d 2727 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 1e1e 2020 281b 2222 1b29 0000 0000 0000 0000 1100 2a2a 0000 1500 0115 1701 0b0b 260d 2727 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 1e1e 2b2b 2821 2822 001b 0000 0000 0000 0000 0000 0000 0000 1100 1111 0101 0b17 260d 2727 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 1e1e 2b1f 2221 2122 001b 0000 0000 0000 0000 0000 0000 0000 0000 1100 2424 1701 2c0d 2727 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2d2d 2f2e 3130 0031 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 0132 3317 3434 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2d2e 352d 3130 0030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3211 3336 3433 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2d35 2e2d 3131 001a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 3334 3633 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2e2f 2d2d 3131 001a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3333 3633 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 3938 3a3a 3c3b 3d3d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3e00 3f3f 2a40 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 3838 3a3a 413b 3d3d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2f00 3f3f 2a2a 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 3838 3a42 413b 3d3d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2f43 403f 4444 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 3839 3a39 3d3b 3d3d 0011 0000 0000 0000 0000 0000 0000 0000 0000 0000 3e00 2f2f 443f 4044 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 4545 4645 4847 0b48 1101 1111 0000 0000 0000 0000 0000 0000 0000 0000 2f40 2f2f 4a49 494a 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 4545 4b45 4847 0b48 0b0b 0101 0000 0000 0000 0000 0000 0000 4c00 4d4c 2f2f 2f2f 0b4e 494a 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 4b4b 4b4b 4747 0b4f 0b0b 0b0b 1717 0015 0000 0000 0000 0000 2f00 2f2f 2f2f 512f 0b0b 494a 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 5252 5252 4f4f 0b4f 0b0b 0b0b 0b0b 170b 2401 0011 0000 0000 2f00 2f2f 2f2f 0c40 0b0b 494a 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 5353 5353 0d0d 0d0d 5454 5454 5454 5454 0707 0707 3232 3232 5521 5555 5656 5757 0d0d 5a59 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 5b5b 5b5b 5c5c 5c5c 5c5c 5c5c 5d5d 5d5d 5e5e 5e5e 5f5f 5f5f 6060 6060 6161 6161 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 625b 6262 5c5c 6363 6564 655c 6666 5d66 675e 6767 5f5f 6767 6068 6060 6969 6169 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 6a6a 6a6a 6363 6b6b 6464 6464 6c6c 666c 6c67 6c6c 6767 6b6b 6868 6868 6969 6969 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6d6d 6e6e 6e6e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2f2f 2f2f 6f6f 2f2f 2f2f 2f2f 2f2f 702f 2f70 2f2f 7171 7171 2f2f 6f6f 2f2f 702f 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 2f2f 2f2f 726f 2f2f 2f2f 2f73 2f2f 722f 2f70 2f2f 7171 7171 2f2f 2f73 2f2f 702f 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 7274 7272 6d6d 7272 7373 7375 7272 6d72 726d 7272 7576 7676 7373 736d 7272 6e72 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 7878 7879 7a7a 7b7b 7c7c 7c7d 7f7e 7f7f 7c7c 7e7c 7d7c 7c7c 7c7c 7c7c 8080 8080 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 7978 7979 7a7a 7a7a 7d7d 7d7d 7d7d 7d7d 7d7d 7d7d 7d7d 7d7d 7a7a 7a7a 8080 8180 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8282 8282 8282 8383 8383 7e7e 7e7e 7e7e 7e7e 8484 8484 8282 8282 8585 8181 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8682 8e8e 8e8e 8e8e 8e8e 8686 8686 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 858e 8181 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8887 8988 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 858e 8a88 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8887 8988 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 858e 8a88 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8887 8988 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 858e 8a88 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8887 8985 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 858e 8a88 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8e8b 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8c8e 8181 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8d8b 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8f 8181 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8d8e 8e8e 8e8e 8f90 8e8e 8f8f 8e8e 8e8e 8f8e 8e8e 918e 8e8e 8e8e 8f8f 8181 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8282 8e8e 8e8e 8e8e 8e8e 8e8e 8f8f 8e8e 8e8e 8f8e 8e8e 8e8e 8e8e 8e8e 8e8e 818c 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8982 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8886 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8982 8e8e 8e8e 8e86 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 8e8e 868e 8e86 8e8e 8686 928e 9393 9393 9393 9695 9696 9393 9393 9393 9393 9393 9393 9393 9393 9393 9393 8985 8989 9786 9782 8c8c 8b8b 8998 8289 9797 8c8c 9797 8c8c 888b 868b 8e86 8e86 998e 9393 9393 9a93 9396 9393 939b 9c93 9393 9393 9393 9393 9c9c 9c9c 9393 9393 8285 8282 8282 8282 8282 8282 8282 8282 8888 8888 9d9d 9d9d 8888 8888 8888 9e88 998e 9393 9a9f 9a9a 9595 9396 9c9c 9b93 93f1 9393 9393 8ef1 a18e 9c93 9393 9393 a3a2 a3a3 a4a4 a4a4 a4a4 a4a4 a4a4 a4a5 a7a6 a7a7 a7a7 a7a7 a7a7 a7a7 a7a7 a8a7 a98e f193 aaaa 83aa abab ac81 aead aeae 939b 9393 af93 b1b0 b2b2 b4b3 9393 9393 b5a3 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b6a6 b7b7 b7b7 b7b7 b7b7 b7b7 b8b8 b9b8 a98e f193 aaaa 83ba 8181 abab 8181 ae81 9393 9393 af93 b1b0 b2b2 b2b2 9393 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b7a6 b7b7 b8b8 b8b8 b8b8 b8b8 b8b8 b9b8 a98e 9393 bcbc 83ba 8181 8181 8181 9cae 9393 93bd af93 b1b0 bebe b2be 93bf 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b7a6 b7b7 b8b8 b8b8 b8b8 b8b8 b8b8 b9b8 a98e 9393 bcbc 83ba 98ac ab98 ae81 9c9c 9b93 93bd af93 b1b0 bebe bebe c2c1 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 83b0 8c8c 7e8c 9cc5 9c9c b4b4 9393 9393 c7c6 c9c8 c9c9 cbb2 9c9c b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 8bb0 8c7e 8e7e 9c9c c5f1 93cc 9393 c693 c7c6 c8c8 cdc9 b2b2 9cae b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 b093 8b8b 8e8c 8cce f19c cfcf 9393 9393 c693 c7d0 c8c8 cdc9 b2b2 9cae b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 b093 8b83 8e8e 7ece c5f1 c5cf 9b93 939b c693 c7d0 cdc1 cdc9 cbb2 9cae b5bb b5b5 d2b5 b5b5 d4b5 b5d2 b5d2 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 8383 8686 d5d5 d6f1 f1d7 d693 93c6 c693 d8c6 d9d9 cdcd dbda 9393 b5bb b5b5 dcd4 b5d2 d4d4 d4d4 b5d2 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 83dd d5d5 ded5 f193 93f1 9393 9393 c693 d8c6 dfdf cddf dbda 9393 b5bb d4d2 d2d2 d4dc b5d4 d4b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 e093 dede 9393 9393 9393 9393 9393 c693 e1c6 e2e2 cddf e3da 9393 b5bb d2d4 b5b5 dcd4 b5b5 b5b5 b5b5 b5b5 c3a6 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b9c4 a98e 9393 9393 9393 9393 9393 9393 9393 9393 9393 c693 e1c6 dfdf cdcd 93da 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 e7e6 e7e7 e7e7 e7e7 e7e7 e7e7 e7e7 e8e7 a98e 9393 9393 9393 9393 9393 9393 9393 9393 9393 bc93 eae9 ebeb ebeb edec 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 eee6 eeee efef efef efef efef eeee f0ee a98e 9393 9393 9393 9393 9393 f193 9393 9393 9393 9393 eae9 f2f2 f3f2 ed9b 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 eef4 eeee eeee eeee eeee eeee eeee f0ee a98e 9393 9393 9393 9393 9393 9fbd 9393 9393 9393 9393 bcbc bdbd bdbd 93ed 9393 b5bb b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 eef4 eeee eeee eeee eeee eeee eeee f0ee a98e 9393 9393 9393 9393 9393 9fbd 9393 9393 9393 9393 9393 bdbd bdbd 9393 9393 </bitmap> </tex_image> </tex_image_array>


In order to get the 3 other sets of data for the eye textures, simply export 3 more separate heads from blender with the following type of textures:

First one should be eye(s) wide open
Second one should be eye(s) half open
Third one should be eye(s) closed
Fourth is death eye(s), but the game doesn't seem to use this as it already has the deadhead, so you can create dead eyes or copy the data from one of the other eyes.

The tex_palette and material arrays must also look like this:
<tex_palette_array size="5"> <tex_palette index="0" name="mario_eye.1_pl" color_size="16">0000 3259 1dd5 2e38 77bd 6f5a 0843 150c 56b5 460f 41ac 3658 72cc 5273 325a 4eda </tex_palette> <tex_palette index="1" name="mario_eye.2_pl" color_size="16">0000 3259 1dd5 2e38 77bd 6f5a 0843 150c 56b5 460f 41ac 3658 72cc 5273 325a 4eda </tex_palette> <tex_palette index="2" name="mario_eye.3_pl" color_size="16">0000 3259 1dd5 2e38 77bd 6f5a 0843 150c 56b5 460f 41ac 3658 72cc 5273 325a 4eda </tex_palette> <tex_palette index="3" name="mario_eye.4_pl" color_size="16">0000 3259 1dd5 2e38 77bd 6f5a 0843 150c 56b5 460f 41ac 3658 72cc 5273 325a 4eda </tex_palette> <tex_palette index="4" name="wario_head_pl" color_size="256">02fd 027b 027b 025b 62f8 1110 071d 023a 02fd 131d 173d 0219 169b 0218 025b 62f7 39b0 02dd 32da 5109 2a12 029c 029c 025a 1a36 4d2a 2214 031d 025a 027a 5cc7 3d6e 22bb 4277 60a5 0eba 02bd 0efd 0a39 5ef7 416d 0aba 0afd 6b7c 3eba 58a6 618c 77bd 61ad 5ca5 02bc 6f9d 471a 6ed6 06fd 2214 675a 6673 4c64 5484 5d4b 229a 333d 73bd 433d 6610 4d8b 577d 1edc 5694 4484 4dae 56b5 571a 1659 3def 231d 637d 1abb 21f2 0219 3afc 2212 01f8 01f7 6f9c 4b3c 0a3a 0218 4ab8 6719 106c 0c4a 0c4b 104b 186a 186c 146b 292c 2d6d 31ad 20cc 2d4d 2d4c 35ad 318e 35ce 39ce 39ee 4e73 4e74 737c 6f7b 739c 673a 6318 56b6 4610 6739 4210 0889 0469 0047 0888 0867 0046 048a 0467 0068 08ac 08ad 08ab 04ab 08cd 10f0 14ad 04ac 0cf0 0cad 0cce 0cef 1531 1111 1131 1132 1532 5a78 3259 3239 21d4 2a17 08ce 0ccf 3a7a 1dd4 2618 325a 048c 0ccd 2217 2a18 21d5 0c45 0403 0003 0002 3531 3955 3d96 367a 11b5 048b 10ee 1971 21f6 327a 2617 004b 000a 088f 21f7 0000 55dc 49ba 45b9 49da 0910 0823 2a39 2e39 0007 046d 2618 0009 1552 49bb 4599 1dd6 15d6 0049 0004 0008 000a 048e 19b5 002b 0ced 1153 0974 0000 0421 0000 0842 0488 1df7 15b7 004d 000d 002f 0cf2 0c63 19b2 1d92 0050 2616 00b2 0071 1d94 0000 0000 30f0 4178 4598 15b5 006e 002c 08f2 2e5a 3d35 3d36 4156 2a38 0090 0d12 28cf 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 </tex_palette> </tex_palette_array> <material_array size="2"> <material index="0" name="mat_eye" light0="on" light1="off" light2="off" light3="off" face="front" alpha="31" wire_mode="off" polygon_mode="modulate" polygon_id="0" fog_flag="off" depth_test_decal="off" translucent_update_depth="off" render_1_pixel="off" far_clipping="off" diffuse="31 31 31" ambient="31 31 31" specular="0 0 0" emission="0 0 0" shininess_table_flag="off" tex_image_idx="0" tex_palette_idx="0" tex_tiling="repeat repeat" tex_scale="1.0 1.0" tex_rotate="0.0" tex_translate="0.0 0.0" tex_gen_mode="none"/> <material index="1" name="mat_head" light0="on" light1="off" light2="off" light3="off" face="front" alpha="31" wire_mode="off" polygon_mode="modulate" polygon_id="0" fog_flag="off" depth_test_decal="off" translucent_update_depth="off" render_1_pixel="off" far_clipping="off" diffuse="31 31 31" ambient="31 31 31" specular="0 0 0" emission="0 0 0" shininess_table_flag="off" tex_image_idx="4" tex_palette_idx="4" tex_tiling="repeat repeat" tex_scale="1.0 1.0" tex_rotate="0.0" tex_translate="0.0 0.0" tex_gen_mode="none"/> </material_array>


**THE ONLY NAMES THAT MUST BE THE SAME ARE THE "mario_eye.*num*" NAMES**

For the head to have the correct palette, it follows the same process as the body, except color_size should be 512, head texture should have 256 colors when creating the texture with TGAConv.

Once it looks correct, save, export etc (redo if you want a proper small head) and import into the game

If all looks correct ingame, congrats, you made your first custom Mario/Luigi model!

Again, any issues and you can contact me on Discord at jpr#1548 - thanks for reading and enjoy!

And here's the Wario mod!
Posted on 02-02-22, 07:01 am
Ninji
MammaMia Team Member

Karma: 615
Posts: 185/232
Since: 04-26-19
glad that someone finally managed to do it. you did a really great job, keep it up
_________________________
Youtube - GitHub - NSMB Central
Posted on 02-02-22, 07:50 am
Fire Snake
Eugene

Karma: 3805
Posts: 1098/1156
Since: 11-29-11
A-ma-zing job! ?
Thank you for sharing this!
Posted on 02-05-22, 12:12 am
Paragoomba
formerly subair

Karma: 271
Posts: 52/73
Since: 03-04-19
Oh wow someone finally managed to do it. Well done!
Pages: 1