new GFX card

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

By Leo

Paragon (1236)

Leo's picture

14-09-2008, 13:43

You can easyly work around this by working on two banks of rams, one bank is 100% for vdp
an other 100% for the bus. and then you can flip bank when u r done : this is often called pingpong buffers...
I was thinking that the new gfx could be done with a fast Z80 as a vdp, video scaler would be a piece of external hw though.

The advantage is that this sub-Z80 system could be then have a video-bios anyone could (who knows Z80) modify/improve, so you capitalize on what you already know.

neogeo was using up to 4xZ80 for peripherals , sound and gfx.

all in all what we need is an fpga on a msx-cartridge, the one chip msx-extension OCM-E!!!

Cool

why dont we keep msx standard unchanged but give it vram access direct from Z80, many vhdl design for fast Z80 are available for fpga on opencores.org for instance...

AFAIK allowing vram access from z80 is not a thing that could be done only by putting a new cartridge in a slot, instead requires hw modifications. Not acceptable IMHO.
Plus, if the rest of HW remain unchanged what can you gain from a faster CPU if it has to wait to access VRAM because of VDP concurrency?
For example in screen 2 the vdp have a 1 cycle every 16 dedicated for cpu access. AFAIK the memory cycle is about 300 ns. Assuming 1 T-STATE = 1 access, because of the limitation of 1 access every 16 is still here, the z80 must wait about 5us for any access. Even a PIII could not perform more faster if compared to a old z80 in a vram filling routine.

I think we need a new hw. I also think that if this is simple but powerfull, a good number of peoples start to enjoy with it.
Plus, having a gfx hw that work on every msx family is good. A sw developer does not have to think about the alternatives:

- a crappy limited game but for all (msx 1 and upper compatible)
- a little more better but only for msx2+

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 13:44

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.

Yes, that's the intention. MSX default video out -> video in of VDPX --- video out of VDPX to monitor/TV.
Can even make the switching software controlled by a bit in a control register.

By wolf_

Ambassador_ (9896)

wolf_'s picture

14-09-2008, 14:00

It's Montana John, not Joe, not Jones.. John Tongue

By RyJuZo

Master (236)

RyJuZo's picture

14-09-2008, 14:00

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..

I use my PC monitor as second display for the GFX9000. Which is possible by using a XGA adapter.

And else I would've used a scart-switch-box

So not that big of a deal...I think Tongue

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 14:03

Ok ok. Sowwy. MJTT then, I can't go wrong there Tongue Can you comment on the little concept I just described? The pattern blitter and how to use it, given the waterfall example.

Just another example comes to mind... Torches on the wall, could have fluent, 8-frame 256-color animation without ever updating the nametable for the flame pattern. Just issue the pattern blitter to update the torches anywhere on your screen Wink This seriously opens possibilities for animated tiles on a map/level.

Imagine pools of water to be animated in adventure RPGs...

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 14:05

@RyJuZo:

First thing: i will not stop anyone to support the v9990. Anyone is free to do what want.
Second thing: all replies in bold are annoying. There is no need to increase the voice volume.
Third thing: My considerations are only under a tech perspective.

If you are so satisfied from v9990 performances i invite to read this: http://www.msx.org/forumtopic5452.html


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.

Of course, it depends. If you want to emulate the first gen gameconsole, the MSX1 VDP is more than you can wish.
But if i want to have, for example a three layer scroll, with the v9990 you are out of game.
Of course, if i want a new gfx card i will go for a big improvement vs previous technology. MSX user too often saw small steps in video HW.
Often when the new VDP arrived, the improvements were not sufficient. Now, in 2008 using a V9990 (from '90) is about the same that using TMS.

There are two possibilities:

a) I want to code for ancient hw. But if true, why i need a v9990 or a VDPX? I stay with V9938 or TMS
b) I want to code for a new card, a good project without limitations, then why i should stay on v9990?


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?

I'm only saying that the cost needed to get those chips maybe it's not so low, so maybe there is no difference with VDPX. Can you make an example on how is constly to buy a 100 V9990 chips?


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.

yes, but not all operations are doable with only vram-vram operations. Even good CPU interaction is needed, especially if this interaction could be done in parallel. Of course, this is a limiting factor on msx.


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.

Exact, and is not a *small* problem. effectively who is taking advangage from additional vram in msx2? No one. It's like this extra ram does not exists at all. The same apply to a v9990 that manage mapper support. Because it's not a natively supported feature, will be ignored. And it's like the v9990 never supported it. That's because the effort does not worth.

Anyway, there is no space for religious wars in my mind. If you want to support the v9990, good work, hope you will soon upload some great video or game for this hw. Maybe that will start a good circle like this:

good games -> more v9990-> more good games -> more v9990 .....

By wolf_

Ambassador_ (9896)

wolf_'s picture

14-09-2008, 14:07

So, if I understand well, you want an animation in the screen tiles rather than having all the frames in the tileset?

Problem: we can have multiple waterfalls on screen, each having their own phase.

(and that same problem is around with the torches, the fireflies in the cave and other animating things)

By PingPong

Prophet (3760)

PingPong's picture

14-09-2008, 14:10

It's Montana John, not Joe, not Jones.. John Tongue
AH, ok Monthanna Joannas ?

By MagicBox

Master (198)

MagicBox's picture

14-09-2008, 14:16

Sort of... the frames would still be in the tile set. But instead of updating the nametable on every area where there's an animated object, you could now use a pattern blitter to copy a frame into the animated object patterns. Instead of changing the pattern index in the nametable, you copy a pattern into the pattern indicated by a fixed index. Since the blitter can do this update extremely fast compared to Z80 cycles, this can get your more animation on screen at much less time cost.

If you want multiple animated objects independantly from each other, give each their own set of patterns. Using the blitter, indiviually update the pattern set for the animated object(s).

As for the waterfall, it has 2 parts: the body (water) and the head (bubbly end/drips of watter at the bottom of water stream). In name table you'd just write the 2 head tiles one row lower ever 8 frames and update the previous head tiles with the body tiles. There would be 8 frames for the body tiles and 8 frames for the head tiles. You could update the patterns for both the body and head tiles with one blitcommand. (And the tail ofcourse, when the waterfall stops again, the top side of the water stream)

And there would you go, softscroll waterfalls with glinstering water, bubbles and all just by updating 4 tiles each 8 frames and issuing a pattern blit for every frame, instead of updating the full size of the waterfall in the name table every frame. Thus, the definition of the waterfall itself you'd still do using the name table, the smooth animation/softscroll using the pattern blitter.

Result: Highly increased animation quality for much less Z80 time.

You'd have 6144 patterns at your disposal.. would be PLENTY to define animated object frames and reserve static patterns for the objects (patterns whose index in nametable isn't updated. These patterns are copied to from other patterns using the pattern blitter)

Same for torches. If for instance, the flame of the torch is just one tile, you could define 8 torch tiles that would each receive blitter updates. Then you would have 8 different phases to chose from.

I think this is a very very powerful concept

By ARTRAG

Enlighted (6543)

ARTRAG's picture

14-09-2008, 20:11

Actually having a blitter and patterns at the same time is a very good thing.
The z80 cannot modify the tiles by itself as they are too large when we go at 8bpp.

There is more...
IIRC the v9990 allows blitter commands in pattern mode not only to e.g. copy a pattern on another but also for drawing lines and boxes.
This also is a nice thing.

(IIRC the "bitmap" screen is organized as patterns were set adjacent on the screen in the PNT.)

In this way, you can use as bitmap a part of the screen, (eg. where you do 3D vector graphic) and a part of the screen "in tile mode", where you display scores or a what else you need.

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