Z80 big family

Page 3/6
1 | 2 | | 4 | 5 | 6

By PingPong

Prophet (3435)

PingPong's picture

06-02-2018, 21:43

maxis wrote:

@TomH, @gdx
. Also there is no tiling concept (which is the advantage when the game is different from platformer) and the color attribute memory is lighter.

I do not consider the lack of tiling concept an advantage. With tiles, one can do a screen scroll with only 768 byte move compared to 6kb+ of zx spectrum. this over-compensate the vram access based on I/O.
Plus with screen 2 arrangement you can also ignore tiles and work like a true bitmap mode.
Very flexible.

If msx2 had a screen 4 tile mode with screen 5 alike tiles probably this mode could be used a lot for games.

The fact that the color attribute table is small, does not allow the richness of color. Games like nemesis have a lot of color with no overhead due to tile based approach. To achieve more than 2 color on 8x8 square on Speccy we need to do this with cpu imposing a very high load on it.

With tiles, animations like a river flowing are lighter because one can update a very small n. of tile patterns or by contrast a very small n. of tiles in nametable resulting in low cpu usage.
It is not strange that arcade and newer consoles used the tile based approach when in '80 cpu/gpu power was not high...

Finally the I/O based is severely slow when one need to access small non contiguos vram regions. with medium/big vram area move/fill the difference is not so dramatic compared to speccy

By TomH

Champion (327)

TomH's picture

06-02-2018, 21:55

Two arguments to consider:

1) Lack of tiling cuts a third from the number of memory accesses that would otherwise be required — the addresses for pixels and attribute are completely implicit, rather than implied by the tile fetch. Therefore lack of tiling is significant in allowing the ULA and CPU to share memory. Therefore it is an advantage because it is part of what gives the Spectrum its much greater processor to video bandwidth. So it's why games like Cobra can pixel scroll the whole screen at a rock-solid 50Hz, and it's also part of why games like Starstrike II (to name a good one) and Hard Drivin' (to name, umm, another one) can do a decent version of solid, filled polygons.

2) Lack of tiling permits scan lines to be internally linear. That substantially simplifies a lot of addressing tasks when updating larger regions of memory (and the arrangement of lines isn't as odd as it appears: within each 8-line band you can always add or subtract 256 to move a whole line, which if you're using HL as a pointer is obviously fairly trivial), which allows for the largest moving graphics of its generation.

I've made those arguments for the sake of playing devil's advocate, and because mth and Manuel have already done such an excellent job of pursuing this thread's main topic that continuing the digression doesn't feel damaging. There are a bunch of great MSX titles the Spectrum would be absolutely terrible at, but I don't think that most of what the Spectrum does is innately a disadvantage, it's just different.

That's other than the 8x8 attributes, of course. Even Timex fixed that one with its American version of the Spectrum.

By PingPong

Prophet (3435)

PingPong's picture

06-02-2018, 22:13

TomH wrote:

Two arguments to consider:

1) Lack of tiling cuts a third from the number of memory accesses that would otherwise be required — the addresses for pixels and attribute are completely implicit, rather than implied by the tile fetch. Therefore lack of tiling is significant in allowing the ULA and CPU to share memory. Therefore it is an advantage because it is part of what gives the Spectrum its much greater processor to video bandwidth. So it's why games like Cobra can pixel scroll the whole screen at a rock-solid 50Hz, and it's also part of why games like Starstrike II (to name a good one) and Hard Drivin' (to name, umm, another one) can do a decent version of solid, filled polygons.

the 50 fps are obtained with a dirty use of push / pop abuse. an LDIR had the same performance of a OTIR.
without this dirty usage of push / pop the fps will be cut in half. so the real gain is not the greater bandwith but the applicability of the trick in direct vram access.

Quote:

2) Lack of tiling permits scan lines to be internally linear. That substantially simplifies a lot of addressing tasks when updating larger regions of memory (and the arrangement of lines isn't as odd as it appears: within each 8-line band you can always add or subtract 256 to move a whole line, which if you're using HL as a pointer is obviously fairly trivial), which allows for the largest moving graphics of its generation.

a true linear addressing is *not* due to the tile mode. one can have linear addressing even with tile mode.
and to be honest speccy does not have a true linear addressing. we have a true linear addressing in screen 5-8 modes of v99x8

speccy had linear addressing only per scanline basis, and this does not free us to do complicated calculations to find the address of a pixel in vram.

By TomH

Champion (327)

TomH's picture

06-02-2018, 22:52

It's going to be hard to find common ground with arguments like "that game used a method I don't approve of, and the one I approve of is only half as fast"; if that's the level we're debating at then I opt out.

By Timmy

Expert (105)

Timmy's picture

07-02-2018, 00:14

TomH wrote:

It's going to be hard to find common ground with arguments like "that game used a method I don't approve of, and the one I approve of is only half as fast"; if that's the level we're debating at then I opt out.

I think it's very clever to have people around you that have strong opinions on 'things'. Besides, if you read his views between the lines, you can see that his love for great 2D scrolling demos is above any other genres. And you will also notice that it's peculiar that the MSX scene, compared to many other 8-bits, have more importance that their games must have nice colours above gameplay, or wants special named engines to do one thing, or wants only play games from one company or one specific developer, or some other peculiarities.

Most of it can be traced back from their past games catalogue or the odd VDP design, I guess. And it's very interesting to observe that the Spectrum scene is a lot more perceptive to new genres because they dont have to think in tiles, for example. You can see this in the C64 scene too, where it took a while before they accepted isometric or wireframe or raycasted games.

So in the end, the design of the VDP was a blessing and a curse.

And, back to the main question, while I think OpenMSX is a brilliant program Wink I don't really think more than 10* people would ever use it for anything other than MSX clones. That being said, if you want to donate them a hefty sum of money before asking them to make it a bit more compatible to other machines, they might actually do it. Smile (Disclaimer: Of course this is not a guarantee, and I am not part of that team.)

By Grauw

Ascended (8384)

Grauw's picture

07-02-2018, 00:49

Not sure money is a factor Big smile, though I’m sure they’d appreciate the donation Wink.

(Personally I only accept donations for my projects if there are no strings attached Tongue.)

By Manuel

Ascended (15686)

Manuel's picture

07-02-2018, 09:37

MOney is not a factor at all. Time is. So, start helping to code, send in your patches!

By TomH

Champion (327)

TomH's picture

07-02-2018, 15:10

Timmy wrote:
TomH wrote:

It's going to be hard to find common ground with arguments like "that game used a method I don't approve of, and the one I approve of is only half as fast"; if that's the level we're debating at then I opt out.

I think it's very clever to have people around you that have strong opinions on 'things'.

I think the opposing propositions have already been well-stated: if video is in memory, 90% of the Z80 instruction set is able to manipulate it. So you have a huge diversity of options, many of which are quite a bit faster than the port instructions. Conversely, keeping the video memory at arm's length gives the VDP sufficient bandwidth for an extra level of indirection, which is the tiles, and the VDP is smarter anyway because it has the extra facility of hardware sprites.

Moving the goalposts to try to disqualify the one thing or the other suggests a conversation that isn't going anywhere.

By PingPong

Prophet (3435)

PingPong's picture

07-02-2018, 20:50

Quote:

I think the opposing propositions have already been well-stated: if video is in memory, 90% of the Z80 instruction set is able to manipulate it. So you have a huge diversity of options, many of which are quite a bit faster than the port instructions.

It is interesting to see that people want the memory mapped option of vram but no one consider that to have the video modes + sprite flexibility of VDP and using the memory mapped schema we need to pay a high price for speed that negatively balance the ability to use the 'full instruction set' of z80. try to think what kind of sacrifice would be imposed to cpu if vdp ram was contended. the vdp does by itself stress the dram in a such a way that there is only one slot of 8us for a cpu access. in a memory contended architecture this mean cpu halted for 8us. Proibitive in terms of cpu speed.

VRAM operations tend to be block contiguos operations on small / medium blocks. So the vdp approach is not so bad as it does appear. there are situations where the msx clearly suffers (for example, wireframe gfx, very small vram accesses not contiguos) but the majority are not the main problem.

Just remember, having contended memory come to a price, sometime high. Let's see for example the c64: there are situations when the CPU is halted for the entire duration of a scanline ( 64us).
Even the Amstrad CPC pay some price, it runs @ 3.3Mhz while clocked @4Mhz. A discrete price.
and you pay this price always even if you do not access vram.

Speccy is the implementation where there is less price, but please note that:
- speccy had the smallest vram allocated for video.
- it does use a tricky way ( and not clean ) to arbitrate accesses, allowing to pay the slowness only on vram chips that phisycally are holding vram.

By TomH

Champion (327)

TomH's picture

07-02-2018, 21:11

"keeping the video memory at arm's length gives the VDP sufficient bandwidth for an extra level of indirection" exactly refers to the price many other micros pay, but the price isn't universal. E.g. there is no such cost on a Vic-20, Oric or BBC Micro, to give 20-column, 40-column and 80-column examples. Though in all three cases it's because the 6502 guarantees no bus accesses during the first phase of a clock cycle, and therefore well off-piste for a 'Z80 big family' talk.

I've no idea why you insist that the Spectrum's solution — providing faster-than-MSX processing in two-thirds of its RAM — is "not clean". As above, this sounds like an attempt at a cheap disqualification. The solution implemented (i) is suitable for cheap mass production; (ii) scaled up to larger memory sizes; and (iii) puts zero burden on the programmer.

Page 3/6
1 | 2 | | 4 | 5 | 6