• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
May 20, 2024, 02:02:41 pm

News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed! Find out how you can help in the Recruitment section or our Discord!


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 - xjamxx

21
PSX FFT Hacking / Re: ASM Requests
October 08, 2018, 06:02:27 pm
Ok, that really went long. I found some bugs in another of my patches i was breeding 19 chocos with lvl cap 35 but with maxed stats.

Anyway, you can try both patches (it doesn't matter which is first), but remove from xifanie's hack the scus section:
    <Location file="SCUS_942_21" offset="4B8F0">
      1000622E
      02004010
      84000334
      08000334
    </Location>
Cuz it goes over control flags and since you want full control just don't use it.

UPDATE:
I made some more patches to be able to use the roster hack with vanilla (full set attached), It may look long, but it is just ENTD touches (with comments to easy edit) Check glain's asm thread, my last post.
22
PSX FFT Hacking / Re: ASM Requests
October 08, 2018, 01:24:39 pm
Fearing that Elric would never reply, i will try to clear some issues with the unknown TLW project, plus this way i can be near to one of her posts :roll:, sorry that was unnecessary.

Quote from: Elric on October 06, 2018, 12:07:30 am
TLW ... does use hacks that allow guests to be used in normal battle, since its tied to the unit restriction hack.

If that hack refers to this: http://ffhacktics.com/smf/index.php?topic=953.msg208303#msg208303, then as Xifanie already wrote: there "is an option to make them uncontrollable in said random battles", plus the "hack is (hopefully) bug-free in vanilla, as I already configured all guest restrictions".
To put it simple the original roster hack or the v2 are not 100% compatible with Xifanie's hack, cuz while roster hack tries to erase guest features at all, Xifanie's tries to save them (or smt like that).

What now then?, i suppose that you (Elric) didn't use the .xml version, but the spreadsheet instead to insert your additions, am i right?
What i need? some sort of explanation of what are you trying to do or achieve with Xifanie's hack and the .xml file generated (you can pm them) to adapt it or the roster hack so you can use both...

With the information provided that's all i can do.  ;)

UPDATE: ok, good to know i already did. Since my mobo died 5 months ago (new one doesnt boot well with 7), i haven't reinstall most of the apps windows use (yeah its quite lazy), which includes the entire office, so i haven't tried a single spreadsheet, just only view their contents (so i was unsure what they did). ;)
23
PSX FFT Hacking / Re: ASM Requests
October 07, 2018, 01:49:32 pm
I won't say anything about that to avoid wasting time. Still i am committed to help you.
Let's go back to the draw board again:
Quote- While it doesn't show 'GUEST' on people in standard formation, it DOES still show this in Battle Formation, as well as in Battle, which it should only show on ENTD forced Guests.
- When used in battle, units from those last 4 slots act as guests and cannot be controlled.

This doesn't happen to me, there is no 'GUEST' in battle nor battle formation, plus they can be controlled. Are you sure you are not overwriting the roster patch or using an old version?
Quote- When tested with Generics in the last 4 slots, after battle, 3 of the 4 were removed.
- When tested using Rafa and Malak in the first 2 of the last 4 slots, they had prompt to invite them again after each battle.

This issue was discussed by Glain, Pokeytax, and Raven. You need to tweak END flags. I just used what they said to fix that (still it need more testing).
Quote
- Units in these last 4 slots cannot be removed (they don't show up in the list) if you have a full roster upon a join up and are prompted to remove a unit.

I believe it is fixed, still haven't tested, I would need a psx savestate to test this.
  <Patch name="Roster hack v2">
    <Description>Extends roster limit to 20. It removes guest formation AFAIK, so it is not recommended to use with vanilla, some units could get duplicated.</Description>
    <Location file="SCUS_942_21" offset="59BF4" mode="ASM" offsetMode="RAM">
      j 0x00059c38
    </Location>
    <Location file="SCUS_942_21" offset="59C7C" mode="DATA" offsetMode="RAM">
      14
    </Location>
    <Location file="SCUS_942_21" offset="59DA0" mode="DATA" offsetMode="RAM">
      00
    </Location>
    <Location file="SCUS_942_21" offset="59DB0" mode="DATA" offsetMode="RAM">
      14
    </Location>
    <Location file="SCUS_942_21" offset="59F64" mode="DATA" offsetMode="RAM">
      14
    </Location>
    <Location file="SCUS_942_21" offset="5B134" mode="DATA" offsetMode="RAM">
      14
    </Location>
    <Location file="EVENT_ATTACK_OUT" offset="4110">
      14
    </Location>
    <Location file="EVENT_ATTACK_OUT" offset="9BCC">
      14
    </Location>
    <Location file="EVENT_REQUIRE_OUT" offset="50F0">
      14
    </Location>
    <Location file="EVENT_REQUIRE_OUT" offset="546C">
      14
    </Location>
    <Location file="EVENT_REQUIRE_OUT" offset="58A8">
      14
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="40C08">
      14
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="40924">
      14
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="582F8">
      14
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="B5ABF">
      14
    </Location>
  </Patch>
  <Patch name="Beowulf fix">
    <Description>This is to fix Beowulf guest requirement with vanilla. Probably needed if roster hack is used.</Description>
    <Location file="WORLD_WLDCORE_BIN" offset="3087A">
      03
    </Location>
  </Patch>
24
PSX FFT Hacking / Re: ASM Requests
October 05, 2018, 09:57:51 pm
It can only f*** the game if the event requires an specific unit in that slot, and from what i read TLW will not put real guest in party roster, until they fully join.

So the 4 slot are like a storage for units you put them there and take them out if you need them, they wont appear on battle formation, but to that case you can change jobs nor equipment in battle formation either. yet its a limitation of 16 units to choose in battle formation while having 4 in cold storage.   
25
PSX FFT Hacking / Re: ASM Requests
October 05, 2018, 03:12:05 pm
Quote from: Elric on September 01, 2018, 04:15:42 pm
Request for someone to look into the Roster Hack, found HERE or to make a new Hack to allow full, normal use of the 4 extra slots normally reserved for guest, specifically for mods that have guests forced only via ENTD.

The current issues with the existing Roster Hack, from my testing, are as follows:.....

Thank you to any who consider looking into this or possibly making a new hack for it


Every time I spent my time reading FTT hacks or FFT wiki, I found  Glain's and Xifanie's work outstanding. I feel like like a baby playing with 2 bricks and thinking that if i assemble them i am a master builder, while they just built the Eiffel tower and say me: "hey, good job assembling those bricks". :cry:

Sorry about that, anyway your hack is already done by Glain. It may be not the best roster hack but it's amazing, though dangerous to use as it is, with Vanilla. You can train all msq guests in random battles, you can control them in those battles (you need to remember to put them back on their guest slot before next main event to avoid f***ing it) and after the game finish you putting guests on those space you can fill it with 4 units that you won't be using in the next battle, but can be switched if needed.. what more can we ask Glain.

All you need to do is chance 16 to 20 in this hack "Switch unit number with L1 and R1 buttons (formation)" and done. It will look like this:
  <Patch name="Switch unit number with L1 and R1 buttons (formation)">
    <Description>
        Switch unit number with L1 and R1 buttons in the formation screen.  Changes unit order as appropriate.  L1 and R1 still work normally (switching the selected unit) in menus.
    </Description>
    <Location file="WORLD_WORLD_BIN" offset="1481FF" mode="DATA" offsetMode="RAM">
        00
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="148200" mode="ASM" offsetMode="RAM">
        .label  @address_skip_portrait_transition, 0x801481ff

        @swap_formation_unit_hook:
                addiu   sp, sp, -24
                sw      ra, 4(sp)
                sw      a3, 8(sp)

                move    a1, a0
                jal     @swap_formation_unit
                move    a0, t0
                sw      v0, 12(sp)
               
                sb      zero, 0x8018bad4
                jal     0x801140bc
                nop
               
                jal     0x80108920
                nop
               
                lw      v0, 12(sp)
                lw      a3, 8(sp)
                lw      ra, 4(sp)
                addiu   sp, sp, 24
                j       0x8012bcf8
                move    t0, v0

        @portrait_transition_hook:
                lui     t2, %hi(@address_skip_portrait_transition)
                lbu     t1, %lo(@address_skip_portrait_transition) (t2)
                nop
               
                beq     t1, zero, portrait_transition_hook_default
                addiu   t1, t1, -1
               
                sw      v1, 0x0058(sp)
                j       portrait_transition_hook_end
                sb      t1, %lo(@address_skip_portrait_transition) (t2)
               
            portrait_transition_hook_default:   
                sw      v0, 0x0050(sp)
               
            portrait_transition_hook_end:
                jr      ra
                nop
               
        #   swap_formation_unit (formationIndex, offset)
        @swap_formation_unit:
                addiu   sp, sp, -16
                sw      ra, 4(sp)
               
                move    v0, a0                  #   formationIndex
                sll     t0, a0, 2
                lw      t0, 0x801cd5ec(t0)
                addu    t1, a0, a1              #   offsetFormationIndex
                lhu     a0, 0x2c(t0)            #   unitIndex
                move    t2, a1                  #   offset
                addu    a1, a0, a1              #   offsetUnitIndex
               
                #   Skip if either unit index = 0 or either unit index >= 20
                beq     a0, zero, swap_formation_unit_end
                nop
                beq     a1, zero, swap_formation_unit_end
                sltiu   t0, a0, 20 
                beq     t0, zero, swap_formation_unit_end
                sltiu   t0, a1, 20
                beq     t0, zero, swap_formation_unit_end
                nop
               
                #   Find unit index of offset formation unit
                sll     t0, t1, 2
                lw      t0, 0x801cd5ec(t0)
                nop
                lhu     t0, 0x2c(t0)
                nop
               
                #   If it's the same as the offset unit index...
                bne     t0, a1, swap_formation_unit_swap
                li      t0, 1
                #   ...move the selected formation unit index.
                addu    v0, v0, t2
               
            swap_formation_unit_swap:
                sb      t0, @address_skip_portrait_transition
                sw      v0, 8(sp)
                jal     @swap_unit_data
                nop
                lw      v0, 8(sp)
               
            swap_formation_unit_end:
                lw      ra, 4(sp)
                addiu   sp, sp, 16
                jr      ra
                nop

        #   swap_unit_data (index1, index2)
        @swap_unit_data:
                addiu   sp, sp, -32
                sw      ra, 4(sp)
                sw      s0, 8(sp)
                sw      s1, 12(sp)
                sw      s2, 16(sp)
                sw      s3, 20(sp)
               
                move    s0, a0
                move    s1, a1
               
                sll     s2, a0, 8
                sll     s3, a1, 8
                la      t0, 0x80057f74
                addu    s2, s2, t0
                addu    s3, s3, t0
               
                move    a0, s2
                move    a1, s3
                jal     @swap_data
                li      a2, 256
               
            swap_unit_data_first_index:
                lbu     t1, 1(s2)
                li      t0, 0xff
                beq     t1, t0, swap_unit_data_second_index
                nop
                sb      s0, 1(s2)
           
            swap_unit_data_second_index:   
                lbu     t1, 1(s3)
                nop
                beq     t1, t0, swap_unit_data_end
                nop
                sb      s1, 1(s3)
           
            swap_unit_data_end:   
                lw      s3, 20(sp)
                lw      s2, 16(sp)
                lw      s1, 12(sp)
                lw      s0, 8(sp)
                lw      ra, 4(sp)
                addiu   sp, sp, 32
                jr      ra
                nop
               
        #   swap_data (ptr1, ptr2, size) size must be greater than zero
        @swap_data:
                addiu   a2, a2, -1
                lbu     t0, 0(a0)
                lbu     t1, 0(a1)
                sb      t0, 0(a1)
                sb      t1, 0(a0)
                addiu   a0, a0, 1
                bgtz    a2,@swap_data
                addiu   a1, a1, 1
                jr      ra
                nop
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="10DB28" mode="ASM" offsetMode="RAM">
        jal     @portrait_transition_hook
        li      v0, 2
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="12BCC8" mode="ASM" offsetMode="RAM">
        j       @swap_formation_unit_hook
        li      a0, 1
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="12BCE8" mode="ASM" offsetMode="RAM">
        j       @swap_formation_unit_hook
        li      a0, -1
    </Location>
  </Patch>
26
PSX FFT Hacking / Re: ASM Requests
October 01, 2018, 07:19:14 pm
Quote from: Glain on October 01, 2018, 07:03:31 pm
use .eqv if you want a constant... labels are for addresses)
thanks didn't knew it
Quote from: Glain on October 01, 2018, 07:03:31 pm
you could set it up as a variable at RAM 0x176C64 = BATTLE.BIN 0x10FC64
I don't like using variable cuz i usually forget to change them at the .exe, yeah i know its not an excuse but i like asm entire block
Quote from: Glain on October 01, 2018, 07:03:31 pmbut then why not just do 1/10 and not shift at all?
I thought the same, but may be that would fk the RNG calculation? not sure, still haven't check RNG.
Quote from: Glain on October 01, 2018, 07:03:31 pmIt also might make sense to multiply by the variable then divide by 128 so you could effectively divide by something like 2.5...
Yeah but since the one who asked for this didn't tested I went back to another thing and stop this optimization.

UPDATE: here it goes if any1 wants it as Glain:
  <Patch name="Teleport Failure MA Hack v3">
    <Description>It changes the base for failure in teleport, MA * ma_factor/128 instead of Move. No variables, so edit through xml only. Changes suggested by Glain. Edit this eqv if needed:
   ma_factor   Amount to multiply MA/128, 64=MA/2, 51=MA/2.5, 42(43)=MA/3.</Description>
    <Location file="BATTLE_BIN" offset="176C58" mode="ASM" offsetMode="RAM">
    .eqv %ma_factor, 64
      lbu v0,0x0037(a2)            #Load MA
      subu a0,zero,a0            #Make Y Distance positive
      ori t1,zero,%ma_factor
      multu v0,t1
      mflo v0                  #v0 = MA * ma_factor
      addu v1,v1,a0               #X Distance + Y Distance
      srl v0,v0,0x07            #v0 = MA * ma_factor/128
      subu a1,v1,v0               #Extra Distance = Distance -  MA * ma_factor/128
      jal 0x0005e0cc             #Check if Random is greater/equal to Chance
      ori a0,zero,0x000a         #a0 = 100% = 10 = ah (10% chance of failure for tile 1-10)
   </Location>
  </Patch>

UPDATE 2: tested, as i fear it doesn't read MA, so it needs :more: hacking, with this should suffice for definitive version:
  <Patch name="Teleport Failure MA Hack">
    <Description>It changes the base for failure in teleport, MA * ma_factor/128 instead of Move. No variables, so edit through xml only. Changes suggested by Glain. Edit this eqv if needed:
   ma_factor   Amount to multiply MA/128, 64=MA/2, 51=MA/2.5, 42(43)=MA/3.</Description>
    <Location file="BATTLE_BIN" offset="1744C0" mode="ASM" offsetMode="RAM">
      lui t0,0x8019
      sb v0,0x0007(s3)
      lbu v0,0x0048(s1)
      sw s1,0x2d98(t0)            #Store unit data pointer in attacker slot.
    </Location>
    <Location file="BATTLE_BIN" offset="176C10" mode="ASM" offsetMode="RAM">
      lui t0,0x8019
      lw a2,-0x0b20(t0)
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      lbu v0,0x0024(a2)
      lw t0,0x2d98(t0)            #Read unit data from attacker slot.
    </Location>
    <Location file="BATTLE_BIN" offset="176C58" mode="ASM" offsetMode="RAM">
    .eqv %ma_factor, 64
      lbu v0,0x0037(t0)            #Load MA
      subu a0,zero,a0            #Make Y Distance positive
      ori t1,zero,%ma_factor
      multu v0,t1
      mflo v0                  #v0 = MA * ma_factor
      addu v1,v1,a0               #X Distance + Y Distance
      srl v0,v0,0x07            #v0 = MA * ma_factor/128
      subu a1,v1,v0               #Extra Distance = Distance -  MA * ma_factor/128
      jal 0x0005e0cc             #Check if Random is greater/equal to Chance
      ori a0,zero,0x000a         #a0 = 100% = 10 = ah (10% chance of failure for tile 1-10)
   </Location>
  </Patch>
27
PSX FFT Hacking / Re: ASM Requests
October 01, 2018, 12:16:14 pm

Try this:
  <Patch name="Teleport Failure MA Hack">
    <Description>It changes the base for failure in teleport, MA div ma_factor instead of Move. No variables, so edit through xml only. Edit this eqv if needed:
   ma_factor   Amount to divide MA.</Description>
    <Location file="BATTLE_BIN" offset="176C58" mode="ASM" offsetMode="RAM">
    .eqv  %ma_factor, 0x0003
      lbu v0,0x0037(a2)            #Load MA
      subu a0,zero,a0            #Make Y Distance positive
      addu v1,v1,a0               #X Distance + Y Distance
      ori t1,zero,%ma_factor
      divu v0,t1
      mflo v0                  #v0 = MA div ma_factor
      ori a0,zero,0x0050         #a0 = 100% = 80 = 50h
      subu v1,v1,v0               #Distance -  MA div ma_factor
      jal 0x0005e0cc             #Check if Random is greater/equal to Chance
      sll a1,v1,0x03            #Extra Distance * 8 (10% chance of failure for tile 8-80)
   </Location>
  </Patch>

As always my patches need testing, this one is no exception. Big issue could be that it is not getting MA, but something else...
If you just want MA/2, then the patch is smaller:
  <Patch name="Teleport Failure MA Hack v2">
    <Description>It changes the base for failure in teleport, MA/2 instead of Move.</Description>
    <Location file="BATTLE_BIN" offset="176C58" mode="ASM" offsetMode="RAM">
      lbu v0,0x0037(a2)            #Load MA
      subu a0,zero,a0               #Make Y Distance positive
      addu v1,v1,a0               #X Distance + Y Distance
      srl v0,v0,0x01            #v0 = MA/2
   </Location>
  </Patch>


Read following post.
28
Help! / Re: A little help with ARH 1.32
September 29, 2018, 09:37:21 pm
Quote from: Elric on September 29, 2018, 09:12:27 pm
There is always plenty that you can contribute if you are dedicated to doing so. Many of the ASMers are no longer around as much as they used to be, except for Glain, and Xif and Glain shouldnt have to make everything on their own :P

If you are looking for something to do, I can always put you to work xD

Sure, why not. But don't like: "hey, do a hack roaster" it is still out my league for now. Attached is a sum of my work (rewrotes of ideas or old hacks, i don't claim anything):
29
Help! / Re: A little help with ARH 1.32
September 29, 2018, 08:47:48 pm
Quote from: Xifanie on September 29, 2018, 08:01:37 pm
What's funny is that even mentioning this, the 2 people that I dared give a try to (as in: "I'll give you my tool if you bug report"), never exactly reported anything... just like everyone else. 8D


Well it happens a lot :cry:. Is really hard to find free ppl for bug report, and i really suck at debugging (even my own work) ...

Yet your work with FFT is amazing (i think i fall short), i don't think i can give this community anything worth.

Anyway I spent, still do, some time at the wiki over the CD Index, reading routines of battle.bin and scus there. Most is fine though there are some errors yet i didn't edit them, fearing that if you see a lot of anonymous activity you would have rolled back.
30
I rewrote some hacks in asm mode mostly, should i post them here? start a new thread? or keep them for myself? :?
I will upload my work here (merged old files - added new PRE):

Ok, done with all the hacks i wanted (i pulled them in vanilla code, they are in the non - PRE file). Here is my fft version (based on fft - complete with all my hacks (don't count the first ones till draw out fix), no hooking - plus some modded sprites from this site):


I guess that's all, i will take a long break. Cya all.

UPDATE (Nov-25) added better transition hack and fixed PRE ch1 fix (for some reason i forgot entd 188, added now).
31
Help! / Re: Zodiac Compatibility Modify?
September 24, 2018, 02:23:18 pm
Yes the final XA*whatever is the percentage, so if whatever is  25 then 25%, if is 13 =13%. For Bad and Good. Worst and Best doubles the percentage, so 25% goes to 50%, 13% goes to 26%, 10% goes to 20%.

"addu a1,v1,v0" doesn't do XA*10 by itself, is more like "addu r5,r3,r2" == "r5=XA*9+XA", that is why previous line was XA*9.

It may be confusing, but is a low level language not like 'python' or 'ruby' or 'c#', what you are searching is this:
mult r5,r2,10 --> r5=r2*10, where r2=XA

Sadly there is no mult like that in MIPS (psx hardware, to put it simple). Before someone shouts, i know, there is a mult instruction in MIPS set but it doesn't behave with that simple syntax. You could use it nonetheless but in this low level language is easier to write this:
"r3=XA*8"
"r3=r3+XA"
"r5=r3+XA"
Than this:
"r5=XA*10"
32
Help! / Re: Zodiac Compatibility Modify?
September 24, 2018, 01:53:15 pm
Before i start, just in case if  you see "<!--" in .xml that means it is comment not code or smt that the program will read until "-->". I usually left comments to myself in everything i do (cuz i am lazy and tend to forget things really fast). Sorry if u already knew it.
Vanilla
















AddressInstruction-hexInstruction-asmComment
00184a3000021840sll r3,r2,0x01XA*2, r2 has XA and 'sll' by 0x01 equals multiply by 2, so r3 stores XA*2
00184a3400621821addu r3,r3,r2XA*3, r2 still has XA and 'addu' adds r2 to r3 and save in r3, so now r3 stores XA*3
00184a38000318c0sll r3,r3,0x03XA*24, r3 has XA*3 and 'sll' by 0x03 equals multiply by 8 (2*2*2), so now r3 stores XA*24
00184a3c00622821addu r5,r3,r2XA*25, r2 still has XA and 'addu' adds r2 to r3 and save in r5, so r5 stores XA*25. After this the game engine will keep reading untouched instructions but it will use the value stored in r5 for calculations


Patch
















AddressInstruction-hexInstruction-asmComment
00184a30????????sll v1,v0,0x03 XA*8, v0=r2 has XA and 'sll' by 0x03 equals multiply by 8 (2*2*2), so now v1=r3 stores XA*8
00184a34????????addu v1,v1,v0XA*9, v0=r2 still has XA and 'addu' adds v0=r2 to v1=r3 and save in v1=r3, so now v1=r3 stores XA*9
00184a38????????addu a1,v1,v0XA*10, v0=r2 still has XA and 'addu' adds v0=r2 to v1=r3 and save in a1=r5, so a1=r5 stores XA*10. Remember the game engine will use the value stored in r5 for calculations
00184a3c00000000nopNo operation. Just for filling, to prevent unwanted code.
33
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
34
Help! / Re: Zodiac Compatibility Modify?
September 24, 2018, 12:00:58 pm
Quote from: stardragoon9 on September 24, 2018, 07:40:18 am
Do you mean this? http://ffhacktics.com/wiki/Calculate_Zodiac_Symbol

I don't think so, may be this one:
http://ffhacktics.com/wiki/Compatibility

I am still learning MIPS, plus I am trying to follow Glain steps... This is my first patch in asm mode, didn't have time to test it so dunno if it will work, but in theory it does what u ask from 25% to 10% as base. Here:
  <Patch name="Zodiac Compatibility Amount Hack">
    <Description>Vanilla does 1/4 for bad and good and doubles it for best and worst. Here it does 1/10.</Description>
    <Location file="BATTLE_BIN" offset="184a30" mode="ASM" offsetMode="RAM">
       sll v1,v0,0x03
       addu v1,v1,v0
       addu a1,v1,v0
       nop
    </Location>
  </Patch>
<!--
(v0 = r2, v1 = r3, a1 = r5)
Original code:
00184a30: 00021840 sll r3,r2,0x01      XA * 2
00184a34: 00621821 addu r3,r3,r2      XA * 3
00184a38: 000318c0 sll r3,r3,0x03      XA * 24
00184a3c: 00622821 addu r5,r3,r2      XA * 25
Current code:
00184a30: sll v1,v0,0x03            XA * 8
00184a34: addu v1,v1,v0            XA * 9
00184a38: addu a1,v1,v0            XA * 10
00184a3c: nop
-->
35
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.
36
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>
37
PSX FFT Hacking / Re: ASM Requests
September 15, 2018, 05:26:19 pm
Thanks, you are awesome  ;).

The routine at 0x8008e468, is not initializing the battle camera at least for the zoom. Haven't try the angle.

But this code:34021000 ac620080
which can be found twice in the iso, the first occurrence is the one for initializing the battle camera (zoom only tested)

You really are top  :oops:

In the iso the zone is:
003229E8h   D0 60 22 AC 00 10 02 34
003229F0h   80 00 62 AC 20 00 BF 8F

I changed to:
003229E8h   D0 60 22 AC 00 0C 02 34
003229F0h   80 00 62 AC 20 00 BF 8F

I also tried 07 and it work like a charm.

UPDATE:
Added to patch both angle (3 places not sure which is the key, all are near) and zoom:
  <Patch name="Change camera zoom values">
    <Description>Change camera zoom and angle values. Edit through xml.</Description>
    <Variable name="Zoom initial value" file="BATTLE_BIN" bytes="2" default="1000" value="0C00" offset="C6EE4"/>
    <Variable name="Zoom-in value" file="BATTLE_BIN" bytes="2" default="1000" value="1000" offset="84DC:1,84E4,86C0,86F8"/>
    <Variable name="Zoom-out value" file="BATTLE_BIN" bytes="2" default="0C00" value="0C00" offset="854C:1,8554,8744:1,8774"/>
    <Variable name="Angle initial value" file="BATTLE_BIN" bytes="2" default="012E" value="01C0" offset="C6E10,C6E24,C6E38"/>
    <Variable name="Angle-in value" file="BATTLE_BIN" bytes="2" default="012E" value="012E" offset="87F4:1,87FC,8A54:1,8A5C,8AFC,8B04"/>
    <Variable name="Angle-out value" file="BATTLE_BIN" bytes="2" default="01C0" value="01C0" offset="8860:1,8868,89FC,8A04,8A98:1,8AA0"/>
  </Patch>

Still there is an issue with r2 and l2, cuz a flag or smt like that make the game believe that the starting camera is always zoom in, so if u start with zoom out values, the first time u press r2 or l2 u won't notice anything.

Again, thanks for everything to Nyzer, Elric, Xifanie, special thanks to Glain (you really did it). I won't post anything else, at least about this camera hack, all credit goes to Glain (you found it plus you wrote the initial xml structure).

Now back to play my custom modded FFT, cya!
38
PSX FFT Hacking / Re: ASM Requests
September 14, 2018, 10:34:01 am
I was sorting stuff, still not much progress, but remade your patch (though it uses weird syntax so current ASM wont read)
  <Patch name="Change camera zoom values">
    <Description>Change camera zoom and angle values.</Description>   
    <Variable name="Zoom-in value" file="BATTLE_BIN" bytes="2" default="1000" value="0C00" offset="84DC:1,84E4,86C0,86F8"/>
    <Variable name="Zoom-out value" file="BATTLE_BIN" bytes="2" default="0C00" value="0700" offset="854C:1,8554,8744:1,8774"/>
    <Variable name="Angle-in value" file="BATTLE_BIN" bytes="2" default="012E" value="0130" offset="87F4:1,87FC,8A54:1,8A5C,8AFC,8B04"/>
    <Variable name="Angle-out value" file="BATTLE_BIN" bytes="2" default="01C0" value="0400" offset="8860:1,8868,89FC,8A04,8A98:1,8AA0" />
  </Patch>

PatchXmlReader.cs from line 220
                    //PsxIso.Sectors varSec = (PsxIso.Sectors)Enum.Parse( typeof( PsxIso.Sectors ), varNode.Attributes["file"].InnerText );
                   
                    XmlAttribute defaultAttr = varNode.Attributes["value"];
                    if ( defaultAttr == null ) defaultAttr = varNode.Attributes["default"];
                   
                    foreach ( string varNodeOffset in varNode.Attributes["offset"].InnerText.Split(',') )
                    {
                    string[] varNodeOffsetPart = varNodeOffset.Split(':');
                    UInt32 varOffset = UInt32.Parse( varNodeOffsetPart[0], System.Globalization.NumberStyles.HexNumber );
                    UInt32 def = 0;
                    Byte[] byteArray = new Byte[bytes];
                   
                    if ( varNodeOffsetPart.GetLength(0) > 1 )
                    def = def + UInt32.Parse( varNodeOffsetPart[1], System.Globalization.NumberStyles.HexNumber );
                    if ( defaultAttr != null )
                    {
                    def = def + UInt32.Parse( defaultAttr.InnerText, System.Globalization.NumberStyles.HexNumber );
                    for (int i=0; i < bytes; i++)
                    {
                    byteArray[i] = (Byte)((def >> (i * 8)) & 0xff);
                    }
                    }
                    KeyValuePair<string, PatchedByteArray> kvp = new KeyValuePair<string, PatchedByteArray>( varName, new PatchedByteArray( varSec, varOffset, byteArray ) );
                    VariableType vType = new VariableType();
                    vType.content = kvp;
                    vType.bytes = bytes;
                   
                    variables.Add( vType );
                    }

Still the initial values are not there so every time i enter a battle it resets...

Also there is a weird behaviour with the angle, bird view is only for map and not toons, plus some squares are not getting drawn...
39
PSX FFT Hacking / Re: ASM Requests
September 12, 2018, 04:48:24 pm
First, Glain I tried. a)flip values, and the zoom in and zoom out went anti-smooth b) try with 00F0 in zoom-out, and i could barely see the map.

Second, I don't think i am getting you Elric, all events are in test.evt or the are more files? cuz lets put the second video as an example:
a) 0- 15 sec it is controlled by EVT_010
b) 16- 57 sec i dont know what controls it...
c) 58- 72 sec it is controlled by EVT_011
d) 73- end sec controlled by player... (yet it still resets)
40
PSX FFT Hacking / Re: ASM Requests
September 12, 2018, 04:16:42 pm
Thanks Glain,  ;)  i will test it asap.

A silly question if u recommend same values why zoom out have c00 and c01?