Hello everyone! I'm new here but I have been browsing and learning quite a bit from this wonderful corner of the internet! I have been recently learning some 6502 assembly after a very cool friend of mine did an art show involving glitchy custom NES programs cartidges and a bunch of projectors (it was awesome!), in the hopes that I, too, may make something as cool.
On to my question!
So, I understand generally how nametables and scrolling works and have done some various tests with writing to the nametables on the fly using controller input and the like. But what baffles me is how single screen mirroring, like in Rare's AxROM games, works at all. There's plenty of literature around on how to write to the two (mirrored) nametables using V/H mirroring at addresses $2000, $2400, $2800, and $2C00, and I have done that and it all makes sense. I even grasp using the write to $8000-$FFFF with bit 4 set to 0 or 1 to select the VRAM page in single screen mirroring, but what is unclear to me is that that selecting actually does and how to write to the OTHER half of the VRAM.
I haven't played extensively with this as of yet since I have mostly just been reading up on it, but I am very curious and very confused. I'm assuming that the select write simply loads all four nametables with that portion of the VRAM, but what addresses am I writing to when I want to write on that "other" screen?
I hope this question is concise enough and I really hope I can get an answer I understand! So far, this forum has been a gold mine of greatness, and I have had many epiphanies here. Give me one more! Thanks again.
-Micheal
edit: for clarity
On to my question!
So, I understand generally how nametables and scrolling works and have done some various tests with writing to the nametables on the fly using controller input and the like. But what baffles me is how single screen mirroring, like in Rare's AxROM games, works at all. There's plenty of literature around on how to write to the two (mirrored) nametables using V/H mirroring at addresses $2000, $2400, $2800, and $2C00, and I have done that and it all makes sense. I even grasp using the write to $8000-$FFFF with bit 4 set to 0 or 1 to select the VRAM page in single screen mirroring, but what is unclear to me is that that selecting actually does and how to write to the OTHER half of the VRAM.
I haven't played extensively with this as of yet since I have mostly just been reading up on it, but I am very curious and very confused. I'm assuming that the select write simply loads all four nametables with that portion of the VRAM, but what addresses am I writing to when I want to write on that "other" screen?
I hope this question is concise enough and I really hope I can get an answer I understand! So far, this forum has been a gold mine of greatness, and I have had many epiphanies here. Give me one more! Thanks again.
-Micheal
edit: for clarity