Autore Topic: Si puo' usare multipaint per fare un intro di un gioco?  (Letto 1209 volte)

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Si puo' usare multipaint per fare un intro di un gioco?
« il: 29 Luglio 2024, 12:51:44 »
Salve a tutti,
ho visto che qualcuno già in passato si era cimentato con multipaint.
Qualcuno sa come usare questo tool per fare una intro di un gioco?
Il programma funziona bene per caricare e esportare immagini in modo bit map ma non capisco come si possa inserire in un programma (basic o asm) che possa richiamare l'immagine.

Multipaint esporta le immagini in un file eseguibile .prg ma se chiamo il .prg dal basic poi il programma non ritorna al basic e bisogna digitare runstop/restore per riprendere la mano.
Multipaint esporta anche in formato .bin e quindi teoricamente si potrebbe tentare con CBM PROGRAM STUDIO con istruzione incbin nell'ASM. Il problema è che il file .bin eccede la dimensione max prevista da CBM PROGRAM STUDIO

Se qualcuno ha qualche dritta o magari la cosa non si puo' fare

Ciao

Grazie

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #1 il: 29 Luglio 2024, 19:05:06 »
Ciao!
Prima di scegliere gli strumenti da usare è importante conoscere il meccanismo che permette di selezionare un certo modo video e puntare il chip grafico a un insieme di dati corrispondenti a un'immagine.
Una volta capito questo meccanismo, la cosa più banale che si può fare è creare un sorgente assembly e usare le direttive di inclusione binaria per incorporare nel file assemblato gli asset che compongono l'immagine. Nel sorgente dovrai mettere le istruzioni per copiare questi dati in delle aree di memoria adatte e per impostare il chip grafico.
Ma ci sono tanti altri modi. Si può fare qualcosa di molto simile anche in basic, oppure puoi tenere separati il programma e gli asset e, usando un cruncher come Exomizer, fare in modo che all'avvio tutti i dati vengano decompressi automaticamente nelle aree di competenza.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #2 il: 31 Luglio 2024, 12:41:19 »
Ciao e grazie per dritta: sì in effetti forse si può fare.
Ho visto che multipaint può esportare in un file testo tutti gli 8000 bytes del bitmap e i 1000 bytes del colore. Sto provando a metterli in CBM program studio in file asm con istruzione BYTE.
Se poi faccio un loader in basic, dovrebbe andare.
Ti aggiorno

Giovanni

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #3 il: 27 Agosto 2024, 16:15:09 »
di nuovo io...pensavo fosse più facile...
ho fatto un loader in basic per l'immagine (mainbasic.bas nella cartella zippata) ma mi da sempre errore con corruzione del programma se vado a fare list della riga incriminata. Credo ci sia un problema di sconfinamento in zone di memoria proibite o di sovrapposizione del basic con i dati bitmap.
Se dal mainbasic.bas tolgo tutti i data dei bitmap (righe 12-648) e lascio solo la memoria schermo, il programma gira e i colori sono caricati correttamente.
Se scrivo il loader in assembly ho il problema opposto: ho un errore (undef' statement error) ma se pulisco lo schermo e do SYS49152 l'immagine bitmap si vede mentre i colori non sono caricati.
Qualcuno riesce a darmi una dritta?

Grazieeee
Grazie

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #4 il: 27 Agosto 2024, 22:29:09 »
Il programma basic si sovrascrive da solo: si carica da 2049 a 34591 e poi alla riga 12 tenta di scrivere nell'area 8192 - 16191. Usa la selezione del banco (tramite il registro $DD00) e le impostazioni per screen RAM e bitmap RAM per usare una zona non occupata dal programma basic. Ad esempio potresti scegliere $E000 - $FF40 per i dati bitmap. Lascio a te il resto.

Il programma asm, invece, è fatto in modo che i dati screen e bitmap si trovino già a destinazione una volta caricato. Il problema è che i colori vanno a finire nella screen ram quando sia tu che il sistema operativo la state ancora usando come pagina di testo. Dopo il caricamento, il sistema scrive "READY", corrompendo parzialmente i colori; tu digiti la SYS in mezzo a una selva di caratteri estranei (i dati del colore) e come risultato il comando non viene eseguito. Potresti provare a collocare i dati colore un po' più avanti, ad esempio a $0800 (ricorda di impostare correttamente $D018).
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #5 il: 28 Agosto 2024, 12:58:28 »
Grazie ci provo.

Per il BASIC, si possono spostare i puntatori più avanti per far cominciare il basic dopo locazione 16192?
Ho comunque il dubbio che con 32k di basic andrei comunque a sconfinare in zone non consentite

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #6 il: 01 Settembre 2024, 22:45:44 »
Non c'è abbastanza spazio per spostare un programma di queste dimensioni così avanti.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #7 il: 05 Settembre 2024, 18:39:41 »
Ciao Carmine,
grazie suggerimenti: mitici!!!
 
Ho fatto il loader in basic (allegato main basic.txt che puoi copiare come file.bas in CBM program studio) con il video bank e le locazioni che mi hai suggerito e funziona bene.
E' un po' lento ma vale la pena di attendere perchè l'immagine da Multipaint è veramente notevole (sicuramente riconoscerai...).
L'unica cosa è che quando sul fine programma esco dal modo bitmap e rientro sul video bank di default per dare all'utente la possibilità di premere spazio e uscire, il programma si inchioda.
Cosa sbaglio?

Grazie


Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 45
  • Gioco Preferito: Archon
Re:Si puo' usare multipaint per fare un intro di un gioco?
« Risposta #8 il: 06 Settembre 2024, 13:04:32 »
ciao Carmine,
trovato inghippo: non avevo sistemato il KERNAL con poke 648,4

Ora tutto ok

Grazie di tutto