3 ms·
As someone whose childhood was consumed by "graphics envy" of the rival 8-bit computers, the fact that this exists now is mindblowing to me. How does it work, d
by feintruled 8y ago
As someone whose childhood was consumed by "graphics envy" of the rival 8-bit computers, the fact that this exists now is mindblowing to me. How does it work, does it just use interrupts to change the attributes half way through a display (kind of like the Amiga's Copper?)
I wonder how no-one came up with it back in the Speccy's heyday. Would have been absolutely mind blowing back then, the proverbial game changer!
- seanhunter 8y agoI remember that the border around the screen was one colour, but if you used interrupts you could change the colour half way through the TV's scan so you could produce a "horizon" with one colour at the top and another below. I wrote something that would do this, but it used to crash randomly for no apparent reason.
- TuringTest 8y agoI share the sentiment, being in the same situation. The principle is the same as the one producing colored strips in the BORDER, by changing the color really fast while the TV beam is jumping from one row to the next. It was easy with the border, as there was a single bit defining the color (the loading routines changed it with the current value read from the tape, that's why you got the crazy border strips, and these were synchronized with the sound). To change the main screen color though, you need to re-write the contents of the screen memory, really fast. With the limited development tools at the time, I can see how nobody got to create a graphic library as powerful as Nirvana or BiFrost. There were people who thought of doing it, though. I remember seeing a demo which painted 1-pixel-high horizontal strips in different colors across the whole screen, syncing the border and the screen. My mind certainly was blown :-)
- feintruled 8y agoThat's why I thought similar tricks had not been done before, as 'really fast' and Spectrum are not terms normally seen together :-) Perhaps it is not the raw speed but the extreme precision of the timings that were the limiting factor. I can see how the move to developing through emulators would help there, certainly. A truly amazing achievement!
- TuringTest 8y agoThe Z80 had bulk memory write instructions that could be used to set contiguous memory addresses with the same value. You just needed to write the 32 bytes of character attributes, so the change is doable while the TV ray is jumping to the next scan line. The timing was solved by setting interruptions synchronized to that instant.