new GFX card

Page 9/20
2 | 3 | 4 | 5 | 6 | 7 | 8 | | 10 | 11 | 12 | 13 | 14

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 10:05

It would be compatible with any MSX that has at least one cartridge slot. If there are FPGA resources left, can even put an SCC/SCC+ in it.

The FPGA will run on an external 100MHz clock, the DCM boosts this to an internal 200MHz system clock. That's a lot of speed there to handle things. Due to the setup I worked out the thing can do with one 256KBx16 (512KB total) 100MHz SRAM chip worth $9 per piece allowing for 6144 8x8 patterns and 256 16x16 sprite patterns. Then there is 64KB left for the map name tables, 4KB per layer. Good stuff Smile

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 11:40

Yeah, it's clear that this gfx card is a good thing!
Personally i'm not against V9990, but i have some doubts about it:

- Speed: I've read about it's speed, an article in this forum where a people talked about the speed on a real use. Does not appear to be so speedy (of course compared with v99x8 it's like a jet)
- Availability: even if there are a number of chips around, are there no problems at all when we need to get them? And about cost?
- Compatibility: correct me if i'm wrong, but GFX9000 is not msx1 compatible, this cut down the possible audience of msx1 owners. And in some countries there is a lot of msx1 machines
- Interface: the V9990 is port based, and for random vram access this is a problem. (Someone think this is also a problem for contiguos block move, but i'm not on this opinion). Modifying a gfx9900 card to give memory mapped access (the v9990 support it) does not worth the effort.
- General performances: the v9990 could not even match (if can be reached) the performances that MagicBox said about this VDPX.


Meanwhile I've been working out hardware internals in my thoughts and it appears that I can organize FPGA resources and VRAM in such way that it indeed can handle 256 color patterns and more so, 128 256-color 16x16 sprites simultaniously without a scanline restriction. It could even allow 16 layers of pattern maps, each with their own scroll / viewport control registers. And, there'll be plenty time left for the Z80 to access VRAM concurrently.

the new VDPX GFX card have so many improvements on v9990 that there is no doubt about it:

V9958:V9990 = V9990:VDPX

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 11:51

Plus i see another problem in emulation:
all the msx vdp lack of very detailed informations in their internal workings ( the v9990 emulation is only experimental and only on openMSX ), so emulate this, it's not so accurate.
With the MagicBox VDPX we have a good and reliable source of info to rely on.

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 11:58

@MagicBox. Do you plan to add support for a blitter?

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 12:30

For a bitmapped mode yes, for pattern mode it's not needed anymore due to the layer / scroll structure. Screen 5 games were often emulated pattern mode screen (patterns on VDP page 1) where blitting was needed for the patterns.

The blitter can be as fast as copying 64KB per 5 scanlines in timeline. 64KB is a full 256x212 8bpp screen

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 12:41

Perhaps another problem that may rise with VDPX emulation is whether graphics hardware is fast enough to emulate this ammount of sprites and layers as PC graphics is just plain old bitmapped mode (DirectX) and there'll be a lot of blitting to do. Most modern day graphicscards are 2D accelerated though. The software VDP I wrote for PC already handled 256 color layers/sprites.I never tested it with 16 layers/128 sprites though.

By RyJuZo

Master (236)

RyJuZo's picture

14-09-2008, 12:55


- Speed: I've read about it's speed, an article in this forum where a people talked about the speed on a real use. Does not appear to be so speedy (of course compared with v99x8 it's like a jet)

It all depends on what you want to do. I have personally done some tests with for example sprite flipping. It is possible to display 64 FLIPPED(by means of line copies) sprites at the same time and still have smooth scrolling going on. Even more would be possible.


- Availability: even if there are a number of chips around, are there no problems at all when we need to get them? And about cost?

I order specialized chips all the time from all over the world, why would obtaining the v9990 be anymore difficult if you know where to get it?


- Compatibility: correct me if i'm wrong, but GFX9000 is not msx1 compatible, this cut down the possible audience of msx1 owners. And in some countries there is a lot of msx1 machines

You are hereby corrected ! It's the msx1-basic that cannot be modified to be used with the v9990.Also powerbasic is not compatible with msx1. The v9990 is ! It's port based.


- Interface: the V9990 is port based, and for random vram access this is a problem. (Someone think this is also a problem for contiguos block move, but i'm not on this opinion).

Yes so it's not mapped memory, but the vram to vram access is very fast. And because of the large memory of the GFX9K you can store almost everything in its vram. I for example store a complete map in vram and use line-copies(byte-mode) to change the nametable-contents for scrolling purposes.And I still have room for hundreds of sprites and patterns


Modifying a gfx9900 card to give memory mapped access (the v9990 support it) does not worth the effort.

BECAUSE ? The only problem would be that not everyone will have its card modified which makes supporting memory mapped access difficult. Same problem for example with the additional vram in the msx2.


- General performances: the v9990 could not even match (if can be reached) the performances that MagicBox said about this VDPX.

This is true. But the new card still has a long long way to go ! And the v9990 has to much potential to just IGNORE its existence.

As I said before I will be supporting the gfx9000. It's a shame I did not come back to the scene much sooner(only two months ago!Crying ) otherwise there would already be much more software by my doing.

I hope there R more developers out there who will follow me...maybe when they see my results they will get the taste for it ! Tongue

having said all this...I still can't wait for the new card to be completed..it sounds very promising !

By Leo

Paragon (1236)

Leo's picture

14-09-2008, 13:20

I have gfx9000 card and one thingvery anoying is the need of 2 vidoe connector if not 2 monitors.
It is almost like having 2 different computers... this stopped me to do anything with these card since
i dont have space at home to have more than one msx connected to tv from time to time..

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 13:34

I have gfx9000 card and one thingvery anoying is the need of 2 vidoe connector if not 2 monitors.
It is almost like having 2 different computers... this stopped me to do anything with these card since
i dont have space at home to have more than one msx connected to tv from time to time..

AFAIK, MagicBox talked about the possibility to switch between the two VDPs by inputting the old vdp system output into the input of the new gfx card.

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 13:38

Regarding a blitter... I just think I got an extremely nice idea. Blitting would also be supported in pattern mode. You could then blit one pattern to another.

If you take Montana Jones as an example, the waterfalls. These would have a fixed pattern index. Let's say a 16x16 block of a waterfall would be 4 patters with index 0 - 3. Then the pattern blitter could be used to copy pattern 4096 - 4099 into patter 0 - 3. The next frame, pattern 4100 - 4103 would be copied into 0 - 3.

This way, you never change the nametable to have animated patterns. No calculations need to be done as to where/how to update the nametable. If I reduce the amount of layers back to 8, a pattern will be copied in 4 pixel clocks, and within 1 Z80 write cycle.

To blit 4 patterns this way, there would be a port on the VDP that would need 5 writes. 2 writes for the source pattern index, 2 writes for the destination pattern index, one write for the number of (sequential) patterns to copy. That's a nice simple OTIR with 5 bytes in memory of info for blitting 4 patterns, =256 bytes of data.

You like that concept _wolf? Tongue

Page 9/20
2 | 3 | 4 | 5 | 6 | 7 | 8 | | 10 | 11 | 12 | 13 | 14