FEditor Adv

, ,

FEditor Adv

Latest version (Slightly Less Stupid Edition)

~~~ Goals for upcoming release ~~~

F Move FE 6 auto patches that are overwriting level up number graphics so that they are out of the way, preferably next to the AH patch
F Make auto patches able to be selectively disabled by having the source for the int[][][]s returned by getPatches able to be loaded dynamically from text files with support for comments
F Redo auto patches to be assemblable all at once
F Add CG editor for at least FE 7
F Add auto patch for the graphical fix for units that use both magic and melee weapons
F Fix OAM rendering
F Fix palette editing support for class animations
F Add palette editing support for character animations
F Add support for generating battle backgrounds, at least for FE 7, by extending the CG_Image model
F Add battle background editor for at least FE 7
F Add feature for describing a memory map of the ROM based on what FEditor is “aware of” and have the result able to be saved to a text file
F Port CG/battle background editors to FE 8 and FE 6 where applicable
F Integrate more external features into the main GUI
F Remedy more of FEditor’s code marked with “XXX”, “FIXME”, “TODO” and similar comments
F Add custom chapter support (including map, event and starting location editing)


- Older versions are not supported. Do not ask for help with them.
- Report bugs. ALWAYS.
- Backup your shit before you use this on it because I'm not going to make FEditor fix bugs caused by its previous versions. I'm only going to make it work for ROMs that are either clean or modified by the latest version.*
- It's called \\"FEditor Adv\\". It's not FEEditor. It's not FE_Editor. If you can't be assed to type the name, type FEA.

My policy is that the editor is \“idiot proof\” in that the parts that aren’t are covered by the doc…

…yet, the doc is meant to be explicit, and was not designed to be understood by those who can’t comprehend the diction required to have that level of specificity.

While this creates a paradox, attempting to remedy the situation would only agitate it more.

So I refuse to do any more than add things to the doc that need explanation - I will not go so far as to explain the explanations.

(modedit: omg)

2 Likes

Onmi over on Serenes posted these: bugfixes for FE6 use with FEditor.

There are 3 (noted)bugs caused by FEditor being used with FE6, the messed up graphical glitches when leveling up. the Fa bug, and the Storage bug. Here I’m going to post the 3 fixes for these bugs

Number Bug

ShadowofChaos Guide

What you need: A clean version of FE6, HxD.

  1. Open HxD
  2. GOTO 2DBDB0 in your clean rom
  3. Copy everything until 2DC5B0
  4. Paste it at free space (E.G. B82000) (If you have an edited rom, do it in that)
  5. GOTO 67B88 and 0307AD8
  6. Repoint them to your new location (E.G. 00 20 B8 08)
  7. Once you get it fixed, fix the checksum.
  8. then use the “memory manager” to deallocate that 0x800 bytes you used for where you repointed it so that it doesn’t re-screw up.

Fa Bug

Shadow of Chaos Guide

  1. Open HxD
  2. GOTO 59AA4
  3. Write 04 5B 82 08

Storage Bug

  1. Open HxD
  2. GOTO 2DC444
  3. Write 00 B5 FF F7 CD FD 00 24 84 21 09 01 78 18

I can not guarantee that you will never experience another bug with FE6 hacking. But I can guarantee that these work

PATCH

You’re going to want to make these changes to a clean ROM before using FEditor!

corrected download link

FEditor Adv has been updated with a fix for the issue illustrated in the second part of this 4 part video

(thanks to Siuloir and (especially) Arch for assisting with identifying and fixing this issue).

Also, the map sheet is now initialized to zero bytes during the custom spell constructor code, thus removing the appearance of garbage data that was an issue (and still is) even for the original spells.

http://dl.dropboxusercontent.com/u/336940/Distribution/FEditor%20Adv.7z

The issues are currently only fixed for 7 and are still present for 6 and 8.

2 Likes

Thanks for the awesome birthday present, @Hextator!

Huh. I thought that’s what you had already fixed (At least, looked like it fixed the pixelization/garbage data in Aircalibur). But if you managed to expand on that, well done.

@Arch - Did you try a different Shaver post Hex’s change to see what was suddenly causing its newfound weird transparency?

If it breaks one spell the spell can just be rebuilt, particularly an easy one like Shaver.

(I didn’t actually post on this forum yet, those other posts are by Arch. Yes, this means he said thank you for his birthday present to himself)

The thing you posted a video of which was fixed recently was an issue in which the game loaded the palette for a frame from the WRAM in sync with the vblank or whatever, despite that the “sheet” for the map layer was loaded immediately (rather than queued or buffered as the palette is) by the CSAPS code.

The issue that was fixed before that was a similar issue in which the things not loaded in synchronization were the OA data (loaded when the palette is) and the OAM “sheet” (loaded, again, immediately by the CSAPS code).

Both issues were fixed by deferring loading of the respective “sheets” until the time when the associated palette (in the map layer’s case) or OA data (in the sprite layer’s case) is loaded (in time with the vblank).

People seem to forget that spells have a sprite layer (technically 2, since sprites can be given lower or higher priority and appear in front of or behind the character sprites) AND a map layer, and that the engines work completely differently (sprites can be rotated, maps can have “blending” which is often incorrectly referred to as “transparency”. Maps can have transparency as well, of course, but sprites cannot have blending).

[I just read this][1], and I note that there doesn’t seem to be a command for waiting for HP to heal, as in Nosferatu(though, I assume that’s the same as 0x01; wait for Hp to deplete)? Mainly, I’m interested in knowing if there’s a reasonably-easily accomplish-able modification to check to see if the user’s HP has changed, and if so, then stall at the end of the animation and update their HP, be it whether the HP decreased(recoil damage, anyone?) or increased. That would be rather flexible, and people who set swords(among other weapons) to have the nosferatu effect won’t have wonky animations and invisible healing anymore. Or is this something hardcoded about the nosferatu animation?
[1]:https://dl.dropboxusercontent.com/u/336940/Software/Hextator’s%20Doc/Media/Games/Reverse%20Engineering/Console/NGBA/Fire%20Emblem/Game%20Doc/Graphics/Battle%20Animations/0x85%20Command%20Usage.txt

I don’t remember 30 months ago very well but I’m fairly certain FEditor’s CSAPS works for hp stealing

I fuckin’ paid for it.

I don’t mean the scripting of an animation specifically, but I mean

Is it possible to force FE7’s processing to ALWAYS check for HP changes(that haven’t been updated) and if so, update them at the end of an animation.

Now that you mention it I suppose that’s sillier than you thanking yourself for your present

FEditor Adv Render Overhaul

Download

I had some time to look through @Hextator’s Doc & source code for FEditor Adv, and it inspired me to fix up some of the render glitches for the Class Animation Manager. While I was at it, I figured it wouldn’t hurt to add a few handy features for any animation buffs out there.

From the included changelog:

Fixed OAM Render in Class Animation Manager

  • Corrected handling of tile alignment (Big thanks to BwdYeti for this fix)
    • Adds a tile scaling factor of 8 to fix render of frames
  • Added handling for flipped tiles
  • Added method for handling Load Transformation Data (LTD) OAM (determines rotation/scaling for OBJs)
    • Can handle up to 5 rotated/scaled OBJ simultaneously
  • Added corrected rendering for rotation/scaling OBJs
  • All animations should render near to identical to in-game rendering

Added “Include Frame” option for animation packages

  • Adds a check-box option to dump animation frames along with animation package
  • Includes Cam’s animation script converter to include animation script to frame folder (Thanks again Yeti!)
    • fixes naming convention to match FEditor’s naming convention
    • corrects sign issue when framecount exceeds 128
  • “Dump” option works the same as before if check-box is left unmarked
  • Also has a “Dump All” option to dump entire Animation Array for current game (Thank Yeti for this one too)

Added “Convert” button to Text Editor/Viewer to format text scripts for insertion

  • Takes a preformatted txt file and converts it into separate txt files formatted for insertion in Text Editor/Viewer
  • Essentially does what the .bat file in FEditor Adv’s root folder does
  • Requires a particular format to the script to work (See the “Natural Script Formatter.txt” in the doc folder)

As with any tool, make sure to backup your work before making edits! Contact me if there’s any issues you come across, but there shouldn’t be anything different besides the new rendering.

2 Likes

did you push your changes to the Hg repo included with FEditor (as of recently) and if so could you assist in pushing those changes to my dropbox

I’m still pretty new to coding, so I haven’t had the chance. Is there a particular way to do that? Because I’d be happy to do so!

“Added ‘Include Frame’ option”

Yes. Just yes.

Now casually waits for spell animations to be less confusing.

if you install tortoisehg on your machine and open the workbench in the folder you should have some success making sense of how to update the repository

actually I can probably download it and do that myself, but not tonight because ugh

e: give us something to call you that isn’t “Temp”

-clicks on their profile-
It says tempmael under the name thingy.

@Kiseki perhaps I can get around to that someday, but my main area of expertise is battle animations. Spells sound like fun though lol

@Hextator I’ll try to get around to that tonight or tomorrow, once I’ve got the free time.
P. S. I’ve always gone by Temp, sorry! Although @L95 makes a great point ha ha!

“Temp” isn’t very Google-able so no one will be able to recognize or communicate with you about your changes to the code

something to think about