This is a sub-page of Luigi's Mansion (GameCube).
|
|
Please elaborate. |
Unused Multiplayer Mode#
Watch on YouTubeAn unused two-player splitscreen can be activated with a simple Action Replay code. When the code is activated, a second Luigi will spawn and it will bind the second controller port to it. When both Luigi are near each other, only the first player's camera is shown; moving further away causes the game to go into splitscreen mode. The second Luigi may act a little broken, since you can't properly stun ghosts as well as enter rooms that the first Luigi isn't in. Doors will take a while for the second Luigi to enter through, and captured ghosts by the second Luigi won't actually count.
Unused Multiplayer Mode:
Version |
Encrypted |
Decrypted |
|---|---|---|
Europe (Revision 2) |
B2Y9-GX8A-MRZZ0 |
044C5770 00000001 |
USA |
NRP6-DBEB-UUCR5 |
044D80B0 00000001 |
(Source: KIRBYMIMI/LMFinish)
Unused Poisoned State#
Luigi has an unused "poisoned" state in which he moans, loses health (and coins), expels purple heart particles, plays a wobbling sound, and uses an unused animation called DOKU_LP (POISON_LOOP) in which he dances between each foot and holds himself while choking. In the animation he also uses the otherwise-unused sad eyes texture and puffs his cheeks out. At the end of the animations he slaps his face.
To activate it, enter one of the following Action Replay codes and then press B + D-Pad Up:
Version |
Encrypted |
Decrypted |
|
|---|---|---|---|
USA |
CYZJ-HD1Q-DVHH3 |
00BA32FB 08000000 |
|
Europe |
F5HC-5TPP-9FXCD |
00725BE5 18000000 |
|
Europe Demo |
4B7D-244B-9R563 |
00724C0A 18000000 |
(Source: Ralf@GC-Forever, Catley/SoapyLemons)
Unused Luigi Fear States#
Watch on YouTubeThe game holds three more unused modes for Luigi, which consist of a near-identical replica of the crawl sequence used when the unused purple ghosts scare him in the E3 2001 demo, the pink ghost scare attack from the Nintendo Difference build, and an otherwise-unseen "alert" mode.
The first has Luigi's health limit capped to its half, 50 HP, while he crawls uncontrollably across the room he's in, in a very similar fashion to E3 2001. It should be noted that, despite the similarity to the earlier build's crawl sequence, this routine seems to have been updated with a couple of features such as a sweat particle effect which is used in Toad's crying animation on the retail build, and the way he crawls automatically - control stick input only changing his direction - and much faster in comparison. There are unused ghost animations associated with this.
The second routine caps his health to 70 HP, as happens with the pink ghost's scare seen on Nintendo Difference. However, Luigi's movement speed is lowered and his head is locked to a looking-down position; although that's apparently the maximum extent of this state, the game is actually attempting to make him play an animation that is not defined properly, so it defaults to 00 (Wait/Standstill) instead.
The third, interestingly, only seems to trigger on lit rooms. When in this state, Luigi enters a frightened/scared state, which plays in place of his normal idle animation, and the engine plays one of his "uneasy" voice clips. He also tiptoes instead of walking during movement.
Start crawl routine upon damage:
Version |
Encrypted |
Decrypted |
|---|---|---|
Japan |
CW4N-ZM38-VR30T |
040B4990 38000064 |
USA |
CXB3-W1KK-W6N3N |
040B6220 38000064 |
Europe |
YG1T-EE88-MQE6Q |
040B95AC 38000064 |
(Source: Laser Crusader)
Vacuum Overheat Shake & Skipped Meter Write#
At 800B8660, there's code which sets up a shake effect for the Poltergust. Such effect appears to be very similar, or identical, to the shaking seen while the vacuum was overheating at E3 2001 and earlier builds of the game. The intensity of the effect always reads zero, so it's never seen, even when sucking up an explosive Spark ghost. The Action Replay code below sets its intensity to 1. When it's active, a boxing explosion-like sound is heard constantly. Additionally, on the same area at 800B8654, there's some never-accessed code which writes directly to the unseen Ghost Counter's number. It originally writes 10 (0x0A), but it can be changed to other values. This segment of code could have been from when the meter kept track of heat level and reached its maximum.
Version |
Activate shake |
Set Ghost Counter to 10 |
|---|---|---|
USA |
040B8678 C0029C98 |
040B8650 60000000 |
Japan |
040B6DF4 C0029C70 |
040B6DCC 60000000 |
Europe |
040BBA78 C00DBA38 |
040BBA50 60000000 |
(Source: LMFinish)
Unused EnFrighten Appear Type#
Watch on YouTubeOn creation, ordinary ghosts have a pointer to EnFrighten, an unused behavior resembling the purple ghost's jumpscare attack seen in the E3 2001 demo. This pointer is unused due to ghosts using value 2 for the appear_type property in the enemy JMP listing, which runs the usual ghost appearance EnAppear. Changing a ghost's appear_type to 1 restores EnFrighten in place of their usual appearance, however it crashes during its range check due to an invalid pointer read/function call starting at 800D4C10. What this was meant to do is unclear.
The codes below fix the crash and force ghosts to use this behavior; however, the way it's set up makes the ghosts uncatchable due to the code which enables stunning never running.
Version |
Gecko |
Action Replay |
|---|---|---|
USA |
040c9284 38a3030c |
92MV-Q4XV-98KHX |
Europe |
040cc72c 38a3030c |
29ZK-DVD4-KHVKX |
Japan |
040c798c 38a3030c |
BN9H-H412-Z904U |
Unused Screen Settings#
|
Normal Viewport |
Fixed Viewport |
|---|---|
|
|
|
The function 80010F20 manages screen scale and positioning. The code used for the default screen and the GBH camera viewport is found here, but skipped code exists at 800110AC which changes the viewport's size to 560x430 and the XY offsets to 40 and 30 respectively. The resulting size and positioning look very similar to those of a zoom mechanic seen in pre-release footage. The graphic that would wrap around it was seemingly removed, but graphics with a border of the same style can be seen in the Pause and File Select screens. The Action Replay codes below force this setting in-game.
NA |
JP |
EU |
|---|---|---|
04010FD4 48000010 |
04010C94 48000010 |
04011BB4 48000010 |
(Source: LMFinish)
Unused Speedy Spirits#
Luigi's Mansion used to have 25 Speedy Spirits, though only 15 Speedy Spirits are used. Speedy Spirits 16 - 20 still have their dependencies to appear in-game and function (if they're given properties like behavior, money count, etc.) However, Speedy Spirits 21 - 25 had most of their data deleted, aside from leftover parameter files hinting at their existence.
(Source: LMFinish)
Riding Poltergust in American and Japanese builds#
Exclusively in the European version of the Hidden Mansion, Luigi rides the Poltergust 3000 during the Boolossus battle. Despite this, the implementation for the riding state had already been complete for the North American and Japanese builds, but is never triggered.
The Gecko codes below make Luigi always start in the riding Poltergust state:
NA |
JP |
|---|---|
040ADF20 90DD134C 040ADF24 981D134C |
040AC8A0 90DD134C 040AC8A4 981D134C |
The European version of the game has the camera zoom in and out after the riding state is triggered that had not yet been implemented for North America and Japan. Additionally, the Luigi player object has a new float property (0x134c) just before the byte that sets the riding state in Europe but is missing from North America and Japan which is used to count frames before the riding state is activated.
Game Boy Horror Ghost Tracker#
Watch on YouTubeThe function 8004463C (US) handles alpha effects and coloring for the unused Game Boy Horror timer's colon. Within it, a comparison against general-purpose register 0 at 80044730 controls the execution of complex operations directly responsible for the timer's border's actor tracking functionality, which had been originally seen in the trailer promoting the game's presence at E3 2001 and became absent by the time of playable demo builds. Its code never runs due to developers intentionally setting the register to 0.
Two versions of this mechanic still exist: mode 1, featuring swaying and smoother motion, and mode 2, which trades animations for more accurate tracking (enabled at 0:16 in the video). Those two modes would automatically switch between each other when far from or near ghosts, respectively, but it is unknown whether code for this still exists. As is, it will only track objects detected by the Boo Radar and not any ordinary or portrait ghosts, presumably indicating they share the same target actor data and/or code.
The code below can force these states:
NA |
JP |
|---|---|
0404472C 3800000x |
0404414C 3800000x |
where x: 0 = default animation; 1 = far-distance mode; 2 = close-distance mode; 3 and above = also default animation.
(Source: LMFinish)
Unused/Leftover Script Tags#
Event script tags that no longer have any purpose or are just plain unused.
Tag Name |
Description |
|---|---|
Displays the rest of the text on the line in a dialogue window. New lines can be made by typing the \n escape sequence. |
|
Sets Luigi's maximum HP value. It also changes the size and speed of the light pink heart (behind the main red heart) on the HUD. Luigi will be unable to gain any more health than this new value until the effects are reversed back to default with |
|
Works the same way as |
|
Unlocks a door. |
|
Changes all lighting in the current map to the alpha lighting seen in early screenshots and videos of Luigi's Mansion, mostly around 2000 to early 2001. This lighting could've been used to create the picture quality desired for magazines and websites at the time, or it could've simply been temporary lighting. |
|
Tells the game to load a lighting animation file, which must be inside of the same event folder as the event itself. |
|
Enables visibility of the MDL model for the actor. If Luigi was previously made invisible, this tag will make him visible again, but his equipment (GBH, flashlight, and Poltergust) will stay invisible. |
|
Runs no-op (NOP) code. Does nothing. |
|
Runs no-op (NOP) code. Does nothing. |
|
Disables the lighting effects that were loaded with |
|
Seems to be a leftover tag for switching portraits out via event during the Portrificationizer Room cutscenes. If used during that event, the cutscene will desync and portraits will no longer come out correctly. At this point, if the |
|
Warps to the title screen without saving any progress. |
|
Reverses the effects of |
|
Stops the GameBoy Horror timer. This tag is called in several event files, but it doesn't normally affect anything since the clock system was cut. |
|
Resumes the GameBoy Horror timer. This tag is called in several event files, but it doesn't normally affect anything since the clock system was cut. |
|
(Source: LMHack)
Unused CTP Parameter Fields#
Unused or leftover fields that can be found within CTP parameter files.
Field Name |
Description |
|---|---|
mSpeed |
Effects the speed which ghosts pull when using TsuriType 5 (EnBasicTsuri). Since type 5 isn't used, neither is this field. |
mFrightenLevel |
Does nothing. |
mAttackPattern2 |
Does nothing. |
mHasCoin |
Does nothing. |
mKiryuCount |
Unknown. |
mNumGround |
Unknown. Can be found in the parameters for Ghost Guy's mask. |
mFlag |
Unknown. Can be found in the parameters for Ghost Guy's mask. |
(Source: LMHack)
Unused Sheet Behaviors#
Sheets are 2D textures that get turned into furniture (tablecloths, posters, bedsheets, etc.). There are a few that aren't used anywhere.
No. |
Description |
|---|---|
7 |
Cloth that hangs over the left side of the furniture's scanbox. |
8 |
Cloth that hangs over the back side of the furniture's scanbox. |
10 |
Poster that hangs over the right side of the furniture's scanbox. |
11 |
Poster that hangs over the left side of the furniture's scanbox. |
12 |
Poster that hangs over the back side of the furniture's scanbox. |
14 |
Bed sheets with two layers. The bottom layer hangs off the left and right side, and the top layer is flat like a poster. |
25 |
Cloth that flutters with strange sound effects. It hangs off the left and right sides and flutters off the back side of the furniture's scanbox. |
(Source: LMHack)
Unused Conditions#
These unused conditions are meant for the cond_type field found in various JMP files.
No. |
Condition Name |
Description |
|---|---|---|
4 |
SaEnCheckTime |
Checks the arg values in observerinfo, and compares them against the GameBoy Horror timer. arg1 is the lower bound of the hour value while arg3 is the upper bound. arg2 is the lower bound of the minute value while arg4 is the upper bound. |
5 |
CondAlwaysTrue |
No condition. Duplicate of 0 and 2. |
7 |
EnFindPlayerNear |
Gives a ghost a small spawn range, meaning Luigi can only activate the ghost if he's close to it. |
12 |
CondWaterAllOff |
Checks if all the water generators in the room have been turned OFF. Luigi can freeze a water generator by spraying it with ice element. |
19 |
CondEventFlagOff |
Checks if the flag listed in cond_arg0 is off. |