Articles

Affichage des articles du octobre, 2012

Création de jeux sous MSX : Création de la librairie graphique

Image
Aujourd'hui, on va mettre en place la seconde brique de notre librairie de jeu. Nous allons créer et compiler video.c.

Dans le répertoire TUTORIAL_TEST créez 2 fichiers, à savoir video.c et video.h.

Pour ce tutorial, nous allons créer les procédures :

    void screen_mode_2() : pour passer le MSX en mode vidéo 2 (mode graphique identique à celui de la COLECO)
    void put_vram(void* block,int vramaddr,int size) : pour écrire un bloc de la RAM vers la VRAM   

Un mot sur le mode 2 du MSX :

Le mode Vidéo 2 du MSX est le mode vidéo qui se rapproche le plus de celui de la Coleco. Ce mode vidéo est composé :

    - d'un écran de 32*24 caractères
    - de 3 tables de 255 caractères
    - de 3 tables de codes couleurs pour chaque caractères

Si on découpe l'écran en 3 de manière horizontale, la 1ere table de caractère est pour le tiers haut. (y = 0 à 7). La seconde table de caractère est pour le tiers du milieu, la troisième table de caractère est pour le tiers bas.

Par exemple, s…

Début de conversion de Lock'n Chase sur MSX

Image
Les tutos vont continuer, mais de mon coté je tente d'adapter la librairie Coleco au MSX. Et finalement, ce n'est pas ça le plus problématique.

Je suis parti de mon code source de Lock'n Chase sur Coleco que j'ai recompilé tel quel sur MSX, en ayant pris soin d'adapter les portions de librairies nécessaire bien sur. 2 gros problèmes sont apparus ...

Le modulo (%) qui fonctionne sur Coleco (mais est gourmand en processeur) ne fonctionne pas sur MSX ... Je ne vois vraiment pas pourquoi ... Je n'ai pas analyser la source assembleur, j'ai plutôt remplacer par l'opérateur AND qui est plus rapide et faire la même chose bien utilisé. Exemple :

if ((mavariable%8))==0 {} est remplaçable par if  (mavariable&7))==0 {} hélas, j'avais un modulo 10, que je ne peux pas remplacer comme cela. L'animation devra être plus rapide car j'ai utilsé un &7.

Ensuite, j'ai l'impression que je ne dispose pas de 32 ko de rom mais peut être uniquement de …

Création de jeux sous MSX : Création de la librairie "Outils"

Image
Aujourd'hui, on va mettre en place la première brique de notre librairie de jeu. Nous allons créer et compiler tools.c. Cette première brique va contenir des fonctions génériques qui nous servirons plus tard.

Dans le répertoire TUTORIAL_TEST créez 2 fichiers textes, à savoir tools.c et tools.h.

En C, les .c contiennent les procédures et fonctions, et les .h, uniquement les signatures des procédures et fonctions.
Ainsi dans votre programme PRINCIPAL vous incluez les .h et le compilateur sait que les procédures et fonctions existe, et donc ne renvoit pas d'erreur.

Mais pour le moment, concentrons nous à créer la librairie "outils", première brique de notre librairie de jeu.

Pour ce tutorial, nous allons créer les procédures :

char peek(int address) : Lecture d'un octet en mémoire (8 bits)
int peek_word(int address) : Lecture d'un mot en mémoire (16 bits)

Dans tools.c, copiez collez le code suivant :

#include "tools.h"
#include <stdio.h>
#include &…

Création de jeux sous MSX : Mise en place des outils

Image
Bienvenue dans ce premier tutorial sur la programmation de jeux sous MSX.
Dans cette série de tutoriaux, vous allez apprendre en même temps que moi à :

- mettre en place les outils de compilation
- développer une librairie de jeu vidéo pour MSX, compatible au maximum avec la librairie
  existante sur Colecovision (par Daniel Bienvenu)
- tester cette librairie au fur et à mesure pour voir si tout ce passe bien :)


NOTE : Ces tutoriaux n'auraient jamais pu voir le jour sans les références suivantes :

http://andrear.altervista.org/contents/msx/inertia/

Dans cette première partie, je vais vous expliquer les outils à mettre en place pour compiler une rom MSX.

A télécharger :

 - SDCC : http://sdcc.sourceforge.net/

  SDCC est ce que l'on apelle un cross compiler. Il permet à partir d'un code source en C de générer de l'assembleur pour un autre processeur. Le pack SDCC contient également de quoi compiler l'assembleur généré

 - OBJCOPY : http://www.ccjvq.com/newcoleco/

  OBJ…

Bidouille ... Grenouille.

Image
Les quelques personnes qui suivent mon blog reconnaîtrons dans l'image ci dessus un des fonds de Youki pour la version Coleco de Bomb Jack. Sauf que ... ceci tourne sur ... MSX !
Concrètement, je suis en train d'adapter la librairie Coleco de Daniel Bienvenue sur MSX. Alors pour le moment, c'est hyper lent, mais j'arrive déja à afficher les fonds non compressé, à partir de l'outil graphique Coleco, ainsi qu'à afficher des sprites.
J'ai encore plein d'interrogations, mais je pense que je ferais des petits tutos pour expliquer comment développer en C sur MSX avec quasiment tout les mêmes outils que sur la Coleco. 
Et au passage, j'ai du me mettre quelquepeut à l'assembleur :) :)

Attack wave editor

Image
Lors du développement d'Ozma Wars, une des difficultés à été de copier les mouvements des ennemis de la version Arcade, à la version Coleco. J'ai du tout me taper à la main, dans une structure en C du genre :

 Pendant 3 mouvement tu vas faire x=x-1 et y=y+1
 Pendant 5 mouvement tu va faire y=y+1
 Boucle

Depuis pas mal de temps je me disais que je devais coder quelquechose qui permettait de définir graphiquement ces mouvement d'ennemis, et c'est maintenant fait :) Le seul éditeur de ce genre que je connaisse est dans "Shoot em up construction Kit" sur C64 ou on définissait les vagues d'attaques à la manette.

Ici vous vous servirez du clavier de de la souris. C'est très "roots", ça à été codé en quelques heures, mais dans l'archive que vous trouverez plus bas, il y à le code source, si vous désirez améliorer la chose. Attention, le code source n'est pas du tout "propre" et vraiment codé à l'arrache ...

Voici les commande…

WIP d'Ozma Wars PC Engine

Image
Voici une vidéo d'Ozma Wars PC Engine, avec intégration des graphismes retravaillés par Crapahute. Ce n'est pas encore la dernière version des graphismes. Les sprites s'accorderont mieux avec le fond.


BFG Bulletin news 12/10/2012

Image
Plusieurs annonces que je regroupe dans un seul billet.

- Je "quitte" CollectorVision. Ce qui ne veut pas dire que je n'éditerais plus de jeu chez CollectorVision, mais que je pourrais monter mes propres équipes de beta test et éventuellement bosser sur des projets qu'on me propose. Ma décision à été mûrement réfléchit et j'ai prévenu CollectorVision il y à une demi heure.

- Je continue à développer sur Colecovision. Je m'ennuyais, je ne savais pas quoi coder, puis encore une fois, ma petite routine de boule de pang à encore frappé, les fonds graphiques de Youki aussi et voici le résultat en vidéo :



Le sprite devrait changer au final, pour quelquechose de plus lisible en 2 couleurs. Le fond des bombes va également changer dans certains nivaux. Bref, il y à encore énormément de travail à effectuer, et ça sera certainement pour l'année prochaine.

- En parallèle je continue à bidouiller sur la PCEngine, même si pour le moment c'est plus pour le fun que p…

Pacman Collection offert par OPCODE !!

Image
Le sublime Pac-man collection d'OPCODE sur Colecovision est offert à cette adresse : http://www.atariage.com/forums/topic/131570-pac-man-collection-colecovision-completed-going-beta-test/page__st__700#entry2615022 à condition d'être inscrit sur Atariage.

C'est OPCODE lui même qui offre cette rom. Pour la tester, un seul émulateur est capable de la faire tourner, c'est BlueMsx. Lors de l'ouverture de la rom, il faut choisir dans la liste déroulante du dessous l'option "Colecovision Megacart(r)"


Bon amusement, car ce portage est tout simplement FABULEUX !

Lock'n chase RC2.8 envoyé à CollectorVision

Image
On va y arriver !! La release candidate 2.8 à été envoyé à CollectorVision. Quoi de plus dedans ? Et bien carrément un mode de jeu "inédit" à la Colecovision. Au lieu de toujours tourner sur le même labyrinthe, il y en aura d'autres !! (2 laby de plus). Pourquoi cela risque d'être la toute dernière release, parce qu'il ne reste que 700 octets dans la rom pour corriger des bugs le cas échéant, et que j'ai décidé qu'il n'y aura plus d'évolutif sur ce jeu, qui je pense est relativement addictif si on cherche à scorer !

EDIT :

L'extended mode en vidéo :