22 April 2020, 11:37 | #261 | |
Registered User
Join Date: Aug 2010
Location: Germany
Posts: 532
|
Tough one, graphics.library being what it is. A small step towards making it better would be to review the AutoDocs, take notes on what is lacking in quality and content and then finally edit the documentation. Next step, review the header files and document the data structures and constants. Next step after that, review the example code and apply the same principles again. Final step of that process: take a look at the RKM contents and get really worried about what could be rewritten/added here to make this more useful and generally relevant.
Not the kind of task everybody's looking forward to, though. We'd have to catch up with almost 35 years of neglect Quote:
There was even a fairly complex and complete demo for the A4000T which came with full source code (at least for developers). I wish I could remember what its name was, so that I could dig for it in the archives. Basically, it streamed an animation generated with VistaPro, overlayed with sprites and different display resolutions, sort of a small demo version of what the "Microcosm" gameplay was like on the CD32. This particular demo, however, was designed for the A4000T and would use specialfx.library, if I remember correctly. |
|
22 April 2020, 13:48 | #262 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,801
|
Just using V39 gfx but I’m surprised that it is so bad. Maybe games and multimedia should use the specialfx.library but you’ve to release it with docs and includes.
“ hazy: Some AAA stuff will get "built-in" like with the current chips, some may only be available via RTG drivers, and I suspect some will get really hot under specialfx.library. ” |
22 April 2020, 14:19 | #263 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,187
|
Graphics.library has been unable to create a majority of Amiga special effects and that extends beyond 3 input blits too. MrgCop() only merges linked lists of instructions rather than sorting sublists of cmoves with an implicit cwait in the structure header and all encodings of cmoves macro-converted at compile time rather than runtime. MrgCop() is the bane of system-friendliness.
|
22 April 2020, 15:49 | #264 |
Registered User
Join Date: May 2010
Location: Ames, IA, USA
Posts: 521
|
Something I would like to see in AmigaOS 3.2 or later is a new version of the Installer which can also uninstall applications that are no longer needed and undo the changes gracefully that were made when the application was installed. Something similar to how installing and uninstalling software works in Windows. Backwards compatibility would be nice...
|
22 April 2020, 16:32 | #265 |
BoingBagged
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
|
Thank you all for the suggestions and feedback.
There are a few of your ideas that are already being worked on for AmigaOS 3.2. Others will probably have to wait till we have the manpower to materialize them. Again, thank you for engaging into this ongoing conversation. |
22 April 2020, 18:35 | #266 |
Coder/webmaster/gamer
Join Date: Oct 2001
Location: Canberra/Australia
Posts: 2,642
|
@brett71:
On Windows, the applications generally provide an uninstallation script. Doing the same is also an option for Amiga application developers. Having the OS attempt to do this itself heuristically can be asking for trouble. Not all changes are easily reversible, nor necessarily wise to reverse, for instance. |
22 April 2020, 18:55 | #267 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
BltMaskBitmapRastPort() is not a 3-comonent blit but emulates them by two blitter operations because there is a technical insufficiency in the blitter hardware that disallows that. The problem is that the above function takes a srcx/srcy parameter pair. While this seems unrelated to the issue, the trouble is that if you think about it, then the BltMaskBitMapRastPort() function requires two masks, one is the mask supplied, the other is the boundary of the rastport. While you may believe that the mask of the A channel of the blitter can do that for you, when thinking about it you will find that a single 16 bit FWM mask and another 16 bit LWM mask is not sufficient to address all cases if you have a target boundary (due to the layer bounds of the rastport) and a source x coordinate (due to the input parameter). So what graphics does in the end is to hand-compute a suitable mask with the CPU which has the width of one blit line, with edges such that it excludes pixels outside the rastport *AND* outside the source which needs to be shifted due to srcx, puts that temporary mask into a TmpRas or the last chance memory of gfx, and loads the A channel with this "full width mask". Channel B is the source, channel C the destination, channel D the target. There is no fifth channel for the input mask, so two blits are required. It would have worked if the LWM and FWM would be wider than 16 bit, but they are not. The reason why the animation engine gets away with this restriction is that the bobs are always word-aligned, i.e. there is no SrcX. Then, a 16 bit FMW/LWM is enough. Morale of the story: If you want to use 3-source blits, use the animation system. That's exactly what it is good for. BltMaskBitMapRastPort() is only for rendering graphics, but not for animation. |
|
22 April 2020, 19:02 | #268 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,801
|
@Thor thanks for the clarifications. I’ll look into it.
You mean the GELs animation system? Was it updated for v39/40? Like for interleaved bitmap? Ps you’ve been missed Last edited by kamelito; 22 April 2020 at 19:07. |
22 April 2020, 20:15 | #269 |
Registered User
Join Date: Apr 2016
Location: .no
Posts: 148
|
Finally The Richter is back :-)
|
22 April 2020, 20:17 | #270 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Yes.
No, and no. It was neither necessary to update it, nor possible. It is not necessary because the modulo value of a (target) interleaved bitmap is correct and describes the offset from one row to another consistently, so blitting blindly from or to a interleaved bitmap with a non-interleaved aware function "just works", though potentially slower than necessary. It is not possible because the bob source is in a non-bitmap format that is non-interleaved, so even if it had special support for interleaved, it could not take advantage of the interleaving. The only advantage of interleaved bitmaps is that sometimes you only need one big blit for multi-bitplane (>2 color) bits if source and target are interleaved. Unfortunately, the source of the Bob is planar, and cannot be made interleaved as it does not use a bitplane structure. Another example of an insufficient abstraction in graphics, unfortunately. You may now wonder why BltMaskBitmapRastPort() got it wrong given that the source and target bitmap modulo values are all consistent in the interleaved case which means "it should just work right". The answer is that the mask is not a bitmap, and the above function builds a bitmap for it to run it through the lower levels. Unfortunately, it did this incorrectly so by just copying the modulo value and taking this as the width of the mask. However, modulo != width for interleaved bitmaps, and that's where it was all screwed up. |
22 April 2020, 22:03 | #271 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,801
|
What I wanted to do was patching a game that hit the hardware by system calls. So if the gfx is done in interleaved b/c it is faster I can’t. So is a game.library heavily targetting games a possibility while being system friendly?
|
22 April 2020, 22:45 | #272 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,801
|
specialfx.library, see post from Spencer Shanson (please share it
If you also read what he said about V39 in gfx lib (devcon 1993), double buffering for smooth animation (no flicker), allocbitmap() with friend bitmap for fast blitting into the bitmap (one blit), and plan for 3.01 I wonder why the Gels animation system is not tailored to take advantage of these new functions or why a substitute does not exist. https://groups.google.com/forum/#!se...w/aiYzz-BO13QJ Last edited by kamelito; 22 April 2020 at 23:15. |
22 April 2020, 22:56 | #273 | |
Registered User
Join Date: May 2010
Location: Ames, IA, USA
Posts: 521
|
Quote:
|
|
23 April 2020, 13:19 | #274 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,348
|
Part of the problem there is that there's also no way of an uninstaller knowing if any installed common components (e.g. in LIBS: or C: ) are required by any other program. So, you install program A that needs random.library in LIBS:. Then you install program B that also uses random.library, but didn't install it as there was already a copy in LIBS:. Then you uninstall program A, which put random.library in place and so removes it again. Program B stops working, maybe even crashes, and you're left scratching your head about what changed.
|
23 April 2020, 13:59 | #275 |
Registered User
Join Date: Oct 2009
Location: Germany
Posts: 3,304
|
Yes, such uninstaller isn't possible for everything. It had to be in the system from the beginning to work. Now it is too late. On the other hand, it is not that difficult to manually uninstall software. In many cases it is just delete program directory. If you use an installer you can use the installers log to see what files are copied. For system stuff like c, libs, devs, fonts, ... and you don't know if that is still used by other software, just leave it. Shouldn't waste much space. Renaming can help to see if it is still used by something. You should get an error message or something like that. Problem is that all installed software needs to launched/checked.
|
23 April 2020, 14:05 | #276 |
-
Join Date: Jul 2003
Location: Helsinki / Finland
Age: 43
Posts: 9,863
|
An uninstaller would need some kind of semaphore database with a new row for every copied shared file.. Which would naturally then mess itself up somehow and cause headaches. :-)
|
24 April 2020, 16:06 | #277 |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Thanks for everyone's work on OS 3.2! Can't wait! I was wondering if there is any kind of AmiDock in 3.2? I heard rumours of a new 3.2 rom, and another method (perhaps) to remove the boot reset after modules are loaded. Would be nice, but better yet full roms.
One other question, did you get any positive communications/cooperation from Frank Mariak (CyberGraphX)? Would be nice. I'm still using CyberGraphX on my A2000/060/CyberVision 3D. By the way, and I know the OS4 Radeon driver has it's own history...but it would be immensely nice somehow to back-port the OS4 Classic Warp3D Radeon support to Warp3D/OS 3.x. Voodoo cards have reached "vintage" status and go for outrageous prices on eBay, if you can even find one. Thanks Darren Last edited by DarrenHD; 24 April 2020 at 17:03. |
24 April 2020, 16:23 | #278 | |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,295
|
Quote:
I would rather prefer apps that are self-contained (in a drawer or pseudo-drawer like on Mac) - any necessary assigns can be done at the programs start. There are many programs that do that already ... But the OS could provide some intelligent trash bin: if a program-drawer is moved to trash it starts looking for related files in WBStartup, some entries in the startup sequence, ... it could do that by searching for similar names and/or by looking at the installer-script if this is available in the program-drawer... |
|
24 April 2020, 17:04 | #279 | |
Registered User
Join Date: Aug 2008
Location: London / Canada
Posts: 781
|
Quote:
|
|
24 April 2020, 22:52 | #280 |
mä vaan
Join Date: Nov 2001
Location: Finland
Posts: 1,655
|
I would suggest do not develop it any more. Any new feature is going to broke something and cause problems with older software. Using OS3.1.4 has several show stopper features for me, at least it shouldn't require new rom or rom modules. There is a problem if I use it with kickstart 3.1 and load modules with loadmodules command. I can't boot to OS without startup-sequence. And if using a rom, then lefting Workbench library out of kickstart is causing unsovable problems. or (at least I don't accept solution) Seems that I can't solve that problem with 1mb rom with older workbench.library inside of it.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
AmigaOS 3.1.x v 3.9 | steve_mynott | New to Emulation or Amiga scene | 35 | 19 April 2020 06:23 |
AmigaOS 3.9 | PoLoMoTo | support.WinUAE | 8 | 27 August 2011 18:06 |
AmigaOS 3.5 or 3.9 | maddoc666 | support.Apps | 12 | 22 February 2010 08:02 |
AmigaOS | koncool | request.Apps | 6 | 04 June 2003 17:45 |
AmigaOS XL | sturme | New to Emulation or Amiga scene | 4 | 15 January 2002 02:13 |
|
|