the cutting room mirror

PiTest

Finally, for the first time since Kero Blaster, a platforming game from the brilliant mind of Studio Pixel!

...Huh?

It's not a game?

...It's a testing application?!

...Well, that would explain a few things...

"sidelle sidelle.."

Debug Menu#

PiTest contains a debug menu similar to that of Kero Blaster, but somehwat more advanced. To easily access it, you must perform the following modifications to the game:

Download Extract data.bin

File: PiTest_ExtractData.zip (2 KB) (info)

  1. Extract data.bin using this Python script.
  2. In the extracted data folder, go to the system folder. In sysmenu.ini, on the line "manual =no" to be "manual =yes".
  3. Recompile data.bin, again, with the Python script.
  4. Open program.exe in a hex editor. In the hex editor, replace the value at address 0x001F8A1 with 0C.

Once this is done, from now on selecting "Manual" in the system menu will open the debug menu.

(Source: Alula (method), Rain (Python script))

Like in Kero Blaster, the debug menu consists of a screen covered in buttons, though here they are much smaller.

show logs#

Displays the debug log on the side of the screen as it is being written.

show info#

Like in Kero Blaster, it displays the amount of scenes stacked, spinning bars are shown underneath the framerate counter, and NPCs have their Param2 value displayed next to them. However, a great deal more is displayed in PiTest, including:

  • The percentage of the allotted RAM that certain parts of the game use.
  • The player's position in the overall world.
  • To what degree the player's controls are locked by script commands.
  • The script label that can currently be skipped to.

show tch#

While in Kero Blaster this option revealed the collision boxes for touchscreen buttons, in PiTest it has the arguably more useful effect of showing the collision boxes for the player and all NPCs, as well as the attributes of all tiles.

Params#

This screen looks almost identical to how it appeared in Kero Blaster. Only one problem, though: there are no parameters to change, aside from nine squares that start out invisible until the player selects them. If the player selects any of them, an error message will appear, and when the player reopens this menu they will be de-equipped again.

user flag#

Allows the player to modify flags used by the current save file.

game flag#

Lets the player change flags used by the game as a whole. No global flags are ever set in PiTest, leaving this menu pointless in normal gameplay.

save#

Opens an otherwise-unseen save screen. Selecting any of the files will save the game. Due to the lack of any file selection-related text in PiTest, the game throws up an error message whenever the save screen is accessed.

stage#

Lets the player view a map of the entire game world, with rooms being unlocked as the player enters them. An error message is brought up, apparently from trying to load a texture file that doesn't exist. Selecting any of the rooms softlocks the game.

BGM test#

Lets the player view all the music files in the game, and play them at will. When the cursor is moved over a name, its internal numerical ID will be displayed.

The background uses a unique music note pattern, whereas all other menu backgrounds are reused from Kero Blaster.

Integer#

Allows the player to modify integers defined in integer.ini. In PiTest's case, the only option is a normallyzhidden coin count. Apparently, the player has 103 coins at all times.

export PNG#

Exports all of the currently-loaded textures into prof-t/tex.

Non-Functional Options#

bgm
Unknown.

invlnrble
Makes the player invulnerable in Kero Blaster, but is useless here since there are no enemies (and the player code for PiTest doesn't seem to register damage from NPCs anyway).

Field Jump
In Kero Blaster, this made arrow-shaped warps appear in many maps throughout the game. As there are no warps in PiTest, this does nothing. Notably, selecting this option sets flag 41, whereas in Kero Blaster it set flag 11.

Scene Skip
Again, since there are no cutscenes, there is nothing to skip.

god
Works in Kero Blaster, but not here.

Map Backups#

The maps 00rmWeight.pxpack and 00rmLast.pxpack have unused earlier versions found at 00rmWeight.pxpack.bkup and 00rmLast.pxpack.bkup, respectively.

00rmWeight#

Early

Final

  • One bubble spawner is present, placed exactly in the center of the room. The final version has two bubble spawners: one at a slightly different spot in the top alcove, the other at the bottom.
  • The spawner has a Param2 value of 35, whereas in the final the top spawner has a value of 25 and the bottom one a value of 10. This change was likely done to help the player get a better grasp on the sheer amount of moving objects in the room.

00rmLast#

Early

Final

  • The report-printing penguin's computer is three pixels further to the left. Aside from this, the room is identical.

Unused Graphics#

attribute.png#

The spritesheet that was used for Kero Blaster's level editor to display tile attributes reappears here. Some notable additions include perfectly curved blocks, solid arrow blocks, and an unknown dot located alongside the mud, ice, and snow tiles.

fuTest.png#

PiTest_GreenAlien.png
A green alien. Given its close proximity to the bubble graphic, it may have been an alternate design for the duplicating bubbles in the NPC testing room.

PiTest_GirlGlanceBehind.png
A sprite of the girl who stole the sunflowers glancing behind her, or looking away in shame.

font.png#

PiTest_UnknownSymbol.png
The symbol used when an unaccounted-for text character is printed has been updated since Kero Blaster.

PiTest_CoinSymbol.png
In place of the dollar sign ("$") symbol, there is a coin graphic, just like in Kero Blaster. As there are no coins, this obviously goes unused.

dialo2.png#


This entire spritesheet is unused in normal gameplay. These seem to be sample graphics for things like the player's health, enemy and boss health, batteries(?), and more. The clock and calculator graphics are used on the save file screen, which would eventually be used in Haru to Shura.

Unused NPCs#

To do:
Record footage of non-self-explanatory NPCs, as well as map out NPCs.

goal#

gondola#

snowset#

title#

A placeholder title screen object. It would eventually be used in Haru to Shura, where it displayed that game's logo.

license#

A placeholder license information NPC. See above.

pushkey#

A blinking object that would have instructed players on the title screen how to start the game. Once again, this was used in Haru to Shura, although the graphics used there are the exact same as here.

Unused Sounds#

dlg_save.ptnoise
The filename suggests this would be used when the game is saved, but it doesn't even pop up in the unused save selection screen.

dlg_pi0.ptnoise
Used in the debug menu when selecting an object.

dlg_pi1.ptnoise
Used in the debug menu when deselecting an object.

Unused Sound Filenames#

In the executable of Pixel's programs, there is a hardcoded list of filenames for sound effects to be played at some point by the game. This list is far longer than the amount of sound effects actually present in the game files.

These sound effect filenames are all leftovers from Kero Blaster:

airstep
appear
arms_beam
blst_fire
blst_weed
boost
bubble_l
bubble_s
crab_jump
crab_land
dash
destroy1
destroy2
destroy3
disappear
dlg_click1
dlg_click2
dlg_exclam
dlg_nod
elecnoise
electric
ene_call
ene_leaser
ene_shot_s
fall_s
fire_l
fire_s
hit_kiss
hit_wall
icepick
mpc_dead
mpc_dmg
mpc_ladder
mpc_swim
mpc_tread
quake
shutter
snow
soil_land
splash_s
stream
teleport
tire
translight

These sound effect filenames are unique, and are not known to be used by any other game:

To do:
Are these filenames used by Guxt, Soaprun, Akantares, Azarashi?

bbl_dead

blk_dead
blk_dmg
blk_land

bom_burne
bom_drop

crow_s

dlg_tlk_df
dlg_tlk_l
dlg_tlk_m2
dlg_tlk_s

door_close
door_open

ene_dead_L
ene_dead_m
ene_dead_s

ene_dmg_boss
ene_dmg_L
ene_dmg_m
ene_dmg_s

ene_jump_L

ene_spring

eruption

evapor

inhale

jetpack

mpc_charge
mpc_ripple
mpc_shot
mpc_smslt

no_damage

obtn_batt
obtn_dot
obtn_life
obtn_money

plnt_dead
plnt_dmg

sing_fall

smoke

splash_L
splash_M

thunder

wind_noise