Basic Timings
Got the basic border timings down.
Top boarder draws directly from memory using OUTI and lots of fun timings. This is just blue/magenta stripes for now, but making it show score/status is just a matter of updating the buffer during the main game loop.
Then the sky boarder draws. This is only left and right. I did start just continuing the top boarder draw, wasting some memory, but the memory contention kicks in as the ULA starts drawing the screen, so I ended up just writing two columns on either side of the screen with custom timings, and not wasting memory as a nice side effect.
I used Gemini AI to create the main scene - as I can't even draw a cloud! I tidied it up by hand in MS Paint, as the AI didn't get the idea of having the sky take up exactly 32 rows - LLMs and numbers, amiright!? ;)
Then put the image through Spectra http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface_Software_ImageConverter.htm -- to make a binary file, which like a SCREEN$ is just 6,144 pixels followed by 768 attrs, which I can then INCBIN at ORG $4000 to be the screen.
Then I manually added border clouds. There are only 2 columns on either side, so it's very blocky, but it kinda blends in. It shows the concept - and someone who can actually do 8bit gfx could probably make it look really good.