What is MSX lacking (so far)?

Página 5/8
1 | 2 | 3 | 4 | | 6 | 7 | 8

Por Arjan

Paladin (756)

Imagen del Arjan

22-04-2004, 21:46

KUN BASIC Smile
actually, it would be nice if someone hacked it and made it possible to save the compiled forms of the BASIC programs (if it's possible at all...)

and compared to Z80, BASIC programs are flying on R800.

Por anonymous

incognito ergo sum (116)

Imagen del anonymous

23-04-2004, 09:24

A decent BASIC compiler would make your crappy BASIC programs run smoothly on a 3.58MHz Z80 too Smile

You guys/girls don't know how crappy my basic programs are...hehehe...Wink

But serious, if it was possible to implement a faster CPU and VDP wouldn't that create whole new possibilities?

What CPUs and VDPs are avialable and best suitable?
CPU:

Z80 @ 20 Mhz
R800@ 7 Mhz
Z180@ 33 Mhz
eZ80@ 50 Mhz
Some FPGA CPU?

VDP:
v9958 with Advram
v9990
FPGA VDP?

Are there any other options?

Por Grauw

Ascended (10300)

Imagen del Grauw

23-04-2004, 13:27

Advram is overrated. An OTIR is just as fast as an LDIR, so the only overhead there currently is when accessing the VRAM is setting the start address. For block moves (the big time consumers), that hardly matters. Only limitation is that you don't have random access, but then again, there's always HMMC as an alternative.

Usually when programming for MSX, you want to let the VDP do the big work with its commands, and let the CPU do other stuff like enemy calculation or whatever in the meantime. Only occasionally issue an interrupt to set a split, or set some registers/sprites... Well, ok, and when programming in screen 4 or so change some VRAM region for great effects.

And v9958 can do amazing stuff already by itself. I have not seen it used to its full potential yet (imagine what one could do with screen 10 + scroll registers + splits...), and certainly not commonly (because M-Kid came to mind Smile). Aside from scrolling and high-colour screen modes, it can also do stuff like use vdp commands in screen modes 0-4... When put to good use (it's a bit weird), can be very powerful.

And if you want real power, it's best achieved by more than just overclocking. Sure, the v9990's faster command execution is great, but its real merits are the pattern modes, planes, great sprites, command interrupt, overscan modes, built-in horizonal splits, etc.

~Grauw

Por Maggoo

Paragon (1214)

Imagen del Maggoo

24-04-2004, 22:19

I still beleive direct Vram access would be nice. I mean it's true that there isn't much difference between otir or ldir but if you need to make lotsa random access (read and write) at different point of the vram (say to do stuffs like bump mapping), the MSX way is a real pain in the ass. Here we have to prepare ALL the page in ram first and then only transfer it whereas on a stupid and basic machine like a Spectrum you don't need to do that last part. But of course this is not something u need everyday...

BTW, what's that thing about VDP commands in screen 0-4 ? Sounds like something I could use :-)

Por anonymous

incognito ergo sum (116)

Imagen del anonymous

24-04-2004, 23:23

V9958 has a mode where you can use VDP commands in screen 0-4. The commands then work the same compared to screen 8, so per byte.
I agree on the random access of the VRAM which is too complicated now, but do not overestimate the actual real-world use of random access VRAM. IMO, you won't see large improvements with the use of AdVRAM in practice.

Por Grauw

Ascended (10300)

Imagen del Grauw

25-04-2004, 02:10

Here we have to prepare ALL the page in ram first and then only transfer it whereas on a stupid and basic machine like a Spectrum you don't need to do that last part.

And don't forget those machines don't use screen 5-like modes but rather screen 4-like ones. Little data is moved. On my TI-83 with monochrome (2-colour) display the entire VRAM is 728 bytes. You can do pretty much every effect you want with that.

I agree on the random access of the VRAM which is too complicated now, but do not overestimate the actual real-world use of random access VRAM. IMO, you won't see large improvements with the use of AdVRAM in practice.

The relatively small gain is not worth the cost (expensive, very few people can use your software). As I said, for a lot of practical cases (those where you don't need to access the whole width of the screen) HMMC can already be of great help, people often forget the command (at least I do Smile). And for the few, very few remaining cases where you really need random access... I truely can't imagine a scenario where I'd actually need it.

Well, perhaps some kind of 3D or calculated stuff, but I think the CPU is the big limit there. Anything on a large scale but not block-level just has too much calculation overhead to be even close to efficient. Also, the VDP is many times faster in processing data than the Z80. Try to otir a block of memory and compare it with how much the VDP can do with copy/fill commands in that same timespan. (note: this assumption is based on a test in doubtful circumstances I did years, what, ages ago, so if you can prove me wrong, please do so Smile).

Again, the relatively small gain is not worth the cost. Imho. A faster GPU (like Gfx9000) would be a better (and cheaper) investment, with much more practical use.

~Grauw

Por Maggoo

Paragon (1214)

Imagen del Maggoo

25-04-2004, 09:59

V9958 has a mode where you can use VDP commands in screen 0-4. The commands then work the same compared to screen 8, so per byte.

Is there any code sample or documentation of that mode ? Do the mode registers have to be set in a particular way or anything ?

Por anonymous

incognito ergo sum (116)

Imagen del anonymous

25-04-2004, 13:00

Is there any code sample or documentation of that mode ? Do the mode registers have to be set in a particular way or anything ?
Sure, it's in the V9958 technical data book.
R#25 bit 6 (CMD), 1: Enables the command function in all display modes

It works as G7 (SCREEN 8) in any other mode than G4-G7 (SCREEN5 - 8), "therefore, it is necessary to set parameters by using x-y coordinates of G7 mode."

Por Maggoo

Paragon (1214)

Imagen del Maggoo

04-05-2004, 14:17

Is there any code sample or documentation of that mode ? Do the mode registers have to be set in a particular way or anything ?
Sure, it's in the V9958 technical data book.
R#25 bit 6 (CMD), 1: Enables the command function in all display modes

It works as G7 (SCREEN 8) in any other mode than G4-G7 (SCREEN5 - 8), "therefore, it is necessary to set parameters by using x-y coordinates of G7 mode."

Darn, too bad it's V9958 specific... BTW did anyone experiment with copy commands in Screen 0-4 on V9938 ? Does it do anything at all ? I remember trying a few things to see if anything was copied at all (it seems to be doing "something" ) but I could never figure out what the VDP was doing exactly or if there was any logic to it...

One thing works tho, switching mode in the hidden part (say to screen 5), do the copy, and switch back to screen 0-4 afterward. But it's a bit tedious.

Por IC

Hero (557)

Imagen del IC

04-05-2004, 15:27

Darn, too bad it's V9958 specific... BTW did anyone experiment with copy commands in Screen 0-4 on V9938 ? Does it do anything at all ? I remember trying a few things to see if anything was copied at all (it seems to be doing "something" ) but I could never figure out what the VDP was doing exactly or if there was any logic to it...

One thing works tho, switching mode in the hidden part (say to screen 5), do the copy, and switch back to screen 0-4 afterward. But it's a bit tedious.

I have tried it in BASIC ones, but copy in screen 4 (or lower) doesn't work. Only Vpoke afaik.

I haven't tried a copy on screen 0-4 with the Vdp registers yet.

Página 5/8
1 | 2 | 3 | 4 | | 6 | 7 | 8