Mr ToutLeMonde et la programmation NES...

Page 3 sur 34 Précédent  1, 2, 3, 4 ... 18 ... 34  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Lun 23 Juin 2014 - 17:02

J'en déduis qu'on parle de largeur du bus de données. C'est ça ?
Oui c'est ça  .

intéressant merci .

Je vois que tu charges "_rndseed + 2" dans l'Accumulateur, j'ai l'impression que c'est pour "triturer"  _rndseed qui servira à son tour de base pour triturer _rndseed+1 ? Grossièrement est-ce que c'est le principe ?
Oui, le but est d'avoir un nombre le plus aléatoire possible avec le moins de cycles possible .

TOUKO
Docteur *
Docteur *

Nombre de messages : 12137
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vingazole le Lun 23 Juin 2014 - 22:45

TOUKO a écrit:Je soupçonne vingazole d'entretenir, en toute discrétion, un amour passionnel avec le 6502  

Le premier microprocesseur que j'ai appris à utiliser était un 6809E sur mon TRS-80 Color Computer 2, uniquement en langage-machine (j'utilisais les opcodes sous leur forme numérique, je calculais les sauts relatifs moi-même, etc...), c'est un microprocesseur très proche du 6502.

Par la suite je suis passé sur PC et je me suis donc mis à l'assembleur 8086.

Je ne me suis intéressé au z80 qu'il y environ 6 ans, dans le but de programmer la Master System de mon enfance amoureux
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4011
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mar 24 Juin 2014 - 7:38

@vingazole y'a moyen de voir quelquechose sur SMS ou autre ?  BAVE 

Tant qu'on parle "intimité, et toi Touko, comment t'est venu le virus ?
Je sais que tu es sur le projet de "chuck" sur PC-Engine depuis un moment et vu le soin apporté à l'intro je me doute bien que tu ne fais pas le reste comme un sagouin. Je me permets de la poster ici à titre d'exemple. CA CLAQUE ! Je suis vraiment impressionné  Shocked 



La PCE, j'en avais entendu parlé une fois ou 2 au collège, mais personne ne l'avait. 

Vraiment les mecs, vous avez tout mon respect ! salut 

Je reviens à la routine de Touko... ENCORE...
J'ai "joué" un peu avec l'opcode AND pour ne boucler que sur 4, 8 ou 16 trajectoires ça fonctionne.
Par contre pour la routine srand, problème.
j'ai déclaré _rndseed comme mes autres variables, et vu qu'il s'agit d'un nombre sur 16 bits j'ai tenté au pif plusieurs valeurs
_rndseed rs .1
_rndseed rs .2
_rndseed rs .3
Je ne l'initialise pas.

Jai appelé la routine "srand" entre NMI et RTI, au sein de la routine controller, de l'appel de tir... Rien à faire, _rndseed semble "bloqué" sur la valeur 0.

Ensuite j'appelle une trajectoire de cette façon (je pense que c'est correct puisque si je remplace _rndseed par NumeroTrajectoireAleatoire, ça fait ce que j'attends):
Code:
AppelTrajectoire:
  LDA _rndseed
  AND #$03
  CMP #$00
  BEQ Tir0
  CMP #$01
  BNE sauteTir1
  JMP Tir1
sauteTir1:
  CMP #$02
  BNE sauteTir2
  JMP Tir2
sauteTir2:
  CMP #$03
  BNE sauteTir3
  JMP Tir3
sauteTir3:
  RTS



Ce soir je m'y remets  rambo
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Mar 24 Juin 2014 - 18:31

Merci pour les compliments pour l'intro de chuck, mais mon compère graphiste grostonton y est pour bcp .  Very Happy 

Dans ton code y'a un truc qui n'est pas nécessaire .
Lors d'un operation pas besoin de faire de CMP #$00
Un BNE ou BEQ suffit .

Tu utilises quel compilateur ??
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mar 24 Juin 2014 - 18:48

Oui, mes compliments à grostonton aussi  s'il passe par là Wink Les animations, les effets sur le texte, les scrollings, le choix des couleurs... vous avez fait un boulot génial !  thumleft 

Dans ton code y'a un truc qui n'est pas nécessaire .
Lors d'un operation pas besoin de faire de CMP #$00
Un BNE ou BEQ suffit .
Ok Wink


Tu utilises quel compilateur ??
NESASM3... Tu penses à un problème de "compatibilité de syntaxe" dans ta routine ?
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Mar 24 Juin 2014 - 19:01

Non, mais pour voir comment se déclare les variables, je pense que le soucis vient de là .
_rndseed doit être déclaré en ram (ou en ZP) sur 2 octets .

je pense que c'est comme ça
_rndseed WORD

Ou
 .bss
  _rdnseed: .ds  2

 .code
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vingazole le Mar 24 Juin 2014 - 22:37

vincent2105 a écrit:@vingazole y'a moyen de voir quelquechose sur SMS ou autre ?  


Voilà deux vidéos de nos projets en cours avec ichigobankai :


lost raider :
 


BOoM :
 

J'ai programmé lost raider en asm pur; ichigo a codé BOoM en C, j'ai du convertir pas mal de routines en asm une fois qu'elles avaient été mises au point (il faut dire qu'on utilisait le compilateur z88dk qui n'est pas vraiment un cheval de course Rolling Eyes ).
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4011
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mer 25 Juin 2014 - 7:37

Ah oui quand même ! Y'a 20 ans ça vous aurait rapporté un max, on aurait eu les pubs à la TV, les articles dans Player One et tout ! Génial là aussi !  thumleft 
Les chutes d'eau dans LostRaider, ce sont des tiles de background c'est ça ? En terme de difficulté c'est plus compliqué que de faire un "scrolling normal" ou pas ? 
La première fois que j'ai vu ça c'était sur Super Mario Bros 2, j'arrêtais pas de repasser devant tellement je trouvais ça vivant !
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Mer 25 Juin 2014 - 9:34

Tant qu'on parle "intimité, et toi Touko, comment t'est venu le virus ?
Je réponds un peu sur le tard .
Un peu par hasard, je comptait faire du homebrew mais sur Md ou snes, j'ai rencontré par hasard l'ex gourou de l'assos retrotaku fan devant l'éternel de la pc-engine, et tout est parti de là .

Les chutes d'eau dans LostRaider, ce sont des tiles de background c'est ça ? En terme de difficulté c'est plus compliqué que de faire un "scrolling normal" ou pas ? 
Je dirai plus un cyclage de couleur qu'une anim à base de tile, très simple à faire .
c'est juste une rotation de X couleurs (celles de ta chute d'eau) dans la palette, on fait de superbes effets avec cette technique simple .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vingazole le Mer 25 Juin 2014 - 22:38

Les chutes d'eau dans LostRaider, ce sont des tiles de background c'est ça ? En terme de difficulté c'est plus compliqué que de faire un "scrolling normal" ou pas ? 
Je dirai plus un cyclage de couleur qu'une anim à base de tile, très simple à faire .
c'est juste une rotation de X couleurs (celles de ta chute d'eau) dans la palette, on fait de superbes effets avec cette technique simple .
Oui, c'est bien la bonne vieille méthode de la "rotation de palette" Wink


J'ai bien fait de l'animation de tiles sur LOST RAiDER (pour animer les torches) mais c'est dans une version plus aboutie du programme que celle de la vidéo, par contre c'est un processus bien plus lourd à gérer (un changement de palette c'est un octet à modifier en VRAM alors qu'une simple tile de 8x8 pixels c'est 32 octets de VRAM à changer) !  
 


Je précise que pour le clone de Bomberman mon binôme ichigobankai à créé (d'après des plans de furrtek) un multitap permettant de jouer à 4 joueurs simultanément sunglass
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4011
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Mer 25 Juin 2014 - 22:53

alors qu'une simple tile de 8x8 pixels c'est 32 octets de VRAM à changer) !  
Eh,eh, bah oui  Wink  ..
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par ichigobankai le Mer 25 Juin 2014 - 23:15

Ca c'est le color cyling "actuel" des cascades visibles dans la vieille vidéo Wink


et perso j'aime bcp cette technique, c'est léger et ca rend vivant un environnement :)


Ca c'est le proto du multitap sms (qui fonctionne évidemment) dont parlait Vingazole


j'ai modifié 2 petits trucs dans le code(asm) et plan de furrtek pour que ca fonctionne sur le hard
avatar
ichigobankai
Patient contaminé

Masculin Nombre de messages : 998
Age : 38
Localisation : 49
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Mer 25 Juin 2014 - 23:19

Ca c'est le color cyling "actuel" des cascades visibles dans la vieille vidéo 
Ca claque bien qd même ..

et perso j'aime bcp cette technique, c'est léger et ca rend vivant un environnement :)
Pareil, tu peux faire bcp de trucs avec cette technique simple et peu consommatrice en CPU ...
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vingazole le Mer 25 Juin 2014 - 23:24

Je crois que le color cycling aurait sa place dans le topic http://www.gamopat-forum.com/t68638-le-genie-des-graphistes-des-annees-80 Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4011
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Jeu 26 Juin 2014 - 8:09

vingazole a écrit:Je crois que le color cycling aurait sa place dans le topic http://www.gamopat-forum.com/t68638-le-genie-des-graphistes-des-annees-80

Quelqu'un pourrait nous faire un topo technique ?

Je précise que pour le clone de Bomberman mon binôme ichigobankai à créé (d'après des plans de furrtek) un multitap permettant de jouer à 4 joueurs simultanément 

Quand je vois ce que vous êtes faites, ça me donne un bon coup de pied au cul, moi qui  commence à m'endormir sur mon petit problème.
Vu la différence de compétences entre vous et moi, que mon métier n'a strictement rien à voir avec tout ça  et que je découvre tout ça sur le tard, vous vous en rendez peut-être pas compte, mais je suis parfois vraiment largué.
Alors, faut  que je me surpasse. C'est un peu "marche ou crève ! " , mais c'est ce qu'il faut pour réussir ! Au final, ça me donne l'envie de continuer, et je me rends compte que ça m'est bénéfique  ! 

Dans la vie de tous les jours, j'ai pas l'occasion de de côtoyer des férus de programmation (asm qui plus est), alors merci d'être là et d'avoir partagé vos expériences !  smile
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par pckid le Jeu 26 Juin 2014 - 8:27

Super , ce post ! ultra novateur,
avatar
pckid
Infirmier

Masculin Nombre de messages : 3668
Age : 40
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par pckid le Jeu 26 Juin 2014 - 8:42

vingazole a écrit:
vincent2105 a écrit:@vingazole y'a moyen de voir quelquechose sur SMS ou autre ?  


Voilà deux vidéos de nos projets en cours avec ichigobankai :


lost raider :
 


BOoM :
 

J'ai programmé lost raider en asm pur; ichigo a codé BOoM en C, j'ai du convertir pas mal de routines en asm une fois qu'elles avaient été mises au point (il faut dire qu'on utilisait le compilateur z88dk qui n'est pas vraiment un cheval de course Rolling Eyes ).

Hello Vingazole,

Quel est le meilleur compilateur pour la master system en C ? un Compilateur en C , permet il aussi d'ecrire en Asm ?

J'aime beaucoup les graphismes de Boom, on dirait ceux de la pc engine, c'est fou beaucoup plus beau que la version Nes.
avatar
pckid
Infirmier

Masculin Nombre de messages : 3668
Age : 40
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par ichigobankai le Jeu 26 Juin 2014 - 8:49

Là, pour une fois, je peux répondre pour mon cher binôme Vingazole ^^

donc en compilo C pour SMS, pour le moment il n'existe "officiellement" que Z88dk,
mais Vingazole a modifié SDCC (un compilo C Z80) pour qu'il prenne en charge notre bonne vieille Master System.
Et ce dernier est, d'après ces dires, vraiment bien. (niveau optimisation/génération de code en asm j'entends). Il est par contre beaucoup plus stricte au niveau du code en C que Z88 qui lui est assez permissif.
Quand Vin aura terminé de modifier/ajouter des choses dans cette lib, il la rendra publique.

Ensuite que ce soit dans Z88dk ou SDCC, tu peux mettre des blocs en ASM pure
(avec une petite variante au niveau de la déclaration néanmoins)

Pour BOoM que je l'ai codé initialement via Z88dk, Vingazole m'a converti certaines routines en ASM (z-order, transfert vram,...) car ce compilo, bien que sympa et accessible, est plutôt lourd/pas optimisé...

et sinon oui, j'ai pioché dans les versions pcengine pour recup des tiles, édités et modifiés pour qu'ils passent dans la Master System, que ce soit en taille de sprites ou nombre de couleurs.
Ces tiles là sont pour l'arène que j'ai baptisé "classic", et il y aura 5 autres arènes thématiques, basées sur l'univers SMS (que suis en train de faire)


Dernière édition par ichigobankai le Jeu 26 Juin 2014 - 8:55, édité 1 fois
avatar
ichigobankai
Patient contaminé

Masculin Nombre de messages : 998
Age : 38
Localisation : 49
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par pckid le Jeu 26 Juin 2014 - 8:54

Super Ichigo, il faudrait que Vingazole , se rapproche de stef , afin de lui apporter la librairie sms, à mettre dans google code.

Bravo ! je vais tester tout cela.
avatar
pckid
Infirmier

Masculin Nombre de messages : 3668
Age : 40
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Jeu 26 Juin 2014 - 10:05

et sinon oui, j'ai pioché dans les versions pcengine pour recup des tiles, édités et modifiés pour qu'ils passent dans la Master System, que ce soit en taille de sprites ou nombre de couleurs.
Ces tiles là sont pour l'arène que j'ai baptisé "classic", et il y aura 5 autres arènes thématiques, basées sur l'univers SMS (que suis en train de faire)
Du bon boulot, car le résultat à l'écran est vraiment bluffant .

Je reviens au _rndseed .
_rndseed a une réservation mémoire pour 2 octets, mais rien ne t'empêche de lire _rndseed + 30 si tu veux .
Ca va taper dans un espace réservé (ou pas) d'une variable utilisée dans ton jeu, et donc avoir un certains côté aléatoire .
Tant que tu n'écris rien au dessus de _rndseed + 1 , tu n'as aucun soucis à te faire .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Jeu 26 Juin 2014 - 18:41

TOUKO a écrit:_rndseed a une réservation mémoire pour 2 octets, mais rien ne t'empêche de lire _rndseed + 30 si tu veux .
Ca va taper dans un espace réservé (ou pas) d'une variable utilisée dans ton jeu, et donc avoir un certains côté aléatoire .
Tant que tu n'écris rien au dessus de _rndseed + 1 , tu n'as aucun soucis à te faire .

Ok, j'ai une vision plus large sur la chose maintenant. Merci Wink Pour la déclaration, j'ai parcouru nesdev, on peut faire de cette facon :

_rndseed . rs 2

Je sèche vraiment pour la routine srand...
A tout hasard, tu n'aurais pas une autre routine pour générer un nombre aléatoire (de 1 à 4 ou de 1 à 7 ou de 1 à 9 ou n'importe quoi mais que je puisse essayer autre chose), cette routine commence à me démoraliser. help
Je ne dis pas que c'est la routine qui ne fonctionne pas, j'ai surement fait un truc de travers Wink
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Jeu 26 Juin 2014 - 19:25

je comprends pas ce qui te bloque dans la routine ???

Je ne dis pas que c'est la routine qui ne fonctionne pas, j'ai surement fait un truc de travers 
Oui elle marche, je l'utilise sur PCE  Razz 

Edit: tu peux essayer un inc _rndseed dans le NMI, et n'appeler la routine srand que dans ta boucle principale, qd tu en as besoins .

Ou sinon essayes ça :
http://codebase64.org/doku.php?id=base:6502_6510_maths

quasiment à la fin .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Jeu 26 Juin 2014 - 21:55

Touko a écrit:Je comprends pas ce qui te bloque dans la routine ???

"Elle" me retourne systématiquement la trajectoire 0. (Je sais que c'est de ma faute hein  langue  Wink  )

tu peux essayer un inc _rndseed dans le NMI, et n'appeler la routine srand que dans ta boucle principale, qd tu en as besoins .
J'ai essayé ça ne change rien, mais je confirme, j'ai trouvé un truc qui cloche dans mon code  Mr. Green 

Dans ton lien, j'ai pris cette routine (en rajoutant "A" après ASL sinon ça ne compilait pas):
Code:
srand:
  lda seed
  beq doEor ;added this
  asl A
  bcc noEor
doEor: eor #$1d
noEor: sta seed
  RTS

Et là, le ballon semble prendre à chaque frame une nouvelle trajectoire. (il part 2px à gauche, puis 2 à droite...)


Petite précision, pour l'instant, je n'appelle "srand" qu'à un seul endroit et je charge "seed" juste après (au début de ma routine TrajectoireAleatoire voir ci dessous)
Code:
AppelTrajectoire:
  JSR srand  
  LDA seed;  
  AND #$07  
  BNE sauteTir0
  JMP Tir1
sauteTir0:  
  CMP #$01
  BNE sauteTir1
  JMP Tir1
sauteTir1:  
  CMP #$02
  BNE sauteTir2
  JMP Tir2
sauteTir2:
  CMP #$03
  BNE sauteTir3
  JMP Tir3
sauteTir3:  
  CMP #$04
  BNE sauteTir4
  JMP Tir4
sauteTir4:
  CMP #$05
  BNE sauteTir5
  JMP Tir5
sauteTir5:
  CMP #$06
  BNE sauteTir6
  JMP Tir6
sauteTir6:
  CMP #$07
  BNE sauteTir7
  JMP Tir7

  RTS

Ma routine AppelTrajectoire est appelée dans la boucle principale. J'imagine qu'il faut que je ne l'appelle que soit au démarrage, soit lorsque le ballon arrive dans les bras du gardien. Faut que je créé une nouvelle routine que je placerai dans la boucle principale et qui branchera vers AppelTrajectoire qu'a certaines conditions Confused . Je suis pas sur de mon coup, mais ça m'a l'air pas mal  MDR
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Ven 27 Juin 2014 - 10:19

Ma routine AppelTrajectoire est appelée dans la boucle principale. J'imagine qu'il faut que je ne l'appelle que soit au démarrage, soit lorsque le ballon arrive dans les bras du gardien. Faut que je créé une nouvelle routine que je placerai dans la boucle principale et qui branchera vers AppelTrajectoire qu'a certaines conditions  . Je suis pas sur de mon coup, mais ça m'a l'air pas mal
Aucune importance, il faut juste que les nombres soient les plus variés possible à chaque parties, si ça marche bien comme ça, changes pas . Wink 

"Elle" me retourne systématiquement la trajectoire 0. (Je sais que c'est de ma faute hein      )
Non, juste que surement _rndseed n'est pas incrémenté à chaque frame .
Ou alors il est mis à zero à chaque fois quelque part .
Faut essayer de faire dans le NMI

  inc  _rndseed
  bne pas_increm_high
  inc  _rndseed + 1

 pas_increm_high:

Tu devrais essayer juste la routine seule sans rien d'autre dans ta boucle principale pour voir ce que ça donne.

EDIT: je pense avoir compris .
Donc faut que tu fasses le inc _rndseed dans le NMI, ensuite il faut appeler srand en début de la boucle du jeu, et tu stockes le reg A dans une variable style _Randm, car au retour de la fonction, il n'est pas stocké dans _rndseed, mais renvoyé dans le reg A .
Et c'est la variable _Randm que tu liras quand tu en auras besoin, ce qui permettra des nombre bcp plus aléatoire que d'appeler la fonction qd tu en as besoin .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Ven 27 Juin 2014 - 20:57

Touko a écrit:
le ballon semble prendre à chaque frame une nouvelle trajectoire. (il part 2px à gauche, puis 2 à droite...)

Ma routine AppelTrajectoire est appelée dans la boucle principale. J'imagine qu'il faut que je ne l'appelle que soit au démarrage, soit lorsque le ballon arrive dans les bras du gardien.  Je suis pas sur de mon coup, mais ça m'a l'air pas mal
Aucune importance, il faut juste que les nombres soient les plus variés possible à chaque parties, si ça marche bien comme ça, changes pas . 

Le souci, c'est qu'en l'état, ça ne marche pas.
En fait le ballon se déplace verticalement en oscillant d'environ 2 px un coup à droite puis un coup à gauche au lieu de prendre une trajectoire complète.. Cela me fait penser que  la routine "srand" fait bien ce qu'on attend d'elle mais que ma facon d'appeler une trajectoire puis de réinitialiser la position du ballon est foireuse. C'est pourquoi je disais :
Faut que je créé une nouvelle routine que je placerai dans la boucle principale et qui branchera vers AppelTrajectoire qu'a certaines conditions

Du coup, c'est un problème à ma portée je pense.  Wink 

Touko a écrit:EDIT: je pense avoir compris .
Donc faut que tu fasses le inc _rndseed dans le NMI, ensuite il faut appeler srand en début de la boucle du jeu, et tu stockes le reg A dans une variable style _Randm, car au retour de la fonction, il n'est pas stocké dans _rndseed, mais renvoyé dans le reg A .
Et c'est la variable _Randm que tu liras quand tu en auras besoin, ce qui permettra des nombre bcp plus aléatoire que d'appeler la fonction qd tu en as besoin .
Là , en effet, la variable ne semble plus bloquée à 0. Je me retrouve dans la même situation que ci dessus(le ballon monte en "zigzaguant" de 2 px), comme si elle prenait une nouvelle trajectoire sans revenir à la position de départ.

C'est sympa de ta part de venir à mon secours :) 
Avec un petit effort de concentration, ça devrait aller ! Ne te dérange plus pour ce problème, j'aurais surement besoin de toi plus tard   
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Sam 28 Juin 2014 - 10:04

Pas de soucis, l'essentiel est que tu trouve une solution qui te convienne  Wink

En fait le ballon se déplace verticalement en oscillant d'environ 2 px un coup à droite puis un coup à gauche au lieu de prendre une trajectoire complète.. Cela me fait penser que  la routine "srand" fait bien ce qu'on attend d'elle mais que ma facon d'appeler une trajectoire puis de réinitialiser la position du ballon est foireuse. C'est pourquoi je disais :
oui c'est ce que je pense, il faut mettre un flag une foi que le choix de la trajectoire est fait ..
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Dim 17 Aoû 2014 - 22:03

Après une pause d'un mois et demi due à la reprise du boulot et d'un manque de temps libre (je suis buraliste), j'ai enfin pu trouver un moment pour me replonger dedans :)

Ca m'a fait du bien, j'ai résolu mon problème de "tirage aléatoire" avec une technique régulièrement employée sur NES (basée sur les inputs du joueur). On y voit que du feu.

J'ai pris la décision de ne garder que 3 trajectoires ou "tirs" : gauche, milieu, droite.
D'une part, les autres trajectoires ne paraissaient  vraiment pas "naturelles", et la mise en place des différentes cadences me semblait bien plus laborieuses.

Du coup, je compte inclure 4 cadences de tir.
VitesseVerticale du ballon : 2,4,6 ou 8 pixels/frame
VitesseHorizont du ballon : 1,2,3 ou 4 pixels/frame pour les trajectoires "gauche" et "droite"

Et me voilà avec une nouvelle curiosité...
Concernant la variable "VitesseHorizontale" que j'utilise dans mes routines de tir ; lui attribuer une valeur autre que 1 ou qu'un multiple de 4 fait planter le jeu (seul le background s'affiche). Je précise que je n'ai pas ce problème avec la variable "VitesseVerticale". Je n'ai donc que les cadences 1 et 4.
Pour l'instant, je cherche et ça m'amuse  love console
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Jeu 28 Aoû 2014 - 14:45

Raah c'est cool que tu continues .

Si tu veux poster le code de ta variable horizontale, on pourrait essayer de voir ce qui cloche .
tu as peut être une boucle infinie, ou un truc du genre .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Jeu 9 Oct 2014 - 20:49

Me revoilà pour ma piqûre mensuelle  
Bien qu'ayant toujours aussi peu de temps à consacrer, j'essaie de garder le cap.

Merci Touko d'être fidèle au poste Wink  J'ai réussi il y a quelque temps à résoudre le problème.

J'ai décidé de laisser tomber le foot pour le tennis.
Cela va me permettre de faire un jeu aussi "amusant" seul qu'à deux.
Par pure flemme, je n'ai pas encore créé les sprites des tennismen, mais y'aura bien des raquettes...



Donc 3 positions possibles pour chaque joueur (gauche, milieu, droite), et autant de trajectoires possibles à partir de chacune de ces positions.
Du coup, la "gestion des collisions" est des plus simples.

Actuellement, je me creuse la tête sur la routine permettant de choisir quelle trajectoire choisir en fonction de la position du joueur.  Je posterai le code si je coince vraiment Wink

Merci pour votre intérêt smile
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Jeu 16 Oct 2014 - 11:00

Mission accomplie ! Faudra quand même que je vérifie que ça fonctionne sur ma NES.

Vu que je suis reparti de zéro, j'ai quelques trucs à rajouter (menu, tirage aléatoire, affichage du score avec des tiles de background etc) avant d'attaquer les 2 modes de jeu (1 ou 2 joueurs).

J'ouvre une grosse parenthèse concernant l'aspect graphique. C'est un peu prématuré, mais parfois j'aime bien laisser le code de côté pour me pencher sur autre chose.
Il y a quelques jours, je me suis aperçu que l'on pouvait utiliser des sprites de taille 8x16. Il s'agirait de la combinaison de 2 tiles 8x8 (Leur position dans la bank de tiles ayant une certaine importance).
Quel intérêt ?  La surface des objets animés passe du simple au double !

Bref, j'ai trouvé ce qui suit, malgré tout cela reste flou...  Je poursuis mes recherches.

The NES has two different sprite modes:
8x8 Sprites - These use only the set of 8x8 tiles that are designated for use with sprites in the program.
8x16 Sprites - Each one of these is drawn using two tiles from one set above, and are described a bit more below. One only needs to worry about it if there are more than 64 8x8 sprites on screen in one's mockup.

8x16 Sprites Continued:

Sprites with an even tile number use the first set of tiles in memory. The top half (8x8) of the sprite uses the tile specified from the first set. The bottom half (8x8) of the sprite uses the tile whose number is one greater than the tile specified from the first set.

Sprites with an odd tile number use the second set of tiles in memory. The top half (8x8) of the sprites uses the tile specified from the second set (technically one less than the tile specified). The bottom half (8x8) of the sprite uses the tile whose number is one greater than the tile specified from the second set.

What does this mean? One HAS to dedicate two tiles to every sprite when using 8x16 sprites. So each time you want a different 8x8 projectile in a game that uses 8x16 sprites, you have to waste the tile next to it by making it entirely transparent.

Edit : Je pense avoir trouvé la réponse. A vérifier...
sprites are either 8x8 or 8x16 (this depends on bit 6 of the PPU control register mapped to memory address 0x2000 in the CPU's address space)
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 865
Age : 37
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par TOUKO le Ven 17 Oct 2014 - 18:33

Bah ça avance, bon j'ai pété de rire quand j'ai vu le changement de sport, mais ça reste du tout bon  Wink
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 12137
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 3 sur 34 Précédent  1, 2, 3, 4 ... 18 ... 34  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum