extended RAM in MSX-VIDEO

Door st1mpy

Hero (516)

afbeelding van st1mpy

07-04-2009, 11:50

in various MSX2 documents, there are references to Extended RAM (64KB) in MSX-VIDEO that can be switched instead of the VRAM. It says that it is not official supported spec of MSX2.
Is this available for use in every MSX2 that exists? (Or even in any MSX2?)
And what can you do with it?

Aangemeld of registreer om reacties te plaatsen

Van Manuel

Ascended (15974)

afbeelding van Manuel

07-04-2009, 15:40

You can not display it, but you can use it to store video data. Copy from VRAM to VRAM is a lot faster than from RAM to VRAM, so it's useful. The only real use I know is a copying program FastCopy 3.0, which uses it as extra storage.

Van st1mpy

Hero (516)

afbeelding van st1mpy

07-04-2009, 16:22

just to confirm. Does the extended RAM have the benefit (the speed) of VRAM?
Is it in the VDP? (if so where does this 64KB come from?)
Or is it referring to the MSX's main memory, and the benefit is just being able to use VDP commands?

Van dhau

Paragon (1558)

afbeelding van dhau

07-04-2009, 19:53

Extra 64Kbytes of VRAM come from 2x 4464 DRAM chips that are piggy backing on two of four standard 4464 VRAM.

Here is something to give you the idea: teh img

Van st1mpy

Hero (516)

afbeelding van st1mpy

07-04-2009, 20:02

Oh cool. Thank you for the image.
So, do anyone know if it is available on all MSX2s?

Van dhau

Paragon (1558)

afbeelding van dhau

07-04-2009, 21:09

VDP 9938 and up, so yes. But imo pointless.

Van RetroTechie

Paragon (1563)

afbeelding van RetroTechie

08-04-2009, 02:50

As dhau said, it's a hardware expansion you can do on any MSX2 and up (V9938 or V9958 videochip). And yes: it's dead easy to do, but useless.

You can't use the extra VRAM for display, there's hardly any software that uses it, and if you make software that uses it, that software would work on <1% of all MSX machines out there. And if you need more general purpose RAM, well: we have memory mappers for that.

Summarized: a gimmick for people making a 'system overview' / diagnostics type of program, or emulator developers. Pointless for everyone else.

Van Meits

Scribe (5717)

afbeelding van Meits

08-04-2009, 15:50

I had it on my former MSX. Though I needed a switch for it to be able to go back to the normal 128kB.
Some programs/games went bananas when there is 192kB VRAM present. Don't remember which programs/games they were as it is like 10 years ago I sold the damn machine to mr. Kracht.

Van Fudeba

Expert (113)

afbeelding van Fudeba

08-04-2009, 16:24

I had this mod on my machine until last november, when I asked Luciano Sturaro (from MSXPró) to remove it.
Besides the fact it is useless (I will tell about soon), it made my VRAM *HOT* like hell, and I didn't like it.

The reason why it's useless is somewhat difficult to understand, but let's say that, in normal VRAM mode, the signals CAS0 and CAS1 are enabled in a alternate fashion. When CAS0 is up, CAS1 is down and so on. This means that the Axx address lines points to the SAME address in both memories to read two consecutive VRAM addresses, the only difference is "what CAS signal was up". This way, when the address is 00000h, the pixels (0,0) and (1,0) will be drawn; to draw the first (0,0), CAS0 will be enabled. To draw the second (1,0), CAS1 will be enabled. This is always repeated : even memory addresses are accessed with CAS0 (CAS0 addressed memory), and odd memory addresses are accessed with CAS1 (CAS1 addressed memory). Cool.
When it goes to the extended memory, there is only CASX. The problem is: when VDP access this memory, it will up CASX twice... with the SAME MEMORY ADDRESS in Axx lines.
What that means?
Supose you load, someway, perfect data on the extended 64KB of VRAM. If you try to copy that data (which cannot be displayed there) to another region of VRAM (display memory), each pixel will be duplicated. That is, if you copy 10 bytes from extended VRAM to display VRAM, the result will be:

Data on Extended VRAM:
0123456789

Will become on Display VRAM:
0011223344

But this is even worse: there is no simple way to place "perfect data" on extended VRAM. If you try to copy 10 bytes from display VRAM to extended VRAM, the result will be:

Data on Display VRAM:
0123456789

Will become on Extended VRAM:
13579?????

The explanation is the same, since even and odd bytes will be placed at the same address, odd pixels will always replace even pixels.

All in all, CASX it's a pretty useless feature, unless:
a) You are trying to program some kind of demo and discover a usefull way to explore this "defect"
b) One build a better (and somewhat limited) expansion card to VRAM, in order to switch between TWO additional VRAM blocks, one at each CASX up/down cycle. This would only work if the programmer take into account that extended vram could only be used based in "even pixels", with "even widths"... OTOH, the VDP would work with 256KB of VRAM, instead of 128KB. This is not a big limitation, but the hardware is a lot more complex than a "VRAM tower". And the number of users would be even more limited.

Van Manuel

Ascended (15974)

afbeelding van Manuel

08-04-2009, 23:32

I've had it for years (thanks RetroTechie), and it never gave me any problems. But it wasn't very useful either (only in FastCopy).

Van sd_snatcher

Prophet (3135)

afbeelding van sd_snatcher

09-04-2009, 05:46

Fudeba:

This problem doesn't happen on screen5 and 6. On those screens, the extVRAM works like a charm, by adding more backbuffers.

This is the main limitation of the extRAM: It don't work properly on the screens that desperately need more VRAM, like screens>=7.

The guy who designed CASX must have smoked some pretty strong pot that day... That's a clear case of "defective by design". That pin could be easily have been designed as a AD8 pin and we could also easily have 256KB of VRAM.

And to think they had the chance to fix this mistake when they reassigned many pins on the V9958.