Tools, assembly, and file formats.
Post Reply
Posts: 554
Joined: Sun Jul 05, 2009 12:32 pm


Post by lemm » Fri Sep 09, 2011 8:39 am

IdAction is a tool written in Visual Basic that allows the modder to create sprite behaviour patches in a GUI environment. In many of the Id/Apogee games (Keen Dreams/Galaxy, BioMenance, Rescue Rover 2), there is a system of "Actions" that serves as a foundation for A.I. behaviours. By chaining together actions, and assigning each action different properties (such as movement, sprite frame, animation length, and AI code), one can create new game characters easily, without knowing any assembly code. The program won't do everything, though; the patch index must still be used in conjunction with IdAction because there are still many things you cannot accomplish through actions alone. See the KeenWiki page on actions for more information on how they work.

The program requires a Database for each episode (generated by me) as a starting point. This database contains the list of actions, functions, and references to actions. After openining a database (.txt file), you can then edit the actions and behaviours in the action and function editor windows. You can save your work in progress as a separate database. When you are ready to test out your patch, click "Generate Patch" and run the game with CKPatch.

The program is incomplete, and might crash if you try to repeatedly open databases, and may also generate errors if you put in a bad value (I'm removing these errors), but it's functional.

Future features include:

- A window that lets you see all the actions that belong to a game object (ie, a "Sprite")
- A graphical map of the actions that belong to an object. The actions are to be represented as boxes, and the action flow will be represented by lines.
- An animation preview, provided you supply the graphics.
- Databases for Keens 5,6,D and maybe Biomenace as well.

Download (Sep 9, 2011):

User avatar
Site Admin
Posts: 490
Joined: Fri Dec 12, 2008 1:33 am
Location: Blogham Tower

Post by Fleexy » Sun Sep 11, 2011 11:24 pm

Awesome. Some of the drop-down boxes need labeling, but I was able to blunder around and generally figure everything out. My main concern is that the generated patch files are HUGE (42K). I think that it would be possible to only write a patch for the changed functions using a sort of "edited" flag.

Posts: 2997
Joined: Wed Oct 11, 2006 12:03 pm
Location: Ngaruawahia New Zealand

Post by levellass » Tue Sep 13, 2011 12:01 pm

Indeed, that is vitally needed if people are to add these patches to a patch file.

(You may need an 'export to patch file' option that would append the patches to the end of a player's patchfile, overwriting any other IDAction patches already there. Startext does this by prefixing it's patch section with a string #***. It's not perfect, but it's a start.)

Posts: 583
Joined: Thu Mar 17, 2005 11:54 pm
Location: NY

Post by Stealthy71088 » Fri Sep 16, 2011 2:17 pm

Suddenly, modding keen just got a hundred times more interesting. Obviously there are memory limits as to what this can do. Can we mix and match behaviors from other episodes and games than the one we are working with? Also, is there room for us to add additional sprites, or would we only have room to replace the existing ones?

Posts: 2997
Joined: Wed Oct 11, 2006 12:03 pm
Location: Ngaruawahia New Zealand

Post by levellass » Wed Sep 28, 2011 3:51 am

We could already do all of this, now we have a tool for it.

*hem hem*'

We can mix and match behaviors from other galaxy episodes, even other games like Biomencace, and write our own custom behaviors (So far mostly collisions have been done.) but the different way things are compiled must be taken into account, Keen 4's tile blocking check is different (Well, called differently) from Keen 5s and so on, so some tweaking is needed to make imported code work.

Unless you replace an existing behavior you'll need to free up some space for new behaviors. The F10+M and F10+T cheats have some space in them if annulled.

User avatar
Posts: 71
Joined: Sat Feb 05, 2011 7:04 am

Post by Gridlock » Wed Sep 28, 2011 8:50 pm

When I try to run the executable, I get an error that I don't have the latest version of a file called "COMDLG32.OCX." I did a google search and found a few downloads for it, but I didn't completely trust the sites I found. Does anyone know an easy, safe way to get this updated?

Edit: I downloaded the file and ran the necessary command prompts, but I'm still getting the error upon running the .exe: "Failed to load control 'CommonDialog' from COMDLG32.OCX. Your version of COMDLG32.OXC may be outdated. Make sure you are using the version of the control that was provided with your application."

Edit 2: I tried IDAction on a 2nd computer that has Windows 7 and got a similar error regarding COMDLG32.OCX

Edit 3: Finally I got this to work. If anyone else gets this problem I can help.

User avatar
Deputy Administrator
Posts: 401
Joined: Wed Sep 03, 2003 2:35 am

Post by Ceilick » Sat Oct 01, 2011 7:34 pm

I see you've gotten it to work, but for future reference you just need to download the file and put it in the same directory as idaction. ... nload.html

Testing idaction now...

Edit: Awesome, managed to make the slugs follow Keen.

My main issue is not entirely understanding the action system (even after all this time :P ) and what exactly each drop down menu does. The wiki doesn't feel very beginner friendly concerning these things either. A stronger explanation of these concepts in layman's terms is needed--something I'd be willing to work on once I figured it out myself.

Post Reply