News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Detailed ROM Map in the making

Started by -DC-, May 29, 2010, 09:55:47 PM

Previous topic - Next topic

-DC-

I've begun working on the detailed ROM Map I said I wanted to make like 9 months ago... gathering data from many sources, which will be credited. GF started a basic rom map telling where stuff is, but not detailing how to use stuff, the parts of data, or disassemblies of code, or anything like that. I'll be labeling individual routines, what uses them, what they use and do, and what ram they use eventually. Also pointing to guides in the bank description if there's one.

Check here for the ROM Map (6-16-10)

I'm making this thread for a larger purpose, though: help gathering the data. If you know what some parts of things are and what they do, or want to confirm something, or know of data, or anything... post it here for the rom map with:

* the SNES bank:ROM start and end addresses (80:8000 - 8426, for example)
* hex editor start and end address (28453 - 28602, for example)
* size in bytes (hex or real... label hex sizes with $, like $43. HxD shows selections as hex)
* description of what it is and / or does
* if asm or data, the addresses of the routines that use / jump to it, if you know (you can label the start address of the routine jumping to it, or the address of the jump itself)
* if asm, the start addresses of what other routines it uses / jumps to
* if asm, the addresses of the data it uses
* if asm, the addresses of the RAM it uses

Also, any other info you can describe would be helpful.

It's probably gonna be slow going, as I'm entering stuff all myself from scratch, and also, life getting in the way and all... tired and unfocused, partly why I haven't come out with anything new in 2 months.

I'll keep building onto it, though. The page is only a beta and will most likely eventually be broken down into each bank with a drop down menu to select it.

Last, I'm planning on having 3 different kinds of ram maps in the end, one as a list, and maybe another highlighting the bytes themselves with descriptions of what the highlighted parts are off to the side.

Anyway, thanks for checking, and thanks for the help in advance! And again, it'll be slow going, so I apologize for that.

Malpercio

#1
I'm already working on the Unknown 00 pairs in the message section (bank $85). no results yet tho

EDIT: $87:8564 says that it's $B00 bytes in length, until $87:9064
EDIT 2: i see free space at $87:C460 - C567, (03C460 to 03C567 in HxD), $108 bytes in length
EDIT 3: it appears that the second pair of 00 00 in bank $85 ($85:9641 - 9642) appears to be free space.

-DC-

#2
Those didn't need worked on. I've already fully mapped out bank 87, but haven't added it all yet, and I got the free space marked. What you see is most likely part of transparent tiles that belong to a sprite.

Also, I'm already taking apart bank 85's message box stuff and looking at the routines that are never used in bank 87, but doing it later.

What I'm looking for is anything that hasn't been added yet, but thanks.

EDIT:
Also, to answer a few things:
"$87:8564 says that it's $B00 bytes in length, until $87:9064"

Already there, and I've mapped out each animated graphics' size and length in my animation tiles document. Still adding, just slow...

"i see free space at $87:C460 - C567, (03C460 to 03C567 in HxD), $108 bytes in length"

I said above that's most likely blank tiles belonging to loaded sprite graphics... and:

"it appears that the second pair of 00 00 in bank $85 ($85:9641 - 9642) appears to be free space."

Both sets of 00 00 fall outside any tilemap parts. I'm thinking it's a slight alignment error on their part when they built the save dialog's YES NO option tilemap change parts. One part isn't even used. Why I question it is in case it's some piece of data that might have been used to tell it how to do something, but ended up being 0 anyway... but I doubt it is.

I'm thinking of scouring out all the uncompressed graphics and status screen stuff I worked on and adding it today.

DSO

$8F:E7E1: table of 3 byte long music pointers, pointed to by the "collection" list to in SMILE's drop down music selector, $4B bytes long.



CF8000 0   No music
D0E20D 3   Title Screen
D1B6DA 6   Empty Crateria
D288CA 9   Space Pirate
D2D9B6 C   Samus Theme
D3933C F   Green Brinstar
D3E812 12  Red Brinstar
D4B86C 15  Upper Norfair
D4F420 18  Lower Norfair
D5C844 1B  Maridia
D698B7 1E  Just look in SMILE...
D6EF9D 21
D7BF73 24
D899B2 27
D8EA8B 2A
D9B67B 2D
D9F5DD 30
DAB650 33
DAD63B 36
DBA40F 39
DBDF4F 3C
DCAF6C 3F
DCFAC7 42
DDB104 45
DE81C1 48


Also note that this probably tells us the entire range of D0E20D to something past DE81C1 is music data for Super Metroid.

DFPercush

#4
I didn't want to release anything yet, but Silver_Skree convinced me to post this preview so that someone doesn't put a whole lot of effort into something and then go "Why didn't you tell me about this!?" So here it is. (See attachment.) This program will be able to relocate all sorts of data. Right now it just displays room data and the stuff it points to, but I plan to make it do tile graphics, sprites, possibly even asm subroutines. When you move something it will figure out everything that points to it and change those pointers accordingly. It will also be able to erase rooms and overwrite with free space. More features will be added as I have time. This is not a working version yet so don't ask me for download links. I'll post a new thread about this when it's ready.




[attachment deleted by admin]

-DC-

Still doesn't detail every piece of data's location in a list, or take apart and label the banks and each routine and piece of data. My rom map will also tell up front what uses what, and what ram or vram or whatever it uses, and link to guides of stuff.

I'm posting updates as I learn what does what for stuff, and have a lot of info already.