Login
Mars+ Lander
Title:Mars+ Lander
Category:Game/Landing
Release Date:
Language:English
Size:64K
Machine:PAL & NTSC
Code Type:Basic + Machine code
Distribution:Freeware
 Play Online!
Code by:raze
Notes:AKA MarsPlus Lander.
No votes yet.
Mars+ Lander Title Screenshot

Mars+ Lander Screenshot


Appeared On Compilations
Club Info 158


Publications
Review: Retro Gamer 204 (Magazine/English) pg. 107


Compos
ComposCategoryRankScoreNotes
RetroProgramming Italia Lander Challenge0(n/a)Due to some controversy raised during the trial phase, it was decided for a generic evaluation that does not produce any ranking.


Description
MARS+ LANDER

Giuseppe Mignogna (novembre 2019)


Introduzione
-----------------
Questo software è stato testato con gli emulatori Yape 1.1.7 e plus4emu 1.2.9.2. Il codice è stato sviluppato
usando il cross-compiler cc65 e l'editor basic del plus/4. Il gioco compilato è presente sull'immagine del disco
mars.d64. Per caricarlo con un emulatore, associare l'immagine del disco al drive 8 e dare il comando DLOAD
"MARS". Una volta terminato il caricamento, digitare il comando RUN. Sullo stesso disco è presente anche
un'immagine di presentazione che può essere caricata con DLOAD "TITLESCR".


Descrizione gioco
-----------------------
Scopo del gioco è far atterrare una navicella spaziale sulla sua piattaforma, cercando di evitare di
danneggiarla e cercando di non far terminare il carburante. La navicella si danneggia se tocca il terreno (anche
piano) o la piattaforma, se troppo veloce o non è centrata. Sono presenti anche delle meteore che
ugualmente possono danneggiare la navicella.

La navicella si pilota attraverso i tasti cursore destra, sinistra e su.


Descrizione codice
------------------------
Per questo gioco ho sperimentato una tecnica che mi ha permesso di usare il linguaggio basic ed al tempo
stesso il linguaggio C. Attraverso la modifica dei puntatori di inizio e fine basic ho diviso la memoria del plus/4
in due aree principali, una dedicata al codice basic ed una al codice l/m (ovvero al codice C compilato). Tutte
e due queste aree di trovano dopo la memoria dedicata alla bitmap grafica.

Una volta modificati i puntatori, lo sviluppo della parte basic è avvenuto normalmente, usando l'editor del
plus/4 (non è stato utilizzato CBM prg Studio perché avrebbe complicato troppo le cose). Il codice C invece è
stato realizzato sotto Windows usando Notepad++ e compilato usando cc65.

Il codice basic si occupa di:
- attivare la modalità grafica e modificare i puntatori del basic;
- disegnare la schermata introduttiva;
- suonare la musica introduttiva;
- disegnare lo scenario di gioco;
- gestire i livelli;
- richiamare il codice l/m che esegue il gioco vero e proprio. In particolare, è possibile richiamare una
specifica procedura con i relativi parametri attraverso l'uso di alcune locazioni di memoria condivise.

Il codice C (compilato in linguaggio macchina) si occupa di:
- gestire l'input dell'utente;
- disegnare e far muovere lo sprite della navicella;
- disegnare e far muovere gli sprite delle meteore;
- aggiornare la barra del carburante e le icone che indicano il danneggiamento della navicella;
- rilevare le collisioni con il terreno e le meteore;
- disegnare i pixel che simulano l'esplosione della navicella.

In particolare, è degna di nota la procedura che si occupa di disegnare gli sprite e di rilevarne le collisioni. È
in grado di disegnare sprite con dimensioni variabili di blocchi da 8 pixel per lato (ad esempio, 1x1, 2x2, 3x2,
2x3, 4x4 blocchi da 8 pixel, ecc.). Può disegnare gli sprite quasi
in ogni punto dello schermo e di rilevare
collisioni anche di un singolo pixel su di un altro singolo pixel, che sia di background o di un altro sprite. Al
momento è sufficientemente veloce (ma c'è spazio per delle ottimizzazioni, come in tutto il codice del resto)
e non gestisce i colori.

Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon