>>35062684Traditionally ROMhacking has always been done by scanning the ROM for what you want to change, and altering it via hex editor. This has a ton of limitations, such as difficulty finding free space and issues with hard-coded values needing to be tracked down and changed, and there sometimes being thousands of values that need to be changed for a feature to work properly. You can't easily shift data around in the ROM.
A disassembly is when a ROM is decompiled from its machine language and edited into a language readable by humans, getting essentially the equivalent to the game's original source code. It is many magnitudes easier to alter the disassembly of a game and then compile the changes you make than to alter a ROM via hex edits. Things that require custom-made tools to feasibly alter via binary hacks can just be edited by opening the appropriate file and editing plain text. Features that would require editing tons of tiny sections of ROM to fix hard-coded values can be done by just adding a few dozen lines of code, named constants are used so that if you wanted to edit something that appears in a ton of places all you need to do is change the value of that constant, the compilation process automatically shifts any data down to fit with anything new added so free space isn't a worry, it makes literally everything easier.
This is just a video that's been floating around to show off pokeruby; someone added Mode 7 functionality to the game and quickly added a prototype soaring feature in a couple of days.
https://www.youtube.com/watch?v=V_ICgb6aJ64If you want a full example of what's possible in disasm, you should play Pokémon Prism. Originally a binary Gold hack, it controversially switched to the pokecrystal disassembly and then did in a year what couldn't be done in nine years of binary hacking (though admittedly the dev got help), with features like audio playback for Gen 3+ Pokémon cries (like Pikachu does on Yellow) and tons of engine upgrades.