The Debug Menu

KITTL_Debugmenu.png

The Debug Menu was used to quickly test things out and to make it easier for me to get to certain parts of the game, but I left it in just in case players wanted something to mess around with. Once entered, use arrow keys up and down to select a option, and Space key to go to the selected screen. Left and right adjusts settings and variable numbers in the game, such as the number of coins, hit points, and so on. It also lets players go to any level or room in the game, including test areas not encountered in normal play, look at the sprites and backgrounds, and listen to all the music and sounds.

Also displayed in the Debug menu is some basic information about the game, like the date the game started being worked on, the compilation date, current build number, version number, and the Game ID. In later revisions post-V1.6 of the final game, a date for when the first build of the final version was compiled was added, as well as the build number of that version.

--DEBUG MAIN--

The main screen of the debug menu. The following options are:

CASH BANK - Leads to a menu for setting the values of basic stuff, like the amount of lives, coins, diamonds,
and the total value of coins and diamonds
LEVEL - List of most rooms relevant to this game(spanning four screens). A few rooms are not listed here, but can be accessed via the LEVEL option in DEBUG.
 LEVEL - A list for rooms in the game that are not levels.
  LOGO - The Logo screen
  TITLE - Title Screen
  MAIN MENU - Kazooie's Living Room(well, the Main Menu really)
  WORLD SELECT - Episode Select Screen
  PASSWORD - The Cheats screen. Note the word "Password"; it was originally going to be a password system(some remnants from this idea are present as leftover GML code, but commented out.).
  ENDINGDEMO00-ENDINGDEMO06 - Ending Screens
  STAFFROLL00 - Credits screen
  STAFFROLL01 - Alternate Credits
  TITLECARD_EP1-TITLECARD_EP7 - Episode Title Cards
  MINIGAME1-MINIGAME8 - Minigame Titles. Entries 2, 5 and 6 are unused.
  BINDER01-BINDER04 - The Main Coffee Table Book screens
  ALL_TREASURE - The All Treasures Screen
  RESULTS - Results Screen
  COPYRIGHT - The Copyrights seen at startup
  NOTICE_STARTUP - Startup notice screen. Unused in final game
  END_RESULTS - A screen intended to come after STAFFROLL00, similar to the end results screens in Wario Land II. I didn't finish it due to lack of time.
 LEVEL(2) - List of levels in the game, including boss rooms. Pick the level you'd like to play.
 LEVEL(3) - The same set of levels as the previous screen, only the names of them differ. As indicated by the names, it was planned for harder versions of the regular levels to be in the game, just like in Crower VS The Time. This was dropped early on, likely because it wasn't needed due to the difficulty of the levels being progressively hard, and the game takes very long to complete anyway.
 TESTLEVEL1 - Contains a number of rooms that were used for testing specific things and features of the game. Not all tests rooms are featured here.
  BOSSTEST0 - An room containing an type of boss object not used in any of the normal boss rooms. It was more of a test to make it switch to a sprite appropiate to the direction the object faces. It never worked too well.
  BOSSTEST1 - World 1 boss testing room.
  BOSSTEST2 - World 2 boss testing room
  BOSSTEST3 - World 3 boss testing room. Has a boss object not used as the boss for World 3.
  BOSSTEST4 - World 4 boss testing room. Has a boss object not used as the boss for World 4
  BOSSTEST5 - World 5 boss testing room
  BOSSTEST6 - World 6 boss testing room
  BOSSTEST7 - World 7 boss testing room
  ENEMYTEST1 - Enemy testing room
  ENEMYTEST2 - Another enemies test
  OBJDEBUG_TEST - A wide, empty room used mostly for placing objects with the Object placement feature of the debugger, to test their appearance.
  PLAYER_TEST - Room for testing player physics and interaction with objects.
  ENEMYTEST3 - Enemies test.
  ENEMYTEST4 - Despite this entry's name, it leads to an almost empty version of the 3rd minigame Beach Surfer. This room was used to test how the minigame worked like, but most of it were removed to free up space for new stuff.

DEBUG - Leads to an screen with even more options. This is the screen where users can turn on or off the Debugger.

--DEBUG--

LEVEL - Allows the user to set the internal room value. The current room's debug name is also shown. Room IDs range from 0 to 384.
DEBUG MODE - Toggles Debug Mode on and off.
GRAPHIC VIEW - Goes to the sprite viewing screen, where all the games graphics can be looked at.
Sprite IDs range from 0 to 553.
BACKGRD VIEW - Goes to a screen for viewing background resources. Background IDs range from 0 to 121.
BINDER DEBUG - Leads to a screen for testing certain features of the Coffee Table Book.
 TREASURE SHOP - On this screen the player can set which treasures have been obtained.
 ENEMY SHOP -
Goes to a sreen for setting which enemies have been beaten, and the number of respective enemies defeated.
 GOODIES SHOP - Screen for setting what features of the Goodies page have been unlocked.
 STATISTICS SHOP - Meant to be a screen for adjusting things in the Statistics page of the Coffee Table Book. Was never really started on, and this option simply leads to a duplicate of the TREASURE SHOP Debug screen
 EPISODES - Adjusts the number of episodes currently available. ALL UNLOCKED(UNUSED) is, as evident by the name, literally unused. Not only are all the episodes unlocked, but a choice to go to the ending is also added. The ending can be viewed from the Cutscenes page in the Coffee Table Book, making this option rather redundant.

SOUND TEST - Goes to the Debug Sound Test. All music and sounds can be listened to, and a number of ones that ended up not being used.
Sound Test options:
 SOUND - The internal Sound value. Can be set via Left and Right direction keys, Space plays the sound. Sound IDs range from 0 to 194.
 BGMTEMPO - Sets the tempo of midi music. Range is 1-50. Default is 10.
 DISCARD_SNDS - Usually set to 0. Was intended as a way to load and unload sounds to and from memory as requested, in order to optimize the game more. It didn't work too well in my tests, so it was scrapped.
 EXIT - Goes back to the Debug screen

EXIT - Goes back to the main Debug screen


With the Debugger turned on, the following additional controls are made available:
S Key - cycles backward through available debug options
X Key - cycles forward through available debug options
C Key - Performs the option/turns debug parameters/variables on or off
A and Z Keys - sets the value of an option, like object-placement, to the value as seen on the option being displayed.
W Key - Goes back to the debug menu.
E Key - sets the type of credits at the Staff Roll screen
R Key - toggles the Ending flag on or off
V Key - toggles debug info
F Key - Takes a screenshot
Y+Backspace - Brings up a dialog box where the user can input cheats. Is a leftover from Crower VS The Time, but it was also used in place of the Cheats screen early on in development. This only works if the main player object is present.

Also, the room you currently were in is remembered by the game, so players won't have to worry about endlessly scrolling through level values in the Debug screen just to get to the desired screen.

Available debug options:
Option 1 - unstopable= Sets whether the player has infinite hearts. Is used for testing purposes, but is otherwise useful for players of the cheating type.
Option 2 - obj= Enables object placement mode. Objects range from 0 to 705(ID 0 is the main player object, obj_kazooie). The internal name of the currently selected object is also displayed.
Option 3 - sync= toggles synchronization on or off, just like the D key.
Option 4 - autodraw= toggles autodrawing. Usually on by default.
Option 5 - gamespeed= sets the game speed. range= 1-400. 60 by default
Option 6 - wallcollide= sets whether walls are solid or passable
Option 7 - woodstock= sets whether getting rid of all enemies in a room will clear it or not. If turned off, the event doesn't trigger, which means the user can continue to explore the area after more treasure until time runs out. Usually used for testing purposes.
Option 8 - viewsize= adjusts game view size, 600 600 are the size for non-level rooms, 700 700 are the default size for views in levels
Option 9 - timefreeze= freezes the timer in levels.
Option 10 - errormessage= Enables or disables error messages.
Option 11 - Boundary-View= Sets whether or not to make solid walls/controller objects visible.

One noticable bug to mention here; if "unstopable" is turned on, when the timer gets past 0, the music cuts off as usual, but Kazooie won't be kicked out of the level, and the player can continue on as if nothing happened.

If in object-placement, an cross cursor appears on the screen. C key places the object at the position the mouse is on. Do note that if trying to place a nonexisting object, the game will hang.