             -==============================================-
              -=                                          =-
              -=           Phantasy Star Online           =-
              -=          Section ID Calculator           =-
              -=       Version 0.2     12 June 2001       =-
              -=                                          =-
              -=           by "SuperSteve" Ward           =-
              -=                                          =-
              -=     email: SuperSteve1440@yahoo.com      =-
              -=                                          =-
              -=                Homepage:                 =-
              -= http://www.geocities.com/supersteve1440  =-
              -=                                          =-
              -=       Size: 14774 Bytes--(14.4 KB)       =-
              -=                                          =-
             -==============================================-


           ___________________
          < Table of Contents >
           
          < 1. Introduction >

          < 2. Updates, Version History >

          < 3. What Are The Possible Section IDs? >

          < 4. How Does PSO Calculate Your Section ID? >

          < 5. The Complete ASCII Character Table >

          < 6. The PSO Software Keyboard Layout >

          < 7. C++ Source Code For A Section ID Calculator >

          < 8. Credits, Contact Info, Copyright Info >




===============================================================================
                   _________________
                  < 1. Introduction >
                   
===============================================================================

This guide is meant to bring order and understanding to the calculation and
assignment of section IDs in Phantasy Star Online (PSO).

When I read "Phantasy Star Online Section ID FAQ" by Miyuu, I quickly realized
that Sonic Team simply used the ASCII values of the characters in the character
name to calculate the section ID.  I decided to make my own section ID
calculator program.

When I completed my program, I tested it against many other section ID
calculators on the web and found that theirs were often inaccurate when it came
to special characters in the character names.  I believe this is from a lack of
understanding of how the characters are being deciphered by PSO.  So you should
be wary of the accuracy of these web ID calculators when you have special
characters in your name.

This guide is based on the American version of PSO in the English language
mode.

For an explanation on how the section ID is used in the game, read one of the
many fine FAQs at this site.

The source code included in this guide will correctly calculate the section ID
in PSO when given the character name.  It took me only a few minutes to make
the program because I knew how PSO was converting the names into values.  In
order to make an executable program from the source code, you have to have a
C/C++ compiler.  Don't ask me where to get a compiler on the web.  I got both
of mine in books that I bought.

If PSO ver. 2 uses the same method described in here, then I'll update this
document with a few lines of text to tell about it.




===============================================================================
                   _____________________________
                  < 2. Updates, Version History >
                   
===============================================================================

Version 0.1     11 June 2001
Created the calculator program


Version 0.2     12 June 2001
Created this document




===============================================================================
                   _______________________________________
                  < 3. What Are The Possible Section IDs? >
                   
===============================================================================

There are 10 possible section IDs in PSO.  I suggest reading one of the
appropriate FAQs to see how they influence the game.

ID Name       (value)

VIRIDIA         (0)
GREENNILL       (1)
SKYLY           (2)
BLUEFULL        (3)
PURPLENUM       (4)
PINKAL          (5)
REDRIA          (6)
ORAN            (7)
YELLOWBOZE      (8)
WHITILL         (9)




===============================================================================
                   ____________________________________________
                  < 4. How Does PSO Calculate Your Section ID? >
                   
===============================================================================

There are 95 available characters for use in your name in PSO.  Your name may
be up to 12 characters in length.

The Dreamcast (like every modern PC) uses the ASCII character code to represent
characters in memory.  When a character is stored in a computer's memory, the
computer stores a number that represents that character.

When you enter your character name in PSO, all of the ASCII character values of
that name are added up.  PSO then takes only the "ones" digit of that value and
uses it to assign your section ID.

Example:

If you enter Steve as the character name...
Character name= Steve

To find your section ID, first simply add all the values of the letters.

S=  83
t= 116
e= 101
v= 118
e= 101

total= 519

or you can just add the ones digits of the ASCII values of the characters...

S= 3
t= 6
e= 1
v= 8
e= 1

total= 19

Now take the "ones" digit of this value...
519 or 19 yields 9

Since this value is 9, the section ID for Steve is WHITILL.

This method works for any name in PSO.

Many section ID calculators on the web make errors when special punctuation
characters are included.  This is because they generally don't know how the
characters were being converted to numerical values.




===============================================================================
                   _______________________________________
                  < 5. The Complete ASCII Character Table >
                   
===============================================================================

This is a list of the entire ASCII character set used in almost all computers.

Code  Character

  0   NUL (null)
  1   SOH (start of heading)
  2   STX (start of text)
  3   ETX (end of text)
  4   EOT (end of transmission)
  5   ENQ (enquiry)
  6   ACK (acknowledge)
  7   BEL (bell)
  8   BS (backspace)
  9   HT (horizontal tab)
 10   NL,LF (newline, line feed)
 11   VT (vertical tab)
 12   FF,NP (form feed, new page)
 13   CR (carriage return)
 14   SO (shift out)
 15   SI (shift in)
 16   DLE (data link escape)
 17   DC1 (device control 1)
 18   DC2 (device control 2)
 19   DC3 (device control 3)
 20   DC4 (device control 4)
 21   NAK (negative acknowledge)
 22   SYN (synchronous idle)
 23   ETB (end of trans. block)
 24   CAN (cancel)
 25   EM (end of medium)
 26   SUB (substitute)
 27   ESC (escape)
 28   FS (file separator)
 29   GS (group separator)
 30   RS (record separator)
 31   US (unit separator)
 32   SP (space)
 33   !
 34   "
 35   #
 36   $
 37   %
 38   &
 39   '
 40   (
 41   )
 42   *
 43   +
 44   ,
 45   -
 46   .
 47   /
 48   0
 49   1
 50   2
 51   3
 52   4
 53   5
 54   6
 55   7
 56   8
 57   9
 58   :
 59   ;
 60   <
 61   =
 62   >
 63   ?
 64   @
 65   A
 66   B
 67   C
 68   D
 69   E
 70   F
 71   G
 72   H
 73   I
 74   J
 75   K
 76   L
 77   M
 78   N
 79   O
 80   P
 81   Q
 82   R
 83   S
 84   T
 85   U
 86   V
 87   W
 88   X
 89   Y
 90   Z
 91   [
 92   \
 93   ]
 94   ^
 95   _
 96   `
 97   a
 98   b
 99   c
100   d
101   e
102   f
103   g
104   h
105   i
106   j
107   k
108   l
109   m
110   n
111   o
112   p
113   q
114   r
115   s
116   t
117   u
118   v
119   w
120   x
121   y
122   z
123   {
124   |
125   }
126   ~
127   DEL (delete)




===============================================================================
                   _____________________________________
                  < 6. The PSO Software Keyboard Layout >
                   
===============================================================================

This is how the software keyboard is laid out in the game.

Beside each character you will find a number.  This number represents the value
of that character when the section ID is calculated.

Character(value)

A(5) B(6) C(7) D(8) E(9) F(0) G(1) H(2) I(3) J(4) K(5) L(6) M(7) N(8)

O(9) P(0) Q(1) R(2) S(3) T(4) U(5) V(6) W(7) X(8) Y(9) Z(0)

a(7) b(8) c(9) d(0) e(1) f(2) g(3) h(4) i(5) j(6) k(7) l(8) m(9) n(0)

o(1) p(2) q(3) r(4) s(5) t(6) u(7) v(8) w(9) x(0) y(1) z(2)


1(9) 2(0) 3(1) 4(2) 5(3) 6(4) 7(5) 8(6) 9(7) 0(8)


!(3) "(4) #(5) $(6) %(7) &(8) '(9) ((0) )(1) *(2) +(3) ,(4) -(5) .(6) {(3) }(5)

/(7) :(8) ;(9) <(0) >(2) =(1) ?(3) @(4) [(1) ](3) \(2) ^(4) _(5) `(6) |(4) ~(6)


                                                 SPACE(2)




===============================================================================
                   ________________________________________________
                  < 7. C++ Source Code For A Section ID Calculator >
                   
===============================================================================

//*****************************************************************************
//   PSO Section ID Calculator in C++
//   by Steve Ward
//*****************************************************************************

#include<iostream.h>//uses cout, cin.getline

#define SIZE 13//the maximum size of the character name in PSO


//*****************************************************************************
//   calculates the ID number based on the ASCII character code
//*****************************************************************************
int getID(char *name)
{
   int n,id;

   for(n=0,id=0;n<SIZE;n++)
      id+=name[n];//the ASCII value of every character is added to the ID

   return id;
}


//*****************************************************************************
//   gets the 'ones' digit from the ID number
//*****************************************************************************
int getNewID(int id)
{
   while(id>=10)
      id-=10;//10 is subtracted until the number is less than 10

   return id;
}


//*****************************************************************************
//   prints the section ID
//*****************************************************************************
void printID(int id)
{
   cout<<"\nYour character ID is ";

   switch(id)
   {
   case 0://0= VIRIDIA
      cout<<"VIRIDIA\n"<<endl;
      break;
   case 1://1= GREENNILL
   cout<<"GREENNILL\n"<<endl;
   break;
   case 2://2= SKYLY
      cout<<"SKYLY\n"<<endl;
      break;
   case 3://3= BLUEFULL
      cout<<"BLUEFULL\n"<<endl;
      break;
   case 4://4= PURPLENUM
      cout<<"PURPLENUM\n"<<endl;
      break;
   case 5://5= PINKAL
      cout<<"PINKAL\n"<<endl;
      break;
   case 6://6= REDRIA
      cout<<"REDRIA\n"<<endl;
      break;
   case 7://7= ORAN
      cout<<"ORAN\n"<<endl;
      break;
   case 8://8= YELLOWBOZE
      cout<<"YELLOWBOZE\n"<<endl;
      break;
   case 9://9= WHITILL
      cout<<"WHITILL\n"<<endl;
      break;
   default://not possible
      cout<<"nothing\n"<<endl;
      break;
   }

   return;
}


//*****************************************************************************
//   main()
//*****************************************************************************
int main()
{
   int id;

   char name[SIZE]={'\0'};

   cout<<"Enter your PSO character name: ";

   cin.getline(name,SIZE);//the user enters the character name

   cout<<"\nTotal value of "<<name<<" is "<<(id=getID(name))<<endl;

   cout<<"\nThe new value is "<<(id=getNewID(id))<<endl;

   printID(id);//prints the Section ID

   return 0;//program ends
}
//*****************************************************************************
//   end of program
//*****************************************************************************




===============================================================================
                   __________________________________________
                  < 8. Credits, Contact Info, Copyright Info >
                   
===============================================================================

Credits:

This guide was created by me, myself, and I.
Thanks to Sonic Team for making PSO.
I was inspired to write the section ID calculator program after reading the FAQ
by Miyuu.
I used Borland C++ 4.52 to compile and test the program.

Contact info:

Questions, corrections and comments can be emailed to me at:
SuperSteve1440@yahoo.com

You can check out other stuff at my homepage:
http://www.geocities.com/supersteve1440/


Copyright Info:

I created this guide and the source code myself.

Feel free to do anything you want with this document as long as you don't use
it for profitable/promotional purposes.

Please give me credit if you use any part of this document or my source code in
a guide or program of your own, or use it in any way not mentioned here.

You may put this document on your site, web page, etc. as long as you don't try
to take credit for it.

I've allowed several web sites on the net to present a copy of this document.
So, if you see this document or source code at a site or in another publication
and they don't give me credit, then they copied me and they should be dragged
into the street and shot (and, by all means, you should hack their asses).

This document Copyright  2001 Steve Ward.

All source code herein is copyright  2001 Steve Ward.

Phantasy Star Online was created by Sonic Team and is owned by Sega.

All names and trademarks Copyright  2000, 2001 Sega Enterprises, Ltd.



EOF