So far I've mostly just been coding graphics tests. I find it's useful to be able to quickly
stz to an 8-bit PPU register, so I use 8-bit A and 16-bit X/Y. This is also useful for DMA subroutines, since you can pass two 16-bit numbers and an 8-bit number (actually, I think this is probably why I started off with this combination, even though I don't use subroutines any more). And it strikes me that it could be useful to have some indexing capability without losing the ability to load and store both data sizes. There are exceptions, of course - for instance, writing to (especially zeroing) pairs of adjacent PPU registers in a time-critical H-IRQ while deliberately not using X or Y so as to save on stack operations... bit of an edge case, perhaps...
In the few more game-like bits of code I've done, I find a 16-bit accumulator to be a good idea, since you want to be able to do math with larger numbers.
When I coded an overlay renderer for my title screen mockup, I ended up doing the bitwise logic section with 8-bit A and the actual data combination with 16-bit A. X/Y stayed 16-bit, because I needed to be able to index within the source and destination graphics buffers. (It seems to me that this could be a more general result; large arrays of object parameters, for instance, could easily exceed 256 bytes. On the other hand, the OP says this sort of thing doesn't happen much, and people wrote games on the NES somehow...)
Basically, if I want something to execute quickly, I try to optimize the register size for maximum speed. It may be helpful that I
don't seem to care how long this game takes to write didn't start on 6502; 65816 is the first assembly language I learned, so the variable register sizes are a fundamental part of my understanding rather than an annoying hack I keep forgetting about.
That said, I don't believe I've
ever used 8-bit X/Y, though that may change as I start writing more game engine code...
psycopathicteen wrote:I also do almost everything in bank $80 too.
Ah, FastROM. I do that too. It's a bit of a pain getting my ancient copy of WLA DX to actually land on the correct bank, but once it's done it's done...