• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Pride

1
In your xml, did you assign the correct status inflictions to the charge attacks? This asm definitely works, I've used it a bunch in the modding projects I have going. If nothing else, you can post the xml you're using for it so I can look at it.
2
PSX FFT Hacking / Re: Pride's ASM Thread
September 16, 2021, 03:46:08 am
Okay it was just a kanji space issue with the Synth Shop so a super easy fix. So shouldn't be any more issues with the Synth Shop now. Thanks again for reporting the bugs so I can do something about them (eventually).

Version 2.041 Download
3
PSX FFT Hacking / Re: Pride's ASM Thread
September 13, 2021, 06:24:13 pm
Attribute Rewrite 2.04 available now
Download Here

  • Fixes issue with units getting random amounts of Brave/Faith
  • Fixes issue with units HP/MP not being set correctly when having an ability grant HP/MP
  • Fixes jump location for item sets

Planning on still adding compatibility with Special Snowflakes but I didn't realize synth shop also had issues since that one I didn't think would conflict. Compatibility with both of these hacks is planned for v2.05. Hopefully soon.
4
PSX FFT Hacking / Re: Pride's ASM Thread
September 01, 2021, 05:04:39 am
Apologies, real life has been not great but I'll look into these bugs and do my best to get something going. Thank you for reporting them to me.

I was more active on discord but haven't been the last couple months. Still easier to reach me there as I look more frequently then here. Still weird I didn't get an email notification about new posts here.
5
PSX FFT Hacking / Re: Pride's ASM Thread
June 20, 2021, 08:02:19 pm
Quote from: Ansehelm on June 20, 2021, 04:23:49 pmAlso, trying to understand the implications of abilities having attributes.  It seems that you can basically make any ability grant any other ability/status/immunity, etc.  I imagine, for example, you could have a self-targeting ability that grants immunity to negative status and boosts elemental resistance for the duration of a battle.  Or an ability that allows you to acquire certain R/S/Ms, say Defense Up or Throw Item, for the course of a battle, that were not otherwise equipped?  And as far as targeting, do the attributes affect the caster only, or another unit that is targeted?

I should have been more specific, you can only attach attributes to equippable abilities (IE - Reaction, Supports, Movements). This will not affect any formulas or learned action abilities.

And yes, nitwit is correct.
6
PSX FFT Hacking / Re: Pride's ASM Thread
June 19, 2021, 09:14:52 pm
Been a long time for a post but I come baring gifts. Bug fixes for Charge gains unique status effects (which now also can inflict status like Formula 2D) and Weapon Range and Others Disable Movement which fixes some issues it had with performing.

Attribute Rewrite 2.03
Download spreadsheet here.
Please report any found bugs to me in Discord, in this thread, or through PM! Please! I'd like to make sure this hack is as bug free as possible.
80 new attributes can be used! x50 - x9F are editable and working in game.
Abilities can be assigned attributes! Fire Eater, HP Boost, Brave Up, and more are now all possible effects for R/S/M.
Brave, Faith, HP, MP, and Class Evade to be attached to items/abilities as attributes.
Reactions, Supports, and Movements are now part of the attribute table and can be assigned to items/abilities.
Equippable items are now defined in the attributes as a result, Equip Armor/Shield/Sword/Knife/Axe/Crossbow/Gun are all defined within the attribute table (attributes x50 - x57 have been defaulted to this) and items can be given these effects.
Move 2/3 and Jump 2/3 are assigned Attributes x58 - x5B.
Item Sets Bonus can be set up in the Item Sets tab which give the attribute defined to the unit when all the items are equipped. If you don't want to use all 5 item slots, use xFF and it'll ignore that item for the unit.
Negative Stat values for PA, MA, Speed, Move, Jump, Class Evade, Brave, and Faith are allowed.
??? Units with equipment no longer have their HP and MP reverted back down to 999.
The attribute page in FFTPatcher should not be used, especially after patching Attribute Rewrite 2.0. Only use the spreadsheet to change attributes now.

Currently...
Working on adding Stepping Stone, Move = 0, and Start with 0 MP as attributes.
Working on de-equipping items that were allowed via an Item that is now broken or stolen
Working on adding previews for the set bonus
Working on adding previews for HP and MP for R/S/M

This replaces Attribute Rewrite 1.1 and Move+/Jump+ edits and have been hidden in Pride.xml.

Damage Manipulation Supports
Creates 6 new supports to add into the game. If you don't want one to work, leave the data as 0 and it will disable the new functions.
  • Vampire - Heals the Attacker by 50% of damage dealt.
  • Vampire Guard - Attacker damages itself by 50% of HP Recovered.
  • Mana Burn - Attacker also deals MP Damage equal to MP Cost of the attack.
  • Mana Gift - Attacker also heals MP equal to MP Cost of the healing spell.
  • CT Burn - Attacker also removes CT to the Target equal to the attacker Speed.
  • CT Gift - Attacker also adds CT to the Target equal to the attacker Speed.

Equipment Evasion Settings
Rewrites the Physical Equipment Evasion Routine (0x80184F9C) and removes the need for the Magical counterpart. Also includes Choto's "Evade Boost" as that increase Accessory evade by 10 if the R/S/M is equiped to avoid obvious conflict issues.

Allows some custom settings for Physical, Physical (Charge), and Magical Equipment. Such as allowing free weapon guard for physical attacks (98 instead of d8) but requiring magical attacks to have weapon guard (68 instead of 20). Or allow Magical attacks to use Class Evade.
Change the setting byte to make the changes. - Vanilla: x80 + x40 + x10 + x08 = D8.
  •    x80 - Use Class Evade
  •    x40 - Require Weapon Guard?
  •    x20 - Use Magical Evade
  •    x10 - Use Physical Evade
  •    x08 - Use Weapon Evade
  •    x04 - Use "Evade Boost"

MP Cost Supports
Creates 3 new Supports: Turbo MP, No MP Cost, Blood Price. Turbo MP defaults to double MP Cost and increase Magic Damage/Accuracy by 1.5 but these values can be changed with the variables. No MP Costs disables the cost of casting spells. And Blood Price uses HP to cast spells when out of MP. Default is 1:1 cost but in FFTA it doubles the cost of the spell to use HP. You're choice how you want this to work.
The Multiplier works by Value * Cost(or Damage) / 256. So a value of x0080 would be half or x0100 would be value * 256 / 256 (dont change).
Use the unit data chart below to see what ability you want to tie each to. If you don't want to use one, leave the Bit as 00.

Special Monster Job Fix
'Special' Monsters Jobs (x3C - x49) can change jobs and use items.

Ramza can change into jobs x01 to x04
7
Event Editing / Re: Pre-Battle Menu
May 28, 2021, 09:12:48 pm
You could load any ENTD in the game with instructions upgrade 1.31; I'm not sure how nyzer has the event set up but I don't see a reason why it wouldn't work.
8
I took the opportunity to make a xml to do this without having to upload each gns file.  Faster and easier. Apply with FFTorgASM like most xml files.
9
Help! / Re: Unknown opcode f1000000
April 16, 2021, 03:16:52 am
That is most likely a bad asm or a conflict between some asm. You can check conflicts on fftorgasm and if all else fails you can add each asm one by one and test after each one to find the one that is causing the error to pop up.
10
The Lion War / Re: FFT - The Lion War
November 07, 2018, 02:37:30 am
There is already a little bit of free space in SCUS, but I think only Xiffy has posted any hacks that use it
11
Tutorials and Learning / Re: Tutorial Requests
October 13, 2018, 03:53:46 pm
Well building new formulas isn't terrible difficult, and yes we can replace those blank formulas with new custom formulas. In terms of making what programs we use, I use Xifanie's Spreadsheet but we can just use a text editor like Notepad or Notepad++, FFTorgASM, and MassHexASM if you're not super familiar with excel or you don't have it. So first we need to a spot to place a this new hack. Allocated Space has sections of BATTLE.bin that are being used or planned on being used by ASMers. If you don't plan on using a hack from one of these hackers we can take spot from there or take a spot in the kanji space that isn't being used. We'll borrow the start of Sentinal Blade's section (0xEA0E4) for this example. We'll add 0x67000 to this offset so we can get its proper place in RAM or 0x801510E4 (see Offset Conversion).

Now that we have where the hack will go, we'll change the pointer found on the Formula Table. We'll change the pointer for Formula 18 at 0x0018F670 to E4101580. Remember we have to flip these bytes or you'll end up somewhere you don't want to be and just crash the game when you try to use an ability with this formula. As a note, we can move these pointers for formulas that we aren't going to use anyways and write new code; I'm just using formula 18 since you mentioned the blank ones but I could move the pointer to any of the others. Now, we might as well set up our new xml at this time too.


<?xml version="1.0" encoding="utf-8" ?>
<Patches>
  <Patch name="Formula 18 Edit">
    <Location file="BATTLE_BIN" offset="128670">      #Offset to table location; remember this is saving to the file and not RAM so we -0x67000 from the offset
      E4101580      #new pointer
    </Location>
    <Location file="BATTLE_BIN" offset="EA0E4">         #Offset to new formula routine
 
  </Location>
  </Patch>

</Patches>


Now that we have all our set up done, let's take a look at how formulas are set up. We can look at vanilla formulas to see how they normally go through the modifier routines and all that. Formula 31 or Formula 08 are good examples to see how the game normally processes these. Typically they'll go Evasion Routines -> Set Base XA & YA -> XA Modifiers -> XA */+ YA -> Elemental Half, Resist, and Immunity -> Faith -> Elemental Absorb -> Status. You can also do stuff like putting the dragon check or steals equipment at the start of the routine. Here's a list of some commonly used routines or if you want to look at most of the routines in BATTLE.BIN check here.



01 80188510   Physical Evasion
02 801885b8 Magical Evasion   
03 80185a9c Base Weapon XA & YA   
04 80185c94 Store MA and Y
05 80185cc0 Base XA and YA for MA + Y / 2
06 80185d00 Store PA and PA + Y / 2
07 80185d40 Store MA and PA + Y / 2
08 80185d80 Store MA and X
09 80185dac Store PA and X
10 80185dd8 Store PA and WP
11 80185e04 Store PA and Y
12 80185e30 Store Speed and X
13 80185e5c Store PA and WP + Y
14 80185e94 Formula 64 or Jump Base XA / YA   
15 80186568 XA * YA
16 8018659c XA + YA
17 80187510 Store Accuracy from XA + YA
18 80185f80 Charge Calculation
19 80185fa4 Weapon Elemental Boost
20 80185ffc Ability Elemental Boost
21 80184964 Compat
22 80186054 Attack Up/Two Hands/Martial Arts
23 8018614c Attack Up/Martial Arts
24 80186204 Magic Attack Up
25 80186254 Attacker Berserk/Frog Check
26 801862cc Defense Up
27 8018631c Magic Defense Up
28 8018636c   Protect/Frog/Chicken/Sleeping/Charging
29 80186460   Shell/Frog/Chicken
30 801864f8   Critical Hit
31 80186ed0   Weather Effects
32 80186ff8   Elemental Effects (Oil, Float, Weak, etc)
33 801870fc   Absorb Element
34 80187eb4 Status Roll
35 80187150   Faith Calculation
36 80187f24   Status Ability Inflict
37 8018acdc   Cancel: Dead for Raise skills
38 80186624   Deal % (Y/100) HP Damage
39 80187350   Undead Reversal



Now lets make a simple PA * Y formula that uses Physical Evasion, Faith (?), and inflicts Status. Let's put in the basic frame work. You'll need this for most formulas and you shouldn't change it unless you know what you're doing.



addiu r29,r29,-0x0018
sw r31,0x0010(r29)


lw r31,0x0010(r29)
addiu r29,r29,0x0018
jr r31
nop



Now let's add in physical evasion and a check to make sure the attack hit



addiu r29,r29,-0x0018
sw r31,0x0010(r29)
jal 0x80188510            #Physical Evasion
nop                     
bne r2,r0,END            #Jump to end if attack was evaded
nop

END: lw r31,0x0010(r29)
addiu r29,r29,0x0018
jr r31
nop



The END is a tag to let FFTorgASM and MassHexASM know where you want this branch to go. Alright, now we can follow the little outline and add in the rest of the functions I wanted to put in.



addiu r29,r29,-0x0018
sw r31,0x0010(r29)
jal 0x80188510            #Physical Evasion
nop                     
bne r2,r0,END            #Jump to end if attack was evaded
nop
jal 0x80185e04            #Get PA & Y
nop
jal 0x80186568            #XA * YA or in this case PA * Y
nop
jal 0x80187150            #Calculate Faith
nop
jal 0x80187eb4            #Status Roll
nop
END: lw r31,0x0010(r29)
addiu r29,r29,0x0018
jr r31
nop



Hopefully you can follow exactly where I got these values off the list and why they are in the places that they are. We can compile this code in MassHexASM, take the hex values it outputs and add them to our xml but let's add in some other modifiers as well.



addiu r29,r29,-0x0018
sw r31,0x0010(r29)
jal 0x80188510            #Physical Evasion
nop                     
bne r2,r0,END            #Jump to end if attack was evaded
nop
jal 0x80185e04            #Get PA & Y
nop
jal 0x80185ffc            #Ability Elemental Strengthen Routine (XA Modifier)
nop
jal 0x80186204            #Magic Attack Up (XA Modifier)
nop
jal 0x801862cc            #Defense Up (XA Modifier)
nop
jal 0x80186568            #XA * YA or in this case PA * Y
nop
jal 0x80187150            #Calculate Faith
nop
jal 0x80187eb4            #Status Roll
nop
END: lw r31,0x0010(r29)
addiu r29,r29,0x0018
jr r31
nop



Well it takes Magic Attack Up and Defense Up but that's fine, it'll just be some wacky physical/magical hybrid attack. But we added elemental strengthen but not half/resist/immunity/absorb, and that's cause we cant just link to the absorb routine, we need to set up a check specifically for the immunity part.



addiu r29,r29,-0x0018
sw r31,0x0010(r29)
jal 0x80188510            #Physical Evasion
nop                     
bne r2,r0,END            #Jump to end if attack was evaded
nop
jal 0x80185e04            #Get PA & Y
nop
jal 0x80185ffc            #Ability Elemental Strenghten Routine
nop
jal 0x80186204            #Magic Attack Up
nop
jal 0x801862cc            #Defense Up
nop
jal 0x80186568            #XA * YA or in this case PA * Y
nop
jal 0x80186ff8            #Elemental Half/Resist/Immunity
nop
lui r2,0x8019
lw r2,0x2d90(r2)         #Load Defender's Data
nop                     
lbu r2,0x0000(r2)         #Load byte that stores if the attack will hit
nop
beq r2,r0,END            #Jump to end if attack was affected by Immunity
nop                     
jal 0x80187150            #Calculate Faith
nop
jal 0x801870fc            #Elemental Absorb
nop
jal 0x80187eb4            #Status Roll
nop
END: lw r31,0x0010(r29)
addiu r29,r29,0x0018
jr r31
nop



Okay now I'm happy with this code and we can put it into MassHexASM and get the output and place that into our xml and save that.



<?xml version="1.0" encoding="utf-8" ?>
<Patches>
  <Patch name="Formula 18 Edit">
    <Location file="BATTLE_BIN" offset="128670">
      E4101580      #new pointer
    </Location>
    <Location file="BATTLE_BIN" offset="EA0E4">
      E8FFBD27
      1000BFAF
      4421060C
      00000000
      1A004014
      00000000
      8117060C
      00000000
      FF17060C
      00000000
      8118060C
      00000000
      B318060C
      00000000
      5A19060C
      00000000
      FE1B060C
      00000000
      1980023C
      902D428C
      00000000
      00004290
      00000000
      07004010
      00000000
      541C060C
      00000000
      3F1C060C
      00000000
      AD1F060C
      00000000
      1000BF8F
      1800BD27
      0800E003
      00000000
  </Location>
  </Patch>
</Patches>



This would be good enough to change the formula entirely. For some of the stuff you want you would need to write new XA & YA storage routines, like in this example instead of jal 0x80185e04 you would do jal 0x80?????? to the new section where you write your code to store these values. Or you could write it inline with the rest of the code. Regardless I hope this information helps.
12
Help! / Re: Unaligned offset at address xxxx
October 12, 2018, 10:56:44 pm
This one should be correct
13
Help! / Re: Help coding new stealing/breaking routine
August 27, 2018, 03:18:46 am
What does the rest of the routine look like?
14
Sir that's awesome and a vierra has been requested for some time
15
Im really excited for fran, excellent work sir
16
@xifanie i know the world conditionals you put up but i dont remember seeing the attack.out
17
Oh! New stuff! That routine you documented is battle.bin? Just wanted to double check
18
PSX FFT Hacking / Re: Pride's ASM Thread
May 04, 2018, 01:55:17 am
Its been a while since I've posted anything and I thought that wasn't cool since I've been working on a bunch of stuff and I haven't been sharing so just dropping off a few.

[13] Move +1/2/3 & Jump +1/2/3 edits

  • Turns Move +1 into Move +?

  • Turns Move +2 into Jump +?

  • Turns Move + 3 into PA +?

  • Turns Jump +1 into MA +?

  • Turns Jump +2 into Speed +?

  • Turns Jump +3 into Class Evade +?

  • Keep the variables the same for the pairs otherwise you'll throw off the preview when you equip the movements.



[14] Transparent not lost on action or taking damage

  • Transparent status is no longer removed after taking an action or taking damage.

  • This is intended to be used with CT Magic. Unless you want permanent Transparent.



[15] Defend not removed on act

  • Defend status is no longer removed after taking an action.

  • This is intended to be used with CT Magic. Unless you want permanent Defending.



[16] New Support: Inflict Status (ID) to Weapon Attacks

  • Inflict Status: ID to weapon attacks (except Fists) that do not have a proc already.

  • Check your FFTPatcher to make sure you are adding (or cancelling) the status you want to be. Defaulted to 09 (Poison).

  • This is defaulted over Secret Hunt. Edit unit data to choose which data is checked. See http://ffhacktics.com/wiki/Data/Table_Locations for more information.



[17] Disable Secret Hunt

  • Removes the vanilla function of Secret Hunt; poaching monsters.

19
PSX FFT Hacking / Re: ASM Requests
March 16, 2018, 12:01:49 pm
I thought this already existed but i can only find the 0 growths hack which affects all the other stats. Poke around some more and it might be available
20
PSX FFT Hacking / Re: Possible to change raw stats?
February 26, 2018, 04:08:23 pm
http://ffhacktics.com/wiki/Data/Table_Locations

The raw stats can be found in scus but you would have to edit them yourself

Edit: Xifanie has the way