Users browsing this thread: 1 Guest(s)
25th & 10th Anniversary Challenge

#21
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
As far as Thamasa goes, for gameplay purposes it's easiest to switch out Locke. He's had a ton of required time in your party at that point in the game, and is leagues ahead of other characters for magic growth. He also has a storyline reason for leaving (going with Celes). Also, all of his lines in the Thamasa segment are super-generic, and can easily be attributed elsewhere by just changing the name of the person who said them. I did this in Divergent Paths when I swapped out Locke for Leo.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  
[-] The following 1 user says Thank You to PowerPanda for this post:
  • C-Dude (12-29-2019)

#22
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
I have a question about event code $40 (Assign Properties X to Character Y).

What all does this entail?  It sets them back to their starting equipment (which is problematic if you don't unequip the character first) and sets the commands and stats to the character profile in question.  But does it clear the character's magic list?

I want to temporarily assign Leo's properties to Banon's character slot, to do a double-fakeout with the player in Thamasa (that Banon will no longer be playable and that Leo will be).  This will obviously erase any esper bonuses the player has gained with Banon... which might not be a problem because I'm thinking of scrapping them anyway.  But my big concern is that it will clear Banon's magic list.

Am I fretting over nothing? Has anybody else done something like this with their project? Should I just try it and see what breaks?

EDIT: Scratch that, won't work.  If I make him unequippable, he won't be able to re-equip anything because of character flags.  Also, the game does not remember Player Input names when a new name is assigned to an actor. Okay, I'll do something else!

EDIT EDIT: I've had a stroke of brilliance! If actors E and F are set to be equippable, then they can use any item that is flagged with the Merit Award.
If I remove Relm's 'brush (merit award)' and 'palette (requires merit award)' setup (a comprise, to be sure), then I can set up the Merit Award bits to establish Leo's fake 'equippable' list.
Here's the really brilliant part, though: I'm going to disguise Actor 7 (formerly Banon) as Leo (change the graphics and palette) while silently placing Actor E into the party. This will give the illusion that Leo is in the shop (though if the player is paying attention, there'll be no party arrow beneath him) until he perishes (wherein I can change the graphics and palette of Actor 7 back to Banon).
  Find
Quote  

#23
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
1. The shop graphics will not respond to graphics assignment. The only real way to change the shop graphics is to replace the appropriate sprite-sheet in the rom. In order to make Leo show up in shops in Divergent Paths, I have had to actually swap Leo's and Umaro's sprite sheets, then edit all of the events and battle events to point to the correct sprite. It took me almost a month to find all of the addresses I needed to edit. I would NOT recommend going through this effort just to "be clever".
2. Magic lists are by profile (properties X), and not by character slot (character Y). If you, for example, moved Locke from $01 to $0E (though I don't know why you'd ever do that), his magic list should travel with him. Then again, I've been working so long with the MMMMMagic patch that I don't know if the vanilla rom operates the same way. I'm assuming it does.
3. The Merit award as a non-removable relic is an interesting idea. In addition to setting profiles (X) to equippable, you'll also need to make edits to the C3 bank so that the Actor Slot (Y) doesn't buzz the character out from the equip menu. If you search for threads on making Umaro equippable, you'll find the line of code you need to edit. But aside from that, it just might work.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#24
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
(12-30-2019, 01:25 AM)PowerPanda Wrote: 1. The shop graphics will not respond to graphics assignment. The only real way to change the shop graphics is to replace the appropriate sprite-sheet in the rom. In order to make Leo show up in shops in Divergent Paths, I have had to actually swap Leo's and Umaro's sprite sheets, then edit all of the events and battle events to point to the correct sprite. It took me almost a month to find all of the addresses I needed to edit. I would NOT recommend going through this effort just to "be clever".
2. Magic lists are by profile (properties X), and not by character slot (character Y). If you, for example, moved Locke from $01 to $0E (though I don't know why you'd ever do that), his magic list should travel with him. Then again, I've been working so long with the MMMMMagic patch that I don't know if the vanilla rom operates the same way. I'm assuming it does.
3. The Merit award as a non-removable relic is an interesting idea. In addition to setting profiles (X) to equippable, you'll also need to make edits to the C3 bank so that the Actor Slot (Y) doesn't buzz the character out from the equip menu. If you search for threads on making Umaro equippable, you'll find the line of code you need to edit. But aside from that, it just might work.

Yeah, I started to suspect #1 after I made the post... which is a bummer because I wanted to change several character graphics in the World of Ruin and the shops will not reflect that.
I found the relevant block at C3/6D79 of the disassembly; I was able to inject a subroutine that forces a graphic change (tiles only, not sprites) based on an event bit being set (It basically checks the actor number, then checks the event bit, and then loads a different actor number if both are true).  Unfortunately because they're drawn in pairs it changes two characters at a time; I couldn't get it to selectively change a single sprite.  I tried in vain to tweak the C3/6d79 subroutine to only draw one shop actor at a time, but I had no luck; modifying C3/6d79 itself ended in scrambled tiles and repointing the shop to C3/6ce9 (one pose, used by the char select menu) denied me an adequate insertion point for my subroutine.  There might still be some hope there, but I'm struggling to work it out; I think I might need to appropriate an unused ram byte like $1EE0 and make the loop more complex.

As for #2, it was a silly thought that I was going to assign profile $0F to actor $07 temporarily.  I learned that the game does not remember player-entered names, so were I to change $07's name to $0F and then back to $07, I'd either have to invoke another naming screen (which is weird and obtuse) or the player name input would be erased.  Here I was worried that the spell list would get wiped by doing that!  Oh well, I'm still pounding my head on #1 for now, perhaps there's yet hope for the idea.

Regarding #3, I learned that the game by default treats all guests as the same class (if you happen to load two different guest profiles, it uses the last one loaded). If that profile is $0E, then by the arrangement of the data an equippable guest treats the "Spec active if Imp" flag on equipment as their equip-able flag.  Likewise, $0F behaves the same way with the "Heavy Gear" equipment flag (the one the Merit Award enables).  I'm sure Hatzen knew about this when he wrote Guest Adder (which I haven't used or examined but of which I am peripherally aware), but I was invigorated to learn it myself.  At the moment I'm only using the Merit Award flag for four pieces of equipment, so if I were to approach that in another fashion (perhaps moving the "Requires Merit Award" functionality to an unused bit, as I recall you mentioning in a different thread), my presentation could be made more elegant.

Alas, all of this is a big tripping point right as I pull into the last phase of my event editing... perhaps I should put it all off for a version 4.
  Find
Quote  

#25
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(12-30-2019, 05:14 PM)C -Dude Wrote: Regarding #3, I learned that the game by default treats all guests as the same class (if you happen to load two different guest profiles, it uses the last one loaded). If that profile is $0E, then by the arrangement of the data an equippable guest treats the "Spec active if Imp" flag on equipment as their equip-able flag.  Likewise, $0F behaves the same way with the "Heavy Gear" equipment flag (the one the Merit Award enables).  I'm sure Hatzen knew about this when he wrote Guest Adder (which I haven't used or examined but of which I am peripherally aware), but I was invigorated to learn it myself.  At the moment I'm only using the Merit Award flag for four pieces of equipment, so if I were to approach that in another fashion (perhaps moving the "Requires Merit Award" functionality to an unused bit, as I recall you mentioning in a different thread), my presentation could be made more elegant.

So what's going on is that the Imp and Merit Award flags are actually stored on the "which actor can equip this" bytes. They take up bits $40 and $80 of the second byte. As part of the full roster hack, Hatzen wrote a new routine that uses 2 unused equipment bits for the Merit Award and "Active if Imp" flags, allowing actors $0E and $0F to use $40/$80 to have an actual equipment list. Check the download on the 3rd page of this thread:
https://www.ff6hacking.com/forums/thread...age-3.html
In the zip file, I put in the source ASM for everything that was done. You will want the file called "ff6re_10_edit_noshop.asm".


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  
[-] The following 1 user says Thank You to PowerPanda for this post:
  • C-Dude (12-30-2019)

#26
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Menu actors are the pits!
I'm running into a problem; I've got a character who can optionally put on the green soldier outfit. I had figured that since the shop menus didn't update, the party select menus (Lineup) wouldn't either. But they do. And the problem is that the soldier in that menu is using the brown palette instead of the green palette (or the original character's palette, before it was changed by events).

The palette in question is palette 1. The palette I want to display in this menu is palette 0. Clearly it's hardcoded somewhere, but I can't find where the game lists it. The only palette list I found was the battle palettes: C2/CE2B-C2/CE44, but changes to these did not impact the menu. I also looked at 'Handle Soldier' for the save menu, but it points to actor $16 which doesn't have its own graphics pointer in the $CFF8E5 table.

The character in question has to wear a new recruit's uniform, not an established troop's uniform. I suppose it's possible to rework the story and NPCs (and battle palettes) so that brown is recruit and green is established trooper, but if there's a way to just change this palette from 1 to 0 I would prefer it. No established trooper ever appears in my menus, so the 'Green trooper/brown trooper' parity need not be maintained.

The subroutine for loading actor palettes is at C3/6cc7, but it doesn't point to any tables; it clearly decides which palette to grab from $ED6300 in a manner I cannot understand.

Does anybody have any recommendations for how to deal with this?
  Find
Quote  

#27
Posts: 2,548
Threads: 98
Thanks Received: 147
Thanks Given: 156
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Pretty sure it is this one:

Soldier
D8/EB58 - Standing
02 80 01 E0 37 80 11 E2 37

37 = palette 1.
35 = palette 0.
Change both 37 to 35.

OAM info

I've been holding on to this OAM document that B-Run put together a long time ago, I thought he posted it on the site here, but I can't seem to find it anywhere or on the wiki, so here it is.

I thought it'd be the 'Soldier 2' one that would need altering, but doesn't seem to be from my brief test.


We are born, live, die and then do the same thing over again.
Quote  
[-] The following 2 users say Thank You to Gi Nattak for this post:
  • C-Dude (01-11-2020), madsiur (01-11-2020)

#28
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
This is very VERY useful information!  Thank you GiNattak!

...I kinda already changed the game to deal with the brown palette (color-coded the soldiers by general: Green is Leo, Blue is Celes, Red is Kefka), but I will keep this information on hand in case more menu shenanigans come up.

EDIT: Interesting fact, Locke's Soldier Disguise battle graphics are hard-coded somewhere that has not yet been documented.  I didn't find the location but did find that it's tied to Event Flag $103 (wearing officer disguise), and NOT to position $17 in the battle palettes/battle pointers tables ($C2CE2B and $C2CE45 entry 24).  By changing all 30 calls to event flag $103 to event flag $0FF (unused), I was able to circumvent this override.
To be clear, this is about Soldier 2's battle graphics, not the menu OAM which is well-documented in C3.
Thought I'd share since it kinda shows that Soldier 2 is more work than he's worth... if you're using disguises in your hack you should steer clear of him and event flag $103.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite