This is really cool. What's a good way to get an assembler to insert chunks of code into the ROM at specified points? Is this a common feature? I imagine it's rather unique to hacking.
xkas is the only available cross assembler that supports this for 65816. I've never used it for 6502 work. I honestly don't remember what assembler I used for 6502 work. I think it was some combination of WLA-DX plus some custom tooling to insert the assembled code.
I wrote my own assembler for 68k (Sega Genesis/Mega Drive, etc) years ago, but in recent times, I've been using off the shelf assemblers and some custom python scripts to parse some of the assembler's output files and insert the changes where they're expected. If I ever get back around to doing NES work, I'll probably implement a similar solution.
The successful romhacker's toolkit is full of hopes, dreams, a little duct tape and blind luck.