Users browsing this thread: 1 Guest(s)
Portraits in Dialog Boxes (Notes)

#1
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
I have never really played the GBA port of Final Fantasy VI because of the SNES version, however, I saw that in that game they have portraits in dialog boxes. This is thanks to BlackTelomeres in his patch released.
An example:
[Image: imgshk.png]


This thread is meant to be my notes on trying to get it to work for the SNES version. It seems like it'd be as simple as editing the dialog boxes window width so it is able to fit a portrait in it; in essence, scrunching up the text to fit a portrait.
I want the portrait to work similar to how spell icons work. Similar to how icons in names, I want it to be customizable.
Sword icon next to it's name work, or a spell icon next to it's name.

Visual Example:
[Image: information.gif]Lightbringer

I would need to route a variable to the dialog boxes and set it to the far left of the window. That variable would be interchangeable, meaning you can replace it with the portraits ID.

The believe the variable that holds the characters portrait is in the following:
Code:
Display character portrait
C3/7000:    A09001      LDY #$0190
C3/7003:    BF001DED    LDA $ED1D00,X  (get character portrait data)
C3/7007:    8D1821      STA $2118
C3/700A:    E8          INX
C3/700B:    E8          INX
C3/700C:    88          DEY
C3/700D:    D0F4        BNE $7003
C3/700F:    60          RTS

By finding this, maybe I can add some sort of "splitter", (like a coaxial cable splitter for your TV) so that it also adds this bit of code to the dialog box.




If you can't view the Lightbringer text, download this font pack and install them. It should be viewable to the right of the sword icon.
Download
  Find
Quote  

#2
Posts: 68
Threads: 4
Thanks Received: 1
Thanks Given: 0
Joined: Jul 2010
Reputation: 4
Status
None
O: I really wanted something like this for the portrait revamp base patch. I love you man!!! I'm almost done with all of them. If you get this done I'll do something for you in graphics as a return favor.
  Find
Quote  

#3
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
This I feel won't be easy for me to complete, but I'll work at it.
  Find
Quote  

#4
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
Boy, zeemis, you sure have your hands full working on many projects at the same time, and you've started to learn assembly as well. I like you,
you're not intimidated to work on assembly at all :p

Initial idea on this: The code you found for it is for the display of portraits in the menu. Where's the code that displays the text in dialogue through the whole game? Maybe find that code, and insert a command there that makes you jump to the address C3/7003?
Quote  

#5
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
That's the tricky part, finding the dialog window.
PS. Lenophis says that won't work. <_<
  Find
Quote  

#6
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
Did he suggest something that may work?

Can you post your conversation with him here?
Quote  

#7
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
Email conversation between me and Lord J:
Quote:Zeemis:
Is there any way to add E7 to the DTE text editor so it displays a portrait?
Here is an excerpt from the event commands as an example.
E7 : 02 : Show portrait for character A

"02" being the portrait ID
Or: Can you make an editor to use the Event Command E7 to display Portraits alongside dialog text? I know that the Event Command already exists, but is it too much trouble to ask for an editor that will align the Portraits correctly next to the corresponding Dialog box?

Quote:Lord J:
Hi Zeemis. The E7 opcode your are refering may belong to the game script. The dialog script contains opcodes of it's own, and <E$E7> (<E4xx> as seen in the FF3usME dialog dump) doesn't yield any positive results on my side. You could bring this topic on the forum, but it is my opinion that dialog portraits should be handled by the dialog script. And a quicker answer to this question would be to take a peek at the FF6Adv. script. You should get in contact with Drakkhen for this, I think he's one of the few to have been mining this specific ROM.

If dialog script it is, then, FF3us / FF6j doesn't *seem* to have opcodes ready / dummied to do that. So your best bet would be to port the assembly code from the game script to the dialog handling subroutines.

If not, then I guess it's getting to call the proper code inside the dialog window subroutine.

On the subject of dialog opcodes, I'm listing here the opcode that are likely to not be of any use. They seem to be refering to a placeholder subroutine that does a short delay. One of these opcodes could very well be of use for the said dialog script patch.

<E$00> (better not tamper with this one, just in case)
<E$14>
<E$15>
<E$16>
<E$19>
<E$1A>
<E$1B>
<E$1E>
<E$1F>
<E$21> - <E$29>
<E$2B> - <E$FE>
  Find
Quote  

#8
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
Example of code used for displaying character portraits for endings.

Calling the command E7 XX will not work by itself, just tested it...

Code:
CA/149A: E7    Unknown command, parameter $02
CA/149C: D2    Set event bit $1E80($1C6) [$1EB8, bit 6]
CA/149E: 6B    Load map $00D2 (Doma Castle, dark (ending without Cyan)) instantly, (upper bits $0400), place party at (18, 43), facing up
CA/14A4: 10    Begin action queue for character $10 (NPC $10), 4 bytes long
CA/14A6: 81        Move vehicle/entity right 1 tile
CA/14A7: FC        Branch 1 bytes backwards ($CA14A6)
CA/14A9: FF        End queue
CA/14AA: 11    Begin action queue for character $11 (NPC $11), 3 bytes long
CA/14AC: FC        Branch 5 bytes backwards ($CA14A7)
CA/14AE: FF        End queue
CA/14AF: 12    Begin action queue for character $12 (NPC $12), 3 bytes long
CA/14B1: FC        Branch 5 bytes backwards ($CA14AC)
CA/14B3: FF        End queue
CA/14B4: 13    Begin action queue for character $13 (NPC $13), 3 bytes long
CA/14B6: FC        Branch 5 bytes backwards ($CA14B1)
CA/14B8: FF        End queue
CA/14B9: 61    Colorize color range [$04, $77] to color $07
CA/14BD: B0    Execute the following commands until $B1 6 times
CA/14BF: 50        Tint screen (cumulative) with color $9F
CA/14C1: B1        End block of repeating commands
CA/14C2: 96    Restore screen from fade
CA/14C3: 30    Begin action queue for character $30 (Camera), 6 bytes long
CA/14C5: C0        Set vehicle/entity's event speed to slowest
CA/14C6: 9D        Move vehicle/entity right 8 tiles
CA/14C7: 9D        Move vehicle/entity right 8 tiles
CA/14C8: 9D        Move vehicle/entity right 8 tiles
CA/14C9: 8D        Move vehicle/entity right 4 tiles
CA/14CA: FF        End queue
CA/14CB: B5    Pause for 15 * 103 (1545) units
CA/14CD: B0    Execute the following commands until $B1 25 times
CA/14CF: 50        Tint screen (cumulative) with color $9F
CA/14D1: B1        End block of repeating commands
CA/14D2: 95    Pause for 120 units
CA/14D3: 97    Fade screen to black
CA/14D4: D3    Clear event bit $1E80($1C6) [$1EB8, bit 6]
Quote  

#9
Posts: 341
Threads: 12
Thanks Received: 0
Thanks Given: 2
Joined: Sep 2010
Reputation: 5
Status
None
"Won't work"?
Where did you try using it?
Quote  

#10
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
Tried using it at the burning house in thamasa, (after the fight with the flame eater cause I'm working on an event there) and nothing happened. I tried using it for different characters, including terra, locke, mog and leo. Nothing appeared.

By the way, seems you're alright. It's been on the news all over since this morning, about the earthquake and tsunami over japan...glad you're alright.
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite