Thanks Manuel. Should not cause it to crash anyway. Everything is done within 1 frame. Faster Z80 just makes it run more in idle (halt).
Can the game handle the situation that processing takes longer than 1 frame? Note that the turboR interrupt routine is quite heavy (but not sure whether you still call it).
the game runs in IM2.
If it would take more than an interrupt, there will be some flickering at the top of the screen. The only time this might occur is when the score is display (or the game over text).
I've run it on a emulated Turbo-R at full speed for some time, but did not experience crashes.
I wonder if somebody else can do testing on real hardware. Could be this particular Turbo-R has some hardware problem.
In 60Hz i experience this flickering at top of screen during PSG selection in main menu, in 50 Hz no flicker and no crashes during gameplay.
Is this flickering occuring when running from EPROM, Megaflashrom or from ram with Sofarun?
See: https://youtu.be/Ho87PbmYNis
This is openMSX running a GT, which shows timing by changing the border color:
yellow: idle
green: game logic/drawing
red: music/sfx
purple: screen buffer dump
There is no way flickering should occur. I have more than enough "idle" time. I am guessing you are running from a slow rom somehow and it messes with timing of the Turbo-R.
Since it is not reproducible on OpenMSX, there is nothing I can do. I can send you the debug version, maybe you can make a video of the timing?
I did some tests on my TR ST with a GR8NET and SofaRun, and it detects the ROM as Linear. But after starting it I see the nop logo in the top of the screen and it resets. This was in Z80 mode, when I run it in R800 ROM mode, the game works but i'm missing the top of the screen (let say first 40 lines), it's just black (intro) or yellow (in the game). This was with 60Hz, with 50Hz game still resets in Z80 mode, but in R800 ROM mode it works and also the top of the screen is working.
Did some testing with OpenMSX and sofarun (ram mode):
Turbo-R in Z80 mode: https://ibb.co/4JkzGkg
Turbo-R in R800 mode: https://ibb.co/vkkWBxb
Seems the R800 mode slows down VRAM write with factor 2-3?
Yes the turboR has a heavy penalty on VDP access in R800 mode. It enforces I/O to ports 98H-9BH to be spaced 54 cycles (@ 7.16 MHz) apart by inserting waits. This seems a bit more than strictly necessary; I guess they had their reasons. The wait is adaptive; if you do something else between the I/O, the wait is reduced accordingly, so use that to your benefit.