Pages: 1
Posted on 11-27-11, 12:30 am
Buster Beetle


Karma: 379
Posts: 399/464
Since: 06-29-11
I am going to try and get back to data mining here for the sprite data. Also getting a better idea of what the sprites do. But if anyone can help out. Even just picking a useful sprite that is not in green and doing some testing and logging. The more of these we find, the more abilities will be available for the hacks. I am sure there are still a lot of big ones that we are missing that would be cool.

So if you guys can each pick one over the next week and get some more data for us. Some examples are the camera sprites, platforms, etc.

It helps making a test level with just enough in it to test the sprite. You know, ceiling and floors. All other areas empty so there is no cross data in the mix. First 4 bytes are usually activator IDs if the sprite uses them. Sometimes the 4 four can be other data, but you will know with a switch with the same ID next to the sprite. Basically, I make 6 sprites at a time. 00 00 00 00 00 00, 11 11 11 11 11 11 and see if anything changes from adding at least a flag 1. Then going, 00 00 00 00 00 01 to see which nybble changed the sprite...and so on.
Posted on 11-27-11, 01:08 am (rev. 1)
Super Mario
( ͡° ͜ʖ ͡°)

Karma: 10020
Posts: 1212/4457
Since: 06-08-11
Nice, will see if I can help.

Also, you say the first four bytes (you mean nybbles?) are usullly input/output ID's, but they can be other things.

They can't be other things. From the game's code, the actual "sprite data" is only the last 4 bytes. The first two ones are the input and output ID always, but depending on the sprite, they're not used
So, if you see the sprite is not activating other things or being activated, then there's no need to further test them

Posted on 11-28-11, 12:55 am (rev. 2)
Buster Beetle


Karma: 379
Posts: 400/464
Since: 06-29-11
Posted by Dirbaio
Nice, will see if I can help.

Also, you say the first four bytes (you mean nybbles?) are usullly input/output ID's, but they can be other things.

They can't be other things. From the game's code, the actual "sprite data" is only the last 4 bytes. The first two ones are the input and output ID always, but depending on the sprite, they're not used
So, if you see the sprite is not activating other things or being activated, then there's no need to further test them



Huh, I didn't now that. That will save some search time too. So then it is down to the others to play around with.

So with this known, edit the first two pairs for 00 01, then 01 00. The rest of the data 00s. See if there is anything activated. If not it is also possible that the other nybbles contain an "enable byte" somewhere in the nybble 5 area. So going 01 00 11 11 11 11 catches these or 00 01 11 11 11 11 to see if the third and fourth nybble contains activator data. Then from there if nothing activated, you can move into the other nybbles to look for changes. Lengths, speeds, item drops, or behaviors.

A lot of the time you will see the byte containing a checkbox or flag with a value of 1. So you know this is this case by entering 0, then 1, then 2. If there is no additional change at 2, you can eliminate data from 2 and up. That byte is done.

I know it sounds like a lot of work. I have done a lot of these. But best way is to continue on your hacks, and wait for a sprite that you want to be able to do more with. That is a good point to test it for more data.

Posted by Dirbaio
Nice, will see if I can help.

Also, you say the first four bytes (you mean nybbles?) are usullly input/output ID's, but they can be other things.

They can't be other things. From the game's code, the actual "sprite data" is only the last 4 bytes. The first two ones are the input and output ID always, but depending on the sprite, they're not used
So, if you see the sprite is not activating other things or being activated, then there's no need to further test them


edit... I am also going heavy after the boss fights. Getting closer here to making things work outside of the normal game. I updated the Boss Activator 39 some. This is all theory so if anyone can prove or disprove any of this, please do so.

Posted on 11-28-11, 01:27 am
Birdo


Karma: 3304
Posts: 205/2021
Since: 06-28-11
If it helps, are you using Zones to test sprites? There might be some data in a sprite that requires a zone to work.
_________________________

Posted on 11-28-11, 01:46 am (rev. 1)
Buster Beetle


Karma: 379
Posts: 403/464
Since: 06-29-11
Yes I am using zones, and also trying without zones. To eliminate variables.

Here is a very interesting one. I was able to add Peach and Bowser Jr. entering 1 in byte 10 of the Boss activator sprite 39. This was with the default sprite sets from the World 1 boss battle enabled. In this case all are disabled except set 2 and 16. I tried adding in just the sets, no sprites for 3 and 4. I was going to add some Buzzy beetles and Bob Ombs. The level crashed at black screen. No sprites added. But when I disabled the sets, it returned to normal. Peach and Bowser Jr. were back.

So maybe one of the keys to using bosses in other areas is matching the sprite sets themselves. Because I got a definite crash just by enabling another set not used in the level....So strange just selecting it in the config sprite set menu. No sprites added...
Posted on 11-28-11, 04:07 am
Birdo


Karma: 3304
Posts: 206/2021
Since: 06-28-11
Posted by luckwii
Yes I am using zones, and also trying without zones. To eliminate variables.

Here is a very interesting one. I was able to add Peach and Bowser Jr. entering 1 in byte 10 of the Boss activator sprite 39. This was with the default sprite sets from the World 1 boss battle enabled. In this case all are disabled except set 2 and 16. I tried adding in just the sets, no sprites for 3 and 4. I was going to add some Buzzy beetles and Bob Ombs. The level crashed at black screen. No sprites added. But when I disabled the sets, it returned to normal. Peach and Bowser Jr. were back.

So maybe one of the keys to using bosses in other areas is matching the sprite sets themselves. Because I got a definite crash just by enabling another set not used in the level....So strange just selecting it in the config sprite set menu. No sprites added...


interesting that sprite sets takes a role in sprites...I wonder if that's why the castle loop inst working for me.

Also, for testing, are you using an activator(like an orange switch) to test sprites too? Some sprites might react to it.
_________________________

Posted on 11-28-11, 06:03 am
Buster Beetle


Karma: 379
Posts: 404/464
Since: 06-29-11
Posted by gridatttack
Posted by luckwii
Yes I am using zones, and also trying without zones. To eliminate variables.

Here is a very interesting one. I was able to add Peach and Bowser Jr. entering 1 in byte 10 of the Boss activator sprite 39. This was with the default sprite sets from the World 1 boss battle enabled. In this case all are disabled except set 2 and 16. I tried adding in just the sets, no sprites for 3 and 4. I was going to add some Buzzy beetles and Bob Ombs. The level crashed at black screen. No sprites added. But when I disabled the sets, it returned to normal. Peach and Bowser Jr. were back.

So maybe one of the keys to using bosses in other areas is matching the sprite sets themselves. Because I got a definite crash just by enabling another set not used in the level....So strange just selecting it in the config sprite set menu. No sprites added...


interesting that sprite sets takes a role in sprites...I wonder if that's why the castle loop inst working for me.

Also, for testing, are you using an activator(like an orange switch) to test sprites too? Some sprites might react to it.


Yes, usually I use the orange switch. But what makes that hard is that it is hard to tell what is input or output. There are IDs present, but the order, and what the sprites even are, are in question now. Like the "Boss Activator" is really a Boss cutscene activator. In fact, I think I may rename it here...just waiting to figure a little more. Because in this case I was able to activate Peach and Bowser Jr. only. They are only animations though.

So somehow one animation will lead to the next, using and loading a pre-determined choice of sprite sets even. That is was learned today. Also, updated the order of what triggers what.

Another thing is the unused Bowser Jr. I can get that working until just after his blue fireball comes out. Then the game freezes. So at this point either another sprite set needs to be enabled...or one disabled. Maybe the game can't load the sprite sets needed when a wrong one is selected, I don't know.
Posted on 12-03-11, 08:40 am
Fuzz Ball
KirbyFanatic64 (LOL)

Karma: 1361
Posts: 58/950
Since: 11-13-11
After reading this thread, It seem likes that Nintendo's level use only a few of them (sprite data), right?
I'll try to help too. But some data I found was already found by others.
_________________________

Great games must be fun, not fancy.

Music Hacker needed! PM me if you wish!
Pages: 1