Recommended Posts

Event Assembler originally by Nintenlord!

FEU Thread

Future Planned Features

Since I'm editing EA and incorporating new changes, as well as USING the new features, I thought I'd make a thread specifically dedicated to its maintenance and download. This is that thread.

It did seem awkward to me that our most useful/powerful tool gets buried in the forums, and the latest version isn't in the OP of the thread it is on. With me developing for it as well as posting this thread, I can keep this post updated.

Download Tools at FEU's EA Formatting Suite.

Latest Version Download: Event Assembler V11.1

(Thanks @Stanツ_)

Latest Changes:

Spoiler


- Added `-symOutput:<filename>` Core option, which outputs global labels to `<filename>` following the format `<name>=$<offset(hex)><newline>`
- "Added" symbol Assignment logic (`<symName> = <value>`) ("Added" because most of the logic was already present, I basically just made it parse)
- Tools invoked through directives (`#incext`, `#inctevent` & `#runext`) can now report errors via stderr (before they needed to print "ERROR: <err string>" to stdout)
- `#runext` passes Tool's stdout to EA's
- Added warning when redefining a symbol/label (within the same scope)
- Various Fixes:
 - Fixed `#inctext`/`#inctevent` not handling parameters with spaces properly
 - Fixed IsDefined macro not working
 - Fixed curly brackets crashing EA when directly after a label/statement
 - Fixed repeatable codes without parameters crashing EA
 - Fixed various crashes related to the expression/parameter parser

(Also some minor additions to raws & the stdlib (See [th](https://github.com/FireEmblemUniverse/Event-Assembler/commit/dd8f4b54a298a33da59147f84069caa207593c8d)[ese](https://github.com/FireEmblemUniverse/Event-Assembler/commit/f7fb5e68b1becfdefb5c5a4a4350c39c2473d8c3) github commits for details))

This may or may not be the last (feature) release before Colorz's rewrite is complete.

Please do notify us about any bug you may find, either through here or the [Discord](http://feuniverse.us/t/feu-discord-server/1480?u=stanh).

README2.txt:

V 11.0
-Changed #inctext to #inctevent. I recommnend the use of this name in the future because it's more intuitive.
-Fixed bug where Core would hang if it got an invalid input file.
-Added PROTECT (start) (end) to make a region write-protected.
-Made Event assembler.exe look for .event files by default (over .txt)
-Changed lexing/parsing. 
 -String literals now work (with MESSAGE and such)
 -Labels/Definitions come into scope for parameters properly.
 -Added ability for use of definitions in preprocessor calls.
-Made disassembly work again; changed auto-adding of _0x codes to not mess up disassembly.
-Changed disassemblies to use ASSERT for stronger protection over just MESSAGE-ing the currentOffset.
-Changed scripts to take/output .event files by default.

V11.0.1
-Aliased #inctevent as #inctext for backwards compatability with V10.1.1

EAstdlib.event:

V3.3
-FE6,FE7: Added old definitions (spears, etc) through BACKWARDS_COMPATIBILITY.

Previous Version Downloads And Short Description:

Spoiler

Event Assembler V11.0.1

- Aliased `inctevent` as `inctext`.

Event Assembler V11.0

- Added `inctevent` requested by @circleseverywhere and his tools.
- Added `ASSERT num` (issues error if its parameter evaluates to a negative) and `PROTECT start end` (once passed the specified range will become read only).
- Fixed disassembly (for good).
- Definitions/Labels now work correctly as parameters.

Event Assembler V10.1

- incext bugfix
- runext, `\`-escaping in parsing
- MNTS in FE8, fixed `Fe8Code` assembling.
- Tools definitions improvements.

Event Assembler V10.0

- PUSH/POP allows you to repoint something without having to reallocate to free space.
- Tools folder/#incext

Event Assembler V9.12

- Added backwards support for CODE, and by extension, #incbin.

- Added the Extensions folder, packing the first extensions of Hack Installation.txt and AI Assembly.txt.

- Changed several old event codes' names to be more sensible. For old definitions, #include BACKWARDS_COMPATIBILITY.

Event Assembler V9.11

- Added lots of FE8 support.

- Added new form for AI ([AI1, AI2] AI3 AI4). For old form/definitions, #define OLD_AI before you include EAstdlib.event. To see what AI is available, read this thread and EA Standard library/AI Helpers.txt

Event Assembler V9.10

- Nintenlord's last release.

 

Edited by Crazycolorz5
Added V11.1

Share this post


Link to post
Share on other sites

Version 10.0 Released!

Spoiler
On 5/19/2016 at 1:42 PM, Crazycolorz5 said:

Download Tools at FEU's EA Formatting Suite.

Latest Version Download: Event Assembler V10.0

This dug into the code for Core.exe a lot. A few bugs were squashed, such as resources failing to close from #include. All of the changes are detailed in README2.txt. This sets up EA to be able to process a wider variety of data, and PUSH/POP allows you to repoint something without having to reallocate to free space.

This update also adds the Tools folder. The README.txt file tells how to use all tools that have been developed for EA. However, since the tools are much larger than the size of EA itself, the download is separate. In future releases, we might offer a full .zip containing both EA and tools, but for now, download them from the EA Formatting Suite thread.

README2.txt:


V 10.0
-FE6: Added THE_END code in raws, replacing _0x3E (credit to Onmi)
-FE8: Changed old FE8!IFET to CHECK_EVENTID
-Updated EA Standard Library to 9.2.
-Made capitalization in includes and folder structure more consistent.
-Fixed bug where resources inconsistently closed when included.
-Fixed #incbin to use BYTE instead of CODE.
-Fixed bug where ifndef didn't properly recognize automatic definitions.
-Made >> always do 32-bit logical shifts; Added >>> to do 32-bit arithmetic shifts.
-Fixed operator precedence to match that of C's.
-Loading a raw code will also load _0xXXXX where XXXX is its ID;
 If the code is <= 0xFF, it also loads _0xXX.
-Redefinitions are now only warnings, rather than errors.
-Added #incext; Searches Tools folder for the name of the tool provided,
 then calls the tool by command line with the rest of the parameters as
 commandline parameters, then inlines with BYTE any output written to stdout.
 An error is logged if the first bytes of the output are "ERROR: ".
-Added the Tools ParseFolder, Png2Dmp, and PortraitFormatter.
-Added PUSH/POP to store and load CURRENTOFFSET.
-Added #easteregg. Try to find them all!
EAstdlib.event:

V3.2
-FE8: Added "Slots Helpers.txt".
-FE8: Added ClearBackgroundSmooth -- just does a FADI before the call.
-FE8: Fixed ReinforcementEvent macro (was incorrect before).
-ALL: Updated all macros that used ORG to now take advantage of PUSH/POP.

 

 

Edited by Crazycolorz5
Spoiler tagging changelog

Share this post


Link to post
Share on other sites

Not entirely sure if this is the right place to post it, but there seems to be a bug with the current verson of EA starting at v9.10 (possibly earlier) for CH 7 of FE8. On a clean ROM, I can't assemble anything from CH 7 without an error message. The exact steps I took were Open Clean ROM -> Disassemble CH 7 to text -> Re-Assemble CH 7 (No changes to events), and of course it doesn't work with my modified events either.

Spoiler

Finished.
1 errors encountered:
Exception: System.NotImplementedException: The method or operation is not implemented.
at Nintenlord.Event_Assembler.Core.Code.Templates.GenericFE8Template.Matches(Type[] code)
at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
at Nintenlord.Event_Assembler.Core.Code.Templates.CodeTemplateStorer.GetTemplateFrom(String codeName, Type[] parameterTypes, List`1 templates)
at Nintenlord.Event_Assembler.Core.Code.Templates.CodeTemplateStorer.FindTemplate(String codeName, Type[] parameterTypes)
at Nintenlord.Event_Assembler.Core.Code.Language.EAExpressionAssembler.d__0.MoveNext()
at Nintenlord.Event_Assembler.Core.Code.Language.EAExpressionAssembler.d__0.MoveNext()
at Nintenlord.Event_Assembler.Core.Code.Language.EAExpressionAssembler.Assemble(IPositionableInputStream input, BinaryWriter output, ILog log)
at Nintenlord.Event_Assembler.Core.Program.Assemble(EACodeLanguage language, TextReader input, BinaryWriter output, ILog log)
at Nintenlord.Event_Assembler.Core.Program.Assemble(String inputFile, String outputFile, String languageName, ILog messageLog)
at Nintenlord.Event_Assembler.UserInterface.MainForm.<.ctor>b__1(Object sender, DoWorkEventArgs args)

 

No data written to output.

 

 

Spoiler

////////////////////////////////////////////////////////////////////
// //
// Disassembled with Nintenlord's Event Assembler //
// Version: 9.10.4713.28131 //
// Game: FE8 //
// File: 1997 - Fire Emblem - The Sacred Stones (U)(TrashMan).gba //
// Offset: $9E8E70 //
// //
////////////////////////////////////////////////////////////////////



ORG $591F64
label15:
EVBIT_MODIFY 0x1
EVBIT_F 0x2
CHECK_EVBIT 0x8
BNE 0x0 0xC 0x0
FADI 16
LABEL 0x0
EVBIT_MODIFY 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
label23:
CALL label15
CLEAN
PREP
CLEAN
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
label19:
EVBIT_MODIFY 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 $8B6E78
Units1:
UNIT 0x1 0x2 0x0 0x38 [0,17] 0b 0x0 0x1 0x8B6E28 [0x9,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x3 0x9 0x0 0x28 [0,16] 0b 0x0 0x1 0x8B6E30 [0x14,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x8 0x1A 0x0 0x8 [0,17] 0b 0x0 0x1 0x8B6E38 [0x2D,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x5 0x45 0x0 0x18 [0,16] 0b 0x0 0x1 0x8B6E40 [0x4B,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0xA 0x3F 0x0 0x20 [0,18] 0b 0x0 0x1 0x8B6E48 [0x1F,0x28,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x7 0x0 0x8 [0,16] 0b 0x0 0x1 0x8B6E50 [0x3,0x17,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x9 0xD 0x0 0x10 [0,19] 0b 0x0 0x1 0x8B6E58 [0x1,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x6 0x48 0x0 0x10 [0,18] 0b 0x0 0x1 0x8B6E60 [0x15,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x4 0x5 0x0 0x8 [0,17] 0b 0x0 0x0 0x0 [0x1,0x14,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x13 0x44 0x0 0x8 [0,19] 0b 0x0 0x0 0x0 [0x3F,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

label22:
UNIT 0x80 0x3F 0x0 0x3D [17,6] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [8,11] 0b 0x0 0x0 0x0 [0x14,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [9,11] 0b 0x0 0x0 0x0 [0x15,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [10,17] 0b 0x0 0x0 0x0 [0x14,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [16,19] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [1,8] 0b 0x0 0x0 0x0 [0x1F,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0xF 0x0 0x45 [13,13] 0b 0x0 0x0 0x0 [0x1,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [15,14] 0b 0x0 0x0 0x0 [0x38,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [19,8] 0b 0x0 0x0 0x0 [0x1F,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [18,19] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0xF 0x0 0x3D [12,14] 0b 0x0 0x0 0x0 [0x1,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [11,13] 0b 0x0 0x0 0x0 [0x39,0x5C,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x2D [17,8] 0b 0x0 0x0 0x0 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x3D [17,20] 0b 0x0 0x0 0x0 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x45 [12,18] 0b 0x0 0x0 0x0 [0x16,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [1,7] 10b 0x0 0x0 0x0 [0x39,0x6E,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x4C 0x5 0x0 0x64 [9,4] 10b 0x0 0x0 0x0 [0x3,0x1C,0x65,0x0] [0x3,0x3,0x9,0x20]
UNIT 0x80 0x19 0x0 0x3D [9,4] 0b 0x0 0x1 0x8B6E68 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x3D [9,4] 0b 0x0 0x1 0x8B6E70 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B70E4 and the new ending offset is CURRENTOFFSET

ORG $8B710C
label25:
UNIT 0x1 0x2 0x0 0x8 [3,9] 0b 0x0 0x2 0x8B70E4 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x7 0x0 0x8 [3,9] 0b 0x0 0x2 0x8B70F4 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

label26:
UNIT 0x42 0x7 0x0 0x8 [10,0] 0b 0x0 0x1 0x8B7104 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B7170 and the new ending offset is CURRENTOFFSET

ORG $9E8E14
TurnBasedEvents:
TURN 0x0 label16 [1,0] 0x8
END_MAIN

CharacterBasedEvents:
END_MAIN

LocationBasedEvents:
LOCA 0x3 [9,4] 0x11
LOCA 0x0 label17 [1,15] 0x10
LOCA 0x0 label18 [17,21] 0x10
END_MAIN

MiscBasedEvents:
AFEV 0x0 label19 0x65
END_MAIN

Dunno1:
END_MAIN

Dunno2:
END_MAIN

Dunno3:
END_MAIN

Tutorial:
END_MAIN

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 $9E8EC0 and the new ending offset is CURRENTOFFSET

ORG $9ED9B7
Traps1:
BLST [17,8] 0x35
BLST [2,10] 0x35
ENDTRAP

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9ED9C4 and the new ending offset is CURRENTOFFSET

ORG $9EDEA8
Traps2:
ENDTRAP

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EDEA9 and the new ending offset is CURRENTOFFSET

ORG $9EE0C0
label24:
CHECK_TUTORIAL
BEQ 0x0 0xC 0x0
TUTORIAL_CALL
LABEL 0x0
ENDA

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EE0DC and the new ending offset is CURRENTOFFSET

ORG $9EE2C4
label21:
CHECK_EVBIT 0x8
BNE 0x80BD 0xC 0x0
FADI 16
LABEL 0x80BD
TEXTSTART
CLEAN
FADU 16
ENDA

label20:
CHECK_EVBIT 0x8
BNE 0x80D2 0xC 0x0
FADI 16
LABEL 0x80D2
REMOVEPORTRAITS
BACG 0xFFFF
FADU 16
ENDA

label27:
CALL label20
SADD 0x32
TEXTSHOW 0xFFFF
TEXTEND
CALL label21
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 $9F2B8C
BeginningScene:
MUSC 0x25
LOAD1 0x1 label22
ENUN
FADU 16
LOAD3 0x0 Units1
ENUN
STAL 15
CAM1 [9,4]
CUMO [9,4]
STAL 60
CURE
_0x2620 0x1500
CUMO 0x1
STAL 60
CURE
SVAL 0x2 0x21
CALL label20
TEXTSHOW 0x9F6
TEXTEND
CHECK_ALIVE 0x4
BEQ 0x0 0xC 0x0
FE8Code 0x1B21 0x09F7
TEXTEND
LABEL 0x0
CHECK_ALIVE 0x3
BEQ 0x1 0xC 0x0
CHECK_ALIVE 0x5
BEQ 0x1 0xC 0x0
CHECK_ALIVE 0x6
BEQ 0x1 0xC 0x0
FE8Code 0x1B21 0x09F8
TEXTEND
LABEL 0x1
CHECK_ALIVE 0x7
BEQ 0x2 0xC 0x0
CHECK_ALIVE 0xA
BEQ 0x2 0xC 0x0
FE8Code 0x1B21 0x09F9
TEXTEND
LABEL 0x2
CHECK_ALIVE 0x9
BEQ 0x3 0xC 0x0
CHECK_ALIVE 0x8
BEQ 0x3 0xC 0x0
FE8Code 0x1B21 0x09FA
TEXTEND
LABEL 0x3
CHECK_ALIVE 0xC
BEQ 0x4 0xC 0x0
CHECK_ALIVE 0x13
BEQ 0x4 0xC 0x0
FE8Code 0x1B21 0x09FB
TEXTEND
LABEL 0x4
CHECK_ALIVE 0x20
BEQ 0x5 0xC 0x0
FE8Code 0x1B21 0x09FC
TEXTEND
LABEL 0x5
CHECK_ALIVE 0xD
BEQ 0x6 0xC 0x0
FE8Code 0x1B21 0x09FD
TEXTEND
LABEL 0x6
FE8Code 0x1B21 0x09FE
TEXTEND
CALL label23
MUSC 0x9
FADU 16
SVAL 0x2 0x89F2EBC
CALL label24
EVBIT_T 0x7
ENDA

label16:
_0x2629 0x4C
MUSC 0x13
CUMO 0x4C
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x9FF
TEXTEND
REMA
EVBIT_T 0x7
ENDA

EndingScene:
FADI 16
SVAL 0xB 0x0
LOMA 0x44
CLEA 0x0
CLEE 0x0
CLEN 0x0
FADU 16
MUSC 0x53
LOAD2 0x1 label25
ENUN
CUMO 0x1
STAL 60
CURE
TEXTSTART
TEXTSHOW 0xA04
TEXTEND
REMA
MOVE_1STEP 0x0 0x2 0x1
MOVE_1STEP 0x0 0x1 0x0
LOAD2 0x1 label26
ENUN
ENUN
CUMO 0x42
STAL 60
CURE
MUNO
SVAL 0x2 0x10
SVAL 0x3 0xA05
CALL label27
MUSI
MOVE_1STEP 0x0 0x42 0x0
ENUN
MOVE 0x0 0x42 [9,0]
SVAL 0xD 0x0
SVAL 0x1 0x109
SAVETOQUEUE
SVAL 0x1 0x0
SAVETOQUEUE
SVAL 0x1 0x9
SAVETOQUEUE
SVAL 0x1 0x0
SAVETOQUEUE
MOVEFORCED 0x0 0x1 0x0
SVAL 0xD 0x0
SVAL 0x1 0x10A
SAVETOQUEUE
SVAL 0x1 0x0
SAVETOQUEUE
SVAL 0x1 0xA
SAVETOQUEUE
SVAL 0x1 0x0
SAVETOQUEUE
MOVEFORCED 0x0 0x2 0x0
STAL2 0x8
FADI 16
ENUN
ENUT 0xD5
MNCH 0x9
ENDA

label17:
MUNO
SVAL 0x2 0x0
SVAL 0x3 0xA06
CALL label27
MUSI
EVBIT_T 0x7
ENDA

label18:
MUNO
SVAL 0x2 0x0
SVAL 0x3 0xA07
CALL label27
MUSI
EVBIT_T 0x7
ENDA

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9F2EBC and the new ending offset is CURRENTOFFSET

 
And yet when I use an older verson (V7.XX) everything turns out fine.Here's the corresponding event file
 
Spoiler

////////////////////////////////////////////////////////////////////
// //
// Disassembled with Nintenlord's Event Assembler //
// Version: 9.10.4713.28131 //
// Game: FE8 //
// File: 1997 - Fire Emblem - The Sacred Stones (U)(TrashMan).gba //
// Offset: $9E8E70 //
// //
////////////////////////////////////////////////////////////////////



ORG $591F64
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
label23:
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
label19:
_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 $8B6E78
Units1:
UNIT 0x1 0x2 0x0 0x38 [0,17] 0b 0x0 0x1 0x8B6E28 [0x9,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x3 0x9 0x0 0x28 [0,16] 0b 0x0 0x1 0x8B6E30 [0x14,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x8 0x1A 0x0 0x8 [0,17] 0b 0x0 0x1 0x8B6E38 [0x2D,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x5 0x45 0x0 0x18 [0,16] 0b 0x0 0x1 0x8B6E40 [0x4B,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0xA 0x3F 0x0 0x20 [0,18] 0b 0x0 0x1 0x8B6E48 [0x1F,0x28,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x7 0x0 0x8 [0,16] 0b 0x0 0x1 0x8B6E50 [0x3,0x17,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x9 0xD 0x0 0x10 [0,19] 0b 0x0 0x1 0x8B6E58 [0x1,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x6 0x48 0x0 0x10 [0,18] 0b 0x0 0x1 0x8B6E60 [0x15,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x4 0x5 0x0 0x8 [0,17] 0b 0x0 0x0 0x0 [0x1,0x14,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x13 0x44 0x0 0x8 [0,19] 0b 0x0 0x0 0x0 [0x3F,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

label22:
UNIT 0x80 0x3F 0x0 0x3D [17,6] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [8,11] 0b 0x0 0x0 0x0 [0x14,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [9,11] 0b 0x0 0x0 0x0 [0x15,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x3D [10,17] 0b 0x0 0x0 0x0 [0x14,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [16,19] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [1,8] 0b 0x0 0x0 0x0 [0x1F,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0xF 0x0 0x45 [13,13] 0b 0x0 0x0 0x0 [0x1,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [15,14] 0b 0x0 0x0 0x0 [0x38,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [19,8] 0b 0x0 0x0 0x0 [0x1F,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x80 0x3F 0x0 0x3D [18,19] 0b 0x0 0x0 0x0 [0x20,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0xF 0x0 0x3D [12,14] 0b 0x0 0x0 0x0 [0x1,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [11,13] 0b 0x0 0x0 0x0 [0x39,0x5C,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x2D [17,8] 0b 0x0 0x0 0x0 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x3D [17,20] 0b 0x0 0x0 0x0 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x4E 0x0 0x45 [12,18] 0b 0x0 0x0 0x0 [0x16,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x25 0x0 0x3D [1,7] 10b 0x0 0x0 0x0 [0x39,0x6E,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT 0x4C 0x5 0x0 0x64 [9,4] 10b 0x0 0x0 0x0 [0x3,0x1C,0x65,0x0] [0x3,0x3,0x9,0x20]
UNIT 0x80 0x19 0x0 0x3D [9,4] 0b 0x0 0x1 0x8B6E68 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT 0x80 0x19 0x0 0x3D [9,4] 0b 0x0 0x1 0x8B6E70 [0x2D,0x0,0x0,0x0] [0x0,0x3,0x9,0x0]
UNIT

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B70E4 and the new ending offset is CURRENTOFFSET

ORG $8B710C
label25:
UNIT 0x1 0x2 0x0 0x8 [3,9] 0b 0x0 0x2 0x8B70E4 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x7 0x0 0x8 [3,9] 0b 0x0 0x2 0x8B70F4 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

label26:
UNIT 0x42 0x7 0x0 0x8 [10,0] 0b 0x0 0x1 0x8B7104 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B7170 and the new ending offset is CURRENTOFFSET

ORG $9E8E14
TurnBasedEvents:
TURN 0x0 label16 [1,0] 0x8
END_MAIN

CharacterBasedEvents:
END_MAIN

LocationBasedEvents:
LOCA 0x3 [9,4] 0x11
LOCA 0x0 label17 [1,15] 0x10
LOCA 0x0 label18 [17,21] 0x10
END_MAIN

MiscBasedEvents:
AFEV 0x0 label19 0x65
END_MAIN

Dunno1:
END_MAIN

Dunno2:
END_MAIN

Dunno3:
END_MAIN

Tutorial:
END_MAIN

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 $9E8EC0 and the new ending offset is CURRENTOFFSET

ORG $9ED9B7
Traps1:
BLST [17,8] 0x35
BLST [2,10] 0x35
ENDTRAP

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9ED9C4 and the new ending offset is CURRENTOFFSET

ORG $9EDEA8
Traps2:
ENDTRAP

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EDEA9 and the new ending offset is CURRENTOFFSET

ORG $9EE0C0
label24:
_0x1927
_SETCONDITION 0x0 0xC 0x0
_CALL_HELL
ENIF 0x0
ENDA

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EE0DC and the new ending offset is CURRENTOFFSET

ORG $9EE2C4
label21:
_0x0320 0x8
_SETCONDITION2 0x80BD 0xC 0x0
FADI 16
ENIF 0x80BD
TEXTSTART
_0x2220
FADU 16
ENDA

label20:
_0x0320 0x8
_SETCONDITION2 0x80D2 0xC 0x0
FADI 16
ENIF 0x80D2
_0x1A21
_0x2140 0xFFFF 0x0 0x0
FADU 16
ENDA

label27:
CALL label20
_0x0620 0x32
TEXTSHOW 0xFFFF
TEXTEND
CALL label21
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 $9F2B8C
BeginningScene:
MUS1 0x25
_LOAD1 0x1 label22
ENUN
FADU 16
_LOAD3 0x0 Units1
ENUN
STAL 15
CAM1 [9,4]
CUMO [9,4]
STAL 60
CURE
_0x2620 0x1500
CUMO 0x1
STAL 60
CURE
_SETVAL 0x2 0x21
CALL label20
TEXTSHOW 0x9F6
TEXTEND
_0x3322 0x4
_SETCONDITION 0x0 0xC 0x0
_0x1B21 0x9F7
TEXTEND
ENIF 0x0
_0x3322 0x3
_SETCONDITION 0x1 0xC 0x0
_0x3322 0x5
_SETCONDITION 0x1 0xC 0x0
_0x3322 0x6
_SETCONDITION 0x1 0xC 0x0
_0x1B21 0x9F8
TEXTEND
ENIF 0x1
_0x3322 0x7
_SETCONDITION 0x2 0xC 0x0
_0x3322 0xA
_SETCONDITION 0x2 0xC 0x0
_0x1B21 0x9F9
TEXTEND
ENIF 0x2
_0x3322 0x9
_SETCONDITION 0x3 0xC 0x0
_0x3322 0x8
_SETCONDITION 0x3 0xC 0x0
_0x1B21 0x9FA
TEXTEND
ENIF 0x3
_0x3322 0xC
_SETCONDITION 0x4 0xC 0x0
_0x3322 0x13
_SETCONDITION 0x4 0xC 0x0
_0x1B21 0x9FB
TEXTEND
ENIF 0x4
_0x3322 0x20
_SETCONDITION 0x5 0xC 0x0
_0x1B21 0x9FC
TEXTEND
ENIF 0x5
_0x3322 0xD
_SETCONDITION 0x6 0xC 0x0
_0x1B21 0x9FD
TEXTEND
ENIF 0x6
_0x1B21 0x9FE
TEXTEND
CALL label23
MUS1 0x9
FADU 16
_SETVAL 0x2 0x89F2EBC
CALL label24
_0x0228 0x7
ENDA

label16:
_0x2629 0x4C
MUS1 0x13
CUMO 0x4C
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x9FF
TEXTEND
REMA
_0x0228 0x7
ENDA

EndingScene:
FADI 16
_SETVAL 0xB 0x0
LOMA 0x44
_0x342A 0x0
_0x342C 0x0
_0x342B 0x0
FADU 16
MUS1 0x53
_LOAD2 0x1 label25
ENUN
CUMO 0x1
STAL 60
CURE
TEXTSTART
TEXTSHOW 0xA04
TEXTEND
REMA
_MOVE2 0x0 0x2 0x1
_MOVE2 0x0 0x1 0x0
_LOAD2 0x1 label26
ENUN
ENUN
CUMO 0x42
STAL 60
CURE
MUNO
_SETVAL 0x2 0x10
_SETVAL 0x3 0xA05
CALL label27
MUSI
_MOVE2 0x0 0x42 0x0
ENUN
MOVE 0x42 [9,0]
_SETVAL 0xD 0x0
_SETVAL 0x1 0x109
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x9
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_MOVE3 0x0 0x1 0x0
_SETVAL 0xD 0x0
_SETVAL 0x1 0x10A
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0xA
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_MOVE3 0x0 0x2 0x0
_0x0E22 0x8
FADI 16
ENUN
_0x0229 0xD5
MNCH 0x9
ENDA

label17:
MUNO
_SETVAL 0x2 0x0
_SETVAL 0x3 0xA06
CALL label27
MUSI
_0x0228 0x7
ENDA

label18:
MUNO
_SETVAL 0x2 0x0
_SETVAL 0x3 0xA07
CALL label27
MUSI
_0x0228 0x7
ENDA

//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9F2EBC and the new ending offset is CURRENTOFFSET

 

 
I have no idea what the problem would be, I'm really unfamiliar with pre 9.12 definitions, but it seems to be a problem exclusive to handling this chapter. All my definitions files should be up to date (reinstalled before testing on both 9.12 and 10.0) so I'm thinking this may be a bug?
 
EDIT:
 

FE8Code 0x1B21 0x09F9

Seems like the error is caused by that line right there. Changing the FE8 produces a playable chapter, the problem is that it seems to be tied to the bit where each character says a line in game if they are alive. Altering this code (at least from what I've tested) prevents the rest of the opening scene from playing out correctly. TEXTSHOW seems to work in place of FE8code, but I can't be certain the conditions work properly as I have every character alive. Using FE8code -> SHORT seems to work without breaking anything, if that's of any use to you. I suspect there may be similar compatibility issues in later chapters as well.
Edited by Integrity

Share this post


Link to post
Share on other sites

Okay, I'm on it.

Edit: I've fixed the issue. It seems to be something Nintenlord never rewrote when he rewrote a large section of the parser. Basically, I think it means that the code isn't known in the RAWs. So we actually should investigate this.

Edit2: I found some commented out lines in the Text RAWs file.

#Same as TEXTSHOW
TEXTSHOW2, 0x1B21, 4, -game:FE8 -indexMode:8
    Text ID, 2, 2

So I uncommented those lines. I don't know why they were commented. In any case, I've fixed the underlying issue if there were any other unknown codes.

Edited by Crazycolorz5

Share this post


Link to post
Share on other sites

New release. Disassembly works properly again. Version 11.0, new major update!

Spoiler
On 5/19/2016 at 1:42 PM, Crazycolorz5 said:

Latest Version Download: Event Assembler V11.0

Latest Changes:

- Added `inctext` requested by @circleseverywhere and his tools.
- Added `ASSERT num` (issues error if its parameter evaluates to a negative) and `PROTECT start end` (once passed the specified range will become read only).
- Fixed disassembly (for good).
- Definitions/Labels now work correctly as parameters.

README2.txt:


V 11.0
-Added POIN2; it's just POIN but doesn't require word-alignment.
-Fixed Hack Installation/setPointerTableEntry
-Added #inctext for programs that output event code, rather than just binary.
-Fixed bug where Core would hang if it got an invalid input file.
-Added PROTECT (start) (end) to make a region write-protected.
-Made Event assembler.exe look for .event files by default (over .txt)
-Changed lexing/parsing. 
 -String literals now work (with MESSAGE and such)
 -Labels/Definitions come into scope for parameters properly.
 -Added ability for use of definitions in preprocessor calls.
-Made disassembly work again; changed auto-adding of _0x codes to not mess up disassembly.
-Changed disassemblies to use ASSERT for stronger protection over just MESSAGE-ing the currentOffset.
-Changed scripts to take/output .event files by default.

EAstdlib.event:


V3.3
-FE6,FE7: Added old definitions (spears, etc) through BACKWARDS_COMPATIBILITY.

 

 

 

Edited by Crazycolorz5

Share this post


Link to post
Share on other sites

Preprocessor commands are broken. Will fix very shortly.

 

Edit: Fixed. Download is now back up. If you downloaded it in those brief few minutes, please redownload.

Edited by Crazycolorz5

Share this post


Link to post
Share on other sites

Quick fix (V11.0.1) aliasing inctevent as inctext for reverse compatibility with V10.1.1  (needed for some of circles's tools)

Share this post


Link to post
Share on other sites

Small update to V11.1.1, just changing some standard library things and syncing some raws. It might break some event scripts, but the new definitions are pretty close. It's mainly in preparation for phasing in ColorzCore I don't have time to update this thread rn but it's on the feu thread.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.