• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
August 14, 2020, 04:38:31 am

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen/RetroArch is recommended for playing/testing, pSX is recommended for debugging.


FFT Patcher .478 Source Code

Started by formerdeathcorps, May 14, 2011, 03:57:55 am

Glain

Re: The TacText stuff: It sounds like a really good feature to be able to get all that stuff into QuickEdit. It seems melonhead controlled this with an XML file... however, there are no good examples for me to work off of for some of the sections I'm going to have to put in there. I think I can make a pretty good stab at getting it right, but I'm going to be guessing in a lot of places and it sounds nightmarish to test. I'll get something put together before too long and upload so people can look at it, I guess. Here's hoping?
  • Modding version: Other/Unknown

RavenOfRazgriz

Hoping indeed.   I used the names of the menus inside the program to try and minimize guesswork, but I'm gonna guess they don't correspond to that XML file at all.  Heh.

Glain

It's not so much that as it seems generally the names are right, but QuickEdit basically wants (file, section, offset, length) for everything being edited, and some of the sections have no offset specified whatsoever (so what is it? 0? better hope that guess is right), for example, and don't even look like other XML sections, specifying different attributes altogether.
  • Modding version: Other/Unknown

Choto

February 19, 2012, 10:50:39 am #63 Last Edit: February 19, 2012, 12:23:45 pm by Choto
I noticed that theres a set of ability AI flags that was left out of the patcher:

0x07 - AI Behavior Flags 4?
      0x80 - Usable by AI
      0x40 - Cannot Target Enemy?
      0x20 - Cannot Target ally?
      0x10 -
      0x08 -
      0x04 -
      0x02 -
      0x01 - Can use physical Reactions?

the blank flags are not used in any skill, and may be hijacked to make custom AI behavior :). These are SA's notes, and with a quick scan of ability memory they seemed to be accurate. The only one i'm not sure about is 0x01, only because i didn't investigate exactly which abilities flag it.

Edit: Just saw where you implemented them in .479, although what/where is the 0x01 flag in .479?

Glain

Everything should be in order from where "Used by AI" starts, going from 0x80 to 0x01, so it's the bottom flag in the box that we have labelled as "Evade with Motion", which I believe is more accurate. "Can use physical reactions" sounds like the Countergrasp flag in the bottom section.
  • Modding version: Other/Unknown

Glain

March 24, 2012, 12:27:07 am #65 Last Edit: March 25, 2012, 05:02:55 pm by Glain
What does everyone think about this version of FFTactext?

EDIT - This is in the latest FFTPatcher 0.479 attachment. Removing from this post.
  • Modding version: Other/Unknown

formerdeathcorps

The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Glain

Quick edit. Everything (basically) is now in there, and it's the default.

(Amazing response time, by the way.)
  • Modding version: Other/Unknown

Eternal

  • Modding version: PSX & WotL
"You, no less human than we? Ha! Now there's a beastly thought. You've been less than we from the moment your baseborn father fell upon your mother in whatever gutter saw you sired! You've been chattel since you came into the world drenched in common blood!"
  • Discord username: eternal248#1817

Glain

March 24, 2012, 04:12:48 pm #69 Last Edit: April 01, 2012, 06:41:03 pm by Glain
All right, I'm releasing the current 0.479 suite. This should include all the edits to Patcher and Tactext.

The only thing I think we need at this point is to get all the ASM hack XML files together. I went to this thread, found the ones that seemed relevant, and put them in, with two new XML files (Assorted.xml and Pokeytax.xml) and I also grabbed Choto's mighty sword hack and added Choto.xml. I also added mine as Glain.xml. I don't have fdc's or the ones he'd been gathering, though... although all it amounts to is that we'd just have to add them to this archive.

I don't have whatever crazy version of Shishi was modified without being added to melonhead's source. We might want to get that code in the current project at some point. As such, the version of Shishi here is the normal melonhead 0.478 one.

Anyhow, here it is.

EDIT - 0.481 attached below... no need for this attachment.
  • Modding version: Other/Unknown

formerdeathcorps

Can you release the source code of your latest version as well?  (By the way, even though we're nowhere close to the maximum thread size limit of 48 MB, we probably should only release the source code on this thread of the latest version and the original we got from melonhead.  No need to clutter the place.)
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

formerdeathcorps

Guys, since the "normal attack" flag is only flagged for the "Frog Attack", is it possible that's the flag that tells you if a move can be used while frogged?  (Of course, frog also whites out your skillsets so I'm not sure flagging Cure or Fire would work unless those skills were moved into the skillset called by frog.)
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Glain

I made some more updates to the code, notably, FFTorgASM should now allow multiple byte variables (up to 4 bytes) by specifying the "bytes" attribute (lowercase) in a <Variable> tag. I discussed this with fdc yesterday on IRC.

I created a new Google Code page at this location and checked my latest version of the code in to it. You should be able to check out the code with Subversion. (I mention how I did it for the original project here. Replace "lioneditor" with "fftpatcher-mod".)

I believe the first ability (0000) also has "Normal Attack?" flagged.
  • Modding version: Other/Unknown

formerdeathcorps

March 25, 2012, 08:40:46 pm #73 Last Edit: March 25, 2012, 08:47:32 pm by formerdeathcorps
Quote
I believe the first ability (0000) also has "Normal Attack?" flagged.

Yeah, it does, sadly.

Another orgASM feature request: defaults.  Currently, all variables are set to zero when you open orgASM.  I want the XML file to be able to specify that a given variable defaults to a non-zero value when orgASM is opened.  With this and the ability to set words in our data structures, I should be able to eradicate any advantage of spreadsheets over orgASM except on the largest hacks.

Overall, Glain, what you've done for FFT Patcher is great.  Thanks for your work!
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Glain

March 25, 2012, 08:58:06 pm #74 Last Edit: March 25, 2012, 11:24:33 pm by Glain
Thanks!

Default values should already be possible! Just specify a "default" attribute in your <Variable> tag. I noticed this functionality when going through and modifying the code.

EDIT - Though I may have to modify them to allow multiple bytes.

EDIT - Nope, I don't. It just works. Nice! \o/ ...Er, I mean... of course I spent tons of time making that work! (<_< ) (>_>)
  • Modding version: Other/Unknown

Glain

I took fdc's version and my new compiled version (and fixed a bug) and compiled them into... 0.481! Even labels itself as such!

I separated out some of the edits to my hacks that fdc did into a different XML file (fdc_mod.xml) because they were too different from each other to really be the same hack. Both versions are selectable in those cases.

I also added R999's Shishi to the project. I don't like that it's a black box though. We need the source of it...
  • Modding version: Other/Unknown

formerdeathcorps

Your Signed Y hack would mean Fa_(MA + Y) can't take values greater than 127, which removes vanilla functionality for a variety of status magic.  That (and removing signed Y for fire / correctly setting the +/- stats for formulas like Yell) was the reason why I "fixed" your hack in the first place.
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Glain

Actually... no, I don't really understand. The only way sign extension on a byte load could change the value of the resulting register is if the value was > 127. These are the affected vanilla abilities:

00C5 Speed Ruin (Y=250)
00C6 Power Ruin (Y=250)
00C7 Mind Ruin   (Y=250)

I don't see any others. What's all this about fire, and stat increments becoming decrements, etc? Are you saying that the Y value (0x801938fa) gets overwritten in a formula (to suddenly be > 127 when it wasn't originally), then loaded in as a signed value?
  • Modding version: Other/Unknown

formerdeathcorps

Let's say someone makes a fire spell with Y = 130.  After all the stat multipliers, they have 5 MA.

5 * 130 unsigned = 650 (even with mult rather than multu)
5 * 130 signed = 5 * -126 (mult) = 5 * 0xFFFF FF7E (mflo) = 0xFFFF FD76 (sh as damage) = 0xFD76.  In the HP subtraction phase, the halfword is processed so it cannot be negative (andi 0x7FFF so it becomes 0x7D76) and then the minimum is taken between it and 999 (meaning the final HP damage is 999).  Thus, loading signed values on Y for attack formulas like Fire or Choco Meteor can cause inaccurate results.

Furthermore, making Y signed or unsigned has no effect on the status +/- formulas because in every stat change formula exists a line (andi 0x007F or ori 0x0080) that forces the result to be positive or negative.  All numbers above 0x80 constitute +Stats and all numbers below 0x80 constitute -Stats, but it doesn't follow sign conventions in that 0x81 means +1 Stat and 0x01 means -1 Stat.  My revision addressed this fact by deleting the force-fit line of code.  Of course, my revision does not work well with vanilla defaults (since you'd then have to change accumulate / yell / cheer up / scream / gather power by adding 128).

As for status formulas, that was a bad accusation on my part.  I forgot that the status formulas are MA + X, not Y.
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Choto

Hey Glain, 2 things

the Mighty Sword has XX% chance to break appears in the Razele file as well as the Choto file. It's also got a bug, FDC found a bug in it a lil while ago, here's a fixed version:



Battle.bin
0x122b94
E8FFBD27
1000BFAF
8E1D060C
00000000
0C004014
64000434
B63B060C
XX000534
08004014
00000000
721E060C
00000000
1E004014
1980033C
902D638C
04000234
100062A0
01000234
020060A0
4421060C
000062A0
9717060C
00000000
E917060C
00000000
A921060C
00000000
1980033C
902D638C
42100200
040062A4
1980043C
DC388290
2A0062A0
00000000
00000000
00000000
00000000
00000000
F41B060C
00000000
3F1C060C
00000000
1000BF8F
1800BD27
0800E003
00000000


Also, I'm not sure if there's a death counter edit hack around but i thought some patches used it. Could you include that one in there if its floating around? Thanks!