scummvm debugger
Moderator: ScummVM Team
scummvm debugger
I just discovered the existence of scummvm debugger, but I can't find detailed informations about supported commands and their syntax: does it exist a better method to know them, rather than looking into scummvm sources?...
No, there doesn't exist one (though you can type 'help' to get a list of commands). Nor do we have any plans to do so. This debugger is for use by the developers only, and those have no troubles finding out what each command does by looking at the source.
We discussed disabling it in release builds completely, but figured it could be nice to have it enabled to help remote analysis of bugs users encounter.
We discussed disabling it in release builds completely, but figured it could be nice to have it enabled to help remote analysis of bugs users encounter.
...so I'll have to ask here for questions.
For example, I read in another forum I can "change character", i.e. not being Guybrush but anyother of the characters....
I was only able to change my COSTUME: is this what they meant? Or can I actually "fit into" other characters and move them with the mouse?
Could at least the debugger help be improved, just to obtain a full list of available commands switches?
For example, I read in another forum I can "change character", i.e. not being Guybrush but anyother of the characters....
I was only able to change my COSTUME: is this what they meant? Or can I actually "fit into" other characters and move them with the mouse?
Could at least the debugger help be improved, just to obtain a full list of available commands switches?
WHat lazy guys...fingolfin wrote:No, there doesn't exist one (though you can type 'help' to get a list of commands). Nor do we have any plans to do so.
Let me try...
Code: Select all
continue, exit, quit = EXIT
restart = RESTART
actor
<actornum> <command> <parameter>
Use actornum=1000 to get number of actors
COMMAND values:
"animvar" ???
"anim" ???
"ignoreboxes" Allow walking anywhere
"x" Set position
"y" Set position
"_elevation" Set position
"costume" Set actor graphic appearance (use 'costume 1000' to get number of available costumes)
"name" Show actor name
"condmask" ???
actors Display actors data
box Display "walk-boxes" in text and graphical format.
matrix Display walk-matrix ???
camera Show camera position in format "cur (%d,%d) - dest (%d,%d) - accel (%d,%d) -- last (%d,%d)"
room
no parameter = show room
<number> = go to %"number" room
objects Display objects in current room
object <objectnum> <command> <parameter>
COMMAND values:
"pickup"
"state"
"name"
"pickup" BUG?
00497 if (argc == 3)
00498 _vm->addObjectToInventory(obj, _vm->_currentRoom);
00499 else
00500 _vm->addObjectToInventory(obj, atoi(argv[3]));
script
"kill" <number> | "stop" <number>
"run" <number> | "start" <number>
scr ???
scripts Display script data
importres
<restype> <filename> <resnum>
"scr"
drafts Command only works with Loom/LoomCD
loadgame <slotnum>
savegame <slotnum>
level Set/Display debug level
debug Set/display debug channels (???)
help
show ???
"hex"
"sta" (for STACK dumping)
hide ???
"hex"
"sta" (for STACK dumping)
imuse
"panic" - Stop all music tracks
"play" <number|"random">
"stop" <number|"all">
About object pickup: maybe I'm wrong, but it looks like if 3rd argument IS present it is IGNORED, else it is used...
- eriktorbjorn
- ScummVM Developer
- Posts: 3561
- Joined: Mon Oct 31, 2005 7:39 am
Possibly. After all, some of the games allow you to do that as part of the story. But it's probably just as likely that the game will get confused and/or hang because a character isn't where he's expected to be. Even such a relatively simple thing as "teleporting" to another room can cause strange things to happen.jumpjack wrote:For example, I read in another forum I can "change character", i.e. not being Guybrush but anyother of the characters....
I don't see any reason to try and make the debug commands any friendlier or more crash-proof. Most of them were probably added to help debug a specific type of problems. E.g. when support for the EGA version of Loom was added, it turned out to be useful to have a "drafts" command to list all the known and unknown drafts. This was then used to see if that information had somehow become corrupted, or when someone submitted a bug report and a savegame, but forgot to tell what the random drafts were in that particular game.
But I was the one who added it, and even I don't remember off-hand what all the data it prints means any longer. And I don't have to know, because Loom has been working fine for quite some time now.
Yup, exactly. Users can and will mess up their game state beyond repair using the debugger. That's why if at all I am interested in making it *harder* to use, or even completely disable it in non-development builds. If you want to use it, fine, do so, but anything that happens from that point on is totally your own problem .
Which is also why we won't include any documentation for the debugger, even if somebody else writes it .
Which is also why we won't include any documentation for the debugger, even if somebody else writes it .
prrrrrfingolfin wrote:Yup, exactly. Users can and will mess up their game state beyond repair using the debugger. That's why if at all I am interested in making it *harder* to use, or even completely disable it in non-development builds. If you want to use it, fine, do so, but anything that happens from that point on is totally your own problem .
Which is also why we won't include any documentation for the debugger, even if somebody else writes it .
- Adventureguy
- Posts: 162
- Joined: Sun Dec 25, 2005 4:09 pm
- Location: Karlsruhe, Germany
Now, come on! It's a lot of fun to mess with the debugger. Teleporting to the different rooms in a game can be as funny as changing the character costumes. It would be a shame that such an interesting toy in the VM would be missing. Besides, what possibility exists that you can damage your game files? I mean, there is not an option which could delete those files, is there?fingolfin wrote:Yup, exactly. Users can and will mess up their game state beyond repair using the debugger. That's why if at all I am interested in making it *harder* to use, or even completely disable it in non-development builds.
IndeedAdventureguy wrote:Now, come on! It's a lot of fun to mess with the debugger. Teleporting to the different rooms in a game can be as funny as changing the character costumes. It would be a shame that such an interesting toy in the VM would be missing. Besides, what possibility exists that you can damage your game files? I mean, there is not an option which could delete those files, is there?fingolfin wrote:Yup, exactly. Users can and will mess up their game state beyond repair using the debugger. That's why if at all I am interested in making it *harder* to use, or even completely disable it in non-development builds.
Being smaller than the mouse in the village or being BIG and with a hook rather than a hand is really funny!
And jumping around in every room I like and walking OVER buildings, too...
Other suggestions? Can I BE another character rather than LOOKING like him?
- eriktorbjorn
- ScummVM Developer
- Posts: 3561
- Joined: Mon Oct 31, 2005 7:39 am
I think this game is what you're looking for.jumpjack wrote:Other suggestions? Can I BE another character rather than LOOKING like him?
Guys, I didn't yet have a reply to this:
About object pickup: maybe I'm wrong, but it looks like if 3rd argument IS present it is IGNORED, else it is used...
Code: Select all
00497 if (argc == 3)
00498 _vm->addObjectToInventory(obj, _vm->_currentRoom);
00499 else
00500 _vm->addObjectToInventory(obj, atoi(argv[3]));
- eriktorbjorn
- ScummVM Developer
- Posts: 3561
- Joined: Mon Oct 31, 2005 7:39 am
No, argc and argv include the command as well as the parameters. So argc == 3 means there are three words (one command and two parameters), and since arrays start on index 0 argv[3] is the fourth word (the third parameter).jumpjack wrote:Guys, I didn't yet have a reply to this:
About object pickup: maybe I'm wrong, but it looks like if 3rd argument IS present it is IGNORED, else it is used...Code: Select all
00497 if (argc == 3) 00498 _vm->addObjectToInventory(obj, _vm->_currentRoom); 00499 else 00500 _vm->addObjectToInventory(obj, atoi(argv[3]));
Yes, but I think this IF structure lets argv[3] be used only if argc is DIFFERENT from 3! Or not?eriktorbjorn wrote:No, argc and argv include the command as well as the parameters. So argc == 3 means there are three words (one command and two parameters), and since arrays start on index 0 argv[3] is the fourth word (the third parameter).jumpjack wrote:Guys, I didn't yet have a reply to this:
About object pickup: maybe I'm wrong, but it looks like if 3rd argument IS present it is IGNORED, else it is used...Code: Select all
00497 if (argc == 3) 00498 _vm->addObjectToInventory(obj, _vm->_currentRoom); 00499 else 00500 _vm->addObjectToInventory(obj, atoi(argv[3]));
from the non-SCUMM debugger department:
BASS:
http://www.unet.univie.ac.at/~a0200586/ ... rivia.html
kyra:
http://wiki.scummvm.org/index.php/Kyra_ ... andia_1%29
http://wiki.scummvm.org/index.php/Kyra_ ... andia_1%29
hope that helps (you screwing up your games for good)
clem
BASS:
http://www.unet.univie.ac.at/~a0200586/ ... rivia.html
kyra:
http://wiki.scummvm.org/index.php/Kyra_ ... andia_1%29
http://wiki.scummvm.org/index.php/Kyra_ ... andia_1%29
hope that helps (you screwing up your games for good)
clem