By Hiccup on 09-07-13, 01:03 pm |
Category 'Camera controllers', known |
Probably triggerable by an event
This sprite have to use together with paths. Unknown 1 is for speed. It should be divisible by 8. Unknown 3 maybe acceleration from former node's speed to this node's speed.
And I've found some interesting formula: x=98k/y. Where k is a amount of pixel being passed within x mario's second. And y is the value you entered in unknown 1. It relates together. But it might not always work. It may have something to do with unknown 3 too...
Calculation example: let say you want a sprite to move camera up 4 tiles within 16 mario sec.. Your formula is x=98k/y. As 4 tiles=64 pixels. Substitute it, then you have to multiply it with 98. 98x64=6272. And subtitute x with 16. Then 16=6272/y.
And solve it to find y. After you got y, you insert that number into unknown 1. And test it in the emu, does 4 tiles are passed within 16 mario sec. or not? But I think it does. Remember unknown 3 ? 0. Sometimes the time don't have to be whole number.
Also, I think the position where the sprite is first recognized by the game will determine the camera movement along the path. (Camera movement to the right , left, or straightly of the path) And there're some nybbles controlling how the sprite will act; wait for Mario to come near then scroll or scroll immediately when recognized. I don't know which, but it does have.
That's all I've found. :)
Hope this help!
|
Data files: none |
Sprite fields: • Start-Node: value at nybble 5 • Path ID: value at nybble 10-11 • Scroll direction: list at nybble 9: 0=Vertical,1=Horizontal • Start Position?: list at nybble 7: 0=Midway,1=Unknown,2=Level Start • Last node behaviour: list at nybble 6: 0=Unknown 0,8=Unknown 8. See NSMBWii's sprite data • Input ID: value at nybble 1. Make it start • Output ID: value at nybble 3. When it gets to the last node, it will trigger this id |
|
⇨
|
By Hiccup on 09-07-13, 01:04 pm |
Category 'Camera controllers', known |
Probably triggerable by an event
This sprite have to use together with paths. Unknown 1 is for speed. It should be divisible by 8. Unknown 3 maybe acceleration from former node's speed to this node's speed.
And I've found some interesting formula: x=98k/y. Where k is a amount of pixel being passed within x mario's second. And y is the value you entered in unknown 1. It relates together. But it might not always work. It may have something to do with unknown 3 too...
Calculation example: let say you want a sprite to move camera up 4 tiles within 16 mario sec.. Your formula is x=98k/y. As 4 tiles=64 pixels. Substitute it, then you have to multiply it with 98. 98x64=6272. And subtitute x with 16. Then 16=6272/y.
And solve it to find y. After you got y, you insert that number into unknown 1. And test it in the emu, does 4 tiles are passed within 16 mario sec. or not? But I think it does. Remember unknown 3 ? 0. Sometimes the time don't have to be whole number.
Also, I think the position where the sprite is first recognized by the game will determine the camera movement along the path. (Camera movement to the right , left, or straightly of the path) And there're some nybbles controlling how the sprite will act; wait for Mario to come near then scroll or scroll immediately when recognized. I don't know which, but it does have.
That's all I've found. :)
Hope this help!
|
Data files: none |
Sprite fields: • Start-Node: value at nybble 5 • Path ID: value at nybble 10-11 • Scroll direction: list at nybble 9: 0=Vertical,1=Horizontal • Start Position?: list at nybble 7: 0=Midway,1=Unknown,2=Level Start • Last node behaviour: list at nybble 6: 0=Unknown 0,8=Unknown 8. See NSMBWii's sprite data • Input ID: value at nybble 0-1. Make it start • Output ID: value at nybble 2-3. When the autoscroller reaches its final path point, this Event ID is triggered. |
|