Users browsing this thread: 1 Guest(s)
Final Fantasy I - Redux

#11
Posts: 3,561
Threads: 261
Thanks Received: 636
Thanks Given: 254
Joined: Oct 2011
Reputation: 58
Status
Faith
(03-03-2013, 05:32 PM)Angelo Wrote: You can assign properties, sprites and names to any character as long as the character has not permanently joined the party. If a character has permanently joined the party, then it becomes impossible to do so.

What does differ from a permanent joining and a temporary one ? I believe the only thing is a presence event bit that is set when the character join permanently so he appears on the airship or in the selection screen. Other than that it's the same command (3F) that is used to put a character in a party... Are you saying that the game nullify the graphics, palette and properties event command when a certain event bit is set for that character?

Edit: What if you remove the character from the party/crew (clearing his presence bit), change his properties and put him back in? Has anyone tried that?
  Find
Quote  

#12
Posts: 1,261
Threads: 250
Thanks Received: 12
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
(03-03-2013, 02:28 PM)Ghost XIII Wrote: I will definitely be considering using your alternative tileset, but that kind of cosmetic stuff will probably be left to last.

That is something you should directly consider now opposed to later as it directly affects your level design process. I should know, I made the tileset lol. What I mean is you cannot just apply my tileset patch and expect it to be peachy, you'll need to do some basic level design modifications to get it working as intended. If you apply it early on and work with the tileset then instead of later, you will not have to do any modifications later.

It is ultimately your choice however.
  Find
Quote  

#13
Posts: 831
Threads: 41
Thanks Received: 17
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
(03-03-2013, 06:08 PM)Ⓐ Mᴀᴅsɪᴜʀ Ⓐ Wrote: What does differ from a permanent joining and a temporary one ? I believe the only thing is a presence event bit that is set when the character join permanently so he appears on the airship or in the selection screen. Other than that it's the same command (3F) that is used to put a character in a party... Are you saying that the game nullify the graphics, palette and properties event command when a certain event bit is set for that character?

Edit: What if you remove the character from the party/crew (clearing his presence bit), change his properties and put him back in? Has anyone tried that?

I cannot remember about the properties. I tried before giving gogos sprite and his/her/its name to Gau. Mike and I figured that once gau has joined the party, you cannot give him anyone elses name or sprite. Maybe Mike remembers if the properties can be changed, since I tried this for him in the fire house. It probably has to do with the presence bit as you mentioned...and no, I have not tried the last idea you posted.
Quote  

#14
Posts: 121
Threads: 11
Thanks Received: 10
Thanks Given: 0
Joined: Jan 2013
Reputation: 7
Status
None
Just to confirm, what Madsiur suggested about removing the character from the party and then replacing them completely works. I just did that to successfully switch Terra into a second Locke.

Update: I completed the job selection system which works almost perfectly, except for one major hitch. If you use more than one of the same actor(s) in the active party when you enter a battle it does not load the different characters, but instead loads a copy of the character.

So for example, if I have put two thieves in my party (Thief replacing Locke's actor data), one in party slot 1, and the other in slot 2. I can have them with different stats outside of battle and equip them with different equipment, etc. But when I enter battle the game loads two copies of the Thief in the highest slot. I'm assuming the issue with this is that the subroutine for loading battles loads the actor data instead of information from the active party, so altering the actor changes both. Is it doable to alter this subroutine to load the active party members instead of the actors? I've got a few ideas myself on how to fix this, but if anyone knows for certain and is willing to point me in a general direction that would be greatly appreciated.
  Find
Quote  

#15
Posts: 3,561
Threads: 261
Thanks Received: 636
Thanks Given: 254
Joined: Oct 2011
Reputation: 58
Status
Faith
(03-03-2013, 10:55 PM)Ghost XIII Wrote: So for example, if I have put two thieves in my party (Thief replacing Locke's actor data), one in party slot 1, and the other in slot 2. I can have them with different stats outside of battle and equip them with different equipment, etc. But when I enter battle the game loads two copies of the Thief in the highest slot. I'm assuming the issue with this is that the subroutine for loading battles loads the actor data instead of information from the active party, so altering the actor changes both. Is it doable to alter this subroutine to load the active party members instead of the actors? I've got a few ideas myself on how to fix this, but if anyone knows for certain and is willing to point me in a general direction that would be greatly appreciated.

The way battle character are determined is with the active party. You should look at the routine starting at C2/2F2F and more precisely at C2/2F8C for a "normal battle" (outside shadow at colleseum and the final battle). This is where the battle characters are set. I think this is where the magic happens, as routine $30DC pulls the SRAM actor number ($1600):

Code:
C2/2FA6: 20 DC 30     JSR $30DC
C2/2FA9: 9D D8 3E     STA $3ED8,X  (save "which character it is")

After that routine C2/27A8 assign all actor attribute to battle variables (from $16XX to $3XXX). From what I understand, the current party actors attributes only exist in the SRAM so I think it's the only place they can be loaded from...

Edit: What is actually happening is that the routine does a 16 times loop so the data in the highest slot will loaded because it's the 2nd time the good actor number will be found. It's an overwriting.
  Find
Quote  

#16
Posts: 121
Threads: 11
Thanks Received: 10
Thanks Given: 0
Joined: Jan 2013
Reputation: 7
Status
None
Sorry for the lack of response, been pretty crazy lately. This is some interesting stuff here Madsiur. Thanks for pointing out the areas of code pertaining to loading battle information.

I see where the problem is, and I think I have a few ideas to work around this, but I'm not sure if my plans are going to work. If I manage to find anything which works conclusively I'll be sure to share it, if this is of interest to anyone.

Update:
So it is seriously looking like what I was hoping to achieve cannot be done here, it looks like you are right Madsiur that the party data only exists in the SRAM and is not saved or accessible from anywhere else. This may mean that you will only be able to have one of each job class accessible in this hack.

Additional edit for kanbei as cyan:

For changing sprites by talking to NPCs all you need to do is create a simple event, here's what I did:
Code:
XX = Character Slot (31 if top character in party, otherwise Character ID number)
YY = Actor ID (00 = Terra, 01 = Locke, etc.)
ZZ = Palette (#0-5)

3F YY FF //Removes actor from party
40 XX YY //Assign properties, if you are changing actor properties
37 XX YY //Assign character graphics (Which sprite sheet)
43 XX ZZ //Assign character palette
3F XX 00 //Places character back in active party
FE // Return

Now I'm doing this partially from memory, but with that character change gif that you saw there was also a rename screen that was called upon when changing the character's attributes (I left it out because it made things look choppy), which involves the lines "98 00 96 5C" after the "3F" line, that will call up the rename screen and refresh. I think if you were to skip that part out you may still need a function to refresh the character. Also please note that this function was written for having a permanent and unchangable four character party, so I don't know if the line to remove and place characters back in the party will need to be tweaked or not or if it will muck up your game, I never toyed around with that specifically. I suppose you could err on the safe side and if you use this function just make sure it's in a place where a specific character must be present or a function that only works with a specific character present.

Sorry that was so long and blathering, it's a bit late and if I wrote anything poorly please message me and I'll clarify or rephrase.
  Find
Quote  

#17
Posts: 51
Threads: 0
Thanks Received: 0
Thanks Given: 2
Joined: Oct 2012
Reputation: 0
Status
None
I see. Thank you yah.


"That settles that! It takes brains to win!"
Sonja Advance War 2


Objection!
  Find
Quote  

#18
Posts: 121
Threads: 11
Thanks Received: 10
Thanks Given: 0
Joined: Jan 2013
Reputation: 7
Status
None
Yes folks I am still working on this, hard to believe right? I have a beta version map of Cornelia and Cornelia Castle, the starting town.
I'm hoping once I get Cornelia, Cornelia Castle, and the Chaos Shrine completed to release a demo.

Cornelia Town: https://www.ff6hacking.com/misc/imgshk.png
Cornelia Castle: https://www.ff6hacking.com/misc/imgshk.png

  Find
Quote  

#19
Posts: 174
Threads: 23
Thanks Received: 0
Thanks Given: 6
Joined: Feb 2011
Reputation: 0
Status
None
I just stumbled across this project and wow am I excited! i've always thought it would be great to incorporate the original FF into the beloved FF6 somehow. Is your progress up to date on your first post? Do you already have your sprites for the different classes finished?

Hope this thing keeps going, it's fantastic!
  Find
Quote  

#20
Posts: 484
Threads: 62
Thanks Received: 15
Thanks Given: 29
Joined: May 2011
Reputation: 6
Status
Regen
Very nice job on the maps. Smile


[Image: jce3000gt_md.png]

[Image: jce3000gt.jpg]
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite