• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 06:22:02 am

News:

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


ASM Requests

Started by The Damned, October 29, 2014, 09:16:45 pm

xjamxx

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>
  • 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.

Nyzer

The key words there are "full, normal use". A workaround that can potentially fuck your game over isn't one that's desired.

Elric won't even let me get away with making a slightly substandard non-battle event; there's no way he'd willingly use an ASM with such a glaring flaw.
  • Modding version: Other/Unknown

xjamxx

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.   
  • 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.

3lric

Quote from: xjamxx on 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.   


TLW doesnt have formation guests, this is correct, but it does use hacks that allow guests to be used in normal battle, since its tied to the unit restriction hack.

Being that this is a base patch for others to build their mods upon, Id rather not do anything that would potentially mess anything up.

As Nyzer said (and knows far too well with the years we've worked together) I couldnt be okay substituting one hack with another that required work arounds and planning to have it act as intended.

I'd prefer to wait until a dedicated Roster Hack is made
  • Modding version: PSX

xjamxx

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>
  • 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.

Greenhorn

Zodiac causing instant crystal kill?
  • Modding version: PSX & WotL
  • Discord username: greenhornX_X

Xifanie

FFTPatcher
Set Zodiac's formula to 100% hit or whatever you want, just make sure it's not NS (No Status)
Set the inflicted status to crystal.

You should probably play around more with the tools, you should be inspired by all the possibilities instead of asking an ASM about one of the most simple things that can be accomplish with FFTPatcher alone.
  • 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

xjamxx

October 08, 2018, 01:24:39 pm #247 Last Edit: October 08, 2018, 02:46:00 pm by xjamxx
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). ;)
  • 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.

Xifanie

The .xml is generated from the spreadsheet. The code doesn't change no matter what is changed in the table... I don't know where you would get that idea. Nothing is hardcoded. You can just download the .xml in the topic itself.
  • 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

xjamxx

October 08, 2018, 06:02:27 pm #249 Last Edit: November 25, 2018, 08:23:13 pm by xjamxx
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.
  • 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.

Reikan

Hello.

I want a formula to build a Faith-based melee spellcaster (Kinda like Beowulf except with some damaging skills instead of pure CC). My suggestion is to take slot 18 and make a formula like:

DMG_F(PA*(WP+Y))  Hit_F(PA+X)%

(This way, both the DMG and chance of hit would be dependant on Faith, a thing that no PA/WP formulas have as far as I know)


I know nothing about ASM but I have free time to learn, if anyone wants to give me some light.

Thanks in advance.  :mrgreen:
  • Modding version: PSX
Life... slips away.

xjamxx

November 01, 2018, 09:22:42 am #251 Last Edit: November 02, 2018, 01:38:11 pm by xjamxx
  <Patch name="Formula 18: melee spellcaster">
    <Description>Redirects empty formula 18 to F6400 (the same as Glain's Formula 3B), so it becomes DMG_F(PA*(WP+Y))  Hit_F(PA+X)%. Uses 28 instructions.</Description>
    <Location file="BATTLE_BIN" offset="F6400" mode="ASM">
@melee_spellcaster:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      jal 0x001885b8            #Magic Evade.
      nop
      bne v0,zero,NFED
      nop
      jal @acc_mag_melee           #Calculate (PA + X)*Faith% acc, based on 0x001889cc.
      nop
      bne v0,zero,NFED
      nop
      jal @dmg_f_melee            #DMG_F(PA*(WP+Y)), based on 0x00188d84.
      nop
NFED: lw ra,0x0010(sp)
      addiu sp,sp,0x0018
      jr ra
      nop
@acc_mag_melee:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      jal 0x00185dac            #Store PA+X.
      nop
      j 0x001889d8            #It is 0x001889cc but first part is patched.
      nop
@dmg_f_melee:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      jal 0x00185e5c            #Store PA and WP + Y.
      nop
      j 0x00188da0            #It is 0x00188d84 but first part is patched.
      nop
    </Location>
    <Location file="BATTLE_BIN" offset="18929C" mode="ASM" offsetMode="RAM">
      j @melee_spellcaster
    </Location>
  </Patch>

I didn't tested it. Also you should find another code cave to put the "main code" of your formula since it uses the same as other Glain's hack.
EDIT:
Did one test, it seems to work..., minor touches:
  <Patch name="Formula 18: melee spellcaster">
    <Description>Redirects empty formula 18 to F6400 (the same as Glain's Formula 3B), so it becomes DMG_F(PA*(WP+Y))  Hit_F(PA+X)%. Uses 26 instructions.</Description>
    <Location file="BATTLE_BIN" offset="F6400" mode="ASM">
@melee_spellcaster:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      jal 0x001885b8            #Magic Evade.
      nop
      bne v0,zero,MSED
      nop
      jal @acc_mag_melee           #Calculate (PA + X)*Faith% acc, based on 0x001889cc.
      nop
      bne v0,zero,MSED
      nop
      jal @dmg_f_melee            #DMG_F(PA*(WP+Y)), based on 0x00188d84.
      nop
MSED: lw ra,0x0010(sp)
      addiu sp,sp,0x0018
      jr ra
      nop
@acc_mag_melee:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      lui v0,0x8018
      j 0x00185dac            #Store PA+X.
      ori ra,v0,0x89d8         #It is 0x001889cc but first part is patched.
@dmg_f_melee:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      lui v0,0x8018
      j 0x00185e5c            #Store PA and WP + Y.
      ori ra,v0,0x8da0         #It is 0x00188d84 but first part is patched.
    </Location>
    <Location file="BATTLE_BIN" offset="18929C" mode="ASM" offsetMode="RAM">
      j @melee_spellcaster
    </Location>
  </Patch>

EDIT 2:
  <Patch name="Formula 18: melee spellcaster">
    <Description>Redirects empty formula 18 to F6400 (the same as Glain's Formula 3B), so it becomes DMG_F(PA*(WP+Y))  Hit_F(PA+X)%. Uses 22 instructions.</Description>
    <Location file="BATTLE_BIN" offset="F6400" mode="ASM">
@melee_spellcaster:
      addiu sp,sp,0xffe8
      sw ra,0x0010(sp)
      jal 0x801885b8            #Magic Evade. If Physical use 0x80188510.
      nop
      bne v0,zero,MSED
      lui v0,0x8018
      jal @acc_mag_melee           #Calculate (PA + X)*Faith% acc, based on 0x001889cc.
      addiu sp,sp,0xffe8
      bne v0,zero,MSED
      lui v0,0x8018
      jal @dmg_f_melee         #DMG_F(PA*(WP+Y)), based on 0x00188d84.
      addiu sp,sp,0xffe8
MSED: lw ra,0x0010(sp)
      addiu sp,sp,0x0018
      jr ra
      nop
@acc_mag_melee:
      sw ra,0x0010(sp)
      j 0x80185dac            #Store PA+X.
      ori ra,v0,0x89d8            #It is 0x001889cc but first part is patched.
@dmg_f_melee:
      sw ra,0x0010(sp)
      j 0x80185e5c            #Store PA and WP + Y.
      ori ra,v0,0x8da0            #It is 0x00188d84 but first part is patched.
    </Location>
    <Location file="BATTLE_BIN" offset="18929C" mode="ASM" offsetMode="RAM">
      j @melee_spellcaster
    </Location>
  </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.

yamish

Not sure if it's been done, but has anybody done any work with tying things to the proposition ranks.

While currently eventing is beyond me, the ability to set an event to trigger at a location after reaching treasure hunter 3 etc could open up some side story arcs.

Trying to outwit a rival treasure hunter comes to mind, or a battle map that opens up after a max rank adventurer discovers its location under Goug with some good stealing or move/find item prospects.

Just an idea to add something to the props
  • Modding version: PSX & WotL
  • Discord username: riggz raggz

Tony75

Can someone make a working Accessory break for the knight ? I would like to change break MP to Break Accessory .
Also a +1 MA like the Squire skill (forgot the name of it )
  • Modding version: WotL

Ashiel

April 10, 2019, 10:45:27 pm #254 Last Edit: April 11, 2019, 06:03:19 am by Ashiel
I searched "MA" with the forum search tool and didn't see anything like this, so I thought I'd propose a few that hopefully others might find useful if someone could help me out with 'em (admittedly, ASM hacking is a bit intimidating at the moment).

New Formula Requests
All of the following formulas would ideally be unused or blank formulas in FFT Patcher, so as not to lose options.

Scaling Formulas
To reduce the need for having lots of different tier abilities (e.g cure 1, cure 2, cure 3, etc) and/or to scale more smoothly. I estimate them to work almost identically to Formula 5E with a few changes? For ease of viewing, I've color-coded the stats for the formulas to make them stand out a bit better.

Legend Heal, Dmg, CasterFaith, TargetFaith, PA, MA

MA Based Formulas
There's no scaling faith or healing formulas that I could find in FFTPatcher.

  • "Black Mage (Faith Based)" Dmg_(CasterFaith/100)*(TargetFaith/100)*(((MA+Y)/2)*MA)#Hit_X+1 Status ME

  • "Black Mage (None Faith)" Dmg_(((MA+Y)/2)*MA)#Hit_X+1 Status ME

  • "White Mage (Faith Based)" Heal_(CasterFaith/100)*(TargetFaith/100)*(((MA+Y)/2)*MA)#Hit_X+1 Status ME

  • "White Mage (None-Faith)" Heal_(((MA+Y)/2)*MA)#Hit_X+1 Status ME



PA/MA Based Formulas
There's not a lot of formulas for hybrid characters. To alleviate this I'd like to propose the following formulas.

  • "Paladin (Faith Based)" Heal_(CasterFaith/100)*(TargetFaith/100)*(((MA+Y)/2)*PA)#Hit_X+1 Status ME

  • "Paladin (None Faith)" Heal_(((MA+Y)/2)*PA)#Hit_X+1 Status ME

  • "War Mage (Faith Based)" Dmg_(CasterFaith/100)*(TargetFaith/100)*(((MA+Y)/2)*PA)#Hit_X+1 Status ME

  • "War Mage (None Faith)" Dmg_(((MA+Y)/2)*PA)#Hit_X+1 Status ME

  • "Red Mage (Faith Based)" Dmg_(CasterFaith/100)*(TargetFaith/100)*(((PA+Y)/2)*MA)#Hit_X+1 Status ME

  • "Red Mage (None Faith)" Dmg_(((PA+Y)/2)*MA)#Hit_X+1 Status ME

  • "Crusader (Faith Based)" Heal_(CasterFaith/100)*(TargetFaith/100)*(((PA+Y)/2)*MA)#Hit_X+1 Status ME

  • "Crusader (None Faith)" Heal_(((PA+Y)/2)*MA)#Hit_X+1 Status ME


xjamxx

Quote from: Tony75 on February 26, 2019, 08:27:14 pm
Can someone make a working Accessory break for the knight ? I would like to change break MP to Break Accessory .

  <Patch name="Magic Break can break accessory">
    <Description>With FFTPatcher or similar program change ability 'Magic Break' formula from 2c to 25, change x and y values, uncheck Affect MP and check Unequip. If need change offset F6400 to whatever you want (as long as it is a safe spot).</Description>
    <Location file="BATTLE_BIN" offset="F6400" mode="ASM">
@my_code_cave:
      beq r3,r2,SKP #Branch if used ability is 'Icewolf  Bite'
      ori r2,r0,0x008e
      beq r3,r2,SKP #Branch if used ability is 'Acc Break'=='MP Break'
      ori r2,r0,0x0072
      j 0x00187b54
      nop
SKP:  j 0x00187b5c
      nop
    </Location>
    <Location file="BATTLE_BIN" offset="187b4c" mode="ASM" offsetMode="RAM">
      j @my_code_cave
      nop
    </Location>
  </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.

hitokiro

Hello everyone~

I was wondering if there was a straightforward way to transform a gameshark code into an ASM hack? Specifically I'd like to patch "JP Never Decreases" into my game. The code I found for this is:

D004760C 0001
8011FAD4 0000

Or I suppose if there's already an ASM hack for this, that would also be super. I looked through as many lists as I could but didn't see it.
  • Modding version: PSX

Nyzer

What, like when you buy a skill you keep the JP?

That would actually be a vaguely interesting concept, just making JP thresholds for every skill.

Otherwise I'd just suggest patching all JP costs to 0
  • Modding version: Other/Unknown

hitokiro

Exactly! It's less about making it easier to buy skills, and more about avoiding the grind with jobs that have multiple 600+ JP skills. I like to think of it more like "well this black mage is pretty experienced...why couldn't he/she just buy all the *aga spells at once?" Having all the jobs cost nothing would mean there'd be no progression, but having the JP just be sort of a flat bar to raise means you're gaining experience and unlocking skills, not buying them with expendable currency.
  • Modding version: PSX

Nyzer

Hm. There would still be some flaws with the idea, though. JP costs would probably have to be raised across the board to balance out the grind time, and then you'd have absolutely no choice when it comes to your job's progression. To each their own, of course, but now that I think about it, it would probably be less appealing to the typical FFT audience.
  • Modding version: Other/Unknown