AdvanceMap
Tool by LU-HO Poké. Absolutely essential, in my personal opinion. This is how you change maps in the game. You can find the best (in my opinion) tutorial for it
right here.
...My advice? ALWAYS use AdvanceMap 1.92, 1.95 is a later version, yes, but it's very unstable in comparison. It's not worth the risk.
APE (Advanced Palette Editor)
Tool by HackMew. Lets you edit palettes within the ROM. I find it to be a necessary tool for replacing any images found within the ROM, i.e. titlescreens or sprites.
FSF (Free Space Finder)
Tool by HackMew. Though not "required" for more experienced hackers, it simplifies things greatly when hacking as it can automatically locate free space of any specified size within your ROM. I'd really recommend it if you're scripting or inserting anything because it locates and gives you offsets you can use to insert scripts.
GBA Graphics Editor
Tool by Nintenlord. Mostly used to edit palettes and graphics in GBA ROMs, but it can be used for a few other things. Some people prefer it over unLZ (explained down below) thanks to its stability.
GBA Intro Manager
Tool by Diegoisawesome. As I explained earlier, this makes editing the start of a game very easy. Check out the thread I linked earlier in this post for more info.
Gen III Hacking Suite
Tool by karatekid552. AKA "Lord of the Tools, there's a lot to say about this one, but I'll try to keep it short. This cross-platform multitool allows for expansion of many different aspects of FireRed (i.e. movesets, abilites, types, etc.). Many people find it extremely helpful, including myself. There are a lot more great aspects to it, so
click here to go to its thread to learn more and download it!
HxD
Not explicitly for ROM hacking, but very important for intermediate-advanced hackers. Put simply, HxD is "a freeware hex editor, a tool that can open and edit computer code". It allows you to enter the code of the ROM itself to modify pieces of code or insert scripts.
Irfanview
Not explicitly for ROM hacking, but still (in my opinion) necessary. I mostly use this to configure palettes, which is compulsory for tile or sprite insertion/general graphic editing.
LIPS
Tool by FuSoYa. It was created to replace a DOS program with essentially the same function. It allows you to both create and apply patches, which is necessary to allow people to play your hack as ROM distribution is illegal. It's also an incredibly simple program, which is a huge bonus in a world of complex hacking tools.
MEH
Tool by Shiny Quagsire. "MEH" stands for Map Editor of Happiness. It's still in development, but it runs very well and is also open-source. I still use AdvanceMap as my primary mapping tool because of how tried-and-true it is, but certain features of MEH (such as the map connections editor) are absolutely heavenly. Click
here for more info.
NSE (Nameless Sprite Editor)
Tool by link12552. Another graphics editor that has a lot of support and runs fairly well. It also features universal compatibility, which means that it works on all GBA games as opposed to just Pokémon games.
NTME (Nameless Tile Map Editor)
Tool by D-Trogh. Allows you to edit tilemaps (a fundamental part of graphics editing -- there are plenty of tutorials that would explain it better than I can here, so if you're interested, go hunt around).
Overworld Editor: Rebirth Edition
Tool by HackMew (also developed and improved upon in the past by Xeon, Tutti, and Darthatron). Exactly what it says on the tin; it allows you to go in and edit all overworlds and all of their variant frames in the game, i.e. the protagonist and rival.
Sappy + Mid2Agb
Two tools in one! A tool combination used for music hacking. Modifying in-game music is considered advanced and very difficult by many, and I believe there are other tools out there that make it much easier to do this, but this specific combo has been around for a long time. The latter part of this combo is used to convert music into a form that can be inserted into the ROM of your choosing.
Sphere
Not explicitly for ROM hacking, but very helpful for things involving graphics editing, etc. Spherical Ice covers it well in many of his tutorials.
TileMolester
Tool by SnowBro. This is yet another graphics editor (specifically geared towards editing tiles) that has cross-compatibility with more GBA games than just Pokémon.
unLZ.GBA
Tool by loadingNOW. This scans ROMs for LZ77 image data and opens up a lot of possibilities for editing images and writing new palettes to ROMs.
XSE (eXtreme Script Editor)
Tool by hackmew. This is used to write, debug, and compile scripts into your ROM so that they can be implemented in the game via AdvanceMap. It's the best scripting tool for the modern age, and there are plenty of tutorials out there for it that are... eXtreme-ly helpful. Check around for those, and don't forget that if you're stuck on a script, you can always post to the forums or Discord asking for help.