Menù principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Retro-Gamers
 Lista Utenti
 Contatti
 Policy sito
Ricerca Google

Login

Nick


Password


04 Settembre 2019 Postato da: saimo
Motori grafici fatti in casa
Questa discussione inizialmente si chiamava Custom Screens System (smanettando con AMOS Professional e chipset AGA) perché dedicata, appunto, al Custom Screens System. Ora ho realizzato un altro piccolo motore grafico e ho pensato che invece di aprire un'altra discussione era meglio parlarne qui, dato che, in fondo, non c'è troppo da dire. Sarebbe bello se anche la discussione sul motore dot-matrix venisse fusa con questa (admin, si può fare?).


***

Custom Screens System

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

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.

Modificato il 25/03/2020 alle ore 12:46:27

Commenti: 20  Aggiungi  - Leggi

Indice: forum / Software Amiga in generale


amiwell79

Post inviati: 12136

Visulizza profilo Messaggio Personale
46.141.119.*** Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Commento 1
amiwell79 4 Settembre 2019    13:51:02
interessante bravissimo saimo

Aros - Workbench X86 - Tiny Aros Retainer - https://tinyaros.flazio.com

Post inviati: 2744

Visulizza profilo Messaggio Personale
79.22.35.*** Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Commento 2
Oge 5 Settembre 2019    22:19:18
Bravissimo.

Il trick è quello a 1:32 di questo Longplay?
https://www.youtube.com/watch?v=gjq-ONi3dZE

farox68

Post inviati: 274

Visulizza profilo Messaggio Personale
62.11.2.*** Mozilla/5.0 (Windows NT 6.1; rv:69.0) Gecko/20100101 Firefox/69.0
Commento 3
farox68 5 Settembre 2019    22:20:23
Interessante davvero, spero tu riprenda il lavoro....dopo aver finito Blastaway.

Amiga 500 + A501 + KSswitcher + gotek , Monitor 1084S-P1 (da riparare)

Console Linux based:

DragonBox Pyra, OpenPandora classic edition,

GPH GP2X F200, GPH Caanoo, GCW-ZERO.

Android based:

JXD S7300B android 4.2



www.rbnet.it/ il blog dove ci sono i miei port per le console OpenSource

amiwell79

Post inviati: 12136

Visulizza profilo Messaggio Personale
46.141.119.*** Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Commento 4
amiwell79 5 Settembre 2019    22:36:02
si non me ne intendo tanto di quello che è stato scritto ma ho intuito qualcosa di davvero notevole scusami sei un grande ed hai talento da vendere

Commento modificato il 05/09/2019 alle ore 22:56:24


Aros - Workbench X86 - Tiny Aros Retainer - https://tinyaros.flazio.com

Post inviati: 691

Visulizza profilo Messaggio Personale
93.151.132.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0
Commento 5
saimo 5 Settembre 2019    22:49:18
@amiwell79

Citazione
interessante bravissimo saimo


Grazie!

Citazione
si non me ne intendo tanto di quello che ha scritto ma a ho provato ad intuire e c'è qualcosa di davvero notevole non ti prendo in giro saimo

Non ho neanche lontamente pensato tu mi volessi prendere in giro! Ci mancherebbe!


@Oge

Citazione
Bravissimo.

Il trick è quello a 1:32 di questo Longplay?
https://www.youtube.com/watch?v=gjq-ONi3dZE


Grazie, e, sì, mi riferivo a quell'effetto. Niente di fantascientifico di per sé (si tratta di generare Copperlist che modificano i moduli dei bitplane dinamicamente, cosa che fa un marea di giochi/demo), ma simpatico per il fatto che è fatto in AMOS.


@farox68

Citazione
Interessante davvero, spero tu riprenda il lavoro....dopo aver finito Blastaway.

Grazie anche a te. Come detto nel postone, mi piacerebbe tanto usare questo sistema per rimaneggiare due miei vecchi giochi, ma il lavoro sarebbe tanto e ci sono altri progetti che hanno maggiore priorità (oltre a Blastaway, devo finire QUOD INIT EXIT IIo , aggiungere un'AI a MeMO e magari trovare un uso per questo motore dot-matrix ), per non parlare del fatto che spero di (ri-)espatriare presto e cominciare un'altra vita altrove, cosa che mi lascerà ben poco tempo

Commento modificato il 05/09/2019 alle ore 22:50:18


RETREAM - sogni retro per Amiga, Commodore 64 e PC

amiwell79

Post inviati: 12136

Visulizza profilo Messaggio Personale
46.141.119.*** Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Commento 6
amiwell79 5 Settembre 2019    23:11:33
speriamo bene cmq come dire il bicchere mezzo vuoto ma forse mezzo pieno

Aros - Workbench X86 - Tiny Aros Retainer - https://tinyaros.flazio.com

Post inviati: 266

Visulizza profilo Messaggio Personale
93.43.178.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Commento 7
Avenger75 7 Settembre 2019    17:35:45
A proposito di Amos Professional, poco fa stavo provando ad aprire la pagina di Amiten.es ma sembra che il sito sia stato sospeso, anche il canale youtube di Johnny è vuoto. Qualcuno sa cosa è successo?

Post inviati: 1483

Visulizza profilo Messaggio Personale
93.40.212.*** Mozilla/5.0 (Linux; Android 6.0; ALE-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36
Commento 8
DrProcton 7 Settembre 2019    18:11:26
Citazione

A proposito di Amos Professional, poco fa stavo provando ad aprire la pagina di Amiten.es ma sembra che il sito sia stato sospeso, anche il canale youtube di Johnny è vuoto. Qualcuno sa cosa è successo?

Amiten è un tipo bello strano. I video li ha tolti lui (peccato xchè c'erano pure cose interessanti). Forse gli serviva un pò di detox dai social, stava diventando ossessivo nella ricerca di nuovi iscritti al suo canale.. per il resto non so nulla se non che la scomparsa dei suoi video non è un disegno malevolo del web..ma una scelta sua

https://novamiga.forumfree.it/

amiwell79

Post inviati: 12136

Visulizza profilo Messaggio Personale
46.141.119.*** Mozilla/5.0 (X11; Linux i686; rv:48.0) Gecko/20100101 Firefox/48.0 Light/48.0
Commento 9
amiwell79 7 Settembre 2019    18:59:43
si magari non avuto riscontri per andare avanti

Aros - Workbench X86 - Tiny Aros Retainer - https://tinyaros.flazio.com

Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 10
saimo 25 Marzo 2020    12:53:12
Ho creato un altro piccolo motore grafico, che spero di usare prima o poi per un altro gioco.

video

***

A while ago I anticipated that I was working on a new graphics engine for Amiga. I had freeze it for a while to work on the other stuff I mentioned in the previous posts, but now I returned to it and finished it.

Technically this engine is rather simple, and I wouldn't be surprised if it's been done before; so, just to be clear, I'm not claiming I'm inventing anything new or breaking any record here - I'm just having fun with yet another engine that in the future I'd like to use for some game.

So, what does this do? Basically, it allows to display any portion of a tile-based map anytime by brute-force redrawing the whole screen every time. An obvious use is implementing a speed- and direction-unlimited scrolling effect by changing progressively the coordinate that indicate the top-left corner of the part of map to display.

Features:
* supports LORES, HIRES, and SHRES;
* supports any bit depth (i.e. 2, 4, 8, 16, 32, 64, 128, 256 colors);
* supports 16, 32, and 64 pixels wide tiles;
* supports tiles of any height;
* supports up to 65536 different tiles;
* supports maps of any width and height;
* allows to choose freely the pixel coordinate of the top-left part of the map to display;
* allows tiles to be animated at no additional rendering cost;
* allows to draw on top of the rendered graphics without caring about restoring them;
* includes double-buffering;
* uses a carefully-tuned method that uses the Blitter and the CPU at the same time in order to achieve the best performance possible on a stock Amiga 1200.

Given that the engine redraws the whole screen every time, a lot of power is required. The performance depends on the resolution, on the bit depth, and on the tile size. A stock Amiga 1200 can render a 320x256x32 screen with 32x32 tiles using about 85% of a PAL frame time (about 17 ms). Performance can be improved a little by: using bigger tiles (but this might increase the CHIP RAM occupation, depending on the desired graphics); pre-calculating the tiles adresses (but this gives only a minimal speed boost and makes working with the map more difficult and expensive).

The video shows a stock Amiga 1200 scrolling a (meaningless) test map on a 320x256x16 screen. The time required is slightly less than 69% of a frame (13.7 ms).

TRIVIA

At the end of the 90s I made a first version of this engine, but it was not that smart, and I never used it for anything. Since then, every now and then I had to suppress the itch to rewrite it, because I had other things to do. This time I couldn't resist.

Conceptually, this engine does the same of the engine I wrote for the Commodore 64 game QUOD INIT EXIT IIm .

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Il Webmaster

Post inviati: 4735

Visulizza profilo Messaggio Personale
46.235.159.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 11
Mak73 25 Marzo 2020    14:51:29
Ma è un motore fatto in C o Amos o cos'altro?

Pace e bene a tutti.

Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 12
saimo 25 Marzo 2020    14:57:15
Citazione
Ma è un motore fatto in C o Amos o cos'altro?

Assembly.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

amiwell79

Post inviati: 12136

Visulizza profilo Messaggio Personale
46.141.119.*** Opera/9.80 (Windows NT 5.1; U; en) Presto/2.12.388 Version/12.14
Commento 13
amiwell79 25 Marzo 2020    15:11:47
in che giochi si adatterebbe per esempio?

Aros - Workbench X86 - Tiny Aros Retainer - https://tinyaros.flazio.com

Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 14
saimo 25 Marzo 2020    15:35:50
Citazione
in che giochi si adatterebbe per esempio?

Qualunque gioco la cui grafica è basata su tessere*, cioè , che ha bisogno di velocità e/o di sfondo animato e che, se si vuole che giri a 50 FPS, non richieda troppe altre e troppo massicce operazioni grafiche e calcoli troppo pesanti.

*Piatte, cioè che non hanno bisogno di priorità avanti/dietro tipo quelle di Blastaway.

Commento modificato il 25/03/2020 alle ore 15:38:20


RETREAM - sogni retro per Amiga, Commodore 64 e PC

Il Webmaster

Post inviati: 4735

Visulizza profilo Messaggio Personale
46.235.159.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 15
Mak73 25 Marzo 2020    15:48:54
Ah ok, mi sembrava fin troppo veloce.

Ma tu volevi avere qualche idea su cosa farne?

Pace e bene a tutti.

Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 16
saimo 25 Marzo 2020    16:09:15
Citazione
Ah ok, mi sembrava fin troppo veloce.

Per una cosa del genere bisogna ottimizzare al massimo
Comunque, ci sono pur sempre i seri limiti menzionati nella descrizione: purtroppo, la lentezza della CHIP RAM è un ostacolo insormontabile.

Citazione
Ma tu volevi avere qualche idea su cosa farne?

Volevo semplicemente mettervi al corrente di questa cosuccia. Comunque, sto prendendo in cosiderazione vari usi (ma non cerco suggerimenti: mi piace dare sfogo alle mie idee).

RETREAM - sogni retro per Amiga, Commodore 64 e PC

consulenza informatica ambito aziendale - appliance sicurezza - ambienti server multipiattaforma - servizi hosting - networking

Post inviati: 6417

Visulizza profilo Messaggio Personale
217.133.133.*** Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 17
divina 25 Marzo 2020    16:49:43
@saimo
considerando il collo di bottiglia dell' AGA e supponendo di utilizzare soluzioni diverse lato CPU in un A1200 (o A4000), che margine in più potremmo avere con una 030@50, 040@25, 040@40, 060@50 ?
Immagino non molto significativo, ma se cercassi di quantificarlo, di quanto ?

Tornando agli utilizzi del engine, un bel platform coloratissimo AGA ? un simil Qwak game ? un simil Chaos Engine ? un shoot'em up simil Banshee/Battle Squadron ?

Il mio sogno come game sarebbe un "King of Thieves" by Team17

lunga vita al popolo ucraino massacrato dal criminale nazista Putin - fuck Putin - by Måneskin

Hey Hey Rise Up - by vecchietti Pink Floyd

Gasoline - by Måneskin


Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 18
saimo 25 Marzo 2020    17:05:05
Citazione
considerando il collo di bottiglia dell' AGA e supponendo di utilizzare soluzioni diverse lato CPU in un A1200 (o A4000), che margine in più potremmo avere con una 030@50, 040@25, 040@40, 060@50 ?
Immagino non molto significativo, ma se cercassi di quantificarlo, di quanto ?

Proprio perché il collo di bottiglia è l'AGA, un processore più potente non cambierebbe molto la situazione. Chiaramente, con FAST RAM si avrebbe il vantaggio di poter fare altro mentre la grafica viene disegnata.
A parte le considerazioni tecniche, come sai, non è nel mio interesse fare giochi per Amiga espansi (al massimo mi spingerei ad usare l'HD).

Citazione
Tornando agli utilizzi del engine, un bel platform coloratissimo AGA ? un simil Qwak game ? un simil Chaos Engine ? un shoot'em up simil Banshee/Battle Squadron ?

Il mio sogno come game sarebbe un "King of Thieves" by Team17

Non sarebbe il motore giusto per nessuno di quel tipo di giochi, perché sono tutti intrinsecamente "lenti". Certo, c'è stato un platform che puntava sulla velocità - nientemeno che Sonic - ma pure quello si può fare con un motore più adatto, come dimostra Superfrog (il cui motore di scrolling è eccellente), e farne uno ancora più veloce significa rendere la vita impossibile al giocatore.
Inoltre, torno sempre al solito discorso: non mi interessa rifare ciò che è già stato fatto (a malincuore, c'ho provato con Blastaway, ma quell'esperienza mi è bastata e avanzata).

Commento modificato il 25/03/2020 alle ore 17:08:05


RETREAM - sogni retro per Amiga, Commodore 64 e PC

consulenza informatica ambito aziendale - appliance sicurezza - ambienti server multipiattaforma - servizi hosting - networking

Post inviati: 6417

Visulizza profilo Messaggio Personale
217.133.133.*** Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 19
divina 25 Marzo 2020    17:15:54
Citazione

Chiaramente, con FAST RAM si avrebbe il vantaggio di poter fare altro mentre la grafica viene disegnata.
A parte le considerazioni tecniche, come sai, non è nel mio interesse fare giochi per Amiga espansi (al massimo mi spingerei ad usare l'HD).


e naturalmente anche un po' di fast RAM, no ? (le espansioni RAM trapdoor o PCMCIA si trovano facilmente con i nuovi progetti open e costano pochissimo); un A1200 con 4Mb di fast RAM è ormai alla portata di tutti i possessori di A1200
Sarebbe un bel vantaggio poter sfruttare un A1200 così, rispetto ad uno stock A1200 senza fast ram

Che genere di game avevi in mente in linea di massima con il tuo nuovo engine ?

lunga vita al popolo ucraino massacrato dal criminale nazista Putin - fuck Putin - by Måneskin

Hey Hey Rise Up - by vecchietti Pink Floyd

Gasoline - by Måneskin


Post inviati: 691

Visulizza profilo Messaggio Personale
109.117.167.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Commento 20
saimo 25 Marzo 2020    17:18:39
Citazione
Citazione

Chiaramente, con FAST RAM si avrebbe il vantaggio di poter fare altro mentre la grafica viene disegnata.
A parte le considerazioni tecniche, come sai, non è nel mio interesse fare giochi per Amiga espansi (al massimo mi spingerei ad usare l'HD).


e naturalmente anche un po' di fast RAM, no ? (le espansioni RAM trapdoor o PCMCIA si trovano facilmente con i nuovi progetti open e costano pochissimo); un A1200 con 4Mb di fast RAM è ormai alla portata di tutti i possessori di A1200

No. Il punto non è il pubblico, ma lo sfizio e la soddisfazione: se volessi fare un gioco senza preoccuparmi troppo delle limitazioni, allora potrei benissimo farne uno per PC.

Citazione
Che genere di game avevi in mente in linea di massima con il tuo nuovo engine ?

Ci sto pensando...

RETREAM - sogni retro per Amiga, Commodore 64 e PC


Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 1 registrati - AMIGAIT -
152 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a frank62 - Kosmokrator - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito è dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.12613892555237 secondi