Welcome, Guest. Please login or register.

Author Topic: Custom Screens System (fiddling with AMOS Professional and AGA)  (Read 4363 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline saimoTopic starter

Custom Screens System (fiddling with AMOS Professional and AGA)
« on: September 04, 2019, 10:45:26 AM »
This project has been gathering dust for 16 years, but I have finally decided to at least let Amigans know about it.

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).

Features:
 * 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.
 * XPF:
    * 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.

https://www.youtube.com/watch?v=BtlVPMdFhi0

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.
« Last Edit: September 05, 2019, 02:09:28 AM by saimo »
RETREAM - retro dreams for Amiga, Commodore 64 and PC
 

Offline gertsy

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: May 2006
  • Posts: 2317
  • Country: au
    • Show only replies by gertsy
    • http://www.members.optusnet.com.au/~gbakker64/
Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #1 on: September 04, 2019, 11:29:30 AM »
 :'(
 

Offline saimoTopic starter

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #2 on: September 05, 2019, 02:13:00 AM »
Don't be sad, not a big loss. And who knows if in future...
RETREAM - retro dreams for Amiga, Commodore 64 and PC
 

Offline AmiDARK

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #3 on: November 06, 2019, 01:22:18 PM »
Nice system :)

Why don't adapt it to become a full AMOS Professional extension ?

Regards,
 

Offline saimoTopic starter

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #4 on: November 06, 2019, 01:42:15 PM »
Nice system :)

Thanks!

Quote
Why don't adapt it to become a full AMOS Professional extension ?

It's ancient stuff, and, to be honest, I'm not interested. Also, the fun was precisely making AMOS do those things using AMOS itself.
As soon as I have time to work on Amiga software again, I'll use it to make another game or improve/rework some old (unreleased) ones - who knows, possibly using this system ;)
RETREAM - retro dreams for Amiga, Commodore 64 and PC
 

Offline AmiDARK

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #5 on: November 06, 2019, 02:10:06 PM »
I understand.
And I must say that I like the screen merging with transparency you've done :)
I wil ltake a look to your repository to understand how you achieve this feature.

Concerning AGA support I'm currently working on a try to make a "native support to AGA chipset" to AMOS.
I managed to make Dual Playfield works up to 2x 16 colours screens (fully AMOS native) by modifying the AMOS Professional ASM 68000 source code.
It gives nice results (see my post in this forum).

my work on AmosPRO Source code is also available in a git hub repository I've made ;)

Regards,
 

Offline saimoTopic starter

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #6 on: November 06, 2019, 02:57:27 PM »
And I must say that I like the screen merging with transparency you've done :)
I wil ltake a look to your repository to understand how you achieve this feature.

There's no public repository, but it's easily said: the whole system builds custom Copperlists, so I set up the screen manually, using the planes addresses of the AMOS screens. AMOS, of course, doesn't know how its screens are being used by my code, so it just happily works on its screen, without the slighest clue that they are visually merged ;)

Quote
Concerning AGA support I'm currently working on a try to make a "native support to AGA chipset" to AMOS.
I managed to make Dual Playfield works up to 2x 16 colours screens (fully AMOS native) by modifying the AMOS Professional ASM 68000 source code.
It gives nice results (see my post in this forum).

my work on AmosPRO Source code is also available in a git hub repository I've made ;)

Good luck with your efforts!
RETREAM - retro dreams for Amiga, Commodore 64 and PC
 

Offline AmiDARK

Re: Custom Screens System (fiddling with AMOS Professional and AGA)
« Reply #7 on: November 06, 2019, 04:52:48 PM »
Effectively, no repository...