Users browsing this thread: 1 Guest(s)
Mandatory characters

#1
Posts: 50
Threads: 15
Thanks Received: 6
Thanks Given: 10
Joined: Aug 2013
Reputation: 2
Status
None
Can anyone explain how the game handles making a certain character temporarily mandatory? For example, before the Opera House sequence, Celes and Locke are put into the party and can't be removed. If I wanted to do this elsewhere, but with different characters involved, how would I do it?

Any help is appreciated. Thanks!
Quote  

#2
Posts: 2,549
Threads: 98
Thanks Received: 147
Thanks Given: 159
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
You have to use the Invoke party selection screen command (99), then 'force' the character(s) into the party.

example:
CC/C2F3: 99 Invoke party selection screen (1 groups) (force characters: [$0042] (LOCKE ), (CELES ))

It works like:
99 XX YYZZ

XX = how many groups (windows) to do.
YYZZ = the combination of characters, it looks like it uses some strange way to choose what combination of characters it is though... I'm not sure how $0042 = Locke and Celes.
I'm sure someone here knows though.


We are born, live, die and then do the same thing over again.
Quote  
[-] The following 1 user says Thank You to Gi Nattak for this post:
  • fedorajoe (02-15-2014)

#3
Posts: 290
Threads: 3
Thanks Received: 40
Thanks Given: 1
Joined: Apr 2012
Reputation: 9
Status
None
(02-15-2014, 05:37 PM)Gi Nattak Wrote: I'm not sure how $0042 = Locke and Celes.
I'm sure someone here knows though.

It's quite easy, actually.

$42 in hex is 1000010 in binary. If you assign each binary digit a character ID starting with zero (Terra) and count from right to left, you'll see that the 1s (the 'set' bits) correspond with the character IDs for Locke and Celes.


GET A SILK BAG FROM THE GRAVEYARD DUCK TO LIVE LONGER.

Brave New World
  Find
Quote  
[-] The following 1 user says Thank You to Synchysi for this post:
  • fedorajoe (02-15-2014)

#4
Posts: 50
Threads: 15
Thanks Received: 6
Thanks Given: 10
Joined: Aug 2013
Reputation: 2
Status
None
As usual, the people here do not disappoint. Thanks!!!
Quote  

#5
Posts: 50
Threads: 15
Thanks Received: 6
Thanks Given: 10
Joined: Aug 2013
Reputation: 2
Status
None
OK, still working on this, and I have a few more questions.

What I want to do is make characters 03 and 06 mandatory during the flight to the Floating Continent. The problem is that using the code 99 01 48 00 brings up a party select screen that is totally empty, unless characters 03 and 06 happened to already be in the active party (in which case they appear, and are in fact mandatory).

I looked at the code that runs when the party select screen comes up before the Opera House event. I see the code there to add and remove characters from the party as needed, but when I try to replicate it, I still get a blank party roster. I'm thinking that I must be missing some inobvious command/subroutine that makes everybody appear. Any ideas?

Near as I can tell, B2 9F CB 00 is the "normal" party select code, which makes everybody appear, with nobody made mandatory. I thought that maybe I could simply make an edit to this subroutine, but frankly, I've never had a good grasp of how the subroutines work.
Quote  

#6
Posts: 290
Threads: 3
Thanks Received: 40
Thanks Given: 1
Joined: Apr 2012
Reputation: 9
Status
None
It looks like the subroutine at CA/CB25 is called to identify the characters you can add to the party (CA/CBAF is also called on other occasions, but that seems to have other functions, as well as restoring the party to full and recovering their statuses).

So for your application, I'd try to call CA/CB25, empty the party, then add your two mandatory characters to the active party and call your party selection screen and see if it works. Pretty much just copy the code from CA/AB51 down to CA/AB67, changing the character IDs as needed.


GET A SILK BAG FROM THE GRAVEYARD DUCK TO LIVE LONGER.

Brave New World
  Find
Quote  
[-] The following 1 user says Thank You to Synchysi for this post:
  • fedorajoe (02-23-2014)

#7
Posts: 50
Threads: 15
Thanks Received: 6
Thanks Given: 10
Joined: Aug 2013
Reputation: 2
Status
None
It doesn't work. This is the code I'm using.

Quote:B2 25 CB 00 Call subroutine $CACB25
3F 03 01 Assign character $03 (Actor in stot 3) to party 1
3F 00 00 Remove character $00 (Actor in stot 0) from the party
3F 01 00 Remove character $01 (Actor in stot 1) from the party
3F 02 00 Remove character $02 (Actor in stot 2) from the party
3F 04 00 Remove character $04 (Actor in stot 4) from the party
3F 05 00 Remove character $05 (Actor in stot 5) from the party
3F 07 00 Remove character $07 (Actor in stot 7) from the party
3F 08 00 Remove character $08 (Actor in stot 8) from the party
3F 09 00 Remove character $09 (Actor in stot 9) from the party
3F 0A 00 Remove character $0A (Actor in stot 10) from the party
3F 0B 00 Remove character $0B (Actor in stot 11) from the party
3F 06 01 Assign character $06 (Actor in stot 6) to party 1
99 01 48 00 Invoke party selection screen (1 groups) (force characters: [$0048] (LEO ), (CELES ))

However, this results in a party select screen where no one appears, except for whichever characters were already in the party when the select screen was called. I don't get it.
Quote  

#8
Posts: 290
Threads: 3
Thanks Received: 40
Thanks Given: 1
Joined: Apr 2012
Reputation: 9
Status
None
I can't really say why it's not working. It sounds like the event bits are telling the game that there are no available characters for some reason.

I'd try checking to see if a normal party selection screen comes up (without making anyone mandatory).

I can't think of anything else at the moment without testing it myself, which I won't have a chance to do for a while. You could try looking around CA/F5A8 (the party selection routine initiated on the airships) for clues.


GET A SILK BAG FROM THE GRAVEYARD DUCK TO LIVE LONGER.

Brave New World
  Find
Quote  
[-] The following 1 user says Thank You to Synchysi for this post:
  • fedorajoe (03-01-2014)

#9
Posts: 50
Threads: 15
Thanks Received: 6
Thanks Given: 10
Joined: Aug 2013
Reputation: 2
Status
None
Just wanted to report that I figured it out!

Apparently the subroutine called during the scene at Zozo is a bit different from the one used at other times that the party select screen comes up. If I simply switch out that subroutine in favor of the one that is normally used, I get the desired result.

Just switch this:

Quote:B2 25 CB 00 Call subroutine $CACB25

For this:

Quote:B2 AF CB 00 Call subroutine $CACBAF

The result is a complete party select screen where Celes and Shadow are forced into the party.

Thanks again! It took some time to get there, but y'all pointed me in the right direction!
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite