English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.Other (https://eab.abime.net/forumdisplay.php?f=74)
-   -   P96 3.0.0 (and later) news and support (https://eab.abime.net/showthread.php?t=105576)

Thomas Richter 25 October 2020 10:45

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!

nogginthenog 25 October 2020 14:49

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

duga 25 October 2020 14:52

Quote:

Originally Posted by nogginthenog (Post 1437010)
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

The answer is probably TWO.

2 x 2 = 4. 4 - 2 = 2.

nogginthenog 25 October 2020 15:53

(2x2)-2 = 2
2x(2-2) = 0

I've tried TWO & ZERO and also ZWEI & NULL
Jens is great but his website is terrible!

Thomas Richter 25 October 2020 16:44

Quote:

Originally Posted by nogginthenog (Post 1437010)
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.

That is just a proposal where to install it. You can put it anywhere else. It clearly needs a directory some place.


Quote:

Originally Posted by nogginthenog (Post 1437010)
Screen dragging is not working for me. I probably have to do some reading.

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.

janz 25 October 2020 18:12

1 Attachment(s)
It works great with AmiKit and the latest WinUAE. Thanks, I am amazed!

nogginthenog 25 October 2020 18:56

Quote:

Originally Posted by Thomas Richter (Post 1437026)
That is just a proposal where to install it. You can put it anywhere else. It clearly needs a directory some place..

Sorry Thomas, maybe I didn't explain clearly. I selected SYS: but the installer fails because SYS:Picasso96 does not exist.

I booted into my emergency partition and did a clean install and it worked fine.

DarrenHD 25 October 2020 19:12

Quote:

Originally Posted by Thomas Richter (Post 1436971)
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.

Hi Thomas, this is fantastic news, but unfortunately (for me and I suspect many others) I am disappointed in this release. I realize this is not anything to do with you or the impressive upgrades and fixes, but it needs to be said:


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.

Thomas Richter 25 October 2020 19:30

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.

Thomas Richter 25 October 2020 19:51

Quote:

Originally Posted by janz (Post 1437049)
It works great with AmiKit and the latest WinUAE. Thanks, I am amazed!


Thank Toni for getting on board and updating the UAE driver accordingly.

DarrenHD 25 October 2020 21:32

Quote:

Originally Posted by Thomas Richter (Post 1437064)
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.

Hi Thomas, totally understand regarding Elbox.


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?

Thomas Richter 25 October 2020 21:59

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.

robinsonb5 25 October 2020 22:44

Quote:

Originally Posted by Thomas Richter (Post 1437088)
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.


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?

DarrenHD 26 October 2020 03:29

Quote:

Originally Posted by Thomas Richter (Post 1437088)
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.

Thomas, if it's a matter of sending you a Prometheus card I could do that. I have one, sitting unused now. It has the upgraded Firebird (E3B) firmware.

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

klx300r 26 October 2020 03:33

awesome news thanks to Jens and ThoR:spin:great


anyone try this new version with MNT VA2000 yet?

Thomas Richter 26 October 2020 08:07

Quote:

Originally Posted by robinsonb5 (Post 1437099)
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?

Should be online by today or so, and if not, nag Jens about it, he has it. There is a wiki somewhere which would include it. Yes, the function is the SetScreenSplit() function, and there is a reference implementation for the GD5434 chip included which uses it.

Thomas Richter 26 October 2020 08:09

Quote:

Originally Posted by klx300r (Post 1437120)
awesome news thanks to Jens and ThoR:spin:great


anyone try this new version with MNT VA2000 yet?

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.

Thomas Richter 26 October 2020 08:22

Quote:

Originally Posted by DarrenHD (Post 1437119)
Thomas, if it's a matter of sending you a Prometheus card I could do that. I have one, sitting unused now. It has the upgraded Firebird (E3B) firmware.

It is not only the Prometheus card I am missing, but the entire system around it. I neither have an A3000 nor A4000, leave alone a graphics card old enough to fit in there.


Quote:

Originally Posted by DarrenHD (Post 1437119)
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?

Yes. What do you want to drag a screen for if there is nothing behind it? Please read the FAQ.

DarrenHD 26 October 2020 14:07

Quote:

Originally Posted by Thomas Richter (Post 1437133)
It is not only the Prometheus card I am missing, but the entire system around it. I neither have an A3000 nor A4000, leave alone a graphics card old enough to fit in there.



Yes. What do you want to drag a screen for if there is nothing behind it? Please read the FAQ.

Hi Thomas, I did read the FAQ. I was however expecting similar behaviour to the custom chips which allow you to drag down even if nothing behind.

Thomas Richter 26 October 2020 15:26

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.


All times are GMT +2. The time now is 03:54.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.07002 seconds with 11 queries