Having found the right tool that opens the door project, it is now time to go through it. Metaphors aside, writing the sprite list is still a difficult process, since the tool alone is not enough. The tool might provide most of the hex codes, however, there is no way to identify what the sprite does. There are five different kinds of sprites; and they must be differentiated properly.
In this blog, I will briefly describe my process of mapping sprites to hex codes.
I added a definition of sprites to the ROM Hacking blog; simply put, there are five different kinds of interactable 2D graphics. These must be identified individually, which is a time consuming process.
On the website The Shyguy Kingdom, or more precisely the sprites section for Super Metroid, lies the key to this process: images containing the sprites to be looked out for, as shown in Figure 1.
Since the Super Metroid Integrated Level Editor, also known as SMILE, can display hex codes for some of the graphics (as discovered last week), it makes sense to look into its files.
It does not take long to strike gold, as shown in Figure 2. The program contains images and hex codes of (probably) all relevant sprites.
Every image also has an associated description, which helps immensly with keeping everything structured, as shown in Figure 3.
The process of creating the list is still tiresome, though. Simply put, it is an iterative process that looks like this:
- Remember sprite #x from the <spritetype> sheet
- Search the sprite in the directory
- Add the sprite (hex code + description) to the Lua script
- Repeat until every sprite was covered
To be honest, the process itself is child’s play at this point. The only thing holding me back is the amount of iterations the process consists of.
The door might be open, but it is located on top of a staircase.
After finishing the spritelist script (which should be at some point in this upcoming week) I will focus on the game script. I will need more inside knowledge about the game for this task, so it should remain somewhat interesting (and not too technical).