NES ASM Tutorial
Auteur : Bunnyboy Traduction : Mathieu Soula (Rid)
Sommaire
NES ASM Tutorial................................................................................................................. 1
Outils..................................................................................................................................... 1
Outils utilisés dans ce tutoriel............................................................................................. 1
D'autres outils.................................................................................................................... 1
Architecture de la NES.......................................................................................................... 2
Présentation générale du système..................................................................................... 2
Présentation générale du CPU .......................................................................................... 3
Présentation du PPU......................................................................................................... 3
Présentation des systèmes graphiques.............................................................................. 4
Tiles............................................................................................................................... 4
Sprites............................................................................................................................ 4
Background.................................................................................................................... 5
Pattern Tables................................................................................................................ 5
Attribute Tables.............................................................................................................. 5
Palettes.......................................................................................................................... 5
Assembleur 6502 .................................................................................................................. 6
Présentation ...................................................................................................................... 6
Binaire/Hexadécimal.......................................................................................................... 6
Calcul binaire ................................................................................................................. 6
Calcul hexadécimal........................................................................................................ 6
Les registres du 6502........................................................................................................ 7
L'Accumulateur............................................................................................................... 7
Le registre d'index X....................................................................................................... 7
Le registre d'index Y....................................................................................................... 7
Le registre de statut........................................................................................................ 7
Disposition du code............................................................................................................ 8
Les directives................................................................................................................. 8
Les labels....................................................................................................................... 8
Les opcodes................................................................................................................... 8
Les opérandes ............................................................................................................... 8
Les commentaires.......................................................................................................... 8
La structure du code NES ..................................................................................................... 9
Introduction........................................................................................................................ 9
L'entête iNES..................................................................................................................... 9
Banking.............................................................................................................................. 9
Les vecteurs...................................................................................................................... 9
Ajouter des fichiers binaires..............................................................................................10
Le code RESET................................................................................................................10
Compléter le programme..................................................................................................11
Assembler le tout..............................................................................................................12
Les palettes..........................................................................................................................13
Les sprites............................................................................................................................15
Le DMA.............................................................................................................................15
Les données sprite ...........................................................................................................15
Activer le NMI sprite..........................................................................................................15
Assembler le tout..............................................................................................................16
Les sprites composites.........................................................................................................17
Une autre copie de bloc....................................................................................................17
Assembler le tout..............................................................................................................17
Lecture des contrôleurs........................................................................................................19
Les ports de manettes ......................................................................................................19
L'instruction AND..............................................................................................................19
L'instruction BEQ..............................................................................................................20
Les instructions CLC/ADC ................................................................................................20
Les instructions SEC/SBC ................................................................................................20
Assembler le tout..............................................................................................................21
Les variables.....................................................................................................................21
1
Outils
Outils utilisés dans ce tutoriel
Ci-dessous sont présentés les outils que vous utiliserez pour réaliser ce tutoriel.
NESASM 3 C'est l'assembleur qui vous permettra de convertir votre code en un fichier
NES.
Tile Layer Pro C'est un éditeur graphique de tiles de format NES. Il permet aussi
d'importer des bitmaps que vous aurez créés.
FCEUXD SP Un émulateur NES très fiable, proposant plusieurs fonctionnalités de
déboguage. Si votre jeu se lance correctement sur cet émulateur, il le fera certainement sur
une vraie NES. Il est fortement déconseillé d'utiliser de vieux émulateurs dépassés comme
Nesticle.
Powerpak Un matériel permettant de faire tourner vos jeux sur une vraie console. Avec
ceci, il n'est pas nécessaire de modifier votre NES ou votre jeu.
Powerpak Lite Un moyen rapide et efficace pour tester votre jeu sur une vraie NES. Il
nécessite un système CopyNes.
NESDevWiki Un wiki qui contient un grand nombre d'informations techniques. La plupart
des articles ont été corrigés…
NESDev Une collection de liens et de forums contenant tout en tas d'informations
techniques. Posez des questions à cet endroit une fois que vous aurez appris les bases.
D'autres outils
Lorsque vous aurez plus d'expérience en programmation NES, vous serez peut-être amené
à utiliser ces outils :
Les assembleurs - Il existe un grand nombre d'autres assembleurs populaires tels que
CA65, P65 et WLA-DX. Ils ont de bonnes performances au sein de grands projet, mais sont
plus compliqués à paramétrer correctement. La syntaxe du code assembleur peut changer
en fonction de l'assembleur utilisé, donc votre code devra normalement être adapté à chacun
d'eux.
Les éditeurs graphiques - Les principales alternatives à Tile Layer Pro sont Tile Molester
et YY-CHR. De plus, il n'est pas rare que certaines personnes développent leur propre
éditeur graphique.
Les émulateurs - Il existe d'autres émulateurs fiables tels que Nintendulator, Nestopia et
FCEU. Les émulateurs peu fiables comme Nesticle sont une des raisons qui expliquent que
certains vieux jeux et hacks ne tournent pas sur une vraie NES.
Les cartes flash - Si vous possédez un programmateur EPROM (Erasable Programmable
Read-Only Memory), vous pourrez relier votre jeu à des cartouches NES. Cette méthode est
largement plus économique que celle du PowerPak ou du PowerPak Lite mais demande
plus de manipulations.
2
Architecture de la NES
ROM – Read Only Memory, mémoire qui contient des données non modifiables.
RAM Random Access Memory, contient des données qui peuvent être lues et écrites.
Lorsqu'on coupe le courant, la RAM est effacée.
PRG – Program Memory, le code du jeu.
CHR – CHaracter Memory, les données pour les graphismes.
CPU – Central Processing Unit, le processeur principal.
PPU – Picture Processing Unit, le processeur graphique.
APU – Audio Processing Unit, le composant utilisé pour les sons. Il est intégré dans le CPU.
Présentation générale du système
La NES dispose d'un CPU auquel sont intégrés un APU et un gestionnaire de pads, et d'un
PPU qui gère l'affichage. Votre code est exécuté par le CPU et envoie des commandes à
l'APU et au PPU. Les clones NOAC (Nes On A Chip) réunissent tous ces composants sur
une seule puce.
Il y a seulement 2Ko de RAM connecté au CPU pour stocker les variables, et 2Ko de RAM
connecté au PPU pour contenir deux backgrounds (arrière-plans). Il existe des cartouches
qui fournissent de la RAM supplémentaire au CPU, et d'autres qui en fournissent au PPU.
Au moins deux puces sont présentes sur chaque cartouche de jeu. Une pour code
programme (PRG) et l'autre pour les éléments graphiques (CHR). La puce CHR peut être
RAM au lieu de ROM, ce qui signifie que le code pourra copier les éléments à afficher de la
puce PRG vers la RAM CHR.
Architecture
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !