Since the disassembly ability is still new, I figured I’d make a tutorial so that people would get a faster start on it’s event editing capabilities. So here we go.
- Basic idea of hex and pointers.
- Basic knowledge on Nightmare.
- Other basic knowledge from things like text, graphics and etc editing. Depends on what you want to edit.
You will also need the ROM of whatever game you wish to edit, you need to find them on your own. Don’t ask for them, it’s against the rules. You’ll also need a text editor, but since every operating system (Windows/Linux/Mac etc) comes with one, you don’t need anything more.
First step is to open the ROM you wish to edit in correct Event References editor. Then search for pointer to the chapter events you wish to edit. I choose to use FE7 prologue for this example, though this applies to every chapter in every GBA FE game Event Assembler supports. Here is what the Nightmare will look like in this case:
Now, open Event Assembler. It should something like this:
If it looks different, make sure you have at least version 7.2, because this tutorial is impossible/much harder with any of the earlier versions. Anything below 8.0 also requires steps no longer present in this tutorial. First thing you do is copy the offset in Nightmare to the Offset of Disassembling options. Ignore the 0x8 in the beginning when copying. In my case, I would write CA0720. After that, choose the ROM to the input by pressing the upper Browse button. Then choose an empty text file of your choice as your output (Event Assembler create one for you if one doesn’t exist) named something like “My FE7 Prologue.txt” without quotes. The .txt part in the end is important, otherwise you can use any valid file name you can think of. Then check the box in disassembly options called “Whole chapter”. After this make sure you have everything correctly, make sure you have the right game selected:
Now you can proceed by pressing Dissassembly button. The Event Assembler will notify of possible errors or warning, in which case you should make sure you didn’t make any mistakes. If Event Assembler is asking you to choose an option, then you forgot to check the “Offset to chapter event pointer list” box. In that case, press cancel, check the box and press disassembly again.
Now we have done everything with Nightmare we need, so close it. Keep Event Assembler open so you don’t have to re-choose files. Locate the text file you chose in Even Assembler and open it. It should look like something like this depending on your text editor:
If the text looks strange, make sure you have Word Wrap disabled. You can usually find it in options menu:
Now, you need to decide what you want to edit. Smaller edits are easier and less likely to screw something up, so stick with those. In this example, I’ll be changing the convo backgrounds into something more fitting for Lyn’s heritage. However, before you can edit something like this, you must know the Event Assembly code that controls that aspect of the game. If you don’t know, open Event assembler language.txt file that comes with Event Assembler and search for the code that does what you need to edit. In my case, I find the BACG code that seems to do what I want to edit:
You then search for the code in you Event Assembly. You can use Ctrl+F in most text editors to search for the code you need to edit. However, in most cases you will find that same code is used several times and only one of them is something you wish to edit. In that case, you can use other codes to try to figure out what is the correct place to change things. If that fails, you can always try your luck and edit one code in random and then try again if it isn’t what you are looking for. You don’t need repeat the beginning steps every time you wish to chance something, you can just continue editing the same text file, just make sure to undo unwanted changes. As for my case, I find five BACG codes in prologue Event Assembly, three of which I want to edit. The ones I want to edit are all the ones with 0x0 after the BACG. Since I feel like Lyn deserves indoor castle garden in her tent, I will change BACG 0x0 to BACG 0x18. However, instead of just deleting the old code I comment it and add a new, nearly identical one like this:
This way I can easily restore the code into original state if I change my mind and decide to, for example, that Lyn’s tent should have it’s own beach or something like that or if I find out I edited the wrong code. Comments are ignored by the Event Assembler, so you don’t have to having any extra codes like this. After you have all the changes you want (all 3 in my case), save the changes and close the text editor.
Now it’s time to go back to Event Assembler and reinsert the events into the game. This time, you only need to choose the input, output and game, everything else is in the text file itself. And since you left Event Assembler open, all options are already set. If you closed Event Assembler or moved either of the files or want to insert to another ROM or something, you can choose text file, ROM and Game the same way as in earlier step. When everything is set, click the Assemble button:
This time, pay attention to the screen that pops up. If any errors and warnings happen, you probably wrote the new code wrong or something else and you need to back to fix them and re-assemble the events. If no errors or warnings happen, then pay attention to the messages:
Disassembled codes are set to output the ending offset of both current code and the original when assembled. If the new ending offset is larger than the old, the new code is larger than the old and it means that writing the new code overwrote something after the old code. If you are lucky, it won’t be anything important but if it is, you may have made something completely unplayable. If this happens, you may want to consider moving the edited part of the code to somewhere where there is plenty of room. However, that is something better left for another tutorial. For now, if you did overwrite something, just pretend you didn’t do it and do your best to be more careful in the future. In my example, Lyn now is a happy new owner of indoor garden:
Too bad she never uses the tent again during the game. Lousy, ungrateful b… Anyway, this is how you do event editing the simplest way I know right now. Any comments, suggestion or general feedback on the tutorial, the Event Assembler, just sent them right to me, since I made all of them <_<.
No laws of physics were broken in the making of this tutorial. Fitting a large garden inside a tent is quite easy and completely legal. You just need to-- “This is police of physics. Come out with your hands on your head. We have you surrounded.” …I’ll finish this later, be right back. And no more was heard of him.