MSX Village forum

La Place des Développeurs Demo Xbasic et base de donnée en VRAM Un petit Zelda...

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/09/2011 à 01h09

Reprise du message précédent

Non je suis pas un Vampire :fou
C'est juste que je peux rien faire en journée :oups

Une petite avancée avec le mode Black Tiger:


Voici un comparatif entre la version Arcade (Source) et l'adaptation Msx.


Le monstre de Flammes et le Squelette sont destructibles, et donnent des points et de la vie :top
Les Flammes se détruisent aussi, mais ne donnent aucun Item en échange.
D'autres Items suivront.

Quelques retouches ici et là, mais ça tient la route ;)

Bonne nuit :noel


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 07/09/2011 à 21h57
SAlut,



beau travail,



je vais essayer de modifier le programme pour faire jouer la pesanteur sous forme de didacticiel quasi en live



1) La pesanteur:





Voilà les lignes qu'il faut changer pour commencer:



1030 COPY(0,59)-(255,89),3TO(0,0),0:Z=4:X(3)=2:X(7)=-2:Y(1)=-2:Y(5)=2:R=0:RR=1:GL=0:LM=50:GOSUB1520:ONSPRITEGOSUB1770

1040 SPRITEOFF:ZT=2:N=0:X=32:Y=64:Z=4:X(3)=2:X(7)=-2:Y(1)=-2:Y(5)=2:R=0:RR=1:SE=2

1050 SOUND8,0:SOUND9,0:SOUND10,0:GOSUB1840

1060 GOSUB2020

1070 G=STRIG(0):IFEG<1THENS=STICK(0):NX=X+X(S):NY=Y+Y(S):Z=-Z*(SMOD2=0)-(S-1+(1AND((XMOD16)/8)+((YMOD16)/8)))*((SMOD2)=1):EG=EG-1*(EG<0)ELSEEG=EG-1:MB=4:MA=EG:GOSUB2010:GOTO1250

1080 OUT&HAA,5:UU=INP(&HA9):IFUU=247ANDC(3)>0ANDLI<LMTHENI=3:C(I)=C(I)-1:GOSUB1500:LJ=LI:LJ=LJ+20:GOSUB1510

1090 PN=-1*(NX=242)-2*(NX=-2)-3*(NY=194)-4*(NY=30):ONPNGOTO1300,1310,1320,1330

1100 VA=VPEEK(VN+INT((4+NX)/16)+INT((NY+14)/16)*16):VB=VPEEK(VN+INT((11+NX)/16)+INT((NY+14)/16)*16)


On peut déjà retirer l'initialisation des données communes entre la ligne 1030 et 1040 (un oubli de ma part) :oups

On donne 3 nouvelles valeurs à y(_):

Y(1)=2 pour la chute

Y(2)=0 pour la marche normale

Y(3)=-2 pour les sauts qui viendront plus tard

ensuite on crée une nouvelle variable (ys) pour faire varier la valeur de Y(_) en lui attribuant par défaut YS=2 pour chuter par défaut

Il suffit de remplacer NY=Y+Y(S) par NY=Y+Y(YS) à la ligne 1070.



1030 COPY(0,59)-(255,89),3TO(0,0),0:GL=0:LM=50:GOSUB1520:ONSPRITEGOSUB1770

1040 SPRITEOFF:ZT=2:N=0:X=32:Y=64:Z=4:X(3)=2:X(7)=-2:Y(1)=2:Y(2)=0:y(3)=-2:R=0:RR=1:SE=2

1050 SOUND8,0:SOUND9,0:SOUND10,0:GOSUB1840

1060 GOSUB2020

1065 ys=2

1070 G=STRIG(0):IFEG<1THENS=STICK(0):NX=X+X(S):NY=Y+Y(yS):Z=-Z*(SMOD2=0)-(S-1+(1AND((XMOD16)/8)+((YMOD16)/8)))*((SMOD2)=1): EG=EG-1*(EG<0)ELSEEG=EG-1:MB=4:MA=EG:GOSUB2010:GOTO1250

1080 OUT&HAA,5:UU=INP(&HA9):IFUU=247ANDC(3)>0ANDLI<LMTHENI=3:C(I)=C(I)-1:GOSUB1500:LJ=LI:LJ=LJ+20:GOSUB1510

1090 PN=-1*(NX=242)-2*(NX=-2)-3*(NY=194)-4*(NY=30):ONPNGOTO1300,1310,1320,1330

1100 VA=VPEEK(VN+INT((4+NX)/16)+INT((NY+14)/16)*16):VB=VPEEK(VN+INT((11+NX)/16)+INT((NY+14)/16)*16)


Après essai le perso tombe (on peut même le déplacer latéralement) mais il reste bloqué lorsqu'il atterrit sur un obstacle. C'est normal car on teste par défaut les éléments sous le personnage; il va falloir dissocier tout cela.



Donc...à suivre...


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 08/09/2011 à 10h19
igal :
Voici un comparatif entre la version Arcade (Source) et l'adaptation Msx.


Superbe boulot :|

Je suis impressionné :tchin


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/09/2011 à 00h49
Merci Métalion ^^

@MsxOsaure:
J'ai essayé la modification que tu proposes, mais Lynk ne peut pas se déplacer vers le haut ou le bas et il n'y a pas de pesanteur!
J'ai loupé un truc, ou t'as pas posté ta dernière modification fonctionnelle? :oups
Je suis curieux de tester le code :)
Tu dis que Lynk peut même se déplacer latéralement. Tu veux dire qu'il peut tomber et être déplacé pendant sa chute? (C'est cool ca :top )

De mon coté, j'ai bossé sur un tableau de [présentation/Magasin], Décors de fond graphiquement plus agréable, ainsi que sur les items Fraise et Power qui sont en fait l'équivalent des gros Coeurs faisant augmenter la jauge de vie.
J'ai repris et adapté un Gargouille sur lequel j'avais déjà fait un premier travail d'adaptation il y a quelque smois. Je le verrai bien en Boss de fin de niveau :D
Pour info, l'animation de la Gargouille est de:
Déplacement Droit => 32X32 X 4 Tiles
Déplacement Gauche => 32X32 X 4 Tiles
Chute (Face) à Droite => 32X32 X 4 Tiles.
Chute (Face) à Gauche => 32X32 X 4 Tiles.
Coup de Hache Droit => 48X48 X 4 tiles.
Coup de Hache Gauche => 48X48 X 4 Tiles.
Nb: Les Gargouilles sur le tableau du bas sont valides pour tourner sur MSX telles quelles, mais demandent une palette à part entière. Elles ne sont la que pour faire évaluer le travail accompli.


Ps: Tous les dessins sont d'une seule et unique palette 16 couleurs ;) (- Noir - Transparent) Edité par igal Le 09/09/2011 à 18h45


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/09/2011 à 23h00
Pour le Fun.

Un petit aperçu.


Comme vous pouvez le voir sur le tableau des Tiles, il reste encore de quoi enrichir le contenu ;)


J'ai pu retrouver les sources Arcade de l'animation Gargouille (Orc). J'susi assez satisfait du résulta vu les limites du MSX.

A suivre. Edité par igal Le 10/09/2011 à 09h17


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 12/09/2011 à 10h52
Une dernière version provisoire en attendant l'implantation des sauts par MsxOsaure ;)


Hip hip hip pour le Mapedit de MsxOsaure :tchin :tchin :tchin

Une dernière pré-version du tableau des Tiles:



La page d'introduction: (possible)


Un hypothétique Boss de fin de niveau ;) :


Et enfin la dernière version du tableau contenant les différentes conversions Arcade => MSX2 (Sur une seule et Unique Palelette :p ) Me suis donné tellement de mal, que je tiens a le préciser :D )


La suite, après implantation du nouveau code de MsxOsaure :oups

@ MsxOsaure:
Si je me trompe pas, tu avais dit qu'il était possible d'utiliser la page ZELDAT16.SC5 pour y Ajouter/Utiliser d'autres Tiles!
Le moteur saura de lui même qu'il faut aller chercher les Tiles sur une autre page que ZELDA.SC5 ou alors il faut modifier le programme?
A supposer que le moteur sache de lui même sur quelle page prendre les Tiles, par défaut, la qualité des Tiles sera Neutre? (comme un simple décors de fond?)

Merci de ton aide :top Edité par igal Le 13/09/2011 à 09h13


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Walter Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 02/10/2009 à 19h33

Messages: 1883

Le 12/09/2011 à 14h20
Magnifique comme une DS. :top
Nes pas que c'est Super le travail d'Igal ? :love
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 14/09/2011 à 23h17
Bravo Igal pour tes exploits graphiques :top Par contre si tu veux exploiter tout ça il va falloir te mettre à la programmation :D

J'avais commencé un tuto, mais je rencontre des problèmes de gestion des sauts, je vais essayer de sortir un truc qui marche à peu près dans un premier temps. Mais pour cela il faut que je reprenne à zéro et je prépare mes affaires pour le 17 alors pour l'instant: standby. :oups


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
Walter Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 02/10/2009 à 19h33

Messages: 1883

Le 14/09/2011 à 23h20
L'arroseur arrosé. Un classique bien connu. ^^

Mille Merci pour ton travail l'Osaure ! :top
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5788

Le 14/09/2011 à 23h28
WOUAH , vraiment réussi les decors :heink , du vrai travail de pro ca , Felicitations:top



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 15/09/2011 à 00h40
Voilà cette version du fichier .BAS permet de faire des sauts corrects.
Pour faire varier la hauteur des sauts il faut jouer sur la valeur de JY en 1120;)
La forme des sprites n'est pas gérée
ZELDAA.zip


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 19/09/2011 à 16h17
Salut MsxOsaure :)

Merci de t'être penché sur la question de la pesanteur et du saut.

1) Il est devenu impossible d'ouvrir les [coffres] et de lire les [panneaux indicateurs] ce qui est dommage.
Sachant qu'il fallait aborder les coffres et les panneaux par le bas, chose qui est devenue impossible puisque LYNK ne monte plus mais saute!
Tu penses pouvoir trouver une parade?

2) Après quelques essais, j'en suis venu à créer ce niveau encore "très incomplet" et pour cause, je pense/espère qu'il te sera possible d'apporter quelques modifications concernant la pesanteur et les sauts.
La pesanteur/chute ainsi que les déplacement sont à une vitesse identique.
De fait, un [déplacement] avec [saut] et LYNK nous fait un jolie "Triangle équilatéral" :gne
Le rendu n'est pas super joli, et ton moteur mérite bien mieux ;)
J'ai donc essayé d'augmenter la pesanteur (Somme de Y + DY ?) tel que ci dessous.
Original:
1120 IFVC<64ANDVD<64THENY=Y+DY:ELSEVC=0:VD=0:IFDY=2ANDJY=0THENDY=0:IFS=1ORS=2ORS=8THENJY=17
Modification 1:
1120 IFVC<64ANDVD<64THENY=Y+DY+2:ELSEVC=0:VD=0:IFDY=2ANDJY=0THENDY=0:IFS=1ORS=2ORS=8THENJY=17
La chute de LYNK devient très réaliste, mais ce dernier refuse de sauter.

J'ai bien essayé de contourner le problème (maladroitement) en soustrayant à Y une valeur de 20 il me semble.
Ce qui donne:
Modification 2:
1120 IFVC<64ANDVD<64THENY=Y+DY+2:ELSEVC=0:VD=0:IFDY=2ANDJY=0THENDY=0:IFS=1ORS=2ORS=8THENJY=17:Y=Y-20
Ce qui donne comme résulta, un saut instantané un peu comme une Puce, sans progression de 20 pixel vers le [Haut] suivi d'une chute longue et molle :sick
Du coup, si Lynk se trouvait sous un décors, un saut le faisait s'imbriquer dedans le décors :oups
En plus, cela n'a rien changé au problème, puisqu'il me semble que la phase descendante du saut est resté plus longue qu'une [Chute naturelle précédemment augmenté par Y=Y+DY+2:].

Je suis sur que tu vas nous sortir une équation de derrière les fagots :D

Voici la Mappe provisoire: (manque encore pas mal de choses :top )

Comme tu peux le voir, j'ai pris soin d'identifier les lignes et colonnes de la MAP de sorte à expliquer un autre problème que je rencontre.

Voici le Tabeau des Tiles (les dessins sont diff, mais les fonctions identiques)


Le dernier tableau:


En C4, C5, C6 et C7 se trouve les Tiles de "TELEPORTATION".
J'ai toujours pensé que ces 4 Tiles "téléportaient" bêtement vers le "Niveau" juste au dessus!
Avec les essais, je me rend compte que je me suis trompé. Peux tu m'en dire plus s'il te plait?

3) J'ai fais l'expérience avec la MAPPE que j'ai posté et les résultats varient!
Sur la [MAPPE A1], j'ai inséré (4Tiles) de téléportation créant un décors qui renvoie vers la [MAPPE H1].
Sur la [MAPPE C2], J'ai inséré (4Tiles) de téléportation créant un décors qui ne renvoie pas vers la [MAPPE B2], mais vers une [MAPPE inexistante]! (chute dans le vide)
Peux tu m'aider la aussi?

Encore merci pour tout :noel







Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 19/09/2011 à 22h23
Comme je le lançais sur le post de la réunion chez Jipe on a fait des progrès sur le moteur "avé pesanteur" durant le Week-End. il est fonctionnel à 90% mais je voudrais lui implémenter une fonction tir et le nettoyer un peu avant de le poster.



pour répondre à tes questions:



1) pour cela il faut placer tes décors coffres en zone "non-obstacles-actifs" et travailler sur le programme en conséquence.



2) On en a parlé avec legend ce Week-End (décidément il fallait y être à cette réunion :D) care il est vrai qu'un saut plus "réaliste" est plus joli mais plus difficile à créer. Je vais m'y coller.



3) Pour s'y retrouver il faut numéroter chaque tableau en commençant par 0 et en allant de la droite vers la gauche (+1 ou -1 quand on dépasse horizontalement) et on descend. ce qui donne pour ton tableau:



0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
15 16 17
18 19 20
21 22 23




Ce qui fait que pour ton tableau à chaque passage en Y c'est + ou - 3.

Et que ta téléportation fait +21! voire ligne 10120 et 10130 du ZELDA.BAS ;)

Caché :
10130 IFVA=39THENN=N-21:Y=50:GOTO1200

10140 IFVA<42THENLJ=LI:LJ=LJ+10::GOSUB14500:GOSUB14650:GOTO2000


A toi de paramétrer tout ça!


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 20/09/2011 à 00h06
Lut MsxOsaure:

J'ai placé 3 coffres et leurs clefs dès le début de niveau en suivant tes recommandations mais toujours pareil.
J'ai essayé les deux lignes de codes telles que tu les a donné:
10130 IFVA=39THENN=N-21:Y=50:GOTO1200
10140 IFVA<42THENLJ=LI:LJ=LJ+10::GOSUB14500:GOSUB14650:GOTO2000
Pire encore puisque les armes ne sont plus détectés :sick
(Je suis donc supprimé ces deux lignes)

J'ai bien essayé de creuser avec tes infos, mais.... :fou :fou Trop compliqué pour l’impie que je suis :lol
Je préfère attendre ton code tranquillement :oups

Concernant les case de téléportation, si j'ai bien compris:
Exemple:
Je pose "un", "deux", "trois" ou "quatre" Tiles de téléportation sur le Tableau No 4 et que je souhaite être téléporter au tableau No 14, je dois valoriser N comme suit:
Dans la ligne 1130 => N=N+10
Les 4 Tiles de téléportation ont une seule et unique variable N ?
Par exemple si je suis dans le Tableau 15, et que je passe par un Tile de Téléportation, je me retrouverai dans le tableau (existant ou non) No 25 ?

En attendant, ton prodige, voici le DSK. (non pas le chaud lapin lol)
black tiger.zip





Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 22/09/2011 à 18h19
Il est beau il est tout chaud, tout droit sorti de la réunion du Week-End dernier, le moteur version plateforme de l'Osaure et KN2000!

A tester sans modération :top

Bon d'accord il ne gère pas les décors particuliers et il n'y a pas d'ennemis... :oups

kirby.zip


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 22/09/2011 à 19h05
Génial :)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie