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


01 Marzo 2022 Postato da: saimo
PED81C - schermi chunky senza C2P per AGA
Questo è stato un rilascio affrettato e non pianificato. Sono stato convinto a farlo dalla guerra in corso.

Download: https://www.retream.com/PED81C

I video sottostanti mostrano qualche esempio. Nota: l'elaborazione video di YouTube ha ridotto leggermente la saturazione/luminosità dei colori.

https://www.youtube.com/watch?v=4eikEo45v1I

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

Tutti i dettagli sono nel manuale incluso nel pacchetto.

Modificato il 02/03/2022 alle ore 13:51:37

Commenti: 31  Aggiungi - Pagine: 1-2

Indice: forum / Software Amiga in generale

Pagine: - [1] -2-

Post inviati: 126

Visulizza profilo Messaggio Personale
93.148.94.*** Mozilla/5.0 (iPad; CPU OS 15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/98.0.4758.97 Mobile/15E148 Safari/604.1
Commento 1
Fl@sh 2 Marzo 2022    10:18:54
Non ho scaricato l’archivio con la documentazione perché non mi interessano i sistemi Classic.
Sono però curioso di come hai implementato il supporto a ‘costo zero’, questo potrebbe aprire a conversioni per 68k molto più fluide visto che una parte non trascurabile del tempo macchina è sempre stata la conversione c2p.
Puoi riassumere velocemente qua? Sarebbe accessibile in C oppure è sempre roba per AMOS?

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 2
saimo 2 Marzo 2022    13:46:15
@Fl@sh

Fl@sh
Non ho scaricato l’archivio con la documentazione perché non mi interessano i sistemi Classic.
Sono però curioso di come hai implementato il supporto a ‘costo zero’, questo potrebbe aprire a conversioni per 68k molto più fluide visto che una parte non trascurabile del tempo macchina è sempre stata la conversione c2p.
Puoi riassumere velocemente qua?

Purtroppo non è possibile fornire una spiegazione più concisa di quella inclusa nella documentazione (che estenderò in giornata).

Citazione
Sarebbe accessibile in C oppure è sempre roba per AMOS?

Il sistema si può implementare in qualunque linguaggio (io non ho fornito un'implementazione perché realizzarne una è facilissimo e ognuno può fare a proprio modo e come più gli conviene).


@admin

E' possibile correggere "has" con "ha" nel post iniziale, per favore?

Commento modificato il 02/03/2022 alle ore 13:48:56


RETREAM - sogni retro per Amiga, Commodore 64 e PC

amiwell79

Post inviati: 12300

Visulizza profilo Messaggio Personale
79.53.173.*** Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Commento 3
amiwell79 2 Marzo 2022    13:52:06
l'ho corretto io saimo

Post inviati: 126

Visulizza profilo Messaggio Personale
93.148.94.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Commento 4
Fl@sh 2 Marzo 2022    14:53:52
Va bene leggerò la documentazione appena avrò tempo

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 5
saimo 2 Marzo 2022    15:25:41
@amiwell79

Grazie!


@Fl@sh

La sto rimaneggiando giusto ora, quindi magari aspetta l'aggiornamento (su itch.io apparirà una piccola nota di devlog).

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 6
saimo 2 Marzo 2022    18:14:39
Aggiornamento rilasciato.

1. Corrected/improved/extended documentation.
2. Changed GeneratePalette so that it uses the RGB value of byte 0 for the bytes that include the illegal bits pair %01.
3. Updated the palettes of all the picture files according to change #2.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 7
saimo 2 Marzo 2022    20:48:42
Migliorata/corretta documentazione ulteriormente e aggiornato archivio.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 126

Visulizza profilo Messaggio Personale
93.148.94.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Commento 8
Fl@sh 3 Marzo 2022    07:08:27
sono riuscito a leggere solo la parte iniziale per ora, molto interessante.
Se ho capito bene per implementare quest soluzione, molto bella ed elegante devo dire, c'è una perdita di risoluzione pari a 4x?

Potresti implementare una API e rendere disponibile la fruizione di questo metodo anche ad altri in modo semplice, senza andare a spiegare tutti i dettagli che sono alla base del funzionamento.

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 9
saimo 3 Marzo 2022    14:51:15
Fl@sh
sono riuscito a leggere solo la parte iniziale per ora, molto interessante.
Se ho capito bene per implementare quest soluzione, molto bella ed elegante devo dire,

Grazie per l'apprezzamento.

Fl@sh
c'è una perdita di risoluzione pari a 4x?

No. Ma, per avere la risposta, ti va di fare prima un quiz? Sarebbe utilissimo per verificare la bontà della tecnica (che ha i suoi punti deboli).
Ti/vi mostro un'immagine (di quelle incluse nell'archivio) sia come appare in un normale schermo LORES 320x256 e poi come appare in uno schermo PED81C. Dal confronto, di che entità ti/vi sembra la perdita di risoluzione? Cosa altro noti/notate?
Nota: a causa della tecnica alla base di PED81C, devo postare le immagini a grandezza reale, in quanto un ridimensionamento ne altererebbe l'aspetto (quindi, se il broswer ve le ridimensiona, apritele manualmente in gradezza reale) - spero non sia un problema.

Immagine nel modello CMYW come appare in uno schermo LORES:

Immagine

Immagine nel modello CMYW come appare in uno schermo PED81C:

Immagine

Immagine nel modello KC come appare in uno schermo LORES:

Immagine

Immagine nel modello KC come appare in uno schermo PED81C:

Immagine

Immagine nel modello RGBW come appare in uno schermo LORES:

Immagine

Immagine nel modello RGBW come appare in uno schermo PED81C:

Immagine

Fl@sh
Potresti implementare una API e rendere disponibile la fruizione di questo metodo anche ad altri in modo semplice, senza andare a spiegare tutti i dettagli che sono alla base del funzionamento.

No, per i motivi spiegati nella documentazione; in breve:
* in questo periodo non ho modo di sviluppare;
* l'implementazione è banale (si tratta fondamentalmente di aprire uno schermo SHRES e impostare i colori in un certo modo);
* è meglio che ognuno faccia nel modo più adatto al proprio progetto.

Per rendere l'implementazione ancora più semplice, ieri ho aggiunto nel manuale questa sezione che dice cosa bisogna fare.

SETTING UP AND USING SCREENS

PED81C screens are obtained by opening SHRES screens with these peculiarities:
* the raster must be used as bitplane 1 and 2;
* bitplane 3 must be filled with 01010101;
* bitplane 4 must be filled with 00110011;
* bitplanes 2 and 4 must be shifted horizontally by 4 pixels (BPLCON1 = $0010);
* the palette (COLORxx) must be set according to the chosen color model;
* the leftmost 4 pixels are made of just the least significant bits of the leftmost dots, so it is generally recommendable to hide them by adding 1 to DIWSTRT.

Notes:
* to obtain a screen which is W LORES pixels wide, the width of the raster must be W*4 SHRES pixels = W/2 bytes (e.g. 320 LORES pixels -> 1280 SHRES pixels = 160 bytes = 160 dots);
* to obtain a scrollable screen, allocate a raster bigger than the visible area and, in case of horizontal scrolling, set BPLxMOD to the amount of non-displayed dots (e.g. for a raster which is 176 dots wide and is displayed in a 320 LORES pixels area, BPLxMOD must be 176 - 320/2 = 16);
* HIRES/SHRES resolution scrolling is possible, but it alters the colors of the leftmost dots;
* given the high DMA load caused by the bitplanes fetch, it is best to enable the 64-bit fetch mode (FMODE.BPx = 3).


Il manuale include anche come impostare i colori per il modello RGBW, ma più tardi aggiungo anche le impostazioni per i modelli CMYW, KC e G (che sono i modelli menzionati nel manuale stesso, ma ognuno, in realtà, è libero di definirsi il modello più adatto al proprio progetto).

La parte rognosa è creare le palette che derivano dai modelli scelti, ma proprio per quello ho fornito le palette per i modelli summenzionati e il tool GeneratePalette per qualunque altro modello.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 406

Visulizza profilo Messaggio Personale
204.108.79.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
Commento 10
saimon69 4 Marzo 2022    01:19:33
Codesto sistema permetterebbe anche rotazioni nelle tre assi? Ho visto implementati nei video il tubo e il corridoio e mi chiedo cosa altro possa essere possibile

-------------------------------------------------- --------

https://www.youtube.com/c/jmdamigamusic/ - youtube

https://jmdamigamusic.bandcamp.com/ - bandcamp store

http://scarabocchibinari.ilcannocchiale.it - mio blog online

http://binarydoodles.wordpress.com - blog in inglese

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 11
saimo 4 Marzo 2022    13:09:35
@saimon69

Il sistema fornisce semplicemente schermi chunky: per cosa e come usarli lo può decidere liberamente il programmatore
Disegnare (in qualunque modo) su schermi chunky è più facile che farlo su schermi planari, quindi ne beneficia anche la grafica 3D che ha in mente tu (ma questa non è una proprietà specifica di PED81C).

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 12
saimo 5 Marzo 2022    11:30:35
Altro piccolo aggiornamento. In particolare, ho aggiunto questa sezione nella documentazione, in modo da facilitare ancora di più l'implementazione:

Example registers settings for:
· screen equivalent to a 319x256 LORES screen
· 160 dots wide raster
· blanked border
· 64-bit sprites and bitplanes fetch mode
· sprites on top of bitplanes
· sprites colors assigned to COLOR16 thru COLOR31

REGISTER | VALUE | ENABLED BITS
---------+-------+----------------------------
BPLCON0 | $4241 | BPU2 COLOR SHRES ECSENA
BPLCON1 | $0010 | PF2H2
BPLCON2 | $0224 | KILLEHB PF2P2 PF1P2
BPLCON3 | $0020 | BRDRBLNK
BPLCON4 | $0011 | OSPRM5 ESPRM5
BPL1MOD | $0000 |
BPL2MOD | $0000 |
DDFSTRT | $0038 |
DDFSTOP | $00D0 |
DIWSTRT | $2C82 |
DIWSTOP | $2CC1 |
DIWHIGH | $A100 |
FMODE | $000F | SPRAGEM SPR32 BPLAGEM BPL32

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 126

Visulizza profilo Messaggio Personale
93.148.94.*** Mozilla/5.0 (iPad; CPU OS 15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/98.0.4758.97 Mobile/15E148 Safari/604.1
Commento 13
Fl@sh 5 Marzo 2022    15:10:52
Quando mi riferisco alla creazione di una API mi riferisco al fatto che potresti implementare una funzione da nome OpenPED81CScreen () è una SetPED81CColors () che aprono lo schermo così come richiesto ed elaborano una palette di partenza rendendola ‘compatibile ‘ con il nuovo tipo di schermo.
Inoltre sarebbero utili finzioni per scrivere/leggere singoli pixel e anche interi rettangoli passandogli degli array a 2 dimensioni.
Sarebbero utili anche funzioni per modificare la palette e convertire schermi PED81C in schermi standard chunky o planari.

Un qualcosa del genere corredato da una sufficiente documentazione aiuterebbe a far diffondere l’uso di questa tecnica anche a chi è rimasto ancora sui vecchi Classic.

Per il resto non posso rispondere ai quiz anche perché non ho avuto tempo di leggere ulteriormente. Tra l’altro la comprensione del documento non è banale e bisogna anche leggere con una certa attenzione.

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 14
saimo 5 Marzo 2022    15:28:50
Fl@sh
Quando mi riferisco alla creazione di una API mi riferisco al fatto che potresti implementare una funzione da nome OpenPED81CScreen () è una SetPED81CColors () che aprono lo schermo così come richiesto ed elaborano una palette di partenza rendendola ‘compatibile ‘ con il nuovo tipo di schermo.
Inoltre sarebbero utili finzioni per scrivere/leggere singoli pixel e anche interi rettangoli passandogli degli array a 2 dimensioni.
Sarebbero utili anche funzioni per modificare la palette e convertire schermi PED81C in schermi standard chunky o planari.

Un qualcosa del genere corredato da una sufficiente documentazione aiuterebbe a far diffondere l’uso di questa tecnica anche a chi è rimasto ancora sui vecchi Classic.

Sì, rispondevo proprio in merito a questo.

Citazione
uso di questa tecnica anche a chi è rimasto ancora sui vecchi Classic.

Una nota importante: questa tecnica è solo per Amiga classic.

Citazione
Per il resto non posso rispondere ai quiz anche perché non ho avuto tempo di leggere ulteriormente. Tra l’altro la comprensione del documento non è banale e bisogna anche leggere con una certa attenzione.

Non ti preoccupare, per il quiz non devi leggere la documentazione: basta che guardi le immagini (in scala 1:1, altrimenti la prova è falsata) e riporti la tua impressione Sarebbe utilissimo per verificare l'efficacia visiva della tecnica.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 126

Visulizza profilo Messaggio Personale
93.148.94.*** Mozilla/5.0 (iPad; CPU OS 15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/98.0.4758.97 Mobile/15E148 Safari/604.1
Commento 15
Fl@sh 5 Marzo 2022    15:42:44
Guarda così su due piedi e visualizzando da tablet vedo compromessi riguardanti la risoluzione orizzontale e la perdita di saturazione dei colori.
Una funzione che potresti implementare, almeno per immagini statiche, è un algoritmo di antialiasing perché i contorni sono abbastanza mortificati.
Un po’ mi ricorda l’effetto FS sulla riduzione colore dei jpg, anche se si tratta di cose ben diverse.

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 16
saimo 5 Marzo 2022    16:14:15
Fl@sh
Guarda così su due piedi e visualizzando da tablet vedo compromessi riguardanti la risoluzione orizzontale

Sì, la risoluzione orizzontale è ridotta - della metà, per la precisione. Ad esempio, la risoluzione logica per uno schermo largo 320 pixel LORES è di 160 punti.
Si potrebbe perciò pensare che i punti PED81C sono larghi 2x, ma non è esattamente così: i punti sono larghi 1, ma hanno a destra e sinistra dei punti pure larghi 1 che sono una specie di media con i punti precedenti/successivi. Esempio: AmBmCmD - i punti m sono dei punti "medi" tra i punti A B C e D. Tuttavia, proprio grazie a questa semplice interpolazione e al fatto che i pixel sono SHRES, l'occhio viene ingannato e non riesce a percepire nettamente la risoluzione dimezzata (per confronto, pensa, ad esempio, ai classici pixel 2x1 del Commodore 64).

Citazione
e la perdita di saturazione dei colori.

Sì. Nei casi presentati la causa principale è la scelta di nero/grigio/bianco per la 4a compenente dei colori. Ma se uno avesse esigenze specifiche (ad esempio, grafica con prevalenza di colori saturi di giallo), l'assegnamento potrebbe essere nero/giallo/bianco oppure, se il bianco assoluto non serve, nero / mezzo giallo / giallo.
La perdita maggiore, in termini cromatici, è di luminosità (i dettagli sono riportati nella documentazione).

Citazione
Una funzione che potresti implementare, almeno per immagini statiche, è un algoritmo di antialiasing perché i contorni sono abbastanza mortificati.

Non bisogna confondere la tecnica di output video (che è quello in cui consiste PED81C) e le tecniche di rendering della grafica (che sono una cosa a parte).
Per quanto riguarda l'output video, come detto sopra, la tecnica di per sé in realtà ha una forma antialising orizzontale automatico, che è, anzi, una caratteristica essenziale.
Per quanto riguarda il rendering dell'immagine, per le immagini di prova ho preso un'immagine a 24 bit, l'ho ridimensionata a 160x256 pixel e l'ho ricolorata in base alle palette corrispondenti ai vari modelli di colore, usando un dithering a pattern regolare; ho fatto il tutto con Gimp, che quindi ha applicato l'antialias nel modo migliore che poteva.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
5.95.198.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Commento 17
saimo 6 Marzo 2022    15:03:35
Per far comprendere meglio il discorso della risoluzione e come usare grafica su uno schermo PED81C, ho pensato di spiegare come ho proceduto per ottenere una delle immagini postate in precedenza.

Innazitutto, ho cercato su internet un'immagine molto colorata a caso. Ho trovato una versione ridotta di questa:

Immagine

L'ho ritagliata per escludere i bordi e portare l'aspetto a 4:3. Poi ho aumentato la saturazione al massimo, ottenendo questa immagine a 24 bit:

Immagine

Quindi, l'ho ridimensionata a 160x256, usando un'interpolazione lineare:

Immagine

Poi, ho preso la palette del modello di colore KC...

Immagine

... e ho rimappato l'immagine usando il dithering posizionale:

Immagine

Notare che se scalassimo senza interpolazione quest'ultima immagine otterremmo un'immagine con pixel 2x1, tipo quelli del C64:

Immagine

Poi, ho convertito l'immagine in formato chunky e ho usato i dati direttamente con raster PED81C (è quello che fa l'esempio PKC1 incluso nell'archivio), ottenendo questa immagine:

Immagine

L'occhio fa molta fatica a distinguere i pixelloni.
Scalando l'ultima immagine a 320x256 con interpolazione lineare si ottiene una rappresentazione dell'immagine virtuale (cioè, quella che l'occhio vedrebbe se il mix dei pixel SHRES fosse perfetto):

Immagine

I pixelloni quasi non ci sono. Ingrandendo il dettaglio del quadrato in alto a sinistra e confrontandolo con quello dell'immagine in stile C64, si vede l'effetto antialias intrinseco di PED81C:

Immagine

Note:
* KC è un modello estremo, le cui componenti sono nero, rosso, verde, blu, ciano, giallo, viola e bianco, tutti alla massima saturazione, e questo causa qua e là qualche disturbo di colore;
* la palette usata per la conversione iniziale è normalizzata al massimo della luminosità, mentre l'ouput reale è affetto, come detto in precedenza, da perdita di luminosità - come si vede dal confronto sovrastante.

Commento modificato il 06/03/2022 alle ore 15:05:35


RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
37.179.101.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
Commento 18
saimo 21 Giugno 2023    17:15:47
Ho rilasciato un nuovo archivio con documentazione aggiornata.
Mentre c'ero, visto che mi è stato chiesto un esempio in forma di sorgente, ho preparato al volo un programma AMOS Professional che mostra come impostare uno schermo PED81C e fare delle operazioni di base su di esso - la speranza è che sia facile da comprendere e che apra le porte anche ai programmatori AMOS. Il sorgente del programma è incluso nell'archivio.

RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 695

Visulizza profilo Messaggio Personale
2.39.89.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Commento 19
saimo 29 Novembre 2023    00:15:49
Ho appena pubblicato un altro piccolo aggiornamento, accompagnato dal PED81C Voxel Engine (PVE), cioè una nuova demo. Se non avete voglia di provarla direttamente, potete vederla in questo video - ma attenzione: la compressione video di YouTube's ha degradato la qualità visiva (specialmente la saturazione e la luminosità dei colori).

https://www.youtube.com/watch?v=0xunQ6ldVKU

Dettagli sul PVE direttamente dal manuale:
Citazione
-------------------------------------------------- ------------------------------
OVERVIEW

PVE is an experiment to test the graphical quality and computational performance
of the PED81C system. It allows to move freely around a typical voxel landscape.


---------------------------------------------- ----------------------------------
GETTING STARTED

PVE requires:
* Amiga computer
* AGA chipset
* 200 kB of CHIP RAM
* 4 MB of FAST RAM
* PAL SHRES support
* digital joystick/joypad and mouse
* 2.1 MB of storage space

If the monitor / graphics card / scan doubler do(es) not support SHRES, the
colors will look off or even not show at all.
For example:
* MNT's VA2000 graphics card displays only the even columns of pixels, so only
reds and blues show;
* Irix Labs' ScanPlus AGA displays only the odd columns of pixels (contrary to
how is was originally marketed), so only greens and grays show.

To install PVE, unpack the LhA archive to any directory of your choice.

To start PVE, open the program directory and double-click the program icon from
Workbench or execute the program from shell.


---------------------------------------------- ----------------------------------
MISCELLANEOUS

* The map wraps around at its edges.
* The number shown in the top-left corner of the action screen indicates the
number of frames rendered in the last second.
* Upon returning to AmigaOS, PVE prints out:
* the total number of frames rendered;
* the total number of frames shown;
* the average number of frames rendered per second;
* the average time (expressed in frames) taken by the rendering of a frame.


---------------------------------------------- ----------------------------------
TECHNICAL NOTES

* The graphics are first rendered in a raster in FAST RAM and then copied to a
triple-buffered PED81C raster in CHIP RAM.
* The screen resolution is 1020x200 SHRES pixels, which correspond to 255x200
LORES-sized dots and to 128x200 logical dots.
* Rendering is done by columns, from bottom to top and then left to right.
* The code applies a depth of 256 steps per column, so it evaluates 256*128 =
32768 dots per frame (and then renders only those which are actually visible).
* The code is 100% assembly.
* The code is optimized for 68030.
* The program supports only maps of 1024x1024 pixels, but it can be made to
support maps of other sizes by simply redefining the width and height
constants and reassembling the code.
* The height of the camera adapts automatically to that of the point it is at,
but it can be made user-controllable and its maximum value can be increased
almost to the point that the lanscape disappears at the bottom of the screen.
* On an Amiga 1200 equipped with a Blizzard 1230 IV mounting a 50 MHz 68030 and
60 ns RAM:
* the program runs at about 20.2 fps;
* the rendering of graphics alone runs at about 22.2 fps;
* the impact of PED81C is of about 22.2-20.2 = 2 fps - in other words,
writing the graphics to the PED81C raster requires about 50/22.2-50/20.2 =
0.223 frames (when only the bitplanes DMA is active);
* rendering the graphics directly to the PED81C raster degrades the
performance by about 2 to 3 fps (tested only with an older and less
optimized version).
* On an Amiga 1200 equipped with a PiStorm32, the program runs at 50 fps
(unsurprisingly).
* The map size is 1024x1024 pixels.
* The map requires 2 MB of FAST RAM.
* The program takes over the system entirely and returns to AmigaOS cleanly.


---------------------------------------------- ----------------------------------
BACKSTORY

After a hiatus from programming of several months (due to a computer-unrelated
project), I decided to finally create something for PED81C because I had made
nothing with it other than a few little examples, I wanted to test its
graphical quality and computational performance, and... I felt like having some
good fun.
After some inconclusive mental wandering, the idea of making a voxel engine came
to mind for unknown reasons (I had never dabbled with voxel before).
When the engine was mature enough I decided to distribute PVE publicly (which
initially was not planned).


Circa l'aggiornamento, ho corretto alcuni valori di palette in una tabella della documentazione, aggiunto le formule per calculare DIWSTRT, DIWSTOP, DIWHIGH, DDFSTRT e DDFSTOP alla documentazione e implementato le stesse nell'esempio in formato codice AMOS Professional. Questo è il passaggio relativo alle impostazioni dei registri:
Citazione
In general, given a raster which is RASTERWIDTH dots wide and RASTERHEIGHT dots
tall, the values to write to the chipset registers in order to create a centered
screen can be calculated as follows:
* SCREENWIDTH = RASTERWIDTH * 8
* SCREENHEIGHT = RASTERHEIGHT
* DIWSTRTX = $81 + (160 - SCREENWIDTH / 8)
* DIWSTRTY = $2c + (128 - SCREENHEIGHT / 2)
* DIWSTRT = ((DIWSTRTY &$ff) << 8) | ((DIWSTRTX + 1) &$ff)
* DIWSTOPX = DIWSTRTX + SCREENWIDTH / 4
* DIWSTOPY = DIWSTRTY + SCREENHEIGHT
* DIWSTOP = ((DIWSTOPY &$ff) << 8) | (DIWSTOPX &$ff)
* DIWHIGH = ((DIWSTOPX &$100) << 5) | (DIWSTOPY &$700) |
((DIWSTRTX &$100) >> 3) | (DIWSTRTY >> 8)
* DDFSTRT = (DIWSTRTX - 17) / 2
* DDFSTOP = DDFSTRT+SCREENWIDTH / 8 - 8

Commento modificato il 29/11/2023 alle ore 00:16:25


RETREAM - sogni retro per Amiga, Commodore 64 e PC

Post inviati: 61

Visulizza profilo Messaggio Personale
79.52.151.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Commento 20
overtune2005 1 Dicembre 2023    21:51:42
Speriamo di vedere l'implementazione in qualche gioco

Pagine: - [1] -2-

Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 1 registrati - DanyPPC -
18 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a Erik-BG - Hyppo78 - 

© 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.15285992622375 secondi