Fray: MSX2 vs TurboR

Page 2/2
1 |

By PingPong

Prophet (3737)

PingPong's picture

12-07-2021, 19:48


With a command completion interrupt you could queue up copies so that the CPU doesn’t need to stall waiting for the VDP, the VDP can empty the queue while the CPU is processing unchanged tiles, so it can use both the CPU and VDP reasonably optimally. And when the CPU is done it could move on to other tasks while the VDP is still running. Although there’s still a cost to queueing as well as interrupt handling, a command completion interrupt would make CPU-VDP parallelisation much easier.

A queue is not infinite. maybe you could reach into a situation when the cpu fill (and then will stall) of vdp commands while the VDP is still too busy.
Plus, the cost of managing de queue/dequeue plus some other management tasks like synchronizations with frames and logic adds complexity.

An interrupt is un impredicable event and you need to carefully take into consideration. It is more like a race condition in MT environments.

Spreading the VDP polling is not so desiderable.
Things could be different if the vdp could execute a list of commands by fetching, for example the 15 bytes of a command automatically from VRAM, but this is dreaming.
A thing that could be done using the spreading approach would be to replace the call nc, etc. with some RST instructions being maybe speculative and judging if, when a RST is executed if the z80 should return with or without executing the vdp command. If there is a lot of probability that some RST results in VDP command, maybe it worth the cost of a RST /RET pair. Otherwise, a lot of jump/return will also waste time

By Samor

Prophet (2098)

Samor's picture

21-07-2021, 11:29

Is there a patch for 7mhz Z80's like with Illusion city? Or is it not possible for this game?

By Randam

Paragon (1322)

Randam's picture

21-07-2021, 13:12

There is a program on the turbo r version for turbo enabled msx2+ computers. If I remember it correctly there was a special program on the disk for it and you needed to hold down T while booting. I think Microcabin didn't guarantee it working fully.

7mhz z80's? I think I would try that option first...

Page 2/2
1 |