• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 06:59:11 am

News:

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


Event Editor Bug?

Started by Snap006, June 19, 2013, 11:47:37 pm

Snap006

I'm editing just the text in events. Everything has been ok until I got to Goland Coal City when Ramza meets Olan. After the battle the dialog gets screwed up and the game crashes.

I imported the original text back to the game through cdmage and it works fine. I think I know the reason, but I just need conformation of it. I think it's because I might have went over the text limit. Could that cause this to happen?

Jumza

I'm pretty sure that limit is 49 characters ( letters :P ) per line, try and use more line breaks, make sure you are using the  proper format etc.. If the error persists let us know with some more details, like the text itself.
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

3lric

We would have to see your text, you undoubtedly missed either a {br} or a {end}
IF the line is too long, it was also just simply NOT play.
  • Modding version: PSX

Snap006

It was weird. I replaced the original text for the event and still got the same error. It was only with the original event file for the whole game that it worked.

The scene began halfway through with the text and then 0's spread across the screen. I'll take a screen shot when I get home.

Basically I'm thinking that I used too much text for the parts of the game before that point and just ran out of space in the event file. That's the only thing I can think of.

3lric

Sounds like you didnt remove the text offset before reimporting the event
  • Modding version: PSX

Snap006

Ive never done that before now. Should I do that with every event?

Jumza

Yes! Every event! Every single one! Always!
If you are using EVSP then it should remind you to do so as well if you haven't already.
Always remove it.
Always.
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

Snap006

What I've been doing is changing the text in the event editor copying it to a text file then compiling it to the event file. The use cdmage to import it. I've never ran into problems before. I'll try that to see if it solves the problem.

Snap006

Ok. I removed the text offset like you said. Still same results. I've attached some screen shots.

3lric

paste your event here please
  • Modding version: PSX

FFMaster

000000000000000000000000 - Olan. Looks like event editing is as hard as ever.
  • Modding version: Other/Unknown
☢ CAUTION CAUTION ☢ CAUTION CAUTION ☢

Snap006

This is it:


Offset(x001A2000)
//Remove the previous line if you wish not to override the offset in CONFIG.INI.

//Remove the previous line if you wish text to compile directly after instructions.

UnitAnim(x00,x00,x02,x00,x00)
Camera(+00728,-01564,+00392,+00302,+00512,+00000,+04096,+00001)
WaitForInstruction(x04,x00)
{4D}(r3C)
{63}(rA9)
Camera(+00728,-00284,+00392,+00302,+00512,+00000,+04096,+00100)
WaitForInstruction(x04,x00)
LoadEVTCHR(x01,x37,x00)
Wait(00030)
WaitForInstruction(x34,x00)
SaveEVTCHR(x01)
UnitAnim(x02,x00,x78,x02,x00)
Wait(00010)
UnitAnim(x02,x00,x79,x02,x00)
Wait(00010)
UnitAnim(x02,x00,x7A,x02,x00)
Wait(00010)
DisplayMessage(x10,x91,x000A,x02,x00,x00,-00020,+00000,+00014,x13)
WaitForInstruction(x01,x00)
UnitAnim(x02,x00,x78,x02,x00)
Wait(00008)
UnitAnim(x02,x00,x02,x00,x00)
DisplayMessage(x10,x92,x000B,x15,x00,x00,+00016,+00006,-00004,x13)
WaitForInstruction(x01,x00)
ChangeDialog(x01,x000C,x00,x00)
WaitForInstruction(x01,x00)
UnitAnim(x15,x00,x58,x02,x00)
Wait(00004)
UnitAnim(x15,x00,x59,x02,x00)
Wait(00002)
UnitAnim(x15,x00,x58,x02,x00)
Wait(00004)
ChangeDialog(x02,x000D,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,xFFFF,x00,x00)
Wait(00008)
ChangeDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
Wait(00040)
DisplayMessage(x10,x91,x000E,x02,x00,x00,-00020,+00000,+00014,x13)
WaitForInstruction(x01,x00)
UnitAnim(x15,x00,x5A,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x5B,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x5C,x02,x00)
Wait(00008)
ZERO(x0057)
ADD(x0057,x0000)
BlockStart()
{7E}(r57002100)
UnitAnim(x15,x00,x5B,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x5A,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x02,x00,x00)
BlockEnd()
DisplayMessage(x10,x92,x000F,x15,x00,x00,+00026,+00006,-00012,x13)
WaitForInstruction(x01,x00)
WaitForInstruction(x08,x00)
ChangeDialog(x01,x0010,x00,x00)
WaitForInstruction(x01,x00)
UnitAnim(x15,x00,x5D,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x5E,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x5F,x02,x00)
Wait(00010)
ChangeDialog(x02,x0011,x00,x00)
WaitForInstruction(x01,x00)
UnitAnim(x15,x00,x5D,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x02,x00,x00)
ChangeDialog(x01,x0012,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x0013,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,xFFFF,x00,x00)
Wait(00008)
ChangeDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
SpriteMove(x15,x00,+00000,+00000,+00000,x00,x01,+00001)
WaitSpriteMove(x15,x00)
Sound(x0041)
UnitAnim(x15,x00,x60,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x61,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x62,x02,x00)
Wait(00008)
AddUnitPrep()
{82}()
AddUnitStart()
UnitAnim(x02,x00,x6D,x02,x00)
Wait(00008)
UnitAnim(x02,x00,x6E,x02,x00)
Wait(00030)
UnitAnim(x02,x00,x6D,x02,x00)
Wait(00008)
UnitAnim(x02,x00,x02,x00,x00)
Wait(00010)
UnitAnim(x02,x00,x70,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x71,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x70,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x02,x00,x00)
Wait(00008)
UnitAnim(x02,x00,x70,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x71,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x70,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x02,x00,x00)
Wait(00020)
UnitAnim(x02,x00,x6D,x02,x00)
Wait(00008)
UnitAnim(x02,x00,x6E,x02,x00)
Wait(00010)
UnitAnim(x02,x00,x6F,x02,x00)
Wait(00032)
UnitAnim(x02,x00,x6E,x02,x00)
Wait(00004)
UnitAnim(x02,x00,x6D,x02,x00)
Wait(00006)
UnitAnim(x02,x00,x02,x00,x00)
Wait(00014)
UnitAnim(x02,x00,x72,x02,x00)
Wait(00008)
UnitAnim(x02,x00,x73,x02,x00)
Wait(00010)
Sound(x0053)
UnitAnim(x15,x00,x66,x02,x00)
UnitAnim(x02,x00,x74,x02,x00)
Wait(00012)
UnitAnim(x15,x00,x63,x02,x00)
UnitAnim(x02,x00,x75,x02,x00)
Wait(00020)
Wait(00014)
UnitAnim(x15,x00,x64,x02,x00)
UnitAnim(x02,x00,x76,x02,x00)
Wait(00014)
Sound(x0041)
UnitAnim(x15,x00,x63,x02,x00)
UnitAnim(x02,x00,x75,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x65,x02,x00)
UnitAnim(x02,x00,x77,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x63,x02,x00)
UnitAnim(x02,x00,x75,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x64,x02,x00)
UnitAnim(x02,x00,x76,x02,x00)
Wait(00014)
Sound(x0041)
UnitAnim(x15,x00,x63,x02,x00)
UnitAnim(x02,x00,x75,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x65,x02,x00)
UnitAnim(x02,x00,x77,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x63,x02,x00)
UnitAnim(x02,x00,x75,x02,x00)
Wait(00030)
UnitAnim(x15,x00,x62,x02,x00)
UnitAnim(x02,x00,x74,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x61,x02,x00)
UnitAnim(x02,x00,x73,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x60,x02,x00)
UnitAnim(x02,x00,x72,x02,x00)
Wait(00004)
UnitAnim(x15,x00,x02,x00,x00)
UnitAnim(x02,x00,x02,x00,x00)
Wait(00060)
BlockStart()
RotateUnit(x15,x00,x08,x00,x00,000)
WaitRotateUnit(x15,x00)
Wait(00010)
UnitAnim(x15,x00,x03,x00,x00)
SpriteMove(x15,x00,+00000,+00000,+00056,x00,x01,+00084)
WaitSpriteMove(x15,x00)
UnitAnim(x15,x00,x02,x00,x00)
Wait(00030)
BlockEnd()
BlockStart()
Wait(00030)
WalkTo(x02,x00,006,003,x00,x00,+006,x01)
MovementAnim(x02,x00,x0002)
WaitWalk(x02,x00)
Wait(00006)
RotateUnit(x02,x00,x08,x00,x00,000)
WaitRotateUnit(x02,x00)
BlockEnd()
WaitForInstruction(x08,x00)
Wait(00010)
UnitAnim(x15,x00,x67,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x68,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x69,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x6A,x02,x00)
Wait(00010)
DisplayMessage(x10,x91,x0014,x15,x00,x00,+00040,-00020,+00000,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x92,x0015,x02,x00,x00,+00000,+00000,+00000,x02)
WaitForInstruction(x01,x00)
ChangeDialog(x01,xFFFF,x00,x00)
Wait(00008)
ChangeDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
UnitAnim(x15,x00,x6A,x02,x00)
Wait(00030)
Sound(x0041)
UnitAnim(x15,x00,x69,x02,x00)
Wait(00010)
UnitAnim(x15,x00,x68,x02,x00)
Wait(00008)
UnitAnim(x15,x00,x67,x02,x00)
Wait(00006)
UnitAnim(x15,x00,x02,x00,x00)
Wait(00030)
UnitAnim(x15,x00,x03,x00,x00)
SpriteMove(x15,x00,+00000,+00000,+00098,x00,x01,+00042)
WaitSpriteMove(x15,x00)
SpriteMove(x15,x00,+00000,+00012,+00102,x00,x01,+00008)
WaitSpriteMove(x15,x00)
SpriteMove(x15,x00,+00000,+00012,+00112,x00,x01,+00006)
WaitSpriteMove(x15,x00)
RotateUnit(x15,x00,x04,x00,x01,000)
SpriteMove(x15,x00,-00014,+00012,+00112,x00,x01,+00014)
WaitSpriteMove(x15,x00)
SpriteMove(x15,x00,-00056,+00030,+00112,x00,x01,+00042)
WaitSpriteMove(x15,x00)
Wait(00090)
{63}(rAA)
Camera(+00728,-01564,+00392,+00302,+00512,+00000,+04096,+00100)
Wait(00045)
{3E}(r02000000FFFFFF1E00)
{60}(r001E)
Wait(00030)
ZERO(x006E)
ADD(x006E,x0020)
ZERO(x01D8)
ADD(x01D8,x0001)
ZERO(x026F)
ADD(x026F,x0001)
AddUnitEnd()
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}{Ramza}{br}
{font:00}Are you all right?{end}

//Message x02
{font:08}Orran{br}
{font:00}Thank you for saving me.{br}
{br}
My name is Orran Durai.{br}
What's yours?{end}

//Message x03
{font:08}{Ramza}{br}
{font:00}{Ramza} Beoulve.{end}

//Message x04
{font:08}Orran{br}
{font:00}!!{end}

//Message x05
{font:08}{Ramza}{br}
{font:00}Is something wrong?{end}

//Message x06
{font:08}Orran{br}
{font:00}Oh, nothing.{br}
Never mind.   {br}
Where are you going anyway?{end}

//Message x07
{font:08}{Ramza}{br}
{font:00}To Lesalia. If you're going{br}
that way we could go along.{end}

//Message x08
{font:08}Orran{br}
{font:00}Too bad, I'm going the other way.{br}
Thanks for the offer.{end}

//Message x09
{font:08}{Ramza}{br}
{font:00}Well, be careful.{end}

//Message x0A
{font:08}Orran{br}
{font:00}You too.{end}

//Message x0B
{font:08}Orran{br}
{font:00}I'll see you later.{br}
Stay alive, till then.{end}

//Message x0C
{font:08}{Ramza}{br}
{font:00}Oh, uh, yeah...{end}

//Message x0D


Xifanie

QuoteDisplayMessage(x10,x91,x000E,x02,x00,x00,-00020,+00000,+00014,x13)

DisplayMessage(x10,x92,x000F,x15,x00,x00,+00026,+00006,-00012,x13)

DisplayMessage(x10,x91,x0014,x15,x00,x00,+00040,-00020,+00000,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x92,x0015,x02,x00,x00,+00000,+00000,+00000,x02)


Your last message ID is 0x000C, so why you used x000E, x000F, x0014 and x0015 I have no idea. I just know this is what causes the "bug".
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Snap006

So changing those to x000C should fix the problem if I'm understanding you correct.

Snap006

The only thing I changed in the event editor was Olan's name to Orran. Could the event editor for that event have the wrong code in it?

Xifanie

Now I see what's wrong... Where the hell did you get that event? It's missing 9 unused dialogues before "Are you all right?"

This is what the raw text of the event normally looks like originally

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}Roar{br}
{font:00}Where! Where did he run!?{end}

//Message x02
{font:08}A roar{br}
{font:00}Up there! On the roof!!{end}

//Message x03
{font:08}Olan{br}
{font:00}Surrounded...{end}

//Message x04
{font:08}Thief{br}
{font:00}I don't know who you are.{br}
Too bad you stumbled on us.{end}

//Message x05
{font:08}Olan{br}
{font:00}Next time put a sign outside{br}
saying "Thieves' hideout".{end}

//Message x06
{font:08}Thief{br}
{font:00}Hya, ha! Damn blabbermouth.{br}
Now, give yourself up.{end}

//Message x07
{font:08}{Ramza}{br}
{font:00}Something weird's going{br}
on in here...{end}

//Message x08
{font:08}Thief{br}
{font:00}We have many visitors today.{br}
Let's get them all together!{end}

//Message x09
{font:08}Olan{br}
{font:00}Damn! F, father...{end}

//Message x0A
{font:08}{Ramza}{br}
{font:00}Are you all right?{end}

//Message x0B
{font:08}Olan{br}
{font:00}Thank you for saving me.{br}
{br}
My name is Olan Durai.{br}
What's yours?{end}

//Message x0C
{font:08}{Ramza}{br}
{font:00}{Ramza} Beoulve.{end}

//Message x0D
{font:08}Olan{br}
{font:00}!!{end}

//Message x0E
{font:08}{Ramza}{br}
{font:00}Is something wrong?{end}

//Message x0F
{font:08}Olan{br}
{font:00}Oh, nothing.{br}
Never mind.   {br}
Where are you going anyway?{end}

//Message x10
{font:08}{Ramza}{br}
{font:00}To Lesalia. If you're going{br}
that way we could go along.{end}

//Message x11
{font:08}Olan{br}
{font:00}Too bad, I'm going the other way.{br}
Thanks for the offer.{end}

//Message x12
{font:08}{Ramza}{br}
{font:00}Well, be careful.{end}

//Message x13
{font:08}Olan{br}
{font:00}You too.{end}

//Message x14
{font:08}Olan{br}
{font:00}I'll see you later.{br}
Stay alive, till then.{end}

//Message x15
{font:08}{Ramza}{br}
{font:00}Oh, uh, yeah...{end}


The easy fix would be to put {end}{end}{end}{end}{end}{end}{end}{end}{end} before Ramza's first message in your case
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Snap006

The event was under Goland Coal City post battle.txt

So like this?

//INSTRUCTION SECTION END -  TEXT START
{end}{end}{end}{end}{end}{end}{end}{end}{end}
//Message x01
{font:08}{Ramza}{br}
{font:00}Are you all right?{end}

Xifanie

Yes it should work like this.

It seems like Raven forgot to the message IDs in that event, because for all the other events, he took out all the unnecessary, unused text and rewrote the message IDs accordingly inside the event's code.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Snap006

Xifanie your a genius! Worked perfectly. I know what to watch out for next time. Thanks for everyone who helped!

axfelix

FYI, this is still a problem with Easyvent upstream, but I'm glad I was able to find this thread to correct it!

Not sure what the best way to get the attention of the maintainer is, but anyone who is a) just using the event files shipped with the editor rather than dumping their own TEST.EVT and b) just making minor dialog changes to the existing game is likely to encounter it.