Bregalad, I wasn't defending any of the coding methods I listed off. I stated they're simply things I'd come across while looking at disassemblies of commercial games.
There are multiple ways to accomplish things on all architectures, especially 65xxx, and I really don't see anything "wrong" with having multiple options. There's pros and cons to everything; maybe the advantage over using said method was that there wasn't enough ROM space for a jumptable? (I had a HELL of a time fitting the Demiforce intro and graphics into what was assumed to be leftover ROM space in Final Fantasy 2 (Jap))
Quote:
I'm pretty sure Square and Enix fusionned only in 2002 or so (long after the SNES are), but isn't this common practice ? The SNES was designed so "direct pages" can be easily canged to any page.
No, this is not common practise in any way shape or form. I've worked with 65816 since 1989 until 1995 (Apple IIGS and SNES/SFC), and the method I described (setting DP to $2100, or $C000 on the Apple) was incredibly rare. On the SNES/SFC, it was seen more and more as time went on, but it was hardly common -- it was mainly done during very cycle-sensitive routines (where every cycle counted -- that's much more important on the NES/FC than it is on the SNES/SFC. Chrono Trigger is one such game, for the record), or during SNES register initialisation (e.g. after power-on/reset).
Setting DP to $2100 on the SNES/SFC only saves you a byte and a cycle or two when reading/writing to DP, and forces you to use long addressing or some complex equivalent for accessing other RAM. So ultimately, it depends on just how much memory-mapped register accessing you're going to be doing, wouldn't you agree? :-)