Author
|
Topic: Anyone Interested in Doing "SMB Special" for NES? (Read 14 times)
|
Karatorian
Guest
|
|
« Reply #105 on: March 08, 2008, 08:52:54 pm » |
|
Allright, I posted the extracted pipe information to my website. It's the tarball labled "info". However, the pipe connection info can be a little tricky to use. I'll try to give a decent explanation of how it works. The game tracks pipe connections by the same twenty column chunks that it uses for other stuff. A pipe connection consists of an entrance chunk, an exit chunk, a pointer for sprite info, the exit level type and the vertical height you exit at. The exit chunk is pretty straight forward. Once you go through the pipe, it drops you out the specified chunk. The horizontal position (whithin the chunk) is fixed at 40 pixels. The vertical position is controlled by the vertical position argument. The level type gives info such as what music to play, whether you jump or swim, etc. The sprite info pointer isn't needed for our purposes and the version of the info files I posted doens't have it included. The entry chunk is a little more complicated. Rather than specifing the chunk that the pipe is located in, it specifies the chunk which the far left of the screen is located in when you enter the pipe. This may or may not be the same chunk the pipe itself is located in. For instance, the second pipe in 2-1 is located in chunk 6, but when you get to it, the far left of the screen is still in chunk 5, so the pipe info data has the entry chunk as 5. What this basically means in practice is that if you can't find an entry for the chunk you're looking at, check the previous chunk. I'll try to post a new set of level renders that has the chunk boundries delineated. In the mean time, remember that a chunk is 20 columns, which is 320 pixels.
|
|
|
|
SMB2J-2Q
Guest
|
|
« Reply #106 on: March 09, 2008, 01:22:29 am » |
|
Allright, I posted the extracted pipe information to my website. It's the tarball labled "info". However, the pipe connection info can be a little tricky to use. I'll try to give a decent explanation of how it works. The game tracks pipe connections by the same twenty column chunks that it uses for other stuff. A pipe connection consists of an entrance chunk, an exit chunk, a pointer for sprite info, the exit level type and the vertical height you exit at. The exit chunk is pretty straight forward. Once you go through the pipe, it drops you out the specified chunk. The horizontal position (whithin the chunk) is fixed at 40 pixels. The vertical position is controlled by the vertical position argument. The level type gives info such as what music to play, whether you jump or swim, etc. The sprite info pointer isn't needed for our purposes and the version of the info files I posted doesn't have it included. The entry chunk is a little more complicated. Rather than specifing the chunk that the pipe is located in, it specifies the chunk which the far left of the screen is located in when you enter the pipe. This may or may not be the same chunk the pipe itself is located in. For instance, the second pipe in 2-1 is located in chunk 6, but when you get to it, the far left of the screen is still in chunk 5, so the pipe info data has the entry chunk as 5. What this basically means in practice is that if you can't find an entry for the chunk you're looking at, check the previous chunk. I'll try to post a new set of level renders that has the chunk boundries delineated. In the mean time, remember that a chunk is 20 columns, which is 320 pixels. What SMB level editor are you and Frantik using for my NES SMB Special project? BTW, keep up the good work and I hope to see World 3 pretty soon... Oh, one problem I noticed: A lift is missing in World 1-3 in the part where there's a wide gap you can't pass without jumping on it. ~Ben
|
|
|
|
frantik
Guest
|
|
« Reply #107 on: March 09, 2008, 03:02:50 am » |
|
i'm using SMB Utility to do the level editing. And I just checked 1-3 and the lift is there.... Karatorian thanks for the pipe data I've already used it to double check some things. when you update the renderer with the chunk lines can you also include the enemy movement data for the firebars and elevators (if possible)? thanks edit: i was just watching the video of world 3's castle and I saw an appearance of the hammer power up. the weird thing is on the rendered map there is a hidden coin block high in the air but in the video it's a hidden hammer block much lower on the screen. it looks like the hammer weapon isn't like the hammer bros hammer it's more like from donkey kong where it can be used to presumably smash the barrels which are also in that area. i replaced the barrels with spineys and buzzy beetles since we dont have barrel enemies yet
|
|
« Last Edit: March 09, 2008, 04:30:21 am by frantik »
|
|
|
|
deespence2929
Guest
|
|
« Reply #108 on: March 09, 2008, 09:18:15 am » |
|
Now I see that too. Soo this means if you add this hammer thing your gonna have one of the most epic hacks ever.
|
|
|
|
Karatorian
Guest
|
|
« Reply #109 on: March 09, 2008, 11:53:10 am » |
|
In regards to world 3-4, I'll have to check it out and see if there appears to be anything funny going on. It seems to me that some of the videos have been made from a different dump than the one I'm using. (Didn't someone say something about a non-corrupted version of 4-4?)
The disk image I have has an md5 sum of 94a92e15ad909b7510dccca26128b54c. Does anyone have a different version?
As for the firebar and eleveator movement data, I intend to integrate them into the next round of changes to the level renderer. Along with other movement data stuff and the chunk divisions. I don't know how long these changes will take, but I hope to get them done soon.
|
|
|
|
frantik
Guest
|
|
« Reply #110 on: March 09, 2008, 05:48:43 pm » |
|
yeah i dunno maybe the engine interprets that block as a hammer block based on other stuff? anyways here's worlds 1-3 completed: World 3 download
|
|
|
|
Karatorian
Guest
|
|
« Reply #111 on: March 09, 2008, 06:36:53 pm » |
|
Well, the engine changing the interpretation of a block based on something rather arbitrary like that wouldn't really seem to go along with the way it appears to be designed. After all, there's a hammer block, so it's not as if such a thing would be neccessary.
I've posted version three of the level renders to my site. They incorporate a few changes. Firstly, the levels have dividing lines to seperate the chunks from one another. Secondly, they are all rendered at a fixed size of sixteen chunks. As far as I can tell, the game doesn't store the length of the level anywhere in the level header. The max level size is sixteen chunks and the levels all seem to have pointers for all chunks. They also have data for unused chunks. (Even if said data is rather boring.)
Included in the package is the restored version of level 4-4. The restoration of 4-2 is not included, because I haven't finished it yet. (I stopped working on it to work on dumping the pipe data and improving the renderer.)
More exciting are the changes I made to sprite rendering. I've included experimental support for incorporating some aspects of the sprite movement codes into the renders.
Platform movement codes are (should be) fully incorporated. They now render at the proper length and include an icon that indicates their movement type. Also included is additional platform movement code info I discovered in the course of checking my results. Such as a size of 0x03 indicating a cloud coin zone platform and a movement of 0x08 indicating a plaform that moves up and down. (Also, platform's positions are no longer off by 4 pixels.)
Also included is preliminary support for standard sprite movement codes. Sprites that are moving right have been flipped so that they are facing that direction. Sprites that are moving left (most sprites) or standing still use left facing images. The issue of telling the two apart isn't really a problem, because stationary positioning is only used by a handful of sprites (Toad, Princess, Flag, etc.) that never move, so it's easy to intuit which is which.
Unfortunately not included is firebar movement codes. I hope to get them intergrated sometime soon, but I haven't yet. Also not handled is the 0xC1 movement code who's meaning I still haven't fully investigated.
These changes are all rather experimental, so please report any bugs you find.
|
|
|
|
frantik
Guest
|
|
« Reply #112 on: March 09, 2008, 06:43:29 pm » |
|
sweet and i agree it would make no sense for the block not to be a hammer block in the level data but the block is the wrong block and the wrong location, but there is no other corruption so it also seems like it's unlikely the level data is messed up. course u would know better than i btw about the firebar movement: world 1 and 2 castles rotate the bars clockwise while world 3 castle rotates them all counter-clockwise
|
|
|
|
Googie
Guest
|
|
« Reply #113 on: March 09, 2008, 06:54:30 pm » |
|
I'm taking it upon myself to beta test this as demos keep comin... A'ight here a little sumthin that goes down in 2-3... I go down this pipe right fellas? Only to wind up here... But before I get there I gotta pass through here... You can go down that pipe, it'll take you to here... Now, pass it regularly'll take you to the 2nd castle, but like in the 2nd pic'll take you to world 3. I'm guessing it's a bug? Other than that I'm gonna play world 3 in a bit... :thumbsup:
|
|
|
|
frantik
Guest
|
|
« Reply #114 on: March 09, 2008, 07:53:10 pm » |
|
lol.. world 2-3 is a lil crazy thanks for the testing googie :thumbsup: edit: i updated the patch.. not sure what happened but some of the objects went missing lol fixed now linkyedit2: karatorian it looks like you have the up/down arrows on the lifts switched. in world 2-4 the first lift moves downward and the 2nd upward in this video: http://www.youtube.com/watch?v=ENuvrRJtFPY
|
|
« Last Edit: March 09, 2008, 08:22:10 pm by frantik »
|
|
|
|
Googie
Guest
|
|
« Reply #115 on: March 09, 2008, 09:20:41 pm » |
|
Thanks for fixing it up, it's much better now. Yeah seeing that Hammer power up will really rock, seeing and playing through this hack makes me wanna work on my back burner smb hacks now. :crazy:
|
|
|
|
deespence2929
Guest
|
|
« Reply #116 on: March 09, 2008, 10:53:02 pm » |
|
WOn topic, good job on world 3.
|
|
« Last Edit: March 10, 2008, 08:02:54 am by deespence2929 »
|
|
|
|
SMB2J-2Q
Guest
|
|
« Reply #117 on: March 10, 2008, 12:43:39 am » |
|
lol.. world 2-3 is a lil crazy thanks for the testing googie :thumbsup: edit: i updated the patch.. not sure what happened but some of the objects went missing lol fixed now linkyedit2: karatorian it looks like you have the up/down arrows on the lifts switched. in world 2-4 the first lift moves downward and the 2nd upward in this video: http://www.youtube.com/watch?v=ENuvrRJtFPY Thank you again! That lift in 1-3 is back! I can't wait to see 4-3! ~Ben
|
|
|
|
frantik
Guest
|
|
« Reply #118 on: March 10, 2008, 03:29:07 am » |
|
glad to hear the lift is back hey Karatorian whats up with the random dark block in world 4-1 above the hidden 1up? also: does anybody know if lakitu comes back if you go up the vine and return to the level? perhaps the dark block is the lakitu continuation code or something? and is that really a trap bonus room in 4-3? there's pipe connection data but no enterable pipe. the pipe connection data is also weird pointing to chunk 5 which has no exit pipe
|
|
« Last Edit: March 10, 2008, 06:17:03 am by frantik »
|
|
|
|
Karatorian
Guest
|
|
« Reply #119 on: March 11, 2008, 02:47:17 am » |
|
The random dark block in world 4-1 was caused by a bug in the level renderer that caused a few tiles to be rendered incorrectly. The missing hammer in 3-4 was caused by the same bug. The effected levels are 2-1 (Half Brick Under Spring), 3-2 (Wings), 3-4 (Hammer), 4-1 (Wings and Unknown Object), 7-1 (Half Brick Under Spring), and 8-3 (Clock). The bug has been fixed.
The lift direction arrows where indeed backwards, which was caused by a simple error when saving my marker images. This problem has also been fixed.
I've finished correcting the corruption to level 4-2 and it now renders nicely.
I was going to make another set of renders that incorporate all the above improvements, however, it's the middle of the night, so I figure I might have time to get some more work done on the movement code integration before anyone is awake. In that case, the next set of renders will include the better movement code support. If I don't manage to get better movement code support implimented by morning, I'll post a new set of renders generated with the current codebase.
I don't know if Lakitu comes back or not, but I could check it out. Also, 4-3's pipe connections seem kinda weird. I'm not entirely sure what's up with them. In addition to not having any enterable pipes, the pipe connection that seems to go the the bonus room has a level type code not used anywhere else in the game. As far as I can tell, said bonus room cannot be accessed, but I haven't messed around with the level in the game to verify this.
|
|
|
|
|