Alright, I got it to successfully save a file. The file runs fine in wolf3D, here's a screen shot of a recolored wall and pistol:
(I just did the one to make sure it worked).
The only problem is things don't load right in a different editor, here's what it thinks a sprite looks like:
And here's that sprite in mine:
So, I can load in my files, and the game can load in my files, but this other editor (one of the big 3 in the community) can't... Just gotta figure that out.

I've kind of figured out what's going on. There's some meta-data in the file that's ignored by the game (and by my loading), but the other editors are using it for something. Right now my program just saves the files with the meta-data as I think it should exist, but there's something else going on. For example, in all the textures the meta-data is stored as 0x10000000 plus the actual value. For the sprites it's something different, I can't quite figure it out. I've emailed some authors of other tools to hopefully get some insight.

EDIT: I got it figured out! I was saving something as a 32-bit int instead of 16-bit, which actually makes a lot of sense given the data I was looking at. Incidentally, the programmer I emailed to ask for help ended up emailing me back exactly as I emailed him to let him know I fixed it. It's good to have a line open with him now, though, because I was able to ask about some compression techniques which might be helpful to have. Now that it actually saves a files I just have a few more things to implement and then this'll be ready. Saving was really the last "big" thing, so it's almost ready!

Alright, a couple more things done. I added an "exclusion" method, so you can make sure certain pixels don't get mapped. Here's the officer like before, but with the pixels in his hat and belt unmapped:
That looks better, I think, compare to:
I've also added adjustable zoom, that's what that bar is above the checkboxes. I've also added palette management, so you can switch palettes and load in custom palettes in case your game uses a different palette:
The custom palettes are palettes you read from a file initially. You can then save the list to a separate palette that my program reads in on start up, so it preserves the list and which palette you have selected. Modifying the palettes themselves is probably a little out of the scope of this tool, but I could see adding it after the initial release (I'm in "feature freeze" mode right now). So, what's left:
- Exporting
- Spectrum mapping
- Pasting the mapping on the clipboard across multiple sprites/walls
Once that's done, I'll release, so, you know, whenever (hopefully soon).

That looks pretty nifty. Perhaps a cool thing to add is to move the color exclusion technique to the image. Create a rectangle (or series of them), select the base color you wish to change, so you don't change yellows when you want to change blue, then select the target color.

I didn't read the first posts thoroughly, but do you have any plans to make this load other sprites?

There are two types of people in the world: those who can extrapolate data from incomplete data

That looks pretty nifty. Perhaps a cool thing to add is to move the color exclusion technique to the image. Create a rectangle (or series of them), select the base color you wish to change, so you don't change yellows when you want to change blue, then select the target color.

Ah, yeah, that'd be neat. I'll see what I can do with that. Thanks for the suggestion (might wait for after the first release).

EDIT: Actually, I think I misread this at first. What do you mean by "move the color exclusion technique to the image"? Right now you draw on the image the pixels you want to exclude in the mapping (for example, with the SS, I drew on his eyes and boots), and if those pixels are part of the mapping, they stay as the old color.

ibid wrote:

I didn't read the first posts thoroughly, but do you have any plans to make this load other sprites?

KermMartian wrote:

This looks like such a spiffy tool with a fairly polished interface that I can't help but continue to wonder what else besides Wolfenstein it might be applied to.

Any Wolf mods or derivatives (there's an active modding community who will be interested in it). Outside of that, the general idea could be applied to any palette-based system, really. I just don't feel like writing the code that loads in and saves files for a billion games. The code will be open, though, so other people will be able to do whatever they want with it.

As part of the export and pasting across multiple sprites, I made a little thing that shows you a preview, here's what it looks like:
I like it. It's nice being able to see it across multiple sprites (or walls).
And just to show off some changed sprites:

Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.