Mr ToutLeMonde et la programmation NES...

Page 32 sur 34 Précédent  1 ... 17 ... 31, 32, 33, 34  Suivant

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

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Ven 4 Aoû 2017 - 22:17

Je pense que c'est bon, j'ai fait pas mal de vérifications, tout semble ok... Et il serait même facile de rajouter une unique issue. 

Du coup, je sais pas si je continue, le challenge était intéressant, mais de la à essayer d'en faire un jeu...

vincent2105
Patient contaminé

Nombre de messages : 952
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Sam 5 Aoû 2017 - 13:38

Nouvel exercice : un "snakelike". L'idée m'est venue en voyant mon fils y jouer sur tablette ces jours ci.
Un mode 2 joueurs serait bien sympa... voir 3 ou 4 joueurs, puisque la NES peut profiter du "NES four score". joueur fou joueur fou joueur fou joueur fou
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Vetea le Sam 5 Aoû 2017 - 14:15

Un projet plutot sympa et classique indémodable!
En multi, ca serait super sympa. amoureux
Allez au boulot ! rambo
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4477
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Sam 5 Aoû 2017 - 14:21

Merci pour tes encouragements Vetea Wink
Ca va être un bon petit casse-tête.
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Vetea le Sam 5 Aoû 2017 - 14:23

C'est le genre de jeu que l'on faisait en Basic sur nos 8 bits chéris! amoureux
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4477
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mar 8 Aoû 2017 - 16:47

Il me donne du fil à retordre le "snake".
A partir de 40 maillons, ça glitche sur emu en NTSC alors que je monte jusqu'à 150 maillons en PAL. Bizarre  scratch
(Pour l'instant le serpent à une taille fixe définie au "RESET", il ne grandit pas).

avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Ven 11 Aoû 2017 - 10:40

Je reviens sur ce bug après quelques jours de pause. Il m'a mis un p'tit coup au moral celui là A MORT LES CONSOLES
A priori, je tape dans le registre de scroll.
On va reprendre ça calmement.
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Stef le Ven 11 Aoû 2017 - 11:17

Y'a de bonne chances que tu accèdes au PPU en dehors du VBlank quand tu dépasses les 40 maillons, d'où la différence observée avec le PAL (ou le VBlank est plus long).
avatar
Stef
Infirmier

Masculin Nombre de messages : 3707
Age : 38
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Ven 11 Aoû 2017 - 11:51

Merci de te pencher sur le problème Stef Very Happy

La différence est quand même énorme non ? (40 maillons NTSC / 150 PAL) scratch
J'ai remarqué qu'avec ne serait ce que 5 maillons, si je ne force pas le registre de scroll à 0 à la fin de ma NMI, j'ai le même souci. Mais ça, c'est peut-être un autre problème.

Je vais voir si en travaillant sur plusieurs frames ça passe. Mais d'abord, faut je relise mes quelques routines, au cas où.


avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 kaot le Ven 11 Aoû 2017 - 12:38

tres interessant tes experimentations sur ce vieux dino qu'est la NES.
je suis ca avec interet même si je poste peu
avatar
kaot
Guéri miraculeux

Masculin Nombre de messages : 2441
Age : 39
Localisation : la bas
Date d'inscription : 12/02/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Ven 11 Aoû 2017 - 12:54

Ah ça fait plaisir à lire ça ! Merci kaot Wink
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Lun 14 Aoû 2017 - 9:45

Bon, avant de partir 2 jours, une petite ROM pour montrer où j'en suis :)
https://drive.google.com/open?id=0B0HKOrG7iEpfbEFXZUhncGhFdGM

Au passage, j'ai un pb avec un pointeur qui ne retourne pas la valeur que j'attends... En $0000 et $0001 l'adresse low et high de la tête du serpent dans le ppu. en $0002, j'attends la valeur contenue à cette adresse, or je recupère des valeurs inattendues. Si ça amuse Upsilandre ou un autre Wink

avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 upsilandre le Mar 15 Aoû 2017 - 11:20

@vincent2105 a écrit:Merci de te pencher sur le problème Stef Very Happy

La différence est quand même énorme non ? (40 maillons NTSC / 150 PAL)  scratch
Le Vblank en PAL dure 3.5 fois plus longtemps qu'en NTSC, c'est BEAUCOUP plus.
Tu vas me dire que 150/40 = 3.75 mais tu n'utilise pas le Vblank seulement pour les maillons, suffit que tu utilise 10% du Vblank pour autre chose que tes maillons ce qui est forcement le cas et ca suffit pour atteindre les x3.75 (et si c'etait 50% du Vblank alors t'aurais meme un facteur x6 entre PAL et NTSC)


J'ai remarqué qu'avec ne serait ce que 5 maillons, si je ne force pas le registre de scroll à 0 à la fin de ma NMI, j'ai le même souci. Mais ça,  c'est peut-être un autre problème.
N'oublie pas qu'utiliser le registre $2006 modifie aussi les 2 premiers bit du registre $2000 qu'il faut donc réinitialiser apres, je sais pas si ca a un rapport avec ton probleme.


Dernière édition par upsilandre le Mar 15 Aoû 2017 - 11:46, édité 1 fois
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par upsilandre le Mar 15 Aoû 2017 - 11:29

@vincent2105 a écrit:Bon, avant de partir 2 jours, une petite ROM pour montrer où j'en suis :)
https://drive.google.com/open?id=0B0HKOrG7iEpfbEFXZUhncGhFdGM

Au passage, j'ai un pb avec un pointeur qui ne retourne pas la valeur que j'attends... En $0000 et $0001 l'adresse low et high de la tête du serpent dans le ppu. en $0002, j'attends la valeur contenue à cette adresse, or je recupère des valeurs inattendues. Si ça amuse Upsilandre ou un autre Wink


J'ai regardé vite fais et je pense que tu va rigoler quand tu vas voir l'erreur que t'as fais.  coquin

Pour récuperer l'ID de la tuile qui se trouve sous la tete du serpent tu utilise ton pointeur a $00 et tu fais:
Code:
LDY #$00
LDA ($00),Y

Sauf que la tu vas chercher dans la mémoire CPU (et un endroit ou y a pas de RAM donc effectivement ca va etre random) et pas dans la mémoire GPU ou se trouve tes tuiles.  Razz
En remplacant ton bout de code par celui la ca devrait beaucoup mieux marcher  Mr. Green
Code:
LDA $0001
STA $2006
LDA $0000
STA $2006
LDA $2007
LDA $2007
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mar 15 Aoû 2017 - 21:45

Merci pour toutes ces explications et effectivement avec ton bout de code, ça va mieux maintenant  What a Face
En fait, si j'ai bien compris, avec mon pointeur qui était sensé récupérer la valeur à un endroit précis dans la nametable à l'adresse de départ $2000,  j'allais chercher des valeurs dans les miroirs des adresses des registres PPU ($2000-$2007 / $2008- $3fff)
Les affaires reprennent  cheers
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 lincruste le Mar 15 Aoû 2017 - 21:48

Je ne comprends pas tout mais c'est génial, continuez surtout.
avatar
lincruste
Patient contaminé

Masculin Nombre de messages : 923
Age : 38
Localisation : RP
Date d'inscription : 07/06/2014

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par upsilandre le Mar 15 Aoû 2017 - 22:09

@vincent2105 a écrit:Merci pour toutes ces explications et effectivement avec ton bout de code, ça va mieux maintenant  What a Face
En fait, si j'ai bien compris, avec mon pointeur qui était sensé récupérer la valeur à un endroit précis dans la nametable à l'adresse de départ $2000,  j'allais chercher des valeurs dans les miroirs des adresses des registres PPU ($2000-$2007 / $2008- $3fff)
Les affaires reprennent  cheers
Oui ces ca, les registres PPU et tout le mirroring est dans l'espace memoire CPU alors que ta nametable est dans l'espace memoire PPU. Forcement tu trouve les meme adresse dans les 2 espaces mais c'est pas du tout la meme chose  smile
On peut vite s’emmêler les pinceaux dans les acces memoires.
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mar 15 Aoû 2017 - 22:39

@upsilandre a écrit:Sauf que la tu vas chercher dans la mémoire CPU (et un endroit ou y a pas de RAM donc effectivement ca va etre random) et pas dans la mémoire GPU ou se trouve tes tuiles.  Razz
En remplacant ton bout de code par celui la ca devrait beaucoup mieux marcher  Mr. Green
Code:
LDA $0001
STA $2006
LDA $0000
STA $2006
LDA $2007
LDA $2007
Par curiosité, j'ai supprimé un "LDA $2007", et je me suis retrouvé avec un comportement du programme en apparence identique (suite à tes explications, je JMP sur RESET si la valeur est égale à 1).
Tu déconseilles ou non ?

@lincruste : Merci  smile
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 upsilandre le Mar 15 Aoû 2017 - 23:05

@vincent2105 a écrit:
@upsilandre a écrit:Sauf que la tu vas chercher dans la mémoire CPU (et un endroit ou y a pas de RAM donc effectivement ca va etre random) et pas dans la mémoire GPU ou se trouve tes tuiles.  Razz
En remplacant ton bout de code par celui la ca devrait beaucoup mieux marcher  Mr. Green
Code:
LDA $0001
STA $2006
LDA $0000
STA $2006
LDA $2007
LDA $2007
Par curiosité, j'ai supprimé un "LDA $2007", et je me suis retrouvé avec un comportement du programme en apparence identique (suite à tes explications, je JMP sur RESET si la valeur est égale à 1).
Tu déconseilles ou non ?
nan faut pas l'enlever. Quand tu lis $2007 tu ne charge pas le contenu de l'adresse que tu viens de mettre mais un buffer interne au PPU qui contient une precedente data mais en meme temps le PPU va mettre a jour ce buffer interne avec le contenu de l'adresse que tu as donné pour la prochaine lecture. Y a un décalage a cause de cette etape intermediaire qui passe par ce buffer (car le CPU n'accede pas directement a la VRAM, faut passer par le PPU, c'est pas un acces immediat)
Donc apres avoir initialisé une nouvelle adresse faut toujours lire une fois pour rien. Si tu veux charger 10 octets alors faut enchainer 11 LDA $2007 et ne pas garder le premier. Si tu veux lire juste 1 octet alors faut mettre 2 LDA $2007.
Dans ton cas c'est normale que t'es l'impression que ca marche car pour l'instant tu n'utilise probablement pas la lecture $2007 pour autre chose du coup quand tu fais ton LDA $2007 tu va pas acceder a l'adresse que tu viens de mettre mais a celle que t'as mis la frame précédente qui est maintenant dans le buffer donc ca va juste te faire un retard d'une frame dans ton test de collision ce qui est pas grave sauf que dès que tu utilisera la lecture $2007 pour autre chose que ce test de collision ca va buger et tu saura pas pourquoi et rebelote  Very Happy .
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par upsilandre le Mer 16 Aoû 2017 - 10:09

Ouai c'est pas claire je te sent sceptique MDR
Mais c'est vrai que c'est tordu

Pour synthétiser:
Quand tu fais "LDA $2007" le PPU charge dans l'accumulateur du CPU le contenu d'un registre tampon qui se trouve dans le PPU et ensuite charge dans ce registre tampon le contenu VRAM de l'adresse qui se trouve en $2006 (et incrémente ensuite cette adresse)...

...sauf quand t'accede aux palettes, la c'est encore different car les palettes ne sont pas en VRAM mais directement dans le PPU donc cette fois y a bien un acces direct sans intermediaire.
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Mer 16 Aoû 2017 - 10:58

Je pense avoir compris. Et d'ailleurs on va pouvoir vérifier ça quand j'ajouterai d'autres serpents d'ici peu Wink

Mais en premier lieu, faut que je réussisse a gaspiller moins de vblank, parce qu'en fin de compte, je n'ai que 2 malheureux octets à écrire  Mr. Green (1 pour la nouvelle position de la tête du serpent, et un autre pour effacer le dernier maillon).  
Pour l'instant, je pense traiter leurs déplacements respectifs alternativement (pas dans la même frame).
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 17 Aoû 2017 - 22:27

Bon j'ai choisi la facilité, ne me jetez pas de cailloux Mr. Green ... 
Une frame pour la maj du tableau de coordonnées et une pour l'affichage de la tête et de la queue et la collision du serpent. Ca fonctionne, apparemment  clown 

Next, l'ajout de serpents concurrents. C'est à mes yeux la partie la plus sympa du projet.
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 18 Aoû 2017 - 10:34

De toutes façons ce genre de jeu n'a pas besoin de tourner à 60fps on est pas dans un shoot, donc à 30 c'est largement suffisant,et ça permet d'alléger les frames .
avatar
TOUKO
Interne
Interne

Masculin Nombre de messages : 12523
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 18 Aoû 2017 - 10:52

C'est ce que je me suis dit :) Ca me parait un peu bourrin comme méthode, mais c'est tellement plus simple, en 3 lignes, c'était plié. Je sais qu'il est possible de faire ça proprement, mais en rajoutant des cycles quand même et des variables tampons. Et fallait que je désosse un peu la logique des routines que j'avais mises en place, j'avais pas du tout envie.
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 18 Aoû 2017 - 16:03

Non c'est pas bourrin, quel est l'intérêt de bouffer 90% de CPU dans une frame et 10% dans l'autre, si tu peux faire 50/50 ??
ca te laisse la possibilité de faire d'autres traitements avec les 50% qui te reste /frame .

C'est juste logique ce que tu as fait,c'est toujours mieux d'avoir une charge constante sur chaque frame,ça permet d'éviter les sauts de frames par manque de temps CPU sur certaines frames, alors que tu as plein de temps inutilisé sur d'autres . .

imagines que tu as besoin en plus de 20% de CPU pour autres choses ??, et bien 1 frame sur 2 tu vas déborder ,alors qu'avec ta répartition tu seras toujours dans la frame et avec du rab en plus  Wink
avatar
TOUKO
Interne
Interne

Masculin Nombre de messages : 12523
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 upsilandre le Sam 19 Aoû 2017 - 14:10

De toute facon le serpent peut pas avancer d'une tuile par frame ca serait trop rapide?
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Sam 19 Aoû 2017 - 16:02

Oui,  par contre, y'a un truc qui me fait peur, c'est qu'avec une cadence d'une tile toutes les 3 frames, avec un item à récupérer en bord d'écran, ca reste jouable à mon avis. Donc, ça va peut être compliquer l'histoire des 4 serpents :/
Au passage, je suis en train d'essayer de modifier la cadence en fonction de tel ou tel évènement et ça bug parfois...
A part ça tout va bien Razz
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 19 Aoû 2017 - 18:22

@upsilandre a écrit:De toute facon le serpent peut pas avancer d'une tuile par frame ca serait trop rapide?
Je pense que ça générait pas au début, mais qd l'écran va commencer à se remplir va vite falloir des réflexes de tueurs,surtout avec 4 serpents .
avatar
TOUKO
Interne
Interne

Masculin Nombre de messages : 12523
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 20 Aoû 2017 - 8:20

4 serpents, des pièges qui apparaissent, des petits ennemis mobiles, on peut vraiment agrémenter le concept "snake" dans l'idée. Reste à caser tout ça dans la frame...
Mais on va y arriver, je compte sur vous, je le veux ce snake 4 joueurs  coquin
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 upsilandre le Dim 20 Aoû 2017 - 14:27

Donc tu vas passer par le multitap?
avatar
upsilandre
Patient incurable

Masculin Nombre de messages : 1849
Age : 42
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Mr ToutLeMonde et la programmation NES...

Message par vincent2105 le Dim 20 Aoû 2017 - 21:44

Oui, j'espère pouvoir en dégoter un. Faut voir le prix Razz  Sinon, une connaissance en a un,  je devrais pouvoir lui emprunter pour tester, le moment venu.
Mais même sans ça, je souhaite faire un mode de jeu dans lequel on affronterait plusieurs serpents contrôlés par la machine. Ils seraient un peu plus intelligents à chaque niveau.
Avec plus de 4 serpents, ça pourrait être intéressant aussi, mais techniquement, c'est pas possible à cause des palettes  (3+1  couleurs) et de l'attribute table. Déjà, pour 4 serpents, on en aura 3 de couleurs différentes et le 4eme avec un mix de ces couleurs.
avatar
vincent2105
Patient contaminé

Masculin Nombre de messages : 952
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 Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 32 sur 34 Précédent  1 ... 17 ... 31, 32, 33, 34  Suivant

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


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