Haha, great looking.
But this look only like a darkness filter, I would have faded the BG to the color of the unit (grass/green > dark/red), far more impressive for a sega genesis...
For the speed problem, umm....
-Do you reset the sprite VDP control pointer each time you inject a tile/sprite?
For a game like that, I would have worked in RAM, and then DMA sprite list to VRAM to get more speed.
-When u scroll, do you refresh only the plane borders or the whole plane?
(I can send u the code i use in tavern rpg, only redraw line/line while scrolling on a 64*32 tile plane).
-Do you store all sprites animation in vram or just DMA'te the correct tiles each animation step and for each sprite?
-Do you step your process in priorities?
(joypad each frame, HW scrolling each frame, animation each 4 frame, IA each 4 frames, Soft. scrolling each 4 frames, timings/others crap each 4frames....)
IF you do ALL ur stuff each frame, its sure that a 8mhz cannot support 4-5 units on screen.
😀 Good luck, great great!