Manually Setting Up Battle Roster Nicknames

From Final Fantasy Hacktics Wiki
Revision as of 16:29, 7 August 2023 by Nyzer (talk | contribs) (Created page with "The game may not load Unit Nicknames into Battle if your units are flagged as out on a Proposition. It's unlikely that most people will do anything with this, but on the off c...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The game may not load Unit Nicknames into Battle if your units are flagged as out on a Proposition. It's unlikely that most people will do anything with this, but on the off chance someone else wants to make characters talk about a unit according to their Nickname or something like that, here's the commands I used to manually generate unit names.

LUI(x0070,x8016)//The first byte of the Roster Unit Nicknames
ADD(x0070,x38C0)//used by the Text Format stuff.

LUI(x0071,x8005)//First unit's World Stat address.
ADD(x0071,x7F74)

SET(x0073,x0013)//Number of jumps.

GoToTarget(x04)
LoadAddress(x00,x0001,x71,001)//Load the unit's Party ID.
SET(x0001,x00FF)//Check for xFF, which means no unit.
EQ()
If()//Party ID equals xFF: ignore this unit and move on.
  SET(x0000,x00FE)
  GoTo(x06)
EndIf()

SETVar(x0072,x0071)//First character of unit's Nickname
ADD(x0072,x00BE)

GoToTarget(x05)
LoadAddress(x00,x0000,x72,001)//Load byte from Nickname
GoToTarget(x06)
SET(x0001,x00FE)
SaveAddress(x00,x0000,x70,001)//Save byte to the Nickname List
ADD(x0070,x0001)//Advance the Nickname address
EQ()
If()//Was this an end of name character?
  SETVar(x0000,x0073)//Was this the end of the jumps?
  If()//Nope, still more jumps left.
    ADD(x0071,x0100)//Move the Roster Unit address to the next unit.
    SUB(x0073,x0001)//Subtract from the Number of Jumps.
    GoTo(x04)
  EndIf()
Else()//Nope, there are more characters left.
  ADD(x0072,x0001)//Move to the next Roster Unit Nickname byte.
  GoTo(x05)
EndIf()