My initial scrolling concept demo was an early implementation of Malaika's engine and, as Malaika,3x transfers.
OK, i've done some experiments about scrolling. Let's me explain.
I start with pure screen 2 and i have all the tiles loaded, changing only the name table.
I start in the leftmost position say, x=0 (charater position,not pixel position)
Every 8 pixels scroll (my example is only forward scrolling but can be adapted), i reload the same table as in position x=0, only shifted 1 char left. Plus i redefine the changing tiles (because of the scroll the in-going tiles from right maybe are new shapes).
With the dvik patterns i've found that during scrolling only 1 to 5 tiles must be redefined, and some tiles became unused because they go out of screen.
The point is that instead of redefine 100 char tiles, i only redefine the new tiles that are from right to left.
In the worst case an entire column of tiles (24) need to be redefined, however pratice showed me that only 5 tiles can vary between physical name table scrolls.
The z80 have all the info to quicly modify only the tiles needed, because the work of determine witch tiles change is done on a PC that takes a full map bitmap image, scan this and generate tiles info.
Thus every name table scroll, the z80 overwrite the unused tiles patterns and colors with the new from right, and do also the name table scroll
There is an advantage:
You do not need to keep all the tiles of an entire map to a maximum of 64 different tiles. Only at a specific x charater value you are costrained to 64 tiles. when the screen scroll, new incoming tiles (24) will substitute the tiles that are unused.
Of course the n. of tiles on every screen *must be* less or equal to 64, but the number of tiles in the global map is unlimited.
Pratically, during scrolling, when a tile is unused, is replaced by a new tile that comes on screen because of the scroll.
In my example, because of the limited amount of tiles involved i also change colors, not only patterns.
There is a diadvantage:
When designing the map you must ensure that the number of different tiles never exceed 64.
For example if you use all 64 tiles at x=0 and for x=1 you have 3 tiles that become unused and 5 that became new, you end up with 64 - 3 + 5 =66 tiles. Not good. However this was (with dvik tiles) never happened.