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 15 sur 34
Page 15 sur 34 • 1 ... 9 ... 14, 15, 16 ... 24 ... 34
Re: Mr ToutLeMonde et la programmation NES...
Vous voulez rigoler ?
Mon bug... il n'a lieu que sur émulateur, pas sur ma NES !!!
Mon bug... il n'a lieu que sur émulateur, pas sur ma NES !!!
vincent2105- Patient incurable
- Nombre de messages : 1381
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Disons que l'instruction BIT t'évite à recharger A à chaque fois (si le test est faux) .Comme tu le dis c'est pas l'idéal puisqu'il faudrait que j'utilise l'instruction BIT. Je verrai ca plus tard
Mais ça marche aussi très bien avec AND .
Avec BIT
LDA bouton_presse
BIT tab_bouton
bne .test_bas
; // Code si bouton haut préssé
...
...
.test_bas:
BIT tab_bouton + 1
bne .test_gauche
; // Code si bouton bas préssé
...
...
.test_gauche
BIT tab_bouton + 2
bne .test_droit
; // Code si bouton gauche préssé
...
...
.test_droit:
BIT tab_bouton + 3
bne .test_xxx
; // Code si bouton droit préssé
...
...
Avec AND
LDA bouton_presse
AND tab_bouton
bne .test_bas
; // Code si bouton haut préssé
...
...
.test_bas:
LDA bouton_presse
AND tab_bouton + 1
bne .test_gauche
; // Code si bouton bas préssé
...
...
.test_gauche
LDA bouton_presse
AND tab_bouton + 2
bne .test_droit
; // Code si bouton gauche préssé
...
...
.test_droit:
LDA bouton_presse
AND tab_bouton + 3
bne .test_xxx
; // Code si bouton droit préssé
...
...
Mon bug... il n'a lieu que sur émulateur, pas sur ma NES !!!
En général c'est plutôt l'inverse .
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Bon j'ai essayé avec l'instruction BIT, mais quelque soit l'instruction de branchement qui la suit, je n'obtiens pas ce que j'attends :/
Juste une petite rectif, avec CMP il fallait brancher avec BNE pour tester le bouton suivant, par contre avec AND il faut brancher avec BEQ.
Pour l'instruction BIT, j'approfondirai plus tard je pense, la j'ai plutot envie de faire apparaitre differents ennemis au fur et à mesure qu'on scrolle
Juste une petite rectif, avec CMP il fallait brancher avec BNE pour tester le bouton suivant, par contre avec AND il faut brancher avec BEQ.
Pour l'instruction BIT, j'approfondirai plus tard je pense, la j'ai plutot envie de faire apparaitre differents ennemis au fur et à mesure qu'on scrolle
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
sinon y a aussi les instructions de decalage/rotation si on veut tester des bit successif, ca depend de la situation.
Pour ce qui est des bug meme si ca n'a rien a voir je sais qu'il y a un bug hardware sur les input quand le canal DMC est utilisé (a cause des interruptions)
Pour ce qui est des bug meme si ca n'a rien a voir je sais qu'il y a un bug hardware sur les input quand le canal DMC est utilisé (a cause des interruptions)
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...
Alors c'est que tu as une couille quelque part .Juste une petite rectif, avec CMP il fallait brancher avec BNE pour tester le bouton suivant, par contre avec AND il faut brancher avec BEQ.
Car justement BNE ça veux dire que ce que tu as dans A n'est pas égal à l'entrée testée (le but du BNE est justement de passer au test de l'entrée suivante si non égal) .
BIT et AND font la même chose, la seule différence c'est qu'en plus de ne pas détruire A, BIT teste aussi le bit 7 et 6 .
Ensuite, selon comment se goupille les bits de ton pad tu peux utiliser une jmp table,c'est encore plus rapide.
Dernière édition par TOUKO le Jeu 9 Juin 2016 - 18:49, édité 2 fois
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
sinon y a aussi les instructions de decalage/rotation si on veut tester des bit successif, ca depend de la situation.
oui justement, la routine de lecture du pad que j'ai repompé d'un tuto les utilise.
- Code:
LDX #$08
ReadControllerLoop1:
LDA $4016
LSR A ; bit0 -> Carry
ROL boutons_j1 ; bit0 <- Carry
DEX
BNE ReadControllerLoop1
Pour ce qui est des bug meme si ca n'a rien a voir je sais qu'il y a un bug hardware sur les input quand le canal DMC est utilisé (a cause des interruptions)
Le canal DMC (pour les samples si je dis pas de bêtise) je vais m'en passer, ca me fera une source de bugs en moins. Par contre, j'espère vraiment que je serai capable de mettre un peu de son sur tout ca si j'arrive à quelquechose de correct.
Dernière édition par vincent2105 le Jeu 9 Juin 2016 - 21:44, édité 1 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...
En tout cas moi j'ai essayé le Python (en lisant ce topic) et c'est vraiment tres sympa, parfaits je pense comme complement retro-gaming, ca m'a convaincu.
Du coup comme premier programme python j'ai fais un programme qui decrypte les fichiers ROM du famicom disk pour en extraire un maximum d'information. Je m'etais pas mal intéressé au Famicom Disk mais me manquait des informations plus précise et général sur l'utilisation et les disquettes donnent pas mal d'informations dans leurs metadata.
le FDS utilise des disquettes (qui ont 2 faces, et qu'il faut retourner manuellement) qui ne contiennent pas de secteur ou de track, y a juste une seul piste en spiral comme un CD sauf que sur un CD tu peux quand meme faire des acces random (meme si c'est lent), sur les disquettes FDS non. a chaque acces tu lis l'integralité de la piste (donc de la disquette) pour récuperer les fichiers qui t'intéresse.
Donc c'est un systeme tres simplifier que ce soit pour la mecanique du lecteur (une piste en spirale) que pour la gestion des fichiers (pas d'acces random) mais qui correspond bien au besoin puisque l'usage le plus classique va etre de charger l'integralité (ou quasi) de la face A dans la ram interne (qui emule la ROM cpu et la ROM gpu d'une cartouche 40ko classique sans mapper) au boot de la machine et donc c'est surtout sur cette premiere tache qu'il faut assurer l'efficacité car elle va s'effectuer a chaque fois que tu lance ton jeu donc le principale c'est que cette etape la soit rapide. Cette grosse simplification du systeme (et la faible densité) leur a sans doute permis d'avoir un chargement complet rapide (c'est 6 seconde le loading) a cout faible.
Ce qui est amusant dans la gestion des fichiers des disquettes FDS c'est que ce n'est pas le programme mais chaque fichier qui decide tout seul si ils doivent etre charger au boot et surtout a quelle endroit (quelle adresse mémoire), tout ca est inscrit dans leur metadata ce qui est assez original (et intéressant car ca nous donne des informations précieuse), y a aussi des noms de fichier dans les metadata mais facultatif, ce n'est pas utilisé pour la gestion des fichiers (qui sont géré uniquement par leur ID, ils peuvent d'ailleurs avoir la meme ID, il se distingue de toute facon par l'adresse a laquelle ils vont s'auto-charger) mais les nom de fichier nous donne aussi des informations donc ca vallait le coup de les récupérer aussi.
Donc mon petit programme te demande un path (vers un dossier) et il va chercher toute les ROM FDS contenu dans ce dossier (en séparant celle qui sont des ROM officiel de celle qui ne sont pas officiel) et les analyser pour extraire un max d'info et sortir 4 fichiers. un fichier qui contient les details de chaque disquettes et un autre qui contient plutot un résumé avec quelques stats (et pareille pour les ROM non officiel). Et avec Python tu fais ca vraiment tres facilement et rapidement.
Faut rappeler que Metroid, Zelda, Castlevania, Kid Icarius, Mario 2... sont des jeux qui ont ete concu pour le Famicom Disk avant d'avoir le droit a des portages cartouches donc c'est quand meme intéressant de s'y pencher.
Par exemple pour Metroid ca donne ca en version détaillé
Y a les informations lié a chaque face et les informations de chaque fichier avec notamment le nom, l'adresse a laquelle il est destiné (et j'ai meme précisé si c'etait la WRAM ou la VRAM et meme si c'etait dans le tileset ou la tilemap). J'ai verifié et indiqué aussi si jamais c'etait un fichier vide (souvent le cas pour les fichier de sauvegarde qui se trouve en fin de disquette) ou quand c'etait un fichier qui contient le text de licence Nintendo qui s'affiche au debut et qui sert de controle. et d'autre type d'information.
Et a la fin y a la quantité total de donnée de la face. y a 3 chiffres different. le total de fichier, le total en ajoutant aussi les metadata, et le total juste de fichier de donnée pour le jeu (donc sans les fichier vide ou fichier de licence) qui est le chiffre qui m'intéresse.
La juste avec les nom des fichiers et leur destinations on peut deja deviner un peu leur fonction.
En version résumé (sans les détails) ca donne ca (sur les jeux licencié)
Avec a la fin quelques stats
Faut compter en général 50Ko par face. Ca en fait quand meme la disquette avec la plus faible densité que je connaisse. J'ai pas trouvé historiquement de disquette plus faible. Du coup le support s'est tout de suite fait rattrapé par les cartouches et son atout s'est vite limité a ses capacités d'ecriture.
Les fichiers complets
https://drive.google.com/open?id=0B399kteofpYuUEhjZTdDczhZWmM
https://drive.google.com/open?id=0B399kteofpYuMkxWODFBR3h6NVE
https://drive.google.com/open?id=0B399kteofpYudzBJR202VHFhdWM
https://drive.google.com/open?id=0B399kteofpYuYjhGTkRIaFF1TE0
Du coup comme premier programme python j'ai fais un programme qui decrypte les fichiers ROM du famicom disk pour en extraire un maximum d'information. Je m'etais pas mal intéressé au Famicom Disk mais me manquait des informations plus précise et général sur l'utilisation et les disquettes donnent pas mal d'informations dans leurs metadata.
le FDS utilise des disquettes (qui ont 2 faces, et qu'il faut retourner manuellement) qui ne contiennent pas de secteur ou de track, y a juste une seul piste en spiral comme un CD sauf que sur un CD tu peux quand meme faire des acces random (meme si c'est lent), sur les disquettes FDS non. a chaque acces tu lis l'integralité de la piste (donc de la disquette) pour récuperer les fichiers qui t'intéresse.
Donc c'est un systeme tres simplifier que ce soit pour la mecanique du lecteur (une piste en spirale) que pour la gestion des fichiers (pas d'acces random) mais qui correspond bien au besoin puisque l'usage le plus classique va etre de charger l'integralité (ou quasi) de la face A dans la ram interne (qui emule la ROM cpu et la ROM gpu d'une cartouche 40ko classique sans mapper) au boot de la machine et donc c'est surtout sur cette premiere tache qu'il faut assurer l'efficacité car elle va s'effectuer a chaque fois que tu lance ton jeu donc le principale c'est que cette etape la soit rapide. Cette grosse simplification du systeme (et la faible densité) leur a sans doute permis d'avoir un chargement complet rapide (c'est 6 seconde le loading) a cout faible.
Ce qui est amusant dans la gestion des fichiers des disquettes FDS c'est que ce n'est pas le programme mais chaque fichier qui decide tout seul si ils doivent etre charger au boot et surtout a quelle endroit (quelle adresse mémoire), tout ca est inscrit dans leur metadata ce qui est assez original (et intéressant car ca nous donne des informations précieuse), y a aussi des noms de fichier dans les metadata mais facultatif, ce n'est pas utilisé pour la gestion des fichiers (qui sont géré uniquement par leur ID, ils peuvent d'ailleurs avoir la meme ID, il se distingue de toute facon par l'adresse a laquelle ils vont s'auto-charger) mais les nom de fichier nous donne aussi des informations donc ca vallait le coup de les récupérer aussi.
Donc mon petit programme te demande un path (vers un dossier) et il va chercher toute les ROM FDS contenu dans ce dossier (en séparant celle qui sont des ROM officiel de celle qui ne sont pas officiel) et les analyser pour extraire un max d'info et sortir 4 fichiers. un fichier qui contient les details de chaque disquettes et un autre qui contient plutot un résumé avec quelques stats (et pareille pour les ROM non officiel). Et avec Python tu fais ca vraiment tres facilement et rapidement.
Faut rappeler que Metroid, Zelda, Castlevania, Kid Icarius, Mario 2... sont des jeux qui ont ete concu pour le Famicom Disk avant d'avoir le droit a des portages cartouches donc c'est quand meme intéressant de s'y pencher.
Par exemple pour Metroid ca donne ca en version détaillé
- Spoiler:
*******************************************************
Metroid (Japan) (v1.2) [b]
*******************************************************
disk 1 Side A(boot)
Number of Files: 15
Highest boot File ID: 15
Game Name: MET
Maker ID: 1
Version number: 2
Extra Disk ID: 0 0
Reserved Space(HEX): FF FF FF FF FF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reserved Space(ASCII): ÿÿÿÿÿ
File Number: 0
File ID: 0
File Name: KYODAKU-
Target Address: 2800h (VRAM TileMap)
File Size: 224 (licence text file)
File Number: 1
File ID: 0
File Name: DEMO.CHR
Target Address: 0000h (VRAM TileSet)
File Size: 7584
File Number: 2
File ID: 0
File Name: MET.HEX
Target Address: D000h (WRAM)
File Size: 4086
File Number: 3
File ID: 0
File Name: DEMO.PGM
Target Address: 6800h (WRAM)
File Size: 10496
File Number: 4
File ID: 0
File Name: DEMO.PG2
Target Address: C5A0h (WRAM)
File Size: 2496
File Number: 5
File ID: 0
File Name: DEMO.VEC
Target Address: DFFAh (WRAM)
File Size: 6
File Number: 6
File ID: 32
File Name: BMENST
Target Address: C000h (WRAM)
File Size: 192
File Number: 7
File ID: 32
File Name: MAIN.VEC
Target Address: DFFAh (WRAM)
File Size: 6
File Number: 8
File ID: 32
File Name: MAIN.PGM
Target Address: 6800h (WRAM)
File Size: 19472
File Number: 9
File ID: 238
File Name: ENDOBJ
Target Address: 0000h (VRAM TileSet)
File Size: 1536
File Number: 10
File ID: 238
File Name: ENDBG
Target Address: 1000h (VRAM TileSet)
File Size: 1024
File Number: 11
File ID: 238
File Name: MMEEE
Target Address: CC00h (WRAM)
File Size: 976
File Number: 12
File ID: 238
File Name: ENDPGM
Target Address: 6000h (WRAM)
File Size: 3456
File Number: 13
File ID: 238
File Name: ENDVEC
Target Address: DFFAh (WRAM)
File Size: 6
File Number: 14
File ID: 14
File Name:
Target Address: C5A0h (WRAM)
File Size: 117
Total Files: 51677 bytes
Total with Metadata: 51990 bytes
Total without void files and licence text: 51453 bytes
No Hideen Data on this Side
*******************************************************
disk 1 Side B
Number of Files: 28
Highest boot File ID: 15
Game Name: MET
Maker ID: 1
Version number: 2
Extra Disk ID: 0 0
Reserved Space(HEX): FF FF FF FF FF 0 68 43 4F 4E 20 62 79 20 68 61 6C 39 39 39 39 0 0 0 0 0 0 0 0 0
Reserved Space(ASCII): ÿÿÿÿÿ hCON by hal9999
File Number: 0
File ID: 129
File Name: HMBG1A
Target Address: 1000h (VRAM TileSet)
File Size: 336
File Number: 1
File ID: 144
File Name: HMBG1B
Target Address: 1200h (VRAM TileSet)
File Size: 1104
File Number: 2
File ID: 145
File Name: HMBG1C
Target Address: 1800h (VRAM TileSet)
File Size: 2048
File Number: 3
File ID: 129
File Name: HMOB1B
Target Address: C00h (VRAM TileSet)
File Size: 1024
File Number: 4
File ID: 132
File Name: HMBG4A
Target Address: 1000h (VRAM TileSet)
File Size: 608
File Number: 5
File ID: 132
File Name: HMBG4B
Target Address: 1700h (VRAM TileSet)
File Size: 112
File Number: 6
File ID: 132
File Name: HMOB4A
Target Address: C00h (VRAM TileSet)
File Size: 1024
File Number: 7
File ID: 146
File Name: HMBG6C
Target Address: 1000h (VRAM TileSet)
File Size: 736
File Number: 8
File ID: 133
File Name: HMBG5B
Target Address: 1200h (VRAM TileSet)
File Size: 1536
File Number: 9
File ID: 133
File Name: HMBG5C
Target Address: 1900h (VRAM TileSet)
File Size: 144
File Number: 10
File ID: 133
File Name: HMBG5D
Target Address: 1D00h (VRAM TileSet)
File Size: 768
File Number: 11
File ID: 133
File Name: HMOB5A
Target Address: C00h (VRAM TileSet)
File Size: 1024
File Number: 12
File ID: 134
File Name: HMBG6A
Target Address: 1700h (VRAM TileSet)
File Size: 192
File Number: 13
File ID: 134
File Name: HMBG6B
Target Address: 1E00h (VRAM TileSet)
File Size: 512
File Number: 14
File ID: 134
File Name: HMOB6A
Target Address: C00h (VRAM TileSet)
File Size: 1024
File Number: 15
File ID: 135
File Name: HMBG7A
Target Address: 1700h (VRAM TileSet)
File Size: 192
File Number: 16
File ID: 135
File Name: HMOB7A
Target Address: C00h (VRAM TileSet)
File Size: 1024
File Number: 17
File ID: 16
File Name: MMROCK
Target Address: DEA0h (WRAM)
File Size: 336
File Number: 18
File ID: 17
File Name: MMFIRE
Target Address: DEA0h (WRAM)
File Size: 336
File Number: 19
File ID: 19
File Name: MMKITI
Target Address: DEA0h (WRAM)
File Size: 336
File Number: 20
File ID: 31
File Name: MMKBOS
Target Address: DEA0h (WRAM)
File Size: 336
File Number: 21
File ID: 16
File Name: STG1PGM
Target Address: B560h (WRAM)
File Size: 6784
File Number: 22
File ID: 17
File Name: STG4PGM
Target Address: B560h (WRAM)
File Size: 6784
File Number: 23
File ID: 19
File Name: STG5PGM
Target Address: B560h (WRAM)
File Size: 6688
File Number: 24
File ID: 18
File Name: STG6PGM
Target Address: B560h (WRAM)
File Size: 6016
File Number: 25
File ID: 20
File Name: STG7PGM
Target Address: B560h (WRAM)
File Size: 5760
File Number: 26
File ID: 239
File Name: MENSAVE2
Target Address: C3F0h (WRAM)
File Size: 432
File Number: 27
File ID: 239
File Name:
Target Address: C000h (WRAM)
File Size: 1008 (Void File! Save Slot?)
Total Files: 48224 bytes
Total with Metadata: 48758 bytes
Total without void files and licence text: 47216 bytes
No Hideen Data on this Side
Y a les informations lié a chaque face et les informations de chaque fichier avec notamment le nom, l'adresse a laquelle il est destiné (et j'ai meme précisé si c'etait la WRAM ou la VRAM et meme si c'etait dans le tileset ou la tilemap). J'ai verifié et indiqué aussi si jamais c'etait un fichier vide (souvent le cas pour les fichier de sauvegarde qui se trouve en fin de disquette) ou quand c'etait un fichier qui contient le text de licence Nintendo qui s'affiche au debut et qui sert de controle. et d'autre type d'information.
Et a la fin y a la quantité total de donnée de la face. y a 3 chiffres different. le total de fichier, le total en ajoutant aussi les metadata, et le total juste de fichier de donnée pour le jeu (donc sans les fichier vide ou fichier de licence) qui est le chiffre qui m'intéresse.
La juste avec les nom des fichiers et leur destinations on peut deja deviner un peu leur fonction.
En version résumé (sans les détails) ca donne ca (sur les jeux licencié)
- Spoiler:
*******************************************************
--------------- LICENSED FDS GAMES --------------------
*******************************************************
Ai Senshi Nicol (Japan) [b]
disk 1 Side A(boot) 53024 bytes 10 Files
disk 1 Side B 52636 bytes 13 Files
Total Size 105660 bytes 23 Files
Akumajou Dracula (Japan) (v1.0) [b]
disk 1 Side A(boot) 53232 bytes 10 Files
disk 1 Side B 51840 bytes 16 Files
Total Size 105072 bytes 26 Files
Akumajou Dracula (Japan) (v1.2) [b]
disk 1 Side A(boot) 53168 bytes 10 Files
disk 1 Side B 51672 bytes 16 Files
Total Size 104840 bytes 26 Files
All Night Nippon Super Mario Brothers (Japan) (Promotion Cart)
disk 1 Side A(boot) 52578 bytes 8 Files
Total Size 52578 bytes 8 Files
Apple Town Monogatari - Little Computer People (Japan)
disk 1 Side A(boot) 51139 bytes 9 Files
disk 1 Side B 51673 bytes 7 Files
Total Size 102812 bytes 16 Files
Armana no Kiseki (Japan)
disk 1 Side A(boot) 52877 bytes 11 Files
disk 1 Side B 50518 bytes 21 Files
Total Size 103395 bytes 32 Files
Aspic - Majaou no Noroi (Japan)
disk 1 Side A(boot) 44781 bytes 25 Files
disk 1 Side B 43436 bytes 18 Files
Total Size 88217 bytes 43 Files
Bio Miracle Bokutte Upa (Japan)
disk 1 Side A(boot) 53584 bytes 8 Files
disk 1 Side B 52434 bytes 13 Files
Total Size 106018 bytes 21 Files
Cocona World (Japan)
disk 1 Side A(boot) 50075 bytes 9 Files
disk 1 Side B 49056 bytes 10 Files
Total Size 99131 bytes 19 Files
Deep Dungeon - Madou Senki (Japan) [b]
disk 1 Side A(boot) 44734 bytes 16 Files
disk 1 Side B 36736 bytes 31 Files
Total Size 81470 bytes 47 Files
Deep Dungeon - Madou Senki (Japan) [En by KingMike v1.0] (~Deep Dungeon - The Heretic War)
disk 1 Side A(boot) 45832 bytes 16 Files
disk 1 Side B 39026 bytes 31 Files
Total Size 84858 bytes 47 Files
Deep Dungeon II - Yuushi no Monshou (Japan) (v1.0)
disk 1 Side A(boot) 45432 bytes 13 Files
disk 1 Side B 49088 bytes 13 Files
Total Size 94520 bytes 26 Files
Deep Dungeon II - Yuushi no Monshou (Japan) (v1.1) [b]
disk 1 Side A(boot) 45432 bytes 12 Files
disk 1 Side B 49088 bytes 13 Files
Total Size 94520 bytes 25 Files
Dirty Pair - Project Eden (Japan) [b]
disk 1 Side A(boot) 50569 bytes 17 Files
disk 1 Side B 51819 bytes 15 Files
Total Size 102388 bytes 32 Files
Dirty Pair - Project Eden (Japan) [En by Ballzysoft v0.90]
disk 1 Side A(boot) 50825 bytes 17 Files
disk 1 Side B 51819 bytes 15 Files
Total Size 102644 bytes 32 Files
Donkey Kong (Japan) (Disk Writer)
disk 1 Side A(boot) 40960 bytes 3 Files
Total Size 40960 bytes 3 Files
Donkey Kong Jr. (Japan) (Disk Writer)
disk 1 Side A(boot) 40960 bytes 3 Files
Total Size 40960 bytes 3 Files
Dr. Chaos - Jigoku no Tobira (Japan) [b]
disk 1 Side A(boot) 52893 bytes 11 Files
disk 1 Side B 48237 bytes 30 Files
Total Size 101130 bytes 41 Files
Dracula II - Noroi no Fuuin (Japan)
disk 1 Side A(boot) 53019 bytes 11 Files
disk 1 Side B 50359 bytes 20 Files
Total Size 103378 bytes 31 Files
Druid - Kyoufu no Tobira (Japan)
disk 1 Side A(boot) 47378 bytes 11 Files
disk 1 Side B 52501 bytes 14 Files
Total Size 99879 bytes 25 Files
Egger Land (Japan) [b]
disk 1 Side A(boot) 54608 bytes 4 Files
disk 1 Side B 53091 bytes 5 Files
Total Size 107699 bytes 9 Files
Electrician (Japan) [En by KingMike v1.0]
disk 1 Side A(boot) 51120 bytes 16 Files
disk 1 Side B 47104 bytes 15 Files
Total Size 98224 bytes 31 Files
Esper Dream (Japan) (v1.0) [b]
disk 1 Side A(boot) 53457 bytes 8 Files
disk 1 Side B 50810 bytes 18 Files
Total Size 104267 bytes 26 Files
Esper Dream (Japan) (v1.1) [b]
disk 1 Side A(boot) 53457 bytes 8 Files
disk 1 Side B 50810 bytes 18 Files
Total Size 104267 bytes 26 Files
Esper Dream (Japan) (v1.1) [En by Mute v1.0]
disk 1 Side A(boot) 53457 bytes 8 Files
disk 1 Side B 50810 bytes 18 Files
Total Size 104267 bytes 26 Files
Exciting Baseball (Japan)
disk 1 Side A(boot) 52575 bytes 9 Files
disk 1 Side B 52560 bytes 9 Files
Total Size 105135 bytes 18 Files
Exciting Basket (Japan)
disk 1 Side A(boot) 52928 bytes 6 Files
disk 1 Side B 35712 bytes 7 Files
Total Size 88640 bytes 13 Files
Exciting Billiard (Japan)
disk 1 Side A(boot) 51861 bytes 12 Files
disk 1 Side B 46890 bytes 34 Files
Total Size 98751 bytes 46 Files
Exciting Soccer - Konami Cup (Japan) [b]
disk 1 Side A(boot) 50288 bytes 6 Files
disk 1 Side B 49824 bytes 7 Files
Total Size 100112 bytes 13 Files
Falsion (Japan)
disk 1 Side A(boot) 42076 bytes 6 Files
disk 1 Side B 48434 bytes 10 Files
Total Size 90510 bytes 16 Files
Famicom Grand Prix II - 3D Hot Rally (Japan)
disk 1 Side A(boot) 41344 bytes 7 Files
disk 1 Side B 53888 bytes 8 Files
Total Size 95232 bytes 15 Files
Family Computer Golf Japan Course (Japan)
disk 1 Side A(boot) 47104 bytes 8 Files
disk 1 Side B 52688 bytes 7 Files
Total Size 99792 bytes 15 Files
Family Computer Golf Special Course (Japan) (Prize Cart)
disk 1 Side A(boot) 47184 bytes 9 Files
disk 1 Side B 53200 bytes 11 Files
Total Size 100384 bytes 20 Files
Family Computer Golf Tournament - Japan Course (Japan) (Prize Cart)
disk 1 Side A(boot) 40192 bytes 8 Files
disk 1 Side B 53345 bytes 7 Files
Total Size 93537 bytes 15 Files
Family Computer Golf U.S. Course (Japan)
disk 1 Side A(boot) 47184 bytes 9 Files
disk 1 Side B 53200 bytes 11 Files
Total Size 100384 bytes 20 Files
Family Computer Othello (Japan)
disk 1 Side A(boot) 36864 bytes 3 Files
Total Size 36864 bytes 3 Files
Final Commando - Akai Yousai (Japan)
disk 1 Side A(boot) 50016 bytes 7 Files
disk 1 Side B 45288 bytes 8 Files
Total Size 95304 bytes 15 Files
Fire Rock (Japan)
disk 1 Side A(boot) 45798 bytes 16 Files
disk 1 Side B 52037 bytes 13 Files
Total Size 97835 bytes 29 Files
FMC Disk Card Checker Ver 1.3 (Japan) (v1.2) (Developer Cart)
disk 1 Side A(boot) 32768 bytes 2 Files
Total Size 32768 bytes 2 Files
Gall Force - Eternal Story (Japan) [En by Gil Galad v1.0]
disk 1 Side A(boot) 54576 bytes 5 Files
disk 1 Side B 52476 bytes 10 Files
Total Size 107052 bytes 15 Files
Ginga Denshou - Galaxy Odyssey (Japan)
disk 1 Side A(boot) 50465 bytes 13 Files
disk 1 Side B 51248 bytes 18 Files
Total Size 101713 bytes 31 Files
Golf (Japan) (v1.1)
disk 1 Side A(boot) 24576 bytes 3 Files
Total Size 24576 bytes 3 Files
Hao-kun no Fushigi na Tabi (Japan) [b]
disk 1 Side A(boot) 50505 bytes 17 Files
disk 1 Side B 51926 bytes 8 Files
Total Size 102431 bytes 25 Files
Hikari Shinwa - Parthenon no Kagami (Japan) (v1.1) [b]
disk 1 Side A(boot) 48703 bytes 13 Files
disk 1 Side B 49046 bytes 16 Files
Total Size 97749 bytes 29 Files
Ice Hockey (Japan)
disk 1 Side A(boot) 40960 bytes 3 Files
Total Size 40960 bytes 3 Files
Idol Hotline - Nakayama Miho no Tokimeki High School (Japan)
disk 1 Side A(boot) 50531 bytes 15 Files
disk 1 Side B 53259 bytes 10 Files
Total Size 103790 bytes 25 Files
Karate Champ (Japan)
disk 1 Side A(boot) 40960 bytes 4 Files
disk 1 Side B 20480 bytes 5 Files
Total Size 61440 bytes 9 Files
Karin no Tsurugi (Japan) [b]
disk 1 Side A(boot) 53296 bytes 7 Files
disk 1 Side B 52704 bytes 13 Files
Total Size 106000 bytes 20 Files
Karin no Tsurugi (Japan) [En by Filler+KingMike+Satsu v1.0] (~Sword of Kalin, The)
disk 1 Side A(boot) 54592 bytes 7 Files
disk 1 Side B 52960 bytes 13 Files
Total Size 107552 bytes 20 Files
Kick Challenger Air Foot - Yasai no Kuni no Ashi Senshi (Japan)
disk 1 Side A(boot) 53663 bytes 8 Files
disk 1 Side B 51535 bytes 9 Files
Total Size 105198 bytes 17 Files
Kieta Princess (Japan)
disk 1 Side A(boot) 47029 bytes 9 Files
disk 1 Side B 51150 bytes 19 Files
Total Size 98179 bytes 28 Files
Knight Move (Japan) [En by PentarouZero v1.0]
disk 1 Side A(boot) 54368 bytes 6 Files
Total Size 54368 bytes 6 Files
Knight Move (Japan)
disk 1 Side A(boot) 54368 bytes 6 Files
Total Size 54368 bytes 6 Files
Legend of Zelda 2, The - Link no Bouken (Japan) (v1.0)
disk 1 Side A(boot) 54084 bytes 7 Files
disk 1 Side B 52642 bytes 13 Files
Total Size 106726 bytes 20 Files
Legend of Zelda 2, The - Link no Bouken (Japan) (v1.1)
disk 1 Side A(boot) 54084 bytes 7 Files
disk 1 Side B 52642 bytes 13 Files
Total Size 106726 bytes 20 Files
Lutter (Japan) [En by Mute v1.0]
disk 1 Side A(boot) 49360 bytes 18 Files
disk 1 Side B 45237 bytes 22 Files
Total Size 94597 bytes 40 Files
Meikyuu Jiin Dababa (Japan)
disk 1 Side A(boot) 53328 bytes 9 Files
disk 1 Side B 50048 bytes 12 Files
Total Size 103376 bytes 21 Files
Metroid (Japan) (v1.1) [b]
disk 1 Side A(boot) 51453 bytes 15 Files
disk 1 Side B 48192 bytes 27 Files
Total Size 99645 bytes 42 Files
Metroid (Japan) (v1.1) [En by AlanMidas v20010225]
disk 1 Side A(boot) 51453 bytes 15 Files
disk 1 Side B 48192 bytes 27 Files
Total Size 99645 bytes 42 Files
Metroid (Japan) (v1.2) [b]
disk 1 Side A(boot) 51453 bytes 15 Files
disk 1 Side B 47216 bytes 28 Files
Total Size 98669 bytes 43 Files
Metroid (Japan) (v1.2) [En by AlanMidas v20010225]
disk 1 Side A(boot) 51453 bytes 15 Files
disk 1 Side B 47216 bytes 28 Files
Total Size 98669 bytes 43 Files
Moero TwinBee - Cinnamon Hakase wo Sukue! (Japan)
disk 1 Side A(boot) 53584 bytes 9 Files
disk 1 Side B 51680 bytes 14 Files
Total Size 105264 bytes 23 Files
Monitor Puzzle Kineko, The - Kinetic Connection (Japan)
disk 1 Side A(boot) 45010 bytes 6 Files
disk 1 Side B 50394 bytes 16 Files
Total Size 95404 bytes 22 Files
Monty on the Run - Monty no Doki Doki Dai Dassou (Japan) [b]
disk 1 Side A(boot) 51743 bytes 15 Files
disk 1 Side B 49964 bytes 21 Files
Total Size 101707 bytes 36 Files
Namida no Soukoban Special (Japan) [En by KingMike v1.0] (~Boxxle - Warehouse Evening of Tears)
disk 1 Side A(boot) 51912 bytes 6 Files
disk 1 Side B 7680 bytes 1 Files
Total Size 59592 bytes 7 Files
Nazo no Kabe - Block Kuzushi (Japan) [b]
disk 1 Side A(boot) 53408 bytes 8 Files
disk 1 Side B 48688 bytes 12 Files
Total Size 102096 bytes 20 Files
Nazo no Murasame Jou (Japan) [En by Spinner 8 v1.0] (~Riddle of Murasame Castle)
disk 1 Side A(boot) 39256 bytes 7 Files
disk 1 Side B 48024 bytes 26 Files
Total Size 87280 bytes 33 Files
Nazo no Murasame Jou (Japan)
disk 1 Side A(boot) 39256 bytes 7 Files
disk 1 Side B 48024 bytes 26 Files
Total Size 87280 bytes 33 Files
Nazoraa Land Dai 2 Gou (Japan) (Nazo Magazine Disk)
disk 1 Side A(boot) 52586 bytes 9 Files
disk 1 Side B 54460 bytes 6 Files
Total Size 107046 bytes 15 Files
Nazoraa Land Dai 3 Gou (Japan) (Nazo Magazine Disk) [b]
disk 1 Side A(boot) 53910 bytes 6 Files
disk 1 Side B 54046 bytes 6 Files
Total Size 107956 bytes 12 Files
Nazoraa Land Soukan Gou (Japan) (Nazo Magazine Disk) [b]
disk 1 Side A(boot) 45954 bytes 9 Files
disk 1 Side B 47380 bytes 6 Files
Total Size 93334 bytes 15 Files
Nazoraa Land Zoukan Gou - Quiz Ou wo Sagase! (Japan) (Nazo Magazine Disk) [b]
disk 1 Side A(boot) 48802 bytes 12 Files
disk 1 Side B 51075 bytes 16 Files
Total Size 99877 bytes 28 Files
Neunzehn (Japan) [b]
disk 1 Side A(boot) 46848 bytes 7 Files
disk 1 Side B 45120 bytes 33 Files
Total Size 91968 bytes 40 Files
Patlabor The Mobile Police - Dai 2 Shoutai Shutsudou Seyo! (Japan) [b]
disk 1 Side A(boot) 43562 bytes 15 Files
disk 1 Side B 48294 bytes 17 Files
Total Size 91856 bytes 32 Files
Patlabor The Mobile Police - Dai 2 Shoutai Shutsudou Seyo! (Japan) [En by Vice v1.0]
disk 1 Side A(boot) 43613 bytes 15 Files
disk 1 Side B 48294 bytes 17 Files
Total Size 91907 bytes 32 Files
Professional Mahjong Gokuu (Japan)
disk 1 Side A(boot) 34992 bytes 4 Files
disk 1 Side B 18922 bytes 4 Files
Total Size 53914 bytes 8 Files
ProWres - Famicom Wrestling Association (Japan) [b]
disk 1 Side A(boot) 53572 bytes 9 Files
Total Size 53572 bytes 9 Files
Risa no Yousei Densetsu (Japan)
disk 1 Side A(boot) 52960 bytes 9 Files
disk 1 Side B 53952 bytes 8 Files
Total Size 106912 bytes 17 Files
Samurai Sword (Japan) [b]
disk 1 Side A(boot) 50176 bytes 14 Files
disk 1 Side B 38400 bytes 12 Files
Total Size 88576 bytes 26 Files
Samurai Sword (Japan) [En by Mute v1.0]
disk 1 Side A(boot) 50176 bytes 14 Files
disk 1 Side B 38400 bytes 12 Files
Total Size 88576 bytes 26 Files
Santa Claus no Takarabako (Japan) [En by Gil Galad v1.01] (~Santa Claus's Toybox)
disk 1 Side A(boot) 52224 bytes 9 Files
disk 1 Side B 50798 bytes 15 Files
Total Size 103022 bytes 24 Files
Seiken Psychocalibur - Majuu no Mori Densetsu (Japan) [En by Spoony Bard v1.0]
disk 1 Side A(boot) 52273 bytes 14 Files
disk 1 Side B 48774 bytes 28 Files
Total Size 101047 bytes 42 Files
Seiken Psychocalibur - Majuu no Mori Densetsu (Japan)
disk 1 Side A(boot) 52273 bytes 14 Files
disk 1 Side B 48774 bytes 28 Files
Total Size 101047 bytes 42 Files
Silviana - Ai Ippai no Boukensya (Japan) [b]
disk 1 Side A(boot) 50825 bytes 10 Files
disk 1 Side B 48934 bytes 26 Files
Total Size 99759 bytes 36 Files
Silviana - Ai Ippai no Boukensya (Japan) [En by Mute v1.0]
disk 1 Side A(boot) 50825 bytes 10 Files
disk 1 Side B 48934 bytes 26 Files
Total Size 99759 bytes 36 Files
Smash Ping Pong (Japan) [b]
disk 1 Side A(boot) 40960 bytes 3 Files
Total Size 40960 bytes 3 Files
Soccer (Japan)
disk 1 Side A(boot) 41184 bytes 3 Files
Total Size 41184 bytes 3 Files
Suishou no Dragon (Japan) [En by Mute v1.0] (~Crystal Dragon)
disk 1 Side A(boot) 51971 bytes 15 Files
disk 1 Side B 52353 bytes 11 Files
Total Size 104324 bytes 26 Files
Super Lode Runner (Japan) [b]
disk 1 Side A(boot) 42577 bytes 4 Files
disk 1 Side B 42778 bytes 40 Files
Total Size 85355 bytes 44 Files
Super Lode Runner II (Japan) (Disk Writer) [b]
disk 1 Side A(boot) 42593 bytes 4 Files
disk 1 Side B 41163 bytes 37 Files
Total Size 83756 bytes 41 Files
Super Mario Brothers (Japan)
disk 1 Side A(boot) 41184 bytes 4 Files
Total Size 41184 bytes 4 Files
Super Mario Brothers 2 (Japan)
disk 1 Side A(boot) 51850 bytes 8 Files
Total Size 51850 bytes 8 Files
Tanigawa Kouji no Shougi Shinan II - Meijin heno Michi (Japan)
disk 1 Side A(boot) 51828 bytes 9 Files
disk 1 Side B 48778 bytes 9 Files
Total Size 100606 bytes 18 Files
Tennis (Japan)
disk 1 Side A(boot) 24800 bytes 3 Files
Total Size 24800 bytes 3 Files
TwinBee (Japan) (Disk Writer)
disk 1 Side A(boot) 43872 bytes 6 Files
Total Size 43872 bytes 6 Files
Ultraman Club - Chikyuu Dakkan Sakusen (Japan) (v1.0)
disk 1 Side A(boot) 36867 bytes 8 Files
disk 1 Side B 45879 bytes 15 Files
Total Size 82746 bytes 23 Files
Ultraman Club - Chikyuu Dakkan Sakusen (Japan) (v1.1)
disk 1 Side A(boot) 36870 bytes 8 Files
disk 1 Side B 45879 bytes 15 Files
Total Size 82749 bytes 23 Files
Vs. Excitebike (Japan)
disk 1 Side A(boot) 48899 bytes 7 Files
disk 1 Side B 54336 bytes 5 Files
Total Size 103235 bytes 12 Files
Wakusei Aton Gaiden (Japan) (National Tax Agency Demo)
disk 1 Side A(boot) 36850 bytes 4 Files
Total Size 36850 bytes 4 Files
Youkai Yashiki (Japan) [En by KingMike v1.0] (~Ghost Manor)
disk 1 Side A(boot) 51025 bytes 13 Files
disk 1 Side B 50354 bytes 21 Files
Total Size 101379 bytes 34 Files
Yume Koujou Doki Doki Panic (Japan) [b]
disk 1 Side A(boot) 51952 bytes 7 Files
disk 1 Side B 49945 bytes 20 Files
Total Size 101897 bytes 27 Files
Yume Koujou Doki Doki Panic (Japan) [En by Vice v1.0] (~Dream World Doki Doki Panic!)
disk 1 Side A(boot) 51952 bytes 7 Files
disk 1 Side B 49945 bytes 20 Files
Total Size 101897 bytes 27 Files
Yuu Maze (Japan)
disk 1 Side A(boot) 51388 bytes 6 Files
disk 1 Side B 51227 bytes 14 Files
Total Size 102615 bytes 20 Files
Zelda no Densetsu - The Hyrule Fantasy (Japan) (v1.0)
disk 1 Side A(boot) 40118 bytes 7 Files
disk 1 Side B 48508 bytes 29 Files
Total Size 88626 bytes 36 Files
Zelda no Densetsu - The Hyrule Fantasy (Japan) (v1.1)
disk 1 Side A(boot) 40118 bytes 7 Files
disk 1 Side B 48508 bytes 29 Files
Total Size 88626 bytes 36 Files
average bytes per side: 48026 (max: 54608)
average bytes per file: 3855 (max: 32896)
average files per side: 12 (max: 40)
Avec a la fin quelques stats
average bytes per side: 48026 (max: 54608)
average bytes per file: 3855 (max: 32896)
average files per side: 12 (max: 40)
Faut compter en général 50Ko par face. Ca en fait quand meme la disquette avec la plus faible densité que je connaisse. J'ai pas trouvé historiquement de disquette plus faible. Du coup le support s'est tout de suite fait rattrapé par les cartouches et son atout s'est vite limité a ses capacités d'ecriture.
Les fichiers complets
https://drive.google.com/open?id=0B399kteofpYuUEhjZTdDczhZWmM
https://drive.google.com/open?id=0B399kteofpYuMkxWODFBR3h6NVE
https://drive.google.com/open?id=0B399kteofpYudzBJR202VHFhdWM
https://drive.google.com/open?id=0B399kteofpYuYjhGTkRIaFF1TE0
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...
touko, concernant le branchement à utiliser après l'instruction AND, j'ai essayé sur http://skilldrick.github.io/easy6502/ et c'est avec BEQ qu'on passe aux cas suivants si la valeur dans A n'est pas égale à l'entrée testée.
Voici le code que j'ai testé, il affiche trois couleurs si la valeur en A est égale à l'entrée testée.
Concernant l'idée d'utiliser une jmp table, j'utilise déjà le registre X pour boucler et ainsi traiter les 2 pads... Peut-être que je ferai comme tu dis à moins d'avoir à ajouter d'autres choses.
@upsilandre je vais prendre le temps de lire ton post
Voici le code que j'ai testé, il affiche trois couleurs si la valeur en A est égale à l'entrée testée.
- Code:
lda #$01
and #$01
beq fin
LDA #$01
STA $0200
LDA #$05
STA $0201
LDA #$08
STA $0202
fin:
Concernant l'idée d'utiliser une jmp table, j'utilise déjà le registre X pour boucler et ainsi traiter les 2 pads... Peut-être que je ferai comme tu dis à moins d'avoir à ajouter d'autres choses.
@upsilandre je vais prendre le temps de lire ton post
Dernière édition par vincent2105 le Ven 10 Juin 2016 - 8:49, édité 1 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...
Justement y'a un souci quelque part .
ex: si REG A = $0F
AND #$0F
Va donner 0, donc A = $0F, BEQ = branchement si égal .
donc si tu lis ton entrée pad dans A, et que tu testes si on a préssé haut par exemple
LDA _mon_entree_pad ; // A = le code pour haut
AND #HAUT
bne .pas_haut ; // A n'est pas egal à haut
; // Ici A = HAUT donc on execute le code pour l'appui sur haut du pad
...
...
.pas_haut :
Mais je viens de voir que le 6502 ne gère pas le jmp indexé .
ex: si REG A = $0F
AND #$0F
Va donner 0, donc A = $0F, BEQ = branchement si égal .
donc si tu lis ton entrée pad dans A, et que tu testes si on a préssé haut par exemple
LDA _mon_entree_pad ; // A = le code pour haut
AND #HAUT
bne .pas_haut ; // A n'est pas egal à haut
; // Ici A = HAUT donc on execute le code pour l'appui sur haut du pad
...
...
.pas_haut :
Tu peux utiliser Y pour bouclerConcernant l'idée d'utiliser une jmp table, j'utilise déjà le registre X pour boucler et ainsi traiter les 2 pads...
Mais je viens de voir que le 6502 ne gère pas le jmp indexé .
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Je suis pas sur de comprendre. Tu maintiens que c'est BNE qu'il faut utiliser ? mon petit exemple sur skilldrick prouve bien le contraire pourtant ? (et dans ma routine de gestion des inputs, je suis dans un cas identique et ça fonctionne avec beq). Ceci dit, ca ne me parait pas logique non plus...
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Toujours aussi pointu upsilandre J'ignorais totalement l'existence de ces disquettes.
Concretement que veux tu faire ? localiser des fichiers CHR_ROM ?Et a la fin y a la quantité total de donnée de la face. y a 3 chiffres different. le total de fichier, le total en ajoutant aussi les metadata, et le total juste de fichier de donnée pour le jeu (donc sans les fichier vide ou fichier de licence) qui est le chiffre qui m'intéresse.
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Non tu as raison, je m'embrouille tout seul làvincent2105 a écrit:Je suis pas sur de comprendre. Tu maintiens que c'est BNE qu'il faut utiliser ? mon petit exemple sur skilldrick prouve bien le contraire pourtant ? (et dans ma routine de gestion des inputs, je suis dans un cas identique et ça fonctionne avec beq). Ceci dit, ca ne me parait pas logique non plus...
le flag Z est à 0 .
Donc un AND génère un 0(Z=1) si les 2 valeurs ne sont pas identiques .
Donc BEQ si les 2 valeurs ne sont pas identiques sinon BNE .
Le résonnement s'inverse avec un AND, cad que 2 valeurs avec des bits qui correspondent donne un and différent de 0.
Dernière édition par TOUKO le Ven 10 Juin 2016 - 9:59, édité 4 fois
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Je ne comprends toujours pas
Je te mets un bout de mon code qui test si le bouton "droit" est enfoncé ou non.
Si la valeur qui suit LDA est égale à celle qui suit AND, alors BEQ est "ignoré". C'est bizarre j'avoue, mais c'est bien ce qu'il se passe aussi dans l'exemple que je t'ai proposé pour l'emulateur sur skilldrik.
EDIT : j'ai vu que tu avais édité
Je te mets un bout de mon code qui test si le bouton "droit" est enfoncé ou non.
Si la valeur qui suit LDA est égale à celle qui suit AND, alors BEQ est "ignoré". C'est bizarre j'avoue, mais c'est bien ce qu'il se passe aussi dans l'exemple que je t'ai proposé pour l'emulateur sur skilldrik.
- Code:
LDA boutons_j1
AND #%00000001
Beq .pas_droite
LDA joueur_1_X ; code a executer si la valeur
CLC ; "boutons_j1" est égale à celle
ADC vitesse_J1 ; qui suit l'opcode AND
STA joueur_1_X
LDA #DROITE
STA direction_J1
.pas_droite:
EDIT : j'ai vu que tu avais édité
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Oui, le pire c'est que quand je code, je fais des BEQ et BNE naturellement, mais dés que je réfléchis, ça va plus
En gros si une opération donne 0 le flag Z = 1 .
BNE branche si Z=0, et BEQ si Z=1 .
Un :
LDA #%00000001
AND #%00000001
Va forcement te donner un résultat différent de 0, donc Z=0 .
un:
LDA #%00000011
AND #%00000001
Aussi car les bit 0 des 2 valeurs sont à 1.
Par contre un:
un:
LDA #%00000001
AND #%00000010
Va te donner un Z=1, car aucun bit des 2 valeurs ne correspondent .
Avec un AND si au moins 1 bit de chaque valeur est à 1, Z sera =0(valeur non nulle) .
En gros si une opération donne 0 le flag Z = 1 .
BNE branche si Z=0, et BEQ si Z=1 .
Un :
LDA #%00000001
AND #%00000001
Va forcement te donner un résultat différent de 0, donc Z=0 .
un:
LDA #%00000011
AND #%00000001
Aussi car les bit 0 des 2 valeurs sont à 1.
Par contre un:
un:
LDA #%00000001
AND #%00000010
Va te donner un Z=1, car aucun bit des 2 valeurs ne correspondent .
Avec un AND si au moins 1 bit de chaque valeur est à 1, Z sera =0(valeur non nulle) .
Dernière édition par TOUKO le Ven 10 Juin 2016 - 10:15, édité 1 fois
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Ok, là on est d'accord
Maintenant, va falloir qu'on se penche sur le cas de l'instruction BIT
Maintenant, va falloir qu'on se penche sur le cas de l'instruction BIT
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Elle fait pareil, mais teste en plus les bit 7 et 6 (flags N et V ) et fonctionne pas avec une valeur en immédiat sur 6502, faut y mettre une adresse,et surtout ne touche pas A, c'est utile pour ne pas avoir à recharger A à chaque foi .
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Ah ok, je testerai ca...Elle fait pareil, mais teste en plus les bit 7 et 6 (flags N et V ) et fonctionne pas avec une valeur en immédiat sur 6502, faut y mettre une adresse .
Du coup on branche de la même façon qu'avec AND c'est ce que tu veux dire ?
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Oui,et tu as aussi la possibilité de tester N et V de la valeur à l'adresse après le BIT .
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Le registre d'état j'avoue que je n'y ai jamais mis le nez dedans sérieusement.
J'ai juste vu qu'on avait N pour négatif, V pour débordement, mais concrètement j'en ai toujours fait abstraction. Si tu as un exemple dans lequel on peut constater leur utilité, je suis preneur
J'ai juste vu qu'on avait N pour négatif, V pour débordement, mais concrètement j'en ai toujours fait abstraction. Si tu as un exemple dans lequel on peut constater leur utilité, je suis preneur
Dernière édition par vincent2105 le Ven 10 Juin 2016 - 11:46, édité 1 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...
V est pas souvent utilisé, et son fonctionnement est pas clair ,perso je l'utilise pas .
N sert à savoir si un nombre est négatif ou pas, utile si tu utilises des nombres signés .
il est aussi utile si tu veux tester une valeur inférieure à 0, style la valeur 0 t'est nécessaire, mais pas $FF, tu vas utiliser les tests BPL et BMI,en gros testent si le bit 7 et à 0 ou 1 .
Tu as aussi les illegal opcode, et il me semblent qu'elles soient présentes sur le CPU de la nes :
http://codebase64.org/doku.php?id=base:6502_6510_coding
les opcodes illégales sont ici:
http://codebase64.org/doku.php?id=base:extra_instructions_of_the_65xx_series_cpu
Super site sur le coding C64
N sert à savoir si un nombre est négatif ou pas, utile si tu utilises des nombres signés .
il est aussi utile si tu veux tester une valeur inférieure à 0, style la valeur 0 t'est nécessaire, mais pas $FF, tu vas utiliser les tests BPL et BMI,en gros testent si le bit 7 et à 0 ou 1 .
Tu as aussi les illegal opcode, et il me semblent qu'elles soient présentes sur le CPU de la nes :
http://codebase64.org/doku.php?id=base:6502_6510_coding
les opcodes illégales sont ici:
http://codebase64.org/doku.php?id=base:extra_instructions_of_the_65xx_series_cpu
Super site sur le coding C64
Invité- Invité
Re: Mr ToutLeMonde et la programmation NES...
Merci pour les liens
J'ai parcouru les "illegales"... C'est sympa de pouvoir réaliser 2 opérations avec une seule opcode... mais ma foi, ça m'a l'air d'être une sacrée gymnastique ! Dans le peu que j'ai pu faire, je ne pense pas avoir pu en caser une :p
J'ai parcouru les "illegales"... C'est sympa de pouvoir réaliser 2 opérations avec une seule opcode... mais ma foi, ça m'a l'air d'être une sacrée gymnastique ! Dans le peu que j'ai pu faire, je ne pense pas avoir pu en caser une :p
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'ai les grandes lignes de mon futur petit jeu maintenant, on peut le définir comme un shmup horizontal dans l'univers MARIO.
En zieutant les différentes ROMs de jeux que j'avais téléchargées, je me suis apercu que les 3 opus de Mario avaient leurs éléments graphiques en CHR_ROM, ils sont donc facilement réexploitables, ce qui n'est pas le cas de tous les jeux.
Il n'y aura en quelque sorte qu'un seul niveau. Avec au choix le skin SMB1, SMB2 ou SMB3...
Le niveau sera de longueur infinie. Tant qu'on est vivant, on avance... et la difficulté progresse. La petite originalité sur laquelle je planche est le caractère aléatoire de la génération du niveau. A chaque partie, le joueur découvre un background différent, créé aléatoirement au fur et a mesure du scroll tous les 64 pixels (un écran fait 252px). J'ai déjà résolu une partie du problème.
A voir si j'arrive au bout, puisque le gros morceau sera la détection des collisions, mais je suis plutot bien parti.
@upsilandre : j'ai lu ton post concernant les disquettes famicom, mais je ne sais pas si tu as vu ma question : concrètement, que comptes tu faire avec les infos récoltées ?
En zieutant les différentes ROMs de jeux que j'avais téléchargées, je me suis apercu que les 3 opus de Mario avaient leurs éléments graphiques en CHR_ROM, ils sont donc facilement réexploitables, ce qui n'est pas le cas de tous les jeux.
Il n'y aura en quelque sorte qu'un seul niveau. Avec au choix le skin SMB1, SMB2 ou SMB3...
Le niveau sera de longueur infinie. Tant qu'on est vivant, on avance... et la difficulté progresse. La petite originalité sur laquelle je planche est le caractère aléatoire de la génération du niveau. A chaque partie, le joueur découvre un background différent, créé aléatoirement au fur et a mesure du scroll tous les 64 pixels (un écran fait 252px). J'ai déjà résolu une partie du problème.
A voir si j'arrive au bout, puisque le gros morceau sera la détection des collisions, mais je suis plutot bien parti.
@upsilandre : j'ai lu ton post concernant les disquettes famicom, mais je ne sais pas si tu as vu ma question : concrètement, que comptes tu faire avec les infos récoltées ?
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 atteint mon premier objectif, afficher un background de facon aléatoire au fur et à mesure que l'on scrolle (tous les 64px)
Taches suivantes :
- mettre à jour les attributs pendant le scroll (il s'agit de choisir la palette desirée (parmi 4) pour chaque zone de 16x16 pixels)
- créer des colonnes de background de 208x64 pixels qui remplaceront mes colonnes de chiffres.
Si j'arrive jusque la, j'approfondirai certainement la routine de choix du background à afficher pour que le tout garde une certaine cohérence tout en restant le plus varié possible...(La, y'a du pointeur en perspective :p )
Taches suivantes :
- mettre à jour les attributs pendant le scroll (il s'agit de choisir la palette desirée (parmi 4) pour chaque zone de 16x16 pixels)
- créer des colonnes de background de 208x64 pixels qui remplaceront mes colonnes de chiffres.
Si j'arrive jusque la, j'approfondirai certainement la routine de choix du background à afficher pour que le tout garde une certaine cohérence tout en restant le plus varié possible...(La, y'a du pointeur en perspective :p )
Dernière édition par vincent2105 le Jeu 16 Juin 2016 - 10:56, édité 1 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...
C'est passionnant, bon boulot, courage !
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Mr ToutLeMonde et la programmation NES...
Merci tetsuro, ca fait super plaisir
Ce soir j'attaque mon prochain casse-tête : mettre les attributs à jour en fonction du scroll... Je suis toujours excité à l'idée de faire un truc nouveau... jusqu'a ce que je m'y casse les dents
Ce soir j'attaque mon prochain casse-tête : mettre les attributs à jour en fonction du scroll... Je suis toujours excité à l'idée de faire un truc nouveau... jusqu'a ce que je m'y casse les dents
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
vincent2105 a écrit:Bon, j'ai les grandes lignes de mon futur petit jeu maintenant, on peut le définir comme un shmup horizontal dans l'univers MARIO.
Un peu façon SUPA ZAZAI ?
Enregistrer
_______________________________________________________
Re: Mr ToutLeMonde et la programmation NES...
Un peu oui dans la mesure ou ca sera de l'horizontal sans interaction avec le background (j'ai pas le niveau), mais y'aura bcp moins de boulettes...
J'aimerais bien reussir à créer des patterns de déplacements un peu originale pour les ennemis...
Dans tous les cas, faut deja que j'arrive à gérer les collisions et ca c'est pas gagné puisque je l'ai jamais fait, comme je l'ai dit, je fais ca pour apprendre / en guise d'exercice ludique.
J'aimerais bien reussir à créer des patterns de déplacements un peu originale pour les ennemis...
Dans tous les cas, faut deja que j'arrive à gérer les collisions et ca c'est pas gagné puisque je l'ai jamais fait, comme je l'ai dit, je fais ca pour apprendre / en guise d'exercice ludique.
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 suis et vis ta douleur par compassion, j’essaie aussi de faire un jeu mais sur Megadrive, mais la programmation sur Nes ça à l'air costaud, j'aimerais un jour faire comme toi, mais je dois déjà essayer de faire un jeu Megadrive, c'est mon objectif, je suis ton travail avec grand intérêt, courage Vincent !
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Mr ToutLeMonde et la programmation NES...
Merci encore testuro et bon courage au passage pour ton projet
Avec le recul, en vous lisant toi et vetea, je me rends compte que je donne vraiment une impression de galérer plus qu'autre chose alors que c'est pas du tout comme ça que je le vis dans l'ensemble.
Certes il y a des fois ou ca coince sévèrement, mais la plupart du temps, je bidouille dans la joie et la bonne humeur. Ce loisir m'intéresse toujours autant, j'essaierai de moins chouiner à l'avenir
Bref, je ne voudrais pas que mon cas personnel semble décourageant pour ceux qui voudraient se lancer dans la même aventure, bien au contraire.
Avec le recul, en vous lisant toi et vetea, je me rends compte que je donne vraiment une impression de galérer plus qu'autre chose alors que c'est pas du tout comme ça que je le vis dans l'ensemble.
Certes il y a des fois ou ca coince sévèrement, mais la plupart du temps, je bidouille dans la joie et la bonne humeur. Ce loisir m'intéresse toujours autant, j'essaierai de moins chouiner à l'avenir
Bref, je ne voudrais pas que mon cas personnel semble décourageant pour ceux qui voudraient se lancer dans la même aventure, bien au contraire.
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, l'idée du shmup ne me motive plus tant que ça, du coup l'exercice qui consistait à mettre à jour les attributs au fur et a mesure du scroll sur un background aléatoire me parait bcp moins intéressant. :/
Je reconnais que quand je perd l'intérêt, y'a rien a faire, j'avance plus... Alors je passe pas mal de temps a trouver une idée de jeu, mettre en place un minimum de code etc.
Grosso modo, je fais 2 pas en avant, un en arriere... c'est un de mes gros défauts, j'ai tendance a me disperser...
La je suis en train de réfléchir à générer aléatoirement une map de taille infinie (qu'on parcourait sans scrolling). Comme d'hab au debut , je suis hyper motivé
Je reconnais que quand je perd l'intérêt, y'a rien a faire, j'avance plus... Alors je passe pas mal de temps a trouver une idée de jeu, mettre en place un minimum de code etc.
Grosso modo, je fais 2 pas en avant, un en arriere... c'est un de mes gros défauts, j'ai tendance a me disperser...
La je suis en train de réfléchir à générer aléatoirement une map de taille infinie (qu'on parcourait sans scrolling). Comme d'hab au debut , je suis hyper motivé
vincent2105- Patient incurable
- Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013
Re: Mr ToutLeMonde et la programmation NES...
Tu n'es pas le seul, c'est pas facile de rester a fond dans un projet, surtout quand tu dois faire des partie qui ne t'intéressent pas .Je reconnais que quand je perd l'intérêt, y'a rien a faire, j'avance plus... Alors je passe pas mal de temps a trouver une idée de jeu, mettre en place un minimum de code etc.
Grosso modo, je fais 2 pas en avant, un en arriere... c'est un de mes gros défauts, j'ai tendance a me disperser...
Invité- Invité
Page 15 sur 34 • 1 ... 9 ... 14, 15, 16 ... 24 ... 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 15 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum