Final Fantasy Hacktics

Modding => Hacking/Patching Tools => Topic started by: Choto on July 27, 2013, 08:51:48 pm

Title: Choto's Tools
Post by: Choto on July 27, 2013, 08:51:48 pm
MassTextFormatter

This is a really quick small application that will make handling text a little bit easier. It's got two textboxes in which you can manipulate text different ways. If you're building patches it will insert the xml tags for you. It can add a space before each line of whatever is in the box to make uploading to the wiki a breeze. It can also add MassHexASM style comments (#) before any text that has a tab in front of it.

Jal Finder

This is an ASM research tool that will scan a routine and report all the 'jal' commands in a column list in notepad. I'm hoping it will come in handy in telling what a routine does without having to document ALL THE COMMANDS. I had a thought to make them scan larger amounts of routines and even linking the hex addresses of the routines to the wiki to report the name of the routine. I also had a thought to write a program that will auto-notate routines by filling in knowledge that we know. So for example

if r4 is unit data and theres a lbu r2, 0x0001(r4), edit the line with the annotation

lbu r2, 0x0001(r4)                  Load Unit ID

Bonus.Bin Editor

This utility will let you import a Bonus.Bin imagine in .TIM form without having to do any math or tedious copy/paste. I'll probably merge it with another program down the road.

Conflict Checker

f you put this program in your FFTorgASM directory, on startup it will load all patches from all xml files in the folder (much like orgASM does). You can then select a file (like BATTLE.BIN) and it will list every patch that writes to that file.

When it does this, it also checks each patch against every other patch for overlap conflicts and highlights the patch red if a conflict is found. You can then click on a patch and the program will tell you: which xml file the patch is in, the number of the patch that it conflicts with, and both "offset" blocks that cause the conflict.

In addition, if there is a formatting error with your xml files it will display a message when it tries to load on startup telling you which file is failing. It will also spit out a bunch of programming junk that may give you a hint of where in the file the issue happens.

I have hopes to make this thing also able to move hacks by analyzing their code and changing jump commands appropriately, but as for now this should be immediately useful. May crash or have bugs cause it's still new.

FFTEE - Effects Editor

This effects editor will read in a .bin effect file and allow you to change some things. Most of it is highly experimental but you can do some things like change frame dimensions, particle density, motion of emitters, timing, sound effects, tinting. Unfortunately since the effect files are so complicated it only went so far. At the very least, one can mess with random things and then test their effects to see what changes occurred and hopefully come up with something cool. I plan to rewrite this at some point down the road since I've learned a ton since I started the project.
Title: Re: Choto's Tools
Post by: Choto on July 27, 2013, 09:04:00 pm
*Reserved*
Title: Re: Choto's Tools
Post by: lirmont on July 27, 2013, 10:16:29 pm
Congratulations on a huge first effort at writing a complete application in C#.
Title: Re: Choto's Tools
Post by: Vanya on July 29, 2013, 01:29:28 am
Now this is something I've been waiting for for a long time. *cheers*
Title: Re: Choto's Tools
Post by: Taichii on July 29, 2013, 08:24:07 am
wow an easier way to edit effects 8D
finally~ <3
gotta try this one out.. we'll be waiting choto and good job.

Title: Re: Choto's Tools
Post by: Choto on August 04, 2013, 08:00:35 pm
Thanks guys! We'll see where it ends up.

Released v1.0 for whoever wants to play around with it. Feedback is appreciated and if you make a quality effect, I encourage you to post a video if you can or at the least a .bin file.
Title: Re: Choto's Tools
Post by: Atma on October 03, 2013, 05:49:35 pm
WOW!  Just found this topic.  Unfortunately I'm at work, otherwise I'd be fiddling around with this.  No matter how good it is atm, I'm glad progress has been made in effect editing.
Title: Re: Choto's Tools
Post by: Choto on October 03, 2013, 08:15:36 pm
Don't get too excited... it's not the greatest tool, I lost steam on it towards the end of the summer. If it's able to save an effect file correctly, my suggestion is to just mess with things and see what effect they have. Guess and Check.
Title: Re: Choto's Tools
Post by: Timbo on November 20, 2013, 08:33:48 pm
No matter what I do I'm unable to import a TIM file. Apparently the Index was outside the bounds of the array? What am I doing wrong? Also, I have windows 7 so I can't use timutil. I've tried both timviewer and timview plus.
Title: Re: Choto's Tools
Post by: Choto on December 24, 2013, 08:42:06 am
Quote from: Jack of All Trades on November 20, 2013, 08:33:48 pm
No matter what I do I'm unable to import a TIM file. Apparently the Index was outside the bounds of the array? What am I doing wrong? Also, I have windows 7 so I can't use timutil. I've tried both timviewer and timview plus.


I've had some issues with it too. It's more likely a bug with the code than something you're doing wrong. For some reason timviewer is real hit or miss. Sometimes it works sometimes it doesn't. For now all I can say is that the tim importer will work with some effects and not work with others. I have to take a look and see what the issue is.
Title: Re: Choto's Tools
Post by: Choto on July 04, 2014, 02:44:51 pm
This is just a quick and dirty program I wrote to investigate and list the flow of routines throughout a sequence. If you enter a starting address, it will scan from that address and list all of the Jal addresses that the routine jumps to. It will end when it finds a jr r31. A couple of notes:

-You can choose the file to be scanned and target output file before starting the scan. The file to be scanned should be a disassembly from psxfin in this format:

0018ad50: 03e00008 jr r31

Included are disassemblies of SCUS and BATTLE.BIN RAM, and WLDCORE and WORLD.BIN RAM. I have no clue what was going on in the games when I made these, but they're convenient.

-Each time you run it, it will open another Notepad file. I tried using notepad++ but it wouldn't work. I need to fix this in a later version once I figure out how.

-It is not rigorously tested but its simple enough to not have any bugs I hope.

-Once you have the output, you can go to the Wiki and copy/paste the routine locations and descriptions over the raw address.

Title: Re: Choto's Tools
Post by: Choto on November 09, 2014, 12:18:21 am
Ok, so this should be pretty handy for anybody that runs into ASM conflicts, and for just management of ASM hacks in general.

If you put this program in your FFTorgASM directory, on startup it will load all patches from all xml files in the folder (much like orgASM does). You can then select a file (like BATTLE.BIN) and it will list every patch that writes to that file.

When it does this, it also checks each patch against every other patch for overlap conflicts and highlights the patch red if a conflict is found. You can then click on a patch and the program will tell you: which xml file the patch is in, the number of the patch that it conflicts with, and both "offset" blocks that cause the conflict.

In addition, if there is a formatting error with your xml files it will display a message when it tries to load on startup telling you which file is failing. It will also spit out a bunch of programming junk that may give you a hint of where in the file the issue happens.

I have hopes to make this thing also able to move hacks by analyzing their code and changing jump commands appropriately, but as for now this should be immediately useful. May crash or have bugs cause it's still new.
Title: Re: Choto's Tools
Post by: Xifanie on November 09, 2014, 12:24:54 am
fucking sweet :O

*downloads*
Title: Re: Choto's Tools
Post by: 3lric on November 09, 2014, 12:26:46 am
Quote from: Xifanie on November 09, 2014, 12:24:54 am
fucking sweet :O

*downloads*
Title: Re: Choto's Tools
Post by: Angel on November 09, 2014, 12:36:51 am
Wow, this is bloody freaking awesome. Like, really. Hugely awesome. Just huge. Great work!

So many people have talked about this being a thing for such a long time, and you fulfilled a much-needed and oft-requested utility. Go treat yourself, right now.
Title: Re: Choto's Tools
Post by: Timbo on November 09, 2014, 12:46:09 am
This is awesome. I've been struggling with ASM conflicts for the last month. Thank you so much.
Title: Re: Choto's Tools
Post by: Argy on November 09, 2014, 03:58:33 am
Brilliant work Choto!! Can wait to get to use this! Thank you. :-)
Title: Re: Choto's Tools
Post by: Celdia on November 09, 2014, 09:40:45 am
Welp, here's my new favorite utility. Cheers, Choto.
Title: Re: Choto's Tools
Post by: Erosennin36 on November 09, 2014, 10:02:11 am
 :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Title: Re: Choto's Tools
Post by: Choto on November 11, 2014, 06:50:05 pm
Thanks guys, let me know how it works if there's any issues. It's obvious but I should mention that the kanji space nopper will conflict with a ton of hacks since... it's meant to.
Title: Re: Choto's Tools
Post by: Choto on November 26, 2014, 08:34:07 pm
Updated the Conflict Checker attachment with a bug fix. Previously it wasn't loading WORLD, WLDCORE, REQUIRE, and EQUIP patches correctly.

Also, we merged all of my tools threads into a single thread and I'm going to release new versions and updates in this thread only.
Title: Re: Choto's Tools
Post by: pops on February 25, 2015, 03:59:53 pm
Hi Choto, this is excellent work.


Have you continued updating these programs? I am very interested in the effects file format, and would like to help you improve your effects tool; particularly with visualization of the effect within the tool itself.
Title: Re: Choto's Tools
Post by: Choto on February 26, 2015, 07:18:04 am
Thanks pops, I haven't really updated them much at all. In fact, I lost the source code to the effects editor. I still have all my notes about the effect file structure and all, but they're honestly a nightmare to figure out. That tool was actually my first C# program, so I planned on rewriting it anyway at some point... I have no idea when I'll get around to it though. However, any advice is always appreciated if you know stuff that I dont :P How did you plan to improve the visualization?
Title: Re: Choto's Tools
Post by: pops on February 26, 2015, 10:31:59 am
I'm sorry you lost the source code! That's a serious bummer. I lost a hobby project two years ago... I was uploading the svn repository to dropbox on Friday, but didn't give it enough time to upload before I went home for the weekend. When I tried to check out the project the next week, only half of the commits had been uploaded. What remained was only snippets of code. Heartbreaking.

My goal would be to provide a visualization of the effect within the editor, to the extent that it's possible given the data you've uncovered in the file structure. I noticed you had figured out animation sequences, emitters, and what seemed like particle paths. This might be enough to get display up and running. I've written a software renderer in C# that handles affine sprite projection, and it might be possible to simply load at least the sprites directly into that.

The resources on this forum have allowed me to find the palette and graphics within the effect files. But, at present, that's all I know how to read. You've obviously figured out a ton more. Would you be willing to send me your notes on the effect file structure? I don't have any personal interest in creating or releasing tools, but I would give you access to any source code for any visualization that I develop, which you could include in future versions of your editor.  :D
Title: Re: Choto's Tools
Post by: Choto on February 27, 2015, 07:45:53 am
Welp, I still have my notes so I'll send them to you when I get home from my trip.im interested to take a look at the source code behind your renderer... when I was trying to do rotation, scaling, etc it was a nightmare. And luckily C# is my native programming language. Maybe we can get something rolling.
Title: Re: Choto's Tools
Post by: pops on February 27, 2015, 11:41:38 am
Excellent. Get in touch when you're back, and I'll give you access to the repository with the renderer.
Title: Re: Choto's Tools
Post by: Kurosabes on March 01, 2015, 10:45:13 pm
AFAE: Addend: Damage multiplied by 0.XXXXYYYY decimal (default 2/3)
Conflicts with itself..?

Not sure if it really means anything, I felt I'd point it out.
Title: Re: Choto's Tools
Post by: Choto on March 02, 2015, 07:29:17 am
Thanks for bringing that to my attention.. here's what's going on: That hack writes a block to f6160, then has a variable that can be set by the user at f6174. The variable is written over the f6160 code. So technically it is a "conflict" but it must have been written that way on purpose. Truthfully, it's kind of lazy by the writer, but no harm done.

pops, I'm back from my trip but I can't guarantee that I'll be able to work on this stuff anytime soon. I'll be pretty busy until the summer. Nonetheless I'd like to at least see your code, so pm me with the repository info or any info you need from me