Jump to content
  • 0

Help editing Gohma


HeavyZ
 Share

Question

Can anyone help me change her color via hex editor? I've tried to use the start offsets for both Boss_goma and En_Goma. I've tried messing around and editing some things, but I can't seem to change her color. What offset do I use?

 

Another question is how do I give her more speed, more health, and increase her attack damage?

 

Another offset list would be nice too, the only one I've found with her besides her object offset listed is this one.

http://spinout182.com/mqd/a.html

I'm assuming there may be another one.. I don't know, I really don't know anything about it.

It really sucks not knowing anything about hexing, and I know it would be a pain to try to explain it to someone who doesn't know all that much about it. I'd really like to try, but I can't when there is no good tutorials... or none that I can find on what I'm trying to do.

I just want to know so I can make the best Zelda hack I can.

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

You would edit her object in order to change her color. Look in the object list on spinout's site. As for speed and other attributes like health, you would modify those in the actor (Boss_Goma). If you really want to know, I would suggest opening up her disassembled actor by clicking the src link and then look for instructions that write to her health in the actor panel.

 

If you're interested, you should probably start learning MIPS assembly.

Link to comment
Share on other sites

  • 0

You would edit her object in order to change her color. Look in the object list on spinout's site. As for speed and other attributes like health, you would modify those in the actor (Boss_Goma). If you really want to know, I would suggest opening up her disassembled actor by clicking the src link and then look for instructions that write to her health in the actor panel.If you're interested, you should probably start learning MIPS assembly.

Thanks man, and I'm definitely interested in learning MIPS, and whatever else I can to make my project better. How hard would it be for someone who has no idea what it even is to learn it? I got people who are helping me, and explaining things with hex, and I've had trouble with that alone. Most of the tutorials I come across might as well be explaining things in German

Link to comment
Share on other sites

  • 0

MIPS assembly is about as hard as N64 game modding can get. It helps to approach assembly code from the perspective of a coder to try and figure out why they would write things certain ways.

Yeah... I doubt I would be learning any of that haha, at least not anytime soon. Let's just say I look up her actor start offset, which row of bytes would I want to mess with for what? I'm using the HxD so at the top it say's in blue 00 01 02, and ect..

 

Edited: When I try to search up Gohma's object start  0x01100000 in the hex I can't find anything in the hex other than something listed as bytes toward the end at OC OD OE and OF. I'm pretty sure I'm doing it wrong :/ what do I search up and what as?

 

Hope it isn't too much trouble trying to explain any of that. If you feel like adding on anymore to that information then please feel free too

Link to comment
Share on other sites

  • 0

Actor AI is complicated to learn, but there are basic principals I pointed out for heavy. If you can't grasp the code, I have a tool called "Ocarina AI Value Editor" to change the hex values for speed and other things (except the JAL functions should be left to know what should be done with them).

Link to comment
Share on other sites

  • 0

There are certain things that are standard for all RAM actors... for example, actors with health store their health at 0xAF bytes away from their actor panel. The pointer to the actor panel is commonly stored within register s0 of an actors disassembly (if not then s0 usually holds a pointer to Link's actor panel). The way that you would go about searching for a way to change an actors health would be like this...

[*]Find your disassembled actor on spinout's site. For Queen Gohma, this would be it: http://spinout182.com/mqd/Boss_Goma.S

[*]Press ctrl+F to start a search.

[*]Enter in the decimal form of 0xAF... it would be 175. We do this because the program that disassembles actors, zOVLDis, usually has everything in the decimal format.

[*]Out of the results that you get, look for ones that are of the following formats:

sb xx, 175 (yy)// Where xx and yy can be any register but different from each other. Usually yy tends to be s0.
sb xx, %lo(data_vvvvvvvv) (yy) // Where xx and yy can be any register but different from each other and vvvvvvvv is a virtual offset to the data section within the actor. This is a lot less common then the first format but it is possible.
[*]In Queen Gohmas's case, I found only two instructions which set her health (lucky me!):
// Found in func_80915A94; This shows that it sets the actor's health to 0x0A (or 10)li              t7,10li              t8,255sb              t7,175(s0)
// Found in func_80919F8C; this is seems to be the code in the actor that decrements the actor's health when hit and checks to see if the actor should die.lbu             t7,175(s0)li              a1,14352or              a0,s0,$zerosubu            t8,t7,v0sb              t8,175(s0)lb              t9,175(s0)blez            t9,$L000184

I'll probably come back later and tell you what exactly you need to change, but I'll leave it at note of telling you that the first result is the one you want to modify.

 

Huh... I just realized I made a little mini-tutorial on locating common actor variables (like health) and hacking actors with assembly. I would've thought that it would be harder to explain.

 

EDIT:

Heavy, go to this offset in Queen Gohma's compiled actor (http://spinout182.com/mqd/Boss_Goma.zovl) and modify the byte according to your needs...

 

0x2F7 : Queen Gohma's health. It is 0x0A by default.

 

If you want a ROM address to work with then here you go...

 

0x00CDF367 : ROM offset of Queen Gohma's health. It is 0x0A by default.

  • Like 1
Link to comment
Share on other sites

  • 0

Ohh yeah! I changed her health from 0A to 6A XD

For anyone else who doesn't know what that means, it pretty much means her health went from 10 to 106!

I owe you one Jason.

What program can I use to open up that zovl file? is there one where I can open it up in a notepad like form where it looks like it does on Spinouts site?

and once edited how could I inject it into the rom?

I used the rom offset you gave me for Queen Gohma's health. You did a pretty good job at making a whole bunch of giberish understandable.

I had to look up this http://en.wikipedia.org/wiki/Windows-1252

Next I will change her appearance, and if I can any of her other attributes, I will need to learn more about MIPS for sure it wasn't that hard after you explained it... still not sure if I'll be able to change any of her other attributes until I learn more about MIPS, unless you supplied her speed ROM Offset.

If you would supply the link to that tutorial of yours you mentioned that would be great. Unless it's on this website then I should be able to find it on my own.

This stuff is starting to make enough sense for me :)

Link to comment
Share on other sites

  • 0

You can just open the zovl file in a hex editor. File extensions mean nothing in OoT modding.

 

And that brief explanation was pretty much a mini-tutorial.

 

Mallos, I just learned what the opcodes do and how some basic things on how the CPU works (a jal places a return address in ra, signed numbers are after 0x7FFF, etc) and then I put that knowledge to the test by starting off with simple things like spawning actors with L button :P

Link to comment
Share on other sites

  • 0

Just use google to find up what each MIPS term means. It's all composed of abbreviations or acronyms that do math, linking, conditions, and stack points to store local/temporary variables.

 

You can use the RAM Map page in the Z64 Wiki to find what you can manipulate with assembly if you want to get in-depth.

Link to comment
Share on other sites

  • 0

 

You can just open the zovl file in a hex editor. File extensions mean nothing in OoT modding.And that brief explanation was pretty much a mini-tutorial.Mallos, I just learned what the opcodes do and how some basic things on how the CPU works (a jal places a return address in ra, signed numbers are after 0x7FFF, etc) and then I put that knowledge to the test by starting off with simple things like spawning actors with L button :P

 

 

Just use google to find up what each MIPS term means. It's all composed of abbreviations or acronyms that do math, linking, conditions, and stack points to store local/temporary variables.You can use the RAM Map page in the Z64 Wiki to find what you can manipulate with assembly if you want to get in-depth.

 

I know, thanks for the huge explanation! That was an awesome thing to do, and thanks Airikita I didn't think there would be a page like that. Now I will be able to change other attributes, and turn the bosses into enemy's worth fighting!

 

Link to comment
Share on other sites

  • 0

After this, I'll let the topic go back to what it's supposed to be, but I have no problem with knowing what the opcodes do, but I have problems with the registers. In windows and GB they're simple. A, B, C, D, E, F, H, L, (HL) and combinations of them. But with MIPS it's like t7 t8 t9 s0 s1 I don't get it. I don't know how many there are, what each is for, etc...

Link to comment
Share on other sites

  • 0

 

This is some excellent information and should not be lost in a forum post alone. Why not post it on the wiki? (I would but my account has never been ceritified by the people on the Z64 Wiki)

Link to comment
Share on other sites

  • 0

This is some excellent information and should not be lost in a forum post alone. Why not post it on the wiki? (I would but my account has never been ceritified by the people on the Z64 Wiki)

I'm actually thinking about making an entire section on the wiki dedicated entirely to actors. One article wouldn't be enough to explain the things which comprise of an actor...Articles under the actor section would be damage charts, damage done to link, health, speed, weight, functions commonly used by actors, a general breakdown of an MIPS ELF binary, etc.It would be dedicated soley to potential future creation of complicated actors (basic ones have already been made).
  • Like 1
Link to comment
Share on other sites

  • 0

Well I found the item in Rauru's file finally!This *Might* be the same for every song learning as well.After a link 84D10 (the start of the Quest Item Routine, it seems) there is anA1, R0, 006B (2405 006B) in Rauru's File meaning that this is the Light Medallion classification (I am not entirely sure how this works yet since I was under the impression I was looking at a 01AC to change the direct hex which should have been a half-word, as changing it by 1 would just push the value back 1 and give an entirely different result) This may be the case with the other Song Teachers and may give some insight to how Exits give items as well. We will have to see.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.