Quantcast
Channel: Planet Python
Viewing all articles
Browse latest Browse all 23630

Seth Michael Larson: A(nimal Cros)SCII

$
0
0

What is the character encoding for Animal Crossing? This page details all the characters that are allowed for player names, town names, and passwords in Animal Crossing for the GameCube. A much larger character set was used for writing mail and communication.

Each character was internally represented as a value between 0x00 and 0xFF which is the same size as ASCII, thus me naming this encoding “Animal CrosSCII”. The characters between 0xD5 and 0xDE are only used in the EU version. 0xDF to 0xFF are unused.

The names of the characters (and descriptions when ambiguous) were sourced from the Animal Crossing decompilation project. I've mapped each character to the best of my ability back to Unicode and collected them in a table below:

NameHexCharacterUnicode
INVERT_EXCLAMATION0x00¡U+00A1
INVERT_QUESTIONMARK0x01¿U+00BF
DIAERESIS_A0x02ÄU+00C4
GRAVE_A0x03ÀU+00C0
ACUTE_A0x04ÁU+00C1
CIRCUMFLEX_A0x05ÂU+00C2
TILDE_A0x06ÃU+00C3
ANGSTROM_A0x07ȦU+0226
CEDILLA0x08ÇU+00C7
GRAVE_E0x09ÈU+00C8
ACUTE_E0x0AÉU+00C9
CIRCUMFLEX_E0x0BÊU+00CA
DIARESIS_E0x0CËU+00CB
GRAVE_I0x0DÌU+00CC
ACUTE_I0x0EÍU+00CD
CIRCUMFLEX_I0x0FÎU+00CE
DIARESIS_I0x10ÏU+00CF
ETH0x11ĐU+0110
TILDE_N0x12ÑU+00D1
GRAVE_O0x13ÒU+00D2
ACUTE_O0x14ÓU+00D3
CIRCUMFLEX_O0x15ÔU+00D4
TILDE_O0x16ÕU+00D5
DIARESIS_O0x17ÖU+00D6
OE0x18ØU+00D8
GRAVE_U0x19ÙU+00D9
ACUTE_U0x1AÚU+00DA
CIRCUMFLEX_U0x1BÛU+00DB
DIARESIS_U0x1CÜU+00DC
LOWER_BETA0x1DβU+03B2
THORN0x1E?U+003F
GRAVE_a0x1FàU+00E0
SPACE0x20U+0020
EXCLAMATION0x21!U+0021
QUOTATION0x22"U+0022
ACUTE_a0x23áU+00E1
CIRCUMFLEX_a0x24âU+00E2
PERCENT0x25%U+0025
AMPERSAND0x26&U+0026
APOSTROPHE0x27'U+0027
OPEN_PARENTHESIS0x28(U+0028
CLOSE_PARENTHESIS0x29)U+0029
TILDE0x2A~U+007E
SYMBOL_HEART0x2BU+2665
COMMA0x2C,U+002C
DASH0x2D-U+002D
PERIOD0x2E.U+002E
SYMBOL_MUSIC_NOTE0x2F𝅘𝅥𝅮U+1D160
ZERO0x300U+0030
ONE0x311U+0031
TWO0x322U+0032
THREE0x333U+0033
FOUR0x344U+0034
FIVE0x355U+0035
SIX0x366U+0036
SEVEN0x377U+0037
EIGHT0x388U+0038
NINE0x399U+0039
COLON0x3A:U+003A
SYMBOL_DROPLET0x3B🌢U+1F322
LESS_THAN0x3C<U+003C
EQUALS0x3D=U+003D
GREATER_THAN0x3E>U+003E
QUESTIONMARK0x3F?U+003F
AT_SIGN0x40@U+0040
A0x41AU+0041
B0x42BU+0042
C0x43CU+0043
D0x44DU+0044
E0x45EU+0045
F0x46FU+0046
G0x47GU+0047
H0x48HU+0048
I0x49IU+0049
J0x4AJU+004A
K0x4BKU+004B
L0x4CLU+004C
M0x4DMU+004D
N0x4ENU+004E
O0x4FOU+004F
P0x50PU+0050
Q0x51QU+0051
R0x52RU+0052
S0x53SU+0053
T0x54TU+0054
U0x55UU+0055
V0x56VU+0056
W0x57WU+0057
X0x58XU+0058
Y0x59YU+0059
Z0x5AZU+005A
TILDE_a0x5BãU+00E3
SYMBOL_ANNOYED0x5C💢U+1F4A2
DIARESIS_a0x5DäU+00E4
ANGSTROM_a0x5EȧU+0227
UNDERSCORE0x5F_U+005F
LOWER_CEDILLA0x60çU+00E7
a0x61aU+0061
b0x62bU+0062
c0x63cU+0063
d0x64dU+0064
e0x65eU+0065
f0x66fU+0066
g0x67gU+0067
h0x68hU+0068
i0x69iU+0069
j0x6AjU+006A
k0x6BkU+006B
l0x6ClU+006C
m0x6DmU+006D
n0x6EnU+006E
o0x6FoU+006F
p0x70pU+0070
q0x71qU+0071
r0x72rU+0072
s0x73sU+0073
t0x74tU+0074
u0x75uU+0075
v0x76vU+0076
w0x77wU+0077
x0x78xU+0078
y0x79yU+0079
z0x7AzU+007A
GRAVE_e0x7BèU+00E8
ACUTE_e0x7CéU+00E9
CIRCUMFLEX_e0x7DêU+00EA
DIARESIS_e0x7EëU+00EB
CONTROL_CODE0x7F???
MESSAGE_TAG0x80???
GRAVE_i0x81ìU+00EC
ACUTE_i0x82íU+00ED
CIRCUMFLEX_i0x83îU+00EE
DIARESIS_i0x84ïU+00EF
INTERPUNCT0x85·U+00B7
LOWER_ETH0x86?U+003F
TILDE_n0x87ñU+00F1
GRAVE_o0x88òU+00F2
ACUTE_o0x89óU+00F3
CIRCUMFLEX_o0x8AôU+00F4
TILDE_o0x8BõU+00F5
DIARESIS_o0x8CöU+00F6
oe0x8DøU+00F8
GRAVE_u0x8EùU+00F9
ACUTE_u0x8FúU+00FA
HYPHEN0x90-U+002D
CIRCUMFLEX_u0x91ûU+00FB
DIARESIS_u0x92üU+00FC
ACUTE_y0x93ýU+00FD
DIARESIS_y0x94ÿU+00FF
LOWER_THORN0x95þU+00FE
ACUTE_Y0x96ÝU+00DD
BROKEN_BAR0x97|U+007C
SILCROW0x98§U+00A7
FEMININE_ORDINAL0x99ªU+00AA
MASCULINE_ORDINAL0x9AºU+00BA
DOUBLE_VERTICAL_BAR0x9BU+2225
LATIN_MU0x9CU+1D67
SUPERSCRIPT_THREE0x9D³U+00B3
SUPERSCRIPT_TWO0x9E²U+00B2
SUPRESCRIPT_ONE0x9F¹U+00B9
MACRON_SYMBOL0xA0¯U+00AF
LOGICAL_NEGATION0xA1¬U+00AC
ASH0xA2ÆU+00C6
LOWER_ASH0xA3æU+00E6
INVERT_QUOTATION0xA4U+201E
GUILLEMET_OPEN0xA5»U+00BB
GUILLEMET_CLOSE0xA6«U+00AB
SYMBOL_SUN0xA7U+2600
SYMBOL_CLOUD0xA8U+2601
SYMBOL_UMBRELLA0xA9U+2602
SYMBOL_WIND0xAAU+AA5C
SYMBOL_SNOWMAN0xABU+2603
LINES_CONVERGE_RIGHT0xACU+269E
LINES_CONVERGE_LEFT0xADU+269F
FORWARD_SLASH0xAE/U+002F
INFINITY0xAFU+221E
CIRCLE0xB0U+2B55
CROSS0xB1U+274C
SQUARE0xB2U+2610
TRIANGLE0xB3U+25B3
PLUS0xB4+U+002B
SYMBOL_LIGTNING0xB5U+26A1
MARS_SYMBOL0xB6U+2642
VENUS_SYMBOL0xB7U+2640
SYMBOL_FLOWER0xB8U+2698
SYMBOL_STAR0xB9U+2605
SYMBOL_SKULL0xBAU+2620
SYMBOL_SURPRISE0xBB😯U+1F62F
SYMBOL_HAPPY0xBC😄U+1F604
SYMBOL_SAD0xBD😞U+1F61E
SYMBOL_ANGRY0xBE😠U+1F620
SYMBOL_SMILE0xBF😃U+1F603
DIMENSION_SIGN0xC0×U+00D7
OBELUS_SIGN0xC1÷U+00F7
SYMBOL_HAMMER0xC2🔨U+1F528
SYMBOL_RIBBON0xC3🎀U+1F380
SYMBOL_MAIL0xC4U+2709
SYMBOL_MONEY0xC5💰U+1F4B0
SYMBOL_PAW0xC6🐾U+1F43E
SYMBOL_SQUIRREL0xC7🐶U+1F436
SYMBOL_CAT0xC8🐱U+1F431
SYMBOL_RABBIT0xC9🐰U+1F430
SYMBOL_OCTOPUS0xCA🐦U+1F426
SYMBOL_COW0xCB🐮U+1F42E
SYMBOL_PIG0xCC🐷U+1F437
NEW_LINE0xCDU+2424
SYMBOL_FISH0xCE🐟U+1F41F
SYMBOL_BUG0xCF🪲U+1FAB2
SEMICOLON0xD0;U+003B
HASHTAG0xD1#U+0023
SPACE_20xD2???
SPACE_30xD3???
SYMBOL_KEY0xD4🔑U+1F511
LEFT_QUOTATION0xD5U+201C
RIGHT_QUOTATION0xD6U+201D
LEFT_APOSTROPHE0xD7U+2018
RIGHT_APOSTROPHE0xD8U+2019
ETHEL0xD9ŒU+0152
LOWER_ETHEL0xDAœU+0153
ORDINAL_e0xDBU+1D49
ORDINAL_er0xDC???
ORDINAL_re0xDD???
BACKSLASH0xDE\U+005C

And here's the Unicode characters laid out into a “square”:

¡¿ÄÀÁÂÃȦÇÈÉÊËÌÍÎ
ÏĐÑÒÓÔÕÖØÙÚÛÜβ?à
 !"áâ%&'()~♥,-.𝅘𝅥𝅮
0123456789:🌢<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZã💢äȧ_
çabcdefghijklmno
pqrstuvwxyzèéêë 
 ìíîï·?ñòóôõöøùú
-ûüýÿþÝ|§ªº∥ᵧ³²¹
¯¬Ææ„»«☀☁☂꩜☃⚞⚟/∞
⭕❌☐△+⚡♂♀⚘★☠😯😄😞😠😃
×÷🔨🎀✉💰🐾🐶🐱🐰🐦🐮🐷␤🐟🪲
;#  🔑“”‘’Œœᵉ  \\

I wasn't able to find Unicode equivalents to some of the characters and a few others (marked with ??? in the table). If you're able to find Unicode characters for the missing ones please send me an email or pull request. Time to brush up on Animalese!


Viewing all articles
Browse latest Browse all 23630

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>