![]() |
Register | Login | |||||
![]() |
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
![]()
| |
1 user currently in Super Mario World hacking: ![]() |
Acmlm's Board - I2 Archive - Super Mario World hacking - More Sprite Data [Info] |
![]() ![]() ![]() |
Pages: 1 2 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
User | Post | ||
cpubasic13 17 years old now. Time to buy some M rated games by myself! Level: 54 ![]() Posts: 647/1346 EXP: 1206934 For next: 26936 Since: 03-15-04 From: Blame my parents, Eddy Since last post: 2 days Last activity: 1 day |
| ||
NOTE: This is a long post. You have been warned These are my notes on SMW sprite data, which uses mikejk's data. I went in depth to figure out how the sprites are programmed and these are the notes I have. None of this will make since unless you see the beginning of his notes, so... 0x03F46C -> 7E1656 0x03F535 -> 7E1662 0x03F5FE -> 7E166E 0x03F6C7 -> 7E167A 0x03F790 -> 7E1686 0x03F859 -> 7E190F All of these tables are indexed by sprite number (starting with x00 for the shelless green koopa). Here's a few of my notes about some table values. I've still barely touched the surface of all this data. I have the RAM locations as the headers, cuz that's what I see in my trace logs. Now for my notes. I don't know if the bits are what they should be so please correct me if I am wrong. Also, I experimented with the cape only, so some of the bits I did not know about probably deal with the fireball, so someone check them out. x03F46C In the notes, he says it deals with whether it is stompable or not. Bit 1 (Not sure if it is bit 1... bits read as 00000001. Correct me if I am wrong) will determine whether or not it goes through the ground. Setting bit 2 makes it bounce very weirdly. Bit 3 does somewhat the same as bit 1. Bit 4 makes it slide on the ground. Bit 5 makes it stompable. Bit 6 does nothing? Bit 7 will determine whether or not to go in shells. Bit 8 determines whether or not it will die by "falling" or going "POOF!" x03F535 Says for sprite interaction. Bits 1 to 5, I don't know what they do. Bit 6 makes the sprite have a "head" like a Rex. Bit 7... well, probably deals with the Koopas, but I am not sure. Bit 8 makes the sprite just fall when you jump on it. x03F5FE Palette. If it is an even number (00, 02, 04, 06, 08, etc...) will set the palette to page 1, and the palette (Example: 00 would be sprite palette 0, page 1. 02 be page 1, palette 1. Get it?) Odd numbers make it page 2. Simple. Nothing complex. x03F6C7 Hmmm... he wrote nothing on this... so... Bit 1 made the gravity for when dead really heavy. Bit 2 made it invincible to the cape, but it still jumped in the air. Bit 3 I don't know. Bit 4 is unknown. Bit 5 same. 6 same. 7 same. Bit 8 makes the sprite untouchable by Mario unless you use the cape (Set Bit 2 and 8 for NPCs for a village!!!). x03F790 Says walk through floor or sprite creating. Bit 1 does nothing. Bit 2 same. Bit 3 made it so when the sprite falls onto another ground, it walks 3 pixels in the ground (wha?). Bit 4 makes it not interact with shells (maybe other sprites). Bit 5 does nothing. Bit 6 same. Bit 7 makes it an exploding Bomb-omb when you jump on it! Bit 8 makes it fall through the floor. x03F859 He wrote nothing on this either. Bit 1 does nothing. Bit 2 same. Bit 3 same. 4 same. 5 same. Bit 6 made the death 16x32 pixels big. Bit 7 nothing. Bit 8 same. x0087CC Involves coding of the sprite. 2 bytes per sprite. I got it to freeze sometimes with some values, so now to experiment with sprite 12 (I made it a sprite like the shelless koopa for this part). I set the code to 20 8A and it made a sprite stay still with no animation. Evil hidden guys? 20 8A made it do the same, but not interactable. So... now for the bits set. Setting second byte's bit 1 makes game crash. Same with both bits 1 set. It will be hard to make this typed up so here is a little table. Byte 1 bits | Byte 2 bits | Effect | ----------------------------------------- 00000000 | 00000001 | Crashed | 00000001 | 00000001 | Crashed | 00000002 | 00000001 | Crashed | ----------------------------------------- I gave up since a lot of the stuff crashes the game. I did, however, make an interesting sprite. It will slide to the right at a fast speed. Set the bytes to 33 8A to have this sprite. That is an awesome sprite in my opinion. Wait... set the first byte to 4D and second byte to 8C and you got a jumping sprite. I did notice that the second byte is usually 8X (X is a number). Mess around with this, somebody, and figure it out. The last thing is the graphics section at offset x009e7f and x009d83. The first edits the graphic tiles that the sprite uses. The second... I don't know what it does. This is all that you really need to know about sprites. Now someone make an editor as I am tired of using a hex editor. Hope you understand them. |
|||
blackhole89![]() LOLSEALS Moderator of ROM hacking EmuNET IRC network admin Head GM of TwilightRO Level: 47 ![]() Posts: 376/971 EXP: 739208 For next: 26995 Since: 03-15-04 From: Dresden/Germany Since last post: 14 hours Last activity: 12 hours |
| ||
Thanks a lot. This might come in handy in the future... | |||
Smallhacker![]() Green Birdo SMW Hacking Moderator Level: 68 ![]() Posts: 694/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Very interesting! Good work! (edited by Smallhacker on 10-19-04 11:07 AM) |
|||
gnkkwinrrul![]() Dry Bones Level: 39 ![]() Posts: 311/647 EXP: 402054 For next: 2717 Since: 03-15-04 From: LYKEOMGIMFROMSOMEPLACE???? Since last post: 81 days Last activity: 40 days |
| ||
This helps a lot ![]() |
|||
cpubasic13 17 years old now. Time to buy some M rated games by myself! Level: 54 ![]() Posts: 648/1346 EXP: 1206934 For next: 26936 Since: 03-15-04 From: Blame my parents, Eddy Since last post: 2 days Last activity: 1 day |
| ||
Well, from what you said about the sprite, you did something that deals with the sprite interaction. Maybe you messed around with the sprite interaction of it. Probably with bits 1-5 of it... hmmm... I should try it out... | |||
Keikonium Banned Level: NAN Posts: 757/-2459 EXP: NAN For next: 0 Since: 04-02-04 Since last post: 63 days Last activity: 9 hours |
| ||
Someone should create a site, like the ExGFX Workshop, with a list of edited sprites. For example: Sprite # - 12 Sprite Type - Poison Mushroom Code in Hex - XX XX XX XX etc. That way people, like me, could just copy down the code into hex without having to make it up them selves. And if a program was ever made, it could have an export option to export the sprite info to file, then those files could be uploaded. Anyway, I really hope that some one makes and editor. What ever happened to the people that said they would do it? |
|||
cpubasic13 17 years old now. Time to buy some M rated games by myself! Level: 54 ![]() Posts: 652/1346 EXP: 1206934 For next: 26936 Since: 03-15-04 From: Blame my parents, Eddy Since last post: 2 days Last activity: 1 day |
| ||
Bad idea. You know how many people would submit different types of stompable goombas? Lots. Plus not only that, it deals with the graphic locations which would have to be described where exactly they are stored. Even with the hex code thing, it would be difficult for people to understand what they are doing. Maybe they want to alter the sprite, but they can't because they don't know what does what. That is why I would like people to use some editor that actually describes what you have to do so maybe we could have some interesting sprites. |
|||
gnkkwinrrul![]() Dry Bones Level: 39 ![]() Posts: 327/647 EXP: 402054 For next: 2717 Since: 03-15-04 From: LYKEOMGIMFROMSOMEPLACE???? Since last post: 81 days Last activity: 40 days |
| ||
Yeah, but it is a regular green koopa, remember? I'd like to submit a squashable goomba ![]() (edited by gnkkwinrrul on 10-19-04 07:48 PM) |
|||
cpubasic13 17 years old now. Time to buy some M rated games by myself! Level: 54 ![]() Posts: 653/1346 EXP: 1206934 For next: 26936 Since: 03-15-04 From: Blame my parents, Eddy Since last post: 2 days Last activity: 1 day |
| ||
Then again, there were a few things I did not know about in the sprite interaction area. You probably did change those bits and that happened. Notice this... x03F6C7 Hmmm... he wrote nothing on this... so... Bit 1 made the gravity for when dead really heavy. Bit 2 made it invincible to the cape, but it still jumped in the air. Bit 3 I don't know. Bit 4 is unknown. Bit 5 same. 6 same. 7 same. Bit 8 makes the sprite untouchable by Mario unless you use the cape (Set Bit 2 and 8 for NPCs for a village!!!). Notice bit 8 and what it does... that means you changed this byte. Mess around with it... |
|||
gnkkwinrrul![]() Dry Bones Level: 39 ![]() Posts: 332/647 EXP: 402054 For next: 2717 Since: 03-15-04 From: LYKEOMGIMFROMSOMEPLACE???? Since last post: 81 days Last activity: 40 days |
| ||
No, it must have been byte 2. because it jumps in the air when I hit it with the cape. Also, I can't hit it with fire power or star power. | |||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 1825/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||
The bits are ordered 76543210.Originally posted by cpubasic13 So in RAM would they still be indexed by sprite #, or the order of the sprites in the level? And if you wrote to them would they go back to normal in the next level?
So set bit 7 and it'll turn into a shell sprite when you stomp it? And what is falling/going "POOF!"?
I assume what you mean is bit 6 toggles whether the sprite is 8x8 or 8x16?
So the lowest bit toggles the palette page? Any idea what the rest do?
Is there a sprite that does this normally? ![]()
So it acts like you killed it, but when it hits the ground it goes back to normal? Or does it just jump up?
What exactly does this do?
![]()
Probably for Mushrooms.
As in when you stomp it it becomes a bob-omb about to blow? What happens if this is set along with the bit that makes it go into a shell?
Try setting this, putting it waaaaaay up in the air, and letting it fall. Does it just keep falling or does it stop eventually? Bowser's big ball things do this and don't have any layer 1/2 interaction (fall through the floor).
Pic?
Same as...?
Sounds like a series of 16-bit pointers to ASM. Dunno why that bit would make it crash (unless you were just pointing it to invalid code), or did you mean the highest bit? I don't think addresses xx8000-xxFFFF are valid.
What's the format for the first table? Second might be animation or something.
A project for tomorrow. ![]() |
|||
Smallhacker![]() Green Birdo SMW Hacking Moderator Level: 68 ![]() Posts: 701/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Maybe I should rename and improve Sprite Paint by adding more editing options? Hmm... | |||
gnkkwinrrul![]() Dry Bones Level: 39 ![]() Posts: 343/647 EXP: 402054 For next: 2717 Since: 03-15-04 From: LYKEOMGIMFROMSOMEPLACE???? Since last post: 81 days Last activity: 40 days |
| ||
I think that would be a good idea ![]() |
|||
blackhole89![]() LOLSEALS Moderator of ROM hacking EmuNET IRC network admin Head GM of TwilightRO Level: 47 ![]() Posts: 389/971 EXP: 739208 For next: 26995 Since: 03-15-04 From: Dresden/Germany Since last post: 14 hours Last activity: 12 hours |
| ||
Originally posted by Smallhacker What exactly is Sprite Paint? ![]() (sounds like an editor I don't have yet to me... *wants*) |
|||
Smallhacker![]() Green Birdo SMW Hacking Moderator Level: 68 ![]() Posts: 704/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Sprite Paint is a program I made that edits the palette of sprites. (Doesn't work on palette 8 enemies for some reason) | |||
blackhole89![]() LOLSEALS Moderator of ROM hacking EmuNET IRC network admin Head GM of TwilightRO Level: 47 ![]() Posts: 392/971 EXP: 739208 For next: 26995 Since: 03-15-04 From: Dresden/Germany Since last post: 14 hours Last activity: 12 hours |
| ||
Check your loops. for(int i=0;i<8;++i) breaks before i=8. (duh) ![]() Anyway, *wants* |
|||
gnkkwinrrul![]() Dry Bones Level: 39 ![]() Posts: 359/647 EXP: 402054 For next: 2717 Since: 03-15-04 From: LYKEOMGIMFROMSOMEPLACE???? Since last post: 81 days Last activity: 40 days |
| ||
Ah...no wonder my parabombs are still yellow and purple ![]() go to the noob board. sprite paint is there (edited by gnkkwinrrul on 10-20-04 01:39 PM) |
|||
Smallhacker![]() Green Birdo SMW Hacking Moderator Level: 68 ![]() Posts: 706/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Originally posted by blackhole89 Well, my program (which isn't made in C, by the way) isn't the problem. Not even hex editing works... There must be some kind of special "Palette 8" table somewhere in the ROM... By the way... Since my host removed my account without any warning, there's nowhere to download it. I'd be happy if somebody could host it for me, but until then, email me (thesmallhacker@hotmail.com) and I'll send it to you. (edited by Smallhacker on 10-20-04 02:33 PM) |
|||
blackhole89![]() LOLSEALS Moderator of ROM hacking EmuNET IRC network admin Head GM of TwilightRO Level: 47 ![]() Posts: 404/971 EXP: 739208 For next: 26995 Since: 03-15-04 From: Dresden/Germany Since last post: 14 hours Last activity: 12 hours |
| ||
*is too lazy to start outlook right now* could you send it to me? I could even host it for you (~60% uptime only, but relatively fast). ~Blacky. |
|||
Smallhacker![]() Green Birdo SMW Hacking Moderator Level: 68 ![]() Posts: 708/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Sure. Anyway... I've started working on "Sprite-O-Matic", as I call it. So far, it can (exept for editing palettes) change if a sprite is stompable or not. That's at least something to start with. ![]() I'm planning on making a function called "Trade Code". Since only a few bytes per enemy is modified, this function will print the sprite's bytes. Then, you could give that code to another one, who inputs those bytes into Sprite-O-Matic and gets the same sprite as yourself. It could be really useful if someone makes a "Custom Sprites Archive" ![]() |
Pages: 1 2 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Super Mario World hacking - More Sprite Data [Info] |
![]() ![]() ![]() |