3 ms·
Then there's the amazing BiFrost and Nirvana engine which beat the colour clash limitations to produce huge full colour sprites on the Speccy. Amazing.
by Marazan 8y ago
Then there's the amazing BiFrost and Nirvana engine which beat the colour clash limitations to produce huge full colour sprites on the Speccy. Amazing.
- Jaruzel 8y agoLinks: https://www.ime.usp.br/~einar/bifrost/ https://www.ime.usp.br/~einar/bifrost/
- Marazan 8y agoOh, actually mentioned in the article further down. Bizarre I missed that on first read.
- feintruled 8y agoAs 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.
- jacquesm 8y agoYou could do pretty high res full color images by displaying three single color images in a row with the palette reprogrammed between the images. By using a long exposure camera in front of the screen and a hood to get rid of ambient light some pretty impressive results were possible. Only for the patient though, and once true color monitors and video cards became affordable (or even just R5G5B5) this sort of trickery was no longer needed.
- vidarh 8y agoSo basically the reverse of some of the first digitizers/frame grabbers for the Amiga, which came with a colour wheel. To capture an image, you used a video camera and the colour wheel and did three passes with red/green/blue filters in front of the camera: http://www.bigbookofamigahardware.com/bboah/product.aspx?id=1920 http://www.bigbookofamigahardware.com/bboah/product.aspx?id=...