Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

spoiler them because they are fucking huge and we don't want to scroll through it if we're really not interested

and use

[code][/code ][/code]

tags

Edited by Camtech
Link to comment
Share on other sites

spoiler them because they are fucking huge and we don't want to scroll through it if we're really not interested

and use

[code][/code ][/code]
 tags

Ah, now I get it.
[code] Thank you, Cam.

Link to comment
Share on other sites

Uhh, okay, this is not going very well at all. I think I'm having issues getting it to realize what it's supposed to be doing? Well, I tried adding Batta in with the exact same stuff as the dragon had in the battle quote editor to make sure I wasn't being a fuck up with defeat boss conditions, but it ended the chapter so it doesn't look like that's it. I've tried to copy the ending events of Light part 2 exactly (including WORD, which I got working after downloading a more recent set of Event Assembler stuff) and I've also tried clearing it of everything but the fire ring and quake and it just isn't happening. I guess I'll leave my current set of events here and see if you can make any sense of it/see something off that should be obvious?

(btw they're a mess and also a lot of the characters there are placeholders so don't ask)

//Made by markyjoe1990 of Youtube
//Modified by Nintenlord

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,ThisChapter)


ORG 0xD80000
ThisChapter:

POIN Turn_events 
POIN Character_events 
POIN Location_events 
POIN Misc_events
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Bad:
UNIT Dragon FireDragon 0x00 Level(20,Enemy,False) [12,15] [12,15] [0x8F] [0x00,0x02,0x02,0x00]
//UNIT Batta Brigand 0x00 Level(10,Enemy,False) [7,10] [7,10] [Hammer] NoAI
UNIT Empty

Good:
UNIT Raven Warrior Hector Level(20,Ally,False) [2,6] [2,6] [basilikos] NoAI
UNIT Geitz General Hector Level(20,Ally,False) [5,4] [5,4] [RexHasta] NoAI
UNIT Guy Sniper_F Hector Level(20,Ally,False) [4,6] [4,6] [Rienfleche] NoAI
UNIT Karel Sage Hector Level(20,Ally,False) [2,4] [2,4] [Excalibur] NoAI
UNIT Dorcas Bishop_F Hector Level(20,Ally,False) [6,6] [6,6] [Luce] NoAI
UNIT Bartre Druid Hector Level(20,Ally,False) [9,8] [9,8] [Gespenst] NoAI
UNIT Empty

TheseTwo:
UNIT Hector Hero 0x00 Level(20,Ally,False) [4,1] [4,3] [RegalBlade] NoAI
UNIT Citizen Valkyrie Hector Level(20,Ally,False) [4,1] [3,3] [Fortify] NoAI
UNIT Empty

ReGood:
UNIT Hector Hero 0x00 Level(20,Ally,False) [7,0] [7,5] [RegalBlade] NoAI
UNIT Guy Sniper_F Hector Level(20,Ally,False) [6,0] [4,5] [Rienfleche] NoAI
UNIT Raven Warrior Hector Level(20,Ally,False) [7,0] [8,6] [basilikos] NoAI
UNIT Karel Sage Hector Level(20,Ally,False) [6,0] [4,6] [Excalibur] NoAI
UNIT Geitz General Hector Level(20,Ally,False) [7,0] [8,4] [RexHasta] NoAI
UNIT Dorcas Bishop_F Hector Level(20,Ally,False) [6,0] [6,6] [Luce] NoAI
UNIT Citizen Valkyrie Hector Level(20,Ally,False) [7,0] [6,5] [Fortify] NoAI
UNIT Bartre Druid Hector Level(20,Ally,False) [6,0] [6,7] [Gespenst] NoAI
UNIT Empty

FuckNyx:
UNIT Bartre Druid Hector Level(20,Ally,False) [7,7] [7,7] [Gespenst] NoAI
UNIT Empty

Turn_events:
TurnEventPlayer(0x00,Opening_event,1)
TURN

Character_events:
CHAR

Location_events:
LOCA

Misc_events:
DefeatBoss(Ending_event)

Opening_event:
MUS1 0x0027
BACG 0x0D
TEX1 0x0800
LOU1 Good
ENUN
REMA
LOU1 TheseTwo
ENUN
STAL 0x20
CURF Geitz
FADI 10
BACG 0x1C
FADU 10
TEX1 0x0801
REMA
MOVE Dorcas [8,8]
ENUN
CURF Dorcas
FADI 10
MUS1 0x0034
BACG 0x1C
FADU 10
TEX1 0x0802
REMA
MOVE Hector [9,7]
ENUN
CURF Hector
FADI 10
BACG 0x1C
FADU 10
TEX1 0x0803
REMA
MOVE Hector [15,7]
MOVE Raven [15,6]
MOVE Geitz [15,4]
MOVE Guy [15,6]
MOVE Karel [15,4]
MOVE Dorcas [15,8]
MOVE Bartre [15,8]
MOVE Citizen [15,6]
ENUN
FADI 5
DISA Hector
DISA Raven
DISA Geitz
DISA Guy
DISA Karel
DISA Dorcas
DISA Bartre
DISA Citizen
ENUN
LOMA 0x01 [10,10]
FADU 5
LOU1 ReGood
ENUN
LOU1 Bad
ENUN
CURF Guy
TEX1 0x0804
REMA
MOVE Bartre [10,15]
ENUN
CURF Citizen
TEX1 0x0805
REMA
FIGH Dragon Bartre NyxVsDragon $00000000
UNCM Bartre 0x2
CURF Bartre
TEX1 0x0806
REMA
MOVE Citizen [10,15]
ENUN
DISA Bartre
ENUN
MOVE Citizen [7,6]
ENUN
LOU1 FuckNyx
ENUN
CURF Bartre
TEX1 0x0807
REMA
ENDA

Ending_event:
WORD 0x8C
ASMC 0x7E421 0x7ED41 0x1CD51
MUEN 1
ASMC 0x7AC55 0x7BBE5
STAL 0
ASMC 0x7AD2D
STAL 30
//MNCH Chapter
ENDA

NyxVsDragon:
DefenderHit(14,False)
AttackerHit(40,True)
EndOfBattle

BallistaData:
BLST
ALIGN 4

MESSAGE Events end at offset currentOffset

(Also pictured: me stumbling around with getting nyx to stop waiting after the battle and also rescuing him and then giving up)

Link to comment
Share on other sites

Misc_events:

DefeatBoss(Ending_event)

you're missing an empty AFEV here (also you're missing CauseGameOverIfLordDies)

also you want to use

AFEV 0x0 EndingScene 0x02

instead of DefeatBoss

EDIT

It might also be hardcoded to eliwood mode, try using rey's patch and seeing if anything changes (the savefile should be blue)

Edited by Camtech
Link to comment
Share on other sites

you're missing an empty AFEV here (also you're missing CauseGameOverIfLordDies)

also you want to use

AFEV 0x0 EndingScene 0x02

instead of DefeatBoss

EDIT

It might also be hardcoded to eliwood mode, try using rey's patch and seeing if anything changes (the savefile should be blue)

Okay, did those things, but it still doesn't work. I also have the patch on.

Link to comment
Share on other sites

Four pages in one night, what happened? Oh wait, Bladehero posted.

Oh well, back to business.

Turn_events:
TURN 0x00 Opening_event [01,00] (0x0) 0x00
TURN

this doesn't do anything

those paren's should be square brackets

No it shouldn't. TURN goes like this in FE7:

FE7:

TURN ID *Event Pointer* [Turns 1, Turns 2] TurnMoment Extra

TURN ID *Event Pointer* [Turns 1, Turns 2] TurnMoment Extra1 Extra2 Extra3 Extra4

The parameter is question, TurnMoment, doesn't have any []. EA should have given an error about it, though it may not have if I've accidentally coded it to think [00] = 00 because there's only one coordinate. I should fix that in some future update. So yeah, it should be:

Turn_events:
TURN 0x00 Opening_event [01,00] 0x0 0x00
TURN

Uhh, so yeah, dragons.

When I disassembled Light part 2, the first part of the ending scene is:

WORD 0x8C

But it won't accept WORD when attempting to assemble. I assume this meant something at some point in time but has been replaced? I think it's probably important because it's the very first thing in the ending scene, before any asm stuff, but I have no idea.

i blame nintenlord

I blame him, too. But honestly, I can't think of a reason why disassembly would support WORD but assembly doesn't unless you have edited the raws. Which is fine in itself, but may cause problems like this. Downloading the latest version would probably have been my suggestion, but you alredy did it.

try using BYTE? or...

EndingScene:
NEVENTS
ASMC 0x7E421
ASMC 0x7ED41
ASMC 0x1CD51
MUEN 1
ASMC 0x7AC55
ASMC 0x7BBE5
STAL 0
ASMC 0x7AD2D
STAL 30
FADI 2
HIDEMAP
ASMC 0x7A8B9
THE_END
_0x1
ENDA

If WORD isn't supported properly, it's unlikely that BYTE is supported either. And if you do replace WORD with BYTE, you need to do it like this:

BYTE 0x8C 0x00 0x00 0x00

also you want to use

AFEV 0x0 EndingScene 0x02

instead of DefeatBoss

Why? Those are identical and macros are always preferrable to raw codes, so I'm really interested in hearing your arguments on this.

(Also pictured: me stumbling around with getting nyx to stop waiting after the battle and also rescuing him and then giving up)

Assuming nyx = Bartre, you don't need to, only the attacker will get grayed out and the attacker is the first parameter aka the dragon. As for resquing, I believe me and Arch did it for FE4A's prologue at some point and he has posted the events somewhere, so try looking for those.

Link to comment
Share on other sites

I blame him, too. But honestly, I can't think of a reason why disassembly would support WORD but assembly doesn't unless you have edited the raws. Which is fine in itself, but may cause problems like this. Downloading the latest version would probably have been my suggestion, but you alredy did it.

Assuming nyx = Bartre, you don't need to, only the attacker will get grayed out and the attacker is the first parameter aka the dragon. As for resquing, I believe me and Arch did it for FE4A's prologue at some point and he has posted the events somewhere, so try looking for those.

As I mentioned in a previous post, the WORD thing was because my EA standard library was less up to date than I thought, or something. Though, it is weird that the old version's disassemble put WORD there but it wouldn't accept it in assembly.

Yes, nyx is Bartre, but there was a bunch of fumbling around with that and I eventually decided on that. I did find a way to get rescuing to happen by looking through a bunch of stuff, but there was some problem with that making nyx go inactive anyways or something but only when actually watching the events so I had it gray him out regardless? Or something? It was a while ago though so I don't really remember that well. I'll try to figure out my mindset on that whole thing later though, I'm getting tired.

Link to comment
Share on other sites

Why? Those are identical and macros are always preferrable to raw codes, so I'm really interested in hearing your arguments on this.

...note to self: update EAstdlib

i was under the impression that the macro was some other weird thing i don't know what i'm on about ignore me

Link to comment
Share on other sites

OK, so my events aren't working:

Location_events:
Door(15,12)
Door(30,8)
DOOR 0x0A ChestDoor [22,14] 0x10//22,14
DOOR 0x0B LTRTopDoor [12,21] 0x10//Door(12,21)
DOOR 0x0C RTRTopDoor [16,21] 0x10//Door(16,21)
DOOR 0x0D LTRVertDoor [10,27] 0x10//10,27
DOOR 0x0E RTRVertDoor [18,27] 0x10//18,27
Chest(Fortify,14,7)
Chest(Boots,27,13)
Seize(0x0F,Ending_event,14,24)
LOCA

ChestDoor:
MAC1 0x02 0x00
ENDA

LTRTopDoor:
MAC1 0x03 0x00
ENDA

RTRTopDoor:
MAC1 0x04 0x00
ENDA

LTRVertDoor:
MAC1 0x05 0x00
ENDA

RTRVertDoor:
MAC1 0x06 0x00
ENDA

Misc_events:
CauseGameOverIfLordDies
AFEV

Ending_event:
MoveToChapter(0x10) //Chapter 13x

What's happening is the following:

Most of the door events are working fine and triggering the proper tile changes. The problematic ones are LTRTopDoor, which moves onto the next chapter when opened, and LTRVertDoor, which doesn't trigger on the map (there is no option "Door" when a thief with a Lockpick is adjacent to it.

The seize command is still working fine.

What I want LTRTopDoor and RTRTopDoor to do is that opening one triggers the other one to open, which I was planning to do using the forced tile change commands in addition to ENUT.

I've double checked the tilechange IDs, and they match up.

Link to comment
Share on other sites

Sigh... I hate coming here because it means admitting defeat. Oh well...

Alright, so I wrote my prologue events to FE7's Lyn Prologue events not realising that there'd be the whole Lyn's Mode issue. So after I found out about this I went and got SOC's skip-Lyn-mode patch and applied it to my ROM. I then proceeded to rewrite my events and subsequent death quotes to Chapter 11E instead. I kept the map (lyn's prologue map) the same, though, as it had an open space which was what I needed. I didn't have a map to insert at the time so I couldn't tell whether or not it was going to be an issue. Everything seemed to be going fine, the events still ran as they did before.

Fast forward to now where I've got my map and I'm trying to insert it. I used the event assembler to insert my map at DD6250 and also wrote the same pointer into the ROM with the Nightmare module. I found that the map hadn't changed; it was still Lyn's prologue. In fact, the map won't change unless I change Lyn's prologue instead of Chapter 11E. This is what my event file looks like at the top, though:

#define DISABLE_TUTORIALS
#include EAstdlib.event
#include owndefinitions.txt
#define MAP_OFFS 0xDD6250

// Write a pointer to the map for you so you don't have to do it yourself

EventPointerTable(0x39,Chapter)

ORG 0x1003DF0

Does this mean that my events are still being written over 0x06 despite me telling it to overwrite 0x39? When I start a new game the chapter box is blue indicating it's Eliwood mode but for some reason it starts with Lyn's prologue. Should I have used the patch on a fresh ROM, then, and does that mean that I have to restart everything? I'm afraid I might not have been very clear in this post so if you need more information I'll elaborate further.

Link to comment
Share on other sites

I used the event assembler to insert my map at DD6250 and also wrote the same pointer into the ROM with the Nightmare module.

Wait, EA inserts maps now as well? Or do you mean just write the pointer for you? Unless I'm way out of the loop you should be using the .MAR Array Inserter or the Tiled variant to actually get the map data in the ROM.

One way to tell if your events are using the pointer you want them to is to double check the pointer table itself. If you go to the table in a hex editor and count the correct number of pointers down you can see if it's now using the new offset or the old. 0x39 is ways down so you could change the offset and see if 0x06 changes or not and then you'll know.

Nightmare also can screw you up if you're not careful due to how it edits the ROM versus the way EA does it.

Dondon, do you mean that if door A opens door B does as well? Or do you mean if you open A, B opens instead to troll you?

Link to comment
Share on other sites

Dondon, do you mean that if door A opens door B does as well? Or do you mean if you open A, B opens instead to troll you?

The first one.

But right now, the problem is that opening LTRTopDoor causes the chapter to end and you can't open LTRVertDoor at all.

Link to comment
Share on other sites

Wait, EA inserts maps now as well? Or do you mean just write the pointer for you? Unless I'm way out of the loop you should be using the .MAR Array Inserter or the Tiled variant to actually get the map data in the ROM.

One way to tell if your events are using the pointer you want them to is to double check the pointer table itself. If you go to the table in a hex editor and count the correct number of pointers down you can see if it's now using the new offset or the old. 0x39 is ways down so you could change the offset and see if 0x06 changes or not and then you'll know.

Nightmare also can screw you up if you're not careful due to how it edits the ROM versus the way EA does it.

:facepalm: Sorry, I meant repoint. I checked both pointers for 0x06 and 0x39 and neither had actually changed so I did them myself; the map only changed after I changed the prologue map.

Link to comment
Share on other sites

Does this mean that my events are still being written over 0x06 despite me telling it to overwrite 0x39? When I start a new game the chapter box is blue indicating it's Eliwood mode but for some reason it starts with Lyn's prologue. Should I have used the patch on a fresh ROM, then, and does that mean that I have to restart everything? I'm afraid I might not have been very clear in this post so if you need more information I'll elaborate further.

That's what the patch is supposed to do.

Edit: So you should have kept the lyn prologue stuff

Edited by Hikarusa
Link to comment
Share on other sites

That's what the patch is supposed to do.

Edit: So you should have kept the lyn prologue stuff

what nooooooooooooo

Edit: So if I'm trying to edit their death quotes, do I use part 1 or part 2?

Edited by Agro
Link to comment
Share on other sites

Alright, so, I know that in the past CHAI had problems and the AI would bork when you used the command. I finally upgraded to EA v9.6 but there seems to be no change in this problem. Is this issue still under investigation or am I way out of the loop?

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...