Jump to content

Battle/Death Quotes via Event: Macros


Agro
 Share

Recommended Posts

Hey guys! Just some quick macros I put together for doing your death quotes and specified battle quotes by events. The idea is to completely abandon the Nightmare modules but you can use both if you like.

Doing these by events have several particular advantages over using Nightmare, including being able to set specific battle music for character 1 fighting character 2 (e.g. songs with an introduction, like Tearing Shadows from FE12), the ability to set special death music for certain characters, bigger control over event IDs when characters die e.g. setting their death quote to trigger both 0x23 and 0x02, which changes the map music and allows you to use 0x23 for something else. Sometimes NPC characters won't have their death quote IDs properly register or won't have the "death" theme play when they die, which can be easily rectified by instead using events.

Simply put, if you know how to do events, there's no reason to not use them in these instances.

Anyway, without further ado, here they are:

Death quotes:

#include EAstdlib.event
#define DQTableOffset 0xC9F2EC
#define DeathQuoteTable(index,Character,Chapter,TextPointer,EventPointer,TriggerID) "ORG DQTableOffset+(16*index); BYTE Character; BYTE Chapter; ALIGN 4; SHORT TextPointer; ALIGN 4; POIN EventPointer; BYTE TriggerID; ALIGN 4"

A sample:

//obviously set this to include your own definitions files, too
#include EAstdlib.event

//Death quote events
#define DQTableOffset 0xC9F2EC
#define DeathQuoteTable(index,CharacterID,ChapterID,TextPointer,EventPointer,TriggerID) "ORG DQTableOffset+(16*index); BYTE CharacterID; BYTE ChapterID; ALIGN 4; SHORT TextPointer; ALIGN 4; POIN EventPointer; BYTE TriggerID; ALIGN 4"

//The List
DeathQuoteTable(0x00,Henrick,0x43,0x00,HenrickDies,0x65)//TextPointer MUST be 0x00 if you want to use events

//Death Quote Events

ORG 0x71ED5C//you should only need to do this once

HenrickDies:
MUS1 HeroHasFallen
TEX1 0x7A8
ENUT 0x45
ENUT 0x02
ENDA
Specified Battle Quotes (note that Unspecified Battle Quotes do not seem to support event-hackery)

#define BQListOffset 0xC9EDA0
#define BattleQuoteTable(index,Character1,Character2,Chapter,TextPointer,EventPointer,ID) "ORG BQListOffset+(16*index); BYTE Character1; BYTE Character2; BYTE Chapter; ALIGN 4; SHORT TextPointer; ALIGN 4; POIN EventPointer; BYTE ID; ALIGN 4"

These of course assume that each table is in its default address--obviously you can adjust that as needed.

Edited by Agro
Link to comment
Share on other sites

Why are we using EA for this? This looks like something you could do with GCC or any other compiler.

hell you could probably write an assembly macro to do this

EA itself could probably be squeezed into a Fire Emblem SDK with a bunch of header files and stuff.

Link to comment
Share on other sites

Why are we using EA for this? This looks like something you could do with GCC or any other compiler.

hell you could probably write an assembly macro to do this

EA itself could probably be squeezed into a Fire Emblem SDK with a bunch of header files and stuff.

Aye, there are indeed many ways to skin a cat, but only so much time and effort to learn how to use particular programs. It's one less thing that people have to learn and/or open up.

Well, fuck me. Guess I just wasted 15 minutes treading trodden ground. Well, if anything, I managed to make one for battle quotes. Edited by Agro
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...