We just reached 30,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Kero Blaster

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Kero Blaster

Developers: Studio Pixel, MIYAKOpubl[1]
Publisher: AGM PLAYISM[1]
Platforms: iOS, Windows, PlayStation 4, Nintendo Switch, Android, Mac OS X
Released internationally: May 11, 2014[2]


CharacterIcon.png This game has unused playable characters.
GraphicsIcon.png This game has unused graphics.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.
Carts.png This game has revisional differences.


ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article
BugsIcon.png This game has a bugs page

This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.

First you take Cave Story, then throw in a frog. Add a bunch of black monsters, and presto! It's Kero Blaster!

Hmmm...
To do:
  • Version differences (such as changes to obtaining the Kuro Blaster and its third-form coloration, Zangyou mode, etc.), as well as unused content only found in older versions, which can now be easily accessed thanks to the recent version conversion patches.
  • Record video footage of the unused weapons.
  • EVERY map has an unused internal name baked into the file. Try to document all of them someday and translate them.
  • The Mac version just released, and it is filled to the brim with debug symbols - including for functions we previously weren't aware of. In particular, check for stuff like unused bullets (labelled "Bllt") or unreferenced NPC code not tied to any NPC id (e.g. NPC_AmeFake)

Sub-Pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
Read about notable bugs and errors in this game.
Bugs
KeroBlasterFuAchievements 1.png
Unused Graphics
You'd need some kind of gun-toting janitor to take care of all these graphics.
KeroBlaster UnusedNPCsAndBehavior.png
Unused NPCs
Unused Flying Object spotted!
KeroBlaster UnusedNPCBehaviors.png
Unused NPC Behaviors
Even invincible baddies need their beauty sleep.
KeroBlaster UnusedMaps.png
Unused Maps
Places that Cat & Frog Inc. lost the connection to.
KeroBlaster-EarlyGreenEnemy.png
Debug Menu
It'll make you green with power!
KeroBlaster UnusedScripts.png
Unused Scripts & Text
Hey, that wasn't in the script!
KeroBlaster-GoldmineUnitType.png
Developer Tool Leftovers
Misplaced tool assets from the work-producing machine that is game development.

Demos

PinkHour.png
Pink Hour
An important demo, so make sure not to misplace it!
PinkHeaven.png
Pink Heaven
What do you need most? Strength, gentleness, or unused content?

Black Hero

A black variant of Hero (yes, that's his real name) with red eyes appears a few different places in the graphics. These are usually located to the right of the blue Zangyou version of the character, similar to how the yellow Omake sprites are positioned next to the green ones. This may suggest there was going to be an Omake version of Zangyou mode at some point. Indeed, setting flags 14 and 42 (the Omake and Zangyou mode flags, respectively) in debug mode causes the player to use these sprites in-game.

In item.png. Instead of being black, they are colored dark green, and they lacks the red eyes of the player sprites.

Interestingly, in earlier versions of the game, the internal name for the Omake mode flag was Black, suggesting that this was the original color for Omake mode.

Unused Weapons

Death Beam

There is an unused Level 5 version of the Peashooter weapon labelled "Death Beam" in the words.txt of the original 1.0.6.3 version of the game. It fires large pink projectiles very quickly that do a whopping 99 damage each, as seen in this video.

Kamui

When version 1.4 was released, the Death Beam was dummied out, with even its icon being crossed out. However, this weapon was added seemingly as a replacement, being the Level 5 version of the Fan. It rapidly fires bullets similar to those of the Level 4 Fan/Ninja that deal 24 damage each, but the damage dealt after they bounce off a wall was not modified, being a measly 1 damage.

Additionally, when a save file with this weapon is loaded, it reverts back to Level 1. This is likely a measure taken to ensure that players could not obtain the weapon by modifying the save file, which was the method commonly used to hack in the Death Beam.

Rocket

This weapon does massive damage if it nails its target.

A completely scrapped weapon found only in the 1.0.6.3 release of the game. The file explain.pxeve contains a description of it in all languages, although its name in words.txt goes untranslated.

The Level 1 Rocket fires missiles that deal 2 damage and leave behind tiny lingering explosions after collision, with the Level 2 Rocket creating larger explosions. For both weapons, the player can only fire up to two rockets on the screen at a time, though this does not take into consideration the explosions of the missiles, allowing the player to easily spam the weapon.

This weapon was planned to be obtainable in Kero Blaster's early days, but ended up being left behind once the game was delayed.

ArmsX

KeroBlaster ArmsX.png

When using a script command to modify the player's weapons, i.e. <armF or <pkup, a valid input for the weapon name is "ArmsX", which gives the player a weapon with hex ID $07. It does not function when the fire button is pressed, nor does it have a proper icon.

Unused Player States

The game has many states for the player that can be triggered using the <plAc command, some of which go unused.

catch
KB KaeruCatch.png
Makes Hero jerk the lower part of his body forward, using an otherwise-unused sprite. There are no equivalent sprites for the other player colors, or even for when the player is wearing a Jacket, suggesting that it was scrapped early on.

This animation would eventually be re-used in Pink Hour and Pink Heaven, where it was repurposed as Comomo's blinking/flinching animation.

comojump
Causes Hero to jump in place. A leftover from Pink Hour, where it was used by Comomo to emulate how the Comomo NPC in Kero Blaster jumps when startled.

dBoss
A completely unused death "animation" where Hero stands still for a moment, before the screen quickly fades.

dDamage, dFall, dStop
The death animations for losing all your health, falling into a pit, and being crushed, respectively. Though not unused, they are never called in scripts, likely because dying would cause the script to stop prematurely.

getItem
Similar situation to above; the animation is automatically triggered whenever the player obtains an item, rather than being triggered by the script, so this internal ID goes unused.

god
Restores the players health, but otherwise does nothing. Perhaps at one point in development this state triggered the god mode found in the debug menu?

nMare
Causes Hero to lay on the ground and shake violently. Leftover from the opening cutscene in Pink Heaven.

oppo
Yet another Pink Heaven leftover. As the name implies, this animation made Comomo turn towards the background.

Pink Heaven Kero Blaster
PinkHeaven PlayerComomoLookBehind.png
KeroBlaster PlayerComomoLookBehind.png

Bizarrely, Kero Blaster has its own variant of the sprite used in this state, which uses incorrect colors and a blueish-black background.

sky
Found exclusively in version 1.4 and beyond, it gives the player the ability to fly through the air, at the cost of locking the camera. The only sky-based location in the final Kero Blaster is the boss arena where you fight Kurono. Given the autoscrolling nature of the final phase, perhaps that is where this state was meant to be used.

test
Allows the player to slowly move Hero through the air using the arrow keys. As the name implies, it was probably used for testing purposes.

Unused Sound Effects

boost.ptnoise

A sound effect used by the unused Booster NPC.

debug_alert.ptnoise

A whining alarm sound. According to the filename it was meant for something debug-related. Whatever that function was, it doesn't seem to exist in the final game.

dlg_error.ptnoise

This sound is used when the game fails to load a save file, like when it would put the player in a map that doesn't exist, or when the map's script file has improper syntax.

dlg_talk0.ptnoise

dlg_talk0.ptnoise (Unused) dlg_talk1.ptnoise (Used)

An evil-sounding blip meant for dialogue by some character. Notably, dlg_talk1.ptnoise, which is used by Ooshima, Kurono, and the Zanbito in the final game, appears to be based off of this unused sound. This can be heard in-game by using the command <txtV[0] in a .pxeve script.

Unused Music

An unused remix of the song "Quiet" from Cave Story. Its filename is kb_station_b. Notably, kb_station_a and kb_station_c are used.

Found at kb_call.ptcop in later versions, it's a track meant to represent the phone ringing on the title screen. It was included in the Kero Rhythm OST release, and was most likely created specifically for it.

Unseen pxtone Data

The music in Kero Blaster was composed using pxtone, a custom music software made by Studio Pixel. In pxtone, you can write comments and save them to the music file, something that Pixel did occasionally. It seems he used the comments as (very non-descriptive) changelogs for his tracks. Of course, being text embedded into a music file means that they will not be found in-game.

Additionally, some tracks have alternate abbreviated names that can only be seen in the pxtone Player that is bundled with pxtone.

Track Name File Name pxtone Player Name Comment Notes
Hard Cording kb_boss_a.ptcop Hard Cording
boss03 13/03/07
13/06/27 fix tri maes9-
Apparently, this was the third boss theme at one point.
Data Slot kb_dataslot.ptcop N/A
120826 area
tri only meas 4
130626 tr5 meas 4
This was probably used for the world map from earlier in development, as the leftover world map script attempts to play area.ptcop.
New Item! kb_newitem.ptcop N/A
liberation01
13/03/07 ms8,tr3
Arrival kb_store.ptcop N/A
scene01
13/03/07
Zombeat kb_boss_zombie.ptcop boss2 N/A The title is a leftover from when this was a song used in Guxt.
Magic Number kb_boss_b.ptcop blacky N/A Title is leftover from Rockfish, where an earlier version of this song was used as the boss theme for a character internally referred to as "Blacky".
DAMEMOJI/SHIFT-JiS kb_boss_c.ptcop kb boss c
'150208 boss hvns 3

'150212 complete.
"hvns" is short for "heavens", which describes the area where the appropriate boss fight takes place.
Kaisha Man kb_building.ptcop N/A
090327-
090328 コードの基準になってた sub が役目を終えて新しく作成 
。
090329 微調整。ドラムパートの作成を開始。
Interestingly, this track dates back to 2009, before Kero Blaster was even in development. Either coincidentally or not, an early iteration of Change Spec meant for an RPG was also composed back in 2009.

When put through Google Translate, it says:

090327-
090328 The sub that was the basis of the code has finished its role and is newly created.
..
090329 Fine adjustment. Started creating drum parts.
Enrai/Distant Thunder kb_enrai.ptcop N/A
kb enrai 141216 - 141219

150914 pan and etc.
N/A (unnamed jingle) kb_fanf_finish.ptcop N/A
fanf12 for new item

13/04/19
Approach to Hondo kb_jinja2.ptcop jinja2
15/02/20 jinja 2
True Colors/True Colors Black kb_skk_loop.ptcop N/A
150630 kb_ssk_loop
N/A (True Colors, but modified to sound like it came out of a television.) kb_skk_tv.ptcop N/A
150630 kb_ssk_loop
Uses the same comment as True Colors, likely because this is basically the same song but with different instruments.
Freeze Draft kb_stg05a.ptcop N/A
stage07
13/04/23 3melody meas4
13/04/24 +2drums meas4
This was apparently the Stage 7 theme before the development reset, whereas Hekichi Plateau is the fifth level in the final game.
N/A (based off of Oyasumi Song) kb_strange_tv.ptcop N/A
'15/07/06
make from "kb_strage_tv"
Amusingly, the only note present here seems to be of a spelling correction.

Unused Instrument

While a few .ptcop files have instruments not used in the final game's song, the only noteworthy case is with stage03a.ptcop, which contains an unused drum sound, stick.ptnoise, that is not heard in any track, nor is it present among the default instruments of pxtone.

World Map Leftovers

KeroBlasterDebugIslandv1063.png
island.pxeve
*[SelectStage]
<muLd[areas]<muLp
<isUF[3272;saucer;7;3]
<isUF[3282;saucer;8;4]
<fadI<isPh[select]<exit

*[IslandGo]
<isUC<isUn[myship;0;0;0]<isPh[flight]<dely[100]<isPh[exit]<exit

*[IslandCancel]
<exit

*[IslandFirst]
<muSt
<fadI
<dl60<flgP[3210]<flgP[3211]<souv[help]
<dl60<flgP[3220]<flgP[3221]<souv[help]
<dl60<flgP[3230]<flgP[3231]<souv[help]
<dl60<jump[SelectStage]

*[Cleared1]
<isPh[action]<fadI<dl60<isUn[scope;1;1;0]<dely[120]<isUn[peke;1;1;0]<dely[120]<fadO<trns[-;Return;IN]
*[Cleared2]
<isPh[action]<fadI<dl60<isUn[scope;2;2;0]<dely[120]<isUn[peke;2;2;0]<dely[120]<fadO<trns[-;Return;IN]
*[Cleared3]
<isPh[action]<fadI<dl60<isUn[scope;3;3;0]<dely[120]<isUn[peke;3;3;0]<dely[120]<fadO<trns[-;Return;IN]

*[NewStage45]
<muSt
<fadI
<dl60<flgP[3240]<flgP[3241]<souv[help]
<dl60<flgP[3250]<flgP[3251]<souv[help]
<dely[120]<fadO<trns[-;GoNext;IN]

*[NewStage6]
<muSt
<fadI
<isUn[lamback;5;6;0]<isPh[action]
<dely[180]<flgP[3260]<souv[help]
<dl60<jump[SelectStage]

*[NewStage78]
<muSt
<flgP[636]<fadI
<isUn[saucer;6;7;0]
<isUn[saucer;6;8;1]
<isUn[saucer;6;6;2]
<isPh[action]
<dely[360]<flgP[3270]<souv[help]
<dely[020]<flgP[3280]<souv[help]
<dely[120]<fadO
<flgP[3272]
<flgP[3282]
<trns[-;Pos1;IN2]

*[BeatStage7]
<muSt
<fadI
<isUn[saucer;7;7;2]
<isUF[3282;saucer;8;4]
<isPh[action]
<dely[240]<fadO
<flgM[3272]
<trns[-;Pos1;IN2]


//---------------------

*[point00]
<fadO<plDi[0]<stgS[0]<stgR<trIn
*[point01]
<fadO<plDi[1]<stgS[1]<stgR<trIn
*[point02]
<fadO<plDi[1]<stgS[2]<stgR<trIn
*[point03]
<fadO<plDi[0]<stgS[3]<stgR<trIn
*[point04]
<fadO<plDi[0]<stgS[4]<stgR<trIn
*[point05]
<fadO<plDi[0]<stgS[5]<stgR<trIn
*[point06]
<fadO<plDi[0]<stgS[6]<stgR<trIn
*[point07]
<fadO<plDi[0]<stgS[7]<stgR<trIn

*[point08]
*[point09]
<fadO<trns[09port;Start;Intro]

Before the game and its plot changed dramatically during development, the player entered levels on a non-linear world map resembling a planet. On the iOS release, the player would have used the touch screen to drag a red reticle onto the level the player wanted to enter.

It turns out that world map is still in the game's code, almost completely untouched since the development reset. Although in later versions the stage locations were rearranged to become a more basic level select, in 1.0.6.3 the map still very much fits onto the planet seen in pre-release footage. Additionally, the scripts meant to be run on the world map are present in island.pxeve, mostly functional.

This level select can be accessed in the debug menu, or by using the <isla script command in a level, albeit using the current background graphics of the room, with this format:

<isla[EventName;AnyNumber;AnyNumber]

Flags

The world map has unique functionality when certain flags are set:

  • When setting 32x0, where x is a stage, that stage will then become accessible on the world map. Interestingly, perhaps for debug purposes, all stages are unlocked from the start by default, being specifically triggered in the game-wide ResetAllFlags script.
  • If flag 32x1 is set, then that stage will have a blinking sprite above it, using sprites from the current language's localize.png. This is the "HELP!" balloon seen in pre-release screenshots and the early trailer, but with its graphics long since removed.
  • When flag 32x2 is set, a red "X" will appear over the respective stage. This was used to mark completed levels, as evidenced by the leftover scripts.

Scripts

IslandFirst
Stops the music, then after a second makes "HELP!" balloons appear over, and unlocks, Stages 1, 2, & 3, one by one. For each balloon, it tries to play the now non-existent sound help.ptnoise. Then, it jumps to SelectStage, the main script for the world map.

SelectStage
Attempts to load the music file area.ptcop, which no longer exists, but was apparently recycled into the final game's "Data Slot" according to its pxtone comments. If flags 3272 or 3282 are set, a flying saucer will float menacingly over Stages 7 and 8 respectively. However, these are also the "X" marker flags for those stages, suggesting that these flags were probably temporary while Pixel worked on other aspects of the game. Then, the player is allowed to choose a stage as normal.

IslandGo
Clears all moving objects from the screen, makes the player land at a level, then stays in the stage select screen forever. This is probably meant to be used internally, which would explain the fact that the script doesn't finish properly.

IslandCancel
Does absolutely nothing. Probably meant to be used internally as well. Note that in the final game, the player cannot exit the world map without entering a level.

Cleared1, Cleared2, & Cleared3
Meant to be used after beating one of those stages. The music from the previous screen continues playing, probably intended to be the stage clear theme. A green crosshair appears over the stage then disappears, followed by a red "X" forming over it.

Afterwards, it returns back to the room the player triggered the script, attempting to put the player at a position called "Return". The job of setting the level completion flag was likely done by the stage itself.

NewStage45
Stops the music, then unlocks and triggers the help balloon flags Stages 4 and 5. For each balloon, it tries to play help.ptnoise. It then returns to the previous room, trying to put the player at the position labelled "GoNext".

NewStage6
A red ship piloted by a rabbit appears at Stage 5 and flies to Stage 6. It then unlocks Stage 6, and plays the scrapped "help" sound effect, but either intentionally or due to not being finished, it does not set the "HELP!" balloon flag. The player then resumes the stage select as normal.

NewStage78
Sets flag 636, then spawns an exploding UFO at Stage 6, and other UFOs that hover around it, eventually dispersing over Stages 7 and 8 and making those stages accessible. The script once again attempts to play the help sound, but does not set the flags for the balloons. Finally, it sets the flags to make the UFOs appear while selecting a stage. It then returns to the stage, attempting to execute IN2 from that room's script.

BeatStage7
Spawns an exploding UFO at Stage 7, as well as the UFO at Stage 8 if its flag is still set. Then it clears flag 3272 and returns to the level, executing script label IN2 in the stage.

point00 - point09
These are the scripts run when entering a stage. As expected, they transport the player to the stage, but there are still a few oddities:

  • point00-point07 set the player's direction before entering the level. in the final game, this is handled by the stage beginning script itself.
  • point09 sends the player to 09port, an unused map.
  • point08 has no script, not even a script terminator. Due to how Kero Blaster reads its scripts, it runs the commands at point09, which sends the player to 09port.

Oddities

Episode Test

Though not technically unused, there exists an event spawner named TestEpisode placed to the left of where the player spawns in the first level. This event, named expEpisodeTest prints a string that references which campaign's global event file is loaded, either normal or Zangyou mode. This string disappears once the player walks right to the next area.

From the PlayStation 4 version onwards, the trigger was moved high into the air to make sure that the player couldn't get it. However, it's still possible to reach the trigger in normal mode by using the Jetpack in Omake mode.

This event's location is also where the player is spawned when leaving the debug room.

Bruhaha Hospital's Fake Ceiling

KeroBlaster BruhahaHospitalFakeWall.png

For some bizarre reason, the ceiling of Bruhaha Hospital is actually not solid despite its appearance. If the player could gain the height, they will find that not only is the ceiling non-functional, the player can stand on the glitched-looking blocks almost as if it were intentional. However, the hospital de-equips the player's Jetpack and weapons upon loading the room, so not only can the player not jump high enough, but they can't even shoot the ceiling to see that the bullets aren't stopped.

It's possible that this area was considered for something like a Kuro Blaster location, but scrapped out of fairness; how would the player even think to get a game over on purpose?

Trayne Station Unseen Ceiling

Located at the top of the exterior of the Trayne Station in both difficulty modes is a ceiling of glitched tiles. This was likely left in because it was thought that the player would be unable to see it. Quite the contrary, simply jumping high with the Jetpack while aiming up enables the player to get a glimpse of it.

Scrapped Boss Leftovers

Aside from being directly stated in later versions' flags.txt, there are multiple leftovers suggesting that a boss was planned to appear at the end of the White Laboratories glitch area (18field38).

  • Near the left exit, there is an unused shutter object. It can be triggered in-game by setting user flag 866 in the debug menu.
  • There are three fireworks objects left dormant, which are individually defined to explode after 75, 90, and 60 frames respectively when spawned. They likely would've been triggered after beating the boss.
    • These objects are not leftover from the credits scene this room is based on, as that cutscene only has one firework, and none of these objects have the same timing defined as that firework.

But the most damning piece of evidence is a single line in the script:

<chgN[BossScr2;-]

This suggests that the scrapped UFO boss was planned to appear in this room in Omake Mode.

RollingSpk9

Rolling Spark RollingSpk9
KeroBlaster RollingSpark.png KeroBlaster RollingSpk9.png

The lone faster variation of the rolling spark enemy found in Destination does not block the player's bullets, unlike the standard variation.

Maximum Coin Amount

There is a hard cap to the amount of coins the player can collect, that being 14,511. A seemingly random amount at first glance, this number is actually a reference to Kero Blaster's release date! In Year/Month/Day format, the number 14,511 is interpreted as May 11, 2014.

Alternate Pre-Greenery Zone Gift

Prior to entering the Greenery Zone, Sasuke will give the player a Life Pot. However, if the player already has a Life Pot, then he will give the player 100 coins instead. Now, this doesn't exactly compensate the player for the time commitment necessary to get a Life Pot this early, especially considering that a Life Pot costs 330 coins in the shop. Perhaps this was the original price for the Life Pot?

Unheard Fireworks Sounds

The fireworks seen in the credits make whistling and exploding sounds, as one would expect. This is never heard in-game, due to all sound effects being muted during the credits.

References