Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2   Go Down

Author Topic: Removing horizontal line between screens  (Read 7521 times)

0 Members and 3 Guests are viewing this topic.

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Removing horizontal line between screens
« 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?
Logged

SamuraiCrow

  • compile-time wierdo
  • Forum Mod
  • A1200
  • *****
  • Karma: 5
  • Offline Offline
  • Gender: Male
  • Posts: 946
  • Compile-time wierdo
Re: Removing horizontal line between screens
« Reply #1 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.
Logged

Sidewinder

  • Forum Mod
  • A600
  • *****
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • http://www.liquido2.com/
Re: Removing horizontal line between screens
« Reply #2 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, it may require a faster processor.
Logged
- Sidewinder

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #3 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.
Logged

SamuraiCrow

  • compile-time wierdo
  • Forum Mod
  • A1200
  • *****
  • Karma: 5
  • Offline Offline
  • Gender: Male
  • Posts: 946
  • Compile-time wierdo
Re: Removing horizontal line between screens
« Reply #4 on: February 28, 2017, 06:57:41 AM »

It might be disabling the display DMA altogether for that row.
Logged

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #5 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.
Logged

SamuraiCrow

  • compile-time wierdo
  • Forum Mod
  • A1200
  • *****
  • Karma: 5
  • Offline Offline
  • Gender: Male
  • Posts: 946
  • Compile-time wierdo
Re: Removing horizontal line between screens
« Reply #6 on: February 28, 2017, 02:01:39 PM »

Bypassing the screen code requires deep hacks.
Logged

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #7 on: February 28, 2017, 02:39:41 PM »

It seems I'll have to accept it "as is". Thanks anyway.
Logged

Sidewinder

  • Forum Mod
  • A600
  • *****
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • http://www.liquido2.com/
Re: Removing horizontal line between screens
« Reply #8 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.
Logged
- Sidewinder

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #9 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  ;)
Logged

KevG

  • A600
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 87
Re: Removing horizontal line between screens
« Reply #10 on: March 01, 2017, 06:39:55 PM »

Why don't you use overscan mode and the palette trick?
It works for me.
Logged

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #11 on: March 01, 2017, 08:12:46 PM »

What do you mean?
Logged

KevG

  • A600
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 87
Re: Removing horizontal line between screens
« Reply #12 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.
Logged

Umpal

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 37
  • Programming and graphic
Re: Removing horizontal line between screens
« Reply #13 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 :)
Logged

KevG

  • A600
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 87
Re: Removing horizontal line between screens
« Reply #14 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.
Logged
Pages: [1] 2   Go Up
 

TinyPortal 2.2.2 © 2005-2022