It's time to unveil another one of my projects - here's hoping this one isn't as controversial as the GIEPY standardization! This only really concerns people who do ASM, though it could turn out to be useful to average hackers, too.
A month or two ago, I started work on new memory maps which will hopefully fix a lot of the problems the current ones have.
Before anyone starts firebombing me, let me say that I've specifically designed these in a way that can pretty much completely emulate the current design.
I'm open to feedback, bug reports, and feature suggestions. After everyone's looked at these, I'll work with the admins to implement them into the website.
Anyway, before giving you the link, I'll list what they do differently and why I think it's better. Or, if you prefer to see the link now, I don't blame you. I'm not sure if I've explained some of these correctly, so please do check the actual memory maps before commenting.
- Pagination. This is probably quite controversial, but it's easy to customize or entirely disable. With all of the other new features, dumping the whole map on a single page makes little sense and slows the whole thing down.
- Contiguousness. (woohoo word formation) A real console doesn't really split the memory map into completely distinct pieces. It makes more sense to have one memory map for each game, and then let you filter out the regions you want. This lets you, for example, have both the ROM and the RAM map on the same page, or search through the whole memory map at once.
- Filtering. The new system allows for very advanced filtering which allows you to look for specific addresses, ranges of addresses, types, and descriptions in specific regions. All quirks of the memory map are taken into account - searching for an SA-1 pack address (such as $3019) will give you the correct result, and so will searching for a mirrored address (such as $020019, which mirrors $7E0019). Description searching is also powerful and allows you to look for keywords, substrings, or even regular expressions.
- Registers. Every game can now display its registers. Super Mario World has SNES, SA-1, and SuperFX registers; Super Mario All-Stars has only SNES registers; Super Mario 64 has the Nintendo 64 registers (oh goodness I barely understood any of that document). This means you have regs.txt (and much more) right in the memory map.
- Details. Every address can now have additional information, such as diagrams, tables, or anything else. This means you no longer need to consult SMWiki for the valid values of an address, you can check them right there.
- Fluidity. If JavaScript is enabled, you can navigate the whole thing without ever refreshing the page. Of course, those who wish to browse without JavaScript get a very usable fallback.
- Backwards compatibility. As I mentioned above, the new memory maps can pretty much be used like the old ones. Additionally, the final implementation won't break the current memory maps, so you can always use those.
And that's about all I can think of. You can find the sample memory maps at this link. Currently, a lot of the data is incomplete (I've converted only a few addresses to use the new details system) or completely broken (Yoshi's Island pretty much has no addresses; Super Mario World is fully functional, however). It doesn't actually use the site's database, so I was pretty lazy with filling everything out. Of course, this won't be a problem when it's actually implemented.
That should about cover everything. As I said, feel free to leave feedback (if you hopelessly break them, please do tell me and don't let it slide).