Hope you don't mind me answering some tech question nanochess.
1. There's 1024 bytes of RAM, I think maybe 700 bytes of variable for users.
2. There's 0x8000-0xFFFF for cart, 0x7xxx for RAM. It can't use VRAM memory, however you can upload and retrieve data from it, but slower doing that.
3. The video hardware don't do hardware flips, yet Atari, Intellivision, nes, etc could. There's BIOS command, but I have no idea how it invoke that. Zoom affect all sprites, 2 type of zoom. There's also 8x8 16x16 mode, only 4 on a line, even in 8x8 mode! You have 64 sprite pattern in 16x16 mode, 256 sprites pattern in 8x8 mode. There's a max of 32 sprites single color on screen. And only feature is the early clock mode to move the sprite 32 pixel to the left. Useful to pan your sprite off the screen smoothly to the left instead of disappearing and warping to the right side.
4. There's several graphic mode, one for low color which has 32 1 fg/bg color per 8 8x8 pattern. The other the undocument graphic mode that has 2 color per 1 row, until 2048. The one rarely use is the multicolor mode, only 64x48 dots on screen. There's mode you can use one tileset, one colorset. Or bitmap mode which uses 3 tileset, 3 colorset, which takes up 12KB of VRAM. Usually I work in 3 tileset, one colorset for my project. There's a mirroring bug on real hardware if you use sprite number 9-32 if you use undocumented screenmode 2 with 1 tileset 1 colorset mode. There's text mode, which uses 40 column by 24 row. There's no sprite or color table in this mode since the display is maxed out at 320, which sprite can't be use, and color comes from the video register.
5. Scrolling is tough since it takes about 2-3 screen time to fill up the screen with tiles. I used double buffer name table to hide the tile update for Vanguard and Sparrow goes Flapping.
6.The screen is split up into 3 segment.
7. You can access the VRAM at anytime, however, you have to do the update before nmi occur, which when the screen finish drawing. I recommend doing small graphic update right after WAIT to update the sprite attribute(to avoid screen tearing), score, DMA sprites, and etc.
8. I looked through his window to check, but he threw an axe at me. How rude. 😛