In fact, you can take advantage of this for faster and simplier register initialization, changing DP=$2100 and writing to all register space with direct page addressing mode.psycopathicteen wrote:Not only could you access the top halves of hirom banks through lorom mapping, but the system boots up that way by default.
As for mode 20 vs mode 21 discussion, everybody would have his own opinion, but I'm currently programming an RPG game for SNES and I prefer Mode 21 (HiROM). Thanks to the bigger size in each bank, I'm been able to code all command-script routines in the same bank, which is really faster and more compact size than splitting 41Kbytes of code into 2 banks: if I would have decided to use mode 20, I would have had to call all routines with JSL (which is slower and longer) and wouldn't have been able to use BRA branching, not to mention I would have had to decide what to do with the spare 23Kbytes in the second bank, which is too small for other game engines (tasking engine is about 30 Kbytes) and too small for graphics. You can see the same problem in Treasure Hunter G, where the code is too dispersed all over the first 20 banks, mixed up with some data.