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

  • Thread starter Thread starter Tirlititi
  • Start date Start date
Status
Not open for further replies.
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]
Code:
$2 = $0 + 255jump 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]
Code:
$3 = $19[120] & 0xFF$2 = $0 + 255if ($2 != $3), jump 0xB7910nothing$4 = $19 + $0$19[42] = $3 & 0xFFFFjump 0xBEDBC (store return position to $31)$5 = $0 + 16384jump 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]
Code:
$3 = 32775 << 16$3 = $3[14640]nothing$3 = $3 & 0x200if ($3 == $0), jump ENDnothing$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 + 0LOOP: if ($2 != $5), jump LOOP_INCnothingjump OUT$3 = $4 + 0nothingLOOP_INC: $5 = $5 + 1jump LOOP$4 = $4[0]OUT: $2 = $3[120] & 0xFF$3 = $0 + 255if ($2 != $3), jump ENDnothingjump 0xBEDBC (store return position to $31)$5 = $0 + 16384END: $2 = $18[8] & 0xFFjump 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.
Hey man, great work and thanks for sharing it to help someone else.
I'm currently working on a (overall) psx mod to play with Cinna, Marcus and Blank (and Beatrix, for sure).
One of my problems was the trance with these characters (and a way to turn in trance):
they don't have a trance model, so if in trance the game softlock.
So there was two solutions: not give trance status to them or, and it is my solution at moment, give trance status to them eliminating trance model for all character!!! Yes, it is possible and yes, it works as normal.
How? I've erased two lines in the MIPS code to "Trance Activate": change model x 2. And the magic happens!
After this...another problem was giving to them support abilities...and yeah i've made this, too (except for Beatrix) but this...this is another story.

So reading your post, i've remembered when i started, two year ago my bad, (and when (and how much) i've messed up with) these types of changes on PSX version.

I just want to say this: Honor to you, Yerek, another fearless PSX modder
 
Hello!

I was wondering how to enable other characters to perform a casting animation when paired up with Steiner for Sword Magic and how to go about making new Sword Magic animations, such as combining the in game Aero animation with Steiner's Attack animation.

Thanks!
 
Hello.
That would be done using Memoria sequence files. You can read the documentation about them there: https://github.com/Albeoris/Memoria/wiki/Battle-SFX-Sequence.
Most likely, you'd want to start by using existing attack animation sequences, like the one from Fire Sword, and tweak it to do something else. That animation sequence looks like that for example:
Code: [Select]
Code:
// Player sequence of SFX Fire_SwordWaitAnimation: Char=CasterTurn: Char=Caster ; BaseAngle=AllTargets ; Time=5Message: Text=[MagicSword] ; Priority=1 ; Title=True ; Reflect=TrueSetupReflect: Delay=SFXLoadedLoadSFX: SFX=Fire_Sword ; MagicCaster=Vivi ; Reflect=TrueTurn: Char=Vivi ; BaseAngle=Caster ; Time=5PlayAnimation: Char=Vivi ; Anim=MP_IDLE_TO_CHANTWaitAnimation: Char=ViviPlayAnimation: Char=Vivi ; Anim=MP_CHANT ; Loop=TrueChannel: Char=ViviWaitSFXLoaded: SFX=Fire_Sword ; Reflect=TrueWaitAnimation: Char=ViviStopChannel: Char=ViviPlayAnimation: Char=Vivi ; Anim=MP_MAGICWaitAnimation: Char=ViviTurn: Char=Vivi ; BaseAngle=Default ; Time=4PlayAnimation: Char=Caster ; Anim=MP_SETWaitAnimation: Char=CasterPlaySFX: SFX=Fire_Sword ; Reflect=TrueMoveToTarget: Char=Caster ; Target=AllTargets ; Distance=600 ; UseCollisionRadius=True ; Anim=MP_RUNTurn: Char=Caster ; BaseAngle=AllTargets ; Time=10WaitMove: Char=CasterMoveToTarget: Char=Caster ; Target=AllTargets ; Distance=0 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACKWaitMove: Char=CasterPlayAnimation: Char=Caster ; Anim=MP_ATTACKWait: Time=5PlayAnimation: Char=Caster ; Speed=0Wait: Time=20MoveToPosition: Char=Caster ; AbsolutePosition=Default ; Anim=MP_BACKTurn: Char=Caster ; BaseAngle=Default ; Time=4WaitMove: CasterPlayAnimation: Char=Caster ; Anim=IdleWaitTurn: Char=CasterWaitSFXDone: SFX=Fire_Sword ; Reflect=TrueActivateReflectWaitReflect
(fetched from there)

Note that the section "Party -> Special -> Ability Availabilities" can bug in the current version of Hades Workshop. If I recall correctly, if you modify both that section and the "Interface -> UI Texts", then the HWS mod file saved cannot be loaded by Hades Workshop anymore (it randomly crashes). That's a bug that will be fixed hopefully in the next update.
That section is meant to deal with the conditions that makes abilities castable, not their casting animations.

Good luck.
 
Back again.

Is there a way to make Throw take on the element of the thrown weapon? I’ve only managed to make it inherit the element of Amarant’s weapon or the command itself.

Thanks!
 
Hello everyone, I am a new user of Hades Workshop. I would like to know more command used in the battle scripts. For example, is there any command to change the value of the trance bar and atb bar? Or even stop them?

Thanks in advance.
 
Status
Not open for further replies.
Back
Top