        ##############################
        Psycho World Translation Howto
	##############################

	Fabio R. Schmidlin - sd_snatcher at yahoodotcom

This documents describes how create a translation in your own language for
the game Psycho World. If you want it to be included on the game, just send
me a zip file containing it.

To calculate the adresses between the file offset and the address in RAM, have
in mind that all VISUALx.BIN Files are loaded at: 7F00h. So, you just need to
add 7F00h to the offset you have in the file to know the address it will have
when loaded on RAM.

========================================
       Character table:

The VISUAL.FNT contained on the LANGUAGE\EN directory has the fonts for
western languages. It is coded in ISO8859-1, which should be enough for many
of the languages. If your language requires characters not present there,
you can copy the VISUAL.FNT to your language dir and edit it with the
Tile Molester tool to match your requirements. You need to copy the supplied
VISUAL.xml file to the resource directory of TM so it can organize the images
corretly in two pages of an ASCII-like table arrangement.

There are some extra non ISO8859-1 characters added to the font:
!?	: A2h
!!	: A3h
...	: BEh (ellipsis)
y"      : ACh
!?	: BDh (upside-down, used in the Spanish language)
!!	: BCh (upside-down, used in the Spanish language)

Note1: There's no need to put spaces after after single-mark punctuation,
since the symbols are already drawn with a space right of them. Only the
double-mark punctuation (i.e. !?) will require a space. 
Note2: The japanese texts used quotes on all phrases. But this is not
usual on western texts, as can be seen on any game translation.
Note3: Each visual has its own max width of text. If you reach the last
column, an auto-linefeed will be done.
Note4: The last byte of the text buffers (not only the text lines) must be 00h.

========================================
       Translating

To translate, open the file VISUALx.BIN on a hexeditor and follow its
guidelines. 

Keep your text inside the limits imposed by each VISUAL file. Those limits are
listed on the begining of each session.

You'll notice every block of text in the TRANSLAT.TXT files has a ruler over
them. Its there to guide you on the limits of the screen. Put your texts there
before going to your texteditor. The dots on the rule represent the position
ofthe graphic window relative to the text area width. This way its easy even
to center your text when necessary.

I also used the following representation of the game's punctuation to adjust
the text before I pasted it on the hexeditor:

... = _
!?  = ?
!!  = !
?   = $
/   = !

After I did paste it on the hexeditor I just replace the symbols _?!$! with
those listed on the "special characters" session.


The best sequence to edit a file for me was:

1) Edit all texts inside this textfile, using the ruler as a guideline;
2) Make sure that the CR/LF on the file is on DOS format (only needed if you
   used a Linux or a Mac to edit this file);
3) Copy all blocks of text that fit on the 1st buffer of the visual file;
4) Copy all the remaining blocks of text to the 2nd buffer of the visual file;
5) Get the new offsets of each block of text and convert them to RAM pointers by
   adding 7F00h.
6) Update all the pointers of the visual file at the indicated offsets.
7) Adjust the timers so the music ends at the same time the cutscenes does.

After all this work to tranlate the game and detail this document, I hope you
don't forget to mention me on the "Translation" credits of your translation.  :)

You can also have a look at the PT_BR\TRANSLAT.TXT file. It was used on
the portuguese translation and may help you in your translation.

========================================
VISUAL0.BIN

Text limits: 25 columns, 4 rows
Buffer limits:
  Visual0.1) 0F41h~1065h
  Visual0.2) 13F4h~xxxxh  (enlarge the file as needed)

Timer between each letter at offset 0908h (16bit, default was 0005h)
Timer between screens at offset 01e2h (16bit, default was 0168h)

0.1) Pointer at offset 01DCh on file
--.--------------.-------
Year:19xx.In a beautiful
forest,there's an ESP
research lab.

0.2) Pointer at offset 01F6h on file
--.--------------.-------
Here,thanks to doctor
Knavik,many psychic
experiments take place.

0.3) Pointer at offset 020Ah on file
--.--------------.-------
The twin sisters,Lucia
and Cecile,work as his
voluntary assistants.
Until one day_

0.4) Pointer at offset 021Eh on file
--.--------------.-------
Someone blew up a
section of the lab.

0.5) Pointer at offset 0291h on file
--.--------------.-------
Huh,what? That noise,
was that an explosion?

0.6) Pointer at offset 02A2h on file
--.--------------.-------
I wonder if Cecile and
the doctor are OK_

0.7) Pointer at offset 02B3h on file
--.--------------.-------
Lucia,the monsters used
for our research escaped
and kidnaped Cecile.
-_?

0.8) Pointer at offset 02C4h on file
--.--------------.-------
You need to save Cecile.
This is an ESP amplifier
use it and go!

0.9) Pointer at offset 02D5h on file
--.--------------.-------
Cecile,I'll certainly
save you_

============================================================
VISUAL1.BIN

Text limits: 23 columns, 4 rows
Buffer limits:
  Visual1.1) 07BFh~087Fh
  Visual1.2) 08E2h~09BFh

Timer between each letter at offset 03C2h (16bit, default was 0005h)
Timer between screens at offset 00C6h (16bit, default was 00AFh)

1.1) Pointer at offset 00CCh on file
.--------------.-------
Cecile,where are you?
Cecile!

1.2) Pointer at offset 00E0h on file
.--------------.-------
_She's not here_
Why? I must tell
the doctor!

1.3) Pointer at offset 08DBh on file
.--------------.-------
Later,in the lab_

1.4) Pointer at offset 0114h on file
.--------------.-------
Doctor,doctor Knavik!
The monsters got him?
It can't be!

1.5) Pointer at offset 012Eh on file
.--------------.-------
       !

1.7) Pointer at offset 0162h on file
.--------------.-------
Why are there
monsters in the lab_$

1.8) Pointer at offset 0176h on file
.--------------.-------
What's that door?

1.9) Pointer at offset 018Ah on file
.--------------.-------
_What is this place$_
I wonder if the doctor
is all right_

1.11) Pointer at offset 020Fh on file
.--------------.-------
     Cecile_

1.12) Pointer at offset 023Fh on file
.--------------.-------
They won't get away
with this! Cecile,
doctor,please,be alive!

============================================================
VISUAL2.BIN

Text limits: 27 columns, 4 rows
Buffer limits:
  Visual2.1) 096Ah~0A48h
  Visual2.2) 0D33h~xxxxh (enlarge file as needed)

Timer between each letter at offset 03D2h (16bit, default was 0005h)
Timer between screens at offset 00C9h (16bit, default was 00b4h)


2.1) Pointer at offset 00CFh on file
----.--------------.-------
-Cecile,Cecile,wake up!
-I'm OK,but I discovered
 we're part of the
 doctor's experiment.

2.2) Pointer at offset 00E3h on file
----.--------------.-------
-The doctor is trying to
conquer the world with ESP.
-!

2.3) Pointer offset at 00F7h on file
----.--------------.-------
-It looks like the
 experiment is successful.
-D-Doctor?

2.4) Pointer at offset 010Bh on file
----.--------------.-------
I wanted to learn about the
human awakening system.The
amplifier accelerates it,
and worked quite well.And_

2.5) Pointer at offset 011Fh on file
----.--------------.-------
with the amount of super-
natural powers of humans,I
realized there are no
obstacles to my plans.

============================================================
VISUAL3.BIN

Text limits: 26 columns, 4 rows
Buffer limits:
  Visual2.1) 0CE2h~0D67h
  Visual2.2) 1865h~xxxxh (enlarge file as needed)

Timer between each letter at offset 05FFh (16bit, default was 0005h)
Timer between screens at offset 016Fh (16bit, default was 0005h)

3.1) Pointer at offset 0175h on file
---.--------------.-------
-Look sis,you can see
 the lab from here.
-I still can't believe
 he actually was an alien_

3.2) Pointer at offset 0197h on file
---.--------------.-------
-More importantly,are
 you hurt,Cecile$
-I'm OK.And you$
-I'm as OK as I look.

3.4) Pointer at offset 021Ch on file
---.--------------.-------
  A shooting star/
  Let's make a wish.

============================================================
VISUAL3.BIN, credits

Text limits: 30 columns
Buffer limits: 1894h~xxxxh (enlarge the file as needed)


4.1) Pointer at offset 1123h on file
Programming

4.2) Pointer at offset 116ah on file
Visual Graphics Design

4.3) Pointer at offset 11A0h on file
Graphics Design

4.4) Pointer at offset 11E7h on file
Map Design

4.5) Pointer at offset 1867h on file
English Translation<0ah>
FABIO R. SCHMIDLIN
RICARDO BITTENCOURT
RIEKS WARENDORP TORRINGA

4.6) Pointer at offset 1890h on file
Characters Design

4.7) Pointer at offset 1253h on file
Total Coordination

4.8) Pointer at offset 1278h on file
Music

4.9) Pointer at offset 12AEh on file
Special Thanks

4.10) Pointer at offset 131Eh on file
Presented by HERTZ CORP

============================================================
PSYCHO.PRG and BTEST.BIN

Those files contain the main game and the Music Test, respectively. You can
easily translate them using an hexeditor. If you need more space for your
texts, try using the files from the Brazilian Portuguese version, as I had to
provide more space for many strings. Particularly, on the BTEST.BIN I left much
more space than necessary, to accommodate other translations as best as
possible.

