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

Pages: [1]
1
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: [Select]
$2 = $0 + 255
jump 0xB8378
$4[120] = $2 & 0xFF

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: [Select]
$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

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: [Select]
$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]

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.

2
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

3
Hey Tirlititi,

As I continue to wrok on my mod, I recompiled HW in order to fix the bug that prevents successfully transfer item changes across Psx disks. Would you be OK with me sharing that? If so, how would you pefer I do that?

-Yerek

4
First, just want to say I love the tool you've made. Second I was wondering if anyone had any ideas on a problem I am running into. I made a psx mod that makes the defend conmand activate trance only if at max gauge (auto trance is disabled as well), but because a command is used to enter trance, it increments the trance gauge down one turn right after activating it. Does anyone have any ideas on a way to fix this? I haven't found anything myself,  but wanted to check and see if anyone else has any ideas.

Pages: [1]