Just some quick notes without testing etc.
You'll have to remember that a real Amiga (I assume you mean an Amiga with 68k CPU and slow graphics throughput) is from a whole different world compared to a modern PC, and such an Amiga has a hard time outputting fullscreen chunky graphics at good framerates. Your display is even bigger than a standard lores Amiga display.
You'll have to minimize all graphics drawing operatios and math calculations needed to do on each frame.
Real-time sin/cos calculations are a no-go, which you have already taken into account by creating a cos table, good. Also multiplies and divisions should be avoided as far as possible.
But then you are outputting scalable vector fonts on each frame with TextOut()
, which includes very heavy calculations for a 68k CPU. It would be better to pre-render each character as a brush first, because displaying a character would only need copying the brush pixel data into the display without complex math then. I'm not sure if TextObjects would do the same by pre-rendering texts... maybe.. and you are actually creating TextObjects there, but you don't use them anywhere yet. You should use DisplayTextObject()
to show them instead of TextOut()
. And you create a TextObject for each character in your scroll-text, which would be wasteful with longer scrollers. Maybe it would be better to create a TextObject for each alphabet and then use those accordingly.
Also don't render the whole text for each frame, just render those characters that are on display currently.
And finally, don't clear the whole display with Cls()
, just clear the areas that have changed, because why would you want to write data over and over again when it's not changed? The easiest would be to clear the whole scroller area, which would probably reduce the clearing data to 1/10th in your case, but even more efficient would be just to clear the previous text outputs (character dimensions). Or just use sprites for characters and Hollywood does the optimal clearing for you automatically then.
Then, if opting for original Amiga chipsets instead of RTG graphics, I don't know if new palette modes for displays would be better... but I haven't made any tests with them yet...