English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 21 April 2011, 22:49   #1
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
Display register experiment problems...

Well, I'm experimenting changing the display window registers to create 'wipe' type of effects and I think I've bashed up against the limit of my knowledge

It pretty much works, and thanks to some earlier tips, I've fixed (bodged, probably), a major display glitch I was having - but there are some niggly little glitches and jerking in the display that I have no idea how to fix.

It would be brilliant if one of you gurus could take a look at my efforts and give me a clue as to what I need to look at.

I suspect that it may be due to my lack of knowledge in how the display is written and some sort of timing issue, although to be honest it may well be just my crappy coding! I dunno anymore.

I kinda feel like I've just given up, and in a way I have, but I really just can't think of what to do next, and a little input of expert knowledge could help me move on to the next level.

Cheers chaps.

Last edited by Jherek Carnelia; 29 April 2011 at 11:31.
Jherek Carnelia is offline  
Old 22 April 2011, 16:50   #2
Leffmann
 
Join Date: Jul 2008
Location: Sweden
Posts: 2,269
Can't get it to assemble with my old include files, DOSCALL and other macros are missing. These include files always were a complete mess, and there are several sets floating around with various modifications. What assembler, include files and tab size are you using? Maybe you could just describe the exact effect you're looking for, and someone might know a good way of achieveing it.

Last edited by Leffmann; 22 April 2011 at 16:56.
Leffmann is offline  
Old 22 April 2011, 19:42   #3
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
Bah! Can't even upload something that works

Okay, I've attached an executable (with gfx files) that hopefully will work, and show what I'm trying to do.

I've also attached my includes if anyone wants to try and assemble with them

Last edited by Jherek Carnelia; 29 April 2011 at 11:31.
Jherek Carnelia is offline  
Old 22 April 2011, 20:11   #4
Lonewolf10
AMOS Extensions Developer
 
Lonewolf10's Avatar
 
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
Just tried your executable version with various setups and couldn't get it to work. What is your exact configuration (e.g. OS version, CPU, RAM etc.)?

It's loading (I can see available memory dropping and not going back up again) and appears to do nothing.


Edit: Am looking at your source code now and trying to assemble it. However it is missing include "utilsV1.1.s" (unless that is a typo). Tried with "utilsV1.0.s". Some routines appear to be missing (e.g. waitline_to_end) when assembling with case sensitive off. With case sensitive on multiple symbols are defined twice.


Regards,
Lonewolf10

Last edited by Lonewolf10; 22 April 2011 at 20:31.
Lonewolf10 is offline  
Old 22 April 2011, 22:08   #5
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
My crystal ball says it is DIWHIGH calculation problem, I didn't bother to check it because the code is unnecessarily complex and has too much code duplication, sorry

Better use simple WORD sized displaystart and displaystop variables and only calculate DIWSTRT/DIWSTOP/DIWHIGH values in UpdateDisplayRegisters. (no unnecessary bitshifting or masking anywhere else)

Also make sure you update all above registers at the end of field (but before line zero!) because DIWSTRT/DIWSTOP are "immediate", for example if you are going to set vertical start to line 256, write 0 to DIWSTRT vertical position during line zero will immediately match, following write to DIWHIGH won't "cancel" it.
Toni Wilen is offline  
Old 22 April 2011, 22:58   #6
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
@LoneWolf

What a plonker I am i attached the wrong file. I've attached the right one now...
The config is a basic A4000, nothing fancy. Attached as well.

@Toni

Hmm. I need to think about what you suggest - I don't fully understand it

(You're right that there is a lot of duplication - I don't want to remove that redundancy until it works, and then I'll simplify it - if I ever get it working, that is!)

Last edited by Jherek Carnelia; 29 April 2011 at 11:31.
Jherek Carnelia is offline  
Old 23 April 2011, 01:39   #7
Lonewolf10
AMOS Extensions Developer
 
Lonewolf10's Avatar
 
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
The good news is that with your A4000 config I was able to run your executable
A quick rundown of what I found (numbers indicate picture number):

1 - no glitch
2 (machine) - "glitches" at what I think is your waiting point ~line 250? *
3 - as 2
4 - glitches 1/4 way through opening - horizontal calc out of sync for 1VBL. You need to check your DIWSTRT & DIWSTOP values.
5 - glitches on opening - horizontal calc out of sync for 1VBL. Same as 4.

* I believe it's your waiting point, as the scanlines below this point are 1 pixel wider/smaller on either side than the scanlines above it.



You are clearly using WinUAE (or UAE). Did you try going to the "display" option and adjusting the frame rate? I ran your program a few times noting roughly when it glitches. Then I ran it again, adjusting the FPS down to 1FPS just before the glitches occur. That is how I can see what is happening.


Regards,
Lonewolf10

Last edited by Lonewolf10; 23 April 2011 at 01:44. Reason: Added explaination of "waiting point".
Lonewolf10 is offline  
Old 23 April 2011, 13:32   #8
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
Quote:
Originally Posted by Lonewolf10 View Post
The good news is that with your A4000 config I was able to run your executable
A quick rundown of what I found (numbers indicate picture number):

1 - no glitch
2 (machine) - "glitches" at what I think is your waiting point ~line 250? *
3 - as 2
4 - glitches 1/4 way through opening - horizontal calc out of sync for 1VBL. You need to check your DIWSTRT & DIWSTOP values.
5 - glitches on opening - horizontal calc out of sync for 1VBL. Same as 4.

* I believe it's your waiting point, as the scanlines below this point are 1 pixel wider/smaller on either side than the scanlines above it.



You are clearly using WinUAE (or UAE). Did you try going to the "display" option and adjusting the frame rate? I ran your program a few times noting roughly when it glitches. Then I ran it again, adjusting the FPS down to 1FPS just before the glitches occur. That is how I can see what is happening.


Regards,
Lonewolf10
Thanks Lonewolf. Good tip about the FPS slider. Back to the drawing board, I guess.
Jherek Carnelia is offline  
Old 23 April 2011, 16:17   #9
Lonewolf10
AMOS Extensions Developer
 
Lonewolf10's Avatar
 
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
Quote:
Originally Posted by Jherek Carnelia View Post
Thanks Lonewolf. Good tip about the FPS slider. Back to the drawing board, I guess.
No problem. I only discovered it myself a few months back. Very useful for debugging glitches.

I have spent a few hours looking at your code and couldn't find the cause of the glitch.


Regards,
Lonewolf10
Lonewolf10 is offline  
Old 23 April 2011, 19:33   #10
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
Quote:
Originally Posted by Lonewolf10 View Post
I have spent a few hours looking at your code and couldn't find the cause of the glitch.


Regards,
Lonewolf10
Wow, Thanks for trying. It's a very annoying thing
Jherek Carnelia is offline  
Old 07 May 2011, 15:00   #11
Lonewolf10
AMOS Extensions Developer
 
Lonewolf10's Avatar
 
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
Quote:
Originally Posted by Jherek Carnelia View Post
Wow, Thanks for trying. It's a very annoying thing
I agree.

Did you manage to fix it in the end?


Regards,
Lonewolf10
Lonewolf10 is offline  
Old 07 May 2011, 22:40   #12
Jherek Carnelia
Dazed and Confused
 
Jherek Carnelia's Avatar
 
Join Date: Dec 2001
Location: portsmouth/uk
Posts: 242
No. I've put it aside and moved on to other things. I'll go back to it later.
Jherek Carnelia 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
Amiga CD32 Display problems Chiptune support.Hardware 16 17 February 2011 05:13
Display Problems on A1200 campbl2 support.Hardware 6 26 May 2010 21:12
Display problems ginge73 support.Hardware 8 20 July 2009 10:21
Display Problems with WinUAE 0.9.92 Lorday support.WinUAE 5 19 February 2005 00:08
Having problems with wunuae display Ryan15UK_Dex New to Emulation or Amiga scene 1 13 March 2003 19:38

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 15:40.

Top

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