OK, it's about time I released this stuff!
KNPUtil is a collection of 3 utilities for fiddling with Klik & Play games:
KNPExtract and KNPGen have been released before. This release brings much improved image loading times to both tools, as well as support for 16-bit images. KNPExtract also now can generate animated GIFs from animations, extract sounds and music, and provide meaningful filenames to everything it extracts.
Detailed usage instructions are in the readme. The tools are all designed to do something cool if you drag Klik & Play games onto the EXEs from Windows, but KNPMangle especially rewards a deeper understanding of its commandline options.
If you're getting error messages when you try to run the EXE, you may need to install the Visual C++ 2008 Runtime from Microsoft.
Enjoy!
Attachment | Size |
---|---|
knputil.zip | 1.61 MB |
Comments
AWESOME
Man oh man, I can't wait to try KNPMangle out.
Yes, yes, yes! 371 games,
Yes, yes, yes!
371 games, here we come!
Edit: Erm, one question before I destroy my lovely Trainwreck collection... where exactly does knpmangle output go? I'm not really sure I want it to overwrite everything...
It gets put in a new folder
It gets put in a new folder inside the game's folder. I wouldn't destroy your data! Promise!
How hard would it be to make
How hard would it be to make a program that -imports- images into KNP games? Cause I have all this stuff left over from Assembly you see
There are still a couple of
There are still a couple of fields in the image resource format that I don't understand. They may or may not matter, but I'd need to do more experimentation to find out. Animations are tougher, because there's lots in the GAM file format I don't understand.
I might as well say it here
I might as well say it here because I'm not sure where this might be useful:
To use KNP's 'import' functionality in the animation editor with box images
1) all frames must be contained within rectangles of a single color, which are separated by a second color
2) none of the stuff in these rectangles can touch the border otherwise it fucks up
like in the image. try importing it and see it works
Then all we would need is
Then all we would need is something that remaps animated gifs to the KnP palette, and sticks it in some boxes? That sounds doable.
I've found a way that works
I've found a way that works even better. Surround your images as so:
Bugfix
Or at least it makes an exception go away.
knpmangle.py
was:
def RgrfMangled(self, rgmangler, ext):
fnOrig = self.knpextractor.Fn(ext)
if os.path.exists(fnOrig):
rgrf = list(self.knpextractor.RgrfFromHdr(fnOrig))
for mangler in rgmangler:
if mangler.ext == ext:
rgrf = mangler.Mangle(rgrf, self, self.knpextractor)
return rgrf
return None
fixed:
def RgrfMangled(self, rgmangler, ext):
fnOrig = self.knpextractor.Fn(ext)
if os.path.exists(fnOrig):
rgrf = list(self.knpextractor.RgrfFromHdr(fnOrig))
for mangler in rgmangler:
if mangler.ext == ext:
rgrf = mangler.Mangle(rgrf, self, self.knpextractor)
return rgrf
return []
I love how KNPMangle makes
I love how KNPMangle makes certain games literally unplayable.
And yes, those cats are the fans. Actually, wait, I take that back. I'm not even sure _what_ the fans are now, to be honest.
Edit: This had to be done:
I actually couldn't pass that area because the terrain had completely changed. I kept hitting the spikes while trying to get onto that little ledge.
The mangler should at least
The mangler should at least -try- to use images of the same size.
Yeah, there's lots more good
Yeah, there's lots more good stuff that is totally doable, but I figured I'd fiddled with it enough and it was time to get it out there. I totally want to add such a feature.
oh god where is it
oh god where is it
also
also
all games should end with you becoming god
Oh dang it all
It seems I can't get any of these to run. I'm on Windows XP, and I get the message:
"This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem."
Running it from the command line gives me:
"The system cannot execute the specified program"
Is there some runtime I need to install? Am I using the wrong number of bits (32)?
Well, balls? You really
Well, balls?
You really shouldn't need anything special installed to run them; I'm sure I tested KNPMangle with a bare XP install when I put the Kart together. Do you need a Visual C++ runtime installed, maybe? (If the Pirate Kart runs, then you've got that installed. Does the "Dusty kart" button on the pirate kart work?)
You could always just install a Python interpreter and PIL and run it from source.
I never installed the Kart
I never installed the Kart on this machine, and your suggestion matches a lot of the results I found for those errors ,so it's probably the Visual C++ runtime thingamajig I need.
http://www.microsoft.com/downloads/en/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
I'll give it a try once I get home.
I think the VC++ 2005
I think the VC++ 2005 redistributable might be a better bet?
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en
Hard to know, I guess. Let me know which one works.
Any reason to prefer the
Any reason to prefer the 2005 version over the 2008? Is that the specific version you used to make it?
OK, I'm wrong, the Py2exe
OK, I'm wrong, the Py2exe tutorial says to use the 2008 installer for Python 2.6 and up. Let me know if that fixes it for you.
Basically, the 2008 version is not backwards compatible with the 2005 version, so it really depends on what compiler was used to build the version of Python that I shipped with KNPUtil. The Lua for Windows binaries were all still built with Visual Studio 2005, which is why I thought that maybe Python would need it as well. (The Kart installs both because I had to build my own interpreter but didn't want to rebuild all the libraries, and VS2005 dies horribly on 64-bit Windows 7.)
There we go!
Yup, the 2008 installer did the trick. Thanks again for making these tools!
Hooray! I'll add a note to
Hooray! I'll add a note to the download.
Honestly, reverse engineering the Klik & Play file format is just a lot of fun. Just thinking about it makes me want to continue my work again, start figuring out how the events are represented, and build a little (buggy, incomplete) KlikVM.