PDA

View Full Version : Kid Chameleon Editor Back in Works



saxman
10-30-2008, 01:59 PM
After stopping all work on K-E (http://www.romhacking.net/utils/557/) a long while back, I decided to continue work on it. Over the past few weeks, I've been adding a couple little features to it. I still don't know about compressing the edited data, but maybe I can figure something out.

I'll keep you posted exclusively on these forums.

Also, I want to make mention of Wikid Chameleon (http://kidchameleon.wikia.com/). I've been contributing a lot there, so if you like Kid Chameleon, perhaps you'll find that of interest.



Changes so far

KidEdit:
- Bug fix -> Resolved a few memory leaks
- Bug fix -> Drills no longer eroneously appear on the borders of maps
- If no theme entered, the proper theme will be auto-detected
- Collision modifiers now visible and editable
- F12 now saves in BMP format instead of PCX

KidTool:
- New "block" option to dump map with only a specific type of block
- New "kidedit" option to recreate the 'kidedit.dat' file
- New "decompress" option to decompress data at a specified ROM address
- Speed and time bonus information now shown with the "info" option
- Ghost blocks now dump in maps with level designer's original intentions

Plans:
These are preliminary, but I'd like to make platforms modifiable, as well as player start position, flag position, and enemy layouts. All this depends on what art I can locate in the ROM. I don't like to dump art from VRAM. I'd like everything possible to be dumped directly from the ROM itself. That's the way the editor has been designed from the beginning, and I'd like to continue that. So before I support enemy layout for instance, I'd like to locate the enemy art in the ROM first.

The very last thing I'd like to do is have the map and theme data recompress and insert into the ROM. I think it makes more sense to save this for last.

Christuserloeser
10-30-2008, 02:01 PM
Great to hear that! :)

- Do you think it's possible to add SRAM support or a password system to the game ? It's really one of my favorite American Mega Drive games, along with the Toejam & Earl series. All that's missing would be a way to save your progress.

saxman
10-30-2008, 02:31 PM
If we reverse engineered some of the code, it would certainly be possible to add SRAM support. That would actually be easier than adding a password feature. That said, I personally will not be going into that. It's a little too in-depth for the focus that I am most intersted in which is level design =)

Christuserloeser
10-30-2008, 02:39 PM
haha, okay. I just wanted to ask if something like that is possible at all. Good to hear that it is :)

CMA Death Adder
10-30-2008, 03:12 PM
After stopping all work on K-E (http://www.romhacking.net/utils/557/) a long while back, I decided to continue work on it.

I'm quite glad to hear this. I hope the process goes smoothly and that you're comfortable with it, and I'm anxious to hear of any progress as it comes along. :)

Aqua Hedgehog
10-31-2008, 04:41 AM
Dude, I love Kid Chameleon! I wish I could give rep to the same post twice, but I'll have to do it as close as I can get it.

saxman
11-08-2008, 11:59 PM
The player and flag positions are now visible and editable. I know where all the enemy art is, so now I just need to implement them. Also, collision modifiers are now visible and editable.

Here's what things look like so far:
http://img526.imageshack.us/img526/2422/kideditbkl7.png

Mr Smith
11-09-2008, 04:54 AM
http://www.megadrivechamps.org/frantic.gif
How utterly awesome! I cannot wait until this is completed and we can all start throwing out some custom levels to challenge each other on - as if Kid Chameleon wasn't tough enough before :D

Alianger
11-09-2008, 05:26 AM
That's great! Have you considered graphics editing as well?

saxman
11-11-2008, 07:14 PM
RELEASE 11/11/08
==== beta test ====

PROGRAM - http://www.4shared.com/file/70865903/992a66a6/Ke_-_111108.html

MAPS/THEMES - http://www.4shared.com/file/70865881/be3fe7b5/Ke_-_111108_extras.html

It's still incomplete, but I want to know what anyone thinks as far as usability. Are there things about it you would like to see made better somehow or disappointment over a lack of a certain feature or abbility (minus enemy and moving platform placements -- I'm working on them)? I want to make it easy to use, and I barely got any feedback the last time, so I'd like to see if I can get a little this time around =) But pretty please, don't reply with "cool!" and give me nothing to go on that I could use to possibly improve the program. I want criticism! Rip it apart and spit in my face if you want =D

You'll need the maps and themes to be able to do anything with this, unless you know what you're doing with KidTool (and that's really for more advanced users). Maps from the previous release will not work properly with this release because I made one minor adjustment to the format that threw everything off, so throw away the old maps.

Read the KE.TXT file for some information on how to use my programs.

KidEdit has the same features I've noted in the top post, but now you can modify player and flag positions. Click and drag the mouse to move them.

For anyone interested in the decompression feature I added to KidTool, here are some ROM addresses to compressed data:

00CAB2 - Holograms
019C68 - Level title card letters
01DA86 - Intro text letters
01E6E3 - Dark alley from intro
020D36 - P block from intro
0213D9 - Red Stealth helmet from intro
0216B7 - Juggernaut helmet from intro
0219C1 - Maniaxe helmet from intro
022080 - Title "CHAMELEON"
024985 - Title "KID"
024CD0 - Computer behind grid walls
026036 - Title menu
0261D7 - Kids hanging around Wild Side
026E3D - Red Stealth transformation and still from intro/title
0282C1 - Juggernaut transformation and still from intro/title
02927C - Maniaxe transformation and still from intro/title
02A479 - Title sparkles
02A756 - The kid transformation from intro
02A961 - Background on title
02A992 - The kid from intro
02D71A - Background for intro (Wild Side)
02D73B - Wild Side arcade
02DEBF - Wild Side door and inside
09729F - Outline of some sort?? (can't make anything from it... may not be anything)
0992E4 - Blocks
099F34 - HUD numbers
09A7D2 - Spinning rock (loaded into VRAM, but unused in the game)
0C8800 - Enemy: Dragon
0CA1ED - Enemy: Whale
0CAD8E - Enemy 04: Armadillo
0CBC1C - Enemy 00: Fire monster
0CC7E0 - Enemy: Tornado
0CCD87 - Enemy 05: Tar monster
0CDAB8 - Enemy: Cloud
0CE944 - Enemy: Fireball
0CF02F - Enemy: Hand
0CF71D - Enemy: Wall climbing critter
0D03E2 - Enemy 09: Crab
0D0B79 - Enemy: Ram
0D1ED8 - Enemy: Spinning twins
0D3151 - Enemy: Ninja
0D3D94 - Enemy: Scorpion
0D4ED3 - Enemy: Lion
0D744D - Enemy 07: Archer
0D8176 - Enemy 0A/0B: Rock tank
0D88E7 - Enemy: Falling skull
0D985D - Enemy: Stone face
0DA75D - Enemy: Mini hopping critter
0DACAB - Enemy: Driller
0DB03A - Enemy 06: Bouncing ball
0DB2BC - Enemy 01: Diamond
0DBA4D - Enemy 03: Walking robot
0DC579 - Enemy: Alien
0DD8BB - Enemy: Heady Metal
0DE3E3 - Enemy: Boss eyes / attacks
0DEA20 - Enemy: Boss head, stick, boomerangs, arrows
0E06B5 - End level stats text

mudesi
11-13-2008, 11:25 AM
Major props to you, Saxman. Without your hacking the ROM, it would not be possible for me to do what I'm doing right now.

Greetings to everybody else. I'm mudesi. I stumbled upon the Kid Chameleon wiki one day when I was looking for a map of the game after I recently started playing it again.

They had a link to saxman's source code and it got into my head that writing a level editor is something I want to do. It is currently in the non-user interface stage but I'm somewhat surprised at the progress I've made so far. Now that Saxman is starting to work on his level editor again, I guess we're going to be in for a little friendly competition :p (Hey, capitalism works)

A little constructive criticism that you asked for: Saxman, I think your level editor works well and given enough of your time could probably be finished. The problem I have is not with the end product, but with the code, which is quite twisty and somewhat of a nightmare to maintain. That's why I started from scratch.

This is probably the result of writing it in C, though, since C is not an object oriented language. Mine is being written in C++ and I have taken a lot of time (maybe too much) to design it before implementing it. In particular, you use too many global variables in kidtool, and a lot of the code could have been separated into smaller functions.

Another thing is kidedit is far too dependent on your file format, which means a small change in kidtool requires a change in kidedit. I can only imagine what it's going to be like for you to add moving platforms :yuck: The user interface has to not care about the underlying details of the ROM.

Your ROM hacking skills, on the other hand, are fantastic. Like I said above, without you I'd not be able to write my own level editor at all. So keep up the awesome work in that regard! :ok: It's not that I can't do it myself, I just don't want to. Stepping through machine code is something I have VERY LITTLE interest in. I'd probably throw my keyboard at the screen.

Christuserloeser
11-13-2008, 01:42 PM
[quick stupid OT comment]


I guess we're going to be in for a little friendly competition :p (Hey, capitalism works)

Quite the opposite actually. You both work without money just because you enjoy your work. - If this was capitalism, then you'd steal saxman's idea, slap together a cheap, barely working clone and sell it at a lower price than saxman could. =P

[/quick stupid OT comment]


Anyway, great to hear about your work, guys. And thanks for the beta release, saxman! :)

- I hope at some point you could release the source code to your work, mudesi. Preferrably using the GNU Public License to ensure that future releases are kept free and open too.

Alianger
11-13-2008, 05:56 PM
Greetings to everybody else. I'm mudesi.

Hello. Are You considering graphics editing?

saxman
11-13-2008, 11:08 PM
A little constructive criticism that you asked for: Saxman, I think your level editor works well and given enough of your time could probably be finished. The problem I have is not with the end product, but with the code, which is quite twisty and somewhat of a nightmare to maintain. That's why I started from scratch.

This is probably the result of writing it in C, though, since C is not an object oriented language. Mine is being written in C++ and I have taken a lot of time (maybe too much) to design it before implementing it. In particular, you use too many global variables in kidtool, and a lot of the code could have been separated into smaller functions.

Another thing is kidedit is far too dependent on your file format, which means a small change in kidtool requires a change in kidedit. I can only imagine what it's going to be like for you to add moving platforms :yuck: The user interface has to not care about the underlying details of the ROM.

Your ROM hacking skills, on the other hand, are fantastic. Like I said above, without you I'd not be able to write my own level editor at all. So keep up the awesome work in that regard! :ok: It's not that I can't do it myself, I just don't want to. Stepping through machine code is something I have VERY LITTLE interest in. I'd probably throw my keyboard at the screen.

Oh definitely, the source is sloppy. But I think that's probably true with any programmer -- rough around the edges during the early stages, fine-tuning and clean-up towards the end. But I personally prefer C over C++ anyday. I absolutely despise C++!

The goal I set for myself was to develop a program that was less dependent on me having to construct data files myself and more organic -- meaning that any data it needs, it can get directly from the ROM itself. The mistake I made was forgetting that platforms were part of maps too, thus I forgot to put a pointer into the KCM file format to support these in the future. This release does that, so it has pointers for enemies, platforms, blocks, tile layout, and whatever else I'm forgetting. This format will hopefully remain the same. So I doubt I'd have to continue to update the format in both programs because I've got the template laid out that I'll need for future updates. So when I add support for those platforms, the file format doesn't change one bit, and maps that have the platforms will still load in the current version of K-E (it's just that the platforms won't show up in this version).

Thank you for your constructive criticism =) And the ROM hacking thing -- I know how to go about reading machine code, but most of my findings have revolved around doing basic byte searches and a little trial and error. But I've done ROM hacking for 10 years, so I've had a lot of time to learn the right things to look for to find the data I want.

I'm ready to compete... you're goin' down bitch!! :p (j/k) No I look forward to seeing your results, I hope to see it knock people's socks off =)


Hello. Are You considering graphics editing?

You had asked this of me before and I totally missed it, so let me go ahead and give you an answer. I don't know what Mudesi's plans are, but my plans are to not go into that just yet. I added the -decompress command to KidTool so that when I get around to writing recompression support, the data that is decompressed and modified can be loaded back into the ROM; and obviously the same is true for maps. But at this time, I'm not ready to write anything of my own to edit the art or mappings or anything like that. Levels are what I'm currently focused solely on.

mudesi
11-14-2008, 01:16 AM
I too am solely focused on level editing. Changing the art would be a theme editor, which I guess could be included as well, but should probably be a separate program. One problem I see with writing a theme editor would be how to incorporate it into the ROM. I don't know if it's possible to add new themes in. (I assume it is) And replacing the existing themes with other art and (more importantly) collisions would break all the maps that use them.

One thing at a time, though. I want to see all you fellow Kid Chameleon junkies creating thousands of new bad ass levels for me to play.

Mr Smith
11-14-2008, 04:05 AM
I want to see all you fellow Kid Chameleon junkies creating thousands of new bad ass levels for me to play.
Expect an array of Mr Smith produced Kid Chameleon levels. I am looking to out-do the Final Marathon in terms of awesome treachery. You would think there is only so much praise that can be directed towards Saxman, however, I truly think he should be on a Sega-16 series of stamps. Major applause to you, sir.

mudesi
11-14-2008, 04:41 PM
Does -decompress also dump the mappings to the art? I'm going to need those eventually!

Thanks!

saxman
11-14-2008, 05:50 PM
Does -decompress also dump the mappings to the art? I'm going to need those eventually!

Thanks!

Only art and maps are compressed. The mappings are uncompressed, I just haven't bothered to list any locations for them. I'll be sure to document some though =)

mudesi
11-14-2008, 10:02 PM
This is starting to perplex me, to tell you the truth. I know I'm never in a million years going to find the mappings for the enemies because I don't intend on stepping through the machine code any time soon, but the blocks ought to be a piece of cake since you've got the mappings in your source code! Yet here I sit, searching and searching....:daze:

Maybe it'll help if I tell you my thought process.

For example, rock block:
Line 1249 of main.cpp (Kidedit, the older version from the wiki)

switch(block & 0x9F){
case 0x80:
sprite[0] = 18;
sprite[1] = 20;
sprite[2] = 19;
sprite[3] = 21;
break;

sprite[0] is later used as an index into hologram_data, which, as far as I can tell, contains 18 art tiles for the hologram blocks, followed by all the tiles for the regular blocks. The very first tile for the regular blocks is at hologram_data[576], which translates to (sprite[0] << 5).

From the way you assign the sprite array, that ought to be a mapping somewhere in the ROM of 00BC 00BE 00BD 00BF. That doesn't exist anywhere in the ROM. Not even 00 BC 00 BE exists!

Thrall of Warcraft
11-18-2008, 11:24 AM
Woo, it's back on!

saxman
11-18-2008, 08:13 PM
At long last, my tools will import some data to the ROM:

http://img205.imageshack.us/img205/2369/newmap1sr5.png

It also imports tile layout. All tests so far have been successful.

Thrall of Warcraft
11-18-2008, 11:00 PM
Meh, I must be retarded, but I keep getting an error when I try to start the application (both the kidtool and kidedit).

Nevermind...

saxman
11-18-2008, 11:08 PM
Meh, I must be retarded, but I keep getting an error when I try to start the application (both the kidtool and kidedit).

What does the error say? I need some description before I can lead you in the right direction.

Thrall of Warcraft
11-18-2008, 11:37 PM
I figured it out. :)
Thanks for this, by the way...

mudesi
11-19-2008, 03:56 PM
It's so cool to see after all these years that Kid Chameleon will live on! I've got an emulator on a rewritable disc for my Dreamcast, sitting there, waiting to be updated with all sorts of new levels for me to play........

I can't wait to see your finished product and I can't wait to finish my own as well. By the way, are you still working on ProSonic? I was never a huge fan of Sonic (and let's face it, nothing beats KC), but from what I saw on YouTube, that looks ultra cool too!

saxman
11-24-2008, 01:34 PM
I'm adding a GUI to the program. This will help pull people away from using the keyboard so much. I've been studying the Super Mario World editor (Lunar Magic) and getting a few ideas from that. Regardless of the lack of responses in regards to ease-of-use, I feel the editor will need to be easier to use before people put forward a serious effort to make levels. Therefore, I felt a GUI was needed. I'll be adding some other little things not GUI related that will make editing easier and less time consuming. Here's a picture of the GUI so far:

http://img386.imageshack.us/img386/7294/kideditclb6.png

Is it ugly, does it look manageable, should I quit while I'm ahead? Tell me.

Also, I'd like to throw in a little note that I am scheduling a new version be released before Christmas. As shown in the picture I posted several days ago, it'll be the first version with the capability of importing maps into the ROM.

CMA Death Adder
11-24-2008, 06:23 PM
I'm adding a GUI to the program.

That'll surely make it more approachable by the average user.


Also, I'd like to throw in a little note that I am scheduling a new version be released before Christmas. As shown in the picture I posted several days ago, it'll be the first version with the capability of importing maps into the ROM.

That's wonderful. Thanks again for deciding to continue this project.

Zebbe
11-25-2008, 05:28 AM
This editor seems to be great. Not only can new levels for Kid Chameleon be made, but perhaps new games as well if the tileset is replaced by new graphics. Then it will be much easier to create new Mega Drive/Genesis games!

Mr Smith
11-25-2008, 05:56 AM
Is it ugly, does it look manageable, should I quit while I'm ahead? Tell me.
It isn't the most attractive thing I've ever seen, but it looks practical and easy to use and those are two far greater qualities. :ok:

So if it's released by Christmas we should be able to throw out some custom levels to challenge each other on during the slow festive season :D

Will it be possible to change the names of the levels too?

Do not quit yet, as you are the verge of being hero-worshiped!

mudesi
12-01-2008, 07:28 PM
I just left you a message at the wiki. Hope you're still checking it!

saxman
12-05-2008, 01:17 AM
Gravey, I'll have to check your message Mudesi!

And I'm not sure about the level name changing quite yet. That might have to be put on hold. My focus will be on making it a bit more user-friendly, as well as allowing you to move those enemy objects around and change them. It will not be a perfect product, but the goal is to release something that will at least allow you to start creating levels and actually play them unlike the previous two K-E releases.

I'll be honest, I haven't touched it in several days due to college work mounting. The semester is just about done, but I can screw myself over if I don't devote time to what's most important. Once classes are done, I'll be back to work on K-E to get it ready.

Mur
01-02-2009, 08:34 AM
Oh, Wow how could I have missed this?!

This is editor is just F-A-N-T-A-S-T-I-C!
KC Beats every other game around, as this is indeed the most intriguing and challenging game ever done.

I suggest a tile selection marker so you can easily copy block of already arranged tiles on the levels to create different layout with.

Can't wait to test my own levels!

saxman
01-18-2009, 05:58 PM
Well guys, I didn't make the deadline. I got busy with college, and then later some things happened over at YouTube that grabbed my attention. So, I didn't make it.

But, I'll plan to release something hopefully soon. Also, Mudesi has shown me some screenshots of his program. It looks pretty cool to say the least. So even if I don't deliver on everything I'd like to, you should know he's got his own program in the works too. So Kid Chameleon editing is going to happen one way or another.

Mur
01-19-2009, 07:31 PM
Thanks for the updates, I got really hyped by your last message! :P

It would be a pity to see the only "Kid Chameleon Editor" in existence being an unfinished tool.. Anyway, good luck with your college and keep us informed. :)

Mr Smith
01-21-2009, 05:42 PM
That's great news about a second Kid Chameleon editor. I hope, Saxman, you haven't given up entirely. I am really looking forward to fiddling around with the levels.