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

Is there a way to auto learn lesser Jump skill if a higher one is learned?

Started by stardragoon9, September 22, 2018, 05:17:29 am

stardragoon9

So that you don't have to learn every useless jump skill to master the job
  • Modding version: PSX

Xifanie

Find my hack called "Incremental Jump Range", apply it, and change all Jump skills to something like:
- Horizontal & Vertical Jump +1
- Horizontal Jump +1
- Horizontal Jump +2
- Horizontal Jump +3
- Vertical Jump +1
- Vertical Jump +2
- Vertical Jump +3

With my hack, they'll be cumulative, not "the highest one wins". Oh and make them different skills, I'm pretty sure if you learn Jump + 1 twice it will still be +1, just make sure they're 2 different abilities for the cumulative effect to work.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

stardragoon9

Quote from: Xifanie on September 22, 2018, 07:20:01 am
Find my hack called "Incremental Jump Range", apply it, and change all Jump skills to something like:
- Horizontal & Vertical Jump +1
- Horizontal Jump +1
- Horizontal Jump +2
- Horizontal Jump +3
- Vertical Jump +1
- Vertical Jump +2
- Vertical Jump +3

With my hack, they'll be cumulative, not "the highest one wins". Oh and make them different skills, I'm pretty sure if you learn Jump + 1 twice it will still be +1, just make sure they're 2 different abilities for the cumulative effect to work.


Wow,i'll never saw this hack before,this must be one of your later hacks,thanks! This is awesome even better than the "highest wins"
  • Modding version: PSX

xjamxx

I made some modifications to Xifanie's patch, if any is interested, two versions:
1) For vanilla if you dont wan't to edit anything of the jump ability:
  <Patch name="Incremental Jump Range Vanilla">
    <Description>Jump ability for the horizontal/vertical ranges adds +1, except for horizontal 8 which adds +3. Don't use if you will edit jump abilities with FFTPatcher or other tool.</Description>
    <Location file="BATTLE_BIN" offset="112EE0">
      04004010
      08004530
      0200A010
      01009426
      02009426
      02006010
      00000000
      02001026
      00000000
      00000000
      00000000
    </Location>
  </Patch>
<!--
   asm:
   beq r2,r0,+4 //(1040 0004) compare if zero horizontal inc
   andi r5,r2,0x0008 //(3045 0008) check if its +8 in horizontal, cuz there is gap +5 to +8
   beq r5,r0,+2 //(10A0 0002)
   addiu r20,r20,0x0001 //(2694 0001)
   addiu r20,r20,0x0002 //(2694 0002) if it was +8 add +2 prev to +1 general
   beq r3,r0,+2 //(1060 0002) compare if zero vertical inc
   nop //beq or bne read always the following
   addiu r16,r16,0x0002 //(2610 0002) vertical +2, cuz height goes 0.5 step
   nop
   nop
   nop
-->

2)Similar to Xifanie's but with max limit:
  <Patch name="Incremental Jump Range">
    <Description>Instead of choosing the highest value of the learned jump ability for the horizontal/vertical ranges, they are added all together.</Description>
    <Variable name="Min Horizontal" file="BATTLE_BIN" bytes="2" default="0001" offset="112DD0"/>
    <Variable name="Min Vertical x 2" file="BATTLE_BIN" bytes="2" default="0002" offset="112E28"/>
    <Location file="BATTLE_BIN" offset="112EE0">
      40280300
      2180B000
      21A05400
      0800852e
      0200A014
      00000000
      08001424
      1000052e
      0200A014
      00000000
      10001024
    </Location>
  </Patch>
<!--
   asm:
   ssl r5,r3,0x01 //(0003 2840) vertical *2, cuz height goes 0.5 step
   addu r16,r5,r16 //(000B 8021) accumulate vertical
   addu r20,r2,r20 //(0054 A021) accumulate horiz
   sltiu r5,r20,0x0008 //(2e85 0008) compare curr horiz
   bne r5,r0,+2 //(14A0 0002)
   nop //beq or bne read always the following
   addiu r20,r0,0x0008 //(2414 0008)if curr horiz bigger then max value
   sltiu r5,r16,0x0010 //(2e05 0010)compare curr vert
   bne r5,r0,+2 //(14A0 0002)
   nop //beq or bne read always the following
   addiu r16,r0,0x0010 //(2410 0010)if curr vert bigger then max value
-->
  <Patch name="Incremental Jump Range Max">
    <Description>Use with 'Incremental Jump Range' to change max values. Edit through xml.</Description>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112E2C"/>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112EEC"/>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112EF8"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112E30"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112EFC"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112F08"/>
  </Patch>
  • Modding version: PSX
<Random> This seems to be a PSX issue.
<Elric> A psx issue? That makes no sense. Sounds more like an issue with your OS.

stardragoon9

Quote from: xjamxx on September 23, 2018, 12:58:07 pm
I made some modifications to Xifanie's patch, if any is interested, two versions:
1) For vanilla if you dont wan't to edit anything of the jump ability:
  <Patch name="Incremental Jump Range Vanilla">
    <Description>Jump ability for the horizontal/vertical ranges adds +1, except for horizontal 8 which adds +3. Don't use if you will edit jump abilities with FFTPatcher or other tool.</Description>
    <Location file="BATTLE_BIN" offset="112EE0">
      04004010
      08004530
      0200A010
      01009426
      02009426
      02006010
      00000000
      02001026
      00000000
      00000000
      00000000
    </Location>
  </Patch>
<!--
   asm:
   beq r2,r0,+4 //(1040 0004) compare if zero horizontal inc
   andi r5,r2,0x0008 //(3045 0008) check if its +8 in horizontal, cuz there is gap +5 to +8
   beq r5,r0,+2 //(10A0 0002)
   addiu r20,r20,0x0001 //(2694 0001)
   addiu r20,r20,0x0002 //(2694 0002) if it was +8 add +2 prev to +1 general
   beq r3,r0,+2 //(1060 0002) compare if zero vertical inc
   nop //beq or bne read always the following
   addiu r16,r16,0x0002 //(2610 0002) vertical +2, cuz height goes 0.5 step
   nop
   nop
   nop
-->

2)Similar to Xifanie's but with max limit:
  <Patch name="Incremental Jump Range">
    <Description>Instead of choosing the highest value of the learned jump ability for the horizontal/vertical ranges, they are added all together.</Description>
    <Variable name="Min Horizontal" file="BATTLE_BIN" bytes="2" default="0001" offset="112DD0"/>
    <Variable name="Min Vertical x 2" file="BATTLE_BIN" bytes="2" default="0002" offset="112E28"/>
    <Location file="BATTLE_BIN" offset="112EE0">
      40280300
      2180B000
      21A05400
      0800852e
      0200A014
      00000000
      08001424
      1000052e
      0200A014
      00000000
      10001024
    </Location>
  </Patch>
<!--
   asm:
   ssl r5,r3,0x01 //(0003 2840) vertical *2, cuz height goes 0.5 step
   addu r16,r5,r16 //(000B 8021) accumulate vertical
   addu r20,r2,r20 //(0054 A021) accumulate horiz
   sltiu r5,r20,0x0008 //(2e85 0008) compare curr horiz
   bne r5,r0,+2 //(14A0 0002)
   nop //beq or bne read always the following
   addiu r20,r0,0x0008 //(2414 0008)if curr horiz bigger then max value
   sltiu r5,r16,0x0010 //(2e05 0010)compare curr vert
   bne r5,r0,+2 //(14A0 0002)
   nop //beq or bne read always the following
   addiu r16,r0,0x0010 //(2410 0010)if curr vert bigger then max value
-->
  <Patch name="Incremental Jump Range Max">
    <Description>Use with 'Incremental Jump Range' to change max values. Edit through xml.</Description>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112E2C"/>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112EEC"/>
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" offset="112EF8"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112E30"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112EFC"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" offset="112F08"/>
  </Patch>



Thanks for the variation.May i ask whats the different between your "Max Horizontal/Vertical" compare to Xifanie's "Master" Horizontal/Vertical?And why is there 3 version of Max?
  • Modding version: PSX

xjamxx

As far as my knowledge goes, Master which is the same as first Max (they have the same offset), is for mime. So when a mime dupes a jump they have that hard limit.
As for the other two Max (both horiz and vert) they point to the custom code added with the patch, they are twice cuz one is for comparison and the other is for replacing if needed (the pair have different offset). In other words the 3 max are the same, so they should have the same value.

If you modded FFTorgASM xml reader, you could write them like this:
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" value="0008" offset="112E2C,112EEC,112EF8"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" value="0010" offset="112E30,112EFC,112F08"/>

But current FFTorgASM don't support variable with multiple offset, that is why you see dupes.
  • Modding version: PSX
<Random> This seems to be a PSX issue.
<Elric> A psx issue? That makes no sense. Sounds more like an issue with your OS.

stardragoon9

Quote from: xjamxx on September 24, 2018, 09:36:26 am
As far as my knowledge goes, Master which is the same as first Max (they have the same offset), is for mime. So when a mime dupes a jump they have that hard limit.
As for the other two Max (both horiz and vert) they point to the custom code added with the patch, they are twice cuz one is for comparison and the other is for replacing if needed (the pair have different offset). In other words the 3 max are the same, so they should have the same value.

If you modded FFTorgASM xml reader, you could write them like this:
    <Variable name="Max Horizontal" file="BATTLE_BIN" bytes="2" default="0008" value="0008" offset="112E2C,112EEC,112EF8"/>
    <Variable name="Max Verticalx2" file="BATTLE_BIN" bytes="2" default="0010" value="0010" offset="112E30,112EFC,112F08"/>

But current FFTorgASM don't support variable with multiple offset, that is why you see dupes.


So does that mean the second hack function as the same as Xifanie's?
  • Modding version: PSX

xjamxx

Yes, but Xifanie's original hack won't limit lancer jump, like the second hack.  Example:
Vanilla with Xifanie's original hack:
- a mastered lancer will be able to jump further than 8 tiles both horiz and vertical
Vanilla with Xifanie's second hack:
- a mastered lancer will not be able to jump further than MAX tiles both horiz and vertical
  • Modding version: PSX
<Random> This seems to be a PSX issue.
<Elric> A psx issue? That makes no sense. Sounds more like an issue with your OS.

stardragoon9

Quote from: xjamxx on September 24, 2018, 01:22:08 pm
Yes, but Xifanie's original hack won't limit lancer jump, like the second hack.  Example:
Vanilla with Xifanie's original hack:
- a mastered lancer will be able to jump further than 8 tiles both horiz and vertical
Vanilla with Xifanie's second hack:
- a mastered lancer will not be able to jump further than MAX tiles both horiz and vertical


I see,i mistaken the Mime one with the Lancer one.So the first Max is only for Mime version(Xif original).The second and third from your customized hack also has that imply to Lancer.

Btw,thank you very much,you rock!
  • Modding version: PSX