• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 23, 2024, 06:40:01 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!


Question about ability "Control"

Started by Ruinom, February 01, 2014, 09:27:49 am

Ruinom

February 01, 2014, 09:27:49 am Last Edit: February 10, 2014, 09:53:50 am by Ruinom
I want to change "Invite" to "Control". This ability is known as blue mage's one.
To realise the skill, there are two requirements.

When an enemy is invited,
1)the unit is controllable.
:v/: 2)the unit does not join.

I have a patched data so I searched codes and addresses.
But I could not find it.
Does somebody know that?
please help me. :)

Choto

Do you want to use Control as a status effect to replace Invite?

If so, there is a file called Require.Out that should have the routine that makes units join after battle. You would have to find and edit that routine. I could tell you how but it would take some ASM work and a debugger.

Ruinom

Thank you so much!! :mrgreen:

Actually I have file changed from Invite to Control, but It is hardcoded.
So, I'll analyse it. If I succeed ASM work, I would reply again.

Choto

Do you know how to do ASM work? If so, 0x801924cc is unit data in battle, if you set a breakpoint on the group of status that has invite and end a battle with an invited enemy, the debugger should show you where the routine is in require.out. I think in RAM its around 0x1c0000 or higher, I could be wrong though.

Ruinom

February 03, 2014, 06:51:20 am #4 Last Edit: February 03, 2014, 07:03:23 am by Ruinom
How kind you are!! :)
Thank you for replying regardless of my smattering of English!!
Maybe no one explain that for me in japanese comunication site.

Certainly I know how to do ASM work just a little.  But I'll serch the code from patched require.out.
I want to reproduce it in WOTL.

Choto

I know going between japanese and english is quite difficult, so no worries :P

Instead of searching, i just used the debugger real quick since it's much easier to do. The breakpoint hit at 0x1c4978. If you make the branch command after that function unconditionally it should do the trick. To get the Require.out location you do 0x1c4978 - 0x1bf000 = 0x5979.

Ruinom

Sorry I ask a rudimentary question.
What is debugger? Is it debug mode?

And now I have only Japanese ver. so please let me confirm ASM.
I will write an ASM list tomorrow.
Today I don't have enough time.
See you.

Angel

A debugger is a tool that shows things like what code is being run, what's being stored, etc.
pSX 1.13 (psxfin.exe) has a decent debugger available.
  • Modding version: PSX
* Angel should quit being a lazy bitch
<@Elric> I agree to that as well

nyanyame nyanyajuu nyanyado no nyarabide nyakunyaku inyanyaku nyanyahan nyanyadai nyannyaku nyarabete nyaganyagame
At the end of the day, are we not all trapped inside lemons?

Xifanie

I might be able to help with converting code offsets from the US to Japanese version (v1.1) since I own both versions.

It shouldn't be anything difficult, just hex search for the same exact codes except for j/jal.
  • 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

Ruinom

February 06, 2014, 05:36:58 am #9 Last Edit: February 09, 2014, 07:11:01 am by Ruinom
Sorry for the late relpy.
I found changes between FFT and patched FFT handy for 0x5979.
So I think that there is the answer in following changes.
Is there a code that Choto found?

1)
00005060   00021040   sll      v0,v0,$1

00005060   00021043   sra      v0,v0,$1

2)
000050B0   00021040   sll      v0,v0,$1

000050B0   00021043   sra      v0,v0,$1

3)
00005134   10400042   beq      v0,zero,$5240

00005134   10000042   beq      zero,zero,$5240

4)
00005248   10400045   beq      v0,zero,$5360

00005248   10000045   beq      zero,zero,$5360

5)
00005490   1040004B   beq      v0,zero,$55c0

00005490   1000004B   beq      zero,zero,$55c0

6)
000055C4   14400045   bne      v0,zero,$56dc

000055C4   10000045   beq      zero,zero,$56dc

To Toshiko
Thanks telling me about a debugger.
I'll introduce it right away!

To Xifanie
Thank you for repiying.
I post several codes. So we can know offsets.


I think this forum are much friendlier than people in 2ch.
Thank everyone!

Choto

I'm a bit confused on what you posted Ruinom.. what patched FFT are you referring to?

Lets try this, open up a hex editor like HxD and open the Require.out file. Press control F for the search window and search for this hex:

59 00 02 92 00 00 00 00 40 00 42 30 3E 00 40 10

Make sure you're searching for Hex Values instead of Text or anything else. If you find it, awesome. Then replace it with this:

59 00 02 92 00 00 00 00 40 00 42 30 3E 00 00 10  (you'll notice only one of the last bytes changed)

And that should be step one of your hack. Otherwise, if Xiffy could find this string of commands:

00005978: 92020059 lbu r2,0x0059(r16)      load status
0000597c: 00000000 nop
00005980: 30420040 andi r2,r2,0x0040
00005984: 1040003e beq r2,r0,0x00005a84      branch if not invite

Xifanie

I guess the branches ARE different.

I hope this isn't bad news, but I forgot this was about WotL... I only have the PSX version. Toshiko said that the game is simply being emulated on ports, so I'm betting on that and hoping the data didn't move.

REQUIRE.OUT
0x80005954
3B004010 → 3B000010

String of hex for reference:
5900029200000000400042303B004010
  • 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

Angel

Yeah, WotL has a complete ROM image of the Japanese (I think 1.1) version of FFT in it. I'm not sure if editing that image will produce the desired effects, though, since it's still treated as a PSP game and not run on the POPS emulator. Likely needs completely different ASM.
  • Modding version: PSX
* Angel should quit being a lazy bitch
<@Elric> I agree to that as well

nyanyame nyanyajuu nyanyado no nyarabide nyakunyaku inyanyaku nyanyahan nyanyadai nyannyaku nyarabete nyaganyagame
At the end of the day, are we not all trapped inside lemons?

Choto

Weeell shit lol... i didn't realize it was WOTL. I have no clue then.. I haven't touched wotl at all.

Glain

I'm pretty sure they recompiled most of the PSP version code into BOOT.BIN/EBOOT.BIN.  It contains lots of PSP commands that the PSX can't support (Newer CPU instructions up to MIPS32R2, FPU calls, PSP VFPU calls).  I think some of the data is still in the same place within fftpack, but code is a different story... even similar algorithms use different compiler conventions, not to mention nothing's in the same place!
  • Modding version: Other/Unknown

3lric

Quote from: Glain on February 06, 2014, 10:12:39 pm
I'm pretty sure they recompiled most of the PSP version code into BOOT.BIN/EBOOT.BIN.


This is correct, Xif had to crack open BOOT.BIN to find the new worldmap instructions used for things
like the Agrias BDay event, as they were not in the WLDCORE.BIN used in WotL. BOOT.BIN also contains
some ATTACK.OUT stuff as well.

I'm assuming there is something graphic related stored here as well, since in the .ini file for the Japanese
version of FFTEVGRP you can see that it was originally supposed to include BOOT.BIN. However the new
WotL EVTCHR are still in EVTCHR.BIN, which was just expanded slightly.

Strange Square is strange.
  • Modding version: PSX

Ruinom

February 08, 2014, 06:43:26 am #16 Last Edit: February 09, 2014, 01:45:31 am by Ruinom
To Choto
Sorry I mistook. The patch I said didn't have desired function.
And it is Japanese patch so you can't use it. I'm so sorry!! :oops:
But I could find Choto's code.

Well... I think it is too difficult for me to reflect the code to WOTL. :cry:
I do not give up.

To Xifanie
Thank you for translating.

To Toshiko
Your support was very good. And is your icon Sailor Jupiter?
It's cool!

To Glain
Thanks for commentary about EBOOT/BOOT.BIN.
From now on I'll try searching the code in boot.bin.

To Elric
Are you YoungMaster McDohl? I love Suikoden.
Changing graphic file can reflect the game play.

Thank you very much.

Angel

Quote from: Ruinom on February 08, 2014, 06:43:26 amTo Toshiko
Your support was very good. And is your icon Sailor Jupiter?
It's cool!

It is! I've been watching Sailor Moon recently with Xifanie, and it seemed appropriate. Thank you!
  • Modding version: PSX
* Angel should quit being a lazy bitch
<@Elric> I agree to that as well

nyanyame nyanyajuu nyanyado no nyarabide nyakunyaku inyanyaku nyanyahan nyanyadai nyannyaku nyarabete nyaganyagame
At the end of the day, are we not all trapped inside lemons?

3lric

Quote from: Ruinom on February 08, 2014, 06:43:26 am
To Elric
Are you YoungMaster McDohl? I love the title.


Indeed the port is Tir McDohl. The portrait was wonderfully done by Twinees.
Suikoden is my favorite series of games. :P
  • Modding version: PSX

Timbo

Quote from: Elric on February 08, 2014, 10:42:45 pm
Indeed the port is Tir McDohl. The portrait was wonderfully done by Twinees.
Suikoden is my favorite series of games. :P
Mine too!
  • Modding version: PSX
  • Discord username: Timbo