||04 Settembre 2019
Postato da: saimo
|Custom Screens System (smanettando con AMOS Professional e chipset AGA)
Questo progetto è rimasto a prendere la polvere per 16 anni, ma, di recente mi è stato riportato alla mente e, allora, ho deciso di svelarlo a voi amighisti.
Come in altre occasioni, purtroppo, il testo è in inglese (perché inizialmente l'ho scritto come articolo sul LinkedIn ), per cui me ne scuso e confido nel vostro buon cuore.
Back in 2002 (or early 2003) I got in touch with a developer who had released a nice AMOS Professional game. While chatting with him, I had the idea of developing a fancy Copper trick that would have allowed the game he was currently working on to flip the screen as seen in the level introduction screens of Project-X. The trick was never used (and the game was never released), but little by little it developed into a full video system for AMOS Professional that, by exploiting the AGA chipset, greatly expanded the platform's capabilities. As an added challenge, I decided to implement the system using AMOS Professional itself (eventually, for performance reasons, I implemented a procedure in assembly, but I did resist the temptation of doing the same for other procedures).
Here's how the system documentation introduces the system itself:
The Custom Screens System (CSS) is a system which extends the AMOS Professional screen handling capabilities by exploiting the AGA chipset. It allows to define Custom Screens (CSs), by means of custom Copperlists, that are 100% compatible with the graphic operations (bobs, drawing, texts, buffering, etc.) and that open a wide range of possibilities - most notably non-EHB 64 colors screens and an advanced Dual PlayField mode, named Cross PlayField (XPF).
* up to 8 CSs at once;
* CSs with up to 64 non-EHB colors;
* CSs usable as normal screens for graphic operations;
* CSs display window size and position restricted only by hardware limits;
* scrolling fully supported;
* 35 ns horizontal scrolling granularity;
* extended palette control:
* 24 bit RGB color values (for everything);
* fading from any palette to any other palette;
* palette allocation, mixing, masking, etc.
* up to 8 bitplanes;
* per-color opacity/transparency of the Front CS freely defineable;
* all that can be done with CSs can be done with XPFs, too;
* miscellaneous visual effects;
* miscellaneous utility procedures;
* Copperlist optimization.
The CSs comes in the shape of a collection of procedures written in AMOS Professional itself (except for one written in assembly).
This video shows a what the system was capable of; more specifically, how the system can overlay two indipendent screens (in the examples, the background has a depth of 5 bits and the foreground has a depth of 3 bits, but the depths can be any from 2 to 6, as long as their sum is at most 8), manipulate their palettes and degree of blending, and execute the flip screen effect that got everything started.
Although CSS was fully functional and complete with tutorials and documentation, I never distributed it because, at some point, I realized I could have obtained more flexible and performing results by implementing the core idea differently. So, I started a new system from the scratch, called Advanced Video System (AVS). When it was about 80% done, a terrible thing happened: I lost the sources! I managed to recover some older sources, but I felt too bad to restart the development (not to mention that I was about to move country, so I did not have much time left).
In my dreams, one day I'll use CSS to rework two old games of mine, but honestly I don't know if I'll ever have a chance to.
Modificato il 05/09/2019 alle ore 03:15:03