Erstellen von Grafiken für nes / dendy

In meinen vorherigen Artikeln geht es darum, wie man mit der Programmierung für Dandy in Assembler beginnt. Wir haben gelernt, wie man Sprites und Hintergründe zeichnet, wir haben auch kurz besprochen, was eine Attributtabelle und eine Namenstabelle sind, und wir haben auch herausgefunden, wie man einen Controller liest. In diesen Artikeln habe ich chr aus dem Spiel super mario bros 2 verwendet, weil ich kein Künstler war, aber um ein Spiel zu erstellen, musste ich nach Werkzeugen suchen, die mir beim Erstellen meiner Grafiken für das Spiel helfen würden. Unter dem Schnitt sind die Stufen der Grafikentwicklung.






Es hat ziemlich lange gedauert, ein Tool für Linux zu finden, um eine Tabelle mit Namen zu erstellen. Nach einer Weile fing ich sogar an, meine eigene in PHP zu schreiben. Die Idee war einfach und kurz vor dem Abschluss. Es ist möglich, ein BMP- oder PNG-Bild Pixel für Pixel zu konvertieren. Von links nach rechts 128 Pixel und von oben nach unten 256 Zeilen. Als nächstes bestimmen wir die Farbe jedes Pixels, und es können nur 4 davon sein, und abhängig von der Farbe werden die entsprechenden Bits gesetzt. Jedes Pixel in der chr-Datei wird nach dem folgenden Prinzip durch 2 Bits beschrieben:





  • Farbe 0 = 00 = 00000000





  • Farbe 1 = 01 = 00000001





  • Farbe 2 = 10 = 00000010





  • Farbe 3 = 11 = 00000011





Das heißt, diese 2 Bits sind nur die letzten 2 Bits der Farbsequenznummer. In diesem Fall ist Farbe 0 in Sprites eine transparente Farbe. Im Hintergrund ist dies die Hintergrundfarbe.





chr 2 , 128 128 . 1- ( ), 2- ( , ). , , node.js img2chr









$ npm install -g img2chr
      
      



2- 1- ( png), 2- chr





img2chr test.png test.chr
      
      



chr .





FCEUX

, FCEUX Windows, wine. , nametable attribute table .





, . 128256 8 , .





. .





, , , . , .





, , , . .









. . , , .









img2png test.png t.chr
      
      



. PPU $2004





  1. Y -













  2. X -









LDA #100 ;    A  100
STA $2004 ;    Y   $2004
LDA #$01 ;    1 (0- , 1- ) 
STA $2004 ;    
LDA #%00010110 ;  
STA $2004
LDA #100 ; x  
STA $2004
      
      



Und mein Sprite wurde auf dem Bildschirm angezeigt. Das konnte sich nur freuen. Danach habe ich alle Sprites zum Zeichnen des Helden herausgebracht, 10 davon sind herausgekommen, natürlich ist dies eine sehr große Anzahl von Sprites, da wir die Grenzen des Präfixes erreichen können, zum Beispiel 64 Sprites auf dem Bildschirm bei zur gleichen Zeit, aber wir werden darüber in den folgenden Artikeln sprechen.





Vorherige Artikel:





  1. NES-Programmierung





  2. Controller lesen








All Articles