Autore Topic: Compilazione di un gioco  (Letto 1175 volte)

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 39
  • Gioco Preferito: Archon
Compilazione di un gioco
« il: 18 Settembre 2020, 21:09:31 »
Ciao a tutti,
vorrei compilare un giochino che ho realizzato e che è in larga parte in BASIC quindi lento come la Quaresima.
Ho provato con BLITZ ma la compilazione sembra avvenire normalmente solo che poi il file compilato una volta lanciato mi da errore e non funziona.
Se qualcuno avesse un suggerimento, mi aiuterebbe molto.
Anche un altro compilatore: io ho sempre usato BLITZ ma magari c'è qualcosa di meglio.

Giusto in caso allego il file PRG del giochino


eregil

  • Administrator
  • Utente
  • *****
  • Post: 706
  • Gioco Preferito: Impossible Mission
Re:Compilazione di un gioco
« Risposta #1 il: 19 Settembre 2020, 13:47:19 »
Nel tuo programma BASIC, manipoli le locazioni nell'area che inizia a 13568 con delle POKE. Probabilmente, il compilato occupa più spazio del programma BASIC e una sua parte si trova in quelle locazioni. In pratica, l'area di memoria utilizzata dal programma si modifica, danneggiando il programma stesso.

La soluzione non sarà proprio semplice, dovrai rivedere tutto l'utilizzo della memoria, in maniera che non ci siano conflitti con quanto generato da Blitz. Non escludo che debba tentare l'utilizzo del banco 3 per il VIC e dell'area a 49152 anche per le routine in linguaggio macchina.
« Ultima modifica: 19 Settembre 2020, 13:49:30 da eregil »
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

Giovanni Casati

  • Neo-iscritto
  • *
  • Post: 39
  • Gioco Preferito: Archon
Re:Compilazione di un gioco
« Risposta #2 il: 19 Settembre 2020, 14:55:58 »
Grazie 1000,
in effetti ho tentato di mettere tutto nel VIDEO BANK 0-16K per maggiore semplicità ma il BASIC è troppo lungo ed arriva a ridosso della locazione 12288 dove ci sono i caratteri custom per questo ho spostato i frame degli sprites a cominciare dalla locazione 13568.
Mi sa allora che la soluzione è usare un altro VIDEO BANK per video, caratteri e sprites.
Che soluzione vedi? Forse il 32?

Le routine in LM cominciano in locazione 20000 quindi non credo vadano a confliggere.

Bel casino adesso...

0scur0

  • Neo-iscritto
  • *
  • Post: 34
  • Gioco Preferito: -
Re:Compilazione di un gioco
« Risposta #3 il: 19 Settembre 2020, 19:48:28 »
@Giovanni Casati

In generale un compilatore BASIC è pensato per processare e ottimizzare codice la cui gestione nella memoria del calcolatore è supervisionata dall'interprete BASIC.
Quando in un programma BASIC si leggono valori DATA, in genere si va a collocare in memoria una serie di valori numerici che possono rappresentare codice in liaguaggio macchina, dati per gli sprites o per l'alta risoluzione, tabelle di lookup, valori per la programmazione di registri e tanto altro ancora, ma che in ogni caso NON vengono gestiti dall'interprete. Come detto da eregil, è pertanto probabile che il compilatore (che si appoggia all'interprete per ricavare la semantica delle varie istruzioni e ottimizzarle) non abbia cognizione di quella parte di codice, che quindi viene banalmente sovrascritto  durante la compilazione da altro codice BASIC gestito.