Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
Acmlm's Board - I2 Archive - - Posts by Ark42b |
User | Post | ||
Ark42b Newcomer Level: 5 Posts: 1/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
I'll just be "B" here instead. You can delete/ban that first account before somebody adds any more spam posts. I put in a password this time. |
|||
Ark42b Newcomer Level: 5 Posts: 2/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
If anybody is interested, I'll post the C++ source code when I'm done decoding all of the information from the ROM. Here are some pictures of the sprite data, you can see where I was trying to piece together the Skree's and it doesn't make alot of sense how that one switches to a vertical tile layout instead of horizontal. http://ark42.com/metroid/sprites-brinstar.png http://ark42.com/metroid/sprites-general.png |
|||
Ark42b Newcomer Level: 5 Posts: 3/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
VL-Tone, I did read your document, and it was a good start, but it was not 100% accurate. The 00 byte at the end of the items marks the end of the item-list for that x,y coordinate. You can have multiple items at one x,y coordinate by just listing them all together there. There is a 3 byte header per y coordinate (y value, 2byte memory pointer) and a 2 byte header per x coordinate (x value, number of bytes to skip to find next x value), and I decoded all possible item types (which are only in the low-nibble, the high-nibble is an ID field used by some of the item types). Items are 1=extra enemy, 2=powerup, 3=swam, 4=elevator, 5=turret(the things at the top of the motherbrain room shooting down) 6=motherbrain itself 7=zeebitite 8=rinkas 9=extra door(if low nibble is 3, the door cannot be opened after mother brain is dead), and 10=palette switch A lot of the items are only 1 byte long, except for enemy and powerup which are 3 bytes, and elevator, turret, and door, which are 2 bytes. Another discovery was the "unknown byte" at the start of each room data, which is actually a special default palette byte. The attribute table is set to that palette and any structure data matching that palette will not update the attribute table, even if it is being put ontop of a different structure which already did change the attribute table, it will not be updated! For example, the entrance to the motherbrain room at position (4,B) has a default palette of 3. The blue platform which is 3 tiles wide right where you enter the room by the door, and it has palette #1, but the tall column of blocks which overlaps it by 1 tile, has palette #3, which is why the top block will be drawn with palette #1 and shows up bluish. It overlaps the blue platform and changes the name table entry without changing the attribute table. Just another little aspect of how the Metroid programs added a bit more variety to the level design I think. ----- Thanks, dan, I did not know the source to MetEdit was released. I will check that out. Edit: It does look like MetEdit has some of what I want. It looks like some things are hard coded, but the sprite code is there to remake the sprites from the ROM, in met.cpp's DrawFrame() function. (edited by Ark42b on 05-29-05 04:15 AM) (edited by Ark42b on 05-29-05 04:43 AM) |
|||
Ark42b Newcomer Level: 5 Posts: 4/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
Ok, well, it's not a a level editor, but I finished decoding all the data, and the source is at http://ark42.com/metroid/Met1Map.cpp if anybody ever wants it. You can view lots of neat maps at http://ark42.com/metroid/ including maps of *all* the "hidden zones" and maps which show all shootable/walkable blocks, all of the sprites and patterns, etc. *edit* WARNING! some of the large images (8192 pixels wide) might cause certain versions of Firefox/Mozilla/Netscape 7 to crash. Try the -4096 versions which have been rescaled down to 1/2 size if viewing online. (edited by Ark42b on 06-02-05 01:55 AM) |
|||
Ark42b Newcomer Level: 5 Posts: 5/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
My bandwidth is about 3100 GB/month on that server, so no, it hasn't been exceeded The large PNGs do fail to load in firefox for some reason (it tells me its invalid, odd) yet IE displays them fine, and ALT+clicking them to download in firefox will let me view them in Paint Shop Pro just fine. The big images are 8192x7680x256 with transparency, but that isn't all *that* huge I wouldn't think. (edited by Ark42b on 06-01-05 04:04 PM) |
|||
Ark42b Newcomer Level: 5 Posts: 6/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
The program I wrote automatically created maps of the entire world for Metroid 1, which is 32x32 screens of 256x240 each. What netscape has a buffer overflow? 4 or 7? Anyway, just save them to disk then.. I have no problem viewing them locally and zooming in/out and scrolling around in them in Paint Shop. I resized the main two maps down to 4096x3840 which appears to work in Firefox, so if you really want to see them online, go to http://ark42.com/metroid/Metroid-Map-4096.png or http://ark42.com/metroid/Metroid-Map-Secrets-4096.png |
|||
Ark42b Newcomer Level: 5 Posts: 7/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
Hey, BMF, I remember seeing that name in the NES palette I picked up from a random google search. It makes the generated images look a lot nicer then the game does in NESticle -- Heh, thanks VL-Tone. Your work on the item decoding saved me a lot of time getting that part started. There are a lot of duplicate sprites it seems, just a bunch of pointers all pointing at the same thing, and ignore the right hand side of the sprite pictures of course, because I'm sure I am just decoding garbage/invalid pointers at that point. Anybody can pull the suitless sprites too if they want, if you uncomment the 0x1B in the common_patterns and recompile, the common sprites should use the alternate then. -- Sorry about crashing on NS7. I'll put a warning in the post above. |
|||
Ark42b Newcomer Level: 5 Posts: 8/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
Thanks Mega-Dog, I seem to have found all the information I needed for what I wanted to accomplish for now - http://board.acmlm.org/thread.php?id=12718 |
|||
Ark42b Newcomer Level: 5 Posts: 9/9 EXP: 338 For next: 191 Since: 05-29-05 Since last post: 151 days Last activity: 103 days |
| ||
I just whipped up another way to view the entire maps, if you want to see the entire 8192 version, you can use this tool: http://ark42.com/metroid/map/map.php (it's just a slight alteration of something else I already had laying around at http://ark42.com/google/map.php This may take a minute to load and use up a bit of memory to display, but the full resolution map all at once is at http://ark42.com/metroid/map/map.php?left=0&right=31&top=0&bottom=31&zoom=0&scale=256 |
Acmlm's Board - I2 Archive - - Posts by Ark42b |