Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
compilador separado
#13
boriel Wrote:Almost none (if any) of the Speccy games work that way. The Z80 on the Speccy run at 3.5Mhz, and it's almost impossible to redraw the entire screen at 50fps.

It's possible to draw 1 or 2 sprites (but by painting the background with pushes) but yes, it's not useful for a game.

boriel Wrote:Mostly games just redraw tiny screen portions, and if the got more than 10fps they were considered Ace games. E.g. Alien 8 runs < 10fps for sure (jump over a platform and you will notice it). Remember screen memory is "contended memory" (slower) than ram above 32767 (32K)

Yes, Operation wolf writes every third frame (16.7fps) and it's pure scroll. Cobra writes every second frame (25fps) but mapping is limited (because sprites are literally pushed (with push instructions) from registers. Both games uses a great portion 80%-90% of screen.

boriel Wrote:The Spectrum 128k allows screen switching with a single out instruction (which can be directly done in ZX BASIC). So I guess the fastest strategy is to predraw both frames and only draw changes in both of them, swiching them with an out. Not sure if any game used this technique, but know there were games which used the alternative screen memory address.

Good idea by redrawing both frames. Commercial games doesn't use that because +2A/+3 were a tiny portion of the market share. But nowdays this has sense. It's the most effective way to avoid flickering. So I think this 3 scenarios are possible:
1. I can redraw the entire screen every 2 or 3 frames. Only page banking is need (an OUT in basic).
2. I only draw parts of the screen (or use sprites without scroll). Page banking with a fast copy of entire/portion (with PUSH/POP) from backbuffer.
3. I draw complex shapes (circles) or some other situation that copying from backbuffer is slower than writes the shape in both buffers.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)