Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

Aah, being in misc would explain it. :|

Thanks for the help on word/short management too, I was aware of it filling the rest with zeroes, but must have overlooked good old GBA hex reversal.

I miss it just being "CODE". >.<

you can just use an older version of EA for tilechanges(That's what I do)

Link to comment
Share on other sites

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

i blame nintenlord

SHORT and BYTE shouldn't cause alignment errors because they're basically writing straight hex to the game (this is directed towards nl not you)

also looking at that hex it's doing largely what i expected it to although i dunno why there's random data after the changes

for the most part though if you use BYTE and combine any one-byte CODEs into a single BYTE (ie CODE 0x1; CODE 0x2 becomes BYTE 0x1 0x2) you can get similar functionality to CODE (that being said i don't remember exactly how CODE did things so you might have to do some bytereversing)

Edited by CT075
Link to comment
Share on other sites

you can just use an older version of EA for tilechanges(That's what I do)

....BRILLIANT.

Yeah, I think for someone who can't think more than one or two steps ahead, this is the best plan for me. I had no problem with Map Changes when I did the previous chapter, which was using the old one.

EDIT: @Muldur: The double FF is what caused me confusion in the first place. But even if the current method is wrong, why are there two FF00s?

Edited by LunaSaint
Link to comment
Share on other sites

The terminator for tile changes is 0xff as a word, for whatever reason yours is showing up as 0xff00ff00 instead. It looks like SHORT 0xff00 should be SHORT 0xff?

that's probably actually my fault

WORD 0xFF should do the trick

Edited by CT075
Link to comment
Share on other sites

EDIT: @Muldur: The double FF is what caused me confusion in the first place. But even if the current method is wrong, why are there two FF00s?

My guess would be either ALIGN 4 is bugged and making the code duplicate things or EA is writing to the ROM as it parses the file and those are leftovers from previous attempts.

Link to comment
Share on other sites

Hmm, you seem to be right. Changing that has removed the double FF, and a few horrible bugs have gone!

EDIT: Chests finally work, too! All seems green, thank god.

Edited by LunaSaint
Link to comment
Share on other sites

Something Cam missed.

// first thing
Armor:
SHLI IronSword SteelSword IronSpear SteelSpear IronAxe SteelAxe IronBow
ALIGN 4
SHORT 0x0  // SHORT will turn one byte into two bytes - 0x0 becomes 00 00

Vendor:
SHLI Heal Lightning Vulnerary
ALIGN 4
SHORT 0x0

SHORT 0x0 isn't needed here, SHLI inserts the terminator automatically.

ORG 0xC9C9C8+(4*0x14) 

POIN TileChanges

Use EventPointerTable(id,offset) instead:

EventPointerTable(0x14,TileChanges)

you can just use an older version of EA for tilechanges(That's what I do)

EA has backwards compatibility for CODE, by defining USING_CODE. It should work for you unless you are doing stupid stuff. And I'd still recommend doing map changes in either Mappy or Tiled, not in EA. I've never liked the idea on doing tile changes in EA.

SHORT and BYTE shouldn't cause alignment errors because they're basically writing straight hex to the game (this is directed towards nl not you)

Added to To-DO list of things to do 2.

My guess would be either ALIGN 4 is bugged and making the code duplicate things or EA is writing to the ROM as it parses the file and those are leftovers from previous attempts.

Probably the second one, though the latest version doesn't write to output if EA encounters an error.

Link to comment
Share on other sites

Hello.

I'm quite new to hacking and in one week I managed to make some custom characters and animations. I'm now digging in event assembling but in two days, though I read many times Arch's tutorial and all, I can't still create a working .txt file, err... Maybe I just need some practice, but I really can't understand where I'm mistaking.

Here is my simple trial script:

#include EAstdlib.event

EventPointerTable(0x07,ThisChapter)

ORG 0x1000A0

ThisChapter:

POIN TurnBasedEvents

POIN CharacterBasedEvents

POIN LocationBasedEvents

POIN MiscBasedEvents

POIN Dunno Dunno Dunno

POIN Tutorial

POIN TrapData TrapData

POIN Units Enemies

POIN $0 $0 $0 $0 $0 $0

POIN BeginningScene EndingScene

TurnBasedEvents:

TURN 0x00 BeginningScene [01,00] 0x0 0x00

TURN

CharacterBasedEvents:

CHAR

LocationBasedEvents:

LOCA

MiscBasedEvents:

CauseGameOverIfLordDies

DefeatAll (EndingScene)

AFEV

Dunno:

//DO NOT TOUCH

WORD $00

Tutorial:

//DO NOT TOUCH

WORD $00

TrapData:

ENDTRAP

ALIGN 4

Units:

UNIT Eirika 0x02 0x00 Level(1,Ally,False) [11,0] DropItem 0x00 0x01 Eirika_Move [0x09,0x6C] [NoAI]

UNIT Seth 0x07 Eirika Level(2,Ally,False) [11,1] DropItem 0x00 0x02 Seth_Move [0x17,0x03,0x00,0x00] [NoAI]

UNIT Empty

Eirika_Move:

REDA [11,4] 0x04 0x00 0x00

Seth_Move:

REDA [11,3] 0x03 0x00 0x00

Enemies:

UNIT 0x80 0x3F 0x00 Level(2,Enemy,True) [3,9] 0x00 [0x1F] [0x00, 0x03, 0x09, 0x00]

UNIT Empty

BeginningScene:

LOU1 Units

TEX1 (0x090D)

BACG (0x2A)

LOU1 Enemies

CAM1 [3,7]

STAL 0x20

CAM1 [7,5]

ENDA

EndingScene:

FADI 0x10

MUS1 0x09

FADU 0x10

TEX1 (0x0929)

MoveToChapter(0x01)

MESSAGE Events end at offset currentOffset

And this are the errors reported.

2m3fvh2.png

Any clue?

I'm kinda noob at this atm, eheh...

Ah, I'm hacking FE8.

Link to comment
Share on other sites

Hello.

I'm quite new to hacking and in one week I managed to make some custom characters and animations. I'm now digging in event assembling but in two days, though I read many times Arch's tutorial and all, I can't still create a working .txt file, err... Maybe I just need some practice, but I really can't understand where I'm mistaking.

Here is my simple trial script:

#include EAstdlib.event

EventPointerTable(0x07,ThisChapter)

ORG 0x1000A0

ThisChapter:

POIN TurnBasedEvents

POIN CharacterBasedEvents

POIN LocationBasedEvents

POIN MiscBasedEvents

POIN Dunno Dunno Dunno

POIN Tutorial

POIN TrapData TrapData

POIN Units Enemies

POIN $0 $0 $0 $0 $0 $0

POIN BeginningScene EndingScene

TurnBasedEvents:

TURN 0x00 BeginningScene [01,00] 0x0 0x00

TURN

CharacterBasedEvents:

CHAR

LocationBasedEvents:

LOCA

MiscBasedEvents:

CauseGameOverIfLordDies

DefeatAll (EndingScene)

AFEV

Dunno:

//DO NOT TOUCH

WORD $00

Tutorial:

//DO NOT TOUCH

WORD $00

TrapData:

ENDTRAP

ALIGN 4

Units:

UNIT Eirika 0x02 0x00 Level(1,Ally,False) [11,0] DropItem 0x00 0x01 Eirika_Move [0x09,0x6C] [NoAI]

UNIT Seth 0x07 Eirika Level(2,Ally,False) [11,1] DropItem 0x00 0x02 Seth_Move [0x17,0x03,0x00,0x00] [NoAI]

UNIT Empty

Eirika_Move:

REDA [11,4] 0x04 0x00 0x00

Seth_Move:

REDA [11,3] 0x03 0x00 0x00

Enemies:

UNIT 0x80 0x3F 0x00 Level(2,Enemy,True) [3,9] 0x00 [0x1F] [0x00, 0x03, 0x09, 0x00]

UNIT Empty

BeginningScene:

LOU1 Units

TEX1 (0x090D)

BACG (0x2A)

LOU1 Enemies

CAM1 [3,7]

STAL 0x20

CAM1 [7,5]

ENDA

EndingScene:

FADI 0x10

MUS1 0x09

FADU 0x10

TEX1 (0x0929)

MoveToChapter(0x01)

MESSAGE Events end at offset currentOffset

And this are the errors reported.

2m3fvh2.png

Any clue?

I'm kinda noob at this atm, eheh...

Ah, I'm hacking FE8.

Hey, I can finally field this one!

Seems that all of the errors bring returned are due to obsolete or misinterpreted stuff. I should know because I had this happen to me recently.

- For TURN, get rid of one of the two 0x00s at the end, you only need one of them

- The DefeatAll macro has that space between it and the pointer it's supposed to be pointing to, get rid of that

- For UNIT, get rid of the brackets around NoAI, there was a recent change in EA that removed that. Also, make sure that every item slot under a unit's items is filled out, even if they don't have anything(ex. Eirika would have 0x09,0x6C,0x0,0x0)

- For REDA, they have to be filled out like this:

REDA [xx,yy] 0b 0x0 0x0 0

- LOU1 doesn't work past EA V.9, it's _LOAD1 0x1 now

- TEX1 doesn't work on its own like that and especially with spaces next to the pointers; get rid of those and consider the Text(textID) or Text(background,textID) macros instead

- For BACG, don't use parenthesis, use brackets or leave them unbracketed instead(this applies to TEX1 as well)

This should help, I think.

Link to comment
Share on other sites

- For UNIT, get rid of the brackets around NoAI, there was a recent change in EA that removed that

EA never had NoAI that required the square brackets. Only Arch's own macros and definitions had that.

Also, make sure that every item slot under a unit's items is filled out, even if they don't have anything(ex. Eirika would have 0x09,0x6C,0x0,0x0)

Not required by EA or raws, you can leave some parameters from inventory parameter.

Link to comment
Share on other sites

EA never had NoAI that required the square brackets. Only Arch's own macros and definitions had that.

Not required by EA or raws, you can leave some parameters from inventory parameter.

Is that all? Then whoops, guess it's just the macro at fault then. My bad.

Link to comment
Share on other sites

Thank you very much MageKnight, Nintenlord.

I managed to fix the .txt file but the map looks horribly dyed in red, the tiles are totally screwed, I can't see the units and the game freezes/resets as soon as turn 1 begins (or even before).

I think I still have some work to do..

What could possibly be the problem?

Camera settings? Characters positions? The map itself?

I noticed that FE8 tilesets have an offset less than other FE's tilesets. To make an example, in FE7 a tileset could be 6C6D6E6A (don't know if it even exists, it's just to point out) and in FE it's just 185A1A(which is the Castle&Plains I want to insert). Why? Anyway, do I simply have to put "18" in Object Type in Nightmare, "5A" in Palette and "1A" in Tile Configuration, or am I mistaking something?

'Cause I can't guess which the actual problem is.

What I've done so far is:

1) Inserting a 15x10 map with tileset 185A1A to 0x1000000 (which actually has free-space in shadowofchaos' music instruments patch)

2) Inserting event score at 0x10000B0

3) Changing "Prologue Map 0x04" pointer to 0x1000000.

4) Changing settings of Prologue in Chapter Data to fit 18 5A 1A map's tileset.

Update:

The code for the tileset was outdated (I guess) since it's "57" and not "5A". Or my nightmare module is outdated, either way.

The problem hasn't changed anyway, the game loads a screwed pixeled map and it crashes.

I sincerely don't understand why.

The map is this:

dqtcw5.png

Its size is 15x10. It should be ok, shouldn't it?

Edited by AlfredKamon
Link to comment
Share on other sites

So, I was editing enemies in Chapter 8, playtested my patch and:

What_zps31035e25.png

Stumbled upon this. It happens in the cutscene when Tirado leaves and explodes the bridge. Eirika and Seth suddenly turn into that and after a while the game does a weird screeching sound. If I skip the cutscene, It is completely playable. I honestly have no idea what caused this and need you guys help. Here's the events for the chapter (note: I didnt actually mess with events but It must be related to them):

[spoiler=Ch8 events]

//////////////////////////////////////////////////////

// //

// Disassembled with Nintenlord's Event Assembler //

// Version: 9.8.4585.20791 //

// Game: FE8 //

// File: Fire Emblem - the Sacred Stones - Copy.GBA //

// Offset: $9E8FE4 //

// //

//////////////////////////////////////////////////////

ORG $591F40

label27:

_0x1020 0x1

_0x0220 0x2

_0x0320 0x8

_SETCONDITION 0x0 0xC 0x0

FADU 16

ENIF 0x0

_0x1020 0x0

ENDA

label15:

_0x1020 0x1

_0x0220 0x2

_0x0320 0x8

_SETCONDITION2 0x0 0xC 0x0

FADI 16

ENIF 0x0

_0x1020 0x0

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $591F88 and the new ending offset is CURRENTOFFSET

ORG $591FD8

label35:

CALL label15

_0x2220

_0x3E20

_0x2220

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $591FF0 and the new ending offset is CURRENTOFFSET

ORG $592104

label24:

_0x1020 0x4

ASMC 0x85375

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $592114 and the new ending offset is CURRENTOFFSET

ORG $8B7300

Units1:

UNIT 0x1 0x2 0x0 0x40 [19,20] 0b 0x0 0x1 0x8B7170 [0x9,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x5 0x45 0x0 0x18 [20,22] 0b 0x0 0x1 0x8B7178 [0x4B,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x9 0xD 0x0 0x10 [19,22] 0b 0x0 0x1 0x8B7180 [0x1,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x6 0x48 0x0 0x10 [19,18] 0b 0x0 0x1 0x8B7188 [0x15,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x3 0x9 0x0 0x28 [20,20] 0b 0x0 0x1 0x8B7190 [0x14,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x4 0x5 0x0 0x8 [20,18] 0b 0x0 0x1 0x8B7198 [0x1,0x14,0x6C,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x7 0x3D 0x0 0x8 [20,17] 0b 0x0 0x0 0x0 [0x2C,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0xA 0x3F 0x0 0x20 [19,18] 0b 0x0 0x0 0x0 [0x1F,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x13 0x44 0x0 0x8 [19,20] 0b 0x0 0x0 0x0 [0x3F,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT

label33:

UNIT 0x4D 0xB 0x0 0x1C [10,2] 0b 0x0 0x1 0x8B71A0 [0x1D,0x1D,0x1D,0x7C] [0x3,0x3,0x9,0x20]

UNIT 0x35 0xB 0x0 0xC [19,4] 0b 0x0 0x1 0x8B71A8 [0x21,0x7C,0x0,0x0] [0x0,0x0,0x9,0x0]

UNIT 0x35 0xB 0x0 0xC [20,3] 0b 0x0 0x1 0x8B71B0 [0x17,0x7C,0x0,0x0] [0x0,0x0,0x9,0x0]

UNIT 0x35 0xB 0x0 0xC [18,3] 0b 0x0 0x1 0x8B71B8 [0x4,0x7C,0x0,0x0] [0x0,0x0,0x9,0x0]

UNIT 0x78 0xD 0x0 0x5C [17,21] 0b 0x0 0x1 0x8B71C0 [0xD,0x6B,0x0,0x0] [0x0,0x2,0x9,0x0]

UNIT 0x78 0xD 0x0 0x5D [18,5] 0b 0x0 0x1 0x8B71C8 [0xD,0x6B,0x0,0x0] [0x0,0x0,0x9,0x0]

UNIT 0x36 0x11 0x0 0xC [1,6] 0b 0x0 0x1 0x8B71D0 [0x21,0x0,0x0,0x0] [0x3,0x3,0x9,0x20]

UNIT 0x73 0x4E 0x0 0x5C [9,5] 0b 0x0 0x1 0x8B71D8 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x20]

UNIT 0x35 0xB 0x0 0xD [10,5] 0b 0x0 0x1 0x8B71E0 [0x1B,0x0,0x0,0x0] [0x3,0x3,0x9,0x20]

UNIT 0x35 0xB 0x0 0xC [20,10] 10b 0x0 0x1 0x8B71E8 [0x28,0x6A,0x0,0x0] [0x3,0x3,0x0,0x20]

UNIT 0x38 0x13 0x0 0x5C [19,10] 0b 0x0 0x1 0x8B71F0 [0x4,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x5C [7,17] 0b 0x0 0x1 0x8B71F8 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x2F 0x5 0x0 0x54 [0,10] 0b 0x0 0x1 0x8B7200 [0x4,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x7F 0x5 0x0 0x54 [0,16] 0b 0x0 0x1 0x8B7208 [0x4,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x5C [7,17] 0b 0x0 0x1 0x8B7210 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x31 0x2D 0x0 0x54 [2,9] 0b 0x0 0x1 0x8B7218 [0x46,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x7F 0x5 0x0 0x54 [7,17] 0b 0x0 0x1 0x8B7220 [0x4,0x0,0x0,0x0] [0x0,0x22,0x9,0x0]

UNIT 0x31 0x2D 0x0 0x54 [19,10] 0b 0x0 0x1 0x8B7228 [0x45,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x77 0x1B 0x0 0xC [8,16] 0b 0x0 0x1 0x8B7230 [0x2F,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x77 0x1B 0x0 0xC [3,7] 0b 0x0 0x1 0x8B7238 [0x2F,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x32 0x25 0x0 0x5C [1,8] 0b 0x0 0x1 0x8B7240 [0x3A,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x54 [5,3] 0b 0x0 0x1 0x8B7248 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x7F 0x5 0x0 0x54 [15,2] 0b 0x0 0x1 0x8B7250 [0x4,0x0,0x0,0x0] [0x0,0x22,0x9,0x0]

UNIT 0x31 0x2D 0x0 0x3D [16,10] 0b 0x0 0x1 0x8B7258 [0x46,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x45 [11,5] 0b 0x0 0x1 0x8B7260 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x54 [20,11] 0b 0x0 0x1 0x8B7268 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x73 0x4E 0x0 0x54 [19,11] 0b 0x0 0x1 0x8B7270 [0x17,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT

label36:

UNIT 0xF 0x1 0x0 0x20 [0,21] 0b 0x0 0x1 0x8B7278 [0x78,0x16,0x6D,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x10 0x5 0x0 0x30 [0,22] 0b 0x0 0x1 0x8B7280 [0x3,0x1C,0x6C,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x11 0x5 0x0 0x28 [0,22] 0b 0x0 0x1 0x8B7288 [0x3,0x16,0x6C,0x0] [0x0,0x0,0x0,0x0]

UNIT

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $8B7648 and the new ending offset is CURRENTOFFSET

ORG $8B76FC

label30:

UNIT 0x42 0x7 0x0 0x8 [19,22] 0b 0x0 0x1 0x8B72B8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x1 0x2 0x0 0x40 [19,23] 0b 0x0 0x1 0x8B72C0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x2 0x7 0x0 0x8 [20,23] 0b 0x0 0x1 0x8B72C8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT

label31:

UNIT 0x4D 0xB 0x0 0x55 [19,11] 0b 0x0 0x1 0x8B72D0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]

UNIT 0x80 0x4E 0x0 0x45 [19,10] 0b 0x0 0x2 0x8B72D8 [0x0,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT 0x80 0x4E 0x0 0x45 [19,9] 0b 0x0 0x1 0x8B72E8 [0x0,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]

UNIT

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $8B779C and the new ending offset is CURRENTOFFSET

ORG $9E8EC0

TurnBasedEvents:

TURN 0x0 label16 [2,2] 0x0

TURN 0xC label17 [1,255] 0x0

TURN 0x0 label18 [5,0] 0x0

AFEV

CharacterBasedEvents:

CHAR 0x7 label19 [0x1,0xF] 0x0

CHAR 0x7 label19 [0xF,0x1] 0x0

CHAR 0x8 label20 [0xF,0x2] 0x0

CHAR 0x8 label20 [0x2,0xF] 0x0

CHAR 0x9 label21 [0x2,0x11] 0x0

CHAR 0x9 label21 [0x11,0x2] 0x0

CHAR 0xA label22 [0x4,0x10] 0x0

CHAR 0xA label22 [0x10,0x4] 0x0

AFEV

LocationBasedEvents:

DOOR 0x0 [20,7] 0x12

DOOR 0x0 [1,5] 0x12

CHES 0x0 0x4 [1,3] 0x14

CHES 0x0 0x67 [2,3] 0x14

LOCA 0x3 [10,2] 0x11

CHES 0x0 0x5B [19,4] 0x14

AFEV

MiscBasedEvents:

AREA 0xB label23 [5,0] [15,10]

AFEV 0x0 label24 0x65

AFEV

Dunno1:

AFEV

Dunno2:

AFEV

Dunno3:

AFEV

Tutorial:

AFEV

PointerList:

POIN TurnBasedEvents

POIN CharacterBasedEvents

POIN LocationBasedEvents

POIN MiscBasedEvents

POIN Dunno1 Dunno2 Dunno3 Tutorial

POIN Traps1 Traps2

POIN Units1 Units1

POIN $0 $0 $0

POIN $0 $0 $0

POIN BeginningScene EndingScene

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9E9034 and the new ending offset is CURRENTOFFSET

ORG $9ED9C5

Traps1:

ENDTRAP

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9ED9C6 and the new ending offset is CURRENTOFFSET

ORG $9EDEAA

Traps2:

ENDTRAP

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9EDEAB and the new ending offset is CURRENTOFFSET

ORG $9EE1B8

label37:

_0x3325 0xFFFF

_SETCONDITION 0x0 0xC 0x2

CALL label25

ENIF 0x0

ENDA

label25:

_0x1929

_0x0620 0xC2

_0x0221 0xFFFF

_0x0228 0x7

ENDB

label26:

_SETCONDITION 0x0 0xC 0x0

_LOAD_WHATEVER 0x1

ENUN

ELSE 0x1

ENIF 0x0

_LOAD_WHATEVER 0x0

ENUN

ENIF 0x1

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9EE218 and the new ending offset is CURRENTOFFSET

ORG $9EE248

label34:

_0x1927

_SETCONDITION2 0x0 0xC 0x0

_0x1922

_SETCONDITION 0x0 0xC 0x0

_0x0620 0x3C

CALL label26

ENIF 0x0

ENDA

label38:

_0x1020 0x4

CALL label27

_0x0228 0x9

_LOAD_WHATEVER 0x1

ENUN

_0x0220 0x9

_0x1020 0x0

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9EE29C and the new ending offset is CURRENTOFFSET

ORG $9EE2C4

label29:

_0x0320 0x8

_SETCONDITION2 0x80BD 0xC 0x0

FADI 16

ENIF 0x80BD

TEXTSTART

_0x2220

FADU 16

ENDA

label28:

_0x0320 0x8

_SETCONDITION2 0x80D2 0xC 0x0

FADI 16

ENIF 0x80D2

_0x1A21

_0x2140 0xFFFF 0x0 0x0

FADU 16

ENDA

label32:

CALL label28

_0x0620 0x32

TEXTSHOW 0xFFFF

TEXTEND

CALL label29

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9EE330 and the new ending offset is CURRENTOFFSET

ORG $9F2F38

BeginningScene:

MUS1 0x25

_LOAD2 0x1 label30

ENUN

CUMO 0x42

STAL 60

CURE

_SETVAL 0x2 0x10

CALL label28

TEXTSHOW 0xA08

TEXTEND

_0x1324 0x7FFF

TEXTCONT

TEXTEND

CALL label29

_LOAD1 0x1 label31

ENUN

CUMO 0x4D

STAL 60

CURE

MUS1 0x26

TEXTSTART

TEXTSHOW 0xA09

TEXTEND

REMA

STAL 30

CUSE 0x42

CUMO 0x42

STAL 60

CURE

MOVE 0x42 [20,19]

_SETVAL 0xB 0x100014

_MOVE2 0x0 0xFFFE 0x1

ENUN

MOVE 0x42 [20,15]

ENUN

_SETVAL 0xB 0x100015

_MOVE2 0x0 0xFFFE 0x0

MOVE 0x42 [19,10]

ENUN

DISA 0x42

CUMO 0x4D

STAL 60

CURE

_SETVAL 0x2 0x10

_SETVAL 0x3 0xA0A

CALL label32

_SETVAL 0xB 0x100013

_MOVE2 0x0 0xFFFE 0x0

ENUN

MOVE 0x4D [19,14]

ENUN

_SETVAL 0xB 0x100012

_MOVE2 0x0 0xFFFE 0x1

ENUN

MOVE 0x4D [19,14]

ENUN

CUMO 0x4D

STAL 60

CURE

TEXTSTART

TEXTSHOW 0xA0B

TEXTEND

REMA

_SETVAL 0xB 0x150014

_0x1620 0xAB

_0x2720 0xFFFF

MOVE 0x4D [19,10]

_SETVAL 0xB 0x100013

_MOVE 0x10 0xFFFE [19,11]

_SETVAL 0xB 0x100014

_MOVE 0x10 0xFFFE [20,11]

ENUN

_0x342C 0x0

_LOAD1 0x1 label33

ENUN

_SETVAL 0x2 0x88B77C4

_SETVAL 0x3 0x1

CALL label34

CUMO 0x1

STAL 60

CURE

_SETVAL 0x2 0x10

CALL label28

TEXTSHOW 0xA0C

TEXTEND

REMA

CALL label35

_0x0229 0xC

ENDA

label16:

_0x2620 0x1700

_LOAD1 0x1 label36

ENUN

_0x3421 0xF

_0x3421 0x10

_0x3421 0x11

_SETVAL 0x1 0x1

_0x3428 0xF

_SETVAL 0x1 0x1

_0x3428 0x10

_SETVAL 0x1 0x1

_0x3428 0x11

CUMO 0xF

STAL 60

CURE

MUS1 0x25

TEXTSTART

TEXTSHOW 0xA0D

TEXTEND

REMA

_0x0228 0x7

ENDA

EndingScene:

MUS1 0x31

_SETVAL 0x2 0x10

CALL label28

TEXTSHOW 0xA10

TEXTEND

REMA

_0x0229 0xDF

MNCH 0x6

ENDA

label19:

MUS1 0x27

TEXTSTART

TEXTSHOW 0xA11

TEXTEND

REMA

_0x0228 0x7

ENDA

label20:

MUNO

TEXTSTART

TEXTSHOW 0xA12

TEXTEND

REMA

MUSI

_0x0228 0x7

ENDA

label21:

MUNO

TEXTSTART

TEXTSHOW 0xA13

TEXTEND

REMA

MUSI

_0x0228 0x7

ENDA

label22:

MUNO

TEXTSTART

TEXTSHOW 0xA14

TEXTEND

REMA

MUSI

_0x0228 0x7

ENDA

label23:

_SETVAL 0x2 0x0

CALL label37

_0x0221 0xC

_0x0228 0x7

ENDA

label17:

_SETVAL 0x2 0x88B7648

CALL label38

_0x0228 0x7

ENDA

label18:

_SETVAL 0x2 0x88B7698

CALL label38

_0x0228 0x7

ENDA

//The next line is for re-assembling purposes. Do not delete!

MESSAGE Original ending offset is $9F3280 and the new ending offset is CURRENTOFFSET

Link to comment
Share on other sites

I've been working on this for a couple more hours but it seems I'm going nowhere.

So frustrating, events are the only aspect I haven't covered of hack roms yet but I'm totally stuck in these problems.

Fact is, now Event Assembler says my .txt is ok, but when I try opening the actual game, it crashes suddenly after the chapter name.

Here is the script:

#include EAstdlib.event

EventPointerTable(0x07,ThisChapter)

ORG 0x10000E0

ThisChapter:

POIN TurnBasedEvents

POIN MiscBasedEvents

POIN Dunno Dunno Dunno

POIN Tutorial

POIN Units

POIN Enemies

POIN $0 $0 $0 $0 $0 $0

POIN BeginningScene EndingScene

TurnBasedEvents:

TURN 0x00 BeginningScene [01,00] 0x00

TURN

MiscBasedEvents:

CauseGameOverIfLordDies

DefeatAll(EndingScene)

AFEV

Dunno:

//DO NOT TOUCH

WORD $00

Tutorial:

//DO NOT TOUCH

WORD $00

Units:

UNIT Eirika 0x02 0x00 Level(1,Ally,False) [10,06] DropItem 0x00 0x01 Eirika_Move [0x09,0x6C,0x00,0x00] NoAI

UNIT Seth 0x07 Eirika Level(2,Ally,False) [11,07] DropItem 0x00 0x02 Seth_Move [0x17,0x03,0x00,0x00] NoAI

UNIT Empty

Eirika_Move:

REDA [06,06] 0b 0x1 0x0 0

Seth_Move:

REDA [06,07] 0b 0x1 0x0 0

Enemies:

UNIT 0x80 0x3F 0x00 Level(2,Enemy,True) [05,13] DropItem 0x00 0x01 Enemy_Move [0x1F,0x00,0x00,0x00] [0x00,0x03,0x09,0x00]

UNIT Empty

Enemy_Move:

REDA [04,09] 0b 0x1 0x0 0

BeginningScene:

Text(0x2A,0x090D)

_LOAD1 0x1 Units

ENUN

CAM1 Eirika

ENUN

STAL 0x20

_LOAD1 0x1 Enemies

ENUN

ENDA

EndingScene:

FADI 0x10

MUS1 0x09

FADU 0x10

Text(0x0929)

MoveToChapter(0x01)

MESSAGE Events end at offset currentOffset

Is there something that may cause the game to freeze/crash?

Side note: EA should burn the event in the offset I put, in this case 0x1000E0, and this would be associated to 0x07 which is Prologue Events... but when in Nightmare I go to 0x07 Prologue Events after the burning, it still is pointed to the original one and not to 0x1000E0. Is that normal or it's me who hasn't understood at all how this works? *laughs*

Any help would be greatly appreciated, thanks for your time..

UPDATE:

Actually fixed it alone.

Edited by AlfredKamon
Link to comment
Share on other sites

I just did Chapter 8 in a draft and know what is missing. Basically, in the end of the cutscene, the game spawns enemies and makes them move. By altering the ID of the enemies in the chapter, I also messed with that cutscene.

Link to comment
Share on other sites

Stupid, noobish question: so basically the characters I put in the event text must be the same in the Chapter Unit Data (or viceversa) or can I add units out of nowhere in events?

Because my opening_event is a little messed up (after loading all units it just repeats the TEX1 it has already displayed, even if there isn't another TEX1 in the event) and maybe that's because I try loading units that aren't in the chapter unit data? Or maybe because there are characters in chapter unit data which aren't "covered" in the event text?

I'm a bit confused about this. Sorry if it feels ignorant, but I just don't understand clearly yet.

Link to comment
Share on other sites

If you edit units via events then you don't edit them via Chapter Unit Editor and vice verse. Also, post your events if you edit them.

Ok, thanks. And sorry if I didn't post the edited events before, but I didn't mention that the major errors I fixed were related to the map.

Now at least the map is displayed and the game doesn't freeze anymore.

I have two problems:

1) Like I said before, when the OpeningEvent occurs, it's like if it happens twice.

I'll try to explain it better. Here is the event, to begin with:

#include EAstdlib.event

EventPointerTable(0x07,ThisChapter)

ORG 0x10000A0

ThisChapter:

POIN TurnBasedEvents

POIN CharacterBasedEvents

POIN LocationBasedEvents

POIN MiscBasedEvents

POIN Dunno Dunno Dunno

POIN Tutorial

POIN TrapData TrapData

POIN Units Enemies

POIN $0 $0 $0 $0 $0 $0

POIN BeginningScene EndingScene

TurnBasedEvents:

TurnEventPlayer(0x01,BeginningScene,1)

TURN

CharacterBasedEvents:

CHAR

LocationBasedEvents:

LOCA

MiscBasedEvents:

CauseGameOverIfLordDies

DefeatAll(EndingScene)

AFEV

Dunno:

//DO NOT TOUCH

WORD $00

Tutorial:

//DO NOT TOUCH

WORD $00

TrapData:

ENDTRAP

ALIGN 4

Units:

UNIT Eirika 0x02 0x00 Level(1,Ally,False) [11,00] 0x00 0x00 0x01 Eirika_Move [0x09,0x6C,0x00,0x00] NoAI

UNIT Empty

Enemies:

UNIT 0x80 0x3F 0x00 Level(2,Enemy,True) [03,08] 0x00 0x00 0x01 Enemy_Move [0x1F,0x00,0x00,0x00] [0x00,0x03,0x09,0x00]

UNIT Empty

BeginningScene:

_LOAD1 0x1 Units

_LOAD2 0x1 Enemies

MUS1 0x09

Text(0x2A,0x090D)

REMA

ENDA

Eirika_Move:

REDA [11,00] 0b 0x1 0x0 0

Enemy_Move:

REDA [03,08] 0b 0x1 0x0 0

EndingScene:

FADI 0x10

MUS1 0x09

FADU 0x10

Text(0x0929)

MoveToChapter(0x01)

MESSAGE Events end at offset currentOffset

So the OpeningEvent should be:

_LOAD1 0x1 Units

_LOAD2 0x1 Enemies

MUS1 0x09

Text(0x2A,0x090D)

REMA

ENDA

But what I effectively see happening is:

_LOAD1 0x1 Units

_LOAD2 0x1 Enemies

MUS1 0x09

Text(0x2A,0x090D)

REMA

FADI (for a while)

FADU

_LOAD2 0x1 Enemies (the enemy loads in the same place of the first one and moves to the left)

Text(0x2A,0x090D)

REMA

FADI

FADU

ENDA

It kinda confuses me which the problem could be... that's why I made that question about the units in Events and in Chapter Data, I thought that the game was trying to load both since they didn't match, but if the problem isn't that, then what?

UPDATE: I actually solved this problem. In the Prologue, which hasn't PrepScreen, a Turn1 Event with BeginningScene isn't needed. So BeginningScene played twice because of the Event and the Pointer Event. I just erased the Turn1 Event and I was OK.

I still haven't solved problem 2 though, I'll try with Tiled instead of Mappy now, even if I don't think it's a problem in the map itself, rather in some options I forgot to input because of the pillars (?).

2) I don't know if this is the proper topic to ask, but I have a problem loading maps.

This load perfectly:

amcev9.png

While this gets partially screwed up:

vii7b8.jpg

The palette and tilesets should be the same, so...

Maybe the problem is with the pillars I inserted?

Thank you very much for eventual answers, they would mean a lot to me.

Edited by AlfredKamon
Link to comment
Share on other sites

Sorry for the double post, but it's passed some time since my last one so I think it's okay..?

Sorry if it isn't.

Anyway.

I had a minor problem.

When you finish a chapter, the character who performed the final blow "keeps moving on place" on the map. If, for example, I want to move that character in the EndingScene, the "moving sprite" stays in the position it is, but a copy of the character moves from that position to the one I wanted. Question is: is there a way to "stop" the character moving after he killed the last enemy or to move its moving sprite, without having a copy of the character? Or any other way to fix it? Sorry if I explained badly the problem but I don't seriously know how to explain more properly.

Link to comment
Share on other sites

[spoiler=events and stuff]

//Made by markyjoe1990 of Youtube

//Modified by Nintenlord

#define DISABLE_TUTORIALS

#include EAstdlib.event

#include Definitions.txt

EventPointerTable(0x06,Pointers)

ORG 0xD00180

Pointers:

POIN Turn_events

POIN Character_events

POIN Location_events

POIN Misc_events

POIN TrapData TrapData

POIN Bad Bad Bad Bad

POIN Good Good Good Good

POIN Opening_event Ending_event

Bad:

UNIT Kempf Vanguard 0x00 Level(20,Enemy,False) [2,3] [2,3] [sengenjin] NoAI

UNIT

Good:

Unit Adam Outlaw 0x00 Level(1,Ally,False) [14,4] [2,5] [ironBlade, Vulnerary] NoAI

UNIT

Turn_events:

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

TURN

Character_events:

CHAR

Location_events:

LOCA

Misc_events:

CauseGameOverIfLordDies

AFEV

Opening_event:

CAM1 [10,4]

OOBB

CURF [14,4]

FADI 10

BACG 0x02

FADU 10

TEX1 0x0803

REMA

LOU1 Bad

LOU1 Good

ENUN

CURF [2,3]

TEX1 0x0802

REMA

MOVE Adam [9,9]

ENDA

Ending_event:

//MoveToChapter(NextChapter)

TrapData:

ENDTRAP

MESSAGE Events end at offset currentOffset

//The map for this chapter is at offset: ????????

Soooo, I'm was hacking FE7, assemble the events, no problem, then this happen to the text.

funkytext.png

Everything worked fine, but the text is funky. Help?

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