A.D.A. Amiga Demoscene Archive

        Welcome guest!

  

  

  

log in with SceneID

  

Demos Amiga Demoscene Archive Forum / Coding / screen border ?

 

Author Message
kasie
Member
#1 - Posted: 4 Oct 2007 09:34
Reply Quote
I open a screen with PAL: 640x512x8bit mode. Then i open a window, of the same size on this screen. And for example , on TV or with TV-Card , i have black border, becouse i see only size of screen. All is ok. If i try to use it on Commodore C1084 (directly with RGB-cable to a1200) , then i have big white borders. Like somethink per 20 pixels from each side (left/right/up/down). It looks like a bit overscanned. Like not 640x512, but like 670 x 530. It's not problem at all, problem that i just want to set this white-overscaned-border to black color. I try to use SA_Colors32 with black_palette, but nothink. Maybe someone to know about it, and know how i can blacking this borders ? For first i think that i can fill just all screen by black color, but, my screen already filled, becouse i open screen of resolution which i have for picture. So, just dunno how i can change color for this border..
kasie
Member
#2 - Posted: 4 Oct 2007 11:20 - Edited
Reply Quote
Solution was found (thank to jPV). First color of palette of current picture must be always by color, which color we font for border. If we want black color, first color of palette must be black, and so on. A bit strange, but works. But i am still in interest, someone said that here is some kind of 'bit', which can be set and it will be set overscanned border to black color, even, if first color of current palette are white. Some one to know about it ?
Toffeeman
Member
#3 - Posted: 4 Oct 2007 14:08
Reply Quote
Yeah the colour of the border has always been colour 0 on Amiga. On AGA I'm sure there is a bit you can set which will set the border to black regardless of what colour 0 is.
Kalms
Member
#4 - Posted: 4 Oct 2007 16:41
Reply Quote
I don't have the documentation handy, but the bit is usually called BORDERBLANK, BORDRBLANK, BORDERBLNK or something similar. You can set this bit via tags to OpenScreen().
dalton
Member
#5 - Posted: 4 Oct 2007 16:58
Reply Quote
if BORDERBLANK bit doesn't work you should try it on another machine because it really should. Scan doublers doesn't usually support it though. (many TBL get ugly borders when I watch them through scan doubler)
blakkhar
Member
#6 - Posted: 4 Oct 2007 18:24
Reply Quote
@dalton:
Do you know a solution for boarderblank and scandoubler? As a workaround a I`ve set color 0 to black on my WB (what is ugly) but many GUI`s use color 0. I didn`t found any boarderblanker that work with scandoubler (scanmagic internal here). If there exists a solution I could remove VisualPrefs what slow down a lot.
kasie
Member
#7 - Posted: 4 Oct 2007 18:51
Reply Quote
@Dalton
yep, i have scandoubler Micronic Scandy, and, yes, most of TBL demos have white border. But i think, it problem of doubler. Somethink kind of bad support of features and so on
winden
Member
#8 - Posted: 4 Oct 2007 23:17
Reply Quote
borderblank works by asking the electrom beams to switch off, which is rather different to leaving them on displaying a black color. the borderblank way is "blacker than black".

regarding doublers, remember that amigaAGA is (should be?) a hardware hacking platform so most strange hardware addons are going to ruin your experience
dalton
Member
#9 - Posted: 6 Oct 2007 11:27
Reply Quote
It should be possible to use a copperlist to create a qausi-borderblank if you set and reset color 0 at the edge of the display window each scanline. I have no idea how to do that in workbench though =/
kasie
Member
#10 - Posted: 14 Oct 2007 08:17 - Edited
Reply Quote
I check this source, and found here: vctags: dc.l $80000005,1 ; Tags : (BORDERBLANK,TRUE)
i browse system includes on "$80000005", and, it's called like: VTAG_BORDERBLANK_SET. It's it ?
edit: yes, it is. it works.
Blueberry
Member
#11 - Posted: 18 Oct 2007 10:35
Reply Quote
Hmm, borderblank works fine with my Micronik SCANDEX scandoubler. Apparently not all scandoublers are bad. :)
kasie
Member
#12 - Posted: 18 Oct 2007 10:51
Reply Quote
BlueBerry, i have the same doubler, and for me demo from tbl called 'Little nell' alway have white border..
Todi
Member
#13 - Posted: 19 Oct 2007 09:30
Reply Quote
The scandoublers that doesnt work seems to be internal-snapon-scandoublers. Dont know why, maybe you can get the BORDERBLANK info out of Lisa/Alice chip. (Thats the two chip my scandoubler snaps on.)
doom
Member
#14 - Posted: 20 Oct 2007 17:53
Reply Quote
Border blanking is an ECS feature to be precise. In hardware coding you need to set the ECSENA bit in one of the BPLCON registers, otherwise the BORDERBLNK bit will be disregarded. Dunno if that relates to OpenScreen().

But there's about half a pixel column on the left edge of the display window that never gets blanked, so you might as well not use it ;)

As for scandoublers. Wow, that's weird. :)
winden
Member
#15 - Posted: 21 Oct 2007 00:24 - Edited
Reply Quote
doom: the left edge column can be corrected by positioning a black 1px wide sprite over it :)
TheDarkCoder
Member
#16 - Posted: 21 Oct 2007 10:15
Reply Quote
@doom

AFAIK, the left edge bug was introduced with AGA. ECS does not have this problem. But I have no ECS machine on to check this fact.
:)
z5_
Member
#17 - Posted: 19 Mar 2008 20:20
Reply Quote
When i'm using a copperlist to control the background color, i get the background color outside the visible (320*200) area in winuae (it spans the entire width of the screen), something i also have with a lot of amiga prods on my scandoubler + amiga.

I thought borderblank would help me out here but it doesn't. So how does one manage to keep the bg color within the 320*200 visible screen area?
ZEROblue
Member
#18 - Posted: 19 Mar 2008 23:26 - Edited
Reply Quote
That's exactly what the BRDRBLNK bit in bplcon3 does, but you must also set bit 0 of bplcon0 to 1 to enable border blanking ability, as well as other ECS and above features. Edit: seems scandoublers mess this up, but in UAE and on plain hardware this works exactly like it should.
z5_
Member
#19 - Posted: 20 Mar 2008 12:05 - Edited
Reply Quote
Doesn't seem to make a difference. To resume: to not let the background color outside the visible screen area, one has to have:
- bit 0 of bplcon0 => 1 (= ECSENA or "ecs enable" bit)
- bit 5 of bplcon3 => 1 (= BRDRBLNK or "border blank" bit)
Is that all/correct?
ZEROblue
Member
#20 - Posted: 20 Mar 2008 14:01 - Edited
Reply Quote
What does your code look like? Here's a small example to show the effect:

Edit: keep in mind you must have a display window set and bitplane DMA running.

borderblank

  move.w  #$7fff, $dff09a
  move.w  #$7fff, $dff096

  move.l  #copper, $dff080
  move.w  d0, $dff088

  move.l  #bitplane, d0
  move.w  d0, copper+6
  swap    d0
  move.w  d0, copper+2

  move.w  #%1000001110000000, $dff096

  jmp     *


  section chip, data_c

copper:

  dc.l    $00e00000, $00e20000

  dc.l    $008e2c81, $0090f4c1
  dc.l    $00920038, $009400d0
  dc.l    $01001001, $01020000
  dc.l    $01040000, $01060020
  dc.w    $0108, -40
  dc.l    $010c0000, $01fc0000

  dc.l    $6001ff00, $01800248
  dc.l    $7001ff00, $0180047c
  dc.l    $8001ff00, $01800248
  dc.l    $9001ff00, $01800000

  dc.l    -2

bitplane:

  blk.b   40, 0
z5_
Member
#21 - Posted: 21 Mar 2008 17:44
Reply Quote
my display settings (320*200, 256 colors):

dc.w $0801,$fffe
dc.w fmode,$3
dc.w bplcon4,%0000000000000000
dc.w bplcon3,%0000000000100000
dc.w bplcon2,%0000001000000000
dc.w bplcon1,%0000000000000000
dc.w bplcon0,%0000001000010001
dc.w diwhigh,$2100
dc.w diwstrt,$4881
dc.w diwstop,$10c1
dc.w ddfstrt,$0038
dc.w ddfstop,$00d0
dc.w bpl1mod,-$8
dc.w bpl2mod,-$8
ZEROblue
Member
#22 - Posted: 21 Mar 2008 21:48
Reply Quote
Both mine and your code blank the border out fine when I try them. If they don't give the same result on your Amiga then I guess you have some hardware which is meddling in things, and I have no idea how to correct it.

One alternative is to replace color 0 with another spare color in all your screens.
z5_
Member
#23 - Posted: 25 Mar 2008 17:51 - Edited
Reply Quote
Just as i was writing a reply to blueberry's post in another thread, the solution came to me. How can i be so daft :o) I was overwriting bplcon3 in my gradient copperlist so bit 5 was reset to 0. It now works :o)
blakkhar
Member
#24 - Posted: 26 Jun 2008 16:50
Reply Quote
Just got the info that Individual Computers its new "Flickerfixer" will have boderblank support.

 

  Please log in to comment

  

  

  

 

A.D.A. Amiga Demoscene Archive, Version 3.0