Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 10, 2009 13:18:34 GMT -5
I decided to post here basically this was done a while ago its a Dlist port and an animation mod, nothing too special but its pretty cool. www.youtube.com/watch?v=s4moXibdWmAcredit goes to zeth and whoever else wrote the Zobj page on spinouts website
|
|
|
Post by Axel on Apr 10, 2009 17:24:33 GMT -5
made me lol. He just suddenly falls and is completely flat, then he gets back up
|
|
|
Post by spinout on Apr 10, 2009 17:53:49 GMT -5
I'm glad more people are taking interest in these kinds of things. Now, as for the hammer, all you need to do is change the pointer to the sword display list to that of the hammer, since adult link already has one. Also, slightly off topic, but I thought while we were on the subject of animations, I might as well show you one I made (byte by byte) a while back: Nothing special, but it was how I learned the animation format. (btw, the animation format info on my site is incorrect :/)
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 10, 2009 18:26:22 GMT -5
Is there any place with the correct info, or are you going to update it? I was thinking of trying something like this too (animations).
|
|
|
Post by spinout on Apr 10, 2009 20:51:03 GMT -5
Sure. Animation headers (loaded with routine 0x000A457C) are: 0000xxxx bboooooo bbaaaaaa nnnn0000 Where- x is number of frames b is bank (06 = object 04 = gameplay_keep, etc) o is rotation data offset a is rotation data pointer list n is rotation limit (more on this later)
Rotation data is simple. It is just half-words (two bytes, 16 bits) of signed data that is referenced to by the rotation data pointer list. The only thing that you must take into consideration, is any half-word that is the value of the rotation limit or larger is not just read once, but the word after it is also read, until it is read the amount of times as the number of frames.
The rotation data list is quite different. Each entry is 6 bytes (48 bits), divided into three half-words for x, y and z rotation. Their values are references to which word of the rotation data is read. They go in the same order that the model parts are laid out in the object's hierarchy, which can also be found as a argument set up before the animation drawing routine ( 0x000A457C ). After it, there is usually a buffer to achieve 4 byte alignment if necessary.
I know this is a bunch, if you have any questions I'd be happy to answer them.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 10, 2009 21:16:24 GMT -5
Thanks for that! I'll probably try it out tomorrow, when I'm more awake. I'm just a little confused on how you know which limb is being moved by the animation. I think you mentioned something about it, but I didn't really understand.
Also do you know of a good place I can learn ASM?
|
|
|
Post by spinout on Apr 10, 2009 22:38:07 GMT -5
Each limb is rotated according to the data in the rotation data pointer list. They are translated in their hierarchy.
Assembly... I learned it by writing a disassembler, but if I were you I'd learn it by starting out with simple hacks, such as setting up a hook and returning. If you want to do any ASM hacking, I'd recommend using Nemu. PM me if you wanna talk more...
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 11, 2009 7:53:00 GMT -5
Each limb is rotated according to the data in the rotation data pointer list. They are translated in their hierarchy. Assembly... I learned it by writing a disassembler, but if I were you I'd learn it by starting out with simple hacks, such as setting up a hook and returning. If you want to do any ASM hacking, I'd recommend using Nemu. PM me if you wanna talk more... wow thanks for that spinout, i'll try and improve on a gerudo or something
|
|