Users browsing this thread: 1 Guest(s)
Giving Umaro's attacks to another character

#1
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 7
Joined: Feb 2017
Reputation: 25
Status
None
I'm pretty new to this forum, and in the coming days I will be asking a lot of questions. I want to start off right by actually contributing. Below is a small one-byte hack, but useful if, like me, you're trying to combine Gau and Umaro into a single character. It allows you to give Umaro's attack options to any character. This means a character will either attack with their weapon or do Charge by default. If you allow that character to equip the Rage Ring and Blizzard Orb through the FF3usME program, they will be able to randomly use Throw and Storm too.

Quote:C2/1617: C9 0D        CMP #$0D
C2/1619: F0 20        BEQ $163B      (branch if Umaro)

Change the 0D to whichever character:
Quote:Terra: 00
Locke: 01
Cyan: 02
Shadow: 03
Edgar: 04
Sabin: 05
Celes: 06
Strago: 07
Relm: 08
Setzer: 09
Mog: 0A
Gau: 0B
Gogo: 0C
  Find
Quote  
[-] The following 3 users say Thank You to PowerPanda for this post:
  • madsiur (03-02-2017), Timbo (03-25-2017), Turbotastic (03-03-2017)

#2
Posts: 152
Threads: 22
Thanks Received: 48
Thanks Given: 4
Joined: Dec 2013
Reputation: 9
Status
Auto-life
To contribute, you can also change the automatic fight command for Umaro and setup it for another character. The relevante code is:

Code:
C2/0923 BD D8 3E    LDA $3ED8,X     character id
C2/0926 C9 0D       CMP #$0D        is it Umaro?
C2/0928 F0 9B       BEQ $08C5       if true, set the fight command automatically

You only need to change the character id at C2/0926 opcode to transfer the automatic fight command to another character. It will also setup Umaro with manual selection for his commands.

Unfortunately, Umaro doesn't have available commands and the game will freeze in his turn in battle. It can be easily fixed if you give him at least a fight command BEFORE the event which setups Umaro data.  With ff3usme, select Umaro's startup data and at least give him a valid command instead of the four 'empty' commands.

I must also say that the game will freeze if any character doesn't have the fight, rage or mimic command because of bad code in specific events of the game. When in magitek armor or in the cultist tower, a specific code changes the available commands for the characters and this code expects the mentioned commands to be available. Without it, the character will be left without available commands and the game will freeze in the character turn in battle.
  Find
Quote  
[-] The following 2 users say Thank You to HatZen08 for this post:
  • PowerPanda (03-03-2017), Timbo (03-25-2017)

#3
Posts: 471
Threads: 39
Thanks Received: 6
Thanks Given: 6
Joined: Aug 2010
Reputation: 3
Status
Runic
Can you turn Umaro's attacks into weapons that do that desired effect?
  Find
Quote  

#4
Posts: 152
Threads: 22
Thanks Received: 48
Thanks Given: 4
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Quote:Can you turn Umaro's attacks into weapons that do that desired effect?

Probably yes, but you need good asm skills.

You can try to change the special effects of weapons by assembler code. The $11A9 variable triggers an adjustment function based on the C2/42E1 and C2/3DCD tables. You can change a pointer to a new function and try to recycle Umaro's functions in it. I believe the original functions needs adjustments and probably shouldn't be called directly.

You probably need to erase one of the weapons special effects and replace it for the new one. The pointers for the $11A9 tables are:

Code:
$11A9 value             $42E1 table     $3DCD table
00 ????                 -----           -----       
02 ????                 -----           -----       
04 atma weapon          $4044           -----
06 random kill          -----           $3D43
08 2x damage to humans  -----           38F2
0A drainer              $3F73           -----
0C soul sabre           $3F6E           -----
0E rune sword           $3F22           -----
10 random throw         -----           38FE
12 dice                 $4158           -----
14 valinat knife        $3F89           -----
16 wind slash           $3F9F           -----
18 heal rod             $3F7E           -----
1A slice effect         -----           388D
1C ogre onix            $3ECA           -----
1E rune sword           $3F50           -----

You should also check the C2/163B routine. It determinates what kind of attack Umaro will use. The code executes one of the four Umaro's moves at the C2/1676 table.

Code:
C2/1676: 92 16     (Throw character)
C2/1678: 0D 17     (Storm)
C2/167A: 7E 16     (Charge)
C2/167C: 1B 16     (Normal attack)
  Find
Quote  

#5
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 7
Joined: Feb 2017
Reputation: 25
Status
None
(03-05-2017, 12:50 AM)CrumpledMedal Wrote: Can you turn Umaro's attacks into weapons that do that desired effect?

Not without rewriting entire lines of code. The code goes a little like this, though it is drastically simplified.
1. Choose the Fight command (or have it chosen for you in Umaro's case)
2. Is the character Umaro? (this is the line that my code changes)
  a. No: Do a normal attack
  b. Yes: Continue on this list.
3. Add Attack and Charge to the list of options.
4. Check for Rage Ring in Relic Slot 1. 
5. Check for Rage Ring in Relic Slot 2.
6. If it is there, add Throw to the list of Fight options.
7. Check for Blizzard Orb in Relic Slot 1.
8. Check for Blizzard Orb in Relic Slot 2.
9. If it is there, add Storm to the list of Fight options.
10. Choose between all available options.

So, it's possible that you could have 4/5 and 7/8 look for a weapon in the R/L hand, and it might be possible to have all characters branch down this path, but it would be harder than simply changing a checkbox in FF3usME.
  Find
Quote  
[-] The following 1 user says Thank You to PowerPanda for this post:
  • Turbotastic (03-07-2017)

#6
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 7
Joined: Feb 2017
Reputation: 25
Status
None
Huh  I have noted an error with this that I unfortunately did not catch when I first posted it. 

All of the commands work correctly, but Throw does not animate correctly. For my test, I gave Umaro's attack options to Gau, and had Gau equip the Rage Ring. Gau still pulled off the "Throw" attack, but it animated still using Umaro's actor ($0D). (Just to make sure, I gave Umaro's sprites to another character, but it is looking for character 0D, not Umaro's sprite.) So it's clear there needs to be another 1 byte change. I just can't figure out, based on the disassembly, where. C2/1692 through C2/170A controls the Throw command. Any ideas?
  Find
Quote  

#7
Posts: 81
Threads: 12
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2017
Reputation: 3
Status
Brave
This is incredibly useful to me as I intend to make Umaro a recruitable guest character and give his slot to a different full character.
  Find
Quote  

#8
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 7
Joined: Feb 2017
Reputation: 25
Status
None
(03-25-2017, 11:26 PM)Timbo Wrote: This is incredibly useful to me as I intend to make Umaro a recruitable guest character and give his slot to a different full character.

What's your project? I'm combining the Guest Adder and MMMMMMMMagic to put Umaro in slot 30 and make 0D into Leo. I played General Leo Edition, and just wasn't content with losing Shadow.
  Find
Quote  

#9
Posts: 81
Threads: 12
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2017
Reputation: 3
Status
Brave
(03-25-2017, 11:51 PM)PowerPanda Wrote:
(03-25-2017, 11:26 PM)Timbo Wrote: This is incredibly useful to me as I intend to make Umaro a recruitable guest character and give his slot to a different full character.

What's your project? I'm combining the Guest Adder and MMMMMMMMagic to put Umaro in slot 30 and make 0D into Leo. I played General Leo Edition, and just wasn't content with losing Shadow.

My project is not ready to discuss yet in detail. It's not going to be anything truly groundbreaking or anything. It'll be a vanilla patch that fixes bugs, removes or alters tedious gameplay elements like Rage hunting, balances out difficulty drops and spikes, and broken battle elements like vanish-doom or doing 160,000 damage with the offering, genji glove and the quick spell. More importantly, I hope to wet my whistle on event editing by adding in new events that make characters like Mog and Gau relevant to the plot. I'd also to sew up a few of the games loose threads with some sidequests that add a couple characters to the party. To do that I will be moving Gogo and Umaro to the guest character slots with guest adder, mmmmmagic, etc. and putting in new characters in their place. I don't intend to allow Leo to be recruitable because his death is the reason he's cool, without that, he's pretty one dimensional and bringing him back would make his entire arc meaningless.

I was somewhat curious about Leo patch but I wholeheartedly agree, losing Shadow is simply not an option. I'm very curious how did the game reconcile his switch with Shadow musically? Did they give him a theme song? Did they change the perfectly timed ending theme events?
  Find
Quote  

#10
Posts: 152
Threads: 22
Thanks Received: 48
Thanks Given: 4
Joined: Dec 2013
Reputation: 9
Status
Auto-life
If i understood it correctly, at C2/16EE the command is set as #$24. I suspect the original designers probably setup the command #$24 as a pseudo-command for the purposes of animation.

Code:
C2/16EE: A9 24        LDA #$24
C2/16F0: 85 B5        STA $B5     (Set command to #$24)

It looks like the command animations is setup at the C1/B775 table, but command animation is outside of my range of experience and i can't give you further advice. The Umaro's throw pseudo command is executed at C1/BA5F. Perhaps, you should check this code.

In the worst scenario, you can disable Umaro's throw in the C2/1676 table. As example, you can change the Umaro's throw pointer for the charge/tackle pointer.

For reference, the pseudo-commands are below. Keep in mind the commands may not work correctly if called directly. They may need manual configuration in code to work.

Code:
C1/B7B1 88 BC   (1E)    nothing (exits)
C1/B7B3 88 BC   (1F)    nothing (exits)
C1/B7B5 0A BB   (20)    stumble when failed dance
C1/B7B7 F1 B7   (21)    roulette
C1/B7B9 E9 B7   (22)    ? (poison, regen, seizure, escape animation)
C1/B7BB 8E BA   (23)    umaro's tackle/charge
C1/B7BD 5F BA   (24)    umaro's throw
C1/B7BF B7 BA   (25)    ?
C1/B7C1 55 B9   (26)    dice animation
  Find
Quote  
[-] The following 1 user says Thank You to HatZen08 for this post:
  • PowerPanda (03-26-2017)



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite