• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 05:47:47 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Event Editing Tutorial V 0.2 (Updated the camera explanation)

Started by Kokojo, October 24, 2009, 07:44:36 pm

Kokojo

Event Editing Tutorial.

1)
Programs, links, and usefull things to have.

http://ffhacktics.com/downloads.php



Then you can download the first downloads, in

Editors :
FFTpachter,
Shishi sprite Editor,
FFtactext,
FForgASM,

Attack.out Editor
Event decompiler and Event compiler.

Iso Editors:

Cdmage

Graphics :

FFTEVGRP

Others :
Tiny Hexer
http://www.softpedia.com/get/Others/Mis ... exer.shtml
(Or any other good HEX programs)

Usefull links :
Event scripts :
http://ffhacktics.com/wiki/Event_Script ... orrelation




------

2) Basic instructions, How-to Decompile, export, import.

2.1) Starting out
Take cdmage to open your ISO. (It can be an .Img or .Bin). You will probably have to choose a Cd style.
You can select mode 2, this will open it freely and well, usually.

Select EVENT, this should open a sub-window. In that window, you can right click on our two objectives, Attack.out and TEST.evt. Click extract and then select your target folder (I suggest creating a foldeer names Event Editing).
Then, Unzip the Event Compiler/Decompiler file and the ATTACK.out editor file and put them in the same Folder.
You should have those in the same folder now :
Test.evt
Attack.out
Event Compiler/Decompiler

Doubleclick the Decompiler and wait a few seconds untils it generate your base files, Event.txt and PSXevents.txt

Another thing to do, extract the FFTpacther, start a new pacth, and save it For this Tutorial, we will only touch the ENTD section. This does not need to be in the same folder as the Other two.
You are now ready to Start, basicly.
-------
3) The making of a simple event.

First of all, open PSXevent, and find your target event you want to change :
(Can be found at : http://ffhacktics.com/wiki/Event_Script ... orrelation)
You need to use the event number after the ''Setup'' to find the correct script to modify.
Once you got that number, go look for it in Psxevents.txt, and copy the script from the start and until the end of the message section. (before the begining of a new script)

Paste it over the current event in Event.txt


It should look something like this :

---

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

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

LoadEVTCHR(x01,x1A,x00)
WaitForInstruction(x34,x00)
SaveEVTCHR(x01)
Wait(00020)
UnitAnim(x11,x00,x07,x00,x00)
Wait(00002)
UnitAnim(x12,x00,x07,x00,x00)
Wait(00002)
UnitAnim(x13,x00,x07,x00,x00)
Wait(00002)
UnitAnim(x14,x00,x07,x00,x00)
......
......
......

EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}Ovelia{br}
{font:00}blablabla{end}

---

Change it so it looks like this :

---

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

Offset(x00004000)
//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.

Wait(01000)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}XXX{br}
{font:00}XXX{end}

---
Here I removed the Text Offset (ALWAYS DO THAT, VERY IMPORTANT!!!!) and all the event instructions, exept EventEnd(), And I removed all the text, exept message x01. Try to be similar. (in doupt, copy paste that)
Save event.txt

Now, you need to choose many things. Go select your map from the map section, remember the number.
Open FFTpacther, then go to ENTD. Select any of the numbers, it does not matter, I suggest taking a empty one for this event. Remember the number.
As of there, most of the instructions are clear, and you should be able to make your own unit. For this test, we will use map 101, tutorial(1). The only important thing here is the Unit ID, the unit sprite, and his X,Y position. Make sure he is ''always present'' and male/female.
Make a caracther named Ramza, using ramza sprite, and place him on X=0 Y=5, and give him unit ID 20, facing Northeast. This should be your base for this tutorial. Save your pacth and pacth your ISO in FFpacther.

Now the work begin !

For this tutorial, we will use the first event, 1-2 at Orbonne.
Open the Attack.out Editor in the same folder with your extracted Attack.out, select the Event (There is 2 of them to change) and change the map (It is currently Chapel of orbonne) to Tutorial(1) (It should be near the bottom in the list). Change the ENTD to the ENTD you used (The one with the new Ramza we made...).
Then save, and keep it open.

Douclick on the event compiler, and wait for the confirmation message.

Open Cdmage, like you did before, and load your ISO.
Right click on attack.out, and import your new attack.out
Right click on Test.evt, and import your modifed one.

Then close Cdmage, open your emulator, and try it out.
You should see ramza, moving on the same spot, in the map Tutorial(1).

If not, find an error. Now what ? We will make a simple event out of there. Open/load Event.txt again, it should look like we left it:
---

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

Offset(x00004000)
//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.

Wait(01000)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}XXX{br}
{font:00}XXX{end}

---

Now add these lines :
Their explanation is gonna after //'s, because the game ignores lines that start with a //.

Now add these lines :

---

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

Offset(x00004000)
//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.

{63}(rC9)
Camera(+01000,+00000,+00615,+00302,+02560,+00000,+04096,+00001)
Camera(+01000,+00000,+00615,+00302,+02560,+00000,+04096,+00128)
{4D}(r78)
Camera(+01000,+00000,+00615,+00302,+02560,+00000,+04096,+00128)
//This is a camera setup. Hard to learn -.- Those extra lines here... I don't know what they do, but they are necessary for a proper camera setup. Don't forget them. As you can notice, you need to repeat the camera line after for it to work properly in same case. Don't forget 63 and 4D or your event will be black.


Wait(00128)
//A simple wait, 60 is one second.
UnitAnim(x20,x00,x06,x00,x00)
//Unitanim refers to ramza, since he his unit ID 20 (normally 01) in this ENTD. Animation x06 is stand, so he'll stay still
Wait(00200)
//A simple wait, 60 is one second.
WalkTo(x20,x00,000,004,x00,x00,+016,x02)
//Make unit 20 (ramza here) walk to X=00 Y=04
WaitWalk(x20,x00)
//The event waits until he's done walking.
UnitAnim(x20,x00,x06,x00,x00)
//Since ramza walked, he needs to be standing still when he finishes walking.
Wait(00100)
DisplayMessage(x10,x12,x0001,x20,x00,x00,+00000,+00000,+00000,x01)
//Make unit 20 say message 1, with style 12, no X,Y,Z movement from the text.
WaitForInstruction(x01,x00)
//Wait until the player press a button.
Wait(00100)
DisplayMessage(x10,x12,x0002,x20,x00,x00,+00000,+00000,+00000,x01)
//Make unit 20 say message 2, with style 12, no X,Y,Z movement from the text.
WaitForInstruction(x01,x00)
Wait(00200)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}Ramza{br}
{font:00}I love making events.{br}
It is cool. Yay. Horray.{end}

//Message x02
{font:08}Ramza{br}
{font:00}I can talk twice.{end}

---

So, with this you have the basis of an event. The animation list can be found on the Wiki.
Save event.txt, and repeat the upper steps to import it into the iso. (Save, compiler, Cdmage, import, close)

Then try it out, it should work out well.

Most important event instructions are on this page:
http://www.ffhacktics.com/instructions.php
Learn from other PSX event, they are easy to understand.


Feedback for the win!
I keep leaving, I keep coming back. Boomerang boy.

Hana

October 24, 2009, 08:03:10 pm #1 Last Edit: December 31, 1969, 07:00:00 pm by Hana
I highly approve of this tutorial. Thank you very much Koko! ^_^
I'll leave thinking up witty signatures to the prose.

Kokojo

October 25, 2009, 03:03:05 am #2 Last Edit: December 31, 1969, 07:00:00 pm by Kokojo
Hey, thanks for the feedback...

If you spot any problems, tell me !
I keep leaving, I keep coming back. Boomerang boy.

MiKeMiTchi

October 25, 2009, 03:12:58 am #3 Last Edit: December 31, 1969, 07:00:00 pm by MiKeMiTchi
Oh, sugoi desu!

..will take time to read this...

edit: cdmage can't open bin files properly.
MagicISO could be used instead.
Jot5 GFX Designer :: Spriter :: Mitchi

Jumza

October 25, 2009, 09:08:22 am #4 Last Edit: December 31, 1969, 07:00:00 pm by Jumza
Yes it can. when the box appears with all the different types go to the second one... if you have already used the new shishi on said iso it will say there might be some info screwed up but that means just dont use cdmage to import sprites.
  • 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.

MiKeMiTchi

October 25, 2009, 11:08:26 am #5 Last Edit: December 31, 1969, 07:00:00 pm by MiKeMiTchi
The Mode 2 (second one) only applies for .iso files. :(

@KoKo
add EvtchView with the list of downloads too.
(the event sprites importer\viewer\exporter)
Jot5 GFX Designer :: Spriter :: Mitchi

philsov

October 30, 2009, 08:03:47 pm #6 Last Edit: December 31, 1969, 07:00:00 pm by philsov
http://www.ffhacktics.com/forum/viewtop ... 1140#91140

All events seperated for the pickings.
Just another rebel plotting rebellion.

Cheetah

October 31, 2009, 02:15:52 am #7 Last Edit: December 31, 1969, 07:00:00 pm by Cheetah
Nice thought Philsov.
Current Projects:

Jon

December 18, 2009, 08:09:23 am #8 Last Edit: December 31, 1969, 07:00:00 pm by Jon
Just read this, thank you! This is so helpful!
There ain't no gettin' offa this train we on!

ffta707

I am still not able to edit the attack out. Darn it. But this ^^ is great!!

Webb

thats a lot of reading but im still going to try it out

Vicent

still have my doubts about editing events.

MarblesX


DAmessenger

QuoteDoubleclick the Decompiler and wait a few seconds untils it generate your base files, Event.txt and PSXevents.txt
Great tut. but when I open the folder there is no "PSXevent.txt" sohow do I get them to show?  ?:(

DAmessenger

found the answer: i needed to run the 'decompile' with test.evt in the same fold and viola, worked like a charm.

Eternal

  • Modding version: PSX & WotL
"You, no less human than we? Ha! Now there's a beastly thought. You've been less than we from the moment your baseborn father fell upon your mother in whatever gutter saw you sired! You've been chattel since you came into the world drenched in common blood!"
  • Discord username: eternal248#1817