Use SonMapEd/Part 1
From Sonic Retro
(Original guide by Chimpo)
So ScarredSun won't port over that skin I want unless I do her that SonMapEd tutorial she wants. Being a man of reason, I refused until I finally gave in. By gave in, I mean I have nothing to do. I'm splitting up this tutorial in parts because doing a large one in one night would end up with less detailed instructions and be way too time consuming for me. The following tutorial covers the very basic loading of files and exporting and importing sprite frames for tile editing purposes without editing the mappings:
So right away, this is what SonMapED looks like when you start it up with nothing loaded. You have your tile mappings window on the top left, your palettes window in the top middle, your sprite frames window on the top right, and all the tile data window in the big window in the bottom. You're probably freaked out, but stop being such a wuss, lets get this party started.
First off, we're going to have to set what format we're using. Because I'm using a Sonic 1 Disassembly for this example, I'm going to set it to Sonic 1. Hit Ctrl+Alt+Shift+1 or just go to Settings -> Format -> Sonic 1. There goes your first hurdle. It's obvious which one you have to pick if you're editing Sonic 2's data. (Hint: Sonic Crackers.) Carrying on...
So let's load those Tile Graphics. For this tutorial, we'll be editing Sonic's art, so go to File -> Load Data File. A list of data options should pop up, and the option you want here is "Load Uncompressed Tile Graphics". The file browser window will pop up and you'll have to locate the tile graphics in your disassembly, which are usually in the "artunc" folder labeled "sonic.bin". Open that bin file up and you'll end up with this...
Woooah doggy, thems lots o tiles! "How am I ever going to edit these!?" you might ask yourself. With science. However, before we get to that, lets load our Sonic palette. Yes, I know SonMapED's default palette fits perfectly, but we're doing this step anyway so you don't mess up later.
Like before, we go to File -> Load Data File. except this time, we select "Load Primary or Full Palette" or we can just hit Ctrl + P. Loading these is just like loading the tile graphics. Simply locate them in your disassembly. By default, they're in "palette" under the name "sonic.bin"
Okay, so our palette is loaded up, but the sprite frame window is still empty, just how do we edit these suckers? Simply my jedi friend. We need to load our mappings for Sonic first.
Again, like before we go to File -> Load Data File. Now this time, we go to "Load Sprite Mappings" or hit Ctrl + M. Sonic's mappings are located in "_maps" which are of course named, surprise surprise, "Sonic.asm". Load it up, and you'll end up with....
This? Something must have gone wrong right? No, shut up. We're not finished. Sonic requires yet another file called Dynamic Pattern Load Cues or DPLCs for short. The exact reason for this I'm not sure, but I'll be sure to sound smart when I edit this part later when someone corrects me. It has to do with unicorns. So any who, lets load those DPLCs.
By now, you should know the process. Go to File -> Load Data File, then select "Load Sprite Pattern Cues" or Ctrl + C then look for Sonic's DPLCs, which are by default in "_inc" named "Sonic dynamic pattern load cues.asm" (Located in "_maps", and is named "Sonic - Dynamic Gfx script.asm" in the SVN Disassembly.)
Congratulations, you figured out how to load files. Aren't you special? It's time for part 2 mother quackers.
Before we go further, please take a look at the palette line. Specifically, the part in white. These are the transparent colors. If you're going to do any importing and exporting, then you MUST edit these or else your image will be guaranteed to mess up from my experience.
Since we're only using palette line 0, double click on the first palette line's entry to pop up the color mixer.
You want to pick a color that does not conflict or anywhere similar to the other colors in the palette line. In this case, I picked a dark purple to be my transparent color. You don't need to know any specific RGB Genesis values, just drop it anywhere and SonMapED will automatically generate it to the closest Genesis color. once you find your color, hit OK to close the box and confirm your choice.
The background color on all windows should now change to the color of your choice. That means you did a good job. If anything other than the background color changed, you messed up. Start over.
Another thing I should mention is the Image Importer settings. This is the one I use and I never have never run into a problem with it with the method I use. I don't really know what "Assume Corner is Background" so I just don't touch it. If you're going to be following the rest of this tutorial, I suggest you have these settings.
Now lets move on. For our next step, we want to go and jump to frame 3 by hitting the ] key. You'll see why I picked 3 in a minute.
Now it's time to export our frame so that it can be edited outside using an external program. SonMapEd doesn't have an editor inside it, but that's cool since this process is easy as pie. All you really need is MS Paint. Hit "File -> Save To Image -> Export Sprite Frame" or CTRL+SHIFT+E. The file browser should pop up, and save the exported frame to wherever the hell you keep your stuff with whatever name you want. (It's nice to be organized!)
This is what SonMapED spits out. Notice the bright pink boxes. These are the unmapped tile areas, so you can draw cocks in them and SonMapED won't port them into your sprite because there's nothing to port them into. It's nice to leave these areas alone for now so you know what space you have to work with. So right, lets edit this with a program outside. I'm using MS Paint, which is all you really need but any program works just fine.
As you can see, I gave Sonic glasses and cheap Nike Knockoff shoes. Also, be sure to use the exact same colors as the sprite image itself. Don't make your own shades of blue, use the sprite's shades of blues. Anything outside the palette just reduces the chances of it being imported nicely. After you edited the sprite the way you wanted, fill the pink squares with your transparent color and save the image. Now it's time to port the sucker in.
Go to "File -> Load Image -> Load Sprite Over Active Frame" or CTRL+SHIFT+I and load the file you just saved.
If you did everything right, your sprite should have ported in with success. However...
You'll notice that the sprites next to you have also been affected. This is because these sprites also use the very same tiles you just edited. In case you don't want them to share the tiles, there is a way around it. In fact, it's pretty much what this program was built to do. Edit mappings, it's in the name. For now, lets finish up what we started.
Go to File -> Save Data File. Since all we did today was edit the tile graphics, we just have to save the "Uncompressed Tile Graphics" to "sonic.bin" in "artunc". Once you saved it, build your rom and voila, your new art has replaced the old one!
That concludes the first part of the tutorial. In Part Two, and I'll go in depth on mappings.