Users browsing this thread: 1 Guest(s)
Class Names function

#21
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 5
Joined: Feb 2017
Reputation: 25
Status
None
NECROPOST! One year or another, we'll finally figure this out!  Laugh

I did a bit of a re-arranging of the Skills screen. The old screen had this layout:
Esper Name..LV ##
Class Name..HP ####/####
...................MP   ###/  ###

This had 2 problems: First, the class name was given the wrong priority. Wraparound position DD on line 42 (A0 DD 42) put it in the background layer. Second, even when it was given the correct priority (A0 9D 42), it was overflowing over the HP.

I have rearranged the skills screen to match what is shown on the party select screen. Then, on both the skills screen and the party select screen, I have indented the "LV 99" to make it appear right-justified, giving space for the full 12-character class name. I have included 2 versions of the change. The first puts the Esper on the 2nd line (in line with HP) and does not re-arrange any data. The second adds in the Character Name on line 2, and shifts the Esper to line 3, just like on the party select screen. This requires 10 bytes of data elsewhere in C3 (defaultd to C3/F0F0). I have personally always wanted the character's name on the skill screen, since the windows cover up the portrait. So, the layout is now one of the following:
(VERSION 1)
Class Name...................LV ##
Esper Name..HP ####/####
...................MP   ###/   ###

(VERSION 2)
Class Name...................LV ##
Name...........HP ####/####
Esper Name..MP   ###/   ###

One side-effect of this is that the Esper now displays on the status screen for some reason. Also, one thing I didn't figure out is the finger positioning data for the blinking finger when you're choosing an esper. Since I moved the Esper to line 2 or 3, that finger now points to the class name.

Here's the code. Note that I do hex editing, not ASM, so if anyone wants to convert this, feel free.

Code:
VERSION 1 (With No Character Name)
* Asterix indicates a changed line

Data: Positioning for the Main Menu
*    C3/3306 :  A0 59 39    LDY #$3959     (position of character 1's status)
*    C3/3352 :  A0 D9 3A    LDY #$3959     (position of character 2's status)
*    C3/339E :  A0 59 3C    LDY #$3959     (position of character 3's status)
*    C3/33EA :  A0 D9 3D    LDY #$3959     (position of character 4's status)

Data: Positioning for the Skills Menu
*    C3/4EED:    A0 1D 42      LDY #$421D
*    C3/4EF0:    A2 50 2F      LDX #$4F50
    C3/4EF3:    20 27 34      JSR $3427      (display current status ailments)
    C3/4EF6:    A0 D1 5C      LDY #$5CD1
    C3/4EF9:    20 F9 02      JSR $02F9      (draw HP's "/")
    C3/4EFC:    A0 D5 5C      LDY #$5CD5
    C3/4EFF:    20 F9 02      JSR $02F9      (draw MP's "/")
    C3/4F02:    A2 12 4F      LDX #$4F12
    C3/4F05:    20 6C 0C      JSR $0C6C      (display HP, MP, etc)
    C3/4F08:    A9 20        LDA #$20
    C3/4F0A:    85 29        STA $29        (set text color to white)
*    C3/4F0C:    A0 9D 42      LDY #$421D
    C3/4F0F:    4C E6 34      JMP $34E6      (display currently equipped esper name)

Data: Positioning for Level, HP, MP for skills menu
*    C3/4F12:    41 42            (level's position)
    C3/4F14:    B3 42            (current HP's position)
    C3/4F16:    BD 42            (max HP's position)
    C3/4F18:    33 43            (current MP's position)
    C3/4F1A:    3D 43            (max MP's position)

*    C3/5CC2:    3B 42 8B 95 00                    (position of and word "LV")
    C3/5CC7:    AD 42 87 8F 00                    (position of and word "HP")
    C3/5CCA:    2D 43 8C 8F 00                    (position of and word "MP")

Data: Positioning for Level, HP, MP for party select screen
*    C3/79CF:    7B 3A 8B 95 00    (position of and word "LV")
    C3/79D4:    ED 3A 87 8F 00    (position of and word "HP")
    C3/79D9:    6D 3B 8C 8F 00    (position of and word "MP")
    C3/79DE:    FB 3A C0 00    (position of and character "/")
    C3/79E2:    7B 3B C0 00    (position of and character "/")
*    C3/79E6:    81 3A            (level's position)
    C3/79E8:    F3 3A            (current HP's position)
    C3/79EA:    FD 3A            (max HP's position)
    C3/79EC:    73 3B            (current MP's position)
    C3/79EE:    7D 3B            (max MP's position)

Code:
VERSION 2 (With Character Name)
* Asterix indicates a changed line
    
Data: Positioning for the Main Menu
*    C3/3306 :  A0 59 39    LDY #$3959     (position of character 1's status)
*    C3/3352 :  A0 D9 3A    LDY #$3959     (position of character 2's status)
*    C3/339E :  A0 59 3C    LDY #$3959     (position of character 3's status)
*    C3/33EA :  A0 D9 3D    LDY #$3959     (position of character 4's status)

Data: Positioning for the Skills Menu
*    C3/4EED:    A0 1D 42      LDY #$421D
*    C3/4EF0:    A2 50 2F      LDX #$4F50
    C3/4EF3:    20 27 34      JSR $3427      (display current status ailments)
    C3/4EF6:    A0 D1 5C      LDY #$5CD1
    C3/4EF9:    20 F9 02      JSR $02F9      (draw HP's "/")
    C3/4EFC:    A0 D5 5C      LDY #$5CD5
    C3/4EFF:    20 F9 02      JSR $02F9      (draw MP's "/")
*    C3/F0F0:    A2 F0 F0      LDX #$F0F0
    C3/4F05:    20 6C 0C      JSR $0C6C      (display HP, MP, etc)
    C3/4F08:    A9 20        LDA #$20
    C3/4F0A:    85 29        STA $29        (set text color to white)
*    C3/4F0C:    A0 9D 42      LDY #$429D
*    C3/4F0F:    20 CF 34      JSR $34CF      (display character name)
*    C3/4F12:    A0 1D 43      LDY #$431D
*    C3/4F15:    4C E6 34      JMP $34E6      (display currently equipped esper name)
*    C3/4F18:    FF            NOP
*    C3/4F1A:    FF            NOP

Note: The following table was relocated to make room for the caracter name.
Data: Positioning for Level, HP, MP for skills menu
*    C3/F0F0:    41 42            (level's position)
*    C3/F0F2:    B3 42            (current HP's position)
*    C3/F0F4:    BD 42            (max HP's position)
*    C3/F0F8:    33 43            (current MP's position)
*    C3/F0FA:    3D 43            (max MP's position)

*    C3/5CC2:    3B 42 8B 95 00                    (position of and word "LV")
    C3/5CC7:    AD 42 87 8F 00                    (position of and word "HP")
    C3/5CCA:    2D 43 8C 8F 00                    (position of and word "MP")

Data: Positioning for Level, HP, MP for party select screen
*    C3/79CF:    7B 3A 8B 95 00    (position of and word "LV")
    C3/79D4:    ED 3A 87 8F 00    (position of and word "HP")
    C3/79D9:    6D 3B 8C 8F 00    (position of and word "MP")
    C3/79DE:    FB 3A C0 00    (position of and character "/")
    C3/79E2:    7B 3B C0 00    (position of and character "/")
*    C3/79E6:    81 3A            (level's position)
    C3/79E8:    F3 3A            (current HP's position)
    C3/79EA:    FD 3A            (max HP's position)
    C3/79EC:    73 3B            (current MP's position)
    C3/79EE:    7D 3B            (max MP's position)


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  
[-] The following 5 users say Thank You to PowerPanda for this post:
  • C-Dude (11-11-2019), DrakeyC (08-10-2018), h.carrell (04-26-2022), madsiur (08-10-2018), Warrax (08-09-2018)

#22
Posts: 735
Threads: 36
Thanks Received: 13
Thanks Given: 42
Joined: Jan 2016
Reputation: 6
Status
None
A related question. I'd be interested in using Angelo's patch, but only certain parts. Has anyone done a total rundown of the hex code of his patch that I could look at to take the bits I want?
  Find
Quote  

#23
Posts: 3,970
Threads: 279
Thanks Received: 236
Thanks Given: 58
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
silentenigma has made an updated version, not sure if it's more documented. As for class names, I got a 2018 RotDS implementation in an ASM file I can share if needed.
  Find
Quote  
[-] The following 1 user says Thank You to madsiur for this post:
  • DrakeyC (08-10-2018)

#24
Posts: 735
Threads: 36
Thanks Received: 13
Thanks Given: 42
Joined: Jan 2016
Reputation: 6
Status
None
Much more documentation, yes, I'll have to actually try it out tomorrow but this stuff I can use. Thanks.
  Find
Quote  

#25
Posts: 208
Threads: 3
Thanks Received: 0
Thanks Given: 8
Joined: May 2013
Reputation: 0
Status
None
(08-10-2018, 12:21 AM)madsiur Wrote: silentenigma has made an updated version, not sure if it's more documented. As for class names, I got a 2018 RotDS implementation in an ASM file I can share if needed.

That would be great!



  Find
Quote  

#26
Posts: 735
Threads: 36
Thanks Received: 13
Thanks Given: 42
Joined: Jan 2016
Reputation: 6
Status
None
I believe you made an error for the second part

Code:
*    C3/F0F0:    A2 12 4F      LDX #$F0F0

I think you meant this.

Code:
*    C3/4F02:    A2 F0 F0      LDX #$F0F0

That aside, except for changing that pointer to relocate the table, I copied your code exactly and got the name not showing and the Esper covering up the HP total.

[Image: kI4kYpr.png]
  Find
Quote  

#27
Posts: 617
Threads: 49
Thanks Received: 0
Thanks Given: 5
Joined: Feb 2017
Reputation: 25
Status
None
You are correct, C3/4F02 should read "A2 F0 F0". That was a simple copy/paste error, since I have the data in a different location in my own rom. The other error in the code I posted was on C3/4F12. I originally had "A0 9D 42" for the Esper name, which was an exact copy of the location of the character name. Thus, they wrote on top of each other. That line should read "C3/4F12: A0 1D 43 LDY #$431D". I have corrected both lines in my original post.

Also note that my code is based on a max Esper Name length of 8 characters, like in the base SNES game. It looks like yours are 10 characters, which is why yours is overwriting the "HP" label. Unfortunately, there's not a whole lot of real estate left on the screen, so I don't know of a fix for you.


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:
  • DrakeyC (08-11-2018)

#28
Posts: 735
Threads: 36
Thanks Received: 13
Thanks Given: 42
Joined: Jan 2016
Reputation: 6
Status
None
The fix works for the name, yes. And damn to the second, I saw madsiur mention Angelo's post in the OP and presumed it was accomodated.

I got a partial workaround, I moved the Esper and Class text more to the left, now HP and MP display fine. However, the text appears over the "Blitz-SwdTech-Dance"-etc menu when it's up, and the portrait needs to be moved more to the left to not be covered up so much. No idea how to fix the former, for the latter I couldn't find the coding for the portrait's placement.

EDIT - the Skills menu display's the portrait's row, so actually the fix is to always display the portrait presuming the character is in the front row. That placement works perfect
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite