Livingstone II

Por PingPong

Prophet (3758)

Imagen del PingPong

11-06-2021, 22:51

There is a ZX Spectrum conversion of Livingstone II.
While i've found a lot of isometric zx spectrum games converted to msx2 with some success i was wondering
if anyone knows the reason that no one ever attempted a similar conversion on "Livingstone like" game.

Maybe the way they did sw sprites on zx spectrum is the limiting factor?
or it is hard to reverse engineering this kind of games?

Livingstone II is rather slow and i think even with V9938 sw sprites the frame rate would be no worse than the zx spetrum conversion.
On the other hand a msx1 version with hw sprites appear hard due to bigger sprites.

Login sesión o register para postear comentarios

Por gdx

Enlighted (4693)

Imagen del gdx

12-06-2021, 02:59

ZX Spectrum manages its VRAM differently. It has no sprite and VRAM is shared with the RAM. Converting a game that uses RAM directly and often to make animations can become quite slow on MSX. In addition, the ZX-Spectrum uses a trick to speed up RAM access. To do it properly, you would have to rewrite the game in a way that is suitable to the MSX architecture.

Por TheKid

Paragon (1189)

Imagen del TheKid

12-06-2021, 10:48

I think none atrempted it, because there already is a msx version of livingstone 2 for the msx.

Por gdx

Enlighted (4693)

Imagen del gdx

12-06-2021, 11:33

It's a conversion from th ZX Spectrum version. That's why it's slow.

Por PingPong

Prophet (3758)

Imagen del PingPong

12-06-2021, 11:47

what is the trick specifically?
Because of the shared VRAM i think sprites are done with LDIR or LDI instructions + the overhead of trasparency management.

Maybe the v9938 could do in decent manner the same.

the typical management used in sw sprites is:
1) Save the background
2) Plot the sprite pixels with transparency management + (eventually) attribute color support
3) Erase the background
4) GOTO 1

I do not know how efficient are those zx spectrum routines, the pro to ZX are:
- Less memory size to manage
the cons are:
- you program the cpu to do the thing, every operation on a single /byte pixel get the overhead of fetch/decode time, the VDP acts more like a SIMD approach, it does not need fetch/decode steps only the execute.
- you need to calculare memory addresses and this cost time of precious cpu time

So my question is how this is balance between the two? Is the increased VRAM size enough to compensate the smaller vram size on ZX and the time you waste in calculations and sprite routines?