Mený principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Lista Utenti
 Policy sito
Ricerca Google

Login

Nick


Password


11 Maggio 2018 Postato da: Ozzyboshi_2
Demo "the crows" per imparare l'assembler basato su ramjam
Volevo segnalare che ho scritto un po' di "pensierini" su di una semplce demo che ho scritto insieme all'utente Dr Procton di questo forum, come test di apprendimento dei primi 9 capitoli del libro di Fabio Ciucci / Ramjam.
Potrebbe essere utile a chi come me sta studiando questo libro, la demo riprende i concetti di playfield, dual playfield, blittering e sprites.

Il sorgente è disponibile all'indirizzo

https://github.com/Ozzyboshi/AmigaDemo_the_cr ows

corredato di una spiegazione di quello che ho fatto e dei problemi che mi sono trovato ad affrontare.

Commenti: 193  Aggiungi - Pagine: 1...-6-7-8-9-10


Pagine: -1-2-3-4-5- [6] -7-8-9-10-

Post inviati: 393

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 101
Ozzyboshi_2 17 Luglio 2018    14:46:01
Nuova release, versione 1.5

Introdotta scacchiera
Introdotti effetti di fade in da nero

sorgenti + adf
https://github.com/Ozzyboshi/AmigaDemo_the_crows/r eleases/tag/v1.5

video

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

Con Trantor sto cercando di farla funzionare anche su *uae con processori sopra 68020

Post inviati: 27

Visulizza profilo Messaggio Personale
87.14.5.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Commento 102
Z3k 17 Luglio 2018    17:05:20
Complimenti per l' ultima aggiunta della chessboard! mi piace molto l' effetto e so che è stato ottenuto togliendo tempo al sonno

Post inviati: 393

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 103 in risposta al 102 di Z3k
Ozzyboshi_2 17 Luglio 2018    22:37:48
era diventato un ossessione, ci ho messo 2 settimane, ovviamente non ci lavoravo tutte le sere.
la prima settimana a studiarci, la seconda a provare a scrivere qualcosa
poi quando finalmente era partita e funzionante, non si sa come mai non andava l'audio, la demo era muta, ero in depressione totale... poi la domenica sera dopo cena ho trovato il conquibus
Citazione

Complimenti per l' ultima aggiunta della chessboard! mi piace molto l' effetto e so che è stato ottenuto togliendo tempo al sonno

Temibile Pirata

Post inviati: 796

Visulizza profilo Messaggio Personale
62.11.182.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36
Commento 104
SukkoPera 17 Luglio 2018    22:51:56
Sempre meglio, grande!

Solo un consiglio: se intendi passare di botto tra starfield e checkerboard, dovresti farlo in un momento in cui la musica cambia registro, tanto per dare un senso di insieme al tutto!

A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Il Webmaster

Post inviati: 3091

Visulizza profilo Messaggio Personale
79.30.227.*** Mozilla/5.0 (Linux; Android 6.0.1; SM-N910F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36
Commento 105
Mak73 18 Luglio 2018    06:36:05
Complimenti veramente, davvero bravo.

Pace e bene a tutti.

Post inviati: 393

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 106 in risposta al 104 di SukkoPera
Ozzyboshi_2 18 Luglio 2018    08:33:29
si il passaggio tra starfield e scacchiera è veramente troppo repentino, la mia idea era di inserirci una transizione di fade out/fade in.
Ne parlerò in consiglio di amministrazione dove vengono prese le decisioni più importanti.
Il CEO è dr procton e di solito lui riesce sempre a trovare la quadra


Citazione

Sempre meglio, grande!

Solo un consiglio: se intendi passare di botto tra starfield e checkerboard, dovresti farlo in un momento in cui la musica cambia registro, tanto per dare un senso di insieme al tutto!

Post inviati: 393

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 107
Ozzyboshi_2 20 Luglio 2018    09:11:07
Gentilmente c'è qualcuno di amigapage che potrebbe provare questa demo su di una amiga reale (fisica, non emulata) con processore almeno 68040?
Lo chiedo perché su fs uae, se si seleziona una cpu del genere, la demo va molto piu veloce quando non dovrebbe perché il timing è dato dal pennello elettronico (che non dovrebbe dipendere dalla cpu).
La mia preoccupazione è che uae non onori dff004/dff006.

Post inviati: 5955

Visulizza profilo Messaggio Personale
79.44.43.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 108
DanyPPC 20 Luglio 2018    10:43:12
Al momento mi è impossibile, la mia A1200PPC con 060 è tutta disassemblata, la mainboard è in riparazione. Confido in qualche altro volenteroso utente.

A1200T OS3.9 BB4 PPC 240/060/256MB/BVision/IndivisionAGA MK2cr/BMon Switch/HD 80GB/DVD-RW/Drive 1,76Mb/Honey Bee CD32 Pad

A1200 OS3.9 BB4 ACA030/42/128MB/CF8GB/PCMCIA 4GB/PSX Adapter

A1200 OS3.1.4 030/50/64MB/CF16GB/PCMCIA 4GB/PSX Adapter

A1200 OS 3.1 2MB

A600 OS2.0 2MB/Gotek/Sega Pad

Pegasus RyuSei Ken

Post inviati: 8350

Visulizza profilo Messaggio Personale
95.244.120.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 109
Seiya 20 Luglio 2018    12:03:33
@ozzyboshi_2
non usi mica codici automodificanti?

Post inviati: 393

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 110 in risposta al 109 di Seiya
Ozzyboshi_2 20 Luglio 2018    12:13:05
no, non li uso, eccezion fatta per la copperlist la quale viene modificata per cambiare colori e ritardi, perché me lo chiedi?

Citazione

@ozzyboshi_2
non usi mica codici automodificanti?

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

Post inviati: 2363

Visulizza profilo Messaggio Personale
217.133.133.*** Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:61.0) Gecko/20100101 Firefox/61.0
Commento 111 in risposta al 107 di Ozzyboshi_2
divina 20 Luglio 2018    16:09:58
Citazione

Gentilmente c'è qualcuno di amigapage che potrebbe provare questa demo su di una amiga reale (fisica, non emulata) con processore almeno 68040?
Lo chiedo perché su fs uae, se si seleziona una cpu del genere, la demo va molto piu veloce quando non dovrebbe perché il timing è dato dal pennello elettronico (che non dovrebbe dipendere dalla cpu).
La mia preoccupazione è che uae non onori dff004/dff006.




presente 68040@40Mhz può andar bene ?
In tal caso appena ho un po' di tempo (ovvero penso/spero nel weekend)

MorphOS 3.11 PowerMac G5 &&Pegasos2 G4 //AmigaOS4.1 FE - AMiGA4000T&D PPC/060 &&1200T&D &&600 &&500+ &&500 - Mac Intel &&PowerPc - x64 servers -


Post inviati: 393

Visulizza profilo Messaggio Personale
195.62.226.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Commento 112 in risposta al 111 di divina
Ozzyboshi_2 20 Luglio 2018    17:28:36
si, sarebbe perfetto, se puoi provarlo mi fai un piacere.


Citazione

Citazione

Gentilmente c'è qualcuno di amigapage che potrebbe provare questa demo su di una amiga reale (fisica, non emulata) con processore almeno 68040?
Lo chiedo perché su fs uae, se si seleziona una cpu del genere, la demo va molto piu veloce quando non dovrebbe perché il timing è dato dal pennello elettronico (che non dovrebbe dipendere dalla cpu).
La mia preoccupazione è che uae non onori dff004/dff006.




presente 68040@40Mhz può andar bene ?
In tal caso appena ho un po' di tempo (ovvero penso/spero nel weekend)

Pegasus RyuSei Ken

Post inviati: 8350

Visulizza profilo Messaggio Personale
82.63.44.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 113 in risposta al 110 di Ozzyboshi_2
Seiya 20 Luglio 2018    19:15:11
Citazione

no, non li uso, eccezion fatta per la copperlist la quale viene modificata per cambiare colori e ritardi, perché me lo chiedi?



perchè se ci sono problemi di timing con 68040 e 68060 è colpa di questi codici. una volta li usavano per la compatibilità e creavano casini con questi due processori.
Dato che non li hai usati il problema può essere altro.

Dr Cinicus

Post inviati: 31

Visulizza profilo Messaggio Personale
5.170.104.*** Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Commento 114 in risposta al 107 di Ozzyboshi_2
Dr Cinicus 20 Luglio 2018    22:56:55
Citazione

Gentilmente c'è qualcuno di amigapage che potrebbe provare questa demo su di una amiga reale (fisica, non emulata) con processore almeno 68040?
Lo chiedo perché su fs uae, se si seleziona una cpu del genere, la demo va molto piu veloce quando non dovrebbe perché il timing è dato dal pennello elettronico (che non dovrebbe dipendere dalla cpu).
La mia preoccupazione è che uae non onori dff004/dff006.




Anche la musica diventa "più veloce"?

Post inviati: 393

Visulizza profilo Messaggio Personale
213.198.149.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 115 in risposta al 113 di Seiya
Ozzyboshi_2 21 Luglio 2018    07:31:57
sinceramente non vedo nessuna relazione tra questa tecnica e il mio problema, detto questo il codice automodificante è una pratica che tendo ad evitare il più possibile perché a mio avviso rende il programma molto piu difficile da leggere e facilita l'introduzione di bugs, probabilmente esistono dei casi dove non se ne può fare a meno ma non è il caso della demo.

Citazione

Citazione

no, non li uso, eccezion fatta per la copperlist la quale viene modificata per cambiare colori e ritardi, perché me lo chiedi?



perchè se ci sono problemi di timing con 68040 e 68060 è colpa di questi codici. una volta li usavano per la compatibilità e creavano casini con questi due processori.
Dato che non li hai usati il problema può essere altro.

Post inviati: 393

Visulizza profilo Messaggio Personale
213.198.149.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 116 in risposta al 114 di Dr Cinicus
Ozzyboshi_2 21 Luglio 2018    07:34:00
Si perché anche la routine che fa il play del file audio è sincronizzata con dff004/dff006, a naso direi che viene riprodotta al doppio della velocità, come se la raster position $ff fosse raggiunta 2 volte ogni frame piuttosto che una volta sola.

Citazione



Anche la musica diventa "più veloce"?

Post inviati: 289

Visulizza profilo Messaggio Personale
94.38.134.*** Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15
Commento 117
TheDarkCoder 21 Luglio 2018    11:17:28
ciao

se hai un interrupt handler level 3, su CPU veloci devi assicurarti che tra l'istruzione che pulisce il flag in INTREQ e la RTE ci sia almeno un altro accesso in memoria CHIP o su un registro. Altrimenti succede che la CPU esegue RTE più velocemente del tempo necessario al chipset per pulire la richiesta di interrupt, e quindi si genera un interrupt spurio.

In alternativa il bug potrebbe dipendere per motivi analoghi, dal fatto che il ciclo che testa VPOSR viene riniziato mentre il raster è ancora alla linea che usi come punto di riferimento.

A memoria, mi pare che gli esempi del corso in questione siano pensati per M68000 e soffrono di questi problemi. Poi c'era un capitolo successivo in cui Fabio spiegava come sistemare questi problemi, ma lui aveva un approccio un po' "da patcher"

TDC Restored Amiga (4/11)



A500 (Early model, KS 1.2)

A500 (Classic model, KS 1.3) + Espansione 512k + A590 (2M Fast, HD SCSI 20M)

A1200 (Plain model, KS 3.0) + Espansione Omega 1200 (8M Fast, FPU 68881, RTC)

A2000 (Model A, KS 2.04)

Pegasus RyuSei Ken

Post inviati: 8350

Visulizza profilo Messaggio Personale
87.9.124.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 118
Seiya 21 Luglio 2018    11:17:44
Potrebbe anche essere il "doppio" clock del 68040 che spesso è stato sottovalutato lato Amiga (non dalla Apple che invitava i suoi sviluppatori a tenerne conto quando sviluppavano il software). Io ho notato molte demo che su 68030 e 68060 girano in modo corretto e solo sul 68040 sono esageratamente accelerate sia di grafica che di musica.
Il doppio clcok sul 68040 serve per gestire i timing del processore (non è come sui 486) e probabilmente ci saranno alcuni accorgimenti da fare nel codice per gestire i timing su questo tipo di processore.

edit:
ho visto l'intervento di TheDarkCoder e credo che abbia trovato lui il motivo per questo tipo di accelerazioni indesiderate



Commento modificato il 21/07/2018 alle ore 11:29:30

Post inviati: 289

Visulizza profilo Messaggio Personale
94.38.134.*** Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15
Commento 119
TheDarkCoder 21 Luglio 2018    11:24:48
ciao

sì ho visto il codice, secondo me non va bene come ti sincronizzi con la riga 255.

Volendo usare le tue macro, io proverei a sostituire la seconda WAITVEND con WAITVOUT.

Anche perché non capisco il senso di usare 2 volte WAITVEND nel main loop.

Purtroppo i problemi di sincronizzazione sono rognosetti

PS: comunque complimenti per l'impegno che ci stai mettendo, ho incontrato Z3k e mi ha parlato benissimo di te! Se ricapito dalle vostre parti mi piacerebbe incontrarti!

Commento modificato il 21/07/2018 alle ore 11:26:45


TDC Restored Amiga (4/11)



A500 (Early model, KS 1.2)

A500 (Classic model, KS 1.3) + Espansione 512k + A590 (2M Fast, HD SCSI 20M)

A1200 (Plain model, KS 3.0) + Espansione Omega 1200 (8M Fast, FPU 68881, RTC)

A2000 (Model A, KS 2.04)

Post inviati: 393

Visulizza profilo Messaggio Personale
213.198.137.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Commento 120
Ozzyboshi_2 22 Luglio 2018    09:03:43
E' un grande onore per me essere corretto dal mitico "The Dark Coder".
In altre parole... "TOMBOLA!!!!", hai centrato il problema, sui processori piu potenti la condizione di raster wait veniva verificata 2 volte, il processore è troppo veloce e dff004 e dff006 non ce la fanno ad aggiornarsi in tempo.

Fix Proposto
Prima parte :
Nella prima parte c'è la checkboard e non posso fare come descritto nel corso di aspettare dff006 uguale a ff perché devo attendere sotto ff altrimenti la parte bassa della scacchiera sfarfalla.
Quindi, all'inizio del main cycle faccio

.loop
move.l $dff004,d0
and.l #$1ff00,d0
cmp.l #288<<3,d0
bne.b .loop

In pratica qui aspetto che siamo alla riga 288 muovendo una long su d0 a partire da dff004, devo fare cosi perché mi serve anche i bits piu significativi della posizione verticale che stanno all'inizio di vposr

Poi faccio tuti i miei calcoli (scroll del playfield, checkboard ecc..)

Questa è la parte che ho aggiunto prima di ricontrollare dff004
.loopend
move.l $dff004,d0
and.l #$1ff00,d0
cmp.l #288<<3,d0
beq.b .loopend

In pratica sto dicendo di aspettare di uscire dalla riga 288 prima di riaspettarla, come suggerito da te.. e... almeno sull'emulatore pare funzionare.

Seconda parte:
Stessa zuppa per la seconda parte della demo (quella con il corvo in bianco e nero)

il ciclo parte con
cmpi.b #$ff,$dff006
bne ...

e poi lo concludevo allo stesso modo ma è sbagliatissimo, devo concluderlo con

cmpi.b #$ff,$dff006
beq ...

Il risultato è il seguente
http://adf.ozzyboshi.com/the_crows_dual_pf_bove_V1 .5.1.adf

Questa versione dovrebbe andare su macchine piu pompate che sfortunatamente non ho, quindi chiedo a chinunque possa di verificare l'effettiva risoluzione del problema.
Quando torno a casa aggiorno anche la repository su github.

Ovviamente un grazie infinito a the dark coder per l'aiuto, se vuoi incontrarci ci sono un sacco di possibilità ammesso che tu abiti in zona.
Ti segnalo che probabilmente un weekend di agosto ci sarà una sorta di "reunion" a badia prataglia a mangiare una bistecca. Il capo della banda è dr procton che è il presidente del cda, poi forse si aggrega aleghid... boh vai a capire se la sua vespa ci arriva fin la. Se venisse pure Z3k sarebbe il massimo, insomma se ti interessa essere presente contattami altrimenti ci saranno altre occasioni.

Pagine: -1-2-3-4-5- [6] -7-8-9-10-

Utenti Online
Utenti registrati: 902 dal 1 Gennaio 2006
di cui online: 1 registrati - SukkoPera -
11 non registrati

Benvenuto all'ultimo utente registrato: Zilog

Buon Compleanno a randagio1972 - 

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