how do you know about the power ups that may or not be used?
I know about all the power-ups becaus I hacked them into level one. When I was compiling data to build my level dumping program, I hacked various blocks into level one's first screen so I could figure out what they do.Edit:
Extra, extra, read all about it! New SMBS level renders avalible! New and improved, now with 100% more sprites!
Well, I hacked on the level renderer some more and now it's dumping sprite data as well as tile data. I've rendered all the levels and posted a second tarball at the adress I linked to above. While it may not be perfect, it seems to work, for the most part.
One bug I noticed is that a handful of sprites at the end of 8-4 seem to be off by one column. I'm not sure why. Also, due to level 4-4 being corrupted (or something), the sprite data during and after the messed up section isn't accuratly placed. (Or rather, it is, but the tile data isn't so it amounts to the same thing.)
I implimented a hack to crop the level renders based on the sprite data. The sprite data has information indicating empty space, even after the last sprite, so I used it to cut off the level size. It seemed to work for the couple of levels I checked out, but it's a hairy hack and may not work correctly. (I've really got to decipher that header data.) If any of the levels seem to simply cut off unexpectedly, check out the version one renders and see if they help. (Note level 8-4 simply cuts off in the level data, it's not a result of this change.)
If you find any levels that get prematurely cut off, or any other apparent bugs, please report it and I'll look into it.
I've managed to get the sprite movement code data mostly worked out. Most sprites only use one of a three movement codes, which are "move left", "move right", and "stand still". One movement code is only used by parakoopas and cheep cheeps, so it proably has something to do with moving up and down, but I haven't quite worked it out. One movement code is only used by fireballs and upsidedown pirana plants, I'm not sure what it does, perhaps downward movement. The movement codes for elevators/falling platforms and firebars are more complicated. I haven't even started working out what they do exactly.
Once I get the movement codes worked out, I intend to have the level dumping program produce a series of text files that indicate the position, type and movement attribues of each sprite. While the position and type can be fairly easily determined from the renders, I'm not sure how to indicate the movement type graphically without a lot of work. The other info will be useful for verifying which sprite each movement code belongs to.
After I get the movement codes worked out, I'll be done with both the tile and sprite data, so I'll start looking into the level headers. In particular, I'll be attempting to figure out where the data that indicates how the pipes connect up. As the enterable pipes are marked specially in the level data, it's easy to tell where the entrances are, but the exit pipes are not marked, so that data must be stored somewhere else.
Until next time, keep up the good work.
If your able to hack smb special why not make a infinite lives and powerup cheat/ So in case any of us need to go into the game it will be possible.
Well, to do that, I'd have to go into the ASM code. Hacking data is a lot easier than hacking code. While I've been able to locate and mess around with the level data, I located it by means of an educated guess. I don't know anything about the Z80, or the PC-8801. The emulator that was packaged with the disk image has no save states, no debugger, no code tracer, no memory viewer, etc. While I haven't looked into finding a better one, I doubt that one with the sort of features a ROM hacker really needs to get ASM hacks done is available for such an obscure platform.
I have, however, come up with a theoretical way to rearrange the level orders. While I haven't built a tool to do so yet, it is on my to do list. I didn't want to mention it, because I didn't want to get anyone's hopes up, in case it doesn't work for whatever reason. If it works out, I should be able to move an arbitrary level to level 1-1. While that's not as nice as an unlimited starman and infintite lives, it's better than nothing.
That said, if anyone here does want to try hacking on the ASM, I can provide some (limited) information and tools. Just ask and I'll provide what help I can.