Would this be pretty easy then if the ROM was expanded?
I wish! But nothing is ever easy with ASM, at least for me. Expanding the ROM can usually be done in just a few seconds, so that isn't the biggest hurdle.
I'll try to explain why this is hard for me:
The GB CPU can only read the ROM up until position 0x8000. To read beyond that point, you have to switch banks. These banks are 0x4000 bytes in size, and they can only be swapped with the second bank (at 0x4000 to 0x8000).
So, if the code is in this bank (as is the case with the first issue), you can't just swap in a new bank from there, I believe. First, we'd need to jump to the first bank, switch from there and then jump back, but there's not a single byte available in the first bank to insert some new code to do this.
Maybe a more experienced coder could figure out a good way to handle this, but it's beyond my skills, I'm afraid.
There are some areas at the end of the ROM file that's just a bunch of zeros...
I don't know either if those bytes are free or even enough for this, but in any case they'd need to be swapped in too.