• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 18, 2024, 05:12:01 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


Translation to Brazilian Portuguese

Started by LexSeifer, December 13, 2010, 02:02:10 pm

LexSeifer

There's lots of good romhackers comunities and foruns in Brazil, and there's some eforts to translate this game. But the great major ones are good enthusiast, with some lack in language knowledge and translation, resulting in great mistakes in grammar or semantics.

Me and my brother, and four more friends minor moders are wanting to reunite to translate this game to our language, in an organized way, and after some time we found that this comunity have great tools to help us in our efforts.

I wanted to know if tools like FFTacText is recomended to a project of translation, since there are some issues, like accented words/characters. Other doubt: one column in the application shows "width". This represents the maximum number of characters in that line?

We'll be gladly happier if you people answer our request, and we are translating based on the FFTactics complete patch.

thanks!!! :D

ffta707

FFTactext would translate the abilities, characters, weapons, items and things like that. You are going to need Xifanie's event compiler, and decompiler, which can be very hard to get right. It might be easier for translations though.

LexSeifer

Ill will look for it, but might i ask you where to find this event compiler/decompiler?

philsov

Quote from: "LexSeifer"Ill will look for it, but might i ask you where to find this event compiler/decompiler?

http://ffhacktics.com/downloads.php?id=9
Just another rebel plotting rebellion.

LexSeifer

Thank you, philsov.

It's a great tool, and we have started our project.

There's only one problem, concerning the accented vowels, like "é" and "á", or the letters like "ç", that are used in our language. The only way to do that is by hex edit, or can i do with some graphic way?

pokeytax

  • Modding version: PSX

LexSeifer

i always got this mesage when i try to use Event Compiler:

"Access violation at address 00404752 in module 'Event_Compiler_2.01b.exe'. Read of address 102AFFF8."

what could it be?

philsov

can you copy/paste your config.ini contents and your event.txt?  Please spoiler them.

edit:  config.ini should look something like this:

[Settings]

TESTEVT='TEST.EVT'
TEXTFILE='event.txt'
Offset='00004000'
MultiCompile=0
PSP=0
Rip=1
DisplayText=1
RawText=1
Popup=1
Multi=0
DisplayOffsets=0
OpenChar={
CloseChar=}
PreText=''
Help=1
Just another rebel plotting rebellion.

LexSeifer

Here's my config:

[Settings]

TESTEVT='TEST.EVT'
TEXTFILE='event.txt'
Offset='00004000'
MultiCompile=0
PSP=0
Rip=1
DisplayText=1
RawText=1
Popup=1
Multi=0
DisplayOffsets=0
OpenChar={
CloseChar=}
PreText=''
Help=1

And my "event.txt":

// __________________________________________________________________
//| Event Script x002 | Event Offset: x004000 | Text offset: x0048F9 |
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Offset(x00004000)
//Remove the previous line if you wish not to override the offset in CONFIG.INI.
Text(x000008F9)
//Remove the previous line if you wish text to compile directly after instructions.

{7C}()
LoadEVTCHR(x01,x00,x00)
WaitForInstruction(x34,x00)
SaveEVTCHR(x01)
{6D}(r0000)
WarpUnit(x02,x00,001,003,x00,x03)
WarpUnit(x17,x00,001,004,x00,x03)
WarpUnit(x83,x00,001,005,x00,x03)
WarpUnit(x84,x00,001,004,x00,x03)
ColorUnit(x13,x00,x04,-001,-001,-001,000)
Wait(00002)
Camera(+02040,-00572,+00488,+00750,+03074,+00000,+08192,+00001)
WaitForInstruction(x04,x00)
UnitAnim(x34,x00,x02,x00,x00)
UnitAnim(x13,x00,x02,x00,x00)
Background(000,000,000,000,000,000,000,x00)
UnitAnim(x0C,x00,x58,x02,x01)
{4D}(r80)
ColorField(x04,-004,-004,-004,000)
ColorUnit(x00,x00,x04,-008,-008,-006,000)
{63}(rA8)
{1D}()
Camera(+01528,-00364,+00488,+00510,+03074,+00000,+05952,+00260)
Camera(+01448,-00328,+00488,+00350,+03202,+00000,+04128,+00080)
Camera(+01256,-00328,+00488,+00334,+03314,+00000,+04032,+00068)
Camera(+01000,-00280,+00496,+00318,+03442,+00000,+03808,+00056)
Camera(+00872,-00220,+00500,+00308,+03552,+00000,+04096,+00032)
Camera(+00840,-00220,+00504,+00302,+03584,+00000,+04096,+00048)
{1E}()
{49}()
{45}(r020001)
{45}(r170001)
{45}(r830001)
{45}(r800001)
{45}(r810001)
{4A}()
Wait(00180)
{1A}(r04141F1F04)
DisplayMessage(x10,x09,x0001,x0C,x00,x00,+00000,+00060,+00000,x00)
Wait(00086)
{1A}(r0400000004)
Wait(00148)
UnitAnim(x0C,x00,x59,x02,x01)
WaitForInstruction(x04,x00)
Camera(+00840,-00220,+00504,+00302,+03584,+00000,+04096,+00004)
WaitForInstruction(x04,x00)
WaitForInstruction(x01,x00)
Wait(00030)
ColorUnit(x00,x00,x04,+000,+000,+000,004)
ColorField(x04,+000,+000,+000,004)
Wait(00060)
DisplayMessage(x10,x12,x0002,x34,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
Wait(00030)
UnitAnim(x0C,x00,x5A,x02,x01)
Wait(00030)
DisplayMessage(x10,x91,x0003,x0C,x00,x00,+00000,+00000,+00008,x02)
WaitForInstruction(x01,x00)
CloseDialog(x01,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
Wait(00050)
UnitAnim(x0C,x00,x59,x02,x01)
Wait(00070)
UnitAnim(x34,x00,x5B,x02,x00)
DisplayMessage(x10,x92,x0004,x34,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
UnitAnim(x34,x00,x5C,x02,x00)
CloseDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
UnitAnim(x13,x00,x03,x00,x00)
Wait(00016)
SpriteMove(x13,x00,+00028,+00000,+00000,x00,x01,+00040)
{6F}(r1300)
UnitAnim(x13,x00,x02,x00,x00)
Wait(00030)
DisplayMessage(x10,x92,x0005,x13,x00,x00,+00000,-00008,+00012,x02)
WaitForInstruction(x01,x00)
CloseDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
Wait(00080)
{4B}()
{6D}(r0000)
ResetUnitColor(x02,x00)
ResetUnitColor(x17,x00)
Wait(00001)
ResetUnitColor(x80,x00)
ResetUnitColor(x81,x00)
ResetUnitColor(x83,x00)
Sound(x0048)
Wait(00010)
UnitAnim(x34,x00,x02,x00,x00)
RotateUnit(x34,x00,x04,x02,x01,000)
Wait(00020)
RotateUnit(x13,x00,x02,x01,x00,000)
{63}(rCA)
Camera(+00616,-00220,+00504,+00302,+04432,+00000,+04096,+00064)
BlockStart()
ColorUnit(x17,x00,x01,+000,+000,+000,000)
UnitAnim(x17,x00,x03,x00,x00)
SpriteMove(x17,x00,-00028,+00000,+00000,x00,x01,+00001)
{6F}(r1700)
Draw(x17,x00)
ColorUnit(x17,x00,x08,+000,+000,+000,002)
Wait(00017)
SpriteMove(x17,x00,+00000,+00000,+00000,x00,x01,+00028)
{6F}(r1700)
WalkTo(x17,x00,003,004,x00,x00,+008,x00)
WaitWalk(x17,x00)
UnitAnim(x17,x00,x02,x00,x00)
BlockEnd()
BlockStart()
Wait(00020)
ColorUnit(x02,x00,x01,+000,+000,+000,000)
SpriteMove(x02,x00,-00028,+00000,+00000,x00,x01,+00001)
{6F}(r0200)
ColorUnit(x02,x00,x08,+000,+000,+000,002)
Wait(00017)
Draw(x02,x00)
SpriteMove(x02,x00,+00000,+00000,+00000,x00,x01,+00028)
{6F}(r0200)
WalkTo(x02,x00,002,003,x00,x00,+008,x01)
MovementAnim(r02000200)
BlockEnd()
BlockStart()
Wait(00040)
ColorUnit(x83,x00,x01,+000,+000,+000,000)
SpriteMove(x83,x00,-00028,+00000,+00000,x00,x01,+00001)
{6F}(r8300)
ColorUnit(x83,x00,x08,+000,+000,+000,002)
Wait(00017)
Draw(x83,x00)
SpriteMove(x83,x00,-00014,+00000,+00000,x00,x01,+00028)
{6F}(r8300)
WalkTo(x83,x00,002,005,x00,x00,+005,x01)
MovementAnim(r83000200)
WaitWalk(x83,x00)
BlockEnd()
Wait(00020)
UnitAnim(x0C,x00,x5D,x02,x00)
Wait(00014)
UnitAnim(x0C,x00,x5E,x02,x00)
WaitForInstruction(x08,x00)
{1C}(r02)
DisplayMessage(x10,x91,x0006,x17,x00,x00,+00000,+00000,+00000,x01)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x92,x0007,x34,x00,x00,+00000,+00000,+00001,x00)
WaitForInstruction(x01,x00)
CloseDialog(x01,xFFFF,x00,x00)
Wait(00004)
CloseDialog(x02,xFFFF,x00,x00)
Wait(00010)
UnitAnim(x02,x00,x61,x02,x00)
Wait(00005)
UnitAnim(x83,x00,x63,x02,x00)
Wait(00025)
UnitAnim(x17,x00,x5F,x02,x00)
Wait(00025)
DisplayMessage(x10,x11,x0008,x17,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
Wait(00024)
DisplayMessage(x10,x92,x0009,x34,x00,x00,+00000,+00000,+00001,x00)
WaitForInstruction(x01,x00)
Wait(00005)
UnitAnim(x17,x00,x60,x02,x00)
Wait(00005)
DisplayMessage(x10,x91,x000A,x17,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
Wait(00003)
CloseDialog(x02,x000B,x00,x00)
WaitForInstruction(x01,x00)
CloseDialog(x02,xFFFF,x00,x00)
Wait(00003)
CloseDialog(x01,xFFFF,x00,x00)
Wait(00013)
UnitAnim(x0C,x00,x65,x02,x00)
Wait(00003)
UnitAnim(x0C,x00,x02,x00,x00)
Wait(00015)
DisplayMessage(x10,x11,x000C,x0C,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
Wait(00003)
UnitAnim(x02,x00,x62,x02,x00)
Wait(00003)
UnitAnim(x83,x00,x64,x02,x00)
{1C}(r01)
Camera(+00616,-00220,+00616,+00302,+04608,+00000,+04096,+00060)
Wait(00030)
WaitForInstruction(x04,x00)
UnitAnim(x34,x00,x02,x00,x00)
RotateUnit(x34,x00,x09,x01,x00,000)
Wait(00012)
UnitAnim(x13,x00,x02,x00,x00)
RotateUnit(x13,x00,x0D,x00,x00,000)
Wait(00030)
UnitAnim(x0C,x00,x02,x00,x00)
RotateUnit(x0C,x00,x04,x02,x00,000)
{64}(r0C00)
WalkTo(x0C,x00,006,004,x00,x00,+004,x00)
Wait(00075)
RotateUnit(x13,x00,x00,x00,x00,000)
WaitWalk(x0C,x00)
UnitAnim(x0C,x00,x02,x00,x00)
Wait(00008)
RotateUnit(x0C,x00,x08,x01,x00,000)
Wait(00030)
DisplayMessage(x10,x91,x000D,x13,x00,x00,+00026,+00014,+00000,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x92,x000E,x0C,x00,x00,+00000,+00000,+00001,x03)
WaitForInstruction(x01,x00)
CloseDialog(x01,xFFFF,x00,x00)
Wait(00008)
CloseDialog(x02,xFFFF,x00,x00)
{49}()
{45}(r840001)
{4A}()
Wait(00070)
{4B}()
{6D}(r8400)
ResetUnitColor(x84,x00)
Wait(00001)
ColorUnit(x84,x00,x04,-001,-001,-001,000)
Wait(00002)
Sound(x0048)
ColorField(x04,+000,+002,+002,000)
Wait(00002)
ColorField(x04,+000,+001,+001,000)
Wait(00002)
UseFieldObject(x01,x00)
Wait(00006)
Sound(x0048)
ColorField(x04,+000,+000,+000,001)
Wait(00009)
BlockStart()
ColorUnit(x84,x00,x01,+000,+000,+000,000)
Wait(00002)
SpriteMove(x84,x00,-00030,+00000,+00000,x00,x01,+00001)
{6F}(r8400)
UnitAnim(x84,x00,x6A,x02,x00)
Draw(x84,x00)
ColorUnit(x84,x00,x08,+000,+000,+000,004)
SpriteMove(x84,x00,+00000,+00000,+00000,x02,x0E,+00046)
{6F}(r8400)
SpriteMove(x84,x00,+00024,+00000,+00000,x02,x0E,+00062)
{6F}(r8400)
SpriteMove(x84,x00,+00032,+00000,+00000,x01,x0C,+00026)
{6F}(r8400)
UnitAnim(x84,x00,x21,x00,x00)
Wait(00006)
Sound(x0028)
UnitAnim(x84,x00,x24,x00,x00)
BlockEnd()
Camera(+00440,-00204,+00600,+00302,+04608,+00000,+04096,+00064)
UnitAnim(x17,x00,x02,x00,x00)
RotateUnit(x17,x00,x00,x01,x00,000)
SpriteMove(x17,x00,-00014,+00000,+00034,x00,x01,+00040)
Wait(00010)
{60}(r001E)
FaceUnit(x84,x00,x0C,x00,x00,x00,x00)
RotateUnit(x13,x00,x04,x01,x01,000)
UnitAnim(x83,x00,x02,x00,x00)
RotateUnit(x83,x00,x00,x01,x00,000)
SpriteMove(x83,x00,-00014,+00000,+00022,x00,x01,+00032)
Wait(00010)
{8C}(r020006020000)
UnitAnim(x02,x00,x02,x00,x00)
SpriteMove(x02,x00,+00000,+00000,-00016,x00,x01,+00040)
RotateUnit(x34,x00,x04,x00,x01,000)
Wait(00022)
UnitAnim(x13,x00,x03,x00,x00)
SpriteMove(x13,x00,-00064,-00001,-00021,x02,x0C,+00100)
Wait(00040)
RotateUnit(x02,x00,x08,x00,x01,000)
{6F}(r1300)
UnitAnim(x13,x00,x67,x02,x00)
Sound(x0041)
Wait(00030)
Music(x01,+096,000)
Wait(00030)
DisplayMessage(x10,x91,x000F,x84,x00,x00,-00011,+00014,+00032,x12)
WaitForInstruction(x01,x00)
CloseDialog(x01,xFFFF,x00,x00)
DisplayMessage(x10,x12,x0010,x13,x00,x00,-00031,-00006,-00032,x00)
WaitForInstruction(x01,x00)
SpriteMove(x34,x00,+00000,+00000,+00000,x00,x01,+00001)
{6F}(r3400)
Wait(00010)
UnitAnim(x34,x00,x04,x00,x00)
Sound(x0030)
SpriteMove(x34,x00,-00012,-00002,+00001,x00,x01,+00008)
{6F}(r3400)
SpriteMove(x34,x00,-00025,+00000,+00002,x00,x01,+00008)
{6F}(r3400)
SpriteMove(x34,x00,-00039,-00002,+00003,x00,x01,+00007)
{6F}(r3400)
SpriteMove(x34,x00,-00054,+00000,+00004,x00,x01,+00007)
{6F}(r3400)
SpriteMove(x34,x00,-00070,-00003,+00006,x00,x01,+00006)
{6F}(r3400)
SpriteMove(x34,x00,-00086,+00000,+00008,x00,x01,+00006)
{6F}(r3400)
RotateUnit(x17,x00,x02,x00,x00,000)
RotateUnit(x02,x00,x04,x00,x01,000)
SpriteMove(x34,x00,-00102,-00003,+00009,x00,x01,+00006)
{6F}(r3400)
SpriteMove(x34,x00,-00118,+00000,+00010,x00,x01,+00006)
{6F}(r3400)
ColorUnit(x34,x00,x01,+000,+000,+000,002)
SpriteMove(x34,x00,-00134,-00004,+00010,x00,x01,+00006)
{6F}(r3400)
SpriteMove(x34,x00,-00150,+00000,+00012,x00,x01,+00006)
{6F}(r3400)
SpriteMove(x34,x00,-00166,+00000,+00012,x00,x01,+00006)
{6F}(r3400)
Erase(x34,x00)
Wait(00015)
ZERO(x0057)
ADD(x0057,x0000)
BlockStart()
{7E}(r57001C00)
RotateUnit(x02,x00,x08,x00,x00,000)
{7E}(r57001E00)
RotateUnit(x17,x00,x00,x00,x00,000)
BlockEnd()
DisplayMessage(x10,x91,x0011,x17,x00,x00,+00020,+00000,+00000,x00)
WaitForInstruction(x01,x00)
WaitForInstruction(x08,x00)
DisplayMessage(x10,x92,x0013,x02,x00,x00,+00000,+00000,-00006,x00)
WaitForInstruction(x01,x00)
CloseDialog(x01,x0014,x00,x00)
WaitForInstruction(x01,x00)
CloseDialog(x02,xFFFF,x00,x00)
Wait(00008)
CloseDialog(x01,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
RotateUnit(x17,x00,x04,x01,x01,001)
BlockStart()
SpriteMove(x17,x00,-00014,+00000,+00034,x00,x01,+00001)
{6F}(r1700)
UnitAnim(x17,x00,x03,x00,x00)
SpriteMove(x17,x00,-00057,+00000,+00012,x00,x01,+00040)
{6F}(r1700)
RotateUnit(x17,x00,x04,x01,x01,000)
UnitAnim(x17,x00,x03,x00,x00)
SpriteMove(x17,x00,-00090,+00000,-00008,x00,x01,+00040)
Wait(00020)
ColorUnit(x17,x00,x01,+000,+000,+000,002)
Wait(00021)
Erase(x17,x00)
BlockEnd()
BlockStart()
Wait(00060)
SpriteMove(x02,x00,+00000,+00000,-00016,x00,x01,+00001)
{6F}(r0200)
RotateUnit(x02,x00,x04,x02,x00,000)
{64}(r0200)
Wait(00020)
UnitAnim(x02,x00,x03,x00,x00)
SpriteMove(x02,x00,-00062,+00000,+00008,x00,x01,+00080)
Wait(00060)
ColorUnit(x02,x00,x01,+000,+000,+000,002)
Wait(00021)
Erase(x02,x00)
BlockEnd()
BlockStart()
Wait(00030)
UnitAnim(x83,x00,x03,x00,x00)
SpriteMove(x83,x00,-00031,+00000,-00006,x00,x01,+00060)
{6F}(r8300)
RotateUnit(x83,x00,x04,x00,x01,001)
SpriteMove(x83,x00,-00060,+00000,-00036,x00,x01,+00060)
Wait(00040)
ColorUnit(x83,x00,x01,+000,+000,+000,002)
Wait(00021)
Erase(x83,x00)
BlockEnd()
UnitAnim(x13,x00,x68,x02,x00)
Wait(00060)
WaitForInstruction(x08,x00)
RemoveUnit(x83,x00)
Wait(00002)
{49}()
{45}(r820001)
{82}()
{4A}()
Wait(00080)
DisplayMessage(x10,x11,x0012,x0C,x00,x00,+00003,+00000,-00002,x00)
WaitForInstruction(x01,x00)
Wait(00020)
{63}(rAA)
Camera(+00680,-00204,+00600,+00430,+04656,+00000,+02656,+00133)
Wait(00070)
ColorField(x00,-031,-031,+000,004)
ColorUnit(x00,x00,x00,-031,-031,+000,004)
Wait(00033)
ColorUnit(x00,x00,x00,-031,-031,-031,004)
ColorField(x00,-031,-031,-031,004)
Wait(00033)
RemoveUnit(x13,x00)
{4B}()
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{delay:05}Pai,{delay:0F} {delay:05}nao  abandona teus filhos rebeldes de Ivalice{br}
mas livrai-nos de nossos pecados, para que possamos conhecer a salvacao.{delay:3C}.{delay:01}{end}

//Message x02
{font:08}Cavaleira{br}
{font:00}Lady Ovelia, ja e hora.{end}

//Message x03
{font:08}Ovelia{br}
{font:00}Não vou demorar, Agrias.{end}

//Message x04
{font:08}Agrias{br}
{font:00}Vossa escolta ja chegou,{br}
Majestade.{end}

//Message x05
{font:08}Priest{br}
{font:00}Por favor, atenta-te as palavras da boa senhora, Alteza.{br}
Deves te apressar.{end}

I have made just a bit editing, to test.

ffta707

My best assumption would be the accented letter "a" at display message 03.