Here is how to access the debug mode in King's Quest IV, or any other early SCI game, press LSHIFT+RSHIFT+"-" (the numeric keypad minus key). (make sure Num Lock is off) A debug window will open in the top right-hand corner. To exit the debug mode, press Shift-D.
While in debug mode, press "G" . Enter "13" in the Global variable and press enter. You will now see the number assigned to the current room. Change the number, to the room number you wish to teleport to. For a list of room numbers for KQ4, see the KQ4 map page.
To get an object:
press I from the main window. In the next window that appears, type in Inv. This is a collection, so hit C for collection. Keep hitting ENTER until you see the object you want. Now, you'll want to change where the object is located. Hit E for edit, and type location. In the resulting window is the number of the room that the object is located in. Delete that, and type in ego.
All global variable values can be changed. Changes will take effect after exiting DEBUG.
|1 - Game ID (Example kq1)||Read only (@)|
|2 - Room number (Ex. rm8 for room #8)||Read only|
|3 - Speed||0 - Max, but 99 is quite slow|
|4 - Unknown|
|9 - Pointer to object inventory||Read only|
|12 - Previous scene number|
|13 - Scene number||Teleports to room number entered.|
|14 - Breakpoint flag||If non-zero, Auto-DEBUG on room CHANGE|
|15 - Score||New score is displayed only after next non-DEBUG change.|
|16 - Max Score||New score is displayed only after next non-DEBUG change.|
|30 - Pointer to SG Directory.||Use INSPECT to view SG directory.|
Global variable's marked with (@), attempted value changes have no effect. They are automatically restored. Here are the debug commands.
|Key - Command||Notes|
|q - Quit||Quit immediately|
|t - Temp variable||Inspect temp variable|
|a - Inspect||acc|
|i - Inspect||See chapter "Inspect"|
|o - Object||See available objects.|
|r - Resources||See resources|
|s - Send stack|
|d - Display memory|
|f - Free heap|
|g - Global variable||Inspect global variable|
|l - Local variable||Inspect local variable|
|b - Break in (If object value is changed, Auto-DEBUG)|
|c - Inspect current object|
|Up, Down, Left, Right||Scroll|
|[,]||Move to address|
|c||Collection: If you press C while inspecting Inv, you can get Inventory List.|
Use inspect subcommands recursively. Example While viewing Inventory List, assign ego address to owner. ego, owner are objects. So you can collect all treasures at any time. Write ego in lower case.
You can inspect hex address of memory (Example $3455) or any object (Example, Sound)
You can help keep The Sierra Help Pages alive by helping to defray some of the costs of hosting this site. If it has been of help to you, please consider contributing to help keep it online.Thank you.
© 2006 to present The Sierra Help Pages. All rights reserved. All Sierra games, artwork and music © Sierra.