[URL=http://img197.imageshack.us/i/flipelvira.jpg/][IMG]http://img197.imageshack.us/img197/5672/flipelvira.jpg[/IMG][/URL]
j'ai d'abord trouvé l'image d'intro assez hideuse. La LYNX est certes limité à 16 couleurs, mais ce n'est pas une raison. J'ai donc fait 2 versions à partir de l'original ci-dessus, une version horizontale et verticale, preuve qu'il est possible en peu de temps (mais avec beaucoup d'amour), de faire beaucoup mieux :
Fichier joint : elvira1.o
(bouton A ou B pour changer de fond)
/*
Elvira 0.1 - LYNX - kit BLL (newcc65)
Travail graphique
04/11/2010
LYNX-image */
#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
/* LYNX-specific #defines: */
#define JOY_RIGHT 0x10
#define JOY_LEFT 0x20
#define JOY_DOWN 0x40
#define JOY_UP 0x80
#define BUTTON_OPTION1 0x08
#define BUTTON_OPTION2 0x04
#define BUTTON_LEFT 0x02
#define BUTTON_RIGHT 0x01
#define BUTTON_PAUSE 0x01
char SCREEN[8160] at (MEMTOP-16320);
char RENDER[8160] at (MEMTOP-8160);
char pala[]={
0x00,0x03,0x00,0x03,0x04,0x05,0x00,0x0A,0x08,0x00,0x07,0x08,0x09,0x0A,0x0B,0x00,
0x00,0x03,0x50,0x06,0x45,0x76,0xA0,0x01,0x47,0x0C,0x88,0x08,0x6B,0x0C,0xCF,0x00};
char palb[]={
0x0A,0x01,0x05,0x08,0x05,0x0E,0x07,0x02,0x07,0x09,0x07,0x01,0x01,0x02,0x0D,0x00,
0x3F,0x51,0x08,0x0F,0x78,0x4F,0x0C,0x45,0x6C,0x7F,0xF5,0x05,0x0B,0x1F,0xCF,0x00};
char palc[]={
0x07,0x03,0x06,0x03,0x00,0x0F,0x02,0x02,0x05,0x0A,0x01,0x0E,0x09,0x0A,0x04,0x06,
0xF7,0xC3,0xBA,0x84,0x31,0xFF,0x46,0x2F,0x78,0xEE,0x0B,0xAF,0xAE,0x4F,0x2A,0x5E};
// ------------------------------------
extern char elvira[]; // image d'origine du jeu, baclé en beauté, d'une taille de 160*102;
extern char elvirb[]; // image d'origine, plus respectueuse, d'une taille de 160*102;
extern char elvirc[]; // image d'origine, plus respectueuse + console à la verticale, d'une taille de 160*102;
char SCB[];
#asm
_SCB dc.b $c0,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm
// ------------------------------------
// carre rouge de 8*8
// couleur RGB: 255 0 0
// couleur hexadecimal: FF 00 00
extern char rr[];
char SCBr[];
#asm
_SCBr dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm
// ------------------------------------
int posx,posy;
int i;
char choix,tempa,tempb,tempc,tempd;
// assembler vertical retrace syncronisation routine
void Vsync()
{
#asm
vretrace:
lda $fd0a
bne vretrace
#endasm
}
/**************************************************************************
** **
** **
**************************************************************************/
char main()
{
InitIRQ();
CLI;
SetBuffers(SCREEN, RENDER ,0);
/* set the palette */
SetRGB(pala); // Ceci sert à changer la palette de la Lynx.
//DrawFBox(0,0,160,102,0);
posx=76;
posy=47;
SCBX(SCBr) = posx;
SCBY(SCBr) = posy;
SCBDATA(SCBr) = rr;
SCBX(SCB) = 0;
SCBY(SCB) = 0;
SCBDATA(SCB) = elvira;
/**************************************************************************
** BOUCLE PRINCIPALE **
**************************************************************************/
for( ; ; )
{
DrawFBox(0,0,160,102,0); // affichage d'une boite couleur 0 (noire)
if (joystick & JOY_RIGHT) // direction Droite
posx++;
if (joystick & JOY_LEFT) // direction Gauche
posx--;
if (joystick & JOY_UP) // direction Haut
posy--;
if (joystick & JOY_DOWN) // direction Bas
posy++;
if (posx>152) posx=152; // limit va à gauche
if (posx<0) posx=0; // limit va à gauche
if (posy<0) posy=0; // limit haut
if (posy>94) posy=94; // limit bas
// position X et Y du sprite d'une taille de 8*8 :
SCBX(SCBr) = posx;
SCBY(SCBr) = posy;
//DrawSprite(SCBr);
/**************************************************************************
**************************************************************************/
if (joystick & BUTTON_RIGHT) {
if (tempa==0) {
tempa=32;
++choix; // change image de fond
if (choix==3) choix=0;
}
}
if (joystick & BUTTON_LEFT) {
if (tempa==0) {
tempa=32;
--choix; // change image de fond
if (choix==-1) choix=2;
}
}
if (tempa>0) --tempa;
if (choix==0) {SetRGB(pala);SCBDATA(SCB) = elvira;}
if (choix==1) {SetRGB(palb);SCBDATA(SCB) = elvirb;}
if (choix==2) {SetRGB(palc);SCBDATA(SCB) = elvirc;}
DrawSprite(SCB);
Vsync();
SwapBuffers();
}
/**************************************************************************
** FIN de la BOUCLE PRINCIPALE **
**************************************************************************/
}
Ensuite pour la table du flipper, là aussi je ne l'ai pas trouvé respectueuse du flipper. Par exemple, dans la version d'origine, le bas du flipper est rouge/vert/noir . J'ai fait une gif pour que vous puissiez voir la version issu de l'adaptation en jv, et celle modifié par mes soins:
[URL=http://img19.imageshack.us/i/flipelvira.gif/][IMG]http://img19.imageshack.us/img19/47/flipelvira.gif[/IMG][/URL]

a d'autant de mérite qu'ils n'ont pas du lui laisser beaucoup de temps pour faire ces 2 flip (!). Et dire qu'en face, Nintendo avais des équipes mobilisées pendant 2 ans pour les mario...
). Vous avez réussi à vous inscrire sur mirari.fr ? parce que moi je vois pas comment, enfin bref. Le mieux serait de réunir tout ça sur un site web, peut être sur mon blog, ou mieux sur un site spécialisé LYNX.