If emotions are 1 byte each...
(Don't feel like checking)
You'll have to add #0x1 to the final text address to get to the correct byte. TTI, by default, gets 2 bytes from the text location. Say you type 01 for your emotion. Well the text address will read 01XX. Then by storing a byte it will place the XX in the emotion slot instead of 01. So to fix this, add #0x1 to the final text address (r5?).