WiiRd forum

Wii & Gamecube Hacking => Wii Game hacking help => Topic started by: Bully@Wiiplaza on June 16, 2012, 03:22:27 PM

Title: Weird ASCII texts part 2!
Post by: Bully@Wiiplaza on June 16, 2012, 03:22:27 PM
0128013C 0127012F 013F013D # 7R6EUS

Which ascii table do I need for this?

Game: Pokémon Battle Revolution

Since it allows japanese letters and whatnot, this may be helpful information...

Here´s the list, dxc2 once linked:
http://www.alanflavell.org.uk/unicode/unidata.html

And that´s basically the code:

Nickname Changer [Bully@Wiiplaza]
48000000 80480E18
4A100000 0000++++
DE000000 90009380
16000134 00000014
XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX
XXXXXXXX 00000000
12000148 0000FFFF
E0000000 80008000
*++++ = Pokémon Slot Values*
*XXXXXXXX = Name in HEX*
Title: Re: Weird ASCII texts part 2!
Post by: Bully@Wiiplaza on December 16, 2013, 02:10:49 PM
Bump!
The program "Pokésav" can generate working name modifiers for DS Pokémon games.
It should be identical to the Wii version.

"Hacking" produces the following AR code:

94000130 FCFF0000
B21C4E68 00000000
B0000004 00000000
E00002D0 00000010
01450132 014F0147
0152014D FFFF014B

D2000000 00000000

"NameMod":

94000130 FCFF0000
B21C4E68 00000000
B0000004 00000000
E00002D0 00000010
01450138 01490151
01530137 FFFF0148

D2000000 00000000

How does it make sense?
Please help me out on the encoding. :confused:
Title: Re: Weird ASCII texts part 2!
Post by: James0x57 on December 17, 2013, 01:46:41 AM
Both 7 letters, you see FFFF in the 2nd to last set of 16 bits, so I assume:
1) little endian
2) probably can ignore the 01's for basic ascii chars
3) order is:
1,0 3,2
5,4 -,6

4) Thus:

32 = H (0)
38 = N (0)

45 = a (1)

47 = c (2)
51 = m (2)

4F = k (3)
49 = e (3)

4D = i (4)
37 = M (4)

...

5) So pattern is:
2B = A
2C = B
2D = C
2E = D
2F = E
30 = F
31 = G
32 = H
33
34
35
36
37 = M
38 = N
39
3A
3B
3C
3D
3E
3F
40
41 = W
42 = X
43 = Y
44 = Z

45 = a
46 = b
47 = c
48 = d
49 = e
4A
4B
4C
4D
4E
4F = k
50 = l
51 = m
52 = n
53
54
55
56
57 = s
58
59
5A
5B = w
5C = x
5D = y
5E = z

Which means, there's probably a lookup table that points to the real char equivalent. And 01 next to each letter might indicate the character set.


Happy hunting!
Title: Re: Weird ASCII texts part 2!
Post by: Bully@Wiiplaza on December 17, 2013, 07:55:36 AM
You're right, 12B = A, 12C = B etc.
but how will the lookup table look like in memory? That's probably what you mean with hunting, huh? :p
They seem to use their own charset since stuff is arranged differently than in regular unicode even, not just shifted in values.

Even between uppercase and lowercase it's not identical to this:
http://unicode-table.com/en/

Does it make sense to write a program to add the proper offset every time?
I got the numbers and regular letters working:[spoiler]public String unicode(Character input)
{
   String result = "";
      
   if(input >= '0' && input <= '9')
      result = Integer.toHexString((input | 0x10000) + 0xF1);
         
   if(input >= 'A' && input <= 'Z')
      result = Integer.toHexString((input | 0x10000) + 0xEA);
      
   if(input >= 'a' && input <= 'z')
      result = Integer.toHexString((input | 0x10000) + 0xE4);
      
   return(result.substring(1).toUpperCase());
}[/spoiler]
Title: Re: Weird ASCII texts part 2!
Post by: James0x57 on December 18, 2013, 01:48:13 AM
If your goal is to make an easily useable code, you could do that ^ in asm so your code users can just put ascii in.
Or you can do your own program too. ..but I'd do your program in JavaScript and just put it on your site instead. That way the user doesn't have to download it. (then you could put a link in your code note to it)

Totally up to you!