Mr ToutLeMonde et la programmation NES...
+23
brokestudio
F.L
grostonton
Ned_Flanders
Tryphon
philip
fanoplusplus64K
tfdi
Ricco59_59
Top l'âne
tetsuro
upsilandre
nemokantio
Stef
pckid
ichigobankai
suisseretrogaming
patapouf31
vingazole
koan75
joelabroc
drfloyd
vincent2105
27 participants
Page 29 sur 34
Page 29 sur 34 • 1 ... 16 ... 28, 29, 30 ... 34
Re: Mr ToutLeMonde et la programmation NES...
$E000, $C000, $C001, $E001
Je te mets le code si tu veux, mais je suis toujours aussi brouillon, je code entre 2 clients...
Je te mets le code si tu veux, mais je suis toujours aussi brouillon, je code entre 2 clients...
- IRQ:
- Code:
IRQ:
pha
txa
pha ; save A,X and Y. you have to do this because
tya ; IRQs interrupt your main thread of code. having your
pha ; register values change in the middle of that main thread
; would be bad...
LDx IRQ_index
CPX #0
BEQ IRQ_0
JMP IRQ_1
IRQ_0:
debut:
LDA machin ; 2
CMP #3 ; 2
BEQ suite ;3
INC machin ;5
JMP debut ;3 = 15 cycles
suite:
inc scroll2
LDA scroll2
STA $2005
LDA #0
STA $2005
scrollok:
;;---------------- BANKSWITCH CHR ROM
LDA #%00000000
STA $8000
LDA #0 ;0 = alphabet 8 = smb2
STA $8001
INC IRQ_index
LDX IRQ_index
LDA #$01
STA $E000
LDA #$6
STA $C000 ;setup MMC3 to generate an IRQ
LDA #$6
STA $C001 ;setup MMC3 to generate an IRQ
LDA #$01
STA $E001
JMP exit
IRQ_1:
dec scroll3
dec scroll3
LDA scroll3
STA $2005
LDA #0
STA $2005
LDA #%00000000
STA $8000
LDA #0 ;0 = alphabet 8 = smb2
STA $8001
FIN_IRQ:
;----------------
LDA #$01
STA $E000 ;acknowledge the IRQ and disable further IRQ generation
exit:
pla
tay ; get your register values back
pla
tax
pla
RTI
vincent2105- Patient incurable
- Nombre de messages : 1381
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
J'ai relu la doc, à priori si tu recharges juste $C000 et $C001 ça devrait être bon. Par contre il ne faut pas que tu désactives les interruptions (ton premier STX $E000), uniquement après la deuxième IRQ.
A tester, je peux me tromper ...
Un truc comme ça devrait fonctionner :
A tester, je peux me tromper ...
Un truc comme ça devrait fonctionner :
- Code:
IRQ:
pha
txa
pha ; save A,X and Y. you have to do this because
tya ; IRQs interrupt your main thread of code. having your
pha ; register values change in the middle of that main thread
; would be bad...
LDX IRQ_index
BEQ IRQ_0
JMP IRQ_1
IRQ_0:
debut:
LDA machin ; 2
CMP #3 ; 2
BEQ suite ;3
INC machin ;5
JMP debut ;3 = 15 cycles
suite:
inc scroll2
LDA scroll2
STA $2005
LDA #0
STA $2005
scrollok:
;;---------------- BANKSWITCH CHR ROM
LDA #%00000000
STA $8000
; LDA #0 ;0 = alphabet 8 = smb2
STA $8001
INC IRQ_index
; LDX IRQ_index
LDA #$06
STA $C000 ;setup MMC3 to generate an IRQ
STA $C001 ;setup MMC3 to generate an IRQ
JMP exit
IRQ_1:
dec scroll3
dec scroll3
LDA scroll3
STA $2005
LDA #0
STA $2005
; LDA #%00000000
STA $8000
; LDA #0 ;0 = alphabet 8 = smb2
STA $8001
FIN_IRQ:
;----------------
STA $E000 ;acknowledge the IRQ and disable further IRQ generation
exit:
pla
tay ; get your register values back
pla
tax
pla
RTI
Re: Mr ToutLeMonde et la programmation NES...
Je viens de tester, mais on n'obtient pas le résultat attendu.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
ok ok bon j'ai jamais joué avec le mapper MMC3, donc si ça fonctionne tel que tu l'as fait, c'est que ça doit être bon :)
Re: Mr ToutLeMonde et la programmation NES...
Bon, maintenant que j'ai franchi le cap, bah je sais plus trop si je garde le "mario kart" comme fil conducteur de mon apprentissage ou si je me lance dans tout autre chose. En fait c'est la gestion de l'IA qui m'effraie le plus je crois dans l'histoire
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 pense avoir une idée pour la trajectoire de l'adversaire.
Vu qu'on n'a que trois trajectoires possibles (haut , tout droit, bas), chaque tile de la piste grâce à son index permettra de guider l'adversaire cpu, que ce soit pour éviter les obstacles ou récupérer les boosters. En appliquant une probabilité, soit l'adversaire conservera sa direction précédente, soit il se dirigera dans la "bonne direction".
Toute la piste ne serait en fait que balisage. Ca me semble pas mal.
Vu qu'on n'a que trois trajectoires possibles (haut , tout droit, bas), chaque tile de la piste grâce à son index permettra de guider l'adversaire cpu, que ce soit pour éviter les obstacles ou récupérer les boosters. En appliquant une probabilité, soit l'adversaire conservera sa direction précédente, soit il se dirigera dans la "bonne direction".
Toute la piste ne serait en fait que balisage. Ca me semble pas mal.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Aujourd'hui au programme, split du background (nametable concues avec nes screen tool, puis conversion en colonne avec script python), modifs de la routine de scrolling / maj de l'attribute table.
Ca devrait le faire
Ca devrait le faire
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Yeah merci Antoine
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Ca commence pas terrible
edit : c'est plus dans l'idée..
allez c'est mieux. p'tite pause.
edit : c'est plus dans l'idée..
allez c'est mieux. p'tite pause.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Vincent on fire!
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...
vincent2105 a écrit:je viens de tomber sur ça : ROM : http://forums.nesdev.com/download/file.php?id=69
Allez y'a encore du boulot
C'est marrant je viens de tomber sur le jeu ou il a piqué cette animation de tuile, un jeu Japonais Mitsume Ga Tooru, le jeu a l'aire pas mal
https://www.youtube.com/watch?v=9L3ymCQR5PM
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...
Merci pour les encouragements upsilandre Ca y'est j'ai adapté ma routine de scroll pour 14 tiles / colonne. Prochaine étape : pouvoir l'utiliser dans la NMI et l'IRQ.
Mitsume Ga Tooru, c'est sympa oui, je ne connaissais pas, en tout cas je trouve qu'il y a pas mal d'idées intéressantes et visuellement j'aime bien (sur Nes, c'est pas toujours évident ).
Mitsume Ga Tooru, c'est sympa oui, je ne connaissais pas, en tout cas je trouve qu'il y a pas mal d'idées intéressantes et visuellement j'aime bien (sur Nes, c'est pas toujours évident ).
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Très très bien réalisé ce Mitsume Ga Tooru. Ca a l'air agréable à jouer et c'est très bien animé ! Ils utilisent souvent des sprites verticaux pour éviter au mieux les clignotements... on voit qu'ils maitrisent super bien la machine.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Mr ToutLeMonde et la programmation NES...
Ca avance à petit pas, au fur et à mesure, j'ai pas mal d'idées de gamedesign ; grâce aux interruptions et au bankswitch de chr rom, on peut imaginer un tas de trucs sympas... je me vois déjà sur le circuit "arc-en-ciel"
Ci dessous j'ai juste bloqué le scroll pour la moitié basse de l'écran, j'ai prévu le hud au milieu (mud?).
Ci dessous j'ai juste bloqué le scroll pour la moitié basse de l'écran, j'ai prévu le hud au milieu (mud?).
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Ca prend forme.
Y a un petit décalage vertical, j'ai l'impression qu'on voit la partie basse de l'image en haut?
Y a un petit décalage vertical, j'ai l'impression qu'on voit la partie basse de l'image en haut?
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...
Pas surprenant c'est Natsume (Shatterhand, Blue Shadow), l'un des meilleurs sous-traitant sur NES (l'inverse de Micronics)Stef a écrit:Très très bien réalisé ce Mitsume Ga Tooru. Ca a l'air agréable à jouer et c'est très bien animé ! Ils utilisent souvent des sprites verticaux pour éviter au mieux les clignotements... on voit qu'ils maitrisent super bien la machine.
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...
upsilandre a écrit:Ca prend forme.
Y a un petit décalage vertical, j'ai l'impression qu'on voit la partie basse de l'image en haut?
Non, pas de décalage, j'ai gardé l'affichage NTSC, les tiles que j'ai utilisées renforcent surement cette impression J'ai prévu 14 tiles de haut par écran joueur et 2 pour le hud
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 réfléchis à l'occupation en mémoire du circuit (que je scinde en 2 : piste+background accessoire)...
Avec le MMC3, on a 2 banks PRG fixes et 2 banks switchables de 8ko chacune. Et on a une extension RAM de 8Ko.
Pour me simplifier la tache et éviter de rendre mes routines de MAJ du scroll trop biscornues, je vais faire au plus simple. (Toujours pas de metatile donc :p )
En mode 1 joueur, je vais mettre la MAP de la piste dans une bank switchable (512 colonnes de 16 tiles pour me simplifier la vie), et la MAP du background accessoire dans l'autre bank switchable. (512*16 également) Chacune de ces 2 banks sera donc pleine.
Mais il va me manquer l'attribute table (pour le choix des palettes de couleurs) Vu qu'elle occupe 1 Ko par circuit (piste + bg accessoire), je ne peux pas me permettre de la mettre dans les banks fixes, j'envisage donc de regrouper les attributes tables de chaque circuit dans une bank switchable et de copier celle voulue en RAM avant l'initialisation du circuit.
En mode 2 joueurs, on aura une bank de 8ko inutilisée du coup
En résumé, y'a du gachis, mais je prends mon aise parceque parfois je suis à 2 doigts de la noyade
Avec le MMC3, on a 2 banks PRG fixes et 2 banks switchables de 8ko chacune. Et on a une extension RAM de 8Ko.
Pour me simplifier la tache et éviter de rendre mes routines de MAJ du scroll trop biscornues, je vais faire au plus simple. (Toujours pas de metatile donc :p )
En mode 1 joueur, je vais mettre la MAP de la piste dans une bank switchable (512 colonnes de 16 tiles pour me simplifier la vie), et la MAP du background accessoire dans l'autre bank switchable. (512*16 également) Chacune de ces 2 banks sera donc pleine.
Mais il va me manquer l'attribute table (pour le choix des palettes de couleurs) Vu qu'elle occupe 1 Ko par circuit (piste + bg accessoire), je ne peux pas me permettre de la mettre dans les banks fixes, j'envisage donc de regrouper les attributes tables de chaque circuit dans une bank switchable et de copier celle voulue en RAM avant l'initialisation du circuit.
En mode 2 joueurs, on aura une bank de 8ko inutilisée du coup
En résumé, y'a du gachis, mais je prends mon aise parceque parfois je suis à 2 doigts de la noyade
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Avec l'effet d'ombre ca ajoute encore plus a la profondeur
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...
C'est dommage que la perspective soit pas cohérente, mais c'est très impressionnant. C'est fait comment cet effet ?
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...
C'est juste une animation de tuile et une palettes alternatives pour les ombres (avec toujours la meme animation de tuile).
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...
Aussi bête que ça ? Ça rend bien en tout cas (mais ça aurait rendu mieux si l'ombre était décalée de la même façon sur les différents blocs).
Y'a combien de tiles animées ?
Y'a combien de tiles animées ?
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...
Bah tu peux faire des trucs géniaux avec le swap de tiles.
Un peu la même chose sur PCE dans le jeu magical chase :
https://youtu.be/OHyvX5dzwEI?t=14m35s
Un peu la même chose sur PCE dans le jeu magical chase :
https://youtu.be/OHyvX5dzwEI?t=14m35s
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Je m'en doute, mais ça veut dire mettre à jour des tiles complètes à chaque frame, ça bouffe quand même pas mal le budget DMA.
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...
Bah ça dépend de la complexité de l'anim, du budget disponible et de la machine .
1 tile 8x8 c'est 32 octets, donc y'a qd même pas mal de marge .
Ici un effet de parallaxes verticaux:
https://youtu.be/HzqTQAqsZk0?t=7m17s
1 tile 8x8 c'est 32 octets, donc y'a qd même pas mal de marge .
Ici un effet de parallaxes verticaux:
https://youtu.be/HzqTQAqsZk0?t=7m17s
Dernière édition par TOUKO le Mer 31 Mai 2017 - 10:14, édité 1 fois
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
En faisant du bankswitch de CHR-ROM(/RAM) sur NES ça coûte rien :)
Re: Mr ToutLeMonde et la programmation NES...
Tu peux bankswitcher juste une partie de la ROM/RAM ou tu dois avoir des tiles en double ?
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 dépend du mapper utilisé.
Pour les plus simples tu bankswitch toute la page avec donc des tiles en double (en CHR-RAM c'est moins gênant du coup).
Pour les plus simples tu bankswitch toute la page avec donc des tiles en double (en CHR-RAM c'est moins gênant du coup).
Re: Mr ToutLeMonde et la programmation NES...
Tryphon a écrit:Aussi bête que ça ? Ça rend bien en tout cas (mais ça aurait rendu mieux si l'ombre était décalée de la même façon sur les différents blocs).
Y'a combien de tiles animées ?
Je suis pas allé voir dans le jeu, mais dans la démo que j'ai posté initialement, il utilise 32 tiles différentes qu'il anime sur 32 banks (d'après upsilandre). A confirmer.
Après c'est du bankswitch de CHR ROM, donc comme le dit upsilandre, ça ne coute rien à part la place en CHR ROM, en plus avec le mmc3 la CHR ROM (8ko) est scindée en 2 (ou plutot en 6) : on a d'une part 4x 1ko et d'autre part 2 x 2ko (à attribuer comme on veut aux sprites ou au bg). Et on peut monter jusqu'à 256 Ko de CHR ROM. C'est vraiment souple.
Dernière édition par vincent2105 le Mer 31 Mai 2017 - 10:28, édité 3 fois
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
La NG par exemple sait faire du "swap" de tiles hardware.
Invité- Invité
Page 29 sur 34 • 1 ... 16 ... 28, 29, 30 ... 34
Sujets similaires
» Programmation CPS-1
» La programmation Megadrive
» Mr ToutLeMonde et la programmation NES...
» Programmation Nintendo SWITCH ?
» Mr ToutLeMonde et la programmation GameBoy...
» La programmation Megadrive
» Mr ToutLeMonde et la programmation NES...
» Programmation Nintendo SWITCH ?
» Mr ToutLeMonde et la programmation GameBoy...
Page 29 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum