Polygon Hacking

WldFb

Lower Midcard
Joined
Oct 31, 2010
Messages
117
Reaction score
0
Website
www.tapatalk.com
Ok, here's a little guide on how to poly hack.

As an example, I'm going to make a simple head hack, just two horns and a longer nose.

To make this, I need to know where the data is located. These addys shows the base address for the head polygons:

Head
P1: 800A5698
P2: 800A5C48
P3: 800A61F8
P4: 800A67A8

What you find there depends on where you are at the moment (SD Mall, menu, match, etc.). Also the address changes a bit depending on the wrestler displayed (it can vary if he's using different shapes). This is not too bad, though, as once you've decided what you use it will stay that way unless you edit your character again.

So, for example while viewing my caw in SD Mall (Head 01, Medium Body 01) I got this at 800A5698:
80267b20

There we find what we need for our character (again it can vary depending on the shapes you're using). You'll see something like this there:
3D 00 00 00 00 00 F6 FF E8 17 E8 0B 80 86 23 00
3D 00 FB FF 00 00 F6 FF E8 17 E8 0A 80 98 3D D7

Try to modify those values on the left (such as '3D' and FBFF) and see what happens (it updates in real-time).

Now, after experimenting I found what I needed here:
8126A1A2 0053 - >005A (horn)
8126A1E2 0053 - > 005A (horn)
8126A2A4 000F -> 0011 (nose)

The result:
polyguide.png



I need these activators (x= wrestler ID):
P1 D1077794 xxxx
P2 D1077796 xxxx
P3 D1077798 xxxx
P4 D107779A xxxx

And here's my code
D1077794 0A12
D126A192 0053
8126A1A2 005A
D1077794 0A12
D126A192 0053
8126A1E2 005A
D1077794 0A12
D126A192 0053
8126A2A4 0011

I use as activator the wrestler ID and one of the default poly values nearby.

Ok, great we have the code and it's wrestler specific. But it's for SD Mall only (and P1). How do I make it to work on the other menus and in-match?
Well, go to the area you need and display the character (for example go to the main menu and wrestler select and display your character) and use these again:
P1: 800A5698
P2: 800A5C48
P3: 800A61F8
P4: 800A67A8

Check the address there and convert your previous code to adapt it. For example this is for the menu and vs screen:

D1077794 0A12
D121BF22 0053
8121BF32 005A
D1077794 0A12
D121BF22 0053
8121BF72 005A
D1077794 0A12
D121BF22 0053
8121C034 0011

D1077796 0A12
D12059C2 0053
812059D2 005A
D1077796 0A12
D12059C2 0053
81205A12 005A
D1077796 0A12
D12059C2 0053
81205AD4 0011

D1077798 0A12
D11EFCF2 0053
811EFD02 005A
D1077798 0A12
D11EFCF2 0053
811EFD42 005A
D1077798 0A12
D11EFCF2 0053
811EFE04 0011

D107779A 0A12
D11DA022 0053
811DA032 005A
D107779A 0A12
D11DA022 0053
811DA072 005A
D107779A 0A12
D11DA022 0053
811DA034 0011

I don't have time to do it now, but for the entrances and the match repeat the same proceeding.

-

As you can see it's not very easy to make them, but for this hack the code is not too long (it modified only three values). You don't have to make the 4-player conversion for the menus if you skip the VS screen and for the entrances only P1 is needed (unless you hack a manager). That should help in case you want the code shorter.
Also, you can use ROM hacking (I did it for the spiked hair hack for example) and avoid using codes altogether. For that you have to edit a shape that is not also used by other characters of course.

Ok, that's it for this part. I will explain ROM hacking later and make other examples possibly.


--------------------------
Update: here's a list of additional addresses. The values you find there point to the area used for P1's polygons.

800A55C8Waist
800A55FCChest
800A5630Stomach
800A5664Entrance?
800A5698Head
800A56CCUpper Leg (trunks) (L)
800A5700Upper Leg (knee) (L)
800A5734Foot (L)
800A5768Hand/Wrist (L)
800A579CFingers (L)
800A57D0Forearm (L)
800A5804Upper Arm (L)
800A5838Upper Leg (trunks) (R )
800A586CUpper Leg (knee) (R )
800A58A0Foot (R )
800A58D4Forearm (R )
800A5908Hand/Wrist (R )
800A593CFingers (R )
800A5970Upper Arm (R )
800A59A4Face?
800A59D8Hat
800A5A0CTrunks/Waist?
800A5A40Lower Back
800A5A74Upper Back
 

Govos

Upper Midcard
Joined
Sep 12, 2011
Messages
557
Reaction score
0
dude you read my mind! i was gonna ask you, if that was possible, thanks so much!!
 

jazz

Midcard
Joined
Nov 26, 2010
Messages
266
Reaction score
0
Fantastic! Thanks again, WldFb!! ;)

I've been playing around with this for a while, it's pretty complex so I hope you don't mind me sharing a few more tips on shaping:

These addies work the same way as arena polygon point mods, so once you follow your pointer and get to the polygon data screen, here's a color-coded picture to explain what each value does:

21o64cj.png


The first four digits, marked in (red) affect the X position (horizontal)
The four digits marked in (green) affect the Y position (vertical)
the next four digits, marked in blue, affect the Z position (front to back)

Generally, it's best to use small increments, start with last digit and gradually decrease/increase.

Another thing to note is that since these addies affect every single polygon point for each of the body polygons, elements are ordered in terms of stacking order-- the elements that are further back are listed first, and they are overlapped by the next series of polygon points. So when you follow your pointer from (800A5698) it will take you to the polygon points for the back of the head, but once you get through those it is followed by the back of the legs, feet, arms, etc. before you get to the face polygons.

So if you're only interested in editing the head, the easy way to find the face polygons is to make note of the Y-values (the second column) of the back of the head, and then scroll down through your memory editor until you get to the next section that has a similar range of Y-values (approximately 0057~003F).

Texture Mapping

Okay, so let's say you found the values that you needed and shaped them the way you want. But, when you moved your polygon points, the texture stretched with it, resulting in a part of the face now being out of scale.
Example:
2n6avs8.png


Fortunately, there's a way to fix this. Within each line of polygon point data, there are two values that determine how the texture is mapped to that specific polygon point. That is, you can use these values to move the texture horizontally or vertically.

3yecn.jpg

The four digits in purple are your X (horizontal) texture map, and the four digits in orange are your Y (vertical) texture map. In this case, we're looking at bigger increments, usually the third digit (for example, from 1768 to 1968).

So, using the same example pictured above, the way to fix it is to move the texture upwards, and to do this we just go to the two lines of code where the Y value was changed, and we adjust the vertical Texture Map to move the texture upwards. Changing the value from 1768 to 1968 gives you this:
2cdh3jb.png


As you can see, the shape remains the same, but now the texture has been stretched upwards, eliminating the overstretched look.

This is especially useful for larger/longer horns or more complex shapes, a certain amount of texture mapping is needed to avoid stretching.

6iwjgm.png

(texture credit: Loco/Jcsix)
 

Govos

Upper Midcard
Joined
Sep 12, 2011
Messages
557
Reaction score
0
I don't know why, but the "horns code" doesn't work in my emulator, Has anyone tried the code?
 
D

Deleted User

Crowd Member
These are cool, the same methods Underhill and I used 5-6 years ago for baggy shorts, mohawks, spiked shoulder pads, and mask horns.

Nice to see it expanded a bit. Variability is why it was never expanded. In Match, Entrance, Interface, Championship Mode, and other match types. Coding piles up after a while.
 

WldFb

Lower Midcard
Joined
Oct 31, 2010
Messages
117
Reaction score
0
Website
www.tapatalk.com
Thanks everyone.

@jazz
Thanks for your post! Feel free to add it at my forum and at NMZ.

@govos
It probably doesn't work on other caws. You should search for the right addresses and modify the code as explained above.

@CM
Cool, I didn't know these sort of things were made before. Yes, codes can be long. I was thinking of a way to make the game always use the same addresses, but I need to understand more of how it works first.



 

The NekoMancer

Promoter
Joined
Jun 17, 2011
Messages
4,520
Reaction score
0
Is there a chance that one day you develop a tool to generate this kind of hacks? It'd be awesome, man!
 

AKI Man

Legend
Joined
Oct 30, 2010
Messages
14,152
Reaction score
0
Website
s4.zetaboards.com
This is godly! Yes, I said it again.

Thank you WldFb and Jazz for the guides my friends. I think this should now get more people interested in hacking.

Will try this all later tonight.
 

AKI Man

Legend
Joined
Oct 30, 2010
Messages
14,152
Reaction score
0
Website
s4.zetaboards.com
Woah! So WldFb sir. With these addresses I can basically edit the particular body part and make unique body shapes to create a more authentic, true to life, real life wrestler? That is sick!

GOD!
 
Top