new GFX card

Page 2/20
1 | | 3 | 4 | 5 | 6 | 7

By Trebmint

Champion (294)

Trebmint's picture

10-09-2008, 12:28

Can I just ask, since all these nice specs make me drooooooollll. Couldn't these cards just as easily be adapted for other z80 machine like the speccy and cpc, and make them even more attractive, sell in bigger numbers, get costs down, make games more likely, and be almost genuinely cross platform. Just a thought, and a question?

By MagicBox

Master (209)

MagicBox's picture

10-09-2008, 14:45

I think it will be fun to design a heavily beefed up VDP that would work for an MSX.

That will be fun indeed Smile

But:

Only 512x 8x8 pixel 256 color map patterns?
Only 64x 16x16 256 color sprite patterns?

And what about transparency, scaling, rotating and screensplits? Smile

MSX has a pretty slow CPU, so the VDP has to do a lot itself. It would be fun if it was also possible to implement some math instructions like multiply and such in fpga.

Anyway, I’ll discuss with ghostguy what we are missing in the gfx9000 and see if we can come up with a nice wish list Tongue

Yes, "Only". Transparancy keys ofcourse supported (color 0). The reason for this is simplicity. After all, it is an MSX computer with a 3.54MHz Z80 CPU. The CPU <> VDP interface therefore has to be simple and manageable. If you want a 3D accelerated 1920x1200 display adapter, go buy a PC if you know what I mean. The VDP-to-be-designed has to be in spirit of MSX.

Splitscreen is not needed any more due to use of layers which implement independancy. Example, score bar drawon on Layer 0, doesn't scroll. Map drawn on layer 1, scrolls. Z order set to have layer 0 be on top. Sprites hiding behind walls, buildings etc (clipped) simply done in hardware by setting appropriate Zorder for each pattern in the name table. Each element is 16 bits, 9 bits for the pattern (512 combinations) 4 bits Z order, 3 unused which could be used to increase the number of patterns.

What is it that you really want in the world of MSX? Full color sprites. Softscroll. Multilayer screens. (Take SD snatcher, the frame around the playfield. That would be one layer. The map a layer below it)

Resolutions at most 512x384, that's plenty. Since I would make use of the Xilinx 2-port block RAM system, such VDP could be made very fast as blocks can be organized in a parallel fashion for simultanious sprite, pattern and map processing. The memory would present to the CPU as a 16KB page mapped lineair 128KB or 256KB of memory for direct access (simplicity). Add in a bitblitter to scroll the pattern name table, although as I described the virtual map system, this is not even needed anymore as the map will be circular in both H and V directions. You only need to write new tile rows and columns in the direction(s) you're scrolling to.

The programming model would be pretty much similar to MSX1's VDP Graphic 3 mode, only this time with 256 color capability. Ofcourse the pattern table could be made even 1024 unique patterns or 2048. But again, how often do you make a pattern based screen where every element in the nametable is unique (32x24 = 768) 768 unique tiles? The point of a pattern table is compression and speed. Repeatable patterns just defined with an index. Similarly, 512 8x8 patterns equals 32KB. If you define multiple tilesets, the amount of memory racks up quickly.

Basically, simplicity (familiar programming model, direct VRAM access), appeal (256 color pattern / sprites, 16M palette), speed (pattern based, sprites) are the keypoints. If you know what I'm sayin Wink

By ivke2006

Expert (88)

ivke2006's picture

10-09-2008, 16:13

To MagicBox:

Sounds cool but what would be (high level) the costs of such gfx card?

I think it's wise to leave the design as simple as possible with only 'basic' but powerfull features.

But please consider also a 'desktop' screenmode with slightly higer resolutions. It would then be interesting enough to port SymbOS to this new card. Additional advantage would be that you then have a software platform, which could speed up software development and therefore also boost hardware sales.

By wolf_

Ambassador_ (10095)

wolf_'s picture

10-09-2008, 16:24

Trebmint's crossplatform suggestion is actually the thing to do.

By jltursan

Prophet (2619)

jltursan's picture

10-09-2008, 16:31

Sounds cool but what would be (high level) the costs of such gfx card?

Probably, being a FPGA design, cheaper than expected. If the FPGA needed is a small one, of course...

By MagicBox

Master (209)

MagicBox's picture

10-09-2008, 16:38

In addition: The number of map and sprite patterns could 'easily' be increased up to 1024 map patterns (64KB) and 256 16x16 sprite patterns (another 64KB). But as you can see, the memory usage increases a lot. And the question is there.. how many unique sprite patterns you'll use anyways?

By MagicBox

Master (209)

MagicBox's picture

10-09-2008, 16:51

To MagicBox:

Sounds cool but what would be (high level) the costs of such gfx card?

I think it's wise to leave the design as simple as possible with only 'basic' but powerfull features.

But please consider also a 'desktop' screenmode with slightly higer resolutions. It would then be interesting enough to port SymbOS to this new card. Additional advantage would be that you then have a software platform, which could speed up software development and therefore also boost hardware sales.

Ofcoure, the full VDP design would feature a true 8x20 pixel character , 80x24 columns/rows text mode as well (640x480) as well as bitmap modes with hardware blitters to move around parts of the screen with blazing speed, to make stuff like SymbOS perform godly.

It is all in-concept still. As for FPGA cost, high-volume 1000+ would make it about $10 per FPGA, $3 for 330MHz triple 8-bit video DAC and around $10 for PCB cost and $5 support parts. This is a rough estimate though.

By Salamander2

Expert (124)

Salamander2's picture

10-09-2008, 16:59

wolf_: AGREED.

By MagicBox

Master (209)

MagicBox's picture

10-09-2008, 17:19

Crossplatform could only work when a few criteria are met. Powersupply pins in the different system's slots must match. Signal pins don't matter, as with a mode switch the FPGA could adjust its CPU interface to the approperiate slot pinout to use.

Otherwise a slot converter is needed.

By sjoerd

Hero (609)

sjoerd's picture

10-09-2008, 17:29

In addition: The number of map and sprite patterns could 'easily' be increased up to 1024 map patterns (64KB) and 256 16x16 sprite patterns (another 64KB). But as you can see, the memory usage increases a lot. And the question is there.. how many unique sprite patterns you'll use anyways?
Would it be possible to have let's say 256KB pattern RAM and have all the layers share those patterns? If that is impossible: I do not care that much about memory usage anyway. I care more about the time it takes to update the patterns in-game.

Page 2/20
1 | | 3 | 4 | 5 | 6 | 7