Mr ToutLeMonde et la programmation NES...
+13
tetsuro
uran
ichigobankai
lincruste
drfloyd
Sour
philip
Stef
Tryphon
brokestudio
vincent2105
TotOOntHeMooN
upsilandre
17 participants
Page 2 sur 15
Page 2 sur 15 • 1, 2, 3 ... 8 ... 15
Re: Mr ToutLeMonde et la programmation NES...
De mémoire, après chargé une adresse avec $2006, il faut lire 2 fois $2007 pour la première lecture, mais une seule fois pour les autres. Sauf si tu change d'adresse avec $2006.
En espérant être clair, c'est visiblement pas mon fort ce soir :)
En espérant être clair, c'est visiblement pas mon fort ce soir :)
Re: Mr ToutLeMonde et la programmation NES...
ah non tu ne peux pas intialiser des adresse PPU de facon successive comme ca. La dernière adresse ecrase forcement la précedente.
Dans ton cas ou tu ne veux accéder qu'a un seul octet de data a chaque fois t'es dans le pire cas et t'es donc obligé de faire comme ca si je ne m'abuse.
Les acces aléatoire dans la VRAM c'est le pire, c'est plutot concu pour des acces en série mais parfois on a pas le choix effectivement. Mais si c'est trop lent tu peux toujours te faire une table en RAM ce qui permettra aussi d'y acceder hors du Vblank.
Dans ton cas ou tu ne veux accéder qu'a un seul octet de data a chaque fois t'es dans le pire cas et t'es donc obligé de faire comme ca si je ne m'abuse.
- Code:
LDA $2002
;------------------------------
LDA serpent_B_tile_haut_PPU_HIGH (A)
STA $2006
LDA serpent_B_tile_haut_PPU_LOW (A)
STA $2006
LDA $2007
LDA $2007
STA serpent_B_tile_haut (A)
LDA serpent_B_tile_bas_PPU_HIGH (B)
STA $2006
LDA serpent_B_tile_bas_PPU_LOW (B)
STA $2006
LDA $2007
LDA $2007
STA serpent_B_tile_bas (B)
.
.
.
RTS
Les acces aléatoire dans la VRAM c'est le pire, c'est plutot concu pour des acces en série mais parfois on a pas le choix effectivement. Mais si c'est trop lent tu peux toujours te faire une table en RAM ce qui permettra aussi d'y acceder hors du Vblank.
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
Effectivement c'est bien mieux expliqué et je confirme, c'est correct ! :)
L'option de faire une table en RAM est peut bien la solution la plus souple. A réfléchir.
L'option de faire une table en RAM est peut bien la solution la plus souple. A réfléchir.
Re: Mr ToutLeMonde et la programmation NES...
C'est bon j'ai pigé, merci à vous 2 :)
Concernant la table en RAM, j'y avais pensé à un moment et je trouvais que ça faisait pas mal de gachis, ou sinon pas mal d'opérations supplémentaires. Mais c'est vrai qu'on a bcp de RAM à disposition... Avec un tableau d'environ 700 cases, il nous faut 700 octets ou 700 bits si on optimise (puisqu'on veut juste verifier si la case est libre ou non, mais ça fait des calculs en plus). Après, je reserve pas mal de RAM pour les coordonnees des maillons quand meme... Bref, c'est une piste .
Mais là, je pense que je suis près du but. Je vais tenter le coup comme ça, et je verrai plus tard pour la table en ram.
En fait dans le vblank, je n'ai qu'a ecrire les 4 tetes de serpents et effacer les 4 queues à chaque frame. La je rajoute juste la lecture des 4 tiles autour de chaque serpent. Donc 16 lectures. Et après on tapera encore dans le vblank pour l'affichage des scores des 4 joueurs et d'un eventuel chrono, et ça devrait être tout. Donc je pense que j'aurai encore de la marge.
Désolé si c'est un peu décousu, j'écris ce post entre 2 clients, ça fait un peu plus de 2 heures maintenant
Concernant la table en RAM, j'y avais pensé à un moment et je trouvais que ça faisait pas mal de gachis, ou sinon pas mal d'opérations supplémentaires. Mais c'est vrai qu'on a bcp de RAM à disposition... Avec un tableau d'environ 700 cases, il nous faut 700 octets ou 700 bits si on optimise (puisqu'on veut juste verifier si la case est libre ou non, mais ça fait des calculs en plus). Après, je reserve pas mal de RAM pour les coordonnees des maillons quand meme... Bref, c'est une piste .
Mais là, je pense que je suis près du but. Je vais tenter le coup comme ça, et je verrai plus tard pour la table en ram.
En fait dans le vblank, je n'ai qu'a ecrire les 4 tetes de serpents et effacer les 4 queues à chaque frame. La je rajoute juste la lecture des 4 tiles autour de chaque serpent. Donc 16 lectures. Et après on tapera encore dans le vblank pour l'affichage des scores des 4 joueurs et d'un eventuel chrono, et ça devrait être tout. Donc je pense que j'aurai encore de la marge.
Désolé si c'est un peu décousu, j'écris ce post entre 2 clients, ça fait un peu plus de 2 heures maintenant
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
C'est pas bon.
Je vais repartir d'une page blanche, mais pas tout de suite. Je commence a saturer.
Je vais repartir d'une page blanche, mais pas tout de suite. Je commence a saturer.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Te force pas, fait ca qu'en t'en a envie comme d'hab.
En ce moment j'avais un peu envie de programmer du coup je me suis mis a la coleco mais je sais que dans une ou deux semaine j'en aurais deja marre et je passerais a autre chose
Bon par contre si t'achetes un accessoire a chaque fois ca va devenir couteux
Du coup je retire ce que j'ai dis, retourne au charbon et rentabilise ce foutu multitap
En ce moment j'avais un peu envie de programmer du coup je me suis mis a la coleco mais je sais que dans une ou deux semaine j'en aurais deja marre et je passerais a autre chose
Bon par contre si t'achetes un accessoire a chaque fois ca va devenir couteux
Du coup je retire ce que j'ai dis, retourne au charbon et rentabilise ce foutu multitap
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
Pour les accessoires, c'est bon, j'ai tout ce qu'il faut maintenant
Allez, ce soir, je m'y remets, j'ai quand même bien envie de les voir bouger tout seuls mes serpents.
Allez, ce soir, je m'y remets, j'ai quand même bien envie de les voir bouger tout seuls mes serpents.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Je ne regrette pas d'avoir tout repris depuis le début.
Je ne me suis pas occupé des items pour l'instant, ni des 4 serpents, puisque ma priorité est de rendre les serpents autonomes, et la première étape était la détection des tiles qui sont autour de leur tête.
Je peux continuer sur une bonne base.
Je ne garderai pas le quadrillage
Je ne me suis pas occupé des items pour l'instant, ni des 4 serpents, puisque ma priorité est de rendre les serpents autonomes, et la première étape était la détection des tiles qui sont autour de leur tête.
Je peux continuer sur une bonne base.
Je ne garderai pas le quadrillage
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
J'ai réussi ! J'suis heureux comme un pape !
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Mytho, on a pas de preuve
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
Ouais, enfin quand je dis que j'ai réussi, c'est juste à avoir un serpent myope autonome Je me suis peut-être mal fait comprendre, c'était ça le défi du jour
Maintenant, faut que je m'occupe de tout le reste (aléatoire, item, 4 joueurs, etc).
D'ailleurs, concernant le vblank, et vu que je n'ai pas de table en ram, j'ai oublié qu'il fallait vérifier que l'item n'était pas repositionné sur une case occupée.
Voilà le chantier : https://drive.google.com/open?id=0B0HKOrG7iEpfNWZGbFhzcWZ1aUk
Start : ajouter des maillons (120 max)
Haut, Bas, Gauche, Droite : forcer le serpent à aller dans une direction.
Maintenant, faut que je m'occupe de tout le reste (aléatoire, item, 4 joueurs, etc).
D'ailleurs, concernant le vblank, et vu que je n'ai pas de table en ram, j'ai oublié qu'il fallait vérifier que l'item n'était pas repositionné sur une case occupée.
Voilà le chantier : https://drive.google.com/open?id=0B0HKOrG7iEpfNWZGbFhzcWZ1aUk
Start : ajouter des maillons (120 max)
Haut, Bas, Gauche, Droite : forcer le serpent à aller dans une direction.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Effectivement ca fonctionne!
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
ouaip.
Ce soir, j'ai rajouté les routines que j'avais déjà écrites : effacement du serpent lorsqu'il meurt, repositionnement de l'item, et IA du serpent.
Mais c'est sur ce dernier point que le bât blesse :/
Y'a bcp à faire : d'une part on s'apercoit que le serpent peut se coincer bêtement, et d'autre part, il prend parfois des itinéraires à rallonge pour chercher l'item (ca je dois pouvoir y remedier).
C'est mon nouveau défi, le rendre un peu moins concon. Et ça risque d'être ardu, parce qu'il y a bcp de cas de figures qui nous sautent aux yeux, mais je vois mal comment régler tous les pb.
https://drive.google.com/open?id=0B0HKOrG7iEpfbHpnbDlpR1FSS1k
On ne peut plus forcer une direction, mais on peut toujours ajouter des maillons (start)
Ce soir, j'ai rajouté les routines que j'avais déjà écrites : effacement du serpent lorsqu'il meurt, repositionnement de l'item, et IA du serpent.
Mais c'est sur ce dernier point que le bât blesse :/
Y'a bcp à faire : d'une part on s'apercoit que le serpent peut se coincer bêtement, et d'autre part, il prend parfois des itinéraires à rallonge pour chercher l'item (ca je dois pouvoir y remedier).
C'est mon nouveau défi, le rendre un peu moins concon. Et ça risque d'être ardu, parce qu'il y a bcp de cas de figures qui nous sautent aux yeux, mais je vois mal comment régler tous les pb.
https://drive.google.com/open?id=0B0HKOrG7iEpfbHpnbDlpR1FSS1k
On ne peut plus forcer une direction, mais on peut toujours ajouter des maillons (start)
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Bon j'up le topic pour pas grand chose puisque rien n'avance, j'ai une migraine depuis 3 jours
Mais faut que je m'occupe l'esprit, alors je réfléchis à une autre idée de mini-jeu que j'attaquerai quand j'aurai fini ce snake...
bref je cherche un concept sympa, jouable à 4 (ou moins).
Je pensais à un jeu de tanks, mais si vous avez des idées, je suis tout ouie :)
Mais faut que je m'occupe l'esprit, alors je réfléchis à une autre idée de mini-jeu que j'attaquerai quand j'aurai fini ce snake...
bref je cherche un concept sympa, jouable à 4 (ou moins).
Je pensais à un jeu de tanks, mais si vous avez des idées, je suis tout ouie :)
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Merde c'est pas bon, vincent pense deja au prochain jeu, c'est foutu pour le snake
L'aire de rien l'IA du serpent a mon avis c'est un probleme tres complexe.
L'aire de rien l'IA du serpent a mon avis c'est un probleme tres complexe.
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
Toujours pareil ces programmeurs ; Ca ne termine jamais rien, pour ça que le concept de démo a eu du succès !
TotOOntHeMooN- Docteur agrégé **
- Nombre de messages : 18145
Age : 54
Localisation : Terre I
Date d'inscription : 18/04/2013
Re: Mr ToutLeMonde et la programmation NES...
upsilandre a écrit:Merde c'est pas bon, vincent pense deja au prochain jeu, c'est foutu pour le snake
L'aire de rien l'IA du serpent a mon avis c'est un probleme tres complexe.
Il me semble que ça avait été un sujet proposé à un concours d'informatique pour lycéens et étudiants, l'astuce étant qu'il n'y a pas de solution et que pleins d'approches différentes peuvent être testées, qui marchent bien contre d'autres approches et mal contre encore d'autres.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Mr ToutLeMonde et la programmation NES...
Merci à vous de m'avoir remis dans le droit chemin
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
moi je démarre rien du coup je termine tout
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
upsilandre a écrit:moi je démarre rien du coup je termine tout
Tiens j'y avais pas pensé à ça !!
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Tryphon a écrit:upsilandre a écrit:Merde c'est pas bon, vincent pense deja au prochain jeu, c'est foutu pour le snake
L'aire de rien l'IA du serpent a mon avis c'est un probleme tres complexe.
Il me semble que ça avait été un sujet proposé à un concours d'informatique pour lycéens et étudiants, l'astuce étant qu'il n'y a pas de solution et que pleins d'approches différentes peuvent être testées, qui marchent bien contre d'autres approches et mal contre encore d'autres.
Oui c'est un sujet complexe, il y a un challenge sur coding game où tu dois coder une IA pour ce genre de jeu et ensuite les IA s'affrontent entre elle. Je m'étais un peu amuser avec ça :)
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Mr ToutLeMonde et la programmation NES...
Ça doit être à ça que je pensais. Ça date d'il y a quelques années non ?
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Mr ToutLeMonde et la programmation NES...
Ca existe toujours :
https://www.codingame.com/start
Je n'ai pas vraiment le temps de m'amuser avec et c'est dommage car c'est vraiment très bien fichu... Un bon moyen d'apprendre l'algorithmie et la programmation en général :)
https://www.codingame.com/start
Je n'ai pas vraiment le temps de m'amuser avec et c'est dommage car c'est vraiment très bien fichu... Un bon moyen d'apprendre l'algorithmie et la programmation en général :)
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Mr ToutLeMonde et la programmation NES...
Oui, ça à l'air d'être un moyen ludique de découvrir pas mal de langages, j'y regarderai qd j'aurai du temps. :)
Coté serpent, ca coince de nouveau.
A partir de 3 serpents autonomes, apparemment ça tape encore dans le registre de scroll.
Je pense pourtant appeler toutes mes routines faisant appel au PPU pendant le vblank, mais je vais devoir relire tout le code au cas ou... Mais je suis assez sur de moi de ce coté là et c'est pourquoi je commence à me demander si je dépasse pas le nombre de cycles impartis dans une frame, ça m'étonnerait aussi, mais bon jusque là, j'ai dépensé sans jamais compter ... J'ai lu qu'on avait 89342 cycles/frame (en 60Hz). Ca promet d'être bien rébarbatif.
Coté serpent, ca coince de nouveau.
A partir de 3 serpents autonomes, apparemment ça tape encore dans le registre de scroll.
Je pense pourtant appeler toutes mes routines faisant appel au PPU pendant le vblank, mais je vais devoir relire tout le code au cas ou... Mais je suis assez sur de moi de ce coté là et c'est pourquoi je commence à me demander si je dépasse pas le nombre de cycles impartis dans une frame, ça m'étonnerait aussi, mais bon jusque là, j'ai dépensé sans jamais compter ... J'ai lu qu'on avait 89342 cycles/frame (en 60Hz). Ca promet d'être bien rébarbatif.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Bah, j'ai fait un très grossier calcul, et j'étais encore loin de la limite.
Par contre, je forcais le registre de scroll à 0 en fin de frame. En le forçant à 0 immédiatement après mes routines executées dans le vblank, ça marche ! :)
Mais en fait, je perds pas au change, j'ai des soucis de collision (les serpents se chevauchent parfois)
Par contre, je forcais le registre de scroll à 0 en fin de frame. En le forçant à 0 immédiatement après mes routines executées dans le vblank, ça marche ! :)
Mais en fait, je perds pas au change, j'ai des soucis de collision (les serpents se chevauchent parfois)
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
C'est officiel... ça me saoule !upsilandre a écrit:Merde c'est pas bon, vincent pense deja au prochain jeu, c'est foutu pour le snake
L'aire de rien l'IA du serpent a mon avis c'est un probleme tres complexe.
Mais c'est pas grave, j'y reviendrai peut-être plus tard. Au moins, j'aurais appris quelques trucs.
Là, j'ai besoin de changement.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Au fait vous utilisez quoi comme émulateur NES?
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Mr ToutLeMonde et la programmation NES...
FCEUX 2.2.3 principalement.
Je test régulièrement avec Nintendulator et Nestopia qui sont un peu plus précis pour tout ce qui est visuel.
Mesen serait un super remplaçant pour FCEUX mais pour le moment j'ai la flemme de réapprendre les raccourcis clavier (qu'on peut certainement changer ceci dit ...), trop d'habitude de travail avec FCEUX. On verra après la sortie de Twin Dragons.
puNES est aussi pas mal.
Je test régulièrement avec Nintendulator et Nestopia qui sont un peu plus précis pour tout ce qui est visuel.
Mesen serait un super remplaçant pour FCEUX mais pour le moment j'ai la flemme de réapprendre les raccourcis clavier (qu'on peut certainement changer ceci dit ...), trop d'habitude de travail avec FCEUX. On verra après la sortie de Twin Dragons.
puNES est aussi pas mal.
Page 2 sur 15 • 1, 2, 3 ... 8 ... 15
Sujets similaires
» Programmation CPS-1
» Initiation à Programmation
» Programmation sur Saturn
» La programmation Megadrive
» Programmation sous Unity3D ?
» Initiation à Programmation
» Programmation sur Saturn
» La programmation Megadrive
» Programmation sous Unity3D ?
Page 2 sur 15
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum