No Mercy Poly Modding Tutorial

S.K. Stylez

Backstage Worker
Joined
Jun 2, 2011
Messages
813
Reaction score
0
Overview

This guide deals with modifying polygon shapes in WWF No Mercy. It is a powerful system, allowing now total customisation of ingame models, and coupled with graphic modifications, whole new items. This guide assumes you have a working knowledge of the Hex series (0-F) and that you are using an emulator. It is actually easier to do with a cart and GS, but this is the method I designed for emulation hacking. I recommend the following set up:

Project 64 1.5
Nemu

Using PJ64 for refining and making your code, and nemu for its powerful memory viewer inclusion. Youll need an adequate PC to run both emulators at the same time, unfortunately, or you can just use Nemu to dump the information, although I do not do this as Im used to reading the data from the memory viewer; but whatever works for you.

Starting Point

Ok, we're going to be modifying the ring mat polygon for this example, as it is a simple polygon, few points, and is where I myself started out. We're just going to be using it as a means for seeing what addresses do what.

You first need the following list of addresses (Download these)
Arena Addresses- Cawmaster 2000
Weapon Modifiers- Kryogenix
Weapon Poly mod Pointers- Im Bored
(See attachment at bottom)

What we're interested in here, is in the Arena Addresses file, right at the bottom:

2-2.jpg


See the address listed for Ring mat: 80079AF8. This is your starting point. Fire up nemu, go in to the match, in the arena that you want the mod to take place in (this isnt necessary for all mods, but do so to be sure. Its better to be safe than sorry.) Open up the memory editor, and go 80079AF8. Now you ideally want to subtract about 0x20 from this, so we should ideally have gone to 80079AD8. Here Ive gone to 80079AEC, but this is semantics. Just make sure you can see a set of values that read like 8029XXXX 8029XXXX 803XXXXX. See the following example:

3-1.jpg


Now more often than not, you will see 802X addresses. Follow the first one, so here, we go to the address 80298180, as this was the first value. Make sense?

4.jpg


This is what you should be faced with. If not, hit ctrl+Z, and follow the other value until you do. It wont be the exact same as this, it depends on the item your hacking, but youll know it after time by a feel for the game, and also there will be FF at the end of every line for a block (just a general rule.)

So what is this area? THIS, is the polygon modifier for the ring mat. We have traced back from the objects movement map, where it is called in in-game, and traced to where the game stores the models data. Now, it may look a little intimidating, so lets break it down.
Each model is made up of "Points", which make the models shape.
Each point has a whole line assigned to it. These lines are made up of various values, each one edits something else.


First four digits affect the X co ordinates of a point, the next four affect the Y, and the next four affect the Z co ordinates.

Then theres often a series of four that I dont know what they do, but the remaining 8 deal with texture application (I havent dealt with this myself so I cant say what it does.) The final 8 are your colour addresses, and work in the same way as PNG32 files. You have RR, GG, BB, And AA- AA being alpha (alpha only tends to work on certain items, mostly ropes and menu components.)

If that doesnt make sense, go back and reread it. It will, eventually. Just remember, its XYZ(Physical), XYZ (Texture), RRGGBBAA. Easy enough.

5.jpg


So putting theory in to practice...This is where you open up PJ64, and get the game to the same place as you do in Nemu, which in this case is the ring area. This is going to teach you the basics of movements.

So you know what they do, but you dont know which points its applied to? Easy enough. Look for groupings. Lets say on the ring mat, I wanted to move a whole edge over a bit. Well, we just write a code that affects every instance of a value. Lets say I want to move it on the X axis. Well, we can see that the value 0118 repeats 3 times, so lets try, in PJ64, rewriting 0118 every time it occurs on the X axis, and lets try a replacement value of 0200. Key in your code, and turn it on, and go back to PJ64.

6.jpg


Bammo, we've moved the left hand side over to the left some more. You can also see, in this image, that we've edited the Y Axis of all the points that were 0118, to 007A. See how theres a slight elevation?

Now, you need to do some thinking. If an increase moved it to the left, then surely a decrease moves it to the right. Logic says that 0000 is dead center. Therefore:

0000 and upwards= Left movement.
0000 and less= Right movement.


And of course, to get less than zero, you just subtract in hex, so 0000-0100, becomes FF00. If you look back a few images, you notice that as well as the 0118 value, there is also an FEE8 value: this is 0000-0118, which would mean its an exact mirror. Use the same principle for all axis. An increase on 0000 on the Z axis moves it away from the camera, and so on.



Important note: Any item that has more polygons, ie, about 5, use the same process, and then manually go back in the mem editor, looking for model data. So, if you start at 8024F000, youd start to go back, so youd go back to 8024EF00, and so on and so forth. This is how arenas are listed. Polygon editors are listed in the same order as in CM's list of poly mods.

Colour Changing

7.jpg


This is basic in comparison to what weve just done. This makes use of serial repeater codes- 50.

The dissection of one of those codes is 5000XXYY ZZZZ

XX- Amount of repeats
YY- Difference between addresses
ZZZZ- Difference in value.


Therefore our code says that it should write 9 lines, with a difference of 0x10, and no value differences, starting from the address 8129818C.

Its basically
8129818C FF77
8129819C FF77
812981AC FF77
812981BC FF77
812981CC FF77
812981DC FF77
812981EC FF77
812981FC FF77
8129820C FF77

In short hand. And as you can see, we now have an orange ring mat.



Im tying up this version of the guide for now, it should be enough to get you started. Any questions, post in the thread at TNMZ.

Final note: You must have ALL polygon changes (basic hacking) applied in Nemu before you go and edit them further, as the model data will get moved in the game.

I found this as well as a few other guides on a back up DVD I made years ago. I'll post some more, but I remember someone looking for this guide. It helped me a lot when I was making the 6 sided ring back then. How time flies lol

Credits: ImBored.

Just realised, I posted it in the wrong section.

Attachments:
 
Joined
Nov 30, 2013
Messages
82
Reaction score
0
That is awesome! I probably wont be one of the guys making great use of this, but I think this is an amazing creation.
 

mrdoa

Lower Midcard
Joined
Aug 3, 2011
Messages
114
Reaction score
0
I've been looking for this tutorial FOREVER!!!!!!! Thanks
 

NMCM

Upper Midcard
Joined
Dec 6, 2010
Messages
624
Reaction score
0
Maybe Jazz and Co. would find this useful for the VPW save. Good stuff S.K.
 

jazz

Midcard
Joined
Nov 26, 2010
Messages
266
Reaction score
0
This is awesome, thanks for reposting. This guide (back in NMZ) was actually how I first got into poly modding, even though it needs some rewriting to make it clear, and the ring mat poly is not a good polygon to get started with, a polygon with four points is easier to get a grasp of (I mainly use two polygon values when making my stuff-- the ring apron poly, and a Raw arena poly that creates six identical 4-point polygons).

I really hate turning code on in-match, so a better activator system to use is this, so you can leave things always on:
http://z3.invisionfree.com/WldFb_Archive_Forum/index.php?showtopic=106

I'll get to writing a more extensive guide sometime in the near future, there's a bit more you can do with this stuff.
 

mrdoa

Lower Midcard
Joined
Aug 3, 2011
Messages
114
Reaction score
0
So I've been using this guide to mod stuff (mostly the ringmat) to get a feel for what exactly I can do with it and I have 2 questions that would make this make a lot more sense.

1.
"Open up the memory editor, and go 80079AF8. Now you ideally want to subtract about 0x20 from this, so we should ideally have gone to 80079AD8. Here Ive gone to 80079AEC, but this is semantics. "

This part makes absolutely no sense to me, it says subtract 0x20 but then he only actually subtracts 0xC from it so how would I know what to subtract? Is it just a general range to find the 802,802,803 pattern?

2. How do I know how many points each item has? I've been able to change 3 points on the ringmat using this guide but does each side of the mat have 3 points? Giving this 12? I have no idea.
 

S.K. Stylez

Backstage Worker
Joined
Jun 2, 2011
Messages
813
Reaction score
0
1. It's pretty much looking for the pattern before the start of the actual movements. You're looking for the first 802 address.

2. Each poly has a different amount of points, you'll just need to find a pattern. With the Ring Mat, you can see the pattern stops at 80298210.
 

mrdoa

Lower Midcard
Joined
Aug 3, 2011
Messages
114
Reaction score
0
That's the part I don't get, I don't see it repeating 802,802,803 over and over, I only see it once, If the first 802 address doesn't work should I try the second one?
 

S.K. Stylez

Backstage Worker
Joined
Jun 2, 2011
Messages
813
Reaction score
0
Try the second 802 address if it doesn't work. I'm not sure if the pattern repeats or not, but the 802 address you need will be a few addresses before the movements.
 
Top