Final Fantasy Hacktics

Modding => Hacking/Patching Tools => Topic started by: RavenOfRazgriz on March 28, 2017, 02:02:57 pm

Title: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: RavenOfRazgriz on March 28, 2017, 02:02:57 pm
MediaFire FULL Download (http://www.mediafire.com/file/uw07qp211q9vc2k/EasyVent+Editor+Super+Perfect+2.0.rar)
MediaFire UPDATER Download (http://www.mediafire.com/file/alkfvs7f7d7do7t/EasyVent+Editor+Super+Perfect+2.0+UPDATER.rar)

----------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------

Hijacking Ravens thread to upload my Unofficial EasyVent 2.1 update. 2.1 is the same as 2.0, but it fixes issues in a couple events that weren't setup correctly in 2.0, such as the mid-bttle dialogue with Balk and Ramza in the battle right before the end of the game. This also adds all the FFT - The Lion War events to the folder already created for it in 2.0, as they were always supposed to be there, but were not ready when 2.0 was released. This includes the TLW TEST.EVT file as well, and a few typo fixes in the readme.

You can download the UNOFFICIAL EasyVent Editor Super Perfect 2.1 from the attachment at the bottom of this post (reupload by RetroTypes)


----------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------

If this is your first time using EasyVent Editor Super Perfect 2.0, please download the full program.  Legacy versions (1.91 and previous) are no longer supported.  If you already have a copy of EasyVent Editor Super Perfect 2.0 but an update has been released, simply download the updater and apply it to your copy of EasyVent Editor Super Perfect 2.0, overwriting all files where applicable. 

When you want something done more right, it's best to take three years off to code an autistic MMO then re-do it yourself in a day.  Welcome to EasyVent Editor Super Perfect 2.0!  While this shares the name of EasyVent Editor Super Perfect with another program of similar purpose by some defunct bastard named RavenOfRazgriz, this entirely-new tool shares nothing in common with it aside from the concept.  EasyVent Editor Super Perfect 2.0 will bring the latest and greatest in event editing, including many features designed explicitly for managing large projects and managing multiple projects at once.

(http://i.imgur.com/OMKtpDm.png)

Features Included:

Stuff Missing:

[Shortcut List]
General:
F1 - Open README.txt
CTRL+L / F4 - Close Active Window
CTRL+R / F5 - Refresh Folders/etc. in Active Window

Text-Editing Windiow:
CTRL+X - Cut
CTRL+C - Copy
CTRL+V - Paste
CTRL+A - Select All
CTRL+F - Find
CTRL+Z - Undo
CTRL+Y - Redo
F3 - Find/Replace Next

EasyVent Editor Super Perfect 2.0 - Home:
CTRL+O - Open Event
CTRL+S - Save Event
CTRL+E - Compile Event
CTRL+P - Compile Directory
CTRL+D - Decompile .EVT
CTRL+I - Open Instruction Viewer
CTRL+M - Open Map Viewer
CTRL+G - Open Camera Generator
CTRL+N - Open SpriteMove Generator
CTRL+B - Open Batch Offset Rewriter

EasyVent Editor Super Perfect 2.0 - Camera Generator:
CTRL+G - Generate Camera() Command

EasyVent Editor Super Perfect 2.0 - SpriteMove Generator:
CTRL+N - Generate SpriteMove() Commannd

EasyVent Editor Super Perfect 2.0 - Batch Offset Rewriter:
CTRL+B - Batch Offset Rewrite

More details can be found in the included README.txt file.  Bugtested only by myself.  Post bugs and they'll be fixed whenever I get around to them based on urgency.  Enjoy, you filthy animals.
Title: Re: EasyVent Editor Super Perfect 2.0 - RELEASE!
Post by: nitwit on March 28, 2017, 02:11:21 pm
Great job!  I want to hear more about the autistic MMO, give us a thread on it.

Back up your source code this time..  I recommend a private repo or dropbox.
Title: Re: EasyVent Editor Super Perfect 2.0 - RELEASE!
Post by: RavenOfRazgriz on March 28, 2017, 02:39:05 pm
Quote from: nitwit on March 28, 2017, 02:11:21 pm
Great job!  I want to hear more about the autistic MMO, give us a thread on it.

Back up your source code this time..  I recommend a private repo or dropbox.

I have plenty of backups these days, don't worry.

And maybe I will put a thread up on that once I'm working on it again.
Title: Re: EasyVent Editor Super Perfect 2.0 - LAST UPDATE: 3/30/17
Post by: RavenOfRazgriz on March 30, 2017, 04:49:39 pm
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 3/30/2017
Post by: Nyzer on April 10, 2017, 01:47:17 am
Two bugs noticed so far:

1) The InstructionViewer says SpriteMove uses +YYYYY,+ZZZZZ,+XXXXX when it's actually +XXXXX,+ZZZZZ,+YYYYY. (http://ffhacktics.com/wiki/Event_Instruction_3B)

2) When you're trying to type in the Find window, typing N immediately triggers the "Find Next" option.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/12/2017
Post by: RavenOfRazgriz on April 12, 2017, 01:09:59 pm
Updated to fix the two bugs reported by nyzer.

Users who already have EVSP2.0 as always can simply install the Updater instead of redownloading the entire client.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/12/2017
Post by: Nyzer on April 24, 2017, 10:05:10 pm
Oh, was the config file in the download supposed to be pre-set for savestate editing?

It's aimed at 00004A9C (or something; I already saved over it and forgot exactly what it was) instead of 0004A96C.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/12/2017
Post by: 3lric on April 24, 2017, 10:40:51 pm
Quote from: nyzer on April 24, 2017, 10:05:10 pm
Oh, was the config file in the download supposed to be pre-set for savestate editing?

It's aimed at 00004A9C (or something; I already saved over it and forgot exactly what it was) instead of 0004A96C.


You don't touch the config.ini when using evsp. Use the savestate button when you want to compile to save state. EVSP will do it for you.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/12/2017
Post by: RavenOfRazgriz on April 25, 2017, 03:16:52 am
Quote from: nyzer on April 24, 2017, 10:05:10 pm
Oh, was the config file in the download supposed to be pre-set for savestate editing?

It's aimed at 00004A9C (or something; I already saved over it and forgot exactly what it was) instead of 0004A96C.


Posting to remind myself to look into this tomorrow, will put out an output tomorrow morning when I have a bit of time to code if it's needed.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/25/2017
Post by: RavenOfRazgriz on April 25, 2017, 01:28:48 pm
MAIN DOWNLOAD and UPDATER DOWNLOAD both updated with the following fixes:

Please download or update to the newest version!
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/25/2017
Post by: Nyzer on April 25, 2017, 10:12:26 pm
Trying to compile now brings up an error message:

(http://i.imgur.com/GywgAjJ.png)

I'd mess around with it, but I'm not sure how it handles its new auto-detection so I'm thinking I probably shouldn't.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/25/2017
Post by: RavenOfRazgriz on April 25, 2017, 10:18:34 pm
That's interesting.  Might not have a chance to look at it until tomorrow.  For now, open your CONFIG.INI and delete the comment that''s after the Offset='BLAHBLAH' entries and it should compile.  I'll sort it out when I can.  That's what I get for rushing out the update in the ~1hr of time I had to work on it this morning.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: RavenOfRazgriz on April 26, 2017, 12:31:17 pm
Updated to 4/26/2017 revision, issue should be fixed by just removing the comments and adjusting the error-checking code in EasyVent Editor Super Perfect 2.0 accordingly.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: Jumza on May 08, 2017, 10:46:38 am
If EVSP detects 'Incomplete Or Invalid Event Instruction On Line x' it won't let you save the file at all. It should stop you from compiling but not saving :P
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: 3lric on May 08, 2017, 05:39:28 pm
Quote from: Jumza on May 08, 2017, 10:46:38 am
If EVSP detects 'Incomplete Or Invalid Event Instruction On Line x' it won't let you save the file at all. It should stop you from compiling but not saving :P

(https://www.dropbox.com/s/0px8qpebx47tv9w/Jumhard.jpg?raw=1)
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: Nyzer on September 23, 2017, 07:41:47 pm
Oh, Raven - I was running into an error shortly before I left on my vacation, but in my haste to get an event done before I had to go (I did not succeed) I failed to report it.

If you turn on the offset option, the compiler displays the offset message long enough for EVSP to report an error with compiling. I closed the offset display and hit try again, and it closes like normal, with the event compiled & functional.

Also, the previous issue of having the textbox jump back to the top when you Compile to Savestate without commenting out the offset is still a thing. Pretty sure I was using the newest version.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: Nyzer on January 06, 2019, 05:02:12 pm
Started to get this error after removing an extra, unnecessary EventEnd() command.

Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

Conversion from string "Input " to type 'Double' is not valid.


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidCastException: Conversion from string "Input " to type 'Double' is not valid. ---> System.FormatException: Input string was not in a correct format.
   at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
   --- End of inner exception stack trace ---
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value)
   at EasyVent_Editor_Super_Perfect_2._0___Hub.Form1.EventConsistency(String EventToWrite, String EventTitle, String Directory)
   at EasyVent_Editor_Super_Perfect_2._0___Hub.Form2.Button3_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
EasyVent Editor Super Perfect 2.0 - Home
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/USER/Documents/FFTactics%20Work/Tools/EasyVent%20Editor%20Super%20Perfect%202.0/easyvent%20editor%20super%20perfect%202.0%20-%20home.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3221.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3221.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


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




Music(x01,-000,000)

//Check for an as-yet undetermined variable for the Skip Scene option.
ZERO(x0000)
ZERO(x0001)
ADDVar(x0001,x0000)
EQ()
JumpForwardIfNot(x01)
//The Skip Scene option.
DisplayMessage(x10,x63,x0028,x00,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
ZERO(x0000)
ZERO(x0001)
ADDVar(x0001,x0018)
EQ()
EventEnd()
//End of Skip Scene option.
ForwardTarget(x01)


RemoveUnit(x01,x00)
RemoveUnit(x06,x00)


AddGhostUnit(x01,x00,x00,004,001,x00,x02,x00)

AddGhostUnit(x04,x00,x01,004,011,x00,x02,x00)

AddGhostUnit(x1E,z00,x02,005,001,x00,x02,x00)

AddGhostUnit(x64,x02,x03,004,002,x00,x02,x00)

AddGhostUnit(x7B,x02,x04,004,000,x00,x02,x00)

AddGhostUnit(x80,x02,x05,005,000,x00,x02,x00)


Camera(+00904,-00700,+00304,+00341,-01536,+00000,+04096,+00000)
Reveal(120)
Camera(+00904,-00000,+00304,+00341,-01536,+00000,+04096,+00120)

Wait(00040)
WalkTo(x67,x00,003,008,x00,x00,+008,x01)
WalkToAnim(x67,x00,x0002)
WalkTo(x64,x00,004,008,x00,x00,+008,x01)
WalkToAnim(x64,x00,x0002)
WalkTo(x66,x00,005,008,x00,x00,+008,x01)
WalkToAnim(x66,x00,x0002)
WalkTo(x68,x00,004,007,x00,x00,+008,x01)
WalkToAnim(x68,x00,x0002)
WalkTo(x69,x00,005,007,x00,x00,+008,x01)
WalkToAnim(x69,x00,x0002)
WaitWalk(x67,x00)
UnitAnimRotate(x67,x00,x08,x0024,x00)
WaitRotateUnit(x67,x00)
WaitForInstruction(x04,x00)

DisplayMessage(x10,x13,x0001,x67,x00,x00,-00000,-00000,-00000,x03)
WaitForInstruction(x01,x00)

EventEnd()

//INSTRUCTION SECTION END -  TEXT START


======

So, apparently there's an issue there in which I have a z instead of an x by mistake. I don't know why that would crash the editor even when just saving the event, or why having EventEnd() before that error would make the editor completely ignore it and work properly for both saving and compiling.

For the sake of documentation, I'm bolding the bad z command too.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: Nyzer on June 29, 2019, 08:39:22 pm
I've come across a few error messages like this when I miss or mistype something, and I figured I'd document the ones I remember for future use or for anyone else who might use this tool.

Conversion from string " " to type 'Integer' is not valid.

I get this when I try to save a new event with no Offset and the first command is Pause(). It doesn't give me this same error when I save an existing event.

Conversion from string "Input " to type 'Double' is not valid.

As mentioned in my last post here, this happens when I put a z instead of an x somewhere.

I'll add more to this if I come across any more unclear errors in the future.
Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: DarthFutuza on November 25, 2019, 06:49:01 pm
Found an error in one of the events supplied with this editor.  In ".\Event Directories\Final Fantasy Tactics - PSX\316 Lost Sacred Precints (Balk and Ramza talk).txt"

Contains the following:

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

{63}(rAA)
Focus(x03,x00,x03,x00,x00)
Camera(-00316,+01288,+00302,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
InflictStatus(x03,x00,x00,x0C,x00)
WaitForInstruction(x43,x00)
FaceUnit(x2B,x00,x03,x00,x00,x01,x00)
WaitRotateUnit(x03,x00)
Wait(00010)
DisplayMessage(x10,x70,x0002,x03,x00,x00,+00000,+00000,+00000,x02)
WaitForInstruction(x01,x00)
Focus(x2B,x00,x2B,x00,x00)
Camera(+00616,-00172,+00840,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
InflictStatus(x2B,x00,x00,x0C,x00)
WaitForInstruction(x43,x00)
FaceUnit(x03,x00,x2B,x00,x00,x01,x00)
WaitRotateUnit(x2B,x00)
Wait(00010)
DisplayMessage(x10,x70,x0003,x2B,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x03,x00,x03,x00,x00)
Camera(+00000,+25352,+17320,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0004,x03,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x2B,x00,x2B,x00,x00)
Camera(+09722,+09256,+10295,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0005,x2B,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x03,x00,x03,x00,x00)
Camera(+10253,+14116,-01493,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0006,x03,x00,x00,+00000,+00000,+00000,x01)
WaitForInstruction(x01,x00)
Focus(x69,x00,x69,x00,x00)
Camera(+10289,+13050,-02007,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00010)
RotateUnit(x03,x00,x14,x00,x01,x00)
WaitRotateUnit(x03,x00)
RotateUnit(x2B,x00,x14,x00,x01,x00)
WaitRotateUnit(x2B,x00)
March(x03,x00,000)
March(x2B,x00,000)
{63}(rA8)
ZERO(x007D)
ADD(x007D,x0001)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}{Ramza}{br}
{font:00}You turned into one of{br}
Lucavi's too...{br}
You'd sink that low just{br}
to live?{br}
What a pity!!{end}

//Message x02
{font:08}Balk{br}
{font:00}It's pretty nice, kid.{br}
I'm finally a real human being!{end}

//Message x03
{font:08}{Ramza}{br}
{font:00}I wouldn't call selling your{br}
soul to the devil human!{end}

//Message x04
{font:08}Balk{br}
{font:00}I'm above 'death'.{br}
At the top of the human race.   {br}
Now I don't have to endure{br}
unjust treatment by you{br}
aristocrats!!{br}
I've won true 'freedom'!{br}
I'm a true 'human being'!{br}
I will be treated 'equally' now!!{end}

//Message x05
{font:08}{Ramza}{br}
{font:00}A real 'human being'?{br}
Don't make me laugh!!{br}
How valuable is a 'freedom'{br}
you didn't earn yourself?{br}
{br}
The moment 'pride' is lost,{br}
'freedom' is also lost...!!{br}
{br}
You lost your freedom when{br}
you lost your pride and{br}
confidence...!!{br}
'Equality's not something{br}
you're given! It's something{br}
you fight for!!{br}
Any 'freedom' gotten from{br}
Lucavi isn't true freedom!{end}

//Message x06

The dialogue should begin with message one, but instead on line 15 has the following:
DisplayMessage(x10,x70,x0002,x03,x00,x00,+00000,+00000,+00000,x02)
Meaning that the dialogue begins with having Ramza deliver message 2 (supposed to be Balk's line), skipping his first line and then the whole thing is offset.  This will freeze up the game, as the wrong units are delivering the wrong messages by the end of the dialogue.  There might be more issues with that particular dialogue, but that part at least is messed up in the current distribution of EasyVent Editor.  (This event works fine in the vanilla game).

EDIT: I wanted to test it to make sure, hence the delay, but you can just replace the event with the following to fix it:

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

{63}(rAA)
Focus(x03,x00,x03,x00,x00)
Camera(-00316,+01288,+00302,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
InflictStatus(x03,x00,x00,x0C,x00)
WaitForInstruction(x43,x00)
FaceUnit(x2B,x00,x03,x00,x00,x01,x00)
WaitRotateUnit(x03,x00)
Wait(00010)
DisplayMessage(x10,x70,x0001,x03,x00,x00,+00000,+00000,+00000,x02)
WaitForInstruction(x01,x00)
Focus(x2B,x00,x2B,x00,x00)
Camera(+00616,-00172,+00840,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
InflictStatus(x2B,x00,x00,x0C,x00)
WaitForInstruction(x43,x00)
FaceUnit(x03,x00,x2B,x00,x00,x01,x00)
WaitRotateUnit(x2B,x00)
Wait(00010)
DisplayMessage(x10,x70,x0002,x2B,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x03,x00,x03,x00,x00)
Camera(+00000,+25352,+17320,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0003,x03,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x2B,x00,x2B,x00,x00)
Camera(+09722,+09256,+10295,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0004,x2B,x00,x00,+00000,+00000,+00000,x00)
WaitForInstruction(x01,x00)
Focus(x03,x00,x03,x00,x00)
Camera(+10253,+14116,-01493,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00016)
DisplayMessage(x10,x70,x0005,x03,x00,x00,+00000,+00000,+00000,x01)
WaitForInstruction(x01,x00)
Focus(x69,x00,x69,x00,x00)
Camera(+10289,+13050,-02007,+00302,+00512,+00000,+04096,+00032)
WaitForInstruction(x04,x00)
Wait(00010)
RotateUnit(x03,x00,x14,x00,x01,x00)
WaitRotateUnit(x03,x00)
RotateUnit(x2B,x00,x14,x00,x01,x00)
WaitRotateUnit(x2B,x00)
March(x03,x00,000)
March(x2B,x00,000)
{63}(rA8)
ZERO(x007D)
ADD(x007D,x0001)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}{Ramza}{br}
{font:00}You turned into one of{br}
Lucavi's too...{br}
You'd sink that low just{br}
to live?{br}
What a pity!!{end}

//Message x02
{font:08}Balk{br}
{font:00}It's pretty nice, kid.{br}
I'm finally a real human being!{end}

//Message x03
{font:08}{Ramza}{br}
{font:00}I wouldn't call selling your{br}
soul to the devil human!{end}

//Message x04
{font:08}Balk{br}
{font:00}I'm above 'death'.{br}
At the top of the human race.   {br}
Now I don't have to endure{br}
unjust treatment by you{br}
aristocrats!!{br}
I've won true 'freedom'!{br}
I'm a true 'human being'!{br}
I will be treated 'equally' now!!{end}

//Message x05
{font:08}{Ramza}{br}
{font:00}A real 'human being'?{br}
Don't make me laugh!!{br}
How valuable is a 'freedom'{br}
you didn't earn yourself?{br}
{br}
The moment 'pride' is lost,{br}
'freedom' is also lost...!!{br}
{br}
You lost your freedom when{br}
you lost your pride and{br}
confidence...!!{br}
'Equality's not something{br}
you're given! It's something{br}
you fight for!!{br}
Any 'freedom' gotten from{br}
Lucavi isn't true freedom!{end}

Title: Re: EasyVent Editor Super Perfect 2.0 - UPDATE: 4/26/2017
Post by: 3lric on November 25, 2019, 08:17:20 pm
Yup, i told Raven about this a while ago, when TLW first launched.
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: 3lric on December 03, 2019, 03:55:31 am
Updated the OP of this thread to contain the EVSP 2.1 Unofficial release that I just put out in Raven's absence. I wouldn't normally do this, but he is busy, and having worked with Raven for years, I'm sure he wouldn't mind, since I knew what needed updating and had access to do so.

Details of what was updated for 2.1, can be found in the OP of this thread.
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: Nyzer on May 23, 2020, 10:57:33 pm
Quote from: Nyzer on September 23, 2017, 07:41:47 pmOh, Raven - I was running into an error shortly before I left on my vacation, but in my haste to get an event done before I had to go (I did not succeed) I failed to report it.

If you turn on the offset option, the compiler displays the offset message long enough for EVSP to report an error with compiling. I closed the offset display and hit try again, and it closes like normal, with the event compiled & functional.

Also, the previous issue of having the textbox jump back to the top when you Compile to Savestate without commenting out the offset is still a thing. Pretty sure I was using the newest version.
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: Neonseraphim on April 25, 2023, 11:31:45 am
Are there any tutorials how to use this tool?  I am just trying to change event text from a few event IDs.  Pretty much getting errors with every button I press, don't know what I am doing and could use some step by step guidance about how to edit the text for events where Boco chocobo joins in the 120s.  How do I go about applying the changes I made to the game?  What other tools would I need?  Do not think it is like FFTactext where you can simply press a button to patch game....
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: Xifanie on April 25, 2023, 02:13:32 pm
If you are using Vanilla as a base and all you want to do is to edit text, I would suggest you give EntryEdit a try (it comes with the newest FFTPatcher)
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: Neonseraphim on April 26, 2023, 07:46:35 am
Hi Xifanie.

  Thank you for the prompt response.  However, it appears to me that EntryEdit, with newest FFTPatcher v0.496 can only patch PSX, and I am working with PSP.  Is that correct or am I doing something wrong?

BTW This tool is PRECISELY what I am looking for, so easy to use, BUT for PSP and not PSX.  Any assistance would be much appreciated.
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: Xifanie on April 26, 2023, 11:00:09 am
Sorry, I don't mod WotL, so I didn't know about the lack of support. I linked this thread in the WotL channel on Discord; hopefully someone can help.
Title: Re: EasyVent Editor Super Perfect 2.1 UNOFFICIAL - UPDATE: 12/02/2019
Post by: darkskyx on June 10, 2023, 08:12:43 pm
Edit: Okay, I finally made it to work for PSP!
All those errors were there because I was using the files of EasyVent 2.1 for WoTL instead the original PSP files to edit events back to PSP. I noticed it when I read again and again the post of EasyVent and I started using a hex calculator to calculate the number of the event but it would still do nothing. Files offsets for WoTL are wrong because each one looks like it is made for compiling PSX and not PSP (example, 4000 for event 2 in PSX but it's 5000 in PSP). All because folder names were not clear enough! If you want to make it work for PSP, enter inside the Resources folder and copy the events back into your resource folders. That "Final Fantasy Tactics - PSP WotL" folder doesn't have the same files of the folder than "PSP Events".
I swear I tried this before some days ago... I don't know why it didn't work before, maybe because it was the antivirus, the compability or something.


TL;DR: Here's a tutorial on how to do it:

- Enter Resources. Copy "PSP Events" folder, paste it inside "/Event Directories".
- Rename "Final Fantasy Tactics - PSP WotL" to "Final Fantasy Tactics - PSP WotL to PSX"
- Rename "PSP Events" to "Final Fantasy Tactics - WotL PSP". Make sure that you only have a text file for each event (if some events numbers are not there it's normal).
- Enter EasyVent (...) - Home.exe, open event directory "Final Fantasy Tactics - WotL PSP" with War Of the Lions mode enabled.
- Open the event you want. You want to scroll down and see the dialogues to notice which event it is. Edit it as you like. Save.
· If Save event doesn't work to you (like it happens to me) try to edit the file with Notepad or the default text editor of Windows. You can Open again the file to refresh.
· Save your edited events in a new directory (Example: Custom 1).
- Once you have all changes done: Click the button Compile directory and select your .EVT PSP WotL file.
- Optional: If you wanna see if your changes are done: Click on "Decompile .EVT" button. (If this step didn't work for you, follow the next step:)
· How to do it manually:
Copy your .EVT PSP WotL file and paste it in /Resources with the name TEST. Erase or change the name to PSP Events in /Resources. Open CONFIG in /Resources. PSP=0 to PSP=1. Save. Now open Event_Decompiler_2.04.exe. You should have your changes in /Resources/PSP Events. Open CONFIG in /Resources. PSP=1 to PSP=0. Save.
- Check out if everything is changed correctly in the text files you changed. Now you have to follow this tutorial (https://ffhacktics.com/smf/index.php?topic=8229.msg163302#msg163302) to put your changes into the game.

"Save event" still does nothing for me, but it's the only way I could make it work. I'll quote my original message:

Quote from: undefinedMaybe I'm doing something wrong (or not) but I'm getting some errors. I'm trying everything for the WoTL (PSP) .EVT file.

· When I click on "Save event" on a new directory it doesn't save. I tried changing the OS compatibility but it didn't work.

· If I try to compile a directory with a few events with the program it shows an error of not finding the event.txt file. If I put the file there it says "Directory compiled succesfully" but it literally does nothing. [I decompiled to see if the change was there and also played the game with the edited ISO]

· This is when I just did a small test trying to edit the 1st event (EVT_002). I just changed a character name. I also tried other events and it didn't work. It shows this error:

System.InvalidCastException: Invalid cast of string "Command MapDarkness(xBM,+RED,+GR" to type 'Double' ---> System.FormatException: Input string is not in the correct format.

· If I try to compile a single event (manually copying event.txt in the folder) it starts to work but it takes forever and then it shows the error "Out of memory".

 ((((Yes, I tried the WoTL mode and opening it as administrator)))) Maybe it's an isue with the OS itself, Windows Defender... idk. But there isn't any other message.

· I also tried to use directly the Event_Compiler_2.01b. It shows the following error: