Final Fantasy 9 > FF9 Tools

[PSX/PC] General editor - Hades Workshop (0.50b)

<< < (412/414) > >>

Inu92:
Hey Tirlititi,

I wanted to send you a private message but it doesn't work, sadly if this was asked before but can we edit mods like alternate fantasy or trance seek using Hades workshop? I don't know how it works.

Thanks again for this great modding tool, I was using it a lot before and I had a lot of fun on the PSX version, but on the Steam version i'm quite lost using the application =)

Thanks again and have a nice evening!

Yerek:
I've looped back around to manual trance without taking a turn, and I almost have it, but am having trouble finding the column bit in caster/target data. I can find it, but wanted to check if anyone else has to save time.

Also, I found a bit that should be documented in caster/target data. bit 44 mask 2  I.E. $21[44] & 0xFFFF for caster is the current ATB value. Max appears to be a calculated value.

Edit : version is PSX

iamthehorker:
In an older post you mentioned a ppf patch for The Collector rank bug in Tetra Master.

https://forums.qhimm.com/index.php?topic=14315.msg214543#msg214543

The dropbox link to your patch is now dead. Would you please rehost that? I am interested in adding this fix to my Difficulty Tweak mod. After years of not touching it I think that will be a good state to leave it in.

Thanks again for the work that you do :)

Tirlititi:
@iamthehorker: Hello. That's the link now. Dropbox indeed changed its URL format several years ago.
The Collector

Yerek:
Okay, so I figured it out, and have trance activating by holding R2 in battle for PSX version. I wanted to share some notes in case they help anyone.

1. bit 104 mask 1 of caster/target data is the character id. (21[104] & 0xFF for caster example would always be 1 when Zidane uses a ability, 2 for Vivi, etc.).

2. I wanted to provide the ASM for two different versions of manual trance in HW's format for anyone who wants them:


First the universal requirement; not automatically activating trance when gauge reaches max :

change the first three lines at 0xB8364 to match this :


--- Code: ---$2 = $0 + 255
jump 0xB8378
$4[120] = $2 & 0xFF

--- End code ---

By command :

Insert this code at the start of any formula you are not using, as it will be used as a "Enter trance" formula. Do not replace the default trance formula or the times where certain fights force a specific character in trance will glitch and freeze/crash.


--- Code: ---$3 = $19[120] & 0xFF
$2 = $0 + 255
if ($2 != $3), jump 0xB7910
nothing
$4 = $19 + $0
$19[42] = $3 & 0xFFFF
jump 0xBEDBC (store return position to $31)
$5 = $0 + 16384
jump 0xB7918

--- End code ---

Now, the breakdown. The first three lines check if trance gauge is at max (255). If not it jumps to add status in order to become defend when trance is not available. Simply change the jump to 0xB9718 to change that. The rest simply runs the trance formula. Depending on how you want to deploy this, you may want to change to $4 = $19 + $0 to $4 = $21 + $0. The latter simply applies Trance to the caster instead of target, but they'll likely be the same.




The button activation:

I won't explain much here as I don't feel like writing a book today, but I will give enough details for those with knowledge of assembly to understand.  the code goes like this :

Link the Jump (Not Jal) at 0xB0488: to wherever you put the next function. This is the part of the battle loop that will check for the button press.


The function :

--- Code: ---$3 = 32775 << 16
$3 = $3[14640]
nothing
$3 = $3 & 0x200
if ($3 == $0), jump END
nothing
$2 = 32778 << 16
$3 = 32774 << 16
$3 = $3[31052]
$2 = $2[-26306] & 0xFF
$3 = $3[28]
nothing
$3 = $3[2276]
nothing
$4 = $3[1784]
$5 = $0 + 0
LOOP: if ($2 != $5), jump LOOP_INC
nothing
jump OUT
$3 = $4 + 0
nothing
LOOP_INC: $5 = $5 + 1
jump LOOP
$4 = $4[0]
OUT: $2 = $3[120] & 0xFF
$3 = $0 + 255
if ($2 != $3), jump END
nothing
jump 0xBEDBC (store return position to $31)
$5 = $0 + 16384
END: $2 = $18[8] & 0xFF
jump 0xB0490
$3 = $17[4544]

--- End code ---

The first part checks the address for L2 and R2 to see if R2 is pressed. If not it returns to the battle loop. If it is it finds the current character by looping through each slot to find the selected character. Then (OUT) it checks if trance gauge is max. If not it returns to the battle loop. If R2 is pressed, someone's command window is open, and that character's trance gauge is maxed, the character will enter trance at the end of the battle loop.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version