![]() |
![]() |
#1 |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
OS3.x - Open a screen with 1x bandwidth
Again something special.
Is there a smart way to open a screen on OS3.x with the 1x bandwidth? The only solution I know is poking in the graphics base like this: Code:
move.l _GraphicsBase,a6 move.b #BANDWIDTH_1X,gb_MemType(a6) Not very system friendly. I did some investigations in the autodocs, but did not find a way to change the bandwidth, after the screen is opened or before with a special tag. Looking in the vieport/viewport extra structure didn't help. Last edited by dissident; 07 August 2024 at 18:00. |
![]() |
![]() |
#2 |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Do you have any hints for me, Thomas Richter?
|
![]() |
![]() |
#3 |
<optimized out>
Join Date: Sep 2020
Location: <optimized out>
Posts: 323
|
|
![]() |
![]() |
#4 |
Registered User
Join Date: Nov 2015
Location: Italy
Posts: 196
|
Maybe create your own screen bitmap with manually allocated planes that are misaligned (address multiple of 2, but not 4 or 8) such that only 1x is possible. And then open screen with custom bitmap (SA_Bitmap tag).
|
![]() |
![]() |
#5 |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Not a bad idea. I guess I have to explain what should be the purpose of this screen. It‘s part of a display downgrader to get BPL1MOD / BPL2MOD to 0 values. I doubt that the system is smart enough to detect misaligned bitmaps. There must be a reason for the global entry in the graphics base for the bandwidth.
Last edited by dissident; 10 August 2024 at 22:09. |
![]() |
![]() |
#6 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,462
|
Not really, but I was busy with PCI workings and finish a driver for PCI-based S3 graphics cards...
No, the FMode is nothing the Os allows you to set or play with. Your best option is probably BestModeID() of graphics to request modes with certain properties. However, what exactly is the application here? |
![]() |
![]() |
#7 | ||
Registered User
Join Date: Nov 2015
Location: Italy
Posts: 196
|
Quote:
Quote:
|
||
![]() |
![]() |
#8 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,462
|
Actually, graphics goes through multiple functions for computing what the best possible FMode could be, not only depending on alignment but also on the number of reserved sprites and adapts to the requirements. But the algorithm is opaque and undocumented.
|
![]() |
![]() |
#9 | ||
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Quote:
Quote:
So I better keep my hands off the gfx base and initialize the BPLMOD registers manually after LoadView(Null) |
||
![]() |
![]() |
#10 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,291
|
What are you trying to degrade for? If it's a system friendly application won't you run into issues if the user switches to another screen after you've changed BPLMOD? I'm not too familiar with system friendly coding to be honest, but shouldn't you be setting up something that has a user defined copperlist that sets the register values to the values you need?
|
![]() |
![]() |
#11 |
Registered User
Join Date: Jul 2017
Location: San Jose
Posts: 687
|
How about adding a user copperlist that resets FMODE to what you like it to be? Or is FMODE out of reach for Copper?
|
![]() |
![]() |
#12 | |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Quote:
In my case this means that I question every routine of my app. Very old OCS intros rely on the fact that the standard screen has BPL1MOD/BPL2MOD set to zero. They didn't initialize these registers themself and need these values for a proper display. The screen is for configs with a graphics card. A standard lores screen is openened in front of a potential graphics card screen. This screen has a window with a cleared sprite pointer to avoid a vertical bar for those OCS intros which don't turn off the sprite DMA correctly. Then a LoadView(Null) is done to get ECS settings for the custom display registers. FMODE=0, BPLCON4=$0011, BEAMCON=$0020 on a PAL machine. Mainly it‘s other people’s stuff which cause the problems on non-OCS machines. To make this stuff run on AGA even with a 68060 card is one of the main tasks of my degrader routines. My knowledge is based on articles in the Amiga Plus 05/1994 and 12/1994. Last edited by dissident; 13 August 2024 at 23:18. |
|
![]() |
![]() |
#13 |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
You could also initialize the FMODE register by the CPU. No, this register can also be reached by the copper. It‘s not in the range of blitter registers.
|
![]() |
![]() |
#14 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,291
|
For this use-case I don't think you need to create a screen or anything. Just LoadView(NULL), and set the HW copperlist to your own compatible one (null sprites all round, other HW registers setup as you like) like you would in a system takeover. Just make sure at least one VBL has passed before starting the demo.
|
![]() |
![]() |
#15 | |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Quote:
![]() |
|
![]() |
![]() |
#16 | |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,291
|
Quote:
(WHDload way is problematic at least on pistorm though in the way it switches off system since a 1BPL screen still messes with BPLCON3 to set palette, so turning off copper at unfortunate time is a problem) |
|
![]() |
![]() |
#17 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,462
|
LoadView(NULL) on P96 will always turn the RTG screen off and enable the native graphics.
|
![]() |
![]() |
#18 |
Registered User
Join Date: Sep 2015
Location: Germany
Posts: 273
|
Now I know why there must be a screen opened before LoadView(Null) is called.
1. This screen forces a grapchiscard screen to vanish because it is the first screen to be displayed. 2. Amigas forced to work in NTSC mode with a jumper will normally have a NTSC setup after a LoadView(Null). The extra screen prevents this. I scanned the whole course, only in German, and uploaded it as a pdf in the zone. Part 2 is the important part dealing with the topic of displays. Last edited by dissident; Yesterday at 12:38. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Programatically open NTSC screen on PAL amiga | dalton | Coders. System | 5 | 28 June 2022 04:37 |
OS3.2 Blank Screen | torrind | support.AmigaOS | 8 | 06 November 2021 18:25 |
Why the screen does not open? | TCH | Coders. Asm / Hardware | 23 | 23 July 2021 19:38 |
open chunky screen | grond | Coders. System | 7 | 02 February 2016 16:31 |
Open Screen / Open Font | AGS | Coders. System | 7 | 02 March 2014 05:08 |
|
|