[WIP] FEFEditor (Fire Emblem Fates)

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by thane98, Jan 18, 2017.

Jan 18, 2017
  1. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    I've developed a handful of different tools since joining the Fates hacking community. A little while ago, I decided to start working on a unified editor to act as my main tool for building Fates hacks. Now, the tool is ready for release!

    FEFEditor comes with tools which make the process of designing new characters and chapters significantly easier. Using tools like the GameData Injector and ROM3 Injector, one can add entirely new characters with custom models to the game without the need to open a hex editor. Meanwhile, chapter editing tools like the dispo editor allow you to spend more time designing your map and less time worrying about how to add in new spawns.

    In addition to a set of brand new tools, FEFEditor also offers substantial improvements to existing tools. For instance, I've included a new version of FEFNightmare with updated dialogs, automatic lz11 compression, and a new interface for accessing modules. I've also rebuilt my original support editor in Java. This updated version should ensure that you no longer need to worry about moving support tables around manually - the program will take care of expanding your GameData file for you.

    In short, FEFEditor should provide a convenient set of tools for any Fates ROM hacker to use for development.

    Download: http://www.mediafire.com/file/f2cfd3z351yuy8n/FEFEditor.7z


    Troubleshooting:
    I'm going to be honest: I'm expecting there to be a LOT of bugs with this program right now. Given how many different aspect of Fates hacking it covers, there's no way that I can test every situation with every tool on my own. While the tool has worked fine for me during my own tests, I cannot guarantee that it will work perfectly for you. Therefore, I advise you to backup your files before making any modifications to them just in case something goes wrong.

    Please report any bugs that you encounter - I have no way to fix a bug if I don't know that it exists. Additionally, if you find anything inconvenient about the tool or have suggestions as to how to improve it, feel free to post about them here.

    Credits:
    • SecretiveCactus, SciresM, and Einstein95 - Both FEFEditor and FEFNightmare make use of code for handling lz11 compressed files. The code used for this is derived from Einstein95's DSDecmp and SciresM's FEAT. That code was ported over to Java by SecretiveCactus.
    • Hextator - The developer of Nightmare 2.0, which FEFNightmare uses as a base.
    • RainThunder - Developed the original scripts for injecting data into Fates' bin files and created Fates' Nightmare modules. A huge portion of this program was created using his resources as a reference.
    • DeathChaos25, TildeHat - For their general contributions to the 3DS Fire Emblem hacking scene.
    Old Tools
    Warning: Spoilers inside!

    Resources
    Awakening Model Ports
    Expanded Music
     
    Last edited by thane98, Apr 15, 2017


  2. DeathChaos25

    Member DeathChaos25 Unmei wo kaeru!

    Joined:
    Oct 21, 2015
    Messages:
    1,222
    Country:
    Puerto Rico
    I needed this Nightmare replacement so badly, I'd literally just use HxD 80% of the time just to not deal with Nightmare 2.

    Also, this event editor looks really really nice, might actually be using it a lot, so expect some feedback ;)
     
    FlappyFalco likes this.
  3. KunoichiZ

    Member KunoichiZ GBAtemp Guru

    Joined:
    Mar 16, 2012
    Messages:
    6,088
    Country:
    United States
    Yo, this is pretty amazing. I don't have the time to mess with this stuff but these tools are still cool regardless.
     
  4. uchiho

    Newcomer uchiho Newbie

    Joined:
    Jan 18, 2017
    Messages:
    2
    Country:
    Chile
    Wow, pretty cool. Thank you a lot! I'm sure I'll use this xd

    I'm also trying to change some stuff on the Decrypted CIA files from the .cia game (I'm using "Decrypt9WIP" and "HackingToolkit3DS" from @Asia81's Tutorial) but when I try to extract the models files, they
    have some ".ctpk.lz" extension, imposible to extract nor open, at least with the tools I have.

    Warning: Spoilers inside!

    I wonder if you know a way to open/extract and edit thoose models files (I know there's a way to launch both the .moc and .png files with Live2D viewer editor)

    I was hoping to get something like this:
    Warning: Spoilers inside!

    About the attached files:
    First image: What I have on the Decrypted model files
    Second image: What I though I would get (this is a sample from Live2D viewer)
     
  5. cercity

    Newcomer cercity Member

    Joined:
    Jan 16, 2016
    Messages:
    35
    Country:
    United Kingdom
    Would it be possible to write a small tutorial on expanding GameData? I'm inexperienced and unsure how to utilise Python 2.7 to this end.
     
  6. MsMidnight

    Member MsMidnight part time fe modder

    Joined:
    Oct 12, 2015
    Messages:
    1,750
    Location:
    kys
    Country:
    Japan
    Guess I'm getting back into fates rom hacking
     
  7. king_frost93

    Newcomer king_frost93 Member

    Joined:
    Jan 18, 2017
    Messages:
    11
    Country:
    United States
    Hi, I have a question regarding the Expand GameData feature in your updated Nightmare.

    I want to add a new class, so I typed in its name as the label (CHIEF) and set its ID to 129 (81H, as the Outrealm class is 80H). I saved the changes and I saw the GameData.bin file got five bytes added to the end of the file. Unfortunately when I tried to edit the class, it didn't show up in class module at all, and I have no idea why. Was I supposed to edit something in the pointer region first? I'm at a loss here.
     
  8. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    Confirm that you can run the GameData script from command prompt without receiving errors - the tool I provide really just runs that script using the information you give it, so if nothing shows up its likely due to an error when running the python script.
     
  9. DeathChaos25

    Member DeathChaos25 Unmei wo kaeru!

    Joined:
    Oct 21, 2015
    Messages:
    1,222
    Country:
    Puerto Rico
    Yup, the python script needs to be updated, I let RainThunder know of some output errors that were fixed, which would most likely be the culprit.
     
  10. cercity

    Newcomer cercity Member

    Joined:
    Jan 16, 2016
    Messages:
    35
    Country:
    United Kingdom
    Is there a way to realign existing data once a new class/character was been added using the expand GamaData function?
     
  11. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    You shouldn't need to - the script adjusts every pointer within GameData to match with the new file size.
     
  12. cercity

    Newcomer cercity Member

    Joined:
    Jan 16, 2016
    Messages:
    35
    Country:
    United Kingdom
    I figured that would be the case so it must be an error on my end. When adding a new character (Entry ID 255) the character is successfully added and I can edit the pointers of this entry. But everything after that entry (classes, forge, ect) has misplaced data (for example, Nohr Noble has 0 in all bases and 132 in speed growths).
     
  13. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    It sounds like the modules you're using were not updated to reflect the new locations. If that's the case, the file is set up correctly, but the module thinks that the tables are in a different location.

    That shouldn't happen though - the script also updates modules to look for tables in their new locations. I actually just tested it to be sure. Are your module folders and script in the same location?
     
  14. DeathChaos25

    Member DeathChaos25 Unmei wo kaeru!

    Joined:
    Oct 21, 2015
    Messages:
    1,222
    Country:
    Puerto Rico
    Maybe they need to update the modules? Or rather, they updated them?

    The Skill module used to be named "skll.nmm" which would give errors with gamedata_module.py because it was looking for "skill.nmm" and wasn't finding it, so RainThunder updated it to fix this, that might be the possible culprit maybe?
     
    thane98 likes this.
  15. cercity

    Newcomer cercity Member

    Joined:
    Jan 16, 2016
    Messages:
    35
    Country:
    United Kingdom
    I think the folder is set up correctly, the folder is as downloaded (with the newest update, featuring the fixed module) with the only file added is the new Nightmare tool.
     
  16. king_frost93

    Newcomer king_frost93 Member

    Joined:
    Jan 18, 2017
    Messages:
    11
    Country:
    United States
    I figured that would likely be the case, so I redownloaded everything, including the updated gamedata and gamedata_module scripts, but I'm still getting the same problem. I tested it out with the new updated python scripts but it didn't seem to work, as no new data seems to be added. Actually, one thing I noticed is that oftentimes, I do get new files like the ones like in the screenshot I'm attaching (all the ones with the configuration setting data type) but they don't seem to be usable or do anything.
    2017-01-23.png
    I wonder if the modules themselves have to be in the exact same folder as the Nightmare or gamedata tool itself or what.
     
  17. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    As I said, try opening up a command window inside the same directory as the python script and running it using something like "python --item 400 ABC" to test (back up your GameData.bin beforehand to avoid adding any junk entries to the table). If there's no issues with the script, it should simply run and give you a message saying that the item was added successfully. Otherwise it will print out an error to the console.
     
  18. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    Updated the main post with a new resources section. I've included a pack of Awakening models I've ported over to Fates as well as a modified BCSAR which adds some slots for custom music.

    The model pack will probably grow a bit over time - I'm still working through some issues with the majority of Awakening's models. The 9 I've included in the release are the only ones I've been able to port over with my current procedure.
     
    FlappyFalco, cercity and DarkSynopsis like this.
  19. Dylos

    Member Dylos GBAtemp Regular

    Joined:
    May 13, 2016
    Messages:
    262
    Country:
    United States
    Thanks for the awakening ports, though it's a little confusing as to which models they are. Have you tried importing Manakete yet, that's the one I'm looking forward to (mostly since I already have a mostly working manakete class)
     
  20. thane98
    OP

    Member thane98 GBAtemp Fan

    Joined:
    Apr 23, 2016
    Messages:
    480
    Country:
    United States
    Yeah, I kept the original naming conventions just to make sure the models worked - I ended up with crashes when I tried something different. The screenshots folder includes a picture of every model along with its name, so you can use that to help match models with names.

    The human form for the manakete model is one of the models I'm having problems with, unfortunately. I haven't tried the dragon model yet, so that one might work.
     

Share This Page