Multicolor (Rainbow Graphics) & Border effects

English forum about Speccy

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Multicolor (Rainbow Graphics) & Border effects

Post by Shaos »

Rainbow graphics:

48K - River Raid Tech Demo - 2009:
http://www.worldofspectrum.org/infoseek ... id=0023528

48K - Buzzsaw+ (Foxton Locks Mix) - 2011:
http://www.worldofspectrum.org/infoseek ... id=0027057

48K - ZXodus Engine + Sources (Andrew Owen) - 2011:
http://www.worldofspectrum.org/infoseek ... id=0026639

48K - Bozxle (based on ZXodus) - 2011:
http://www.worldofspectrum.org/infoseek ... id=0027065

48K/128K/+2/+2A/+3 - BIFROST* ENGINE + Sources (Einar Saukas, Dave Hughes) - 2012:
http://www.worldofspectrum.org/infoseek ... id=0027405

Border effects:

48K - BorderTrix + Sources (Andrew Owen) - 2012:
http://www.worldofspectrum.org/infoseek ... id=0027293

48K/128K/+2/+2A/+3 - Rotatrix (Einar Saukas) - 2012:
http://www.worldofspectrum.org/infoseek ... id=0027591
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
cheveron
Fanat
Posts: 52
Joined: 29 Jan 2013 13:43
Location: 86.182.165.70

Re: [ZX] Multicolor (Rainbow Graphics) & Border effects

Post by cheveron »

Funny you should mention that. JoeFish only released Buzzsaw+ because he was worried the finished version of Bozxle would be released first. The original ZXodus engine was written in a week. I have a hugely improved version but as Einar already adapted my idea for Bifrost* I'm keeping the ZXodus II engine for my own projects. BorderTrix was written in a couple of hours and was the first western border demo to use that many colours. The lines across the screen actually go all the way from one visible edge of the display to the other. Someone ported it to the Pentagon (and added music) but they forgot to check that the colours were aligned offscreen. There is a slight glitch in it that would require a sub-t-state timing change to fix. I used a loop so the rainbow pattern in the border is only defined once but called three times. And people complained the text didn't scroll!
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Yes, right, "Shock Megademo" is "eastern" even for Russians Poland is civilized Europa :)

P.S. I have a question - BIFROST says to support all Spectrums (including Amstrad models), but ZXodus clearly defined as 48K only, but it looks like working in all models (at least in emulator), so is it really detecting model and adjusting timings as BIFROST?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
cheveron
Fanat
Posts: 52
Joined: 29 Jan 2013 13:43
Location: 86.182.165.70

Post by cheveron »

Shaos wrote:Yes, right, "Shock Megademo" is "eastern" even for Russians Poland is civilized Europa :)
BorderTrix does more colours per line in the border than "Shock Megademo". Shock does 2. BorderTrix does 6. But I have seen some Pentagon demos that do more. I think I could probably manage 8 but not as cleanly from the code side.
P.S. I have a question - BIFROST says to support all Spectrums (including Amstrad models), but ZXodus clearly defined as 48K only, but it looks like working in all models (at least in emulator), so is it really detecting model and adjusting timings as BIFROST?
I think Bifrost* has some timing detect code. ZXodus is timed for the 48K only. However, as it uses contention to synchronize the timing, it kind-of works on other models. You do get some off colour tiles and glitching on non 48 displays though. The ZXodus II engine can be tweaked to run on whatever hardware you want, but is targetted at the Spectrum +2B which has the most t-states per frame out of the Sinclair branded machines. It can handle up to 66 animated rainbow tiles on screen at once. Hardware errors and slower CPUs in the earlier machines mean they can't do as many.
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Another question - ZXodus uses sprites in ColorTILE format.
Could you please explain in details what is this format?
I know that it's 32 bytes of pixels and 32 bytes of attributes for each 16x16 sprite,
but how these bytes organized? I didn't find anything about it...

P.S. According to source code of ColorTILE it looks like a sequence of 2-byte words:

Byte 0: left part of 1st line;
Byte 1: right part of 1st line;
Byte 2: left part of 2nd line;
Byte 3: right part of 2nd line;
.....
Byte 30: left part of 16th line;
Byte 31: right part of 16th line.

Is it correct?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
cheveron
Fanat
Posts: 52
Joined: 29 Jan 2013 13:43
Location: 86.182.165.70

Post by cheveron »

Shaos wrote:Another question - ZXodus uses sprites in ColorTILE format.
Could you please explain in details what is this format?
I know that it's 32 bytes of pixels and 32 bytes of attributes for each 16x16 sprite,
but how these bytes organized? I didn't find anything about it...

P.S. According to source code of ColorTILE it looks like a sequence of 2-byte words:

Byte 0: left part of 1st line;
Byte 1: right part of 1st line;
Byte 2: left part of 2nd line;
Byte 3: right part of 2nd line;
.....
Byte 30: left part of 16th line;
Byte 31: right part of 16th line.

Is it correct?
That's correct. Bifrost* uses the same format and ZX Paintbrush can export it. I created ColorTILE when I while I was still attempting to port Ultima 4 to the ZX Spectrum SE. It also runs on the TC2048 though as it requires a standard ROM and the Timex 8x1 mode.
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

OK, thanks!
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

I have an idea! In Russia (and may be not only in Russia) there is some number of extended ZX-compatible computers "ATM Turbo 2+" and its modern "pentagonized" reincarnation ZX Evolution with hardware "multicolor" (8x1 attributes) 640x200 pixels and EGA-like 16 colors per pixel 320x200 (palette 16 out of 64). Theoretically I can create a library with Zxodus and/or Bifrost compatible API so some existing games and "rainbow" sprites can be recompiled/reused in this new hardware with a lot of freed CPU that is not used to switch attributes constantly anymore.What do you think?

P.S. ZX-evolution has its own extended video modes 256x192 multicolor 8x1 (offset between pixels and attributes is #2000) and 256x192 16-colors.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Interesting reading about "rainbow" effect with code examples :)

http://simonowen.com/blog/2011/09/29/zxodus-engine/
Я тут за главного - если что шлите мыло на me собака shaos точка net