the cutting room mirror

Kirby and the Forgotten Land

To do:
Quite a lot, actually:

  • Kirby has several unused animations, including some from Star Allies.
  • King Dedede also has some animations from when he was playable in Star Allies.
  • Morpho Knight has several animations from Meta Knight that don't get used.
  • Big-Rig Kirby has unused code for an idle state.
  • There's quite a lot of regional differences.
    • There's also a lot of differences between the two Spanish and French locales of the game.
  • Document the demo.
  • When Switch 2 games can be dumped, document changes among other things in the Switch 2 version.

And here we are - Kirby and the Forgotten Land is the pink puffball's first 3D mainline game. A wormhole opens up in the middle of Dream Land, sending Kirby (among many other things) to a world long abandoned by an ancient civilization - a world that in many ways is not unlike our own.

This game introduces Mouthful Mode, which lets Kirby inhale certain objects (including cars, traffic cones, and vending machines) to take on their forms, helping him traverse the land, solve puzzles, and rescue captured Waddle Dees. There's also tons of gachapon figurines to collect, some of which give a bit of insight on the civilization that once was.

An enhanced port with additional content was released for the Nintendo Switch 2 a few years later.

Unused Colors#

Yellow Kirby#

Kirby_and_the_Forgotten_Land_Unused_2P_Color.png

There's a file in RomFS\gfx\Actor\Chara\Kirby\Common\ called BodyColor.bfres.cmp that seems to contain material information to change Kirby's color. The parameters included in it are called Base_2P_Body and Base_2P_Foot, and they contain values to turn Kirby's body yellow and his feet orange. The values can be applied to his base model and will change Kirby's color correctly in-game. Judging by the name of the parameters, these materials were most likely intended to be used for a second-player Kirby, like in previous games. While a two-player mode exists in Forgotten Land, the second player controls Bandana Waddle Dee instead of a recolored Kirby (though they're still associated with the color yellow).

(Source: Firubii)

Ability Colors#

In past Kirby games, such as Nightmare in Dream Land and Super Star/Super Star Ultra, Kirby's skin color would change upon obtaining certain abilities. Since Kirby's Return to Dream Land, abilities no longer affect Kirby's color. Nevertheless, the same file that contains the unused yellow colors also has a fully-functional feature that allows Kirby to once again change his colors when obtaining an ability. However, color parameters with a specific naming scheme have to be added in order to make the file have an effect, since all it contains is the unused second player color.

The naming schemes the game searches for are [Ability]_Body and [Ability]_Foot for all forms of a single Copy Ability, and [Ability]_[Evolution]_Body and [Ability]_[Evolution]_Foot for Evolution-specific colors, which take priority over the former. The function responsible for updating Kirby's color does not affect Kirby in the world map nor while using a Mouthful Mode, as the world map Kirby does not run the function and Mouthful Mode models have different parameter names than what the game attempts to update.

Should custom color parameters be added to the material data, Kirby's skin color will change when picking a Copy Ability. An example with the Fire ability is shown below:

(Source: Firubii)

Unused Emotes#

Kirby has an unused Surprised emote, which during gameplay has no assigned button to it. This also includes the two unused animations Surprised and SurprisedStart. This is different from the cutscene animation of Sillydillo as that is a different animation. It has a value of 0x6 in the code.

(Source: JC Players)

Unused Animations#

Dedede#

To do:
The image here is a placeholder. Dedede doesn't move much, but it would be so much better if we had a gif and the correct textures.

King Dedede has an unused sitting animation, most likely meant to be used while in Waddle Dee Town. It's called Wait03 and is located in RomFS\gfx\Actor\Chara\Dedede\TownMotion.bfres.cmp.

(Source: none_ofbusiness)

In RomFS\gfx\Actor\Chara\Dedede\Motion.bfres.cmp Dedede has some unused animations. Some are new, while some are from Star Allies, which does not fit the model at all. This causes it to look weird...

(Source: JC Players)

Kirby#

Inside RomFS\gfx\Actor\Chara\Kirby\Normal\Motion.bfres.cmp are a bunch of unused animations. Some are leftovers from Star Allies, while some are unique to this game. Most of these have texture patterns and bone visibility to them.

There also is an unused bone visibility animation called RunFast, but there is no animation for it. It is unknown what this could have been (maybe when Kirby has the Speed Boost?).

(Source: JC Players)

Meta Knight#

In,RomFS\gfx\Actor\Chara\Metaknight\Motion.bfres.cmp Meta Knight has a bunch of animations that are leftover Star Allies animations. Though there seems to be original ones such as SwordKick.

(Source: JC Players)

Morpho Knight#

Like Meta Knight, Morpho Knight has a bunch of leftover Star Allies and Meta Knight animations. However, there seem to be many more leftover Star Allies animations that were not in Meta Knight, in RomFS\gfx\Actor\Chara\Morphoknight\Motion.bfres.cmp.

(Source: JC Players)

Unused Music#

Inside RomFS\snd\Kirby15\stream is a music stream file called K15_Bgm.dspadpcm.8000.bfstm. It weighs 352 bytes, and that's because it's completely empty. The filename suggests it could've been used as a test file during development.

(Source: Vyroz)

To do:
Check games that have a legalinfo.xml with a date, plus have a game-specific build date in another file, to work out if the legalinfo.xml date is really a game build date, or just the legalinfo.xml creation date

The game's legalinfo.xml file shows that the game was compiled on or around June 16, 2021, at 4:00 a.m. (Japanese Standard Time).

<?xml version="1.0" encoding="UTF-8"?>
<SoftwareLegalInformation>
  <OutputDateTime>2021-06-16T04:00:33.894Z</OutputDateTime>
  <CopyrightNotations>
    <TechnologyName>NintendoSDK_libcurl</TechnologyName>
    <TechnologyName>NintendoSDK_movie</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>nlib_LZ4</TechnologyName>
  </CopyrightNotations>
  <DeclarationRequiredNotations>
    <TechnologyName>QREncoder</TechnologyName>
    <TechnologyName>Unity</TechnologyName>
    <TechnologyName>Havok</TechnologyName>
    <TechnologyName>UnrealEngine</TechnologyName>
    <TechnologyName>NintendoWare_Bezel_Engine</TechnologyName>
    <TechnologyName>NintendoWare_Bezel_Engine</TechnologyName>
    <TechnologyName>CRIWARE</TechnologyName>
    <TechnologyName>NintendoSDK_libcurl</TechnologyName>
    <TechnologyName>NintendoSDK_movie</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>nlib_LZ4</TechnologyName>
    <TechnologyName>nlib_bsdiff</TechnologyName>
    <TechnologyName>glew</TechnologyName>
    <TechnologyName>Capstone</TechnologyName>
    <TechnologyName>Breakpad</TechnologyName>
    <TechnologyName>NintendoSDK_dear_imgui</TechnologyName>
    <TechnologyName>NintendoSDK_Vulkan</TechnologyName>
    <TechnologyName>Wslay</TechnologyName>
    <TechnologyName>SkiaGraphicsLibrary</TechnologyName>
    <TechnologyName>H2O</TechnologyName>
    <TechnologyName>lz4 1.9.1</TechnologyName>
    <TechnologyName>SPIRV-Headers</TechnologyName>
    <TechnologyName>gRPC</TechnologyName>
    <TechnologyName>OpenSSL</TechnologyName>
    <TechnologyName>WebRTC</TechnologyName>
    <TechnologyName>NintendoSDK_Vulkan_Vulkan-ExtensionLayer</TechnologyName>
  </DeclarationRequiredNotations>
  <ProductRegions>
    <Usa>true</Usa>
    <Japan>true</Japan>
    <Europe>true</Europe>
    <Asia>true</Asia>
    <China>false</China>
  </ProductRegions>
  <FormatVersion>2.0.0</FormatVersion>
  <ApplicationId>0x01004d300c5ae000</ApplicationId>
  <DataHash>db4f5fb34a4c1c1d9aa52909d3cb3047</DataHash>
</SoftwareLegalInformation>

Additionally, the demo's legalinfo.xml file shows that it was compiled on or around August 23, 2021, at 4:23 a.m. (Japanese Standard Time).

<?xml version="1.0" encoding="UTF-8"?>
<SoftwareLegalInformation>
  <OutputDateTime>2021-08-23T04:23:30.156Z</OutputDateTime>
  <CopyrightNotations>
    <TechnologyName>NintendoSDK_libcurl</TechnologyName>
    <TechnologyName>NintendoSDK_movie</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>nlib_LZ4</TechnologyName>
  </CopyrightNotations>
  <DeclarationRequiredNotations>
    <TechnologyName>QREncoder</TechnologyName>
    <TechnologyName>Unity</TechnologyName>
    <TechnologyName>Havok</TechnologyName>
    <TechnologyName>UnrealEngine</TechnologyName>
    <TechnologyName>NintendoWare_Bezel_Engine</TechnologyName>
    <TechnologyName>NintendoWare_Bezel_Engine</TechnologyName>
    <TechnologyName>CRIWARE</TechnologyName>
    <TechnologyName>NintendoSDK_libcurl</TechnologyName>
    <TechnologyName>NintendoSDK_movie</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>NEX</TechnologyName>
    <TechnologyName>nlib_LZ4</TechnologyName>
    <TechnologyName>nlib_bsdiff</TechnologyName>
    <TechnologyName>glew</TechnologyName>
    <TechnologyName>Capstone</TechnologyName>
    <TechnologyName>Breakpad</TechnologyName>
    <TechnologyName>NintendoSDK_dear_imgui</TechnologyName>
    <TechnologyName>NintendoSDK_Vulkan</TechnologyName>
    <TechnologyName>Wslay</TechnologyName>
    <TechnologyName>SkiaGraphicsLibrary</TechnologyName>
    <TechnologyName>H2O</TechnologyName>
    <TechnologyName>lz4 1.9.1</TechnologyName>
    <TechnologyName>SPIRV-Headers</TechnologyName>
    <TechnologyName>gRPC_For_NPLN</TechnologyName>
    <TechnologyName>OpenSSL_For_NPLN</TechnologyName>
    <TechnologyName>WebRTC_For_NPLN</TechnologyName>
    <TechnologyName>NintendoSDK_Vulkan_Vulkan-ExtensionLayer</TechnologyName>
    <TechnologyName>OpenSSL_For_NintendoSDK</TechnologyName>
  </DeclarationRequiredNotations>
  <ProductRegions>
    <Usa>true</Usa>
    <Japan>true</Japan>
    <Europe>true</Europe>
    <Asia>true</Asia>
    <China>false</China>
  </ProductRegions>
  <FormatVersion>2.0.0</FormatVersion>
  <ApplicationId>0x0100dd801605c000</ApplicationId>
  <DataHash>db4f5fb34a4c1c1d9aa52909d3cb3047</DataHash>
</SoftwareLegalInformation>

(Source: DogToon64)

Internal Project Name#

The game's more common project name is "Kirby15", often shortened to "K15". This is because Kirby and the Forgotten Land is the 15th mainline game if remakes are counted. It's also called "Balloon", "Balloon15", or simply "BL" in other material.

(Source: AtlasOmegaAlpha)

References#


  1. https://gamefaqs.gamespot.com/switch/332264-kirby-and-the-forgotten-land/data GameFAQs↩︎
  2. https://web.archive.org/web/20221220011731/http://www.vanpool.co.jp/↩︎
  3. GameFAQs↩︎