Jump to content

(ZAO-ADD) Z64 Automated Actor and Object Adder


Jason777
 Share

Recommended Posts

So, dumb question: this is meant to be used in conjunction with xDan's newest actor placement tool (forgive me but I am unsure which one it is named, he has so many great tools :) )...correct? Or does your tool handle the movement of actors inside said map?

Nah, my program only adds objects and/or actors and places them at coordinates of (0, 0, 0) with an actor # of 0x0008 and a variable # of 0x000C. I think it would be redundant to write another actor placement tool... Well, it is preferred that you use it with SayakGL or OZMAV, but I'm about 99% sure that you can use it with UoT, ZAP, or ZLE since I don't see any reason why it wouldn't work :P
Link to comment
Share on other sites

The Actor portion works. I placed 4 new actors in Hyrule Field (Child) without issue. However a new problem arises...

 

I then loaded up Sorata to see if I can edit these four new actors and upon loading Hyrule Field the program errored when trying to load the area. So it works normally, but doesn't seem to be used correctly by Sorata any longer (really just a note to XDaniel in the future for now)

 

 

However it functions perfectly with Sayaka, which is what matters at the moment! So I can say that this version definitively works... with actors at least. I haven't tried the Group Adder yet.

Link to comment
Share on other sites

I got an error when trying to add stuff to Hyrule Field, it says it's out of space. I haven't added anything extra to the field, though, so I'm not sure why it's giving me that error. It seems to work okay with other rooms, though. I'll continue fiddling with it.

Link to comment
Share on other sites

The Actor portion works. I placed 4 new actors in Hyrule Field (Child) without issue. However a new problem arises...I then loaded up Sorata to see if I can edit these four new actors and upon loading Hyrule Field the program errored when trying to load the area. So it works normally, but doesn't seem to be used correctly by Sorata any longer (really just a note to XDaniel in the future for now.)

That would be because of the file table pointer fixing option I implemented, I think, since I'm pretty sure Sorata reads the file table for maps and scenes. If you start again with a clean ROM and type in 'y' when it asks you if you wanted to update the file table pointer if possible I'm pretty sure that will fix things. Might lead to future problems though. 

I got an error when trying to add stuff to Hyrule Field, it says it's out of space. I haven't added anything extra to the field, though, so I'm not sure why it's giving me that error. It seems to work okay with other rooms, though. I'll continue fiddling with it.

That's strange, but I would imagine it's because you're using the automated injection offset feature. Like I said, it's not too advanced and it only looks for the highest file offset present in the scans it makes. I would imagine that you probably have a file sitting around in the free space of the ROM... If you do then unfortunately you would have to define an injection offset yourself.By the way, if you haven't watched the video yet you should see me adding objects and actors to Hyrule Field :P
Link to comment
Share on other sites

Bah, yeah, not sure how to define an injection offset. I'll continue to try things though. I did watch the video, and actually followed everything there to make sure I was doing it right. Just no space in the rom for anything it says. *sigh* Ah well.

 

At least I can add stuff to other places, though! (so far!)

 

EDIT: I really don't understand what I'm doing wrong. I attempted to add an object to the first room of the Forest Temple. Seemed okay, the program was all "yay, success".

 

But then I go there with ZAP2 to change the stuffs, and every object that was in the room was changed to 0000. I don't get it. I've followed the instructions and all that, but for some reason, it's just not working for me. I did attempt to edit those objects, and changed one of them to 0032. The actor/object did show up, but then I exited, came back in, and the objects were again set to 0000. Even though the 0032 object did stay and load in the room. The stalfos loaded right away, though every object is 0000. Like...what the crap is going on.

 

EDIT 2: Okay, that's it, I don't know what else to do. I can add actors fine, but then I add objects, and it's set for Link. If I add actors to the same map, the flames show up fine, but then EVERY object is set as Link, whether or not it's 0000. In Gerudo Valley, then, I got this weird thing where I added actors, and then in ZAP2, only actors called "push block" and "invalid" showed up, and I couldn't change the object list.

 

It must be me.

Link to comment
Share on other sites

Program looks pretty neat. I'm glad that someone finally managed to get the idea to make the program. Jason you did a good job at making this program. You can also learn from the program too if you want to do it manually when the program searches for the types of data space is available, pointers, etc. Good program.

 

 

EDIT:

 

Jason, just some advice. It would be helpful that if you added in a README.txt file in the folder with user friendly instructions so people can understand how to use it better and links to the wiki. :) Just a thought. ;)

Link to comment
Share on other sites

EDIT: I really don't understand what I'm doing wrong. I attempted to add an object to the first room of the Forest Temple. Seemed okay, the program was all "yay, success". But then I go there with ZAP2 to change the stuffs, and every object that was in the room was changed to 0000. I don't get it. I've followed the instructions and all that, but for some reason, it's just not working for me. I did attempt to edit those objects, and changed one of them to 0032. The actor/object did show up, but then I exited, came back in, and the objects were again set to 0000. Even though the 0032 object did stay and load in the room. The stalfos loaded right away, though every object is 0000. Like...what the crap is going on. EDIT 2: Okay, that's it, I don't know what else to do. I can add actors fine, but then I add objects, and it's set for Link. If I add actors to the same map, the flames show up fine, but then EVERY object is set as Link, whether or not it's 0000. In Gerudo Valley, then, I got this weird thing where I added actors, and then in ZAP2, only actors called "push block" and "invalid" showed up, and I couldn't change the object list. It must be me.

Could I ask that you send me the ROM (through private message, of course) you're trying to making modifications to? It's about time I got to the bottom of this... Unfortunately for me, I suck at trying to find bugs so hopefully I'll be able to recreate (and fix) them using your exact instructions. Keep in mind that I might not have a new release for about another week though.@Armos: Thanks for the support; I will definitely package a README file with the next release :)
Link to comment
Share on other sites

  • 1 month later...

April 27, 2013: Version 1.2 Release

 

In this release, there are very few updates:

  • Added in command-line support. You can see the arguments below.
  • A GUI has been implemented... sort of. I'm waiting on haddockd :P
  • A readme file has been added (finally).
Command-line Arguments:

 

ZAO-ADD.exe [ARGUMENTS]

 

-r [ROM FILE] : Specify a ROM to modify and doesn't do anything if it is the only argument

-s [sCENE NUMBER] : Specify a scene number (if used as the only argument, it'll print the number of maps as a decimal number)

-m [MAP NUMBER] : Specify a map number and doesn't return anything if it is the last argument (use in conjunction with -s)

-a : Prints the amount of actors in the specified map as a decimal (use in conjuction with -s and -m)

-o : Prints the amount of objects in the specified map as a decimal (use in conjunction with -s and -m)

-A [ACTOR ADD] : Specify the amount of actors to add (use in conjunction with -s and -m)

-O [OBJECT ADD] : Specify the amount of objects to add (use in conjunction with -s and -m)

-i [OFFSET] : Manually specify an offset to inject at (use in conjunction with -s, -m, and -A/-O)

-f : Try to fix file table offsets if possible (use in conjunction with -s, -m, -A/-O, and/or -i).

 

For example, say you wanted to find out how many maps were in scene 109:

ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109

 

Say you wanted to find out how many actors were in scene 109 map 0 (the same could be applied for objects using the -o argument):

ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -a

 

Say you wanted to add 2 actors to the actor list in scene 109 map 0 (the same could be applied for objects using the -O argument):

ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2

 

Say you wanted to add 2 actors to the actor list in scene 109 map 0 and inject the map at 0x35CE040:

ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2 -i 0x35CE040

 

Say you wanted to try to fix the file table entry as well:

ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2 -i 0x35CE040 -f

 

Download: http://www.mediafire.com/?0zpncm2ll7bwey8

Link to comment
Share on other sites

First off, great program.  We need more tools like this so that it's easy to jump right into modding.

 

Second, the CRC issue.  I see you've fixed it now...

 

HOWEVER, for convince I work with a CRC free ROM.  Some emulators won't recognize the ROM one it has a new CRC, so you end up having to redo the ROM settings for each CRC fix.  It's far easier to work with a CRC free ROM until you're ready to release your patch, and then put the CRC back.

 

http://www.the-gcn.com/topic/723-important-prevent-mods-from-freezing-on-some-emulators/

 

We really need a topic explaining to new comers the benefits of working with the CRC free ROM.

 

Third, concerning ZAP2.  The current release of ZAP2 has an error that only allows it to read actors so far down.  So actors added further down(or toward the end) of a zmap aren't found by ZAP2.  I fixed the error in my personal copy a long time ago, but never released it.  If you'll wait just a little longer, I'm working on a ZAP2.5 release with a slew of bug fixes, and new features(hopefully doors).

 

Please be patient with me.   :(

Link to comment
Share on other sites

ZAP 2.5 FTW!

 

JSA, if you want it to be used in the Master GUI, please dont use relative paths. Instead of the file name (for vb6) like "zap2.ini", use App.Path & "zap.ini" so the path is based on the executing application itself and not from the GUI's location.

that would also mean all projects like the setup (and all files zap references really).

Link to comment
Share on other sites

First off, great program.  We need more tools like this so that it's easy to jump right into modding.

 

Second, the CRC issue.  I see you've fixed it now...

 

HOWEVER, for convince I work with a CRC free ROM.  Some emulators won't recognize the ROM one it has a new CRC, so you end up having to redo the ROM settings for each CRC fix.  It's far easier to work with a CRC free ROM until you're ready to release your patch, and then put the CRC back.

 

http://www.the-gcn.com/topic/723-important-prevent-mods-from-freezing-on-some-emulators/

 

We really need a topic explaining to new comers the benefits of working with the CRC free ROM.

 

Third, concerning ZAP2.  The current release of ZAP2 has an error that only allows it to read actors so far down.  So actors added further down(or toward the end) of a zmap aren't found by ZAP2.  I fixed the error in my personal copy a long time ago, but never released it.  If you'll wait just a little longer, I'm working on a ZAP2.5 release with a slew of bug fixes, and new features(hopefully doors).

 

Please be patient with me.   :(

That's great news, JSA! A month or two ago giadrosich came to me with the issue of ZAP2 not being able to read the map correctly after she had added actors with ZAO-ADD so it's good to hear that you already have it taken care of :P
Link to comment
Share on other sites

  • 3 weeks later...

I've been updating this program again trying to get it to the state where it contains all the features I had originally planned. I will go to say that the next release will most likely be a final release and therefore I will deem it version 2.0. Things to be included in this release are:

  • Ability to add actors and objects to alternate headers
  • Java GUI
  • Frees more useless space
  • Final source code of the program as well as its GUI
After this, I will view this program as more or less complete. The only other things that I might consider in the future is implementing a 3D actor "cube" placer for actors that are added to the map. Anyways, here's some previews of the next release:

 

Alternate Headers

alternateheaderswip.jpg

 

Java GUI Form

zaoaddinterface.jpg

 

I have no idea why my images came out like that... Oh well. I'll probably be demonstrating the console version sometime tomorrow.

  • Like 3
Link to comment
Share on other sites

Wish I could like this about 5 times. So that means we'll be able to add actors objects to any scene, adult or child, right?

In the demonstration I'll be adding actors and objects to Adult Hyrule Field as well as the Child nighttime version of Kakariko Village.
  • Like 1
Link to comment
Share on other sites

Awww. You didnt like my GUI? :P

Nah, your's was great! I just wasn't sure how to implement the changes I was making for this next release (alternate headers among other things). I find C# to be a little confusing :P If anything, now the GUI will be cross-platform capable.As you can see, this new GUI is very similiar to the form that you made because I really did like your layout!
Link to comment
Share on other sites

A demonstration of adding a stalfos to the nighttime version of Kakariko Village in Child Link's time. I didn't demonstrate adding actors to Hyrule Field in Adult Link's time because I realize just how long the recording already was.

Link to comment
Share on other sites

  • 2 months later...

Alrighty, time for a new release.

 

July 19, 2013 : Version 1.3 Release

 

Updates:

  • Added in the ability to add actors and objects to alternate headers
  • Even more space is able to be freed from the ROM. Yay for free space!
  • This is probably the final version of the console application form of this program
  • Source code released
Here are the current command-line arguments:

 

ZAO-ADD.exe [ARGUMENTS]

-r [ROM FILE] : Specify a ROM to modify and doesn't return anything if it is the only argument

-s [sCENE NUMBER] : Specify a scene number and returns the number of maps as an integer

-m [MAP NUMBER] : Specify a map number and returns the number of alternate headers as an integer 

-h [HEADER INDEX] : Specify an alternate header to use and doesn't return anything

-a : Returns the amount of actors in the specified map as an integer

-o : Returns the amount of objects in the specified map as an integer

-A [ACTOR ADD] : Specify the amount of actors to add

-O [OBJECT ADD] : Specify the amount of objects to add

-i [OFFSET] : Manually specify an offset to inject at

-f : Try to fix file table offsets if possible

 

Future Updates:

  • Java GUI
  • Add code to be able to add 0x01 and 0x0B commands if they don't exist
  • Random bug fixes
  • Random optimzations
And here we are...

ZAO-ADD v1.3 Download: http://www.mediafire.com/download/xew8rgxrcjcdbzp/ZAO-ADD_(v1.3).zip

ZAO-ADD v1.3 Source: http://www.mediafire.com/download/bd43ybd41dnk11d/ZAO-ADD_(v1.3)_Source.zip

  • Like 1
Link to comment
Share on other sites

Well I haven't used it yet. I decided to download it again on the computer now that I have internet up and running on it. It seems as though other programs I was using for my project got corrupted, or didn't get transferred with all of their needed files.. idk so I deleted ZAO-ADD and tried downloading it again and now the download link is no longer working for me..

 

Edited: Sorry, I went back to attempt the download again and it worked! I guess it didn't before because my broadband was being sucked dry from the wifi in another room.

I'll post if I have any trouble with it.

Link to comment
Share on other sites

  • 1 month later...

I don't know why, but I seem to have turned into that "guy" who just runs into any technical issue possible. I don't have a clue as to why, or what I could have done to make the program no longer work on my rom. If you're willing to look at it I can send you my rom, or a patch of my rom. If not it's no problem right now, I know you're probably busy with college. I should be able to work around the problem with ZAP2, and I shouldn't need to use it for the demo mod I'll be releasing, but whenever I decide to do work for the full hack version I'll be out of luck as things are now.

 

Posted Image

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

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