Memory Mapped Video Graphics Array on MSX machines.

Pagina 1/2
| 2

Door Yukio

Paragon (1540)

afbeelding van Yukio

01-06-2010, 12:16

What do you think about adapting a existing VGA chipset into a Memory Mapper system !?
Imagine, the Memory Mapper RAM could host pictures and images for the chipset. This would be even better than the older 80 columns cartridges around ...
en.wikipedia.org/wiki/VGA

Good for those that wanted to do mobile portable stuff!!! After all, emulators for older devices are nothing new ...

Aangemeld of registreer om reacties te plaatsen

Van PingPong

Prophet (4093)

afbeelding van PingPong

01-06-2010, 18:00

@Yukio: VGA cpu to vram addressing was on the early day a big bottleneck. Especially in bit planed mode. while later, some vga chipsets provided some hw aid, it's out of the possibility of a simple z80. a viable screen mode is the 13h. However there is little to gain. If i remember correctly, you have:

320x200x256 color (palette based, not like screen 8)
even if a screen takes 64000 bytes there was no paging support. So no double buffering.

Van Yukio

Paragon (1540)

afbeelding van Yukio

02-06-2010, 01:17

There is not much difference on MSX2/2+, but there is a tremendous difference if someone compare the VGA graphics vs standard MSX1 VDP.

Anyway, a lot of persons complain that the MSX can not use LDIR direct on the VDP VRAM . The idea is to implement a Memory Mapper INSIDE the Video Graphics Array, this way a person only need to move the data to the four segments of 16KB memory on the Graphics cartridge ...

Implementing dual VRAM inside a Memory Mapper system could solve this problem. In the past hardware costs prevented some easier solutions, now time is comming!!!

There are some special modes on VGA too:
en.wikipedia.org/wiki/Mode_X

Van Yukio

Paragon (1540)

afbeelding van Yukio

02-06-2010, 01:35

It is possible to see some special effects on PC-DOS. Newer Microsoft OS like Windows 7 would need to use DOSBox to play the demo.
http://www.dosbox.com/

http://www.powerbasic.com/support/downloads/graphics.htm

Demo of MODEX Library for PowerBASIC.
www.powerbasic.com/support/downloads/files/ModeX11.zip

Van Leo

Paragon (1236)

afbeelding van Leo

02-06-2010, 08:32

i think that we soudlnt break msx bios and compatibility.
if we want to implement something like fast ram to vram transfer or ram/vram sharing it should be implemented into bios so same progs/games are still running with same routine entrey point but faster.

Van Yukio

Paragon (1540)

afbeelding van Yukio

02-06-2010, 13:02

It would be possible to use some MSX-DOS or CP/M programs without the MSX-BIOS, but some programs use direct VDP access.It should be possible to copy the contend of the MSX-BIOS and exchange some routines with external patch's like for the LDIRMV and LDIRVM to work with newer Graphics.It is possible to use a modified CHGMOD too ... Avoiding the MSX-BIOS would free more memory for some applications, others would play faster.

Most MSX-DOS games are already broken because their use direct VDP access instead of the slower MSX-BIOS routines (that would need
a inter slot call).Programs that use SLOT 0 would need a EPROM Burner to work ... This would break even more programs !

CP/M BIOS is RAM based BIOS, it is loaded from Micro Floppy Disk and it is operated by Z80 software code ... It is possible to patch!

Van PingPong

Prophet (4093)

afbeelding van PingPong

02-06-2010, 15:10


Anyway, a lot of persons complain that the MSX can not use LDIR direct on the VDP VRAM . The idea is to implement a Memory Mapper INSIDE the Video Graphics Array, this way a person only need to move the data to the four segments of 16KB memory on the Graphics cartridge ...

Pointless, in this way one make the CPU as the primary bottleneck in graphics management.
Gain will be pratically zero, because even on current msx2 the VDP is equally faster in VRAM than z80 on its own RAM. So where is the gain?
In some situations there will be a penalty, because one cannot use the parallelism.

As discusses more and more times, the real bottleneck is the relative slowness of VDP in managing area move commands.
Trading the VDP with a 3Mhz Z80 does not improve nothing. Remember that on VRAM one can do otir statements, instead of ldir.

Plus, the architecure you propose already exists in one spanish project that's map the vdp vram space into z80 one, without losing hw compatibility.

Again, to make faster the graphics there is no need of VRAM mapping. The only thing is needed is a faster VDP.

Even a standard msx1 with a V9990 chip can make stunning stuffs. But the power is on V9990 not in the memory mapped schema.

Van Leo

Paragon (1236)

afbeelding van Leo

02-06-2010, 15:42

faster vdp like v9990 can be used for faster 2D bitmap transfers and do thing like multilayer scrolling or big boss of 96x96 stored in big vram of 512kb.

But sometimes you need to transfer some contents from cpu also : like when you want to draw a textured polygon on the screen .

Van PingPong

Prophet (4093)

afbeelding van PingPong

02-06-2010, 18:48

But sometimes you need to transfer some contents from cpu also : like when you want to draw a textured polygon on the screen .


In a similar situation let the GPU hw to this. Pratically no msx cpu can do this at decent speed.

Van Yukio

Paragon (1540)

afbeelding van Yukio

02-06-2010, 19:52

As discusses more and more times, the real bottleneck is the relative slowness of VDP in managing area move commands.
Trading the VDP with a 3Mhz Z80 does not improve nothing. Remember that on VRAM one can do otir statements, instead of ldir.

I do not think that the MSX-BIOS use OTIR ... There were some delays in plain MSX1. Into MSX 2/2+ I believe that you could be correct, after all even the MSX-BASIC works faster on those VDP's.

Plus, the architecture you propose already exists in one spanish project that's map the vdp vram space into z80 one, without losing hw compatibility.

Dual VRAM could be used by two processors at the same time ... without penalts (unlike older microcomputers). It should be possible to use page flipping by the Video Chip and continuos transfer from Z80 processor. This special sort of Memory Mapper would work without wait states from the Video Graphics, there will be some delay if used on external cartridge connectors. Another advantage is that a faster processor (6 or 7 Mhz) could be used for some tasks.It should be possible to use this on Turbo R with minimum delay .

Van Leo

Paragon (1236)

afbeelding van Leo

02-06-2010, 20:35

then you have refresh of ram , it might be complicated .
Sram could be used instead.
but again it is not straight forward to interface vdp with sram
...
cant we use genlock/digitzie function of the vdp to transfer data ?
in this mode the vram is filled through color bus , it is pretty much as if the transfer was done with
dot clock and h/v sync signals. on the other side of the color bus you must map this into z80 address
space ....

Pagina 1/2
| 2