1) The MSX has to convert a linear bitmap to tiled bitmap format
If done right, that doesn't affect much. You'll just do something like this, for every "character" on the screen:
But do the math. On an MSX2, where you could take advantage of the extra VRAM bandwidth, the routine you propose is roughly 50% slower than one that uses an unrolled OUTI loop.
This means that the amount of cycles to transfer a single bitmap frame raises from 119424 cycles to 177408 cycles.
In PAL mode (the majority of speccy games are PAL), there are 71591 cycles/frame available on the MSX. So this is quite a performance hit just to transfer the frames. IOW, it brings the MSX2 down to nearly the same VRAM transfer rate as the MSX1. And none of this has to do with the VRAM being accessed by I/O ports.
2) The MSX has an 8x bigger color table, as you mentioned
Yes, but most of these spectrum games don't update the color table for every frame, anyway.
Even if they update it at 1/8 of the frame rate of the bitmaps due to the smaller resolution, having 8x more data would nullify that optimisation.
Yazzie is very nice!!Thanks for releasing it for free!
This is technically almost incredible:
https://www.youtube.com/watch?v=IKOlaWAX1Gg
They plot multiple colors per tile using cycle accurate code....
A sort of screen 2 done in software as it were an Atari 2600...
Nirvana Engine games is a previous multicolor engines generation. Nowdays we have a multicolor with smooth scrool at once.
https://youtu.be/P4F4XVbnNDY
https://youtu.be/4rHJEpqoH3A
One day i'll found a way to port it to msx1, hopefully :)
Greetings! ZX games look incredible with your engines. One wouldn't even say they are running on a ZX spectrum
About an msx port, it would allow a direct port of ZX games and would resort to screen 2/4 (better if in hybrid mode)
Nirvana Engine games is a previous multicolor engines generation. Nowdays we have a multicolor with smooth scrool at once.
Wow! That's magic! Some kind of Voodoo!
1) The MSX has to convert a linear bitmap to tiled bitmap format
If done right, that doesn't affect much. You'll just do something like this, for every "character" on the screen:
But do the math. On an MSX2, where you could take advantage of the extra VRAM bandwidth, the routine you propose is roughly 50% slower than one that uses an unrolled OUTI loop.
Even so, in practice it's not much worse compared to the Speccy. Even in Speccy updating the whole screen from the offline buffer is too slow, so typically these games update only 2 / 3 of the screen.
Gluf seems to work with nearly full-screen action, an impressive feat!
I've some doubts about being 100% doable in MSX1, seems too much info to move on the screen without being penalized by the wait cycles and VDP access...although being so great the areas of color to be updated, would be probably less VRAM pointer to update, a bunch of timed outis and here you go.
In Any case the msx version would be more slow and msx2 cannot take advantage of the increased bandwidth.
Can anyone tell me the games that started from MSX then were ported to Speccy or C64? I speculate some Konami titles were. Please exclude titles that were released simultaneously on multiple platforms and one that didn't start from MSX eg Nemesis and Circus Charlie. Amiga Metal Gear can be counted :)
King's Valley ZX Spectrum's version
Night Knight C64 version