Jump to content

[WIP] FE8 Eventing Resource/Guide


InvdrZim13
 Share

Recommended Posts

This guide assumes you are already familiar with the basics of hacking
 
 
Introduction
 
So there's not really a big post on how to do FE8 eventing (like Arch's super great guide for FE7), and that kinda sucks for people who want to hack FE8 because there's far less resources immediately available for them to use.
 
It's uh, going to be a hell of a WIP until everything is properly covered. But the general idea is to have a resource similar to Arch's chapter construction guide except focused on FE8.
 
I figured as one of the few people hacking FE8 right now I'd try to share some of my knowledge with anyone looking to get into FE8 hacking. That being said, I probably forgot a bunch of stuff so if there's something missing that you want to know about, leave a comment here and let me know.
 
So, before it starts, here's what you'd need:
 
 
 
Event file template
Spoiler

    #include EAstdlib.event         EventPointerTable(0x??,ThisChapter)         ORG FREESPACE         ThisChapter:         POIN TurnBasedEvents         POIN CharacterBasedEvents         POIN LocationBasedEvents         POIN MiscBasedEvents         POIN Dunno Dunno Dunno         POIN Tutorial         POIN TrapData TrapData         POIN Units Units         POIN $0 $0 $0 $0 $0 $0         POIN BeginningScene EndingScene             Units:         UNIT             TurnBasedEvents:         END_MAIN           CharacterBasedEvents:         END_MAIN            LocationBasedEvents:         END_MAIN             MiscBasedEvents:         CauseGameOverIfLordDies         END_MAIN             Dunno:         //DO NOT TOUCH         WORD $00             Tutorial:         //DO NOT TOUCH        WORD $00             TrapData:         END_MAIN             ALIGN 4             BeginningScene:         ENDA             EndingScene:         ENDA             // Events             // Manual Movement             // Scripted Fights             // Units             // Shop Data             MESSAGE Events end at offset currentOffset

 

 

 
Free space can be found from b2a610-c00000, as well as the end of the ROM
 
Useful Information
 
This stuff isn't strictly eventing related but is nonetheless helpful to know.
 
 
Table of Contents
10. Misc Info
11. Epilogue
 
And much like Arch's tutorial, this isn't designed to explain basic terminology for ROMHacking and eventing shouldn't be the first thing you try when you want to hack FE.
Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 1: Key Concepts


Memory Slots

These are essentially variables you can use to store values up to 0xFFFFFFFF.


  • Stores value as a word to $030004B8 + (memory slot*4). Maximum memory slot is 0xD.
  • Memory slots are very important for fe8 events!
  • Memory slot 0x0 always has a value of zero - don't bother setting it otherwise.
  • Memory slot 0xB is where coordinates for many commands are read from.
  • Memory slot 0xC is where conditional values are stored - booleans, character IDs, gold count, etc
  • Memory slot 0xD indicates the size of a queue (see below); don't modify it with SETVAL

Set them with SETVAL (slot number) (value).


Use in conjunction with commands like SET_HP (character ID) - this sets the character's HP to the value stored in Slot 0x1.


You can set the parameters of certain commands to 0xFFFF, which will make the game look at the value in memory slot 2. This is useful if you want to, for example, display a certain text depending on the results of an ASMC.


ASMC Devil_Robe_ASMC|1 //puts the text id to display into slot 2
NOTIFY 0xFFFF 0x5A 0x0 //5A is the "item obtained" noise.


Event Execution Bitfield


Set bit 0x7 (using EVBIT_T 0x7) to get rid of the fade to black that normally happens when you use ENDA

Bit 0x8 seems to be set when the screen is black (e.g. from FADI)

More research needed here


Moving to the Next Chapter


MNCH: Moves to next chapter (shows world map stuff)


MNC2: Moves to chapter directly (no world map)


MNC3: Used by Valni,Lagdou and the Final chapters, Part 1


MNC4: Used by Final chapters, part 2 with parameter 0.


MNTS: Returns to Title Screen

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 2: Handling Units

 

Defining Units


UNIT |char ID| |class ID| |leader| Level(lvl, faction, autolevel) [x,y] |flags| 0x00 |number of REDAs| |pointer to REDAs| [item1, Item2, Item3, ... ] [AI1, AI2] AI3 AI4

 

Known flags:

0x1 is used for enemies in skirmishes and dungeons;

based on the unit's stated class, it is reassigned to one of four classes randomly chosen, given 1-2 class-appropriate weapons or loot, and has its level randomized to between -2 and +5 of its stated value.

0x2 for drop last item.

0x4 will slightly randomize the unit's starting position.

 

REDAs: REinforcement DAta, use them to define movement immediately after loading. You can also use the MOVE command.

REDA [x,y] Flags Speed Rescuer Delay

 

Unit Blocks

 

So you've got your units, but you don't know where they're supposed to go so the game knows they're supposed to be there. Fear not, all will be explained soon!

 

Sample unit block:


    Units:

    UNIT Owen MageLord 0x0 Level(1,Ally,0) [1,16] 0x0 0x0 0x1 Ow [0x0] NoAI

    UNIT Sawyer SawyerLord 0x0 Level(1,Ally,0) [1,17] 0x0 0x0 0x1 Sa [0x0] NoAI

    UNIT Aurora Cleric 0x0 Level(1,Ally,0) [1,15] 0x0 0x0 0x1 Au [0x0] NoAI

    UNIT

 

Remember to always end it with an empty UNIT, otherwise bad things will happen!

 

Loading Units

 

Now it's time to tell the game to load those units in!

 

LOAD1 0x1 (unit label) - Used to load units the first time they appear

LOAD1 0x1 0xFFFFFFFF - loads units from pointer in memory slot 1 (more on that later)

LOAD2 0x1 (unit label) - Used to load units in maps they appear in after their first appearance.

TODO: Figure out LOAD1 0x0

 

Loading units in your events:


LOAD1 0x1 Label

 ENUN

 

Don't forget the ENUN! It pauses the events until the current thing is done running, this way your units aren't loading while people are trying to talk or anything like that!

 

SOME EXPLANATION ON THAT STUFF:

Enemies and NPCs will always use LOAD1, player units will only use LOAD1 the first time you load them in the game. If your unit shows up in chapter 4, you LOAD1 him for chapter 4, if he shows up in chapter 5, you use LOAD2. If you are using blue units in a cutscene, load them with LOAD2 as well.

 

Specifying units

All unit-targeting codes in FE8 use either the character number or one of the following special codes (more research needed to find if xy coords work for anything character related):

 

    0xFFFF: checks active unit (currently selected for moving/attacking)

    0xFFFE: checks unit at coordinates stored to Memory slot 0xB (format is 0x00YY00XX)

    0xFFFD: checks unit of ID stored to Memory slot 0x2

Set the values of memory slots using SVAL or SMOV or SETVAL (slot) (value)

(see Chapter 1 for a refresher on memory slots)

 

Moving Units

 

 

MOVE speed character [x,y]

For more control over the move you can use MOVEFORCED to chain locations:


SETVAL 0xD 0x0 //clear the queue

  SETVAL 0x1 Coords(x,y) //first location

  SAVETOQUEUE

  SETVAL 0x1 0x0 //separator

  SAVETOQUEUE

    SETVAL 0x1 Coords(x,y) //second location

    SAVETOQUEUE

    SETVAL 0x1 0x0 //separator

    SAVETOQUEUE

      SETVAL 0x1 Coords(x,y) //third location

      SAVETOQUEUE

      SETVAL 0x1 0x0 //separator

      SAVETOQUEUE

MOVEFORCED 0x0 character 0x0

MOVEONTO speed character target for "rescuing" mostly

 

Reinforcements

 

Use the macro:


ReinforcementEvent(unitPtr)

to load reinforcements for a chapter, it handles moving the camera to where it should be and removing the black flash for you, as well as actually loading the unit. All you need to do is put it into the label for whatever triggers them showing up.

 

AI Changing

To Change AI you use this:


SETVAL 0x1 0x0000AI2AI1

CHAI ID

 

Hiding/Showing Units

 

CLEA Clears ally units from the map but does not remove them from the party.

CLEE Clears enemy units from the map

CLEN Clears npc units from the map

 

REMU ID Removes unit from party until next loaded. Used on Eirika/Ephraim at the lord split.

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 3: The Event Arrays


To quote Arch:

"The POIN array tells the chapter what's what, our event arrays list all of our triggerable events."


You may find yourself asking, "What in the hell is a POIN array?"


To answer that question, look below:



EventPointerTable(0x7,ThisChapter)



See ThisChapter? That's the label for the POIN array, which can be found below:




ThisChapter:
POIN TurnBasedEvents
POIN CharacterBasedEvents
POIN LocationBasedEvents
POIN MiscBasedEvents
POIN Dunno Dunno Dunno
POIN Tutorial
POIN TrapData TrapData
POIN Units Units
POIN $0 $0 $0 $0 $0 $0
POIN BeginningScene EndingScene


It's included in the template already, so you shouldn't have to mess with it at all.


CHAR events


Basic format is:




CHAR EventID label [charID1,charID2] 0x0



There is also a macro for character events that work both ways:




CharacterEventBothWays(EventID,Label,charID1,CharID2)



Location Events


Chests:



CHES 0x0 itemID [X,Y] 0x14` (don't change the 0x0 and 0x14 unless you want to do an AFEV linked to the event ID (0x0) and if you do, change that to a value higher than 0x7



Money chests:



CHES 0x0 0xXXXX0077 [X,Y] 0x14



XXXX is the amount in hex, and always terminate with 0077


Villages:



Village(eventID,label,X,Y)



Houses:



House(0x0,Label,X,Y)



Armories and Shops:



SHOP 0x0 ID [X,Y] 0x16 //armory = 0x16
SHOP 0x0 ID [X,Y] 0x17 //vendor = 0x17


ID:
SHLI Item1 Item2 Item3...



Shops need to have a unique ID even if they're not in the same chapter, your item list will be messed up if you don't.


Turn Events


To quote Arch again:

"This is the TURN code, which will designate a turn event for us. Turn events don't usually have an event ID assigned, since their scope is limited by the turn entries. "pointer" will be the label designating our OpeningScene. For startTurn, we want 01; endTurn will be 00 (this is the default value for events that only happen once)."


The basic format for a turn event is



TURN EventID SceneLabel [Turn,Phase] 0x0


0x0 runs the event before the player phase, 0x8 runs it before the enemy phase, and 0x4 runs it before the NPC phase.


If your chapter is a defend/survive map, this is where you'd put the thing that calls the ending scene.


TURN 0xA EndingScene [7,0] 0x0 would end the chapter at the start of Turn 7. You always want to do the number of turns + 1 for this. So if you have a 6 turn defense map, you'd have this be on turn 7.


Misc Events


The template has CauseGameOverIfLordDies by default, but this is where you specify the thing that tells the game to jump to the ending scene if it is a rout or defeat boss mission (DefeatAll(EndingScene) and DefeatBoss(EndingScene) respectively).


AFEV's (AFter EVents) can also go here:




AFEV eventID SceneLabel eventIDofPreviousEvent

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 4: Scene Construction
 
Loading Backgrounds and Text
 
Fading in and out:
FADI time //Fade-in with blackFADU time //Fade-out with blackFAWI time //Fade-in with whiteFAWU time //Fade-out with white
 
Backgrounds:
  • To load a background: `SETVAL 0x2 (background ID); CALL $9EE2E8`
  • You can use the macro `SetBackground(backgroundID)` for this
  • To remove the background: `CALL $9EE2C4`
  • There is a macro `Text(background,text)` which does all this for you, but you can't change backgrounds mid-conversation.
 
  • BG to BG transitions
For BG to BG fading, you need:
0x2141 0x1B 0x1 0x4 //does the transitioning. Parameters are backgroundID, unknown, speed of transitionREMOVEPORTRAITS
 
After the first BG and before the text stuff that follows.
 
Text:
  • Do your conversations with TEXTSHOW (text ID) and TEXTEND
  • REMA is used to clear the screen (which you should be doing when you change conversations or end a scene)
  • TEXTCONT is used when you have a [LoadOverworldFaces] in your text.
Usage:
TEXTSHOW IDTEXTEND[Load units/move units/other things]TEXTCONTTEXTEND
 
Music change codes
MUSC songID plays the specified song (you can also use the song's name as it appears in your music definitions)MUSS (MUSic Store) MUSM (MUSic Mute)MURE (MUSic REstore)
 
Camera
CAM1 [XX,YY]Focuses the Camera at coordinates XX YYCAM1 characterIDFocuses the camera on a specific characterFlashCursor(X,Y,time)FlashCursor(char,time)
 
These flash the cursor on a character or area of a map, for time you can use anything, but 60 is equal to FE6/FE7's automatically timed cursor.
 
 
Prep Screen
 
To enable the prep screen in your chapter, all you have to do is add GotoPrepScreen to the end of your BeginningScene
 
Sample opening scene:
Spoiler

 

    BeginningScene:    ENUT 0xC6    ENUT 0xC7    ENUT 0xC8    ENUT 0xC9    ENUT 0xCA    ENUT 0xCB    ENUT 0xCC //Unlocks guide menu entries    MUSC 0x07    SETVAL 0x2 Forest; CALL $9EE2E8 //BGStart    TUTORIALTEXTBOXSTART     SETVAL 0xB 0xFFFFFFFF    TEXTSHOW 0x98B //narration    TEXTEND    _0x2141 0x1B 0x1 0x4 //does the transitioning. Parameters are backgroundID, unknown, speed of transition    REMOVEPORTRAITS //no idea what this is, but is necessary    MUSC 0x24    //SETVAL 0x2 0x1B; CALL $9EE2E8 //BGStart    TEXTSHOW 0x90D//banter    TEXTEND    MUSC 0x0    TEXTCONT    TEXTEND    MUSC Lost_Heart    TEXTCONT    TEXTEND    CALL $9EE2C4 //BGEnd    MUSC 0x0    LOAD1 0x1 Units    ENUN    LOAD1 0x1 Commander    ENUN    LOAD1 0x1 NPCGuys    ENUN    CAM1 [8,8]    STAL 25    ENUN    FlashCursor(Owen,60)    MUSC 0x24    SETVAL 0x2 0x25; CALL $9EE2E8 //loads bg, bgstart    TEXTSHOW 0x90E//entering the fort    TEXTEND    CALL $9EE2C4 //bgend    CAM1 [8,4]    MOVE 0x10 Sawyer [11,3]    MOVE 0x10 Owen [10,3]    MOVE 0x10 Elijah [10,4]    MOVE 0x10 Eagle [11,4]    STAL 30    MUSC 0x24    SETVAL 0x2 Fort; CALL $9EE2E8    TEXTSHOW 0x90F//talking to commander    TEXTEND    MUSC 0x2E0    STAL 100    TEXTCONT    TEXTEND    MUSC 0x25    TEXTCONT    TEXTEND    CALL $9EE2C4    CAM1 [8,8]    _LOAD1 0x1 BossMan    ENUN    STAL 20    MOVE 0x10 Sawyer [11,10]    MOVE 0x10 Owen [10,10]    MOVE 010 0x84 [12,10]    STAL 65    SETVAL 0x2 0x25; CALL $9EE2E8    TEXTSHOW 0x910//Leonhardt shows up    TEXTEND    CALL $9EE2C4    MOVE 0x10 0x68 [1,11]//move boss to his spot    MOVE 0x10 0x84 [10,2]//moves commander    MOVE 0x10 Owen [10,3]    MOVE 0x10 Sawyer [11,3]    _LOAD1 0x1 Enemies    ENUN    TEXTSHOW 0x911    TEXTEND    REMA    EVBIT_T 0x7 //required to stop weird blinking    ENDA

 

 

 

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 5: Inserting Maps/Tile Changes


Most tile changes are handled by Tiled/the map inserter


gllnnkd.png


Pick your .tmx map, pick your ROM, pick an offset, and for the map/map change pointers, find the pointer of it from nightmare, open up a hex calculator (the default Microsoft one has one), multiply that number by 4, and add it to 8B363C.


LVCrozw.png


So the pointer for the prologue map is 0x4, and in the hex calculator you'd do 4*4 + 8B363C and put the result in the map pointer box, the same process applies for the map changes pointer.


Only manual tile changes need eventing


Vertical Doors

In LocationEvents:



DOOR 0x00 DoorRemoval [X,Y] 0x12



In DoorRemoval (or whatever you call the label), you just need



TILECHANGE 0xTileChangeIDinTiled

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 6: More Codes


Scripted Fights



StartBattle
NormalDamage(combatant,damage)
CriticalHit(combatant,damage)
MissedAttack(combatant,damage)
Silencer(combatant,damage)
SureShot(combatant,damage)
Pierce(combatant,damage)
BigShield(combatant)
EndAttack



FIG1 attacker defender 0x0 for normal fight

FIG2 attacker defender 0x0 for map animations only

FIG3 0 0 0 is used for the tutorial and rigs the results of the next battle.(not defined in eastdlib by default, the code is 0x3F42)

If your scripted battle uses the normal fight and one of the units dies, add these after the fighting part is done:

SET_SOMETHING 0xCharID

DISA_IF 0xCharID


Flashbacks

FE8 has those cool sepia flashback scenes, and now you can use them for yourself.


_0x2D20 0x4 turns all map sprites sepia toned. Changing to 0x1 is blue, 0x2 is red, 0x3 is green

You'll need to insert your own sepia portraits and any new palettes you want to use (Town & Docks has a flashback palette available by default) and set them using Nightmare's Chapter Data Editor.

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 7: Conditions


Unlike FE7 the conditional check is in two parts.




The first command writes a result to Slot 0xC e.g. CHECK_HARD will store 0(false) or 1(true) to Slot 0xC, while CHECK_MONEY stores your current Gold to Slot 0xC.
The second command checks against the result in Slot 0xC.
IFNE (conditionID) 0xC 0x0 compares slots 0xC and 0x0. Because Slot 0x0 is always 0, this means "If the previous command returned True..."
You can also use IFEQ (equal), IFLT (less than), IFGE (greater or equal to) but remember you are comparing two slots, **not** a slot and a value.



The typical conditional will look something like:



CHECK_HARD
IFNE 0x0 0xC 0x0
//Things that happen if Hard Mode
ELSE 0x1
ENIF 0x0
//Things that happen if not Hard Mode
ENIF 0x1


Here is a macro for the above:



#define IFTRUE(check,conditionid,iftrue,iffalse) "check; IFNE conditionid 0xC 0x0; CALL iftrue; ELSE conditionid+1; ENIF conditionid; CALL iffalse; ENIF conditionid+1"

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 8: ASM Conditions/Effects


ASMC 0xCF461: Enables the use of the Guide for your project, if you want an area for lore or something related (this unlocks the whole guide, if you want to unlock it piece by piece you have to enable each entry manually).


ASMC 0x85375: Triggers a game over (Or you can use the macro, GameOver)

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 9: The World Map


Skipping over the world map:

  • Disassemble the WM events from FE8 with the handy disassembler script (located in the scripts folder in the EA folder)
  • There's two WM events per chapter, WM Intro and WM1.
  • For WM Intro: replace whatever code is in there with:


EVBIT_MODIFY 0x1
SKIPWN
ENDA



You can leave the offset the same since the new stuff is smaller than the old stuff, or you can point it somewhere else (though I've had issues when not using the original pointers).


For WM1:



EVBIT_MODIFY 0x1 //Don't touch
WM_SPAWNLORD 0x0 0x0 0xYY 0xZZ 0x0 // WM_SPAWNLORD 0x0 0x0 0xYY 0xZZ 0x0 YY = main lord. ZZ = just completed chapter
WM_LOADLOCATION2 0x0 0xXX 0x0 //Silently and instantly load world map location.
//All three XX's should be the same. Remember that this XX should be the world map location offset and be the same location the chapter occurs in vanilla FE8
WM_SETDESTINATION 0x0 0xXX 0x0 //Sets WM destination
_0xA640 0x0 0x0 0xXX //sets your position to that place
SKIPWN
ENDA



As with the WM Intro event, you can keep the offset the same or change it to something else.


And the codes for the XX's are as follows



0x00 Border Mulan
0x01 Castle Frelia
0x02 Ide
0x03 Borgo Ridge
0x04 Za'ha Woods
0x05 Serafew
0x06 Adlas Plains
0x07 Renvall
0x08 Renvall
0x09 Port Kiris
0x0A Teraz Plateau
0x0B Caer Pelyn
0x0C Hamill Canyon
0x0D Jehanna Hall
0x0E Fort Rigwald
0x0F Bethroen
0x10 Taizel
0x11 Za'albul Marsh
0x12 Grado Keep
0x13 Jehanna Hall
0x14 Renais Castle
0x15 Narube River
0x16 Neleras Peak
0x17 Rausten Court
0x18 Darkling Woods
0x19 Black Temple
0x1A Tower of Valni
0x1B Lagdou Ruins
0x1C Melkaen Coast


After you edit the events, just reassemble them in EA and you should be good to go!


Skipping the talk with Hayden after chapter 1



ORG $A3C860
IFET 0x88
IFEQUAL 0x1 0xC 0x0
CALL NewEvents
ENDB


ORG NEWOFFSET


NewEvents:
WM_LOADLOCATION2 0x0 0x0 0x0 //Might as well load Border Mulan here (optional)
WM_LOADLOCATION2 0x0 0x1 0x0 //Like CREATENEXTDESTINATION except silent and instant
WM_SETDESTINATION 0x0 0x1 0x0
_0xA640 0x0 0x0 0x01 //like MOVESPRITETO except silent and instant
SKIPWN
ENDA



Just make a new text file, copy that in, pick an offset for the second part, assemble it in EA, and that headache of a scene should be gone!


Manipulating the world map


A start for maipulating the world map can be found here.

Edited by InvdrZim13
Link to comment
Share on other sites

Chapter 10: Misc Info

 

Custom chapter titles:

Chapter titles in FE8 are images and require a little more effort to get working compared to FE7, which is just straight text.

 

So, the easiest way to get your chapter titles in FE8 is to make the chapter title in FE7 and then do a few more things to get it in FE8.

 

Step 1: Make whatever your chapter title is supposed to be in FE8 in FE7 (using FEditor)

 

Step 2: Load up FE7 and get to this screen and pause the emulator:

dbHdfxy.png

 

Step 3: (I'm assuming you're using VBA) Go to Tools -> Map Viewer

SFHpdsL.png

 

Step 4: Find the right BG with the chapter title and click save and name it whatever you want and save it wherever you want.

 

Step 5: Open it in some sort of image editor (probably Usenti)

 

Step 6: Crop as little of the image as possible (try to just get the words for the title and a little extra room if you want) and save it as its own thing

 

 

Step 8: Drop the chapter title in on top of the template in Usenti, match the background color of the pasted image with the color of the template (inkdropper on template background, then fill bucket on background of the title stuff).

 

Step 9: Save it (REMEMBER TO SAVE AS, NOT SAVE, SO YOU DON'T OVERWRITE THE TEMPLATE)

 

Step 10: Open the ROM in GBAGE, go to image controls and go to the chapter image you need to change (the chapter images should start at 1406/1407)

 

Step 11: Insert the image by clicking import a bitmap and make sure your checkboxes are the same as mine.

DOTsOQe.png

 

Step 12: Pick a new offset for the image in the event that the new title is bigger than the old one (you should pick a new offset anyway just to be safe).

 

Assuming all goes well, it should be inserted into the game now!

 

Remember to open up the ROM and make sure the image is aligned properly, if it's not open it up in Usenti and move the title to where you think it should be to make it look centered. When you're satisfied with where you moved it repeat the GBAGE insertion steps.

 

And if it's still not lined up right, just keep repeating the process until it looks right in the ROM.

 

Pay to Recruit Events


SETVAL 0x4 0x03E8           // this sets the amount of gold that must be payed (in this case, 03E8 in hex=1000)

CHECK_MONEY                 //stores current gold to slot 0xC

IFGE 0x0 0xC 0x4            // Do you have the money? Memory slot 0x4 has the money stored

EVBIT_F 0x3                 // unknown, but necessary

Text(0x0B14)                // this has a [Yes] command. Just use any text with a [Yes] command

SETVAL 0x7 0x1              // Stores 0x1 (yes) to slot 7

IFEQ 0x1 0xC 0x7            // If Slot C matches Slot 7

SLOTS_ADD 0x32              // Slot 2 = Slot 3 (what was in slot 3??)

SLOTS_ADD 0x43              // Slot 3 = Slot 4 (Slot 3 now = price)

GIVETOSLOT3                 // Give Item in slot 1 to char in slot 3?? UNKNOWN

    //CALL events that happen "if you have the money and you choose Yes". Better to include ENDB or things may screw up

ELSE 0x2

ENIF 0x0

    //CALL events that happen "if you don't have the amount of money." The Yes/No choice isn't even displayed.

ENIF 0x1

    //CALL events that happen "if you DO have the money, but you said No".

ENIF 0x2

ENDA

 

Glowing Cross

GLOWING_CROSS charID

STAL Time

END_GLOWING_CROSS

 

Makes a glowing circle under the specific chracter for the specific amount of time

 

Earthquakes

EARTHQUAKE_START 0x100

STAL Time

EARTHQUAKE_END

 

Changing the 0x100 modifies the quake but for the best earthquake results you might as well leave it be so it looks nice.

 

Music transitions

So, FE8 is a bit weird with music transitions in text. In FE7, you'd simply use multiple text slots. In FE8; however, you use only one. Here is how you do it.

 

Start your text events like normal:


TEXTSTART

TEXTSHOW textid

TEXTEND

 

Next it gets a bit interesting.

 

To specify the music you want to change to, use the following events:


MUSC music

TEXTCONT

TEXTEND

 

If you want the music before the change to fade out a bit, use the following code before the music code:


0x1322 0x7FFF

TEXTCONT

TEXTEND

 

Now, we're not done yet, next comes the tricky part. What you need to do next is open up your text editor.

 

In your text slot you need to add in this code to the specific area you want the music to change:


[LoadOverworldFaces]

 

So, in the end, your text slot should look something like this.


[OpenLeft]

So... Mycen said no, did he?[.]

What a shame.[.][A][X]

[LoadOverworldFaces]

[OpenRight]

Wait!--[A][0x02]

I'll join in my Gramp's place![.][A][X]

Edited by InvdrZim13
Link to comment
Share on other sites

  • 4 weeks later...

This is my first day on this website, so I'm not really sure how this works. I recently have been working on learning eventing for fe8, and I have a pretty decent knowledge on eventing so far, But I have a few questions. First off, I REALLY don't understand all this SETVAL stuff. 

Plus I also noticed all these weird codes like 

FE8:
  _0x1920 

 FE8:
  _0x1922 

 FE8:
  _0x1923 

 FE8:
  _0x1924 

 FE8:
  _0x1925 

 FE8:
  _0x1927 

 FE8:
  _0x1928 

 FE8:
  _0x1929 

 FE8:
  _0x1A21 

 FE8:
  _0x1A22 

 FE8:
  _0x1A23 

 FE8:
  _0x1A24 

 FE8:
  _0x1A25 

There is a bunch of codes like these throughout the fe8 and I can't seem to find out what they do. 

One more question so far:

I started to make chapter 1 again from scratch with the same map that it has.  I put music, then slowly fade into the chapter, load orson(ENUN), make him move to coordinates 4,5(ENUN), make a cursor come up on him for 60 seconds, then i use:

TEXTSTART

TEXTSHOW 0x90A

TEXTEND

REMA

the weird part is, when i make the text come up, so long as i leave the text the way it is, it loads up perfectly fine. but when i change the portrait to orson, and change the text around of 90A, the game freezes every time. only if i edit it. otherwise its fine. idk why.

 

Those are all my questions so far. if anybody knows these things, id appreciate the help thanks.

Link to comment
Share on other sites

If you're looking at disassembled events I couldn't tell you what any of those mean just by looking at them. Try to figure it out using context clues.

You're probably loading the portrait wrong or otherwise messing up the text formatting, because the event part is right and the vanilla text works. 

Anyway I think this would be better suited for the EA question thread, so if you have further issues I'd suggest taking them there.

Link to comment
Share on other sites

Thank you for answering on such short notice.

and I'm making chapter 1 from scratch. It's a blank chapter that I'm writing in.

do you mind if I show you what I have for my events and what I have in feditor adv?

As far as context clues, I actually tried editing some of the values or taking them out completely just to see what effect it has on the game, and still I can't seem to find anything definite.

thank you though I appreciate your help. If you know where I should be asking these questions I'll ask there instead.

 

 

Link to comment
Share on other sites

1 hour ago, Ryuke said:

Nightmare modules link is dead. Checking if I have the latest.

Where to start basic eventing for FE8. Watch ghastutorial and work from there?

Updated nightmare module link.

Read Arch's guide to chapter construction, read the FE8 EA documentation, go from there.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...