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


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: 195  Aggiungi - Pagine: 1...-6-7-8-9-10


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

farox68

Post inviati: 288

Visulizza profilo Messaggio Personale
159.20.214.*** Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0
Commento 41
farox68 26 Maggio 2018    21:24:13
Bravo è molto migliorato il demo...e la musica poi è favolosa.

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

Pegasus RyuSei Ken

Post inviati: 10185

Visulizza profilo Messaggio Personale
82.48.72.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 42
Seiya 26 Maggio 2018    21:57:00
Citazione


Dove possiamo leggere queste recensioni?



sul mio vecchissimo sito, fermo dal 2010..

http://xoomer.virgilio.it/tuxcam/


Commento modificato il 26/05/2018 alle ore 21:57:47

Post inviati: 590

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Commento 43
Ozzyboshi_2 27 Maggio 2018    10:47:49
Update V 1.1

- Tolti 32 pixel dalla traiettoria del teschio sulla destra dello schermo (ancora non mi convince molto)
- Utilizzati i fonts del Dottor Protone
- Aggiunti alla lista dei saluti gli utenti che hanno partecipato a questo thread

video : https://www.youtube.com/watch?v=5kRGLk1X_h4

adf : http://adf.ozzyboshi.com/the_crows_dual_pf_bove_V1 .1.adf

Pegasus RyuSei Ken

Post inviati: 10185

Visulizza profilo Messaggio Personale
95.251.239.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 44
Seiya 27 Maggio 2018    11:06:53
Il mio nome è sbagliato però: è Seiya (con la i prima della y )

Post inviati: 590

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Commento 45
Ozzyboshi_2 27 Maggio 2018    12:22:27
Maledizione domando scusa. riparerò nella prossima release.

Post inviati: 1483

Visulizza profilo Messaggio Personale
93.40.212.*** Mozilla/5.0 (Linux; Android 6.0; ALE-L21 Build/HuaweiALE-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36
Commento 46
DrProcton 27 Maggio 2018    12:24:31
Il pezzo del bove è fantastico. Chi ha frequentato la demoscene negli anni novanta l'ha probabilmente conosciuto.
Io lo conoscevo personalmente e credo che sarebbe stato contento di vedere un suo .mod in una produzione amiga, anche se piccola come questa (nel dubbio ho chiesto cmq un parere a misanthropixel a cui era molto legato). L'artwork del corvo è un mio disegno fatto con personal paint negli anni novanta, per cui il feeling dovrebbe essere quello. Alessio sta facendo grandi progressi e di sicuro ce la sta mettendo tutta per impreziosire la demo. Ma con il .mod attuale credo che il salto di qualità sia visibile a tutti.

Nota tecnica: l'immagine originale era a 32 colori. Per poter utilizzare il dual playfield su un sistema ocs i colori del personaggio e della scritta sono stati ridotti ad 8 per playfiled. Riducendo così drasticamente i colori c'era il rischio che il risultato finale ne fosse penalizzato. Ma come si dice, abbiamo fatto di necessità virtù e tutto sommato credo che l'immagine sia comunque apprezzabile.

Commento modificato il 27/05/2018 alle ore 12:48:05


https://novamiga.forumfree.it/

farox68

Post inviati: 288

Visulizza profilo Messaggio Personale
159.20.214.*** Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0
Commento 47
farox68 27 Maggio 2018    13:36:03
Uhhh grazie Ozzy
Anche io come molti altri qui non avevo mai avuto l'onore di veder scorrere il mio nick in un demo.

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

Post inviati: 590

Visulizza profilo Messaggio Personale
213.198.154.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Commento 48
Ozzyboshi_2 27 Maggio 2018    13:45:37
Citazione

Uhhh grazie Ozzy
Anche io come molti altri qui non avevo mai avuto l'onore di veder scorrere il mio nick in un demo.



only amigapage makes it possible!

Post inviati: 590

Visulizza profilo Messaggio Personale
213.198.154.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Commento 49
Ozzyboshi_2 27 Maggio 2018    13:47:47
Citazione


Nota tecnica: l'immagine originale era a 32 colori. Per poter utilizzare il dual playfield su un sistema ocs i colori del personaggio e della scritta sono stati ridotti ad 8 per playfiled. Riducendo così drasticamente i colori c'era il rischio che il risultato finale ne fosse penalizzato. Ma come si dice, abbiamo fatto di necessità virtù e tutto sommato credo che l'immagine sia comunque apprezzabile.



c'è sempre la possibilita di aumentare i colori agendo in copperlist, se pensi che ne valga la pena possiamo provare a perderci del tempo

Post inviati: 1483

Visulizza profilo Messaggio Personale
79.33.247.*** Mozilla/5.0 (Linux; Android 6.0; ALE-L21 Build/HuaweiALE-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36
Commento 50
DrProcton 27 Maggio 2018    14:25:43
Citazione

c'è sempre la possibilita di aumentare i colori agendo in copperlist, se pensi che ne valga la pena possiamo provare a perderci del tempo


Non ne vale la pena Alessio a meno che la cosa non ti sia utile in altri ambiti. Sono molto soddisfatto del risultato attuale, vedere i miei artwork accompagnati dalla musica di frater sx, è davvero fantastico. Fino a pochi mesi fa quella pic stava su un floppy a rischio di smagnetizzazione.. ora è molto più bella


Commento modificato il 27/05/2018 alle ore 14:26:41


https://novamiga.forumfree.it/

Temibile Pirata

Post inviati: 2144

Visulizza profilo Messaggio Personale
62.11.72.*** Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
Commento 51
SukkoPera 28 Maggio 2018    01:12:25
Citazione


A fare i pignoli il teschio rimbalza pure su 2 Y diverse ai bordi dello schermo. Bisogna che mi ripassi la trigonometria per ottimizzare la formula. Questo è un po' più complicato ma ho un collega che insegna matematica mi faccio fare ripetizioni



Non basta moltiplicare la x per 360/320 prima di calcolare il seno?

(O 2pi/320 se lavori in radianti)

I miei progetti Retrogaming

Il Webmaster

Post inviati: 4736

Visulizza profilo Messaggio Personale
148.64.10.*** Mozilla/5.0 (Linux; Android 6.0.1; SM-N910F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36
Commento 52
Mak73 28 Maggio 2018    07:27:00
Avete fatto un bel lavoro veramente, bravi

Pace e bene a tutti.

Post inviati: 4134

Visulizza profilo Messaggio Personale
151.32.179.*** Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Commento 53
Mck 28 Maggio 2018    15:33:33
Sempre più bella.

I MIEI AMIGA

4000T OS 3.9 PPC/68060 + CyberVisio 64/3D + HD 20g + DVD - 4000D in Tower OS 3.9 PPC/68060 Ram 128M + ram scheda 2+16M + zip 100M + Ide HD 40G + usb Deneb + V-Lab + Toccata + Mediator con: Woodoo 3 + Scheda rete + Impact Vision 24 - 4000D OS 3.9 68060 ram 32m + ram scheda 2+16M + HD 20g + zip 100 ide + DVD + V-lab + Seriale veloce + Scheda video EGS- 3000T OS 3.9 PPC/68060 128M + HD scsi 10G + Usb Deneb + CD sCSI + mediator con: scheda rete + controllo SCSI Adaptec + scheda audio + Voodoo 5 - 3000 OS 3.1 68040 + emulatore pc 286 - 2000 processore 68030 + genlock + espansione ram + emulatore pc 8080 - 1200 Tower OS 3.9 PPC/68060 + HD 20G + Mediator con: scheda rete - 1200 OS 3.1 68060 + HD 20G + Scheda rete pcmcia - 1000 espansione Ram 4M - 600 con espansione ram + HD5G - 500 Plus con espansione ram - 500 con espansione ram - CDTV - CD32

CLONI AMIGA

Sam440ep-Flex OS 4.1 - EFIKA MorphOS 2.6

Post inviati: 590

Visulizza profilo Messaggio Personale
62.94.49.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Commento 54
Ozzyboshi_2 28 Maggio 2018    22:22:55
Grazie a tutti per gli incoraggiamenti: stasera ho fatto un po' mente locale sulla traiettoria che segue il teschio, vi annoierò con i miei calcoli trigonometrici

La funzione che ho usato nella versione 1.1 era:

f(x) = 80sin((1/80)x)+100

l'obbiettivo e' modificare l'ampiezza della sinusoide in modo che quando lo
scheletro batta sui bordi dello schermo, sia sempre alla solita altezza e
che lo stesso mai esca dallo schermo nella sua coordinata Y minima.
Riscriviamo quindi la formula sostituendo ai coefficienti i valori a,b e c

f(x) = a*sin((1/b)x)+c

o meglio

f(x) = a*sin(x/b)+c

Premesso che lo sprite del teschio e' 32X50px ela risoluzione dello schermo e'
320X256 e che l'ampiezza della sinusoide e' determinata dall'argomento del
seno (quindi da b), per avere la stessa Y devo metterle in uguaglianza
sostituendo la x con le coordinate X dello schermo dell'amiga.
A sinistra dello schermo la X e' zero (da dove parte il teschio), a destra
e' la risoluzione dello schermo orizzontale meno la larghezza dello sprite,
quindi 320-32 che fa 288.

Scrivendo l'eguaglianza e sostituendo la x con le coordinate dello schermo
amiga otteniamo:

a*sin(0/x)+c=a*sin(288/x)+c

semplifichiamo la a e la c e otteniamo
sin(0/b)=sin(288/b)

poiche' il seno è una funzione periodica e il suo periodo e' 2pi , possiamo
dire che 0/b=qualsiasi cosa piu o meno 2pi che arrotondiamo a 6.28, quindi

0/b=288/b+6.28

Cosi facendo la sinusoide avrà sono una "gobba" a differenza di prima che ne aveva diverse, se vogliamo aumentare le gobbe basta moltiplicare 2pi per il numero di gobbe, ma secondo me era troppo frenetico alla fine ho optato per qualcosa di piu allungato sull'asse delle x anche per dare meglio visibilita degli occhi che si muovono.

Continuando i caldoli... moltiplichiamo tutto per b

0 = 288 + b*6.28

portiamo a sinistra b

-b*6.28 = 288

quindi b = 288/-6.28 che fa -45.8599

adesso che abbiamo il nuovo b, utilizziamolo nella nuova funzione:

f(x) = 80sin((1/-45.8599)x)+100

Non è precississimo a causa dell'approssimazione del pi greco ma può andare.
Adesso però bisogna alzare un po' la sinusoide verso l'alto, il coefficiente
c rappresenta il punto di intersezione con l'asse Y, va alzato un po' in
modo che il punto piu basso della sinusoide sia uguale all'altezza del
teschio cosi da poterlo contenere tutto, quindi 50.
Quale è il valore minimo delle funzione seno? Ovviamente il -1 che viene raggiunto a
3/2 pi.

Riscriviamo la funzione con -1 al posto del seno, quindi

80*-1+c=50

ovvero -80+c=50

c=50+80

c=130

la funzione adesso sara

f(x) = 80sin((1/-45.8599)x)+130

vediamo il risultato su desmos.com :
Immagine

Ma sopratutto vediamo il risultato finale sulla nostra amiga, ecco l'adf: http://adf.ozzyboshi.com/the_crows_dual_pf_bove_V1 .2.adf
Per i signori che non hanno voglia di scriversi l'adf su di un floppy: https://www.youtube.com/watch?v=kdZse6Nql4w

Nonostante tutti i miei sforzi vedo che comunque i risultati non sono precisi al pixel su winuae... boh, non so che dire, nella mia Amiga vera (quella che usavo da ragazzo e dove sto sviluppando questa demo) mi torna tutto al pixel, non so che dire...

Ah, ho corretto il nick di Seiya, avevo dimenticato una 'I', domando ancora scusa al nostro novello streamer di demo.
Ciao

Temibile Pirata

Post inviati: 2144

Visulizza profilo Messaggio Personale
62.11.72.*** Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
Commento 55
SukkoPera 29 Maggio 2018    01:07:38
Ottimo! Un'altra cosa che può essere carina è moltiplicare il risultato della funzione per una costante k che all'inizio vale 1 e viene moltiplicata per -1 ogni volta che inverti la direzione del teschio. In questo modo dovrebbe percorrere una traiettoria a forma di 8 invece di invertire bruscamente la direzione.

I miei progetti Retrogaming

Pegasus RyuSei Ken

Post inviati: 10185

Visulizza profilo Messaggio Personale
87.4.122.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Commento 56
Seiya 29 Maggio 2018    03:31:10
forse dovresti mettere i saluti in ordine alfabetico. Ma non so, va bene anche così, con un po' di cose in ordine sparso.

Commento modificato il 29/05/2018 alle ore 03:31:48

Post inviati: 590

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 57
Ozzyboshi_2 29 Maggio 2018    08:29:12
Allora sto per dire una cosa oscena... la traiettoria del teschio è precalcolata, non viene calcolata dal motorola dell'amiga, semplicemente scrivo in una porzione di chip ram una serie di valori x,y che sono le coordinate dove disegnare il teschio ad ogni frame.
L'amiga non fa altro che leggere questa serie di valori una a una e cambiare in base ad esse i primi 3 bytes puntati dai registri hardware SPRXPTH e SPRXPTL (dff120, dff122,dff124 e dff126) che sono quelli che determinano la posizione dello sprite.
La serie di valori la trovate dalla riga 246 del programma:
https://github.com/Ozzyboshi/AmigaDemo_the_crows/b lob/master/the_crows_dual_pf.s
N.B. Questi sono i valori utilizzati nella prima release non quelli della sinusoide.

Rimane comunque valido il fatto che se invece di aggiungere +2pi aggiungessi -2pi come dici te avrei la parte mancante del simbolo dell'infinito, però va precalcolato e aggiunti questi dati all'interno della chip ram.
Per fare questo mi sono fatto un piccolo programma in javascritpt http://amigafonteditor.ozzyboshi.com/index_sprite_ position.html
Ebbene si, utilizzo un PC e un browser web per fare questa operazione perché non so come farla con l'amiga, inutile dire che me ne vergogno, c'è la libreria math.js che è troppo comoda e non ho sapito resistere.
Comunque un tentativo lo farò anche se temo che il cambio di direzione ai margini dell'infinito sarà troppo repentino e innaturale.


Citazione

Ottimo! Un'altra cosa che può essere carina è moltiplicare il risultato della funzione per una costante k che all'inizio vale 1 e viene moltiplicata per -1 ogni volta che inverti la direzione del teschio. In questo modo dovrebbe percorrere una traiettoria a forma di 8 invece di invertire bruscamente la direzione.

Post inviati: 590

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 58
Ozzyboshi_2 29 Maggio 2018    08:34:20
Questo è facile, ma nelle demo di quelli bravi i saluti venivano fatti solitamente in ordine alfabetico?

Citazione

forse dovresti mettere i saluti in ordine alfabetico. Ma non so, va bene anche così, con un po' di cose in ordine sparso.

Temibile Pirata

Post inviati: 2144

Visulizza profilo Messaggio Personale
62.11.75.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
Commento 59
SukkoPera 29 Maggio 2018    09:05:45
Ma il demo è scritto TOTALMENTE in assembly? Dovresti trovare una funzione che calcola il seno, ma credo sia più facile farlo in C.

Ad ogni modo, invece di precalcolare le coordinate assolute, potresti precalcolare degli offset riferiti ad una linea centrale (l'asse X, diciamo), e sommarli algebricamente alla Y attorno a cui vuoi che si muova. In questo modo potresti anche cambiarli di segno all'occorrenza.

Commento modificato il 29/05/2018 alle ore 09:06:15


I miei progetti Retrogaming

Post inviati: 1483

Visulizza profilo Messaggio Personale
83.211.117.*** Mozilla/5.0 (Linux; Android 6.0; ALE-L21 Build/HuaweiALE-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36
Commento 60
DrProcton 29 Maggio 2018    09:41:58
Nelle demo x a500 quasi tutto è precalcolato, comprese le coordinate dei cubi rotanti. È il compromesso necessario ad ottenere i 50 fps.

https://novamiga.forumfree.it/

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

Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 0 registrati - 
119 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a Yuppis Revange - jpp - pocketclouds - 

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