Ready64 Forum

Commodore 64 => Programmazione, Grafica e Musica => Topic aperto da: Freshness79 - 18 Giugno 2009, 22:08:37

Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 18 Giugno 2009, 22:08:37
Buonasera a tutti,
dopo un po' di silenzio torno a postare un po' di codice.
Dall'ultima volta che ho scritto ho imparato a maneggiare con maggior cura l'effetto AGSP. Quella che propongo con questo post é una versione rivista e fixata di quella già postata in precedenza.
L'aggiunta più significativa é l'aggiornamento delle righe in seguito ad uno spostamento verticale: questa versione potrebbe di per sé andare già bene per un gioco a scrolling verticale o per qualche effetto demo (scrolling di logo, titoli di coda...).
Le barre bianche sul bordo indicano il consumo di cpu per l'aggiornamento della memoria video. Notate la rapidità del movimento ed il relativamente esiguo consumo di cicli, lo scrolling hardware fa tutta la fatica.
In una prossima release completerò la routine con l'aggiornamento della colonna per permettere un movimento completo.
In attachment binario e sorgente.
Commenti, critiche e consigli come al solito bene accetti!

PS:
Per i curiosi, provate a modificare i valori di IncTable ed Inc2Table: rappresentano rispettivamente le velocità orizzontali e verticali.
Il primo byte é a 0 per mantenere fermo lo schermo quando non viene mosso il joy.
Gli altri due byte possono assumere valori da $F9 a $07 (ovviamente passando per 0).
 
Titolo: Agsp V0.1 Wip
Inserito da: iAN CooG - 19 Giugno 2009, 20:50:19
 Bellissimo, applicato ad uno sparatutto come parallax o time pilot ci starebbe bene.
Non so pero' se il movimento dei "tiles" sia corretto, mi da' l'impressione che perda pezzi per strada. Provero' a metterci una mappa piu' significativa di un pattern sequenziale.
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 20 Giugno 2009, 13:10:16
E' probabile avessi ragione iAN: la nuova versione che ho messo in attachment comunque risolve quei piccoli problemi ed aggiunge lo scrolling laterale.
Prossimi punti da sistemare:
- Gestione dei bordi fuori mappa (Adesso appena si esce dalla mappa i dati perdono coerenza)
- Aggiunta della mappa colore ($D800)
- Aggiunta di qualche sprite
- Ottimizzazione!!!
Allora... nessun grafico disposto a buttare giù una mappa 128x128 ed una charmap multicolor?
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 20 Giugno 2009, 19:40:48
Nuova versione:
- limite sinistro e destro attivi
- ulteriori aggiustamenti sulla parte di char update
- maggiore documentazione delle routine (manca ancora la parte di char)

Con questo aggiornamento sono stati eliminati gli ultimi difetti di copia, ora lo schermo visualizzato é sempre coerente con la mappa. Quando si supera il bordo verticale della mappa si torna a visualizzare la prima linea della mappa stessa.
Per quanto riguarda la documentazione, l'ho migliorata principalmente per me, per rendere il programma leggibile anche se dovessi lasciarlo da parte per un po' di tempo. Cercherò di mantenere il codice il più possibile pulito e chiaro.
 
Titolo: Agsp V0.1 Wip
Inserito da: iAN CooG - 20 Giugno 2009, 20:42:26
 Ora e' pressoche' privo di bug =)
Per la costruzione di charset e mappe c'e' sempre il solito charpad, solo che lavora a tiles. Sarebbe piu' comodo realizzare una mappa "sciolta" solo che 128x128=16k di memoria solo per la mappa. Un editor nativo che consenta la stesura diretta di mappe senza usare tiles e' il Graphic Editor di J.Fox.
In un demo sicuramente non sarebbe un problema usare anche tutta la memoria disponibile se l'effetto fosse solo uno, ma in un gioco e' meglio realizzare mappe tramite i tiles, tanto piu' che sicuramente ci sarebbero ripetizioni all'nterno della mappa
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 01 Luglio 2009, 08:28:16
Buongiorno a tutti,
per la verità contavo di metterci meno ma il tempo a disposizione ultimamente é calato. In attachment ho inserito l'attuale versione del mio scroller agsp.
Come da suggerimento di iAN ho sistemato le cose in modo da poter utilizzare tiles da 4x4 caratteri e 4x4 colori.
Ora quindi la mappa é composta da 512x512 caratteri (4*128). Nello scroller, analogamente alla precedente versione, la mappa si ripete verticalmente.
Ho cercato di ottimizzare le routine di scrittura dei tile, tenete presente che il codice di quelle parti é... un po' disordinato.
Ora comunque é sufficiente usare charpad (ottimo programma btw), lo scroller é fatto per utilizzare esattamente lo stesso formato.
Al solito, graditi feedback, consigli e/o critiche!
Buona giornata a tutti!
NB: il frame iniziale mostra ancora il vecchio formato: muovetevi un po' fino a cancellarlo completamente. Non é un bug... é solo pigrizia!
Titolo: Agsp V0.1 Wip
Inserito da: iAN CooG - 01 Luglio 2009, 21:58:01
 Superlativo, l'uso dei tiles rende sicuramente piu' macchinoso il codice - e lo si evince anche dal tempo di raster impiegato nello spostamento - ma permette di realizzare mappe complesse in meno spazio.
Se lo facessi vedere in giro ti chiederebbero di costruirci attorno un clone di "legend of Zelda", Crossbow/Crest ne ha realizzato uno e lo trovi nella hidden part di Krestage 3 (http://noname.c64.org/csdb/release/?id=48577)
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 02 Luglio 2009, 02:26:29
Grazie mille iAN, come sempre troppo buono.
Spero di trovare un pubblico più largo con questa nuova release: ho preso la mappa sample di charpad e l'ho linkata nel mio scroller.
Ora si può finalmente navigare in qualcosa di decente!
Oltre a questo la routine contiene alcune (piccole) ottimizzazioni nella sezione di charupdate; prossimo step gli sprite!
Come nel caso precedente é necessario muoversi per cancellare il primo frame, prossimamente scriverò la (noiosissima) routine per stampare il frame iniziale...
Titolo: Agsp V0.1 Wip
Inserito da: Roberto - 06 Luglio 2009, 14:28:59
 Piuttosto che un gioco in stile "Zelda" vedrei meglio un gioco in stile "Gauntlet".
Se non fossi impegnato nel sito e si decidesse di fare un "Force Seven 2" mi tufferei senza indugio nella realizzazione di tutta la grafica.
Titolo: Agsp V0.1 Wip
Inserito da: iAN CooG - 06 Luglio 2009, 21:30:32
 
Citazione
Piuttosto che un gioco in stile "Zelda" vedrei meglio un gioco in stile "Gauntlet".
O pacman, magari in 3d. o citadel. o parallax. o, o, o.
Citazione
Se non fossi impegnato nel sito e si decidesse di fare un "Force Seven 2" mi tufferei senza indugio nella realizzazione di tutta la grafica.
fossi figo guiderei una grande jeep
fino in disco, attesissimo in zona v.i.p.
il mio nome sarebbe sempre incluso nella lista
non dico proprio il primo della lista
ma neanche l'ultimo degli stronzi. (CIT)
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 07 Luglio 2009, 00:05:08
hmmmm... sento aria di polemica.
Comunque ben venga un po' di disputa, io ho poca fantasia ed ho sicuramente bisogno di qualche buona idea.
Intanto rilascio un primo binario con sprite.
Ho messo 8 sprite nel bordo superiore ed 8 (di cui solo due visibili, ma sono attivi tutti e 8) in quello inferiore.
I due sprite visibili nell'inferiore, in particolare, visualizzano la posizione nella mappa.
Tanto per dare una piccola nota tecnica, fare questi sprite è stata una passeggiata: semplicemente a fine schermo ho cambiato banco al vic e quindi ho potuto mettere gli sprite pointer dove ho voluto senza problemi.
I veri casini iniziano adesso, con gli sprite interni ed i pointer visualizzati!
Adesso comunque l'intera schermata inizia ad avere un aspetto "giocaiolo"...
Alla prossima!
Titolo: Agsp V0.1 Wip
Inserito da: Roberto - 07 Luglio 2009, 12:52:05
 
Citazione da: "Freshness79"
hmmmm... sento aria di polemica.
Comunque ben venga un po' di disputa
Nessuna polemica ma sinceramente non vedo come una risposta talmente idiota possa essere in qualche modo benvenuta.
Contenti voi, io vi auguro buona continuazione. Però poi non vi lamentate se nessuno dà un feedback ai vostri esperimenti di programmazione.
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 07 Luglio 2009, 12:59:38
 Ehm... fermi tutti! Nelle mie parole non c'era volontà di "litigare" o di scontrarmi con qualcuno. Roberto, se é questa l'impressione che ti ho dato ti chiedo scusa.
Volevo solamente dire che mi fa piacere vedere un po' di movimento ed un po' di idee, anche contrastanti, attorno allo scroller che sto scrivendo.
Detto questo spero i toni possano tornare quelli di un normale thread tecnico.
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 08 Luglio 2009, 00:07:18
Qualche sprite improvvisato ed una piccola correzione nel bordo inferiore...
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 17 Agosto 2009, 17:22:44
Ciao a tutti, posto l'ultima versione che ho nel PC per una questione di completezza: nessuna novità, solo alcuni aggiustamenti tecnici.
- Uso dei pointer $FFFE/$FFFF per la chiamata degli IRQ, con un risparmio di qualche decina di cicli per frame
- Fix di un errore di inizializzazione che non permetteva al codice di girare su un 64 vero
- Aggiustamenti alle routine di scrittura delle colonne e delle righe di tile
- Risistemazione della documentazione.
Dal momento che non so bene se continuerò a lavorarci, preferisco uploadare almeno questo prodotto "semifinito".
Se avrò tempo (e, lo ammetto, anche voglia) cercherò di buttare giù uno sprite multiplexer per tentare poi in un successivo momento di inserirlo in questo scroller.
Titolo: Agsp V0.1 Wip
Inserito da: sys58255 - 17 Agosto 2009, 19:03:52
 OK, grazie per il tuo lavoro.

Con l'occasione auguro buone vacanze.
Titolo: Agsp V0.1 Wip
Inserito da: Freshness79 - 21 Agosto 2010, 02:42:13
Son tornato su questo programma perchè mi sono accorto di alcuni piccoli ma rognosi bug.
Questa versione permette di girare nella mappa oltrepassando i bordi: i blocchi orizzontali che avevo messo nelle precedenti versioni servivano a "coprire" un baco che non avevo mai sistemato.
Oltre a questo solo qualche piccola ottimizzazione nelle routine di aggiornamento riga e colonna.