View Single Post
Old 14 October 2017, 03:32   #304
TuRRIcaNEd
AKA Mr. Rhythm Master/AIS
 
TuRRIcaNEd's Avatar
 
Join Date: Aug 2017
Location: London, UK
Posts: 70
Quote:
Originally Posted by zero View Post
Compared to blitting which needs you to wait for the blitter to complete, re-load address registers, calculate shift values and load them, then write the control registers.
But the whole point of the Lotus method was that the CPU could be set to calculating the next line of the triangle (quite tricky maths for the humble 68k to do quickly as I understand it) while the blitter did the drawing work on the current line. I guess what I'm trying to say is that you may be right that the method for each individual drawing operation might not necessarily have been the most efficient, but it certainly used a "big picture" approach for all of the operations combined to be as efficient as possible.

Quote:
And do the colour palette changes, the same as my scheme. And on multiple bitplanes if you want grass/road/road markings.
Nope, you can do the sky (minus the horizon/background bitmap), the grass, road and markings with a single bitplane image using the copper's ability to palette switch every 4px, plus alternating the overall palette every few scanlines.

[I have some images which demonstrate how this works, but I need to ask the permission of the person who gave them to me]

Quote:
...assuming you use dual-playfield to avoid having to share bitplanes with objects.
I reserve the right to be wrong, but if I understand things roughly correctly I think dual-playfield mode is a bit too restrictive for this application, and here's my thinking... In dual-playfield mode, we're talking two playfields with 3 bitplanes (i.e. 7 colours + 1 transparent) each. This has quite a bit of potential in terms of nifty side-scrolling and parallax tricks, but it has the drawback of keeping each playfield's palette in a silo (i.e. neither playfield can access the other's palette).

Because the sky/grass/road/markings can be done in a single bitplane using copper palette changes, my feeling is that this makes using one playfield for the sky/horizon/road and the other for objects impractical, as the theoretical foreground (object) playfield needs to display the player's Ferrari, the traffic and the roadside objects and would thus require significantly more palette entries available than the background playfield.

From an aesthetic standpoint, I don't think I can remap the Ferrari into less than 7 palette entries without compromising the look-and-feel more than I'd like to. Admittedly using 7 palette entries for a single object sounds somewhat wasteful on the face of it - but on the one hand that sub-palette contains black (universally useful elsewhere), light grey (certainly re-usable) and 3 red/pink shades which could also probably be pressed into service elsewhere on the screen. If worse came to worst, the vast majority of the time those colours aren't required until about Y-co-ordinate 175 (or thereabouts) and you could poke them in with the copper at that scanline - though this would make the high-speed crash animation (where the car is drawn vertically above that line) a bit of a headache.

In general I'm thinking roughly along these lines - single-playfield 4-bitblane mode, with COLOR00 and 01 used for the sky/road/markings, 02 through 09 used for the Ferrari (including the black and light grey which can be used extensively for other objects), 10 through 12 for roadside objects and 13 through 15 for the traffic. I'm hoping to use sprites for the HUD and the couple in the player's car, which will use various combinations of COLOR16 through 31.

Admittedly I haven't worked out the best way to deal with the horizon graphics yet, but frankly we've got many bridges to cross before that becomes a showstopper!

Quote:
And for the next frame you have to clear at least part of what you previously copied if you have hills.
Using a variant of the Lotus method you're redrawing the whole frame every time anyway.

Quote:
Oh, and while the blitter is running the CPU is losing memory access slots to DMA, and the blitter isn't available to draw objects.
Two passes - one for the road, the other for the objects.

Obviously if anyone can spot any gaping flaws in my approach, please tell me!
TuRRIcaNEd is offline  
 
Page generated in 0.04299 seconds with 11 queries