Welcome, Guest. Please login or register.


Author Topic: HW sprites (Read 9359 times)

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
HW sprites
« on: 2015.May.07. 15:26:03 »
Does he know something about the experimental "Sprite Generator" that utilises the Ext-Colour pins in the Expansion connector?

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: HW sprites
« Reply #1 on: 2015.May.07. 15:54:50 »
That is my interest as well.

Offline ssr86

  • EP user
  • *
  • Posts: 355
  • Country: pl
Re: HW sprites
« Reply #2 on: 2015.May.07. 17:25:06 »
I'm interested too,
however looking at these:
Quote
080h FIXBIAS

    b0..b4
        Colour bias to be used for top 5 bits of palette colours 8-15.
    b5..b6
        Controls priority of external colour inputs on EC0-EC3, allowing 16 colour sprites to be implemented. The external colour will only be selected when the /EXTC input is low and the display is active (not border)

        =00
            EC0-EC3 always select the corresponding palette colour.
        =01
            EC0-EC3 select the corresponding palette colour if the internal display is generating a palette colour in the range COL8-COL15.
        =10
            EC0-EC3 select the corresponding palette colour if the internal display is generating a palette colour in the range COL8-COL15 or the external colour is in the range COL0-COL7 (EC3 low).
        =11
            EC0-EC3 select the corresponding palette colour if the internal display is generating a palette colour in the range COL8-COL15 or the external colour is in the range COL0-COL3 or COL8-COL11 (EC2 low).

    b7
        VC1 output of the Nick Chip. Set it to disable the internal speaker in the Enterprise.

I fear that the sprite generator would work as the one the amstrad plus has (and that one is very limited I think)...
correct me if I'm wrong...
only 16 colors mode (what size of pixels?), fixed memory places (need to copy the data every time when you want to change the shape of the sprite), no zooming (like you can on the c64)...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW sprites
« Reply #3 on: 2015.May.07. 18:52:55 »
only 16 colors mode (what size of pixels?),
I'm really sure it is possible in any mode.
And 99% sure 16 colors can be used in any mode for the sprites. For example the TEXT 80 use HIRES 2 graphics, and possible to use 8 colors. With the external color input don't need any trick just use the 4 bit data.

I'm not sure about the resolution. In 4 or 16 color mode the sprite resolution remain as in the 2 color mode, or also divided?

And I'm really sure nobody tried to use this function of the Nick :oops:

Quote
fixed memory places (need to copy the data every time when you want to change the shape of the sprite), no zooming (like you can on the c64)...
These are depend from the sprite hw.

I'm thinking about use Parallax Propeller chip for sprite hw. Just need some time for try it :oops:

I will ask Werner about the sprites, but I think he is also don't know anything.

Offline ssr86

  • EP user
  • *
  • Posts: 355
  • Country: pl
Re: HW sprites
« Reply #4 on: 2015.May.07. 20:57:01 »
About what I posted about amstrad plus hardware sprites... I should do some research before I post:oops:
Quote
Sprites:
    Number: 16 high resolution sprites per line
    Sizes: 16x16 (each sprite can be magnified 2x or 4x in X and Y)
    Colours: Each sprite can use up to 15 colours


I'm really sure it is possible in any mode.
And 99% sure 16 colors can be used in any mode for the sprites. For example the TEXT 80 use HIRES 2 graphics, and possible to use 8 colors. With the external color input don't need any trick just use the 4 bit data.
What I meant earlier was that they'd be most probably always 16 colors (well 15 because one is for transparency?) independant of the screen mode.

Quote

I'm not sure about the resolution. In 4 or 16 color mode the sprite resolution remain as in the 2 color mode, or also divided?
I think that on the Amstrad+ the base sprite resolution (if no zooming) is the 2-color mode resolution but sprites use more colors...
However... I don't really know what I'm talking about anymore:???: ...
My point was that the info in nick documentation suggested me that the eventual hardware sprites that they would do for the enterprise would be very similar to the ones found later on the amstrad plus range (although that was going pretty far because there was only info about the 16 colors for sprites)...
And they're pretty bad from what I remember... For example you can't really multiplex them, and you need to copy data for changing the sprite matrix...

Quote
Quote
   fixed memory places (need to copy the data every time when you want to change the shape of the sprite), no zooming (like you can on the c64)...
These are depend from the sprite hw.
oh...:oops:

Quote
I'm thinking about use Parallax Propeller chip for sprite hw. Just need some time for try it :oops:

I will ask Werner about the sprites, but I think he is also don't know anything.
:ds_icon_cheesygrin:
« Last Edit: 2015.May.07. 21:01:12 by ssr86 »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW sprites
« Reply #5 on: 2015.May.07. 21:43:29 »
Does he know something about the experimental "Sprite Generator" that utilises the Ext-Colour pins in the Expansion connector?

Quote from: WernerLindner
I cannot remember any document or any circuit (diagram) about that matter - sorry.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW sprites
« Reply #6 on: 2015.May.07. 23:00:41 »
I'm thinking about use Parallax Propeller chip for sprite hw. Just need some time for try it :oops:

Unfortunately it's still limited somewhat having "only" 32K of memory ("hub memory"), and externally added RAM is not so much fast enough for the propeller to fetch data from, I think. What would be simple and interesting: put a V9938 or something similar on the EXTCOL inputs. V9938 is familiar from the MSX world. It knows sprites but other things as well, and would allow for MSX softwares easier to port, etc. However that is not so much simple: first, you need to teach to the V9938 somehow to keep video signal in sync with Nick, where Nick is the "master". You can use Nick clock as the V9938 clock somehow, dunno it it can be done anyway. And oh, yes, I think V9938 has RGB analog outputs, not so easy to create 4 bits digital information from it. Also, some youtube video has been published with SymbOS/MSX using V9990 (gfx9000 or what was it) it can be done with EP too in theory to interface that chip, however again, it's much more realistic to have own separated video signal, rather than try to mix it back to the Nick via EXTcol inputs :(

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: HW sprites
« Reply #7 on: 2016.February.18. 22:15:19 »
What sprite chip? this?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW sprites
« Reply #8 on: 2016.February.18. 22:24:48 »
What sprite chip? this?
Or Pear know some better magic with PLD chips :-)

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: HW sprites
« Reply #9 on: 2016.February.18. 22:48:01 »
I think he can do it... and more.... but first you must explain him what is needed.





Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: HW sprites
« Reply #10 on: 2016.February.18. 23:06:39 »
How much information we have about the original "Sprite Generator"?

Seems that its integration on the EXOS 2.1 was already planned.

Can be that integration applicable or useful on another chip project?

Offline pear

  • EP lover
  • *
  • Posts: 825
  • Country: pl
  • Z80 only
    • Támogató Támogató
Re: HW sprites
« Reply #11 on: 2016.February.19. 07:17:06 »
Has anyone already tried to do sprite unit ?
Is there any specification or even the implementation on the emulator ?
How the sprite unit should be integrated with Nick ?

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: HW sprites
« Reply #12 on: 2016.February.19. 09:44:37 »
The designers of the Enterprise where also experimenting with a "Sprite Generator".

Some traces are still present, the /EXTC signal on the expansion connector, the C0-C3 bits on the FIXBIAS register of Nick, and the SPRITE system var(38) on EXOS 2.1.

Zozo can say more about that, but somewhere he has wrote that nobody(except Enterprise Computers) has tried those inputs of the Nick.

The original project is lost.
« Last Edit: 2016.February.19. 09:49:48 by gflorez »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW sprites
« Reply #13 on: 2016.February.19. 11:35:35 »
What we know:
Nick have a external 4 bit color input (16 colors): EC0-EC3 pins. And one control wire /EXTC which indicates the presence of external color on EC0-EC3.
Then Nick internal can mix the internal and external color informations:
-external color displayed instead the internal
-external color displayed if the internal are in COL8-COL15 range
-external color displayed if the internal are in COL8-COL15 range OR the external color in COL0-COL7 range (EC3 low)
-external color displayed if the internal are in COL8-COL15 range OR the external color in COL0-COL3 or COL8-COL11 range (EC2 low)
The last 3 modes can be used for mixing playfield elements (internal graphics) with sprites (external graphics).

What we don't know :oops: what will happen if send anything to these inputs. Probably only tested at the developers...

In 16 color graphics mode everything are logical. But what will happen in 2 or 4 colors mode?
I guess external 16 colors also can be used in 2 colors mode! Why? The Text 80 mode using hires 2 graphics with special settings, and 8 colors possible. Then I think very possible the Nick can read the external color information from the input pins at every pixel.

Firstly need some test electronics, which are send information to input pins, for example a simple counter of Nick clock will send a 00,01,...0E,0F. Then lets view which colors displayed in the screen.


My theory for the sprites:
The electronics will run on Nick clock (available on the bus). Will count the clock signals as pixel clock. The H and V sync also available on the bus, these can be used for reset the counters.
And if the counters in the sprite are then send the actual sprite pixel color to the EC0-EC3, and set EXT to low.
For store the sprite data probably some dual port SRAM are the optimal.

Then one sprite done :-)

For the next, more sprites, mixing these, how sprites move (CPU update the coordinates, or the sprite unit move these?), etc
Probably will be good make the sprite unit with similar features with exiting ones (MSX, CPC+, etc?) the easy can be ported existing sprite games.


Another usage (with more powerfull hw): the whole screen will be as "sprite". If my theory good then possible use 16 colors with hires 2 resolution! Add horizontal scroll features, which are really missing from the Nick...

Also possible more powerfull Spectrum emulation, the whole Spectrum screen genarated as "external ULA" then not need attribute conversion!



Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: HW sprites
« Reply #14 on: 2016.February.19. 11:54:44 »
About the original "Sprite Generator" project, a similar project was impulsed but never released for the TVC(the Videoton, an Hungarian computer also designed by Intelligent Software).

The TVC had lower specs than the EP, but both where similar on hardware and mainly in software.

As the TVC computer was some years posterior to the EP, may be the EP sprite project was found on a dusty(big) drawer and recovered for the TVC.