Last weekend I got my hands on a complete dump of the map data (enemy positions, false walls, item locations etc) from the original Metroid ROM. The data was provided to me by Snarfblam, the creator of the Metroid ROM-hacking tool Editroid. Instead of working on the game itself I spent the few hours I have to inject the data into a Tiled map-file. I was a bit harder than I expected. For instance, the enemy data has a type property (number) that I needed to convert to the name of the enemy and then to the tile-index number I use in Tiled which symbolizes the enemy and on top of that the type numbers means different things in different areas (type “0” in Tourian is a Metroid, but in Hideout1 it’s a Side Hopper). Very well, it’s all done now and I know for sure that I couldn’t have achieved this without the ROM-dump from Snarfblam (read more on Metroid Construction Forum). It’s also refreshing to be allowed to write poor code with stuffed with globals and countless hacks with no thought on performance. My script only spits out a map, and then it’s done. If the map-file is OK I’ll never need execute it again.
A interesting side effect is that Snarfblam’s and my scripts combined makes it possible to convert a ROM-hack to a map-file that could be run in my HTML5 implementation. (As long as there are no custom enemies and items, which shouldn’t be possible to support at some point).
The raw-data, Snarfblam’s custom scripts for dumping it, my conversion scripts (nodejs) and the resulting tilemap will be available for download as soon as I have tidied it up a bit.
The next public update is at least a week away. I might even publish a tutorial before that. Does anyone read this? Leave a comment to let me know :-).