Welcome, Guest. Please login or register.

Author Topic: Double buffering of WB?  (Read 2979 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Double buffering of WB?
« on: January 17, 2006, 07:48:28 AM »
@Minuous

Quote
However although it is smoother, it is just as slow as it was before. Even though the Amiga shouldn't be having to redraw the display every time I change a pixel (since I'm now using an offscreen bitmap).

The draws are taking about 5 seconds per frame in 16-colour OCS 320x256 mode (in cycle-exact mode). I'm not using scrolling or anything. It needs to be fast in cycle-exact mode so it is fast on real Amigas, and so UAE users don't have to fool around with their settings just to run my emulator.

No real 7MHz 68000 Amiga can do this either.

Quote
Obviously it must be possible to do fast smooth graphics under OCS, as all the vintage Amiga games (eg. Hybris, Shadow of the Beast, etc.) do it, but I'm mystified as to how they can run perfectly under UAE at A500 speed but my emulator is crawling at fastest possible speed!?

These classic games use scrolling (poking bitplane shift regs + bitplane pointers + only updating the newly visible (well actually it's typically insvisible) area by blitting in new, precalculated/drawn gfx). They also use sprites and/or bobs to update only part of the display. They do NOT update whole 320x256x4 at once, esp not pixel at a time. It's just not possible with the std 68000 Amiga.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Double buffering of WB?
« Reply #1 on: January 17, 2006, 08:30:54 AM »
@Minuous

AWin is a one unmaintainable spaghetti code. It certainly isn't modular, so you'd need to separate all the blitting code from it, which again would mean rewriting large parts of the code.

While AWin contains some rather advanced and fast code, it surely isn't good programming example. Sorry. :-)