Use address lines for register state transfer, not data lines
For instance, let's say you have eight bits of state per register. A conventional mapper might use the eight data bus lines for state transfer, and A14-A12 for function selection. This allows function state transfer such as this:
Code: Select all
lda value
sta function_address
Code: Select all
ldx value
sta function_address,x
Code: Select all
sta function_address+value
Random access mass data storage
The ability to access a mass storage device like a serial flash chip or SD card via a byte-wide mapper register would be optimal for accessing data. Any dynamically loaded data like level layouts can easily be read and shoved into WRAM. This means less parallel storage is required (128kb should be plenty for program code - data) and more content can be placed into the game without the worry or hassle of compression and storage constraints.
With these two points in mind, I guess you'd use high address lines for function select and A0-A2 for bank select on a given function.