English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 22 September 2015, 14:18   #1
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
Mid-line bitplane pointer change?

Are there any gotchas in changing the bitplane pointers midway through the playfield? Apart from the fact that it takes 8 lowres cycles and you get all kinds of trouble with syncing up the content.

I am trying to change the low word of 4 bitplanes in the middle of the screen, but it seems like one of the bitplanes is ignoring all my efforts. I see the copperlist keeps setting the pointers (I keep them static so it should be bars down the screen). I feel like banging my head against the table...

Could it be an issue with WinUAE(cycle exact - man how slow that was...)?
NorthWay is offline  
Old 22 September 2015, 14:30   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
I guess you triggered Agnus undocumented feature: write to DMA pointer register gets ignored if following cycle does DMA access using same DMA pointer register.

Same happens with other DMA channels too, for example sprites, and there are demos that, as usual, accidentally depend on it..
Toni Wilen is offline  
Old 22 September 2015, 15:35   #3
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
Aha! That was it. I swapped bp1 and 3 order around and it behaved.

Now to see if I can make a general mid-line update work in general. Does scrolling offset affect any timing?

Oh, and how does AGA timing really work? Will 8 bitplanes grab all 8 timing slots consecutively and then take none for the next 24 (in 32-bit double acces mode)? I.e. are you locked out of such a mid change for 4 timing slots if you run into bitplane access?
(Or does it care at all about pointers until it has dumped 64 pixels?)
NorthWay is offline  
Old 22 September 2015, 15:51   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by NorthWay View Post
Aha! That was it. I swapped bp1 and 3 order around and it behaved.
Most obvious reason and fix

Quote:
Now to see if I can make a general mid-line update work in general. Does scrolling offset affect any timing?
No, scrolling still works normally.

Quote:
Oh, and how does AGA timing really work? Will 8 bitplanes grab all 8 timing slots consecutively and then take none for the next 24 (in 32-bit double acces mode)? I.e. are you locked out of such a mid change for 4 timing slots if you run into bitplane access?
(Or does it care at all about pointers until it has dumped 64 pixels?)
Yes. All bitplanes are fetched using exact same cycle diagram as in OCS/ECS (+2 extra planes in previously unused slots if 7/8 planes), then comes all idle cycles, if any.
Toni Wilen is offline  
Old 23 September 2015, 13:28   #5
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
How hard can it be to get this right?

I have tried waiting for a position that is a multiple of 4 and then change 3, 1, 4, 2 wait for end of line and repeat it all. The idea was to change 2 pointers in one fetch and 2 in the next. I was intending to put a sprite over the gap where they were out of sync.
I am messing this up in every which way possible it feels like.

Are there any demos/intros/games out there that does this that I can take a look at?
NorthWay is offline  
Old 23 September 2015, 17:09   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Try using "dma debugger" to see exactly which cycles are used. "v -1" in debugger to enable it, then you can use "v <vpos> <hpos>" to show selected scanline's cycle usage. (hpos is optional parameter)

I don't know any programs that only change pointers mid scan line but there are few programs that change pointers and resolution mid scanline:
- Innovation Part 2 by Axxis
- Disposable Hero title screen (game)
- Party Report by Escape & Outlaws
and probably more I don't remember anymore..
Toni Wilen is offline  
Old 24 September 2015, 23:42   #7
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
Quote:
Originally Posted by Toni Wilen View Post
- Party Report by Escape & Outlaws
Do you have a config to make it work? With 3.1.0 it seems to be messing up for me.
NorthWay is offline  
Old 25 September 2015, 02:21   #8
ReadOnlyCat
Code Kitten
 
Join Date: Aug 2015
Location: Montreal/Canadia
Age: 52
Posts: 1,178
Quote:
Originally Posted by NorthWay View Post
Do you have a config to make it work? With 3.1.0 it seems to be messing up for me.
Did you get a chance to test it on a physical kitten?

I wanted to test mid-screen bitplane pointers change as well for quite a while but never got a chance to so I might (*) run a test this week end. However this is going to be A500 only 'cause my 1200 is still in my parents's attic.

(*) it is hard enough for me to keep focused on my current project so I do not want to make a promise I cannot keep.
ReadOnlyCat is offline  
Old 25 September 2015, 09:24   #9
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
4000 is sick, 3000 smells of wee (sign of dead capacitors), 2x 2000 at my mom 1800km away and lacking powersupplies. So, no. I don't think that will change for a while either.

(And the prices for a used 1000 is a joke - not paying that much however nice I think it is.)
NorthWay is offline  
Old 25 September 2015, 19:11   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by NorthWay View Post
Do you have a config to make it work? With 3.1.0 it seems to be messing up for me.
Always use basic A500 quickstart config when running demos. Any other random "sort of A500 compatible" config is unacceptable.

(works for me)
Toni Wilen is offline  
Old 26 September 2015, 13:45   #11
ReadOnlyCat
Code Kitten
 
Join Date: Aug 2015
Location: Montreal/Canadia
Age: 52
Posts: 1,178
Quote:
Originally Posted by NorthWay View Post
4000 is sick, 3000 smells of wee (sign of dead capacitors), 2x 2000 at my mom 1800km away and lacking powersupplies. So, no. I don't think that will change for a while either.

(And the prices for a used 1000 is a joke - not paying that much however nice I think it is.)
I see.

Regarding the 3000: store it top down, this way the caps won't leak on the motherboard at least.

And this reminds me I must check my Saturn as well because it too started to smell like cat pee when I was playing last week.
ReadOnlyCat 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
Wanted Pyro-Mid vitux support.Games 9 20 September 2019 01:23
Hi, Just started my Amiga mid life crisis!!! pinchez Member Introductions 9 02 December 2011 14:18
Classic DOS or Windows games since mid-90s antonvaltaz Retrogaming General Discussion 45 09 October 2010 10:11
How to change Mouse Pointer in AmigaSYS4 fitzsteve support.Apps 8 26 August 2010 16:21
bitplane modulos bluea Coders. General 0 09 July 2006 01:58

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 00:42.

Top

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