As always, thank you for supporting The Cutting Room Floor on Patreon!
Development:Super Mario 64 (Nintendo 64)/Models
This is a sub-page of Development:Super Mario 64 (Nintendo 64).
To do:
|
Contents
- 1 Luigi_Near_Body
- 2 Luigi_Near_Poly
- 3 Luigi_Mid_Body
- 4 Luigi_Far_Poly
- 5 RCP_TitleLuigiHierarchy
- 6 Mario_Old
- 7 Rabbit
- 8 mario_title
- 9 Killer
- 10 Walker
- 11 Wallman
- 12 Ichiro
- 13 Dosun
- 14 Early Title Screen Name
- 15 Otos
- 16 Yoshi
- 17 omurobo
- 18 carry_boy
- 19 Bom
- 20 Peach
- 21 Nokonoko
- 22 Dokan
- 23 Ping
- 24 Hopper
- 25 Mario Cut-out
- 26 Autodoor
- 27 Chair
- 28 Animed
- 29 Hana
- 30 Vanime
- 31 mariotitle_cube
- 32 bom_king
- 33 Furafura
- 34 Bat
- 35 Snow_man
- 36 Wanwan
- 37 Shark
Luigi_Near_Body
Models for Luigi's head and body parts were discovered alongside textures for his hat emblem, mustache, and sideburns in sm64/shape/Player/Luigi. The finished model shown below is a reconstruction of Luigi using what was found, incorporating additional textures from Mario's model (specifically, his eyes and overall buttons), based on "luigi.c" which indicates textures were reused. luigi.c is dated June 20th 1995, which indicates that the model is based on an older version of Mario_Old. This model has a few breaks such as a broken hand, bad collision (He floats in some animations), along with the shoulders being too high.
Models | Raw model | Sideburns | Hat emblem | Mustache | Reconstructed model | In-game modification |
---|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
luigi.c
#include "../headers.h" extern unsigned short meye1_txt[]; extern unsigned short meye2_txt[]; extern unsigned short meye3_txt[]; extern unsigned short meye4_txt[]; extern unsigned short meye5_txt[]; extern unsigned short m_button_txt[]; #define SCALE 4 #define ShapeColor_luigi(R,G,B) {{R/SCALE ,G/SCALE ,B/SCALE ,0 ,R/SCALE ,G/SCALE ,B/SCALE ,0 },{ R, G, B, 0, R, G, B, 0, LIGHT_X, LIGHT_Y, LIGHT_Z, 0} } #include "luigi/luigi_near_poly.sou" #include "luigi/luigi_near_body.sou" #include "luigi/luigi_near_head.sou" #include "luigi/luigi_mid_poly.sou" #include "luigi/luigi_mid_body.sou" #include "luigi/luigi_far_poly.sou" #include "luigi/luigi_swim_hand.sou" static Hierarchy RCP_TitleLuigiHierarchy[] = { hmsJoint(RM_SURF, NULL, 0, 261-189, 0) /* chn14_2_1 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near14, 0, 0, 0) /* m_waist1_3_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near_body, 33, 0, 0) /* m_body1_2 */ hmsBegin() hmsJoint(RM_SURF, NULL, 91, 0, 0) /* m_head2 */ hmsBegin() hmsSelect(1, CtrlMarioEye) /* for the eye animation */ hmsBegin() hmsGfx(RM_SURF, RCP_luigi_head1) hmsGfx(RM_SURF, RCP_luigi_head2) hmsGfx(RM_SURF, RCP_luigi_head3) hmsGfx(RM_SURF, RCP_luigi_head4) hmsGfx(RM_SURF, RCP_luigi_head5) hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 63, -10, 65) /* chn6 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near2, 0, 0, 0) /* m_larmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near1, 63, 0, 0) /* m_larmB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near0, 71, 0, 0) /* m_lhamd1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 60, -10, -63) /* chn10 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near5, 0, 0, 0) /* m_rarmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near4, 62, 0, 0) /* m_rarmB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near3, 66, 0, 0) /* m_rhand1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, 39) /* chn15 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near11, 0, 0, 0) /* m_llegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near10, 98, 0, 0) /* m_llegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near9, 81, 0, 0) /* m_lfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, -40) /* chn17 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near8, 0, 0, 0) /* m_rlegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near7, 98, 0, 0) /* m_rlegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near6, 81, 0, 0) /* m_rfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsReturn() }; static Hierarchy RCP_NearLuigiHierarchy[] = { hmsJoint(RM_SURF, NULL, 0, 261-189, 0) /* chn14_2_1 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near14, 0, 0, 0) /* m_waist1_3_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near_body, 33, 0, 0) /* m_body1_2 */ hmsBegin() hmsJoint(RM_SURF, NULL, 91, 0, 0) /* m_head2 */ hmsBegin() hmsCProg(1, CtrlMarioHead) hmsRotate(0, 0, 0) /* for control by program */ hmsBegin() hmsSelect(1, CtrlMarioEye) /* for the eye animation */ hmsBegin() hmsGfx(RM_SURF, RCP_luigi_head1) hmsGfx(RM_SURF, RCP_luigi_head2) hmsGfx(RM_SURF, RCP_luigi_head3) hmsGfx(RM_SURF, RCP_luigi_head4) hmsGfx(RM_SURF, RCP_luigi_head5) hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 63, -10, 65) /* chn6 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near2, 0, 0, 0) /* m_larmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near1, 63, 0, 0) /* m_larmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near0, 71, 0, 0) /* m_lhamd1_2 */ hmsJoint(RM_SURF, RCP_swim_hand_l, 71, 0, 0) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 60, -10, -63) /* chn10 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near5, 0, 0, 0) /* m_rarmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near4, 62, 0, 0) /* m_rarmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near3, 66, 0, 0) /* m_rhand1_2 */ hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsJoint(RM_SURF, RCP_swim_hand_r, 66, 0, 0) hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, 39) /* chn15 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near11, 0, 0, 0) /* m_llegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near10, 98, 0, 0) /* m_llegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near9, 81, 0, 0) /* m_lfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, -40) /* chn17 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near8, 0, 0, 0) /* m_rlegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near7, 98, 0, 0) /* m_rlegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_near6, 81, 0, 0) /* m_rfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsReturn() }; static Hierarchy RCP_MidLuigiHierarchy[] = { hmsJoint(RM_SURF, NULL, 0, 261-189, 0) /* chn14_2_1 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid14, 0, 0, 0) /* m_waist1_3_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid_body, 33, 0, 0) /* m_body1_2 */ hmsBegin() hmsJoint(RM_SURF, NULL, 91, 0, 0) /* m_head2 */ hmsBegin() hmsCProg(1, CtrlMarioHead) hmsRotate(0, 0, 0) /* for control by program */ hmsBegin() hmsSelect(1, CtrlMarioEye) /* for the eye animation */ hmsBegin() hmsGfx(RM_SURF, RCP_luigi_head1) hmsGfx(RM_SURF, RCP_luigi_head2) hmsGfx(RM_SURF, RCP_luigi_head3) hmsGfx(RM_SURF, RCP_luigi_head4) hmsGfx(RM_SURF, RCP_luigi_head5) hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 63, -10, 65) /* chn6 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid2, 0, 0, 0) /* m_larmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid1, 63, 0, 0) /* m_larmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid0 , 71, 0, 0) /* m_lhamd1_2 */ hmsJoint(RM_SURF, RCP_swim_hand_l, 71, 0, 0) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 60, -10, -63) /* chn10 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid5, 0, 0, 0) /* m_rarmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid4, 62, 0, 0) /* m_rarmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid3 , 66, 0, 0) /* m_rhand1_2 */ hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsJoint(RM_SURF, RCP_swim_hand_r, 66, 0, 0) hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, 39) /* chn15 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid11, 0, 0, 0) /* m_llegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid10, 98, 0, 0) /* m_llegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid9, 81, 0, 0) /* m_lfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, -40) /* chn17 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid8, 0, 0, 0) /* m_rlegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid7, 98, 0, 0) /* m_rlegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_mid6, 81, 0, 0) /* m_rfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsReturn() }; static Hierarchy RCP_FarLuigiHierarchy[] = { hmsJoint(RM_SURF, NULL, 0, 261-189, 0) /* chn14_2_1 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far14, 0, 0, 0) /* m_waist1_3_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far13, 33, 0, 0) /* m_body1_2 */ hmsBegin() hmsJoint(RM_SURF, NULL, 91, 0, 0) /* m_head2 */ hmsBegin() hmsCProg(1, CtrlMarioHead) hmsRotate(0, 0, 0) /* for control by program */ hmsBegin() hmsGfx(RM_SURF, RCP_luigi_far12) hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 63, -10, 65) /* chn6 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far2, 0, 0, 0) /* m_larmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far1, 63, 0, 0) /* m_larmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far0 , 71, 0, 0) /* m_lhamd1_2 */ hmsJoint(RM_SURF, RCP_swim_hand_l, 71, 0, 0) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, 60, -10, -63) /* chn10 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far5, 0, 0, 0) /* m_rarmA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far4, 62, 0, 0) /* m_rarmB1_2 */ hmsBegin() hmsSelect(1, CtrlMarioHand) hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far3 , 66, 0, 0) /* m_rhand1_2 */ hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsJoint(RM_SURF, RCP_swim_hand_r, 66, 0, 0) hmsBegin() hmsSucker(0,0,0, 1,CtrlMarioTaking) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, 39) /* chn15 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far11, 0, 0, 0) /* m_llegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far10, 98, 0, 0) /* m_llegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far9, 81, 0, 0) /* m_lfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsJoint(RM_SURF, NULL, -34, -9, -40) /* chn17 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far8, 0, 0, 0) /* m_rlegA1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far7, 98, 0, 0) /* m_rlegB1_2 */ hmsBegin() hmsJoint(RM_SURF, RCP_luigi_far6, 81, 0, 0) /* m_rfoot1_2 */ hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsReturn() }; Hierarchy RCP_LuigiHierarchy[] = { hmsShadow(100, 180, 99) hmsBegin() hmsScale(0.25f) hmsBegin() hmsSelect(1, CtrlMarioLOD) hmsBegin() hmsCall(RCP_NearLuigiHierarchy) hmsGroup() hmsBegin() hmsLOD(-2048,600) hmsBegin() hmsCall(RCP_NearLuigiHierarchy) hmsEnd() hmsLOD(600,1600) hmsBegin() hmsCall(RCP_MidLuigiHierarchy) hmsEnd() hmsLOD(1600,32767) hmsBegin() hmsCall(RCP_FarLuigiHierarchy) hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsEnd() hmsExit() }; Hierarchy RCP_TitleLuigi[] = { hmsScale(0.25f) hmsBegin() hmsCall(RCP_TitleLuigiHierarchy) hmsEnd() hmsExit() };
Luigi_Near_Poly
…Another Luigi model, located in sm64/shape/Player/Luigi. He has a darker skin tone, doesn't have any textures, and his mustache is vertex-painted onto the model (same with the buttons on his overalls). The model seems to be based on the Mario model used for the peace sign animation used in the 1995 B-Roll footage. This means that the low poly models of Mario had actually 2 more, But it was changed to only being one possibly because of the game’s limitations.
Luigi_Mid_Body
To do: I have to retrieve a few more screenshots such as blender view models, and pics of him with beta shading and maybe one with his broken pieces being fixed. I also need to check for any mistakes in the future. |
A Luigi model located in sm64/shape/Player/Luigi. This model is a model intended for when Luigi is at a mid-way distance from the camera. This model uses the same kind of shading and color scheme that high poly Luigi uses. This model has several breaks such as an enlarged glove, and thigh.
Luigi_Far_Poly
To do: Try to import the model into the game. |
A textureless lower-poly Luigi model, which was intended to be used when the camera is far away from him. Due to his appearance being somewhat broken, most often call him a "Low poly Mario re-color" however, when the model is properly fixed and reconstructed, it is discovered that the model is a little thinner than Mario, with the only re-use of low poly Mario's model being his head. His bottom torso looks like it's missing due to the model clipping into the top torso. Like most of Luigis models, this model has several breaks such as the left forearm appearing to be colored red instead of green, as well as having some parts either floating or clipping into the model due to outdated display lists. Like Luigi_Near_Poly, he uses an older color palette that predates the Shoshinkai 95' build. The bottom right arm is not green and it’s actually just red.
RCP_TitleLuigiHierarchy
A different Hierarchy for Luigi that makes him look bigger. It is thought that this Hierarchy could have been used for an old version of the title screen, due to the name following the title model format. Though it is unknown what this model is actually used for.
Mario_Old
To do: The images need to be replaced, They need to not be screenshots from the game. |
Mario_old is an early version of Mario found in sm64/shape/Player/Mario_Old. This model can be seen in early builds of Super Mario 64, like the Shoshinkai '95 demo. The biggest difference found in this model is the lower-poly head and hair. Based on the timeframe and the file date of December 7th, 1995 (final: December 16th, 1995), it was likely created as a backup before cap variants and capless variants were added to the model. Here are a few notes on the model: The nose is hexagonal, the ears are smaller, the sideburn and mustache UV is messed up (one sideburn is smaller than the other), the cap brim is shortened, and the back hair has 2 colors. There is also a lighting setting meant for this model (as well as Luigi's).
Mario_Old (Early Lighting) | Mario_Old | Final (With hat) | Final (Hatless) |
---|---|---|---|
(Images: NeoGio64)
Sideburn |
---|
![]() |
Rabbit
Directory: "sm64/shape/keep/OLD/etc/rabbit.sou"
rabbit.sou | Final |
---|---|
![]() |
![]() |
Animations | ||||
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
An early version of MIPS, labeled in the files as rabbit.sou. The most notable feature of this early model is that it was originally pink rather than the yellow seen in the final game. Interestingly, it has a slightly different skeleton setup, as the final animations do not play correctly on the early model. Pink rabbits were later used in the DS remake.
mario_title
Directory: "sm64/sm_logo/multigen/newmario/ninten/objects/mario_title/"
An older rendition of the title screen seen during E3 1996. It references textures that no longer exist. It is unknown what textures where used, or it might be referencing textures the wrong way because of a coding error in the model’s code.
Killer
To do: Re-do the screenshot, because this one is in the wrong resolution. |
Directory: "sm64/shape/keep/OLD/etc/killer.sou"
killer.sou was seen in the B-roll footage. This model is mostly the same as the final game, with the only exception being that it lacks a shadow.
Walker
Directories: "sm64/shape/EnemyTest/walker.shape" & "sm64/shape/EnemyTest/old/walker.sou"
walker.sou | walker.sou (Fixed Vertex Color) | Final |
---|---|---|
![]() |
![]() |
![]() |
walker.sou is the Scuttlebug from the Spring 1996 build seen in E3 footage. Like the footage, it has strangely colored eyes, due to the fact that it calls for an invalid vertex color. Three of the legs's vertexes are only visible if looking at the back of the model.
Wallman
Directory: "sm64/shape/keep/OLD/etc/wallman.sou"
wallman.shape | Final |
---|---|
![]() |
![]() |
wallman.sou is the early version of the Whomp seen in the Shoshinkai '95 demo. This version of Whomp is internally referred to as wallman, while the final Whomp is called ichiro.
Ichiro
Directory: "sm64/shape/enemy2_e/wallman/"
ichiro.sou is a very early version of the final Whomp model. The model somewhat resembles Wallman, but without the textures.
Dosun
Directory: "sm64/shape/EnemyTest/old/dosun.sou"
dosun.sou is an early version of the Thwomp seen in the Shoshinkai '95 demo and the 96 B-Roll build.
dosun.sou | Final |
---|---|
![]() |
![]() |
Early Title Screen Name
Directory: "sm64/map/title/shapes/"
sm64/map/title/shapes/ contains models related to an older design for the title screen. These models were later reused for the debug level select screen; however, ULTRA is not referenced at all in the final level select screen.
Otos
Directory: "sm64/shape/keep/OLD/etc/otos.sou"
otos.sou is an early version of the Bully model, with one horn instead of two, making it look almost identical to Chill Bully. It has a different knockback animation compared to the Chill Bully and the final model. This same type of bully was seen during Shoshinkai 95' except it was the small varient.
Yoshi
To do:
|
Directory: "sm64/shape/EnemyTest/old/yoshi.sou"
yoshi.sou (Early Yoshi Model) | Final Yoshi Model |
---|---|
![]() |
![]() |
Animations | |
---|---|
![]() |
![]() |
yoshi.sou is an early version of the Yoshi model. This model is pretty much the same as the final version except that this model is textureless and has somewhat higher polygons, especially on the bottoms of the shoes. It has a few animations, being the base data, animation setup, running, and being idle.
omurobo
Directory: "sm64/map/Stage32/omurobo.shape"
omurobo.shape | Final |
---|---|
![]() |
![]() |
omurobo.shape is an early, textureless version of Heave-Ho. It has a flag on its back instead of a wind-up key, and is a slightly different shape compared to the final model. The filename for this early version is a portmanteau of "omurice" (a type of Japanese omelet) and "robot," playing off of its appearance.
carry_boy
Directory: "sm64/shape/basic_enemy/carryboy/carry_boy.sou"
carry_boy.sou | Final |
---|---|
carry_boy.sou is an unused version of Chuckya. Like Heave-Ho, it is textureless and has a yellow body, but its body and hands are also rendered with polygons instead of billboards. The sphere on its head is purple instead of red. (Hey, that rhymed! Ahem…)
Bom
To do:
|
Directory: "sm64/shape/keep/OLD/etc/bom.sou"
bom.sou | bom.sou (2D body) | Final |
---|---|---|
![]() |
![]() |
![]() |
bom.sou is an early version of the Bob-omb. It lacks eyes and can switch between using a 3D Ball, or a 2D Ball in the header. Animations are completely different, and animations for being held, and exploding exist.
Peach
Directory: "sm64/shape/EnemyTest/old/peach.sou"
peach.sou | Final |
---|---|
![]() |
![]() |
Walking Animation | Waving Animation |
---|---|
peach.sou is a textureless early model of Peach. Unlike in the final game, she has legs, as well as a visible red belt around her waist. But the legs were scrapped cause you wouldn’t actually see it in-game and or obscured in Peach’s dress. There are only two animations available in this code, one where she walks and the other one where she is waving to something, persumably to the camera.
The similar thing with the legs also exist in the DS remake.
Nokonoko
Directory: "sm64/shape/EnemyTest/old/nokonoko.sou"
nokonoko.sou | Final |
---|---|
![]() |
![]() |
nokonoko.sou is an early version of the Koopa Troopa model, dated June 16th, 1995. The biggest difference is the shell. The shell, shoes and head can be found in the final game's data.
Dokan
Directory: "sm64/shape/keep/OLD/unused/dokan.sou"
dokan.sou is an early version of the pipe that Mario comes out at the beginning of the game. This shape is referenced in an outdated model list file dated May 11th, 1995, making this one of the oldest leftovers in the source code.
Ping
To do: Add comparison image please. |
Directory: "sm64/shape/keep/OLD/etc/ping.sou"
ping.sou is an early version of the penguin that can be seen in this Shoshinkai 95 footage. This penguin is very different from its final version, as both its head and body have different shapes. A similar-looking head can be found in the final version.
Weirdly, this early design seems to have been used as reference for the odd-looking penguins used in Kellogg's 1996 Frosted Mini-Wheats promotion.
Hopper
Directory: "sm64/shape/EnemyTest/old/hopper.sou"
Unused Lighting | Transparent in-game model | Hopping Animation |
---|---|---|
![]() |
![]() |
![]() |
hopper.sou seems to be a grasshopper enemy. Not much is known about Hopper, but it does have one animation and an empty path file associated with it.
Mario Cut-out
Seems to be a Mario head cut-out, likely meant for an early version of the title screen, due to the name and folder it's in. This uses an early version of the GBI of the N64, but it's much easier to convert to a usable format. The normals in the model are broken.
Directory: "sm64/map/title/shapes/title_face.sou"
Autodoor
Directory: "sm64/shape/EnemyTest/old/autodoor.sou"
The model appears to be a cuboid with a cyan face, and the rest are red. Also contains a duplicated coin texture, used in a commented-out display list (using #if 0's). Based on its appearance and name, it's likely an early version of the star doors. The default model:
The commented-out display list:
Chair
To do:
|
Directory: "sm64/shape/EnemyTest/old/chair.sou"
A vertex-painted version of the chair seen in Big Boo's Haunt.
Animed
Directory: "sm64/shape/enemy2_e/goal_flag/animed.sou"
animed.sou is an early version of the goal flag from the Koopa the Quick races. Interestingly animation source files are intact for this model.
Hana
To do:
|
Directory: "sm64/shape/EnemyTest/old/hana.sou"
Unpatched | Patched vertex color | Walk Animation | Final version Wiggler |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
This is an early version of the Wiggler, found in Tiny Huge Island. It has one animation, which is the walk animation. It also has 3D body parts, while the final Wiggler has 2D body parts and separated all the head and bodies.
Vanime
Directory: "sm64/shape/keep/OLD/unused/vanime.sou"
This is a very large red square of a currently unknown purpose.
mariotitle_cube
Directory: "sm64/map/title/shapes/mariotitle_cube.sou"
It's just a big square. Used as a test model for testing the title screen animation.
It’s colors change when viewed from a distance. Possibly for testing color change shading.
bom_king
Directory: "sm64/shape/enemy1_c/bom_king/bom_king.sou"
bom_king.sou | bom_king.sou (Fixed vertex color) | Final |
---|---|---|
![]() |
![]() |
![]() |
bom_king.sou is an early version of the Big Bob-omb seen in Bob-omb Battlefield. At this point, he is textureless, has less animations, bigger eyes, and is rendered with polygons instead of billboards
Furafura
Directory: "sm64/shape/enemy1_g/furafura/furafura.sou"
furafura.sou | Final |
---|---|
![]() |
![]() |
furafura.sou is an early version of the Spindrift. Its model is identical to the final except for a 3D mouth (that is happy) being present and it being rendered with polygons instead of billboards. It also lacks eyes. Interestingly a more complete leaf and smiling mouth are hidden within the final models transparent pixels.
Bat
Directory: "sm64/shape/enemy2_h/bat/bat.sou"
bat.sou | Final version Swooper |
---|---|
![]() |
![]() |
bat.sou is an early version of the Swooper. Its model is identical to the final except for it being rendered with polygons instead of billboards and having slightly different vertexes.
Snow_man
Directory: "sm64/shape/enemy1_g/snow_man/snow_man.sou"
Unpatched | Patched vertex color | Final version Mr. Blizzard |
---|---|---|
![]() |
![]() |
![]() |
snow_man.sou is an early version of the Mr. Blizzard. His model is identical to the final except for it being rendered with polygons instead of billboards and notably having a blue mitten.
Wanwan
Directory: "sm64/shape/enemy2_e/wanwan/wanwan.sou"
Unpatched | Patched vertex color | Final Version Chain Chomp |
---|---|---|
![]() |
![]() |
![]() |
wanwan.sou is an early version of the Chain Chomp seen in Bob-omb Battlefield. Its model is identical to the final, Except for it being rendered with polygons instead of billboards. It also has vertex eyes that not only are just orange squares with black lighting, but also are closer to the body.
Shark
Directory: "sm64/shape/keep/OLD/etc/shark.sou"
shark.sou | Final |
---|---|
![]() |
![]() |
shark.sou is an early version of Sushi as seen in the 1995 Shoshinkai version. Its model is much darker and has white lines on its top. It also contains 7 textures instead of the final 3.