FE Editor Suite 2015 Pro Deluxe Edition

Or, for short, FE Editor Suite.
Also considering picking up the alias “FE IDE”

#What is it?
A vision for a complete, unified editor for all FE Editing needs. Sans emulator. But we hope to reduce the number of programs you need open and get rid of weird concurrent/or async read/write issues from having multiple things loaded.

#What will it include?
Key: [ ] = no progress [_] = in progress [*] = mostly completed [x] = completed, tested, and backwards compatible

Including, but not limited to
[ ] Event Assembler
[] Integrated Nightmare
[ ] Hex Editor
[*] A real freespace manager/ management system
] Text Editor
[ ] Yeti’s Map Editor/Generator (possibly with direct insertion)
[ ] Zahl’s Animation Shenanigans
[ ] Temp’s Animation Shenanigans
[ ] Portrait Editors and Inserters
[ ] Assembly/Mechanics hack package manager

#How much of it is done?
It’s in the checklist above, idiot. None of it. Except a system to protect against bad async read/writes. So we don’t have to worry in the future about doing something in one window, saving, then saving in another and undoing that.

#Screenie pls, at least?
Ok fine, here’s me messing with a debug module I programmed on EN

#Todo list for my own benefit to not forget things
[] Have the requested data track what module requested it. Have closeModule remove the data that it has allocated. Remove Range allocatedData;.
[10:54:49 PM] Crazy Colorz: So FE Editor suite needs
] -> Save .hack File (Save to metadata folder)
[ ] -> Save As .ups
[] -> Export As ROM file
] [10:58:29 PM] Crazy Colorz: List< byte[]> floatingFreeSpace;[10:58:37 PM] Crazy Colorz: byte[] requestFreeSpace(int length); [10:58:38 PM] Crazy Colorz: etc
(Have this managed by the hack file???)
[ ] [10:51:47 PM] Crazy Colorz: The game has huffman encoding and decoding right?
[10:51:48 PM] Crazy Colorz: Just, like
[10:51:55 PM] Crazy Colorz: Simulate that whenever text is loaded or written
] I should have writeData return an xor diff.
[*] [12:35:31 AM] Crazy Colorz: Pointer writeToFreeSpace(byte[]);
[_] Edit the Xor application to check for the longest required ROMSize. Adjust accordingly.


All hail the virgin’s son, born to be our savior.

1 Like


Is it too early to ask for release dates

I suggest including an event dictionary along with the event assembler if you aren’t already. I know that there’s already a reference for the codes included in text with the EA, but assuming that some lucky future modder just uses this and never has to download the EA, it would be cool to have a dictionary of some sort built in. If you forgot how to load a background, for example, you could search for “background” and get “BACG 0x(number) - Loads background by number. [list of vanilla backgrounds]”.

(Arch, have you got another cartoonish phonograph on hand? I’m torn between whether to play the Hallelujah Chorus or Adeste Fideles on this one.)


A long-time pipe dream of mine has been to come up with something friendlier than event assembly, like more of a higher-level event language. Really I have no idea what it would look like, but I’m sure for example that conditional logic could be simplified a lot.

That said, there’s really no reason why we can’t just use longer, friendlier names for the event opcodes - except the extra effort of typing them, anyway.

Maybe when FEXNA comes out you can have a look at how it handles events? It’s pretty easy to use and definitely more inviting than GBA Eventing. Drop down boxes, intuitive HUD that tells you how to fill out each function. It’s not perfect but it’s a big step up from GBA. I’d love to see a GBA editor similar to FEXNA’s.

Minor suggestion for the new program, but I’d like to see it look in different default directories for loading, say, graphics and nightmare modules, than it does for loading ROMs.

1 Like

*The Vergil’s son, perhaps?

Looks very promising. I do hope it releases one day. :slight_smile:

I’ve noticed that XNA’s events really aren’t all that different in practice; it looks different because it uses more plain language, obviously, but that’s already feasible with macros. Otherwise it just has more event codes and splits up the event files into multiple separate files (I’m not really even sure what the benefits of that are), but looking to XNA for answers probably wouldn’t be the best way to tackle what @zahlman is talking about.

Even if a higher level of abstraction (which I’m not actually sure is worthwhile) is just a pipe dream for now, a proper IDE is definitely in the works

So am I the only dude who noticed the typo in the topic title? Or is it actually called the Edtior?

lols. I’ll go fix that for him.

And also yeah obligatory “this program is awesome.” Just give me a swiss army knife and let me get to work. It’ll be huge to have one all-functional interface. Kinda reminds me of XNA’s editor in concept.

Honestly this is the part that excites me the most. XNA does this and it’s very convenient to have all your editors open and not giveafuck.png if you save in one, because it updates in all of them and you never overwrite anything.

By the way… is this the Nightmare 3.0 we’ve all dreamed of?

NM3 (which does not, in fact, stand for nightmare 3) is an entirely different program that takes a very different approach to how hacking is done

the package manager is what NM3 is intended to be, but in its most basic form.

It’s also a pipe dream to port that to C#

I’m very happy to see someone developing an all-in-one solution for FE hacking. We need it.

They’re cleaner and a bit more structured, but yes, lots of macros will bridge the gap.

XNA’s event structuring is very analogous to RPGMaker, for those who have looked at that.

I think the major thing we could incorporate easily that will also give a HUGE boost to eventing is
[] Some form of if-condition generation
[] Automatic event ID allocation.

The bigger stumbling block to me is that I have no idea how to syntax it