Basilisk - The Ultimate FE1 Editing Suite

Hi! I’m Polinym, FEU’s resident FE1 fanatic. Have you ever wanted to make your own FE1?
No? Well, if you ever want to, now you can!

You can do things like this:

480x420

This is the Basilisk editor I created to aid in my FE1-modding endeavors, and recently I’ve decided to lend it out to all the 7 other people out in the world that care about FE1.

This editor has nothing to do with FEGBA builder, instead it uses a Project system. You start with a Project folder with Text Files that contain all of the game’s data, either in a human-readable format or in a simple list of bytes. You make all your edits in your project, then Basalisk compiles it into a ROM!

Get here: Basalisk’s Github Repo (Release Only)

I’ve got some more makeshift editors that you can use with this, like a Map Editor I made in GameMaker, but I’ll add those later.

Also, I’ll eventually get around to writing up some kind of guide or wiki on how everything all works, but in the meantime, you’ll just have to figure things out. Virtually everything important is written in plain English. Just try to preserve as much of the formatting as possible. If things are formatting incorrectly, Basalisk will likely throw an error.

Note: This is only compatible with the modded ROM, the patch for which I’ve included with the editor, and that patch must be applied to an ordinary Japanese ROM. The reason for this is that I’ve added a whole bunch of mods over the years to make adding new content to FE1 not a horrendous nightmare. (Heh heh, Nightmare…)

I’m kind of a n000b when it comes to software licensing, so here are my Terms of Service:

By using Basilisk, you agree to the following:

  • I won’t claim this software as my own, nor will I try to modify it or give it away without crediting Polinym for it.
  • I am aware of what Hexadecimal values are, and feel comfortable using them and decimal numbers interchangeably. I understand statements like, “Jake’s index number is 0x2f”.
  • I understand that somewhere, at some point, I will make a mistake that throws an error in Basilisk, and I will politely ask for help from Polinym when this occurs after I have thought about what might have caused the issue myself.
  • I understand that FE1 ROMs have serious space issues, and if it becomes an issue when compiling, I will either use the dictionaries provided or ask for help if I do not understand how to use dictionary compression.
  • I am willing to try to figure things out for myself while resources or guides are not available by Polinym or anyone else on how things in FE1 work. I will use common sense when it comes to figuring out what each text file does.
  • I understand that Basilisk is not capable of editing every single possible thing in the ROM. Polinym is only one man, and has lot of obligations, like to his indie game, Octo Vinctum.
  • I acknowledge that the protagonist of vanilla FE1’s name is Mars, and will not try to misrepresent this character’s name.
  • I am aware that I cannot win against Gharnef.

The editor has a Unit Maker GUI built-in, which should aid you in editing units for now. Enemy units can be created by using the code provided in the ThingMaker.py code file I included with the repo. If you know how to code in Python, you can hopefully figure out how ThingMaker works and will be easier-ish for making enemy units.

I hope this thing works for you. Good luck, pantsless princes of the universe! >:]

Also, if you want to support Basilisk, then check out my other work, my just-released (as of 12/1) indie game,Octo Vinctum. It takes a bunch of inspiration from Fire Emblem!

44 Likes

This looks fantastic! I should try to make something with this sometime.

1 Like

Mars truthers unite…

2 Likes

I like how the indie game has more clicks than the basilisk editor.

6 Likes

My PME is too far along in development to start over with this, but I’ll be excited to check Basilisk out after I’m done.

2 Likes

This looks dope – will mess around with it sometime

1 Like

Finally got a seemingly-functional build of the map editor up, in the same repo as Basilisk, here:

It has a template of all the vanilla maps. You enter a project name (unique to this editor, doesn’t integrate with Basilisk directly), then it creates a project full of 25 maps based on the template. You can edit your maps, PAGE UP / PAGE DOWN will change maps and save changes to current map, press S to save manually, E to export the map file you’re editing to a text file somewhere. You can find all of the map files in your project at C:\Users<username>\AppData\Local\Archbishop<project_name>.

To use your maps in Basilisk, simply replace the Baslisik map text file in the chapter of your choice with the text generated by Archbishop.

You’ll probably want to have your map editor open while making units, enemies, events, and such in your Basilisk project, as you can press P on a tile get its coordinates (in hex), which you can use as coordinates for your positioning things.

10 Likes

this is so sick, i hope we can get more fangames in the future who get built on the wacky nesfe engines because they have so much fun stuff

1 Like

Maps saved as text files brings me back to the good old days of playing custom Super Mario Flash levels.

2 Likes

I released another update today:

  • Basilisk now will only write sections that had enough space to fit the data. Sections that had overflow errors don’t get written, but the program will continue to write any other banks that can fit. At the same time, compiling should be faster now that I changed how data is written to files (it’s instantaneous on my PC, so it’s hard to tell).

  • I added the two data tables for promotion under “/gameplay/promote_class.txt” and “/gameplay/promote_items.txt”. promote_class.txt defines what each class can promote to, and promote_items.txt defines what item each class needs to promote. By default, all classes promote like they in modern games (Hunter->Horseman, Armor Knight->General) and all classes that do promote need item 0x51, the Master Proof.

Note: Each class can only promote to ONE other class, this isn’t FE8! :stuck_out_tongue:

I started work on very slowly adding a page on my Github Wiki to document how to use every file Basilisk can support, as well as how to change stuff Basilisk can’t. You can watch the progress on it here: Home · Polinym/Basilisk Wiki · GitHub

Also, Basilisk was designed so you can basically edit the game data in whatever form pleases you. Which means, you’re welcome to create your own editors for the data in your Project folder if you want and share them. Ideally, it’d be great if every chunk of data had its own GUI, but that would take me a very long time.

Oh yeah, and DON’T FORGET TO COPY THE NEW FILES TO ANY OF YOUR OLD PROJECTS! Thank you.

5 Likes

I love that you added the error if you change the name to Marth. It made me laugh pretty hard. I was so confused about what was happening. I will now leave it as Mars for the respect for you creating this project.

2 Likes

A wild Polinym appeared!

Though it’s been awhile, I’ve recently been inspired to work a bit more on Basilisk. There’s been a few significant developments, so let’s get right to it.

You know the built-in mods I added. Like, the Convoy anywhere feature and the Magic stat functionality?
To resolve the issue of users being unable to turn off the prebuilt game mods if they so desire, I’ve added a new feature I call “Patcher”. Patcher is a glorified IPS patcher application built into the program which allows you to add patches to your project ROM with the click of a button.I built a number of patches to allow you to turn off the modified features.

The graphics upgrade I added to the game has since been removed from the base patch. You can now re-add it via Patcher. Patcher is also set up in such a way that it loads the patches to choose from via a folder in /resource. What this means is that any user can add patches for Patcher to use. All you need are to put an .IPS file in the resource/patches folder, and include a .TXT file with the same name and the Name, Desc, and Credit fields. See the existing patches for examples. You can develop your own mods to the base patch! :smiley:

I also cleaned up the font graphics used in the game. It used to look like this:

And now, it looks like this:

All those blue tiles are empty spaces! Spaces that you or I can fill with more custom characters or icons! You can even add your OWN font!

Other changes to Basilisk include:

  • gameplay/unit_port_index.txt file lets you change what portait each unit uses, both players and enemies! I’ll get around to making a reference guide for what index = what portrait eventually.
  • The UnitMaker program built-in now has a button to let you scale the current unit’s stats based on the unit’s Level and the unit’s growth rates, all loaded from your current project!
  • Fixed some stuff with the game script.
  • The base patch now no longer still makes you pay 10G to deposit an item into convoy when you receive it during a cutscene.
  • Uh… there might be a few other things but I forget…

Known Issues:

Because of the new expanded class and item text boxes, sometimes the screen will do things like this if menus are opened in certain ways. Don’t know why this happens, but it doesn’t affect gameplay and resolves itself pretty quickly if you just click on other units.

When you deposit an item into convoy, the text box for gold will get screwed up. This doesn’t impact gameplay, however.

I… don’t yet know how I’m going to fix this issues, or even if I can. There’s still more things I want to add to the game and I’m only one guy. This is where any and all help you can provide would come in handy! You’re welcome, if not encouraged, to try and look into these issues if you’re able. I need all the help I can get. :slight_smile:

What I’d like to tackle next as long as I don’t get sidetracked is to write up some guides on how the project files work. Trust me: once you know how to use them, you can see how easy it is to change things in the game and how powerful of a tool Basilisk actually is. If I can get to it, I’ll write up a cool step-by-step tutorial where you can add your own unit into the game, name, portrait, growths, deployment, and all!

8 Likes

Is there a way to edit talk recruitments at all? I can’t find the files for that in in Basilisk (and I know they were changed in time for tom)

There’s no Basilisk files for recruitment. However, you can directly edit the recruitment tables in the ROM. It’s really easy! There’s three tables involved in the enemy recruitment process. There are 14 recruitment slots available by default, with 00 being used as the terminator for each table.

Table #1 is from 0x3edc5 to 0x3edd2 is for the playable character ID who can initiate the conversation.

Table #2 is from 0x3edd4 to 0x3ede1, where each entry is the enemy unit ID who will be recruited.

Table #3 is 0x3ede2 to 0x3edef, which stores the conversation ID to play when the recruitment is initiated. The IDs here match up with the lines of dialogue in text/script/recruit.txt

Table #4 is from 0x3edf0 to 0x3edfc, indicating the new player ID that the enemy should be converted to. (Example: Enemy “Navarre” 0xAE from Time For Tom is converted to player ID “Samto” 0x05).

Basically, when you move a unit on the map, the game first checks Table #1 to see if the current unit’s ID is in it. If it is, then it checks Table #2 to see if any of the IDs in it match any of the enemies you’re standing by. When there’s a match, the TALK option is added to your commands. Pressing TALK plays the line from the recruitment text, with the line number being the “slot” / index where it found the enemy ID in Table #2. That same slot number is also the slot it pulls the new player unit ID from Table #4.

Let me know if that explanation didn’t make any sense. This stuff is tough to explain!

I haven’t added the Basilisk files for this yet because, if I put in the extra work, I should be able to set it up so that Basilisk will let you include more slots than the original game supported.

4 Likes

Just released a new update today, since I’ve been putting it off. I’ve been busy working on Smash Bros. mods for people. Anyway, here’s the low-down on what’s up:

  • Archbishop has been improved! It no longer crashes, and now operates on your Basilisk project files directly. Simply select your Basilisk project ROM at the start of your program, and anytime you save with CTRL+S or press PageUp/Down, it’ll save your map files. There’s even a message to let you know you’ve saved!
  • Fixed some bugs with the compiler where item_data.txt didn’t get compiled.
  • Optimized the game’s dictionary.
  • Added recruitment.txt, a file which lets you edit the recruitment data in the game. Currently it is of a fixed size, but I plan to allow any number of recruitments eventually.
  • Added intro_config.txt, which lets you define which line number and music number plays at the start of each chapter.
  • Fixed a number of problems with the base patch:
  • Fixed FE1 trying to display the text of its own item name:
  • The convoy list now display item names properly.
  • Units without RES can now gain permanent RES on a level up.
  • Probably more stuff but I forget.

For the new features, you can add the missing new files into your project files directly. For the base ROM changes, I suggest backing up your project ROM, adding the new base ROM as your project ROM, and copy/pasting any ROM edits you have made over to the new project ROM. Basilisk only edits the things associated with the text files in your project, not any of my new ASM code. Let me know if you have trouble migrating to the new version. Things can get a little messy.

6 Likes