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.
*Reserved*
Congratulations on a huge first effort at writing a complete application in C#.
Now this is something I've been waiting for for a long time. *cheers*
wow an easier way to edit effects 8D
finally~ <3
gotta try this one out.. we'll be waiting choto and good job.
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.
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.
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.
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.
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.
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.
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.
fucking sweet :O
*downloads*
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.
This is awesome. I've been struggling with ASM conflicts for the last month. Thank you so much.
Brilliant work Choto!! Can wait to get to use this! Thank you. :-)
Welp, here's my new favorite utility. Cheers, Choto.
:lol: :lol: :lol: :lol: :lol: :lol: :lol:
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.
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.
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.
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?
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
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.
Excellent. Get in touch when you're back, and I'll give you access to the repository with the renderer.
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.
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