![]() |
![]() |
#1 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
P96 3.0.0 (and later) news and support
We are done! The next new version of P96 is available at the iComp store immediately for purchase. It is a free update for those of you who bought P96 in the last 12 months.
Since there are so many changes, the release is called 3.0 (not 2.5.0 as announced before). In a nutshell, two important new features are included: First and foremost, P96 now supports screen dragging for all graphic cards included in the package, except for the CVisionPPC whose hardware lacks a particular feature to make it work. Screen Dragging requires the presence of a certain VGA feature, namely the "line compare register", the CVisionPPC does not offer (actually, the details are a bit more gory, but in essence, that is it). The next important feature is that there is a new driver pair, namely for the CVisionPPC and BVisionPPC boards. They support all bitmap types (unlike under CGfx) except planar, namely chunky 8 bit, 16 bit RGB, 16 Bit RGB PC, 16 bit BGR PC, 24 bit RGB, 24 bit BGR, 32 bit RGBA, 32 bit BGRA, 32 bit ARGB and 32 bit ABGR. Concerning screen dragging, there are some restrictions due to the legacy VGA hardware P96 cannot work around: There can be at most two screens at the same time on the monitor, both must have the same pixel layout (i.e. both 8 bit chunky or both 16 bit hi-color), and only the background screen can be autoscrolling. Also, if two chunky screens share the monitor, only one palette is available as VGA does not have a copper that could switch the palette. Thus, the colors of the background screen are "off". This does of course not happen for hi-color and true-color screens. Last but not least, there must be sufficient memory available to hold both screens on the board. This sounds self-evident, but memory runs down quickly for hi-color and true-color screens. Besides that, many bugs have been fixed: - This is a BIG change. This release provides one new (important) feature, and that is screen dragging. It requires support from the chipset, namely the VGA line compare register, and updated drivers to include the new API. - Drivers for the Cirrus chips, the S3 chips, the NCR chip and the Tseng chipset have been updated accordingly to provide the new API. - Note that screen dragging has certain restrictions that all stem from the limitation of the VGA chips and the corresponding boards: - There must be enough memory to hold at least two screens in the graphics card memory. - The two screens must share the same pixel layout (i.e. truecolor, hicolor or indexed colors) - The colors of the topmost screen will not be correct for indexed screens as VGA chipsets do not include a copper, hence only one palette can be loaded at a time. - autoscroll screens that allow horizontal panning cannot be dragged. This is a limitation of the VGA panning mechanism. - Planar screens (16 colors planar) can only be dragged if the depth is identical. - At most two screen can be displayed at once, with the top most screen being aligned to the top of the monitor. - Memory management is completely new. In particular, P96 attempts to keep screen on the board if possible. The older code could have erraneously removed special features from the board without deactivating them first. - Memory management for planar modes was completely broken. It always allocated 4 times as much memory as requested. Instead, it should have limited the memory to the available legacy VGA max memory of 256K. - Updated the chip API to allow signalling of max planar memory. - Bitmap allocation and management was cleaned up a lot, going now through a unified allocator, and modularized functions quite a bit. - In case bitmap allocation failed, a proper error code is now reported back to intuition V47. - Intuition V47 communicates now colors into P96 which allows proper backfilling of true color and hi-color bitmaps, without peeking into private intuition structures. - Bitmap on- and offloading had a bug and failed to safe back bitmaps to be off-loaded in some cases. In particular, the bitmap allocation and offload checking could have disagreed, removing a bitmap from the board even if not necessary. - Memory mode handling was fixed. The old code could have attempted to fill a bitmap with a color with the previous mode still active, causing defects when switching from planar to chunky or reverse. - Undersized true-color screens are now filled with the background color to reflect what palette modes would do. - Cursor drawing on undersized bitmaps was fixed. The cursor can now enter the out-of-bitmap areas, except for planar bitmaps. This allows proper scrolling of the upper screen in split-screen arrangements. - Pixel aspect ratio computation was always assuming a 4:3 screen, even though VGA knows other aspects, such as 5:4, or (today) 16:9 and 16:10. This release tries to be smart and guess the right monitor screen ratio to create "nice" pixel aspect ratios. - Aligned bitmaps are now aligned to MMU page sizes (not necessarily 4K), and waste less memory. - Flood fill failed on rastports larger than 1024x1024 pixels. It was also optimized a bit. - Disabling the Amiga blitter unfortunately also disabled native VSprites, even though Bobs remained working. Now VSprites operate indepedent of Bobs. - Made some minor improvements in BltPattern and Area functionst to use proper rounding. This cuts the code size down a bit. - Palette update for planar modes was partially broken and could overwrite some colors. - If the depth of a planar mode was changed, it could happen that the code forgot to update the sprite colors. - The Cirrus542x and Cirrus5446 drivers did not enable the double vertical flag correctly. If double scan is set, the critical limit is already at 512 lines, not 1024 lines. The Cirrus5434 driver did this correctly already. - The S3Virge and S3Trio chip drivers now support overclocking. To enable this feature, add the OVERCLOCK=yes tooltype to the monitor icon. Beware! Overclocking may result in artefacts, pixel noise and potentially reduced life time of the graphics chips due to overheating. No warranty, and use at your own risk. - The pixel clock adjustment functions for the Tseng-chips are now set to no-ops instead of letting the CPU run into a crash when the rtg.lib attempts to use them. - In case an overly large sprite is requested, the sprite height is now clamped before attempting to load it into the hardware. - As LoadRGB32() and SetRGB32() are implemented over the VecTable anyhow, both functions do not require patching, thus the superfluous patch was removed. Also, some programs called SetRGB32() or LoadRGB32() incorrectly within an interrupt. The rtg.library includes now precautions to ignore such calls instead of crashing. - The CyberVision driver forgot to remove the int server again in case no memory was found on the board. - New chips and card drivers are included in this release. The CVisionPPC and 3DLabsPermedia2 drivers are new in this release. - DisplayAlert() did not remove the hardware sprite from the display and did not time the alert properly. The alert could be gone so fast that you could not read it. - CalculcateBytesPerRow() can now return 0, indicating a failure. This may be used to indicate that a bitmap is too wide for a particular chip. For example, the Cirrus chips cannot take bitmaps wider than 4096 bytes (not pixels!) - The computation of the P96 video mode pixel sizes is now a lot smarter and not only uses the width and height of the video mode, but tries to guess the target monitor aspect ratio (5:4,4:3,16:9 to name some of the candidates). Provided your monitor is adjusted correctly, this would give more reliable results. - As intuition privates changed in Os 3.2, the hires sprite pointer is no longer available in this version of the Os. Also, you should not attempt to drag screens with the right Amiga key as this may leave intuition in a confused state. Works ok in 3.1.4 and below. - Added the mntmn graphics cards to P96Mode and the board info name enumeration. - Fixed a MuForce hit when a user attempts to attach board to a non- existing settings in P96Mode. - Added mntmn graphics cards to P96Mode. I want to thank all the people that contributed to make this possible, all the testers, and in particular to Harald "Rotzlöffel" for lending me his CVisionPPC equipped A1200 without which the CVisionPPC driver could not have been completed. Have fun, and enjoy! |
![]() |
![]() |
#2 |
Amigan
![]() Join Date: Feb 2012
Location: London
Posts: 1,324
|
Excellent news
![]() I'm upgrading from 2.x right now. I only bought P96 14 months ago but it's for a good cause. I appreciate this is not the place for bug reports but I'm not able to register for the iComp forums right now because the security question is failing. * There is a bug in the installer. If I select SYS: to "Where do you want to have the support files installed?" it tries to lock SYS:Picasso96 and fails when it doesn't exist (plain FFS volume). I had to manually create this folder. Screen dragging is not working for me. I probably have to do some reading. * "What's two multiplied by two minus two? Write the result in UPPERCASE.". I've tried TWO & ZERO and even ZWEI & NULL |
![]() |
![]() |
#3 | |
Registered User
Join Date: Nov 2010
Location: Sweden
Posts: 528
|
Quote:
2 x 2 = 4. 4 - 2 = 2. |
|
![]() |
![]() |
#4 |
Amigan
![]() Join Date: Feb 2012
Location: London
Posts: 1,324
|
(2x2)-2 = 2
2x(2-2) = 0 I've tried TWO & ZERO and also ZWEI & NULL Jens is great but his website is terrible! |
![]() |
![]() |
#5 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
Quote:
I suggest the FAQ. In particular, the CVisionPPC does not support it, and there are restrictions for all other graphic cards. I wrote about this in the post above. These are due to the way how VGA works. |
|
![]() |
![]() |
#6 |
Registered User
Join Date: Dec 2019
Location: EU
Posts: 12
|
It works great with AmiKit and the latest WinUAE. Thanks, I am amazed!
|
![]() |
![]() |
#7 | |
Amigan
![]() Join Date: Feb 2012
Location: London
Posts: 1,324
|
Quote:
I booted into my emergency partition and did a clean install and it worked fine. |
|
![]() |
![]() |
#8 | |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Quote:
1) No screen dragging on Voodoo 3/4/5 - and I don't even know if it's technically possible anyway, but I gather that driver is not included in Picasso96 any longer and is considered a 3rd party driver. Unfortunately many of us use the Voodoo cards, so it's a big disappointment. Maybe Elbox will update something for us but I'm afraid Maytay is long since gone so any Prometheus users including new AA3000+ owners are out of luck. Maybe not your responsbility and maybe not even technially possible, I get it. 2) Similarily there is no Radeon driver included. I was hoping for this but I guess I will have to rely on Elbox again for any updates, but GREX/Prometheus users are, again, out of luck unless a "3rd party" updates drivers. I'd happily pay a good price for a Radeon driver. |
|
![]() |
![]() |
#9 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
Elbox had shown a very "specific" approach to P96 licenses in the past, as in: Alex and Tobias started the work, and delivered, but Elbox never paid. They just took the code, and run away. This was the start of a big disappointment for the two, which essentially caused P96 development to stop. I was sadly able to observe all this happening, which caused another big disappointment when the same story just happened again, about two/three years ago. Hence, my "sympathy for elbox is rather limited". Let's put it this way.
Anyhow, the driver API is open now, if Elbox wants to develop from this, or extend their drivers, they can certainly do so. Do I have Elbox hardware? Nope. Will I develop for Elbox? Nope, unless they pay in advance, and deliver the hardware. Fool me once, shame on you. Fool me twice, shame on me. |
![]() |
![]() |
#10 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
|
![]() |
![]() |
#11 | |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Quote:
Regarding Prometheus, which is still actually offered on the AA3000+ board from hese, the possibly coming A4000 Firebird daughterboard for A4000, and maybe other systems soon, is there any viable path for updated drivers that you are aware of since Maytay is no longer a going concern? |
|
![]() |
![]() |
#12 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
Does not look very realistic to me, frankly. I don't have the hardware, and offering a driver without having hardware to test with already proved non-working for the CVisionPPC and the Permedia3D chip. This worked only due to the friendly offer of Harald.
Anyhow, this shouldn't stop anyone from developing. The P96 driver API did not change so much, there is only one additional new function required for screen dragging, and the API documentation hopefully improved. |
![]() |
![]() |
#13 | |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,163
|
Quote:
Could you tell me where to find the updated API documentation, please? I downloaded the new CardDevelop.lha today but the PrivateInclude/CardDevelop.html file doesn't seem to have any mention of the LineCompare register or SetScreenSplit function, which I presume is the function in question? |
|
![]() |
![]() |
#14 | |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Quote:
Anyway, I installed P96 3.0 on my A2000 with Cybervision 64/3D and I can't drag the Workbench screen down, like I can under CyberGraphX. Do I need to have two screens open before dragging works? In CyberGraphX you don't, if you drag the Workbench down (with no other screens open) you get a black screen behind, which I would consider correct functionality. With P96 3.0, when I try to drag down the Workbench it doesn't move. I'm using 1024x768x16-bit screen resolution/depth. Darren |
|
![]() |
![]() |
#15 |
Registered User
Join Date: Oct 2007
Location: ManCave, Canada
Posts: 1,676
|
![]()
awesome news thanks to Jens and ThoR
![]() ![]() anyone try this new version with MNT VA2000 yet? |
![]() |
![]() |
#16 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
Quote:
|
|
![]() |
![]() |
#17 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
The VA2000 drivers are made by Lucas (mntmn) and not by iComp. The driver API is fully backwards compatible, so the VA2000 will continue to work, but as it has not been updated, there is no screen dragging support for this card at this moment. It would require an updated FPGA core to support this new feature, and an updated driver. Whether Lucas has plans to add such support I do not know. He is aware of the new function, of course, so maybe just ask him politely.
|
![]() |
![]() |
#18 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
Quote:
Yes. What do you want to drag a screen for if there is nothing behind it? Please read the FAQ. |
|
![]() |
![]() |
#19 | |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Quote:
|
|
![]() |
![]() |
#20 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,504
|
There are many differences to the custom chips. VGA chips don't have a copper, and can only show two bitmaps at once, stress on "bitmaps". Thus, if you want "something black" displayed on top of the screen, this "something" has to be actual data - the RAMDAC cannot be selectively turned off there. Thus, this feature just costs a lot of memory containing nothing, and this "nothing" would migrate bitmap data out of the VGA memory just to make room for it, slowing everything else down.
So, in a sense, possible, but I currently do not really see why its worth the effort. If there is a screen behind, and the screen behind can be shown along with the current screen, you can drag. Otherwise, you cannot. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
P96: What's the right way to do X? | Warty | Coders. General | 2 | 21 December 2020 00:00 |
Providing 2 fire button support / cd32 joypad support | amigapd | request.Other | 0 | 13 July 2015 17:20 |
Portaudio support (was: WinUAE support for ASIO drivers) | Amiga1992 | support.WinUAE | 57 | 28 March 2009 21:15 |
Classic WB P96 | Anubis | project.ClassicWB | 5 | 08 May 2006 14:30 |
amiga-news.de: Collected software-news | Paul | News | 0 | 14 November 2004 15:50 |
|
|