Re: What are ROM banks?

All it means is you can only address 0x4000-0x1FFFFF in the rom using the space between 0x4000-0x7FFF. The bank id is an abstraction that memory controllers on the cart use to know which chunk is which.

Assemblers like rgbds will resolve labels representing rom offsets into working addresses without any manual work, including repoints. This makes it very attractive compared to calculating each one yourself and hoping you didn't make any mistakes.