Author Topic: Quadramagic issue  (Read 3002 times)

cloudiar

  • *
  • Posts: 202
    • View Profile
Quadramagic issue
« on: 2021-02-23 20:40:48 »
Hi guys

Does anyone know the access memory to the multiplier Quadramagic"?

I consider it to be cheat, I would like change the multiplier to x3 or x2  ::)

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #1 on: 2021-02-24 17:20:10 »
I think what you're looking for is at 0x5CA830 (in the '98 1.02 Eng version). The value of the byte at that location is 3. That is attached to a command that is added a value that's initialized to 1. It might be what handles the count of quad magic.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #2 on: 2021-02-25 01:18:31 »
Are you talking about ff7.exe? (98 1.02)

I use it, but am I doing something wrong? I can't find it, the value is out of range, the last offset of exe is 0059C3F0.    :?

Thanks in advance!
« Last Edit: 2021-02-25 11:07:08 by cloudiar »

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #3 on: 2021-02-25 13:15:16 »
Yes, that was a virtual address, not a real address. The real address would be 0x1C9C30. The value of that byte should be a 3.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #4 on: 2021-02-25 16:20:46 »
Oh, i didn't think it was virtual memory.

I congratulate you, this works! and being only such a singular value it will not be conflictive, now I only have to change x4 to cut x3 (I think this is much more difficult), but the rest works really well.

NTFC1 I'm going to give you credits not only for this, but for all the documentation and clarifications from years ago, obviously also for your applications, thanks again.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #5 on: 2021-02-25 20:46:48 »
The problem you're going to run into with x4 cut is that it is a single animation doing all four cuts. That calls the "display damage" script four times. If you want to reduce it you'll have to remove at least one of those codes in each of the characters' **AB files.

And the address to change that is 0x5C9F54 (real addy: 0x1C9354). It's a straight number (04) that determines the number of damage calculations to perform for that one action.
« Last Edit: 2021-02-25 20:52:41 by NFITC1 »

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #6 on: 2021-02-26 10:39:09 »
The AB files are part of the information that includes the parts of the "model", correct?

I imagine this can be a good job, it really hurts me to change, how about cutting x3 and x5? possible?

Nearby in AB files there will also be the cut x2 I suppose, if you tell me the respective memory of x2 I will try to prepare both, although x5 would be secret.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #7 on: 2021-02-26 12:52:04 »
The AB files contain the animation scripts, which is what you’ll want. I don’t remember which script runs the 4x cut anim though. I’d have a hex editor and kimera open and find the animation that corresponds with that command.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #8 on: 2021-02-26 13:11:18 »
You say 0x5C9F54 (real addy: 0x1C9354) is the address I need to apply x3 cut, also edit in AB so that it only executes 3 times.

I'm working on a huge feature and can't look at it right now, but sure I will soon, I will look for the corresponding animation in kimera and try edition.

If you have the offset address applied by x2 then in that same attempt I will try to change both, I will tell you the results again.

Thanks!  :)

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #9 on: 2021-03-06 11:06:37 »
I have been able to investigate but without success, the AB files that you comment, I'm not sure what they are, if I look at animations in kimera I get the .char ones, and in battle, cloud for example, supposedly the file that contains animations is "rtda" , but there I have not found anything.

The command for "cutx4" is 27 (1B), its animation 32 (20), but I have not been able to find hexadecimal strings with 1B and 20, I have not followed a long time because I do not know if it is the correct file.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #10 on: 2021-03-06 18:17:06 »
You're looking for animation "scripts", not the animations themselves (though you might want to investigate those as well). Those are in RTAB (for Cloud). I wrote this page for the details of the file. It's not super complete, but it's got info that it needs.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #11 on: 2021-03-09 04:49:19 »
In the second attempt I have located at least the part involved in cut x3, after applying the hext the only problem was that the character at the end (after 3 strokes) stayed still without coming back, I thought a bit and then looked on the page you mentioned, I found something that is what I need to search, I speak of opcode FA (Return actor to previous position).

So I started looking for the FA of the rtab, I sensed that they would be below, so I did several tests and I believe that the code applies FA after cutx4 at the end of offset 00000380:

03 24 9E 00 E5 BD B0 04 00 00 F0 F7 03 29 1C FA (assumed place where it ends).

Try optimizing it, until you do with the following changes:

03 24 FA FA FA FA FA FA FA FA FA FA FA FA FA FA

I have not tried too much, but the x3 animation seems to be done correctly, and the combat continues normally, surely if you test you will say that there are some instructions left over, but this is the shortest solution I have tried, I imagine that it "swallows" the script x4 and instead executes FA at some point, returning it to the starting position.

I'm not sure this is final, but maybe with your help I'll know if I should continue, the AB animation files of the other playable characters are localized, right? I guess changing those would suffice.

This is all I can say, your link was useful to be able to locate it.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #12 on: 2021-03-09 20:12:38 »
That's actually parts of two different scripts.

Code: [Select]
24:
FC F0 D8(00, 001A) 1A D1(04B0, 0000, 04) F0 1B F7(01) 1E 9E
25:
E5 BD(04B0, 0000) F0 F7(03) 22 9E
26:
E5 BD(04B0, 0000) F0 F7(03) 24 9E
27:
E5 BD(04B0, 0000) F0 F7(03) 29 1C FA F0 1D E5 EE

This is the entirety of Cloud's 4xCut animation script. The game just knows to play these four animations in succession. I would replace the bytes in the list script from the BD to the 29 with a C9 or something like that which does nothing. You'd have to change the animation of animation 36 (24h) or 28 (1Ch) to look like they go together.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #13 on: 2021-03-10 02:43:02 »
I imagine that you are only talking about changes in offset 00000270, for some reason the hex values ​​are reversed (the ones you comment on), I don't know if it has the same relationship as the mega drive roms where the header is normally reverse, so I don't have to change anything in offset 00000380?

I have tried changes in 00000270 as you said, but I do not understand well for the above reasons, and because I usually get very confused by hex (and xD opcodes), I made these changes:

1A 00 1A D1 B0 04 00 00 04 F0 1B F7 01 1E 1C FA
1A 00 1A D1 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 "FA" FA
(Here you say that is where I have to cheat, but if not I run "FA" so that it returns when it will then?)

I made changes from BD to the 29 such with C9 (null) as you said, and then 1C for FA (I suppose the latter is wrong)

I think I did something wrong because it does not work, (it does not go back as before) I suppose that what worked for me (in offset 00000380) can create an error in the game and your solution is correct, but I am not doing this well, excuse me.
« Last Edit: 2021-03-10 02:45:11 by cloudiar »

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Quadramagic issue
« Reply #14 on: 2021-03-10 16:26:41 »
The 27 is the 0-based decimal index of the animation script and is not directly related to the address of the script in the ab file you want to change. No changes should have been done to the 0x270 location (that's a few bytes into animation script 36 which controls Mug). The 24 script executes, then 25, then 26, then 27.

24 begins at 0x358
25 begins at 0x36C
26 begins at 0x378
27 begins at 0x384

my recommendation is to change the bytes in addresses 0x385-0x38D to C9s. C9 (and B2) have no function so strings of them get passed over in a single frame. In fact, B2 has no purpose as opposed to C9 which is a jump destination. Let's change them to B2s instead. Functionally there's no difference, but purposeless is "safer" than functionless (there's a lecture about purposeless vs functionless in there, but such a lecture would be worthless in this scenario :D ).

Code: [Select]
0x380:   03 24 9E 00 E5 BD B0 04 00 00 F0 F7 03 29 1C FA
 -change to-
         03 24 9E 00 E5 B2 B2 B2 B2 B2 B2 B2 B2 B2 1C FA

If you don't like the way that looks, you can revert 0x38D to 29 to play that last swing animation, but everything else should stay NOP'd.  This line of bytes translates to:

03 - this is from the previous script that triggers the damage number indicator
24 - play the 0-based hexadecimal animation index 24 as defined in the rtda file
9E - effectively pause the script processing until all 3D effects have completed (animations in this case)
00 - This is an alignment byte inside the file so the scripts start on even numbered bytes
E5 - [Here begins script 27] This recenters the orientation (not position) of the actor based on the battle mode (normal, side attack, pincer, etc)
BD B0 04 00 00 - this is positioning code for the next effect code
F0 -  this creates the foot dust particles at the coords specified in the previous code
F7 03 - this triggers the damage number indicator in [03] frames
29 - similar to 24, but index 29
1C - similar to 24, but index 1C
FA - this resets the actor's position to the default coordinates for their slot in the current party and battle mode.

I think this is all the info you need to make the changes in rtab you want. For the other actors' AB files, look at the word value at 0x0D4. That will tell you the beginning address of the script I just showed you to edit.

cloudiar

  • *
  • Posts: 202
    • View Profile
Re: Quadramagic issue
« Reply #15 on: 2021-03-12 16:09:01 »
Hello man!

I'm sorry I'm not familiar with opcodes, but with this explanation I understand everything better, thank you for offering me the time to do it! I will try to do all of them without bothering you again (haha), but doing it correctly will cost me more time, I am willing to try it, you know that I have a huge job with the project, but at some point I hope to be able to do it.

Even if you don't need them, I will contact you privately with all this (if I am able to finish it without errors), and once I have finished the project I will make available to the community additional features that I have added in my game.

Thanks for staying here, master.