FAQ  •  Register  •  Login

SPECTRA Advanced Graphics

<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Mon Jan 20, 2014 12:35 am

SPECTRA Advanced Graphics

Hi boriel,
Here I show you the SPECTRA routines.
  Code:
function SetSpectraMode(LineHeight as Ubyte,ExtraColours as ubyte,DoubleByteColour as ubyte,EnhancedBorder as ubyte,DisplayBank as ubyte,ShadowBank as ubyte,HalfCell as ubyte) as ubyte
   dim mode,r as ubyte
   mode=LineHeight|(ExtraColours<<2)|(DoubleByteColour<<3)|(EnhancedBorder<<4)|(DisplayBank<<5)|(ShadowBank<<6)|(HalfCell<<7)
   out $7fdf,mode
   if in($7fdf)<>mode
      r=0
   else
      r=1
   end if
   return r
end function

Selfexplaining... Line Height is the code for Attribute height: 0=8 pixel, 1=4 pixel, 2=2 pixel, 3=1 Pixel (unusable because attribute will overwrite system variables and not all attributes can have 1 line height, same problem with double byte flag and 2 pixel height)
It returns 1 if mode is available (SPECTRA present) or 0 if not

  Code:
sub ExtendedBorder(red as ubyte,green as ubyte,blue as ubyte)
   dim r,g,b as ubyte
   b=((blue&1)<<5)|((blue&2)>>1)
   r=((red&1)<<6)|((red&2))
   g=((green&1)<<7)|((green&2)<<1)
   out $fe,r|g|b
end sub

This set the Border (64 colour mode) based on RGB values (0-3 for each channel)
Should be easy to convert to inline Assembly
Demo:
  Code:
if SetSpectraMode(0,1,0,1,0,0,0) 'Enable Enhanced Border with 64 Colours
   BorderTest: 'Change Border Colours
   print at 0,0;"Grey "
   for a=0 to 3
      ExtendedBorder(a,a,a)
      pause 50
   next a
   for a=0 to 3
      ExtendedBorder(3-a,3-a,3-a)
      pause 50
   next a
   'Red
   print at 0,0;"Red  "
   for a=0 to 3
      ExtendedBorder(a,0,0)
      pause 50
   next a
   for a=0 to 3
      ExtendedBorder(3-a,0,0)
      pause 50
   next a
   'Green
   print at 0,0;"Green"
   for a=0 to 3
      ExtendedBorder(0,a,0)
      pause 50
   next a
   for a=0 to 3
      ExtendedBorder(0,3-a,0)
      pause 50
   next a
   'Blue
   print at 0,0;"Blue "
   for a=0 to 3
      ExtendedBorder(0,0,a)
      pause 50
   next a
   for a=0 to 3
      ExtendedBorder(0,0,3-a)
      pause 50
   next a
   if inkey$<>" ":goto BorderTest:end if
end if


Enhanced Border (15 Colour mode):
  Code:
sub ZXBorderEnhanced(BorderColor as ubyte,FlashWhite as ubyte,Bri as ubyte,Fla as ubyte)
   out $fe,BorderColor|(FlashWhite<<5)|(Bri<<6)|(Fla<<7)
end sub

Also very easy to convert to inline Assembly
Demo:
  Code:
if SetSpectraMode(0,0,0,1,0,0,0) 'Enable Enhanced Border with 15 Colours
   print at 0,0;"Normal Colours"
   for a=0 to 7
      ZXBorderEnhanced(a,0,0,0)
      pause 25
   next a
   print at 0,0;"Bright Colours"
   for a=0 to 7
      ZXBorderEnhanced(a,0,1,0)
      pause 25
   next a
   print at 0,0;"Flash Bright Colours with black"
   for a=0 to 7
      ZXBorderEnhanced(a,0,1,1)
      pause 100
   next a
   print at 0,0;"Flash Normal Colours with white"
   for a=0 to 7
      ZXBorderEnhanced(a,1,0,1)
      pause 100
   next a
   print at 0,0;"And now to the 64 colours border"
   pause 50
end if

More will come later.
Together with at least two games.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

boriel

Site Admin

Posts: 1463

Joined: Wed Nov 01, 2006 6:18 pm

Location: Santa Cruz de Tenerife, Spain

Post Mon Jan 20, 2014 8:20 am

Re: SPECTRA Advanced Graphics

I really NEED a Spectra board... Now! :twisted:
I was reading about it and it's awesome!

Regarding to the code, thanks for sharing. For most purposes, writing them in ZX Basic (not in inlined ASM) is ok.
Most of these routines won't be run during the Game Loop, as far as I know, so speed is not a problem at all :)
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Mon Jan 20, 2014 12:44 pm

Re: SPECTRA Advanced Graphics

boriel wrote:I really NEED a Spectra board... Now! :twisted:
I was reading about it and it's awesome!

Regarding to the code, thanks for sharing. For most purposes, writing them in ZX Basic (not in inlined ASM) is ok.
Most of these routines won't be run during the Game Loop, as far as I know, so speed is not a problem at all :)

Yes SPECTRA is awesome. Better than ULA+ (And it is available). I want to write some games using ZXBC that will support SPECTRA.
If you want to purchase a SPECTRA, I think, Paul would be happy to sell you one:
http://www.fruitcake.plus.com/Sinclair/ ... umentation

The first Routines do not need to be fast, but later ones will be more speed-critical. The problem is that the Attribute organisation follows Bitmap-Organisation and is not progressive. The screen is divided in thirds again, so again lot of bitshifting, and I cannot adapt Britlions Paint() and PaintData() routines for it.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

cheveron

User avatar

Posts: 71

Joined: Sat Dec 11, 2010 11:22 pm

Post Mon Jan 20, 2014 1:24 pm

Re: SPECTRA Advanced Graphics

SPECTRA is a SCART interface. Its extended colour scheme is worse than ULAplus in every single respect. ULAplus is available now in clones and is emulated by almost everything. The only thing remaining to sort out on the plug-in board is the audio levels for LOADing and SAVEing. Everything else works. SPECTRA will only ever work on the 48K machine and is emulated only by ZXSP. To date it has had one demo release.

To recolour existing games on ULAplus you can just set a palette. No coding required. If you hack the palette you can get 64 colours on screen at once. With SPECTRA you have to rewrite the display code.

ULAplus has a carefully chosen 256 colour palette that works well for converting 24-bit images. In 8x1 attribute mode using the HAM8x1 software you can display a static 256 colour screen with 32 colours per row and 8x1 attributes. SPECTRA is limited to a palette of 64 colours, many of which are barely distinguishable. Its hi-res attribute modes are incompatible with existing Timex software. Its maximum colour resolution still gives worse results than HAM8x1 and uses considerably more RAM.

ULAplus supports the Timex modes. Eventually the plug-in should bring these features to the 128K machines, including the ability to run SE Basic 4.01 with its 80-column hi-res screen mode.

Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

https://www.youtube.com/watch?v=d9zMsEL4J0Y

You can try out HAM8x1 mode for yourself in the current release of SpecEmu.
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Mon Jan 20, 2014 6:08 pm

Re: SPECTRA Advanced Graphics

Ohm, I see emotions!!!
cheveron wrote:SPECTRA is a SCART interface.

That' like saying, Multiface one is a Composite Video or Kempston Joystick Interface.
cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

So ULA+ has 4x1 Attributes mode too? In fact ULA+ is only good for recolouring existing games, like the Spectrum emulation on SAM in Mode 1.
cheveron wrote:ULAplus is available now in clones and is emulated by almost everything. The only thing remaining to sort out on the plug-in board is the audio levels for LOADing and SAVEing. Everything else works.

So when it will be available for 48K Issue 2, Issue 3 and Toastrack? I was waiting years for it and nothing happened.
cheveron wrote:SPECTRA will only ever work on the 48K machine and is emulated only by ZXSP.

"Subject to change". I know that 128K has no Y on the bus, and no Composite video, but why not take the signals from RGB Socket? SPECTRA for 128 is not impossible. And about the emulators: if software for Spectra will start to appearm it will be supported by Emulators.
cheveron wrote:To date it has had one demo release.

Thats something I will change.
cheveron wrote:To recolour existing games on ULAplus you can just set a palette. No coding required. If you hack the palette you can get 64 colours on screen at once. With SPECTRA you have to rewrite the display code.

That's not a problem. Why recolour existing games if coding new games can be such a fun. And why to hack Palette if SPECTRA does not require any hacking?
cheveron wrote:ULAplus has a carefully chosen 256 colour palette that works well for converting 24-bit images. In 8x1 attribute mode using the HAM8x1 software you can display a static 256 colour screen with 32 colours per row and 8x1 attributes.

Can this 8x1 HAM be done fullscreen on 48K or is it Timex-Only?
Carefully choosen sounds like standard 3-3-2 Encoding as in MSX2 Mode 8.
cheveron wrote:SPECTRA is limited to a palette of 64 colours, many of which are barely distinguishable.

barely distinguishable? And ULA+ 256 Colours (let me guess: 3-3-2 RGB Bits?) are easier distinguishable?
cheveron wrote:Its hi-res attribute modes are incompatible with existing Timex software.

Assuming many people have Timex 2068 software. How many Timex Software tilles are using Hires colour mode, apart from some demos?
cheveron wrote:Its maximum colour resolution still gives worse results than HAM8x1 and uses considerably more RAM.

And how many games use HAM8x1 mode? Oh wait... Not a single one... How many are in development? Is there still CPU time left if using HAM8x1 mode? Yes, Spectra has less colours, but the features can be really used in games and not only in slideshows.
cheveron wrote:ULAplus supports the Timex modes. Eventually the plug-in should bring these features to the 128K machines, including the ability to run SE Basic 4.01 with its 80-column hi-res screen mode.

And the release date is which year planed?.
cheveron wrote:Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

I respect your opinion, but I don't share it. You don't need to "waste" your time developing for SPECTRA. I don't waste my time coding Slideshows for ULA+. Simple!

Oh, a slideshow!!! How wonderfull and how usefull
And it looks for me like these "carefully chosen 256 colour palette" is a standard 3-3-2 encoding where many colours are barely distinguishable. Sorry, but then I prefer SPECTRA because I do not do Slideshows but games.
cheveron wrote:You can try out HAM8x1 mode for yourself in the current release of SpecEmu.

The ZXBC has already librarys to support ULA+, so I wonder why this hostility against SPECTRA. I myself think, developing for ULA+ is a waste of time, unless I want to make a slideshow.

Oh, and sorry that I was too harsch to ULA+, but I waited for it for years as hardware implementation, and it still not available except in Emulators and clones. And it has no real use for gamemaking, only for slideshows.
Last edited by LCD on Tue Jan 21, 2014 1:09 am, edited 1 time in total.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Tue Jan 21, 2014 12:57 am

Re: SPECTRA Advanced Graphics

Okay, next part of "Timewasting" for a "dead project":
This function converts RGB (0-3 for each channel) to SPECTRA's 64 colour mode colour:
  Code:
function RGBto64Col(r as ubyte,g as ubyte,b as ubyte) as ubyte
   return b|(r<<2)|(g<<4)
end function

And this routine will calculate the memory offset for Quad mode (8x4 Attributes)

  Code:
function CalcAdrQuadOffset(x as ubyte,y as ubyte)
   dim y1 as uinteger
   y1=(y&48)+((y&14)>>1)+((y&1)<<3)
   return $6000+x+(y1<<5)
end function

In Double byte colour mode it will return the address of ink byte, for paper byte just add 2048.
Currently I'm writing a small demo to test some SPECTRA abilitys.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Tue Jan 21, 2014 2:15 am

Re: SPECTRA Advanced Graphics

This is the Function to calculate Attribute Address in Dual line mode.
  Code:
function CalcAdrDualOffset(x as ubyte,y as ubyte)
   dim y1 as uinteger
   y1=(y&96)+((y&28)>>2)+((y&3)<<3)
   return $6000+x+(y1<<5)
end function

In Dual Byte Colour mode it will return ink colour. For Paper you must add 4096.

With this:
  Code:
sub FillMem(mem as Uinteger,size as Uinteger,byt as Ubyte)
   asm
      ld h,(ix+5)
      ld l,(ix+4)
      ld d,h
      ld e,l
      inc de
      ld b,(ix+7)
      ld c,(ix+6)
      dec bc
      ld a,(ix+9)
      ld (hl),a
      ldir
   end asm
end sub

You can now make something like cooper bars:
  Code:
   FillMem(4096+CalcAdrDualOffset(0,13),32,RGBto64Col(1,0,1))
   FillMem(4096+CalcAdrDualOffset(0,14),32,RGBto64Col(2,0,2))
   FillMem(4096+CalcAdrDualOffset(0,15),32,RGBto64Col(3,0,3))
   FillMem(4096+CalcAdrDualOffset(0,16),32,RGBto64Col(2,0,2))
   FillMem(4096+CalcAdrDualOffset(0,17),32,RGBto64Col(1,0,1))


And these are the core routines...
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

cheveron

User avatar

Posts: 71

Joined: Sat Dec 11, 2010 11:22 pm

Post Tue Jan 21, 2014 11:01 am

Re: SPECTRA Advanced Graphics

LCD wrote:Ohm, I see emotions!!!

No, I'm just fed up of people repeating stuff they've heard about ULAplus without bothering to check the facts.

cheveron wrote:SPECTRA is a SCART interface.

That' like saying, Multiface one is a Composite Video or Kempston Joystick Interface.

Then why does Paul Farrow himself describe it as a SCART interface? The aim of SPECTRA is to give a decent video signal on a 48K machine without the need to perform an internal modification. It does this very well.

cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

So ULA+ has 4x1 Attributes mode too?

No, because that mode takes too much RAM and too much CPU to make much use of. Static pictures look better in HAM8x1 mode.

In fact ULA+ is only good for recolouring existing games, like the Spectrum emulation on SAM in Mode 1.

That's the sort of nonsense that I'm tired of hearing. People haven't even begun to scrape the surface of what's possible with ULAplus. For instance 24 color backdrops with no CPU overhead, palette cycling, and I'm sure there are others. Also ULAplus is fully supported in SE Basic.

cheveron wrote:ULAplus is available now in clones and is emulated by almost everything. The only thing remaining to sort out on the plug-in board is the audio levels for LOADing and SAVEing. Everything else works.

So when it will be available for 48K Issue 2, Issue 3 and Toastrack? I was waiting years for it and nothing happened.

It will be available when it's available. How long were we waiting for a fully featured OS for divIDE? It's only now that esxDOS is really coming into its own. The development board made by Miguel works in any 48K machine from the issue 1 on because it is a direct replacement for the original ULA. Only minor changes to the core will be required for the timing on the toastrack and the grey +2. Miguel is even talking about doing an overrride for the ASIC in the +3 and +2A models at some point. But right now he's doing his PhD. He's put all of the source for the project online so anyone who knows a thing or two about FPGAs could build one now. In a way I wish he'd put it out now with the broken tape loading, because frankly we're all using divIDE and esxDOS now, right? But he wants to make sure even if all you have is a 16K issue 1 that it works completely. And remember you don't just get the palette modes with Miguel's board. You get all the Timex video modes too. I expect the plug-in will be released not long after he gets his doctorate.

cheveron wrote:SPECTRA will only ever work on the 48K machine and is emulated only by ZXSP.

"Subject to change". I know that 128K has no Y on the bus, and no Composite video, but why not take the signals from RGB Socket? SPECTRA for 128 is not impossible.

The hardware design of the SPECTRA is incompatible with the 128s and Paul himself has said he has no intention of making a 128 version.

And about the emulators: if software for Spectra will start to appear, it will be supported by Emulators.

It doesn't work like that. Emulator authors support what they want to support. The Spectrum SE is real hardware (admittedly only a single prototype but still real) and only two emulators supported that. ULAplus was emulated before the FPGA hardware was finished because it was trivial to do (except in FUSE which is why FUSE doesn't support it except as a patch), and authors could see the benefits of it. ULAplus has a fair amount of original software now, but I doubt Jon Needle will ever add support for it to Spectaculator even when Miguel's board is generally available. If there are two SPECTRA titles, most emulator authors simply won't bother with it. The reason ULAplus was so successful is because it can be used to recolor existing software. That means there are immediately thousands of titles available for it. Recoloring existing software wasn't the point of ULAplus, but it helped to get it emulated. SPECTRA is too niche. It will only be added by people who are interested in the technical challenge of implementing its screen modes. To date that's kio. I wouldn't hold my breath waiting for a Windows based emulator to support it.

Why recolour existing games if coding new games can be such a fun.

Because coding new games is niche, and playing existing games with more colors has mass appeal. Most users are gamers, not coders. If you want a device to be adopted you have to appeal to the biggest market.

And why to hack Palette if SPECTRA does not require any hacking?

Did you mean ULAplus? Most Spectrum software doesn't make extensive use of BRIGHT, so setting a palette prior to loading a game usually only gets you 32 colors on screen. If you edit the attributes in the game to use the FLASH bit then you can get the full 64 colors on screen. No coding required, just need to locate the attribute data. SPECTRA really doesn't support existing software without a rewrite and as I said, you really need to support existing software if you want mass appeal.

cheveron wrote:ULAplus has a carefully chosen 256 colour palette that works well for converting 24-bit images. In 8x1 attribute mode using the HAM8x1 software you can display a static 256 colour screen with 32 colours per row and 8x1 attributes.

Can this 8x1 HAM be done fullscreen on 48K or is it Timex-Only?

Yes it works on the 48K machine. Miguel has implemented the full ULAplus specification which includes the Timex video modes.

Carefully choosen sounds like standard 3-3-2 Encoding as in MSX2 Mode 8.

It's not just 3-3-2 encoding (because the eye is less sensitive to differences in blue), it's also the GRB arrangement which means that if you turn down the color then the palette becomes 256 levels of gray from 0 to 255.

cheveron wrote:SPECTRA is limited to a palette of 64 colours, many of which are barely distinguishable.

barely distinguishable? And ULA+ 256 Colours (let me guess: 3-3-2 RGB Bits?) are easier distinguishable?

Yes. Just compare a picture of both palettes side by side. The 3-3-2 encoding and larger palette makes a big difference. Miguel had to turn the color and brightness up on the television while making his SPECTRA video for YouTube so you could actually see the difference.

cheveron wrote:Its hi-res attribute modes are incompatible with existing Timex software.

Assuming many people have Timex 2068 software. How many Timex Software tilles are using Hires colour mode, apart from some demos?

More than there are SPECTRA titles. It's all about giving people the most reasons to want one.

cheveron wrote:Its maximum colour resolution still gives worse results than HAM8x1 and uses considerably more RAM.

And how many games use HAM8x1 mode? Oh wait... Not a single one... How many are in development? Is there still CPU time left if using HAM8x1 mode? Yes, Spectra has less colours, but the features can be really used in games and not only in slideshows.

As the name implies, HAM8x1 is for static images. There are already plenty of slideshows in circulation. A lot more could be done with ULAplus in games, particularly with palette cycling. So far only John Elliot's patch for Chaos has made use of that. The problem is that even after you deliver new hardware, it's insanely difficult to get anyone to write anything to support it. There just aren't many people coding for the Speccy who are interested in new hardware. And there are probably more people coding for the speccy than any other contemporary system.


cheveron wrote:ULAplus supports the Timex modes. Eventually the plug-in should bring these features to the 128K machines, including the ability to run SE Basic 4.01 with its 80-column hi-res screen mode.

And the release date is which year planed?.

Talk to Miguel. When I designed the specification for ULAplus with Chris Smith, the launch of a project by Chris was imminent. It got delayed. If I'd known it would take this long for the hardware to appear I probably would have kept ULAplus to myself for longer. But FPGA clones with ULAplus are becomming the norm. It's even been adopted in the Russian clone scene. I think it's inevitable that it will eventually arrive on real hardware.

cheveron wrote:Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

I respect your opinion, but I don't share it. You don't need to "waste" your time developing for SPECTRA. I don't waste my time coding Slideshows for ULA+. Simple!

I certainly wouldn't want to deter anyone from coding for SPECTRA. If you enjoy it, then that's reason enough to do it. But there are some cool games that could be done with ULAplus, ZX BASIC and fourspriter. If I thought anyone was interested I'd write a couple of libraries for ZX BASIC. However, I'm not sure anyone is interested. You'll note that I'm not bothering with ULAplus for ZXodus. I simply don't think enough people care about this stuff to make it worthwhile and I had my fun designing it.

The ZXBC has already librarys to support ULA+, so I wonder why this hostility against SPECTRA. I myself think, developing for ULA+ is a waste of time, unless I want to make a slideshow.

I'm not hostile to SPECTRA. I am annoyed about the misinformation that goes around about ULAplus, much of which you've repeated in your post. It has plenty of gaming applications. It's just that no-one has used them yet, despite it being available for years. Getting people to write the software is the hard bit.

Oh, and sorry that I was too harsch to ULA+, but I waited for it for years as hardware implementation, and it still not available except in Emulators and clones. And it has no real use for gamemaking, only for slideshows.

I am sorry that people have been waiting for it for so long, but that's not something I had any control over. I'm almost tempted to put together a Defender like game with a 24 color backdrop and palette cycling effects to show what you can really do with ULAplus, it's just that I'm more interested on working on ZXodus at the moment.

Here's a screenshot of a very simple hack I did to do something a bit better than a simple recolor with ULAplus:

Image
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Tue Jan 21, 2014 6:39 pm

Re: SPECTRA Advanced Graphics

cheveron wrote:
LCD wrote:Ohm, I see emotions!!!

No, I'm just fed up of people repeating stuff they've heard about ULAplus without bothering to check the facts.

But in the initial posting I did not say anything about ULA+... And where I can find the documentation about the internas (memory map modes, etc.) of ULA+? The Spectra has excellent handbook that I do not want to miss again.
cheveron wrote:
cheveron wrote:SPECTRA is a SCART interface.

That' like saying, Multiface one is a Composite Video or Kempston Joystick Interface.

Then why does Paul Farrow himself describe it as a SCART interface? The aim of SPECTRA is to give a decent video signal on a 48K machine without the need to perform an internal modification. It does this very well.

Spectrum was also sold as Education and business machine by Sinclair, but its still a great games machine. And if it does more than advertised, I'm happy with it. I would call it even a graphics card.
cheveron wrote:
cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

So ULA+ has 4x1 Attributes mode too?

No, because that mode takes too much RAM and too much CPU to make much use of. Static pictures look better in HAM8x1 mode.

SPECTRA 4x1 attribute mode does not use any CPU time. So you cannot say that it is worse in EVERY SINGLE RESPECT. Each addon has its own advantages.
cheveron wrote:
In fact ULA+ is only good for recolouring existing games, like the Spectrum emulation on SAM in Mode 1.

That's the sort of nonsense that I'm tired of hearing. People haven't even begun to scrape the surface of what's possible with ULAplus. For instance 24 color backdrops with no CPU overhead, palette cycling, and I'm sure there are others. Also ULAplus is fully supported in SE Basic.

Yes, Palette cycling is one thing that attract me.
cheveron wrote:
cheveron wrote:ULAplus is available now in clones and is emulated by almost everything. The only thing remaining to sort out on the plug-in board is the audio levels for LOADing and SAVEing. Everything else works.

So when it will be available for 48K Issue 2, Issue 3 and Toastrack? I was waiting years for it and nothing happened.

It will be available when it's available. How long were we waiting for a fully featured OS for divIDE? It's only now that esxDOS is really coming into its own. The development board made by Miguel works in any 48K machine from the issue 1 on because it is a direct replacement for the original ULA. Only minor changes to the core will be required for the timing on the toastrack and the grey +2. Miguel is even talking about doing an overrride for the ASIC in the +3 and +2A models at some point. But right now he's doing his PhD. He's put all of the source for the project online so anyone who knows a thing or two about FPGAs could build one now. In a way I wish he'd put it out now with the broken tape loading, because frankly we're all using divIDE and esxDOS now, right? But he wants to make sure even if all you have is a 16K issue 1 that it works completely. And remember you don't just get the palette modes with Miguel's board. You get all the Timex video modes too. I expect the plug-in will be released not long after he gets his doctorate.

Almost right, Most of us use DivIDE, but on the other side there are a lot of users demanding real tapes with new games, so I hope, Miguel can fix this problem in his spare time. Miguel does his job good.
You had should say it earlier that Timex 8x1 and Hires mode is available in the standard ZX Spectrum with ULA+ and not only in Timex and clones. You know, Retro-X supports Timex modes. Knowing the internals I can also add ULA+ modes, but in fact this does not stop me from supporting also the SPECTRA. I'm even sure, Games can support SPECTRA and ULA+ together with normal mode.
cheveron wrote:
cheveron wrote:SPECTRA will only ever work on the 48K machine and is emulated only by ZXSP.

"Subject to change". I know that 128K has no Y on the bus, and no Composite video, but why not take the signals from RGB Socket? SPECTRA for 128 is not impossible.

The hardware design of the SPECTRA is incompatible with the 128s and Paul himself has said he has no intention of making a 128 version.

The pitty part is that 128 has no YUV signals on the expansion bus. A fault introduced by Investonica. Otherwise it would be compatible apart from timing, but this could be easy added e.g. by a jumper to control Xilinx.
cheveron wrote:
And about the emulators: if software for Spectra will start to appear, it will be supported by Emulators.

It doesn't work like that. Emulator authors support what they want to support. The Spectrum SE is real hardware (admittedly only a single prototype but still real) and only two emulators supported that. ULAplus was emulated before the FPGA hardware was finished because it was trivial to do (except in FUSE which is why FUSE doesn't support it except as a patch), and authors could see the benefits of it. ULAplus has a fair amount of original software now, but I doubt Jon Needle will ever add support for it to Spectaculator even when Miguel's board is generally available. If there are two SPECTRA titles, most emulator authors simply won't bother with it. The reason ULAplus was so successful is because it can be used to recolor existing software. That means there are immediately thousands of titles available for it. Recoloring existing software wasn't the point of ULAplus, but it helped to get it emulated. SPECTRA is too niche. It will only be added by people who are interested in the technical challenge of implementing its screen modes. To date that's kio. I wouldn't hold my breath waiting for a Windows based emulator to support it.

The Spectrum SE is a legend, but also a Spectrum +3S exists as a single prototype, and nobody supports it. And in the worst case I can thake the code of VBSpec and port it to PureBASIC (which is faster than VB), and add the SPECTRA modes myself. Unreal Spectrum Emulator is a very good candidate on the Sourceforge, but focusses on russian hardware. Anyway, a solution is not impossible.
cheveron wrote:
Why recolour existing games if coding new games can be such a fun.

Because coding new games is niche, and playing existing games with more colors has mass appeal. Most users are gamers, not coders. If you want a device to be adopted you have to appeal to the biggest market.

Maybe it is a niche, but this would mean that ZXBC is a niche too, and I always supported niches that have potential. ULA+ has potential too and I will support it too, once I will have the real hardware.
cheveron wrote:
And why to hack Palette if SPECTRA does not require any hacking?

Did you mean ULAplus? Most Spectrum software doesn't make extensive use of BRIGHT, so setting a palette prior to loading a game usually only gets you 32 colors on screen. If you edit the attributes in the game to use the FLASH bit then you can get the full 64 colors on screen. No coding required, just need to locate the attribute data. SPECTRA really doesn't support existing software without a rewrite and as I said, you really need to support existing software if you want mass appeal.

What if the game require all the Spectrum memory and overwrite the palette data with garbage?
cheveron wrote:
cheveron wrote:ULAplus has a carefully chosen 256 colour palette that works well for converting 24-bit images. In 8x1 attribute mode using the HAM8x1 software you can display a static 256 colour screen with 32 colours per row and 8x1 attributes.

Can this 8x1 HAM be done fullscreen on 48K or is it Timex-Only?

Yes it works on the 48K machine. Miguel has implemented the full ULAplus specification which includes the Timex video modes.

Now after I know that ULA+ is not supposed to be a hardware for Timex only, this makes sense.
cheveron wrote:
Carefully choosen sounds like standard 3-3-2 Encoding as in MSX2 Mode 8.

It's not just 3-3-2 encoding (because the eye is less sensitive to differences in blue), it's also the GRB arrangement which means that if you turn down the color then the palette becomes 256 levels of gray from 0 to 255.

Sounds excellent. Any idea how much it will cost
cheveron wrote:
cheveron wrote:SPECTRA is limited to a palette of 64 colours, many of which are barely distinguishable.

barely distinguishable? And ULA+ 256 Colours (let me guess: 3-3-2 RGB Bits?) are easier distinguishable?

Yes. Just compare a picture of both palettes side by side. The 3-3-2 encoding and larger palette makes a big difference. Miguel had to turn the color and brightness up on the television while making his SPECTRA video for YouTube so you could actually see the difference.

Pauls converter is not perfect, but thic can be improved. Anyway, can you explain why larger palette make colours more distinguishable?
cheveron wrote:
cheveron wrote:Its hi-res attribute modes are incompatible with existing Timex software.

Assuming many people have Timex 2068 software. How many Timex Software tilles are using Hires colour mode, apart from some demos?

More than there are SPECTRA titles. It's all about giving people the most reasons to want one.

And I want to improve the number count of Spectrum software that is using SPECTRA. This does not mean that I will not support ULA+ in the future too. By the way, Jonathan Cauldwells Gams Designer supports ULA+ and it will support SPECTRA in the future aswell.
cheveron wrote:
cheveron wrote:Its maximum colour resolution still gives worse results than HAM8x1 and uses considerably more RAM.

And how many games use HAM8x1 mode? Oh wait... Not a single one... How many are in development? Is there still CPU time left if using HAM8x1 mode? Yes, Spectra has less colours, but the features can be really used in games and not only in slideshows.

As the name implies, HAM8x1 is for static images. There are already plenty of slideshows in circulation. A lot more could be done with ULAplus in games, particularly with palette cycling. So far only John Elliot's patch for Chaos has made use of that. The problem is that even after you deliver new hardware, it's insanely difficult to get anyone to write anything to support it. There just aren't many people coding for the Speccy who are interested in new hardware. And there are probably more people coding for the speccy than any other contemporary system.

Thats right, it is hard to get the people support hardware. There is only one way to do this: Send free ULA+ chips to well known programmers ;).
cheveron wrote:
cheveron wrote:ULAplus supports the Timex modes. Eventually the plug-in should bring these features to the 128K machines, including the ability to run SE Basic 4.01 with its 80-column hi-res screen mode.

And the release date is which year planed?.

Talk to Miguel. When I designed the specification for ULAplus with Chris Smith, the launch of a project by Chris was imminent. It got delayed. If I'd known it would take this long for the hardware to appear I probably would have kept ULAplus to myself for longer. But FPGA clones with ULAplus are becomming the norm. It's even been adopted in the Russian clone scene. I think it's inevitable that it will eventually arrive on real hardware.

ZX Chrome has no ULA+ yet too. And I don't want to code only for emulators. Maybe I will purchase a russian clone with ULA+, but I prefer a drop-in replacement for the classic Spectrum.
cheveron wrote:
cheveron wrote:Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

I respect your opinion, but I don't share it. You don't need to "waste" your time developing for SPECTRA. I don't waste my time coding Slideshows for ULA+. Simple!

I certainly wouldn't want to deter anyone from coding for SPECTRA. If you enjoy it, then that's reason enough to do it. But there are some cool games that could be done with ULAplus, ZX BASIC and fourspriter. If I thought anyone was interested I'd write a couple of libraries for ZX BASIC. However, I'm not sure anyone is interested. You'll note that I'm not bothering with ULAplus for ZXodus. I simply don't think enough people care about this stuff to make it worthwhile and I had my fun designing it.

Look, there are already some ULA+ librarys for Spectrum, so many people are defitively interested.
cheveron wrote:
The ZXBC has already librarys to support ULA+, so I wonder why this hostility against SPECTRA. I myself think, developing for ULA+ is a waste of time, unless I want to make a slideshow.

I'm not hostile to SPECTRA. I am annoyed about the misinformation that goes around about ULAplus, much of which you've repeated in your post. It has plenty of gaming applications. It's just that no-one has used them yet, despite it being available for years. Getting people to write the software is the hard bit.

As I said before, in my initial post and before you started, nobody said something against ULA+. I started the thread not because I wanted to write something about ULA+, but to publish routines to support SPECTRA. there are already threads about supporting ULA+.
cheveron wrote:
Oh, and sorry that I was too harsch to ULA+, but I waited for it for years as hardware implementation, and it still not available except in Emulators and clones. And it has no real use for gamemaking, only for slideshows.

I am sorry that people have been waiting for it for so long, but that's not something I had any control over. I'm almost tempted to put together a Defender like game with a 24 color backdrop and palette cycling effects to show what you can really do with ULAplus, it's just that I'm more interested on working on ZXodus at the moment.

And I confess that ZXodus is a really great project. The problem is that it is compatible with a specific Spectrum modell only, a modell which I do not have yet.
Last edited by LCD on Tue Jan 21, 2014 6:43 pm, edited 1 time in total.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Tue Jan 21, 2014 6:42 pm

Re: SPECTRA Advanced Graphics

cheveron wrote:Here's a screenshot of a very simple hack I did to do something a bit better than a simple recolor with ULAplus:
Image


Great. Absolutly not bad!!!
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
<<

cheveron

User avatar

Posts: 71

Joined: Sat Dec 11, 2010 11:22 pm

Post Tue Jan 21, 2014 7:50 pm

Re: SPECTRA Advanced Graphics

LCD wrote:But in the initial posting I did not say anything about ULA+

Well you did mention it. If you hadn't I wouldn't have said anything.

And where I can find the documentation about the internas (memory map modes, etc.) of ULA+? The Spectra has excellent handbook that I do not want to miss again.

Well there's the tech spec:
http://www.zxshed.co.uk/sinclairfaq/ind ... olour_Mode
And Guesser wrote a guide to using the standard Spectrum mode from BASIC:
https://sites.google.com/site/ulaplus/d ... rBasic.pdf
The screen layout is exactly the same as for the standard Spectrum and Timex modes. The modes are selected the same way as on the Timex.
http://www.zxshed.co.uk/sinclairfaq/ind ... reen_Modes

Almost right, Most of us use DivIDE, but on the other side there are a lot of users demanding real tapes with new games, so I hope, Miguel can fix this problem in his spare time. Miguel does his job good.

I'm sure he will fix it, but since normal audio works fine (BEEP command right through to Shiru's beeper engines) I suspect it's one of those fiddly problems that will take a lot of testing with a scope to resolve.

You had should say it earlier that Timex 8x1 and Hires mode is available in the standard ZX Spectrum with ULA+ and not only in Timex and clones. You know, Retro-X supports Timex modes. Knowing the internals I can also add ULA+ modes, but in fact this does not stop me from supporting also the SPECTRA. I'm even sure, Games can support SPECTRA and ULA+ together with normal mode.

Well the Timex modes weren't always in scope for ULAplus, and most emulators (except SpecEmu) don't support them. But Miguel's hardware and Alessandro's FPGA cores do. Miguel has actually got a video of SPECTRA plugged into his issue 2 Spectrum while using the ULAplus board. Of course because SPECTRA uses video mirroring the ULAplus board is only functioning as a normal ULA in this setup.

The pitty part is that 128 has no YUV signals on the expansion bus. A fault introduced by Investonica. Otherwise it would be compatible apart from timing, but this could be easy added e.g. by a jumper to control Xilinx.

Well put that down to them going with RGB. The real pity about the 128 is that Sinclair didn't persuade Investronica to support the Timex video modes. Timex gave Sinclair all the tech details and it's really only a very minor change to the ULA design.

The Spectrum SE is a legend, but also a Spectrum +3S exists as a single prototype, and nobody supports it. And in the worst case I can thake the code of VBSpec and port it to PureBASIC (which is faster than VB), and add the SPECTRA modes myself. Unreal Spectrum Emulator is a very good candidate on the Sourceforge, but focusses on russian hardware. Anyway, a solution is not impossible.

Well if you're willing to do the work yourself that's another matter. Unreal Speccy drives me crazy because it only supports the Pentagon which means I can't run the standard ZXodus code on it. However it will be useful for testing the Pentagon version of the code when I get around to it.

Maybe it is a niche, but this would mean that ZXBC is a niche too, and I always supported niches that have potential. ULA+ has potential too and I will support it too, once I will have the real hardware.

Well all retro coding is pretty niche to be honest. But I think ZXBC has made retro coding a lot more accessible to people who don't want to learn machine code and find C a bit too intimidating. That's the reason I decided to use it for the game logic in ZXodus. I'm guessing that it will be possible to update the ULAplus boards once a fix is found for the audio issue. I know Miguel had a few PCBs made, although I don't know if they are all populated. If you're planning on supporting it then it may be possible to get one from him before it gets a public launch.

What if the game require all the Spectrum memory and overwrite the palette data with garbage?

Well that's the thing, the ULAplus ports were carefully chosen. To date I know of only two peripherals that they colide with (the MB02+ and the ZX Printer). Writing to the ULAplus will interfere with those devices (although a mod is possible for the ZX Printer), but writing to those devices will not interfere with ULAplus. So there's no danger of the palette being overwritten. The palette can be set before the game is loaded. Even if all the memory is used it should still be possible to change the values that are already in use for the attributes to use the full range of 64 colors.

Sounds excellent. Any idea how much it will cost?

As I'm not involved in the manufacturing I couldn't even guess. The cost of FPGAs and PCB manufacturing have come right down lately though. At a guess I'd say it would be no more expensive than a Spectranet, and probably quite a bit cheaper as it has fewer ICs.

Pauls converter is not perfect, but thic can be improved. Anyway, can you explain why larger palette make colours more distinguishable?

It's not just the larger palette, it's the red/green bias. The human eye is less good at distinguishing blue, so an evenly distributed palette with less variation like SPECTRA means some colors will look almost identical. Then there's just the fact that you can use palette cycling to get all 256 colours on screen with ULAplus which gives you a greater color range.

And I want to improve the number count of Spectrum software that is using SPECTRA. This does not mean that I will not support ULA+ in the future too. By the way, Jonathan Cauldwells Gams Designer supports ULA+ and it will support SPECTRA in the future aswell.

I know. But it's only in AGD4 where you get independent sprite color that you can really start to do interesting things with ULAplus like 24 color backdrops and palette cycling. I know I should do a demo to show it off but I'm short on time. Maybe when ZXodus is done I'll revisit it.

Thats right, it is hard to get the people support hardware. There is only one way to do this: Send free ULA+ chips to well known programmers ;).

Well I might consider buying boards for Jon and the Mojons as they've already created quite a few ULAplus titles. The thing is that a game that uses the full power of ULAplus isn't going to work on the original machine, so you either have to write two versions or limit yourself to providing an override palette, which is what they've done.

ZX Chrome has no ULA+ yet too. And I don't want to code only for emulators. Maybe I will purchase a russian clone with ULA+, but I prefer a drop-in replacement for the classic Spectrum.

There's ZX Badaloc Reloaded if you prefer to get one from Europe. The good thing about ULAplus is that it was always intended as a plug-in replacement. The bad thing is that it's only available in clones to date. The good thing is that I'm pretty sure it will eventually be available in its intended form. The bad thing is everyone may have given up on the Spectrum by then.

And I confess that ZXodus is a really great project. The problem is that it is compatible with a specific Spectrum model only, a model which I do not have yet.

Well it is targeted at a specific model because that's the one it will perform best on. But it will run on any 128K Spectrum compatible. It will even run on the Pentagon, but the attributes will be 8x8 instead of 8x1 and the color will be off. That's why eventually I plan on making a Pentagon version of the engine available. I already have a coder lined up to do the conversion.

Anyway, sorry to derail the thread. I'll shut up now and go back to the ZXodus thread.
<<

Fruitcake

Posts: 2

Joined: Wed Jan 22, 2014 12:34 am

Post Wed Jan 22, 2014 2:20 am

Re: SPECTRA Advanced Graphics

cheveron wrote:No, I'm just fed up of people repeating stuff they've heard about ULAplus without bothering to check the facts.

cheveron wrote:I am annoyed about the misinformation that goes around about ULAplus

I understand your annoyance. It's like this statement:
cheveron wrote:Paul himself has said he has no intention of making a 128 version.

which is completely untrue as I have always stated that I would be interested to make a 128 compatible version if there was sufficient demand.


cheveron wrote:SPECTRA will only ever work on the 48K machine

cheveron wrote:The hardware design of the SPECTRA is incompatible with the 128s

LCD wrote:I know that 128K has no Y on the bus, and no Composite video, but why not take the signals from RGB Socket? SPECTRA for 128 is not impossible.

The design isn't incompatible; the implementation is. Obtaining the Y signal from the RGB socket is viable (tried it).


cheveron wrote:I certainly wouldn't want to deter anyone from coding for SPECTRA

cheveron wrote:I'm not hostile to SPECTRA

cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

cheveron wrote:Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

Oh, Ok...


LCD wrote:
cheveron wrote:SPECTRA is a SCART interface.

That' like saying, Multiface one is a Composite Video or Kempston Joystick Interface.

Yes SPECTRA is a SCART interface, but it just happens to provide the following as well:

  • RGB SCART connectivity (with all necessary signalling voltages)
  • Sound output via SCART
  • Additional colours and colour resolutions (32 modes in total)
  • Additional border colours and effects
  • Screen buffering to avoid flicker (double screen buffers)
  • ZX Interface 1 compatible RS232 socket
  • Kempston compatible joystick socket
  • Optional onboard EPROM facility
  • Optional ZX Interface 2 compatible ROM cartridge socket
  • ZX Interface 1 compatible ROM paging mechanism for use with the ROM facilities
  • Reset button
  • Full width rear expansion bus with gold plated connections
  • Configuration switches to ensure full I/O compatible with all existing Spectrum devices


cheveron wrote:
LCD wrote:So ULA+ has 4x1 Attributes mode too?

No, because that mode takes too much RAM and too much CPU to make much use of.

Too much RAM for what application? Too much CPU for what functionality? So even for a graphics editor or a word processor it wouldn't be useful? Too much for a game perhaps? Then use the 4x2, or the 4x4, or the 4x8, or 8x4, or the 8x2, or the 8x1, all either using standard colours or the enhanced colour palette. An application can pick its preferred trade off between number of colours, colour resolution and RAM usage.


cheveron wrote:People haven't even begun to scrape the surface of what's possible with ULAplus. For instance 24 color backdrops with no CPU overhead, palette cycling, and I'm sure there are others

I know what you mean. For instance, the double screen buffer mechanism of the SPECTRA interface allows a simple interrupt routine (consisting of little more than an OUT instruction) to toggle between the two screens every frame and when used on an LCD/LED TV (which most are these days) can produce a 512 line display in any of the new display modes with very little CPU effort. And of course a CPU routine could be used to switch between the display modes midway through each TV frame to generate a hybrid mode display. And the ROM facilities coupled with the ZX Interface 1 compatible paging mechanism provide a convenient persistent way to extend BASIC, allowing the potential for new BASIC commands to control all of the enhanced display modes (some can already be controlled using standard BASIC).


cheveron wrote:SPECTRA really doesn't support existing software without a rewrite

SPECTRA supports all existing software to reproduce them in their original colours in clarity not generally seen from a 48K Spectrum. It will not recolour existing games if that is what you meant but did not actually write.


LCD wrote:And I want to improve the number count of Spectrum software that is using SPECTRA. This does not mean that I will not support ULA+ in the future too.

If people want to support the SPECTRA modes then great. If people want to support the ULA+ modes then great also. They are free to choose whichever approach works best for them.


cheveron wrote:Miguel had to turn the color and brightness up on the television while making his SPECTRA video for YouTube so you could actually see the difference.

Well at least he could connect his Spectrum up to a TV via SCART using real hardware...


cheveron wrote:
LCD wrote:How many Timex Software tilles are using Hires colour mode, apart from some demos?

More than there are SPECTRA titles.

Nice dodge of the question there.


cheveron wrote:The problem is that even after you deliver new hardware, it's insanely difficult to get anyone to write anything to support it.

Indeed. I wonder if it helps having people go out of their way to belittle new interfaces?


cheveron wrote:I wouldn't hold my breath waiting for a Windows based emulator to support it.

LCD wrote:And in the worst case I can thake the code of VBSpec and port it to PureBASIC (which is faster than VB), and add the SPECTRA modes myself.

And then there is always the Windows based emulator with SPECTRA support I have been designing... (well if you want something done, do it yourself I say)


cheveron wrote:I am sorry that people have been waiting for it for so long, but that's not something I had any control over

Well you could do what I did and learn the necessary technologies, put a lot of time and effort in and be prepared to spend a fair amount of money on the development and production costs...
<<

cheveron

User avatar

Posts: 71

Joined: Sat Dec 11, 2010 11:22 pm

Post Thu Jan 23, 2014 3:25 pm

Re: SPECTRA Advanced Graphics

Fruitcake wrote:I have always stated that I would be interested to make a 128 compatible version if there was sufficient demand.

I distinctly recall you saying otherwise. If I am mistaken I apologize. It is not the same as people repeatedly making false statements about ULAplus and it is disingenuous of you to suggest otherwise.

The design isn't incompatible; the implementation is. Obtaining the Y signal from the RGB socket is viable (tried it).

You're the hardware guy, not me, but as I understand it the device is designed for a 48K machine. Yes the technique of hanging a video device off the bus will work on the 128, but for the existing device you'd either have to modify the Spectrum, or the device, no?

cheveron wrote:I certainly wouldn't want to deter anyone from coding for SPECTRA

cheveron wrote:I'm not hostile to SPECTRA

cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

cheveron wrote:Personally I think SPECTRA is a dead end and I wouldn't waste time developing for it.

Oh, Ok...

I'm entitled to my opinion. I've never presented it as anything other than an opinion. I've explained why I consider the extended color support to be inferior to ULAplus and why I woudn't develop for it. I don't see why that would put anyone off. It's not like anyone ever listens to anything I say.

  • RGB SCART connectivity (with all necessary signalling voltages)
    No arguments there. Not many modern televisions can take the fake PAL signal from the Speccy but with SPECTRA they will work providing they provide a SCART input. Excellent job.
  • Sound output via SCART
    Given that SCART provides an audio carrier I would expect this. If you added a virtual AY chip with stereo output it would be even neater.
  • Additional colours and colour resolutions (32 modes in total)
    The Timex machines have been available since 1983 and include three screen modes. These machines were quite widely available yet in the last 30 years almost no software has been written to use them. In Russia they developed 16C mode with per-pixel colour. I think the total number of titles has recently exceeded single figures. I'm sure it was fun to do from a development point of view but I will be stunned if more than a handful of titles are ever released for one of these modes, let alone all 32. Until you get emulator support in a mainstream Windows-based emulator, developing for SPECTRA is a drag. And then you've got to fight against the "if it's not attribute clashy it's not a Speccy" crowd. I'm really not knocking what you've done, I'm just suggesting you should have realistic expectations about how much software support you're going to get.
  • Additional border colours and effects
    As above.
  • Screen buffering to avoid flicker (double screen buffers)
    There are other ways of avoiding screen flickering besides double buffering. In practice the double buffer on the Timex and the 128 didn't get used very often because the overhead of copying the screen to the buffer kills the frame rate.
  • ZX Interface 1 compatible RS232 socket
    Certainly useful with your programmable IF2 carts, but I can't think of many other applications.
  • Kempston compatible joystick socket
    Always a welcome addition. You can disable it though right? Having two Kempston interfaces daisy chained can cause problems, especially with DivIDE+.
  • Optional onboard EPROM facility[/quote]
    I take it that' replicates the functionality of your programmable IF2 carts.
  • Optional ZX Interface 2 compatible ROM cartridge socket
    A nice touch.
  • ZX Interface 1 compatible ROM paging mechanism for use with the ROM facilities
    Handy if you've got some kind of IF1 file system support, but possibly not so much use with divIDE or Spectranet.
  • Reset button
  • Full width rear expansion bus with gold plated connections
    Very nice. ThHroughports are always appreciated.
  • Configuration switches to ensure full I/O compatible with all existing Spectrum devices
Impossible. Even if you kill all of the I/O and pass all the signals out of the back without changing them, just by adding length to the lines you will render some interfaces unusable. That's not your fault of course. Unfortunately, software authors can't know what devices a user has plugged in, so will have to go through a series of diagnostics to determine if it is safe to enable various features, or just assume it is safe and risk not running on some configurations. That's why I came up with the ZXI standard. If you want to switch to using I/O in that range then it's not too late. There are plenty of spare ports. Just have a word with Guesser or one of the people that maintain it.

cheveron wrote:
LCD wrote:So ULA+ has 4x1 Attributes mode too?

No, because that mode takes too much RAM and too much CPU to make much use of.

Too much RAM for what application? Too much CPU for what functionality? So even for a graphics editor or a word processor it wouldn't be useful? Too much for a game perhaps? Then use the 4x2, or the 4x4, or the 4x8, or 8x4, or the 8x2, or the 8x1, all either using standard colours or the enhanced colour palette. An application can pick its preferred trade off between number of colours, colour resolution and RAM usage.

I'd be shocked to see a new graphics editor or word processor released for the Spectrum. On the other hand if you're writing one then good luck.

cheveron wrote:People haven't even begun to scrape the surface of what's possible with ULAplus. For instance 24 color backdrops with no CPU overhead, palette cycling, and I'm sure there are others

I know what you mean. For instance, the double screen buffer mechanism of the SPECTRA interface allows a simple interrupt routine (consisting of little more than an OUT instruction) to toggle between the two screens every frame and when used on an LCD/LED TV (which most are these days) can produce a 512 line display in any of the new display modes with very little CPU effort.

Not a 384 line display? How does that work on a 720p or 1080p display?

And of course a CPU routine could be used to switch between the display modes midway through each TV frame to generate a hybrid mode display.

Yeah, did that on the Timex over a decade ago:
Image

And the ROM facilities coupled with the ZX Interface 1 compatible paging mechanism provide a convenient persistent way to extend BASIC, allowing the potential for new BASIC commands to control all of the enhanced display modes (some can already be controlled using standard BASIC).

You have to be careful with that when using devices like Spectranet, or other things which also use a shadow ROM. Basically if you want to work with modern storage you're limited to a single BIOS ROM. Although of course you could write SPECTRA commands for esxDOS or Spectranet. Or just use Boriel's ZX BASIC.

cheveron wrote:SPECTRA really doesn't support existing software without a rewrite

SPECTRA supports all existing software to reproduce them in their original colours in clarity not generally seen from a 48K Spectrum. It will not recolour existing games if that is what you meant but did not actually write.

It's a forum. I don't spend hours composing my posts. I thought it was implicit.

cheveron wrote:
LCD wrote:How many Timex Software tilles are using Hires colour mode, apart from some demos?

More than there are SPECTRA titles.

Nice dodge of the question there.

Oh please. It wasn't a dodge. I just don't have the figures to hand. If you want to go check out the Timex archive at WoS and count them yourself be my guest. My point was that the availability of a video mode doesn't translate into software releases.

cheveron wrote:The problem is that even after you deliver new hardware, it's insanely difficult to get anyone to write anything to support it.

Indeed. I wonder if it helps having people go out of their way to belittle new interfaces?

Oh please. I have not gone out of my way to belittle SPECTRA. When you released it I expressed my disappointment that you had not included support for ULAplus, which you certainly could have done if you'd wanted. This is the first time since then that I recall writing anything about it, and only because I was annoyed at LCDs description of SPECTRA as being "better" than ULAplus. To my mind they are different things. ULAplus is the defacto standard for enhanced video. Even in Russia where they prefer to come up with their own solutions they are building clones which support it. SPECTRA is a neat interface. It just doesn't interest me personally.

And then there is always the Windows based emulator with SPECTRA support I have been designing... (well if you want something done, do it yourself I say)

That's a smart move on your part. I look forward to trying it out.

cheveron wrote:I am sorry that people have been waiting for it for so long, but that's not something I had any control over

Well you could do what I did and learn the necessary technologies, put a lot of time and effort in and be prepared to spend a fair amount of money on the development and production costs...

As I pointed out the last time you said that, I have already spent a lot of time (thousands of man hours) and money (hundreds of pounds) on developing for the Spectrum and it's up to me how I use my time and money. I'm not pushing ULAplus on anyone, I'm just trying to correct some common misconceptions. ULAplus is available in hardware, and it is good for more than recolouring old games.

I still think SPECTRA would have had a bigger market if you'd supported the ULAplus standard. That's my only criticism of the device. Nothing I've said was intended as a criticism of you. It's your time and money, spend it doing whatever you find the most rewarding.
<<

Fruitcake

Posts: 2

Joined: Wed Jan 22, 2014 12:34 am

Post Fri Jan 24, 2014 12:46 am

Re: SPECTRA Advanced Graphics

I have always stated that I would be interested to make a 128 compatible version if there was sufficient demand.
cheveron wrote:I distinctly recall you saying otherwise.

You might recall that but you would be wrong.


cheveron wrote:It is not the same as people repeatedly making false statements about ULAplus and it is disingenuous of you to suggest otherwise.

I wasn’t aware LCD had repeatedly made false claims about ULA+...

And I fail to see how writing something that isn’t true about ULA+ is any different to writing something that isn’t true about anything else. People might make mistakes and misunderstand things, but that does not imply it is necessarily deliberate.


cheveron wrote:as I understand it the device is designed for a 48K machine.

for the existing device you'd either have to modify the Spectrum, or the device, no?

Yes, SPECTRA only works on a 16K/48K Spectrum, but the principle could work on a 128K machine. You original statement could be interpreted as implying the principle could never work on a 128K Spectrum.


cheveron wrote: I'm entitled to my opinion.

Indeed you are, and I’m not going to try and convince you otherwise. I respect that is your view. But LCD is entitled to his opinion also and he simply stated that in his view SPECTRA was better for him. He didn’t say in what way or for which application, but there are things SPECTRA can do that ULA+ cannot and you didn’t know if these were the aspects he had in mind because you didn’t bother to ask him. You just told him why he was wrong.


cheveron wrote:
  • RGB SCART connectivity (with all necessary signalling voltages)
    No arguments there. Not many modern televisions can take the fake PAL signal from the Speccy but with SPECTRA they will work providing they provide a SCART input. Excellent job.
  • Sound output via SCART
    Given that SCART provides an audio carrier I would expect this. If you added a virtual AY chip with stereo output it would be even neater.
  • Additional colours and colour resolutions (32 modes in total)
    The Timex machines have been available since 1983 and include three screen modes. These machines were quite widely available yet in the last 30 years almost no software has been written to use them. In Russia they developed 16C mode with per-pixel colour. I think the total number of titles has recently exceeded single figures. I'm sure it was fun to do from a development point of view but I will be stunned if more than a handful of titles are ever released for one of these modes, let alone all 32. Until you get emulator support in a mainstream Windows-based emulator, developing for SPECTRA is a drag. And then you've got to fight against the "if it's not attribute clashy it's not a Speccy" crowd. I'm really not knocking what you've done, I'm just suggesting you should have realistic expectations about how much software support you're going to get.
  • Additional border colours and effects
    As above.
  • Screen buffering to avoid flicker (double screen buffers)
    There are other ways of avoiding screen flickering besides double buffering. In practice the double buffer on the Timex and the 128 didn't get used very often because the overhead of copying the screen to the buffer kills the frame rate.
  • ZX Interface 1 compatible RS232 socket
    Certainly useful with your programmable IF2 carts, but I can't think of many other applications.
  • Kempston compatible joystick socket
    Always a welcome addition. You can disable it though right? Having two Kempston interfaces daisy chained can cause problems, especially with DivIDE+.
  • Optional onboard EPROM facility
    I take it that' replicates the functionality of your programmable IF2 carts.
  • Optional ZX Interface 2 compatible ROM cartridge socket
    A nice touch.
  • ZX Interface 1 compatible ROM paging mechanism for use with the ROM facilities
    Handy if you've got some kind of IF1 file system support, but possibly not so much use with divIDE or Spectranet.
  • Reset button
  • Full width rear expansion bus with gold plated connections
    Very nice. ThHroughports are always appreciated.
  • Configuration switches to ensure full I/O compatible with all existing Spectrum devices

Thanks for your views on these facilities. Not everybody is going to use them all but they are simply there should they want to...


cheveron wrote: I'm just suggesting you should have realistic expectations about how much software support you're going to get.

But no one has claimed there will be massive support. I’ve never said that. I would be very surprised if there was such support for any computer that is over 30 years old. My aim is that SPECTRA gives people the opportunity to play their favourite games on their new TVs using real unmodified hardware for years to come. If there are a handful of devoted developers out there that want to make new games then the extra display modes are there should they wish to exploit them.


  • Configuration switches to ensure full I/O compatible with all existing Spectrum devices
cheveron wrote: Impossible. Even if you kill all of the I/O and pass all the signals out of the back without changing them, just by adding length to the lines you will render some interfaces unusable.

I wrote ‘full IO compatibility’ not ‘full compatibility’, i.e. no IO address conflicts. If a user has a preferred Kempston joystick interface then the one on SPECTRA can be disabled. If they have an Interface 1 connected then the RS232 on SPECTRA can be disabled. If they have one of the few devices that conflict with the IO port for the display modes (Kempston Mouse and SpecDrum to my knowledge) then the display modes can be disabled (why would they need the extra modes for existing software to drive these devices anyway?).

Of course I can’t guarantee SPECTRA will work with all other interfaces. There are electrical issues as you say, such as power, noise, timing. There are also physical limitations, e.g. it is not possible to plug an Interface 1 in the back of an Interface 2, or practical to plug an Interface 1 in the back of a DivIDE. But that it not what I claimed.


cheveron wrote: If you want to switch to using I/O in that range then it's not too late.

Thanks, but I’m happy with the approach I’ve used.


LCD wrote:So ULA+ has 4x1 Attributes mode too?

cheveron wrote:No, because that mode takes too much RAM and too much CPU to make much use of.

So even for a graphics editor or a word processor it wouldn't be useful?

cheveron wrote:I'd be shocked to see a new graphics editor or word processor released for the Spectrum.

My point was, as I’m sure you understand, that you cannot simply dismiss a mode out of hand because you don’t know all possible applications it might be used for. Even if used for games, not all have fast moving sprites and animation that require as much CPU power as can be thrown at them.


cheveron wrote: Not a 384 line display?

Yes you are correct. A typing mistake on my behalf.


And of course a CPU routine could be used to switch between the display modes midway through each TV frame to generate a hybrid mode display.
cheveron wrote: Yeah, did that on the Timex over a decade ago:


Not claiming the technique is new, just stating it is possible with SPECTRA to highlight that like ULA+ it also has untapped potential...


cheveron wrote:You have to be careful with that when using devices like Spectranet, or other things which also use a shadow ROM.

Unfortunately some devices take the route of deliberately preventing other interfaces co-existing should they also contain a ROM. They assume they will be the only device connected with a ROM. SPECTRA does not make such an assumption.

The DivIDE should ideally check the ROMCS line on its rear expansion bus and keep quiet if something behind it attempts to use the ROM address space. That is how the ROMCS line is supposed to work. The DivIDE takes the approach of not passing the MREQ line through and thus forcibly stops another device seeing a ROM address access. Therefore the DivIDE never has to worry about devices behind it (devices in front of it are a different matter). But this approach also prevents techniques such as memory mapped IO working, or even an original Interface 2 ROM cartridge working alongside the DivIDE. If devices were designed not to assume they had exclusive access to the ROM address space then compatibility would be increased.

If SPECTRA is connected behind a DivIDE then it cannot see the RAM accesses which it needs to monitor. The DivIDE should have no business filtering out RAM accesses otherwise it can even prevent a device without a ROM from working. As a result, SPECTRA needs to be connected in front of the DivIDE, or alternatively the missing MREQ line can be added to the DivIDE.

But a nice consequence of plugging SPECTRA ahead of a device such as the DivIDE is that SPECTRA can be fitted with a customised version of the Spectrum ROM (e.g. fixing all bugs) and will override the Spectrum’s internal ROM. The DivIDE will then override the SPECTRA ROM, thus the user experiences a bug free BASIC ROM with DivIDE functionality.


cheveron wrote:Basically if you want to work with modern storage you're limited to a single BIOS ROM.

Only because of the design choices made for those devices. Create new storage devices and that issue can be overcome...


cheveron wrote:It's a forum. I don't spend hours composing my posts. I thought it was implicit.

I thought it was implicit that LCD was simply stating his preference for SPECTRA for his particular needs but you didn’t. So I think being precise helps remove ambiguity and scope for misinterpretation.


cheveron wrote:It wasn't a dodge.

cheveron wrote:My point was that the availability of a video mode doesn't translate into software releases.

And that is a fair point, but LCD’s point (which I also thought was implicit) was that adding support for the Timex modes does not open up a huge resource of new software to use. How many titles there are available for SPECTRA is irrelevant to this argument.


cheveron wrote:I have not gone out of my way to belittle SPECTRA.

cheveron wrote:This is the first time since then that I recall writing anything about it, and only because I was annoyed at LCDs description of SPECTRA as being "better" than ULAplus.

But that is just his opinion. Isn’t he entitled to an opinion that differs to yours? If he originally said ULA+ couldn’t do something that it could then correcting him would be fair enough. You’ve described SPECTRA display modes as
cheveron wrote:worse than ULAplus in every single respect.

How is that phrasing any better than LCD’s?


cheveron wrote:I was annoyed at LCDs description of SPECTRA as being "better" than ULAplus. To my mind they are different things.
cheveron wrote:Its extended colour scheme is worse than ULAplus in every single respect.

Then why keep comparing then?


cheveron wrote:I'm not pushing ULAplus on anyone, I'm just trying to correct some common misconceptions.

Nothing wrong with correcting misconceptions. It’s just that LCD did not originally state anything specific about ULA+, only that he preferred SPECTRA. Therefore his original statement that you took offence at did not present any misrepresentations, only an opinion.


cheveron wrote:I still think SPECTRA would have had a bigger market if you'd supported the ULAplus standard.

Maybe but if people just want to get a clearer, dot-crawl free picture on their TV then they don’t need any new colour modes, SPECTRA or ULA+. And as you have said trying to get people to develop for new display modes is difficult; most people simply like to play the games they remember.
<<

LCD

Posts: 596

Joined: Fri Feb 13, 2009 3:11 pm

Location: Vienna, Austria

Post Fri Jan 24, 2014 2:06 am

Re: SPECTRA Advanced Graphics

The point is: ULA+ availablity is reserved for clones atm. I could develop for Pentagon 1024 SL 16c mode because I know how the screen is organised (Retro-X supports this mode), but I want to take my Spectrum to the "Forever" demoparty in Slovakia and show something (And it is not a slideshow by the way). No, not running under emulation or on a FPGA clone like Speccy2020 or similar. I think, Lotharek will show the clone, and maybe I will buy one from him. But the most kudos will be recived for showing something on a real machine. I want to show it on a Spectrum. I cannot do this until ULA+ is available as real drop in replacenent. Thats why I prefer SPECTRA. It works with my Spectrum and I can show something to C64 and Atari XL users. So, now you know why I said that SPECTRA is better than ULA+. You just misinterpreted it because I did not say why. It was meant: For me and my applications. Other coders have different needs. If someomne is developing for emulators and clones, he will be lucky with ULA+. But ULA+ is so not a option for me*.
SPECTRA+ on the other side is available as addon for Spectrum. Hurrah! I can show something on a demo party.
Andrew, maybe you don't remember it, but I wrote Retro-X, so I know the 3-3-2 encoding scheme and how such stuff works. No need to explain me elementary stuff.
Anyway... Less than 2 Months until "Forever" starts, so I cannot wait any longer for ULA+, and SPECTRA offers all I need.
I hope you understand now.
And now:
http://www.worldofspectrum.org/forums/s ... stcount=11
Looks like we will get some fresh SPECTRA support soon >>happy<<. :)

*) until available for real Spectum machine.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Next

Return to How-To & Tutorials

Who is online

Users browsing this forum: No registered users and 2 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.

phpBB SEO