Olá.
Queria compartilhar mais uma coisa que eu me deparei, pesquisei, e resolvi.
' Chaz Current HP
Get #FF, &H11986 + 1, HP(1)
Get #FF, &H11987 + 1, HP(2)
Dim CHPString As String
CHPString = "&H" & Hex(HP(1)) & Hex(HP(2))
txtCurHP(Memb).Text = Val(CHPString)
Nesta parte do código, ele pega os valores de HP(1) e HP(2), e faz a conversão para exibir na caixa de texto.
Se o valor obtido de HP(1) fosse 1, e HP(2) fosse 0, ao converter para Hexadecimal, DEVERIA ser 01 00, pois ele gera primeiro uma string que equivale a sequencia dos dois endereços, tipo "&H0100", que convertido equivale a 256. 256 seria exibido na caixa de texto.
PORÉM, devido ao um erro (crio eu) de formula interna do VB6 (Hex), ao se deparar com valores de dois dígitos, entre 00 e 0F (0 e 15), ele "comia" um zero, e, no caso que exemplifiquei, ao invés de "&H0100", ficaria "&H10", e mudaria de 256 (valor correto) para 16 (valor errado devido a remoção do "zero").
Eu pesquisei e encontrei uma solução que faz com que tenha sempre dois dígitos quando forem convertidos (uma linha de códigos Hexadecimal de 4 bytes seria &H00000000, mas com a conversão do VB6, teríamos somente 2 bytes e seria &H0000).
Public Function HexByte2Char(ByVal Value As Byte) As String
' Return a byte value as a two-digit hex string.
HexByte2Char = IIf(Value < &H10, "0", "") & Hex$(Value)
End Function
Esta é a função que me permitiu corrigir este pequeno defeito do VB6.
Sendo assim, ficaria:
' Chaz Current HP
Get #FF, &H11986 + 1, HP(1)
Get #FF, &H11987 + 1, HP(2)
Dim CHPString As String
CHPString = "&H" & HexByte2Char(HP(1)) & HexByte2Char(HP(2))
txtCurHP(Memb).Text = Val(CHPString)
Se alguém não entendeu, ou entendeu porém achou inútil, só responder aqui.