>>> Link to rips (Google Drive) <<<
Ever wonder how Mega Man stage graphics are made? Ever tried looking for resources on where to find tiles other than just full-blown maps? Well, the wait is over. I've done my best to rip every Mega Man stage tileset from the NES hexalogy, and hopefully this blog will prove not only a complete organized source for graphics, but also an insightful tour through each game, all the unused graphics that didn't make the cut, and how each stage was pieced together and brought to life by the devs of yore.
I've actually been making Mega Man-styled sprites and tilesets well before starting this project, which can make some of my commentary... a little interesting. We'll be using a bit of ROMhacking lingo around here, so prepare yourself!
Being rips, of course, these are all formally property of Capcom's, but (while it goes without saying) crediting me for piecing them together is preferred and appreciated should you decide to use them. Remember that they are not for commercial use, etc., etc.; this blog restricts them to educational use, nonprofit fan projects, and the like.
Legend
First, some information so you don't get lost. I like to color-code my work, and tile rips are no exception. Anything unlabeled can be presumed to be officially used, but sometimes there are other cases:
- Teal - Animations. Reserved for renditions of animated frames.

-
Purple - Corrections. Sometimes tiles just look off, be it in palette usage or subtile
assembly. It's hard to be pixel-perfect when eyeballing a CRT monitor under the time crunch of big daddy Capcom, but emulating those mistakes doesn't have to be the only option around here.
-
Red -
Unused tiles or TSA assemblies. This refers to tiles that are officially assembled within the ROM that never get put to use; they remain untainted by human hands.

-
Orange -
Reconstructed tiles; assemblies of how unused subtiles could have looked when pieced together. Somewhat an overlap of the "red" and "green" categories, in this sense. It's important to distinguish what is explicitly unused and what is partially speculation, after all.

-
Green -
Hypothetical tiles; provisions for spicing up your level design. These tiles were made just for fun using the existing palettes and subtiles within the bank. They're not official, but they very well could have been.

-
Brown -
Spritework. Tilesets and sprites are functionally two different things on the NES, and while the former is the primary focus, every once in a while there will be a graphic that relies on a sprite. I try my best not to rip sprites unless they interact with the background; for instance, the red rising blocks in Spark Man don't count, but the levers in Drill Man do. The simplest litmus test to this, as I can explain it, is if either the background or the sprite look complete independently. If it's a no, both are included. Alternatively, if a static background tile is occasionally animated via spritework, it is also fair game. An example of both scenarios would be Wind Man's fans, for instance. Probably my only big exception to all of this is minibosses; those can easily be found elsewhere. Who knows, though, I can rip them later on.
Vocabulary
Not everyone's a NES whiz. Myself included, admittedly, I can't code for shit. I'll casually use ROMhacking lingo here and there that might get confusing, so whenever I use these words, this is generally what I mean:
Palette - A group of 4 colors. Only so many colors can be used on-screen at once, after all.
 |
An example of Flame Man's first palette. The numbers are each color's hexadecimal value. |
While the NES has 64 different possible color slots (and roughly 56 that aren't pure black), the rules to on-screen color slots are different. A palette is an ordered group of 4 colors, the first of which is always "transparent". Within the rips, I usually order the first one last, which makes more visual sense when the uniform background color is usually black. There are a total of 4 palettes reserved for generating background graphics (specifically to 16x16 tiles), and 4 palettes reserved for spritework. This means that the technical maximum number of possible on-screen NES colors is 25. Palettes can be switched in-game at the cost of memory.
 |
| Actual palette color order (left) and how I order them within the rips (right). |
CHR - Short for Character ROM. It contains all the game's packaged graphical data, represented in the rip through the giant grayscaled boxes, which are samples of the CHR.
 |
| All of the CHR info for Flame Man's stage. |
Bank - The NES can only display so many images and graphics at a time, so when a game is running, it generates visuals from two banks-- one for sprites, and one for background tiles. In my commentary, "bank" generally refers to the currently loaded CHR of the stage in question within the tile bank.
 |
| The tile and sprite banks loaded at the beginning of Flame Man's stage. Note that the tile bank uses the first 16 rows of the CHR shown above. |
Tile - While it has other uses, I generally use this when referring to the finalized 16x16-pixel squares within a tileset. You can only assign a full palette to an individual tile, not its subcomponents (except with special chips that the NES Mega Man games never ended up using). These are what you came here for, hopefully.
 |
| (From left to right:) Palette, subtile, rendered tile, structure. |
Subtile - There has been some discussion around what to call these things specifically, but I have proposed to use this word when referring to the mini 8x8 tiles stored within a CHR. I originally called them mini-tiles and metatiles interchangeably, but "metatiles" is another common name for "structures" (see below), which caused confusion. Tiles are inherently made of 4 subtiles; however, without the MMC3 chip and enhanced TSA, this means very little. This is the other reason why I have granted the name "tile" to 16x16s and not 8x8s, despite many proposing to call the 8x8s "tiles".
Structure - A structure, known to some as a metatile, is a 32x32 chunk of 4 tiles. What, you thought you could place a tile on the screen all willy-nilly like in Mega Maker or GMS? Well, you can with these tilesets, but not on the NES. Sorry, Timmy. I mostly bring up "structures" when talking about how some unused tiles could've been used in context; structures can be unused too, after all. A structure generation table can hold up to 256 structures.
TSA - Stands for "Tiles Squaroid Assembler". Honestly never would've guessed. With the MMC3 chip, the TSA table is where subtiles are pieced together into different tiles, and it can hold up to 256 of 'em. It exists without the chip, technically, but is limited to mostly palette assignment.
 |
| The first page of Flame Man's TSA table, as seen in the MegaFLE-X editor. Tiles are rendered as they would be at the start of the stage. |
Screen - A level is divided into screens; in a Mega Man level, this can average roughly between 20 and 40. Screens are comprised of 64 structures, and therefore internally 256x256 pixels in length, though plenty of games crop the height to get that CRT screen ratio in there, and gameplay-wise are vertically cropped by design. Junk tiles do indeed show up in the top and bottom margins, on occasion, and likewise are only visible internally. Like most things above, screens can be duplicated and reused to preserve storage.
 |
The first screen of Flame Man, as seen in MegaFLE-X (left) and in-game on FCEUX (right).
|
More on Palettes and Layers
Here is the NES palette I render my rips with. There are many like it floating around, but this one was mostly assembled with samples from MM9 and MM10 rips. It is close to FCEUX's own palette, but there are some minor color differences-- such as #23 seen in Nitro Man-- that I prefer here. As aforementioned, each has an assigned hex value, and the full chart looks like this:
As seen here, there are a couple colors that-- while technically different internally-- are so similar that I have made them all the same color for the sake of reduced confusion when sampling them. These, of course, include all the grayscales, the right columns of which are rarely used anyway. The other reason, of course, is that these like-minded colors are almost never used in the same palette. I'd be darned if someone found a strategic use for including both #20 and #30 next to each other in a tile. If knowing what specific shade of black being used out of the 10 or so matters that much to you, you'd might as well just ROMhack the number yourself (though it'll usually be either #0D or #0F anyway).
Looking at all the numbers may be pretty dizzying at first, but you can see that the first digit refers to the row (value) and the second digit refers to the column (hue). With that and some memorization, you can easily conclude that #15 is a darker midtone (row 1) with a hot pink hue (column 5). It's the red found on Cut Man!
I showcase this palette, of course, for transparency over where I get my colors from and for ease of access if anyone has their own preferred palette that they wish to translate my rips to.
One last thing I want to cover is foreground effects. In NES layering, background tiles are-- very generally speaking-- all on the same layer, and so it is the sprites that can move in front of or behind such a layer, with the universal background color acting as "transparency".
Ergo, whenever you wish to use a foreground tile... just remove the universal background color. In rare cases where that would be hard to spot, don't worry, I've labelled 'em.
That should be everything major you'll need to know going in. Enjoy the rest of the blog!
Special thanks:
TheSkipper1995
The NE Crew (Formerly Snupster)
ROMHacking.net
Sprites Inc.
& Valo
No comments:
Post a Comment