Tip: take a look at the Road Rash game for the SMS
Comparison with SMS is irrelevant : its enhanced VDP had an additional mode, the mode 4, which gives it almost V9990 capacities. It's way more powerful than an MSX2.
I can suggest memorizing the tiles of the various track configurations and recalling them gradually. Please note that on msx2 you could risk the use of VRAM and gradually copy in the correct area for viewing.
Some time ago I did something like this in screen2. The idea is to just move the tiles and leave the color unchanged in the color table. Playing with the pointers to the color chart I create the effect of speed. The bad thing is that you have to create tiles that accept the same color configuration and possibly use sprites to mask those tiles that need 3 colors.
I can suggest memorizing the tiles of the various track configurations and recalling them gradually
It's impossible. There's too many factors (and therefore combinations) in order to precompute the tiles:
1) the start point of each segment's borders (8)
2) the different slope of each segment's borders (22)
3) the different width of each segment's road strips (16)
4) the change of slope between each segment (176x176=30976)
We're talking here about more than 87 millions possibilities.
Forget about precomputed tiles!
I think you guys do not understand my problem (or maybe I was not clear enough). To simplify things, let's say you have a screen made of 5x4=20 tiles, with an available tileset of 20 tiles also.
+--+--+--+--+--+ | | | | | | +--+--+--+--+--+ | | | | | | +--+--+--+--+--+ | | | | | | +--+--+--+--+--+ | | | | | | +--+--+--+--+--+
You know that, geometrically, the road will not be taking more than 12 tiles , which is OK, because it leaves 8 tiles for the road shoulder. But you do not know in advance where the tiles will be, because it's the rendering engine that will decide. And the only way to draw the road (in bitmap mode) is to fill the screen with the 20 consecutive tiles of the tileset, and let the rendering engine draw the road in the tiles.
+--+--+--+--+--+ | 0| 1| 2| 3| 4| +--+--+--+--+--+ | 5| 6| 7| 8| 9| +--+--+--+--+--+ |10|11|12|13|14| +--+--+--+--+--+ |15|16|17|18|19| +--+--+--+--+--+
But by doing so, you don't know which tiles are drawn, and which tiles are empty. Unless you track them and make a separate list, each time you draw some pixels in them. Let's say you have such a list. Then, the tiles which are NOT in that list will give you the tiles you can use to draw the road shoulders. Which means that the tiles to draw the road shoulder will be different for each frame, and that you will have to fill each one. Doable, but it will probably be sluggish.
At first, I was enthusiastic about SCREEN4 because I thought it gave an efficient approach: you fill the screen first with 4 tiles that will represent the road shoulders, and then you have only to draw those 4 tiles to make the full background for that road.
+--+--+--+--+--+ | 0| 0| 0| 0| 0| +--+--+--+--+--+ | 1| 1| 1| 1| 1| +--+--+--+--+--+ | 2| 2| 2| 2| 2| +--+--+--+--+--+ | 3| 3| 3| 3| 3| +--+--+--+--+--+
But by doing so, you then cannot draw the road tiles in bitmap mode, because you have already decided which tiles are going to be used, and now there's 4 tiles missing from the tileset! You need the full tileset available in order to draw in bitmap mode, because you never know where the road will be.
Change approach. You can use screen 4 as bitmap mode using 4x1 blocks as pixels by filling the pattern definition by 0xF0 and using the colour definition as a bitmap mode of 64x192 pixels.
The perspective and the speed will help you in reaching great visual results (see Formula 99) . Do not use tiles, adapt the code you have in screen 5 to the lower definition. Building the screen will be 4 times faster (the whole screen is 6KB but you need to update about 3-4KB) and you have plenty of pages to load precomputed road frames.
The stone arks here
https://youtu.be/O0OF2gyyXdc?t=74
are precomputed
But you have to admit Atrag, that those blocky graphics are not as nice as his original setup...
Still pretty awesome work! Cool! I like it!
Would it be sacrilege to state that, no matter how hard you try, the MSX1/2/+ simply wasn't made for Outrun games?
I can't recall having seen a g9k attempt though...
How did they do it in WEC Le Mans? That one has hills and corners and trees... And it's MSX1...
But you have to admit Atrag, that those blocky graphics are not as nice as his original setup...
I agree. BTW the blocky pixels could be used for the road ony. The montains in the background could be in full resolution. The other elements (trees, other cars, signs ...) could be sprites.
Comparison with SMS is irrelevant : its enhanced VDP had an additional mode, the mode 4, which gives it almost V9990 capacities. It's way more powerful than an MSX2.
Yes, I know about the mode-4 and, having programming on both VDPs, I beg have a different perception. It's not way more powerful than an MSX2, and does not even come close to the V9990. The Mega Drive VDP would be more comparable.
And I mentioned the MSX2+ for its easier horizontal scroll that won't affect the sprites like on the SMS VDP.
Don't get me wrong, both have their strengths and weaknesses. But there's no unfair advantage on either side.
But what must be said is that European programmers took the most out of the SMS VDP and created impressive games that create this illusion of a much more powerful VDP. Japanese games, OTOH were much more conservative.
But no problem if you don't find it useful. Your demo already looks great, so keep up the good work.