{"id":879,"date":"2019-11-11T14:53:32","date_gmt":"2019-11-11T13:53:32","guid":{"rendered":"https:\/\/ceobeta.oric.org\/?p=879"},"modified":"2019-11-11T14:53:32","modified_gmt":"2019-11-11T13:53:32","slug":"blasto","status":"publish","type":"post","link":"https:\/\/oric.bqtt.net\/index.php\/2019\/11\/11\/blasto\/","title":{"rendered":"Blasto"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Mars 2014, l&#8217;acte 4 des d\u00e9veloppements retrouv\u00e9s de Dan Cresp sur Oric. Cette fois-ci, le d\u00e9veloppement a \u00e9t\u00e9 limit\u00e9 au Commodore, au MSX et la notre petite machine en rouge et noir<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Infos g\u00e9n\u00e9rales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le d\u00e9veloppement de la version ORIC est issu de la version MSX.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/blasto-msx-real.jpg\" alt=\"\" class=\"wp-image-915\"\/><figcaption>Le MSX, arm\u00e9 de son Z80 et son Basic Microsoft<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En l&#8217;absence de temps libre, l&#8217;auteur a profit\u00e9 de trajets en train pour programmer le jeu avec la version MS-DOS de l&#8217;\u00e9mulateur EUPHORIC. En effet, la saisie de programme est tr\u00e8s facilit\u00e9e avec cet \u00e9mulateur qui accepte l&#8217;utilisation du clavier au format du PC (NDLR : j&#8217;ai toujours \u00e9t\u00e9 ennuy\u00e9 avec le clavier propos\u00e9 par Oricutron sur la ROM Atmos de base). Le TAP a \u00e9t\u00e9 cr\u00e9e avec &#8220;Oricutron&#8221; sous Windows, j&#8217;ai g\u00e9n\u00e9r\u00e9 le listing dans un fichier texte et je l&#8217;ai comment\u00e9 plus tard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le listing de cette version est tr\u00e8s similaire, et certaines parties sont identiques, \u00e0 celle de la version MSX ; tout en prenant en compte les particularit\u00e9s de chaque syst\u00e8me. Ainsi, l&#8217;adresse de la m\u00e9moire vid\u00e9o et la m\u00e9thode de lecture des commandes du navire ont \u00e9t\u00e9 modifi\u00e9es. Certaines lignes ont \u00e9t\u00e9 d\u00e9pli\u00e9es pour \u00e9viter des probl\u00e8mes avec le &#8220;bogue&#8221; de l&#8217;instruction ELSE de l&#8217;Oric.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est un excellent exemple pour comparer les performances de ces deux syst\u00e8mes, et bien que les deux versions fonctionnent parfaitement, le MSX a d\u00fb &#8220;ralentir&#8221; pour \u00e9viter que ce ne soit trop rapide tandis que pour l&#8217;Oric, cela n\u2019a pas \u00e9t\u00e9 n\u00e9cessaire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 cet \u00e9gard, je dois reconna\u00eetre que m\u00eame si la vitesse est parfaite, je m&#8217;attendais \u00e0 de meilleures performances cot\u00e9 ORIC. Gardez \u00e0 l&#8217;esprit que, dans les deux versions, POKE se trouve directement dans la m\u00e9moire vid\u00e9o pour gagner du temps et qu&#8217;il n&#8217;y a pas beaucoup de lignes de code \u00e0 ex\u00e9cuter, sauf dans le cas d&#8217;une explosion dans une mine ou d&#8217;une mine \u00e0 cha\u00eenes, et dans l&#8217;ORIC, il en jette juste assez.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Blastos.png\" alt=\"\" class=\"wp-image-919\"\/><figcaption>Vous \u00eates plut\u00f4t Oric ou Arcade ?<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Principaux \u00e9carts par rapport \u00e0 l&#8217;arcade d&#8217;origine:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Le jeu original autorise 2 joueurs simultan\u00e9s et un seul ici.<\/li><li>L\u2019\u00e9cran a 28 lignes et ici il y en a 26 (22 en MSX).<\/li><li>Dans le jeu original, il y a 84 mines et ici 78 (64 en MSX), l\u2019aire de jeu \u00e9tant un peu plus petite.<\/li><li>Les graphiques sont l\u00e9g\u00e8rement diff\u00e9rents de la version originale.<\/li><li>Cette version ne permet pas l&#8217;utilisation du joystick.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pour le reste, la m\u00e9canique du jeu a \u00e9t\u00e9 pleinement respect\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les petites choses de la version ORIC<br>Comme toujours lors de la programmation sur l&#8217;ORIC, les graphismes ont d\u00fb \u00eatre repens\u00e9s car au lieu de la matrice habituelle de 8&#215;8 pixels, nous passons \u00e0 une matrice de 8&#215;6. Ainsi, l&#8217;explosion (qui occupe 9 blocs) a d\u00fb \u00eatre coup\u00e9e \u00e0 6 pixels horizontalement, le navire a d\u00fb \u00eatre redessin\u00e9 pour le laisser dans une taille r\u00e9elle de 5&#215;5 pixels et les mines ont une apparence diff\u00e9rente.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Blasto_3.jpg\" alt=\"\" class=\"wp-image-923\"\/><figcaption>La magnifique aire de jeu de l&#8217;Oric<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9tant donn\u00e9 que l&#8217;ORIC dispose d&#8217;un mode texte de 26 lignes et de 40 colonnes, l&#8217;apparence de la zone de jeu est presque identique \u00e0 celle de la version arcade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour le contr\u00f4le du navire, le clavier est lu \u00e0 l&#8217;aide d&#8217;un &#8220;PEEK 520&#8221;, ce qui \u00e9vite les probl\u00e8mes de bo\u00eetier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et pour le son, une fois encore, j&#8217;ai tir\u00e9 les pr\u00e9d\u00e9finis de l&#8217;ORIC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9action en cha\u00eene<br>Le jeu est techniquement tr\u00e8s simple et la seule difficult\u00e9 est de savoir comment r\u00e9soudre le probl\u00e8me des explosions de mines \u00e0 cha\u00eenes, car il peut facilement y avoir 2 mines ou plus ensemble. Pour cela, j&#8217;ai cr\u00e9\u00e9 une matrice de 78 \u00e9l\u00e9ments (un par mine) avec deux pointeurs: &#8220;M&#8221; et &#8220;N&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque notre tir d\u00e9tecte que nous avons touch\u00e9 une mine, il augmente le pointeur \u00abN\u00bb, enregistre sa position dans la matrice et l\u2019efface de l\u2019\u00e9cran. Les positions autour sont examin\u00e9es ci-dessous. Chaque fois qu&#8217;une autre mine est trouv\u00e9e, la m\u00eame action est effectu\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A la ligne 140, nous voyons si le pointeur &#8220;M&#8221; est inf\u00e9rieur \u00e0 &#8220;N&#8221; et si c&#8217;est vrai, nous allons \u00e0 la routine qui les fait exploser, en augmentant le pointeur &#8220;M&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Blasto_5.jpg\" alt=\"\" class=\"wp-image-924\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eh bien, rien de plus, je ne peux qu\u2019esp\u00e9rer que cela vous plaise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je vous invite \u00e0 l&#8217;essayer.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Quelques \u00e9l\u00e9ments concernant le programme<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Le programme a \u00e9t\u00e9 divis\u00e9 en 10 blocs:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>D\u00e9claration de matrice. Appel aux routines principales.<\/li><li>Contr\u00f4le des navires.<\/li><li>Contr\u00f4le du tir.<\/li><li>Fin du jeu.<\/li><li>Le coup a touch\u00e9 quelque chose.<\/li><li>D\u00e9truire une mine.<\/li><li>Perdre une vie.<\/li><li>Pr\u00e9sentation et d\u00e9but du jeu.<\/li><li>Plusieurs routines.<\/li><li>DATA avec les UDG du jeu et la conception de la zone de jeu.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;ensemble du programme occupe 73 lignes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, j&#8217;indique le principe des diff\u00e9rentes parties du programme:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>10 &#8211; Nous d\u00e9finissons les matrices du jeu.<\/li><li> 50 &#8211; Acc\u00e9dez au sous-programme qui lit les graphiques, red\u00e9finit les caract\u00e8res et d\u00e9finit les variables globales et le mode vid\u00e9o.<\/li><li> 100 &#8211; D\u00e9but de la boucle principale.<\/li><li> 102 &#8211; Le clavier est consult\u00e9 et si aucune touche n&#8217;est enfonc\u00e9e, il passe \u00e0 140.<\/li><li> 110 &#8211; Le navire se d\u00e9place en fonction de la touche enfonc\u00e9e.<\/li><li> 140 &#8211; S&#8217;il y a une mine en attente d&#8217;exploitation, reportez-vous \u00e0 la routine 350 correspondante.<\/li><li> 150 &#8211; Contr\u00f4le de tir. S&#8217;il est actif, passez \u00e0 160 et si ce n&#8217;est pas le cas, v\u00e9rifiez si le d\u00e9clencheur a \u00e9t\u00e9 enfonc\u00e9<\/li><li> 160 &#8211; D\u00e9placez le coup en fonction de sa direction.<\/li><li> 190 &#8211; Le temps disponible pour terminer le jeu est r\u00e9duit.<\/li><li> 200 &#8211; Si le temps le permet, passez \u00e0 100.<\/li><li> 205 &#8211; Fin de partie o\u00f9 il est contr\u00f4l\u00e9 si le record est d\u00e9pass\u00e9 et si toutes les mines ont \u00e9t\u00e9 d\u00e9truites.<\/li><li> 300 &#8211; Contr\u00f4le que vous avez touch\u00e9 le coup.<\/li><li> 350 &#8211; Routine qui contr\u00f4le la destruction des mines \u00e0 cha\u00eenes.<\/li><li> 400 &#8211; Une mine a explos\u00e9 \u00e0 proximit\u00e9 et notre navire est d\u00e9truit.<\/li><li> 2000 &#8211; \u00c9cran initial du jeu.<\/li><li> 2500 &#8211; Initialise les variables pour le jeu et la routine qui place les mines.<\/li><li> 2600 &#8211; Position initiale de notre navire.<\/li><li> 2700 &#8211; Routine qui montre le labyrinthe de points \u00e0 l&#8217;\u00e9cran, sans les mines.<\/li><li> 3000 &#8211; S\u00e9lection des couleurs, effacement de l\u2019\u00e9cran, masquage du curseur et masquage des \u00abCAPS\u00bb sup\u00e9rieurs.<\/li><li> 3010 &#8211; Lire les donn\u00e9es UDG.<\/li><li> 3015 &#8211; Lecture des DONNEES des segments de l&#8217;aire de jeu.<\/li><li> 5100 &#8211; Routine montrant le marqueur de point.<\/li><li> 5400 &#8211; Routine indiquant la fin du jeu ou un message de jeu gratuit.<\/li><li> 9000 &#8211; DONN\u00c9ES avec graphiques UDG.<\/li><li> 9100 &#8211; DATA avec les diff\u00e9rentes lignes qui composent l\u2019aire de jeu.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Le jeu<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Ce jeu vid\u00e9o pour syst\u00e8mes d&#8217;arcade a \u00e9t\u00e9 d\u00e9velopp\u00e9 en 1977 par la soci\u00e9t\u00e9 Gremlin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;objectif du jeu est de d\u00e9truire toutes les mines du champ de mines avant la fin du temps imparti. Pour cela, nous avons un navire que nous pouvons d\u00e9placer \u00e0 travers les zones vides de l\u2019\u00e9cran et qui peut tout d\u00e9truire. Il faut faire attention, car lorsque les mines explosent, elles d\u00e9truisent ce qui les entoure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si nous atteignons notre objectif, nous aurons un jeu gratuit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contr\u00f4les:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Contr\u00f4ler le navire avec Q &#8211; A &#8211; O &#8211; P.<\/li><li>Appuyez sur la &#8220;espace&#8221; pour tirer.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Quelques autres versions<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Blasto_1-msx.jpg\" alt=\"\" class=\"wp-image-916\"\/><figcaption>Blasto sur MSX<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Blasto_4-c64.jpg\" alt=\"\" class=\"wp-image-917\"\/><figcaption>et sur Commodore<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Mars 2014, l&#8217;acte 4 des d\u00e9veloppements retrouv\u00e9s de Dan Cresp sur Oric. Cette fois-ci, le d\u00e9veloppement a \u00e9t\u00e9 limit\u00e9 au Commodore, au MSX et la notre petite machine en rouge et noir Infos g\u00e9n\u00e9rales Le d\u00e9veloppement de la version ORIC est issu de la version MSX. En l&#8217;absence de temps libre, l&#8217;auteur a profit\u00e9 de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":924,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[337,348,22,362],"tags":[664,765],"class_list":["post-879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-337","category-basic","category-ceomag","category-games","tag-ceomag355","tag-dancresp"],"_links":{"self":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/comments?post=879"}],"version-history":[{"count":0,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/879\/revisions"}],"wp:attachment":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/media?parent=879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/categories?post=879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/tags?post=879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}