Users browsing this thread: 1 Guest(s)
Class Names function
08-09-2018, 02:31 PM
(This post was last modified: 08-10-2018, 11:47 PM by PowerPanda.)
NECROPOST! One year or another, we'll finally figure this out!
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.
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
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)