ADVRAM, for what?

Page 4/4
1 | 2 | 3 |

By mars2000you

Enlighted (6259)

mars2000you's picture

14-09-2015, 00:06

Don't forget that blueMSX is in sleepy mode and that VRAM emulation is more advanced in openMSX.

Now, I think about one thing : Ricardo Bittencourt, author of BrMSX and the ADVRAM tests, has contributed to blueMSX for release of version 2.4 by adding SG-1000 support and rewriting completely the interrupt support. Maybe ADVRAM support has been added secretly at this moment, I really don't know ...

By Manuel

Ascended (18855)

Manuel's picture

14-09-2015, 00:08

I doubt the latter... probably something else is going on, not sure what yet exactly, though.

By ricbit

Champion (438)

ricbit's picture

14-09-2015, 00:53

I can't remember adding ADVRAM to blueMSX.

My suggestion: take away the ADVRAM code with a single commit in git. Then, if in the future someone actually builds it, you revert the commit. It's quite doable to build it in the FPGA-based MSX such.

From what I remember, there was a prototype of ADVRAM which worked fine in SCREEN 0, but once you got to higher SCREENs the VRAM requests were very fast and Ademir couldn't find a window to insert the CPU reads and writes.

By l_oliveira

Hero (534)

l_oliveira's picture

14-09-2015, 00:59

ricbit wrote:

I can't remember adding ADVRAM to blueMSX.

My suggestion: take away the ADVRAM code with a single commit in git. Then, if in the future someone actually builds it, you revert the commit. It's quite doable to build it in the FPGA-based MSX such.

From what I remember, there was a prototype of ADVRAM which worked fine in SCREEN 0, but once you got to higher SCREENs the VRAM requests were very fast and Ademir couldn't find a window to insert the CPU reads and writes.

Isn't that one of the reasons why Mega Drive (which has a Yamaha VDP similar in style to the MSX2/2+ one) has dual ported DRAM video memory? (same kind of memory used on GFX9000) So raster and sprite fetches have a bigger time window by using separated memory access interfaces?

By PingPong

Prophet (3898)

PingPong's picture

15-09-2015, 20:53

The advram is an exellent example of emgineering but is useless on a 3.5mhz z80 because computagions needed to emulate the situations where the vdp command are uses are slower than a vdp speed.
The examples are just particolar situations that flavor z80. Real cases are different.

The story of direct vram access is a kind of legend . Most devs think to need because they are from c64 or zx.

Msx has a lot of limits that are worst that vram speed transfer. A ldir is fast as otir on msx
Things are bad only if you do very small random access (3/4 bytes)instead of sequential transfers. The former is rare however

By madscient

Master (193)

madscient's picture

18-09-2015, 18:00

I think it's useful if the CASX area - means over 128KB - of VRAM is mapped onto main memory.
However, even in that case, the benefit will be limited without DMA.

By flyguille

Prophet (3028)

flyguille's picture

18-09-2015, 21:48

remember that in ADVRAM one of the interfaces are more likely to be sequential access, and the other random access.

so , it was inventen to match the vdps of its times.

By PingPong

Prophet (3898)

PingPong's picture

18-09-2015, 23:33

flyguille wrote:

remember that in ADVRAM one of the interfaces are more likely to be sequential access, and the other random access.

so , it was inventen to match the vdps of its times.

the problem is that
1) its times could never be possible because of speed & cost.....
2) you likely move sequential blocks of contiguous memory when dealing with vram it's natural, so it's more useful a kind of dma than the direct cpu access.
3) this is the concept of the zx spectrum. msx is msx speccy is speccy c64 is c64. every piece of hw have some peculiarities that can be used. the mistake here is to think to need of direct vram access because you want to program msx like a zx. A simple question. Do you really think that a z80 cpu @3.5 mhz is able to efficiently manage a screen of 27K?. So would be more logical have a specialized kind of hw for this task. like a powerful blitter or DMA.
V9938 go in this direction. unfortunately is horribly slow...

Page 4/4
1 | 2 | 3 |