超级马里奥64(任天堂64)
超级马里奥64 |
---|
开发者: Nintendo
|
超级马里奥64是一款广受好评的模拟水管工的3D主机游戏,是任天堂64的三个同步发行游戏之一。在本作中,马里奥的冒险剧情扩展到了3D的宇宙之中,蘑菇王国的面貌也焕然一新。
The game is also notable for the sheer level to which it's been dissected by fans, to the point where 2020 saw the game get successfully decompiled by dataminers and unofficially ported to PCs. The same year, its partial original source code was leaked, leading to the discovery of early Luigi models and textures. L was real all along.
A Nintendo DS remake was released as a DS launch title in 2004, and a slightly updated version was released on the Nintendo Switch as part of the Super Mario 3D All-Stars collection on September 18th, 2020.
To do:
|
Contents
调试数据
调试数据 一些遗留在游戏中用于监测、调试游戏的数据。 |
Unused Objects Boo Keys, trampolines, early stars, and Yoshi eggs, oh my! |
Regional and Version Differences Jolly Roger Bay's original painting was too awesome for international players (until the DS remake came along, anyway). |
Unused Textures Early, leftover, and just plain unused textures. |
Unused Animations
The names are from sm64/data/Anime/aaa in the leaked source code.
Mario
Mario has a total of 209 animations, indexed from 0 to 208. Some of these are unused in the game, documented below.
To do: Rip the animations in better quality. |
HatWaitEnd
File Date: December 26, 1995 Animation #56. This unused animation appears to be Mario putting on his hat faster than normal.
JumpStep3
File Date: August 25, 1995 Animation #81. This unused animation appears to be Mario transitioning from freefall to a forward spin appears to be an early triple jump according to the name.
LandBoard
File Date: December 26, 1995 Animation #84. According to the iQue build's source code, It would of been used when landing from a jump on a Koopa shell.
OshinWait1, OshinWait2, OshinWait3
File Dates: February 6, 1996
Animations #98, #99, #100. "Oshin" translates to "nausea". According to the source code, it would have been related to an environmental effect, possibly the gas in Hazy Maze Cave. An animation called OshinWalk also exists in the code.
Running, TurnCont
File Date: July 18, 1995 Left: Animation #114. This is the normal running animation. Right: Animation #115. A duplicate running animation that appears to be identical to the normal running animation. According to the name, this appears to be a placeholder for when Mario circles around or when Mario is turning around quickly as it does not appear to have a file associated. TurnCont likely means "Turning Continuously" or "Turning Control".
Slipping, Slip
Slipping File Date: December 19, 1995 Slip File Date: March 18, 1996
Left: Animation #145. This is the normal sitting animation. Right: Animation #142. This unused animation appears to be Mario sitting motionless. It appears to be a duplicate of SlideEnd, but maybe to save on space? ...Perhaps this was the original sitting animation, before they decided to have Mario move his arms to make the animation more visually interesting when sliding. This animation can be seen in the Shoshinkai 1995 footage.
UJumping, JumpBack
UJumping File Date: December 19, 1995 JumpBack File Date: August 23, 1995 Left: Animation #191. This is the normal sideflip animation. Right: Animation #73. According to the source code it would've been used for side flipping.
Bully
To do: Find offset for how to load in the regular non-extended US-version. |
The bullies have an unused animation for kicking. A video showing this animation can be seen here. To view this in-game, replace the value in the extended US-version offset 0x882956 with 42A4. The internal name of this animation is called BackDown.
MIPS
To do: Find offset for how to load in the regular non-extended US-version. |
In an official strategy guide interview, producer/director Shigeru Miyamoto revealed that "Mario was able to throw the rabbit" at one point during development. There is an unused animation that appears to have MIPS bounce on the ground while recovering from a fall, likely a result from being thrown. A video showing this animation can be seen here.
To view this in-game, replace the value in the extended US-version offset 0xA4C1E1 with 013338. Interestingly code still exists for MIPS to trigger this if he was thrown. The only way to see this without hacks is if you use glitches to bring MIPS into the water-draining room.
void bhv_mips_thrown(void) { obj_enable_rendering_2(); o->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE; o->oHeldState = HELD_FREE; o->oFlags &= ~OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW; SetObjAnimation(2); obj_become_tangible(); o->oForwardVel = 25.0f; o->oVelY = 20.0f; o->oAction = MIPS_ACT_FALL_DOWN; }
Piranha Plant
To do: Replace the sleeping animation with this, instead of the attacking animation. |
This plant has an unused animation that is similar to the sleeping animation seen in footage from Nintendo Shoshinkai 1995. It features the plant showing its teeth as it sleeps, although differs from the Shoshinkai demo since Piranha Plant occasionally bobs its head like it is having a sleep reflex. The internal name of this animation is called sleep_tmp. A video showing this animation can be seen here. To view this in-game, replace the value at US-version offset 0x1D5DF9 with 01AAE4.
Unused Sleeping with Teeth | Nintendo Shoshinkai 1995 |
---|---|
![]() |
Ukiki
The monkey has an unused animation of falling or tackling. A video showing this animation can be seen here. To view this in-game, replace the value at US-version offset 0x15FDE0 with EACC to substitute the head-bobbing animation with this.
Unused Level Effects
This page or section needs more images. There's a whole lotta words here, but not enough pictures. Please fix this. |
To do: Get images of these in-game. They do in fact exist according to the decomp. |
Blizzard
A blizzard can be triggered in a level via the "Enviroment Effect" option in Messiaen's program, OBJ Importer. It interacts with Mario in the same way as normal snowflakes do.
Flowers
Like the blizzard, these happy, bouncing flowers can be spawned in a level via the "Enviroment Effect" option in Messiaen and Skelux's program, OBJ Importer. While their spawn point radius is dependent on Mario's position, they otherwise don't interact with him in any way. They attach themselves to a level's solid, horizontal surfaces. Oddly, their graphic is found among the resources for Lethal Lava Land.
Unused Text
Blanked-Out Text
A number of messages present in the Japanese version were blanked out for the overseas releases, preventing them from being translated.
These lines are found after the rest of the Star names:
Japanese | Translation |
---|---|
100まいコインの スター | 100-Coin Star |
マウンテンのへやが ひらく! | The mountain room opens! |
みずとゆき2つのへやが ひらく! | The water and snow rooms open! |
おおきなほしの ドアがひらく! | The Big Star Door opens! |
クッパへの とびらがひらく! | The door to Bowser is open! |
3がいへの とびらがひらく! | The door to the third floor is open! |
This little message is found between the lines "THE SECRET AQUARIUM" and "CASTLE SECRET STARS":
Japanese | Translation |
---|---|
おいしいケーキ | Delicious Cake |
Boo's Taunt
This message comes after the greeting that appears when Mario enters Big Boo's Haunt for the first time. When the unused message is activated, a short Boo laugh plays as the text box appears. While it was translated in the English and French versions of the game, it was, strangely, never translated for the German release but was actually translated into Chinese for the iQue Player release.
Original Scripts | Literal Translation | |
---|---|---|
Japanese | クックック・・ とりついてやる。 ヒッヒッヒ! カベも とおりぬけてやる。 こんなこと できるか? ケッケッケ! |
Eh he he... I'm gonna haunt you. Hee hee hee! And I'm gonna go through the wall. Can you do that? Heh, heh, heh! |
English | Eh he he... You're mine, now, hee hee! I'll pass right through this wall. Can you do that? Heh, heh, heh! |
Eh he he... You're mine, now, hee hee! I'll pass right through this wall. Can you do that? Heh, heh, heh! |
French | Hé...hé...hé... Ciao bello Mario! Moi j'traverse les murs! Tu peux le faire, toi? Hin...hin...hin... |
Heh...heh...heh... Bye bye my dear Mario! I can go through walls! You can't do that, can you? Nyeh...heh...heh... |
Chinese (IQue Version) | 哦呵呵… 你是我的了。 哼哼! 我可以安然无恙 地穿过这面墙, 你能吗? 呵呵…呵呵…… |
Oh ho ho... You're mine. Hmm! I can pass through this wall without hurting myself, Can you? Hehe...hehe...... |
To view the text in-game, enter the following GameShark codes:
Version | Gameshark code |
---|---|
Japan | 80330420 0000 81330424 0063 |
USA | 80331480 0000 81331484 0063 |
Europe | 802FD640 0000 812FD644 0063 |
Japan (Shindou) | 80310AB0 0000 81310AB4 0063 |
iQue | 8031310C 0000 81313110 0063 |
The first line makes the text appear white over a translucent black background, and the second line sets the message ID.
Early Level Select
- Main Article: Prerelease:Super Mario 64 (Nintendo 64)
Located at the beginning of the game's text, in both the Japanese and localized versions of the game, is text for an early level select that was used by the playable demo of the game featured at Shoshinkai '95. It is not the same as the functional Level Select that remains in the final game. It was likely only made for the demo as the source code indicates that the final Level Select was finished before the Shoshinkai '95 Demo, the date being September 6th 1995, one month before the demo.
Japanese | Translation |
---|---|
STAGE SELECT つづける? 1 マウンテン 2 ファイアーバブル 3 スノースライダー 4 ウォーターランド クッパ1ごう もどる PAUSE つづける? やめる ? |
STAGE SELECT Continue? 1: Mountain 2: Fire Bubble 3: Snow Slide 4: Water Land Bowser #1 Back PAUSE Continue? Quit? |
The levels accessible from this menu were:
- Mountain - Whomp's Fortress
- Fire Bubble - Lethal Lava Land
- Snow Slide - Cool, Cool Mountain
- Water Land - Dire, Dire Docks
- Bowser #1 - Bowser in the Dark World
To do:
|
To load the message overlays of the debug menu in-game, overwrite the values in the extended Japanese version at offset 0x810276 with 0800001E00C80000020087E. For the pause menu, overwrite the values in the extended Japanese version at offset 0x810276 with 03000064009600000200883C. This will replace the three-star-door "not enough stars" message with the menu overlays.
Map Select (Japanese Version) | Nintendo Shoshinkai 1995 Demo (source) |
---|---|
Pause Menu (Japanese Version) | Nintendo Shoshinkai 1995 Demo (source) |
---|---|
Unused SSL Cutscene
In the camera cutscene table, there is an entry that is never called and not associated with a level. Forcing this unfinished cutscene code to play seems to most appropriately fit with Shifting Sand Land, as it focuses correctly on the Pyramid Top object given its focal point coordinates.
Luigi and Multiplayer Remnants
The decompilation, and the iQue build's source code, reveal some code that appears to be leftover from when (Luigi) was intended to be in the game.
In several files in the code, a pointer to a second player struct appears right after the pointer to Mario's struct. Within the code for handling shadows, there exists a switch-case block with two cases, one of which sets a variable to the Mario struct and the other sets a variable to the aforementioned second player struct. In the leaked source code, Model ID 2, Is labelled as Luigi. The camera for locking it is labelled as 2P camera, which was mentioned in an interview that the fixed camera was intended for a Multiplayer Mode. A section of memory is labelled as Luigi Animations in the source code. However, in the final, the section is completely empty. Unused labels mention a third game mode, Game_Mode2P. Similarly, Player 2 can still control the camera to some extent.
奇特的东西
Actor Group Oddities
Actor Groups consist of files in the game which contain model data for different objects. Each level has a set of actor groups assigned to it, and in a few cases none of the objects in a file they are assigned appear in the level.
Secret Slide
The Princess's Secret Slide includes the actor group for the cap switch levels (group8 in the decomp). The group consists of the cap switch object and the unused springboard object, raising the possibility that one of these was to be included in the stage at some point.
Over the Rainbow
Wing Mario Over the Rainbow includes actor group 2 consisting of Bully and Blargg as well as group17 consisting of several Hazy Maze Cave actors. No actors from either group are used in the final level.
Cool Cool Mountain
Cool Cool Mountain includes actor group 16 consisting of Chill Bully and Moneybag even though neither are used in the level.
Wet-Dry World
Heave-Ho' can be picked up and thrown if it is close enough to the water in the level, This is due to the fact that grabbing in water does not check for the ungrabbable sub-type.
void bhv_heave_ho_loop(void) { cur_obj_scale(2.0f); switch (o->oHeldState) { case HELD_FREE: heave_ho_move(); break; case HELD_HELD: cur_obj_unrender_and_reset_state(0, 0); break; case HELD_THROWN: cur_obj_get_dropped(); break; case HELD_DROPPED: cur_obj_get_dropped(); break; } o->oInteractStatus = 0; }
const BehaviorScript bhvHeaveHo[] = { BEGIN(OBJ_LIST_GENACTOR), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), LOAD_ANIMATIONS(oAnimations, heave_ho_seg5_anims_0501534C), ANIMATE(0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 200, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 600, /*Unused*/ 0, 0), SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvHeaveHoThrowMario), SET_INT(oInteractType, INTERACT_GRABBABLE), SET_INT(oInteractionSubtype, INT_SUBTYPE_NOT_GRABBABLE | INT_SUBTYPE_GRABS_MARIO), SET_HITBOX(/*Radius*/ 120, /*Height*/ 100), SET_HOME(), SET_INT(oIntangibleTimer, 0), BEGIN_LOOP(), CALL_NATIVE(bhv_heave_ho_loop), END_LOOP(), };
Object Placement Oddities
神秘板栗仔
在天空库巴关中,经过关卡某处黄色的伸缩块后,有两个板栗仔。实际上这里的板栗仔是因为马里奥接近了一个隐形的“生成器”后出现的,这个生成器能够产生三个呈正三角形排布的板栗仔。然而,在这里似乎并没有第三个板栗仔。这是因为这个生成器的位置问题导致了第三个板栗仔的初始位置在平台的外部,使这个板栗仔在平台上没有落脚点,进而默认产生在了关卡的最底部,因离马里奥太远(超过某个值,下称有效半径),1帧之后就被程序判定立刻就隐形了。
同时,这个被孤立出去的板栗仔是无法碰到的。这是因为,当马里奥远离生成器一定距离(同样存在有效半径)时,被这个生成器控制的三个板栗仔都会隐形。这个板栗仔被生成器控制,且产生位置(关卡底部)距离生成器太远,当马里奥试图靠近这个板栗仔时,他会在生成器的有效半径外,这个板栗仔还是会隐形,而当马里奥在生成器的有效半径内时,他又会在这个板栗仔本身的有效半径之外。也就是说,没有一个位置是既能在该板栗仔的有效半径,又能在该生成器的有效半径内的。这个板栗仔除了只能保持1帧的显形状态(读取瞬间的程序延迟)外,其他情况下都会一直保持隐形不见的状态。
港口关(第9世界)
The Bowser door near the submarine has a shadow behind it that should have remained visible after the door opens, but it does not.
海湾关(第3世界)
在本关的两个大船上面,实际上还放有一个船的复制品。这个复制品外观有一些不同,动作也是更早期的。
812C1CB4 0000
812C1CB6 0000
“拿不到”的金币
这个游戏有几个非常特别的金币可以看到,但是基本拿不到(部分可以通过特殊的技巧拿到)。可能这些金币是被设计者重新设计关卡时遗忘了。
雪人关(第10世界)
这一个金币位于这个世界中上山路上的一段木头路面旁边,陷进了雪人当中。
这个金币可以用特殊的技巧拿到,方法是用炮台瞄准图中的位置(对精确度要求较高)。
大小岛关(第13世界)
另外几个“拿不到”的金币位于大小岛关的小岛部分,排成了一行。在正常的游戏进程中,只有左下的那颗能够看到。这是因为这一行金币摆放的倾斜角比实际地形的小了(很可能是地形后来又垫高了),导致后面的金币陷进了地面中。尽管中间第二个金币看不到,但是仍然能够拿到,因为它的收集判定区域稍微露出了地面一点点。
第三个金币是正常方法拿不到的,然而,可以用[ht{}tps://www.youtube.com/watch?v=1iwAbEXgpic 特殊的技巧]拿到。方法是通过特定角度穿入小岛顶部的水山,然后把握好完美的时机,在游出水面的瞬间跳跃。
大小岛关还有一行其中有一个陷入地面的金币。这个金币是确实拿不到的,因为根据游戏的预防设定,这个金币在产生的同时会隐形消失。这和控制金币产生的生成器物件有关。当一个5金币生成器起作用时,会产生5个比生成器高300单位的金币,这些金币开始从比它们高78个单位的位置起向下寻找地面,然后出现在它们找到的最近的地面上。然而,如果一个金币找到的地面位置高于这金币本身的收集判定位置,那么这个金币会因游戏的预防设定而隐形。这一关这里的生成器是在地面底部的,它产生的金币中最左面的一个会因此受到影响而隐形。
The game uses separate polygon meshes for visual (intangible) geometry and for collision geometry in each course. They were apparently not always kept in synch during development, and so one sometimes hints at geometric features that were later changed or removed from the course altogether.
Over the Rainbow
To do: add the other odd hangable ceilings from the video |
Although never possible by the normal game's standards, Mario can hang on the starting cloud of Wing Mario Over The Rainbow. This can only be hanged on if solid ground of any kind is present under this cloud, as shown at 1:06 in the video. This oddity still exists in Super Mario 64 DS. Also shown in this video are hangable ceilings that make no sense probably unchanged from an earlier build.
Tall Tall Mountain
To do: Get a good quality prerelease image of the sign |
Visible Model | Collision Model |
---|---|
In Tall Tall Mountain's slide area there is a single rectangular polygon above the exit of the tunnel, which has collision but is invisible. This is a leftover from a sign with an arrow pointing to the left that can be seen in prerelease materials.
The large mushrooms around the outer area of the course have a straight stem mesh for their collision, but visually their stems are bent. This possibly suggests that the stems were originally straight and then edited later to make them bent. This oddity still exists in Super Mario 64 DS.
Inside The Castle
Visible Model | Collision Model |
---|---|
![]() |
![]() |
In the room of the castle where The Princess's Secret Slide is accessed, the 3 windows showing Peach extend by the same distance. Their collision geometry is cut off however, so only one of them can have their windowsill walked on by Mario.
Tower Of The Wing Cap
Visible Model | Collision Model |
---|---|
![]() |
![]() |
The towers extend much further downward visually than their collision geometry. This theoretically means Mario can fly right through the towers at their bases.
Castle Grounds
Visible Model | Collision Model |
---|---|
![]() |
![]() |
The two spires at the back of the castle have no collision at all. This is easily noticeable in-game as the top of the tower (where Yoshi is) can be reached and walked around.
Whomp's Fortress
Near the top of the fortress is the remains of the ground collision that is used for the level's Piranha Plants. A Piranha Plant was likely isolated here at one point during development. Interestingly, Throwback Galaxy from Super Mario Galaxy 2 (a recreation of Whomp's Fortress) added a Piranha Plant near this spot.
Texture Oddities
Smoke Texture
The smoke texture displayed in-game is the result of a corrupted texture. The smoke texture is supposed to use the IA16 texture format, but instead uses the RGBA16 texture format. When viewed with color, this results in a glitchy-looking texture with random colors. Since the texture is displayed in-game without color the texture does not look out of place. If the IA16 format is used, the texture looks much more like actual smoke. Whether the corrupted texture went unnoticed or was intentionally kept is unknown. In the source code it is labelled as gas_b5, with a note saying that is a newer version.
Smoke in-game with the wrong format | Smoke in-game with the right format |
---|---|
![]() |
![]() |
Object Collision Oddities
Water Level Diamond
At 0x070184C8 in the Wet Dry World level data, an unused collision list for the Water Level Diamond object can be seen. However, the code for the object handles the hit detection in-code, so this list is not used.
Other
Unused Demo (Possible CCM Blooper Reel)
In Super Mario 64 there exists a total of 6 played demo reels (7 in non-JP versions) however in the demo data there exists an 8th demo without a header to define what level it was for. The data exists after the PSS demo but before where the BITDW demo would be in non-JP versions. Although there is speculation as to which level it was for, the best guess seems to be that it was a blooper take of a Cool Cool Mountain demo attempt where the user attempting the demo ran into the sign by mistake and restarted the demo, but due to time constraints, couldn't be completed in time.
The demo data can be found at the following ROM offsets:
- US: 0x57B130
- JP: 0x5790C8
- EU: 0x55D838
- SH: 0x555F50
Reference to Unused Level 32
The code for the fish behavior and switch cap behavior both contain checks for if the level the object is in matches the ID for an unused course, with the ID being that of the 32nd level in memory. In the fish behavior, if the condition is met the fish do not despawn even if the game detects no water at the fish's location. In the cap switch behavior, the condition makes the game bypass checking if the switch has been activated so that the switch is always unpressed. After the the gigaleak on July 25, 2020, the stage was found in the source code and is confirmed to be a test level.
Koopa The Quick's Mouth
Koopa the Quick has a strange, red polygon in his head, which was most likely intended as the inside of his mouth due to the placement. This is unseen because Koopa the Quick never opens his mouth, even when he talks.
Cleanup > Needs more images
Cleanup > To do
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden level selects
Games > Games by content > Games with regional differences
Games > Games by content > Games with unused enemies
Games > Games by content > Games with unused graphics
Games > Games by content > Games with unused items
Games > Games by content > Games with unused text
Games > Games by platform > Nintendo 64 games
Games > Games by platform > Nintendo 64 games > IQue Player games
Games > Games by release date > Games released in 1996
Games > Games by series > Mario series
The Cutting Room Floor > Featured articles