Ultimate Amiga

Network Boards => AMOS Language Discussion => AMOS Factory => AMOS Professional Forum => Topic started by: Umpal on February 26, 2017, 11:05:47 PM

Title: Removing horizontal line between screens
Post by: Umpal on February 26, 2017, 11:05:47 PM
I did not find any tip on how to remove the black horizontal line between two (and more) different screens AMOS Pro puts between. Is there a workaround or it's impossible and has to stay that way?
Title: Re: Removing horizontal line between screens
Post by: SamuraiCrow on February 27, 2017, 10:49:09 AM
Do your own Copper list generation but it is very difficult because you lose most of the Amos commands.
Title: Re: Removing horizontal line between screens
Post by: Sidewinder on February 27, 2017, 03:41:31 PM
My understanding is that the black horizontal line is necessary because of the time required by the CPU to update all the color registers and change the bitplane pointers for the new screen.  The blank line hides these actions, otherwise you'd get some strange graphical artifacts (I'm assuming that these actions are done in an interrupt and that bitplane DMA is halted during this time which is the technical reason for the black line).  But as SamuraiCrow said, if you want to get rid of the line it may be possible if you roll your own Copper List.  If the screen you're switching to doesn't have too many bitplanes/colors to it may be possible to perform all the necessary move instructions in the horizontal blank period after the scanline, although after reading this thread over at EAB (http://eab.abime.net/showthread.php?t=62727), it may require a faster processor.
Title: Re: Removing horizontal line between screens
Post by: Umpal on February 27, 2017, 06:28:04 PM
I understand there is a change in the way the graphics is displayed when showing next "layer" as a different screen. I haven't seen it in others [non AMOS] productions so I assume it is achieved by the method SamuraiCrow mentioned. But how about that line that is over the mouse pointer? Is there a reason it has a higher priority than hardware sprite? In fact, the black line is not as much annoying as the line over the cursor when you move it across different screens.
Title: Re: Removing horizontal line between screens
Post by: SamuraiCrow on February 28, 2017, 06:57:41 AM
It might be disabling the display DMA altogether for that row.
Title: Re: Removing horizontal line between screens
Post by: Umpal on February 28, 2017, 12:54:02 PM
Would it affect the pointer as well? And is it achievable from AMOS directly*?

*I mean AMOS' instructions, not some deep hack or assembler code. However, in the last option if it was just a small piece of code easily injected not causing any "disturbance" to the AMOS program then I'd go for it.
Title: Re: Removing horizontal line between screens
Post by: SamuraiCrow on February 28, 2017, 02:01:39 PM
Bypassing the screen code requires deep hacks.
Title: Re: Removing horizontal line between screens
Post by: Umpal on February 28, 2017, 02:39:41 PM
It seems I'll have to accept it "as is". Thanks anyway.
Title: Re: Removing horizontal line between screens
Post by: Sidewinder on February 28, 2017, 05:13:28 PM
It seems I'll have to accept it "as is". Thanks anyway.

Unfortunately I think you might.  I did some testing yesterday with the OS and the screen dragging (which does this exact same thing) puts in 2 blank lines in OS3.1 and 3 blank lines in OS1.3.  The mouse pointer also disappears on those blanked lines.  It seems as if AMOS is actually a pretty good implementation requiring only one blank line.
Title: Re: Removing horizontal line between screens
Post by: Umpal on February 28, 2017, 09:13:32 PM
You are right. How could I forget about the dragging screen and its line? Never mind, it's easier to accept in now  ;)
Title: Re: Removing horizontal line between screens
Post by: KevG on March 01, 2017, 06:39:55 PM
Why don't you use overscan mode and the palette trick?
It works for me.
Title: Re: Removing horizontal line between screens
Post by: Umpal on March 01, 2017, 08:12:46 PM
What do you mean?
Title: Re: Removing horizontal line between screens
Post by: KevG on March 02, 2017, 07:17:26 AM
If you set the background colour to something other than black and set the location of the top of the screen off screen then you will not see a black line. Use Screen Display to position it. You may have to use overscan mode so that any odd colour doesn't appear in the border region.
Title: Re: Removing horizontal line between screens
Post by: Umpal on March 02, 2017, 07:19:35 PM
I guess I'm not following you. Correct me if I don't see it right. Even if you set overscan (for your base or additional screen or both), in case of... let's say a panel with commands for an adventure game, it will always have a line that will be separating it from the screen behind (and the mouse pointer will experience the move beneath it while changing from the location screen to the panel and vice versa). So setting the overscan mode will only change the width of the line but will not make it disappear. Of course I'm open for different approach :)
Title: Re: Removing horizontal line between screens
Post by: KevG on March 02, 2017, 09:08:33 PM
Here is an example of how someone did it recently. Its the Super Mario remake.
http://eab.abime.net/showthread.php?t=84783

You will notice that there is no black line between the score panel and the scrolling screen.
How he actually did this may be different from how i did it in the past. But the top of the top screen is OFF screen so you don't see the black line. And the bottom of the top screen you don't see because the background colour is set to that of the background colour of the main screen. Its just one example but you get the idea.

The best thing to do is post your screen setup code here so that we can have a look at it.
You will still get the  unwanted mouse effect though between the two screens.
Title: Re: Removing horizontal line between screens
Post by: Umpal on March 03, 2017, 01:22:45 AM
Alright, now I understand. The final effect is quite nice, especially on this setup of screens and colors. Although, as you mentioned, that line is there it is not that eye-hitting as usual. I'll see if it helps in my case...
Thanks a lot for explanation :)