English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Language

 
 
Thread Tools
Old 11 January 2014, 10:06   #1
Coagulus
Gets there in the end...

Coagulus's Avatar
 
Join Date: Sep 2005
Location: Wales
Posts: 624
scrolling jumps with Displayadjust

Hi,

I'm trying to up the fetchmode in JetHunt

I have the following display set up

InitCopList 0,34,192,$10000¦$08¦$10¦$20¦$400¦$2000,8,256,-4
DisplayAdjust 0,-4,8,-8,16,-16


DisplayAdjust syntax is Coplist,fetchwid,ddfstrt,ddfstop,diwstrt,diwstop

I have horizontal scrolling but with the above settings, although I get a huge speed increase, when scrolling the playfields jump left or right every 16 pixels of scrolling (I think it's 16, the jump makes it hard to tell)

do I have to scroll in a special way, or have I got the values wrong?

Coagulus
Coagulus is offline  
Old 11 January 2014, 13:11   #2
Bastich
Registered User

Bastich's Avatar
 
Join Date: Jul 2011
Location: UK
Posts: 328
Long time since I did any Blitz Basic 2 so I can't really help. I do have the manuals etc (not for sale) if you want anything looked up however.
Bastich is offline  
Old 11 January 2014, 14:03   #3
Coagulus
Gets there in the end...

Coagulus's Avatar
 
Join Date: Sep 2005
Location: Wales
Posts: 624
Quote:
Originally Posted by Bastich View Post
Long time since I did any Blitz Basic 2 so I can't really help. I do have the manuals etc (not for sale) if you want anything looked up however.
I've got all the manuals, they don't help. I think this is a general question. Basically I've shrunk the display by adjusting fetchwid,ddfstrt,ddfstop,diwstrt and diwstop but in doing so this makes horizontal scrolling (even just incrementing the x start point of the screen by 1 at a time upwards) jump every 16 pixels or so.

Is there something I have to do, eg. do I need to increment x up to 16, then add 16, then increment another 16 etc?

Coagulus
Coagulus is offline  
Old 11 January 2014, 16:19   #4
leathered
Registered User

leathered's Avatar
 
Join Date: Oct 2011
Location: UK
Age: 42
Posts: 304
There's really not a lot to go on in the manuals. AFAIK fetchmode $1000=bits 0 and 1 of FMODE set to 01 respectively. I believe Fetchmodes 1 & 2 of Blitz switch between 01 & 10. They are supposedly the same speed wise but affect the display differently ( I cannot say how or why). $1000 always seems to be better.
I think if you can rule out the fetchmode misbehaving you'll get the display results you're after.
A bit of extra info here.
http://www.mways.co.uk/amiga/howtocode/text/aga.php

EDIT:
http://eab.abime.net/showthread.php?p=932786#post932786 post 153+.

Last edited by leathered; 14 January 2014 at 00:39.
leathered is offline  
Old 16 January 2014, 12:47   #5
leathered
Registered User

leathered's Avatar
 
Join Date: Oct 2011
Location: UK
Age: 42
Posts: 304
I've put together about all the info I've found on how the Blitz implementation of this works, whether it’s correct or not. Information re. the display width is there in the HRM obviously. But as Coagulus said, the Amiga display is something of a general Amiga topic, what’s slightly less general is the way it gets treated in Blitz. There is some good information by Ted Bailey in the disp_adj.bb2 from one of the Blitz BUMs, but I’m fairly sure some of the info is wrong.
Hopefully now if this info is incorrect it will stand out to somebody and we can get it right.


Normal display fetch per line is 40 bytes for low res 320 width. This is important as the command takes this as its starting point.

Fetchwidth is a Blitz parameter denoting the number of bytes you are adjusting the display by. This is the result of the settings you put into DDFSTRT and DDFSTOP which is then used to alter the 40 byte normal display width.
Fetchwidth along with DDFSTRT and DDFSTOP are the most important in getting a display to work.

DDFSTRT & DDFSTOP set offsets from the normal display width. Here each byte is represented by 4.
(not 8 like Ted's bb2 example)

Fetchwidth: -8. See below; display width lowered by 8 bytes.

DDFSTRT: 16 = start data fetch 4 bytes later.
} = 8 bytes less than normal
DDFSTOP: -16 = stop data fetch 4 bytes earlier.


DIWSTRT: 32 = display window start position. 2* resolution of data fetch.
} = 64 pixels less
DIWSTOP:-32 = display window stop position. 2* resolution of data fetch.


Change DIWSTRT to 16 and DIWSTOP to -16 and you get a display 32 pixels wider, although the fetch remains the same, showing where the 'clipping' occurs.

The above settings are the same for fetchmodes 0 & 1, which is not always the case. I’ve found that when increasing the fetchmode, the standard display settings (without touching DisplayAdjust) offer the best compromise between display size and number of sprites, you only need use displayadjust if you’re going for overscan or need more sprites with smooth scroll enabled. This surprised me and was not how I remembered it, I think because I was always looking for a display with more sprites.
leathered is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
help with blitz basic displayadjust Raislin77it Coders. Tutorials 3 19 June 2018 13:57
Legend of Faerghail: Titlemusic 'jumps' lomaxx support.Games 1 03 December 2013 02:15
Mouse jumps around chaotically LaurenceV support.WinUAE 11 18 November 2011 15:19
Mouse pointer jumps to centre of screen ral-clan support.WinUAE 0 30 January 2011 03:41
Advice on interrupts and jumps alexh Coders. General 11 20 May 2008 10:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 04:03.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.06298 seconds with 15 queries