Programming guide: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Moved the battery holder project from programming guide to NES Hardware projects on Nesdev Homepage and the projects page. It didn't seem to be much of a programming issue)
(merge from Programming Libraries)
Line 55: Line 55:


=== Libraries and samples ===
=== Libraries and samples ===
* [[Programming Libraries]]
 
==== System ====
* [[Init code]]
* [[Registers]]
 
==== Input ====
* [[Controller Reading]]
 
==== Graphics ====
* [[Detecting video standard]]
* [[Placeholder graphics]]
* [[Placeholder graphics]]
* [[Nerdtracker player in NESASM]]
* [http://forums.nesdev.org/viewtopic.php?p=142703#p142703 RLE decompression code for CHR] by [[User:Koitsu|koitsu]]
* [http://forums.nesdev.org/viewtopic.php?p=142703#p142703 RLE decompression code for CHR] by [[User:Koitsu|koitsu]]
==== Math ====
* [[Multiplication by a constant integer]]
* [[Division by a constant integer]]
* [[16-bit BCD|An efficient 16-bit binary to decimal converter]]
* [[8-bit Multiply|Multiplies two 8-bit integers to a 16-bit result]]
* [[8-bit Divide|Divide two 8-bit integers to a 16-bit result]]
* [[Fast signed multiply|Fast table driven multiplication]]
* [[Random number generator]]
* [[Random number generator]]
==== Audio ====
* [[APU period table]]
* [[Nerdtracker player in NESASM]]


=== Reverse engineered techniques ===
=== Reverse engineered techniques ===
* [[Bad Apple]] video compression
* [[Bad Apple]] video compression
* [http://forums.nesdev.org/viewtopic.php?t=5860 Codemasters tile compression]
* [//forums.nesdev.org/viewtopic.php?t=5860 Codemasters tile compression]
* [http://forums.nesdev.org/viewtopic.php?t=8675 Big Bird's Hide and Speak sample compression]
* [//forums.nesdev.org/viewtopic.php?t=8675 Big Bird's Hide and Speak sample compression]
* [http://forums.nesdev.org/viewtopic.php?t=8609 Battletoads text compression] (Huffman coding)
* [//forums.nesdev.org/viewtopic.php?t=8609 Battletoads text compression] (Huffman coding)
* [http://forums.nesdev.org/viewtopic.php?t=8588 Rad Racer rendering]
* [//forums.nesdev.org/viewtopic.php?t=8588 Rad Racer rendering]


=== Useful reference materials ===
=== Useful reference materials ===

Revision as of 01:43, 26 October 2017

This programming guide is the complement to the NES reference guide. You will find more in-depth documentation about specific topics, tutorials on the most common problems encountered, a list of existing tools that will assist you during you development phase and more. If you're new to NES development, you should give a look to the "Getting started" section first.

Getting started

General reference

Tutorials

Libraries and samples

System

Input

Graphics

Math

Audio

Reverse engineered techniques

Useful reference materials

Books

  • Cady, Fredrick M. (1997). Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering. New York: Oxford University Press. ISBN 0-19-511008-0.
  • Eyes, David; Lichty, Ron (1986). Programming the 65816 including the 6502, 65C02, and 65802. New York: Brady Books/Prentice Hall Press (Simon & Schuster, Inc). ISBN 0-89303-789-3.
  • Fernandez, Judi N. (1983). 6502 Assembly Language Programming (Self-teaching Guides). John Wiley & Sons Inc. ISBN 978-0471861201.
  • Leventhal, Lance A. (1986). 6502 Assembly Language Programming 2nd Edition. Osborne/McGraw-Hill. ISBN 0-07-881216-X.
  • Zaks, Rodnay (1983). Programming the 6502 (Fourth Edition). Sybex, Inc. ISBN 0-89588-135-7.
  • Zaks, Rodnay (1982). Advanced 6502 Programming. Sybex, Inc. ISBN 0-89588-089-X.
  • Zaks, Rodnay (1980). Programming the 6502 (Third Edition). Sybex, Inc. ISBN 0-89588-046-6.

Online

  • Programming the 65816 (including the 6502, 65C02, and 65802) by Western Design Center
    1. Programmingthe65816_ProgManual.pdf — 54MBytes, created 2015/03/27.
      • This is a full scan of the original Eyes/Lichty book using full images for each page, with the added bonus of OCR being applied so that text is searchable and copy-paste-able. Accurate/reliable given the nature of the scan. A backup copy, if the 65xx.com site is down, is available via Koitsu.
    2. Programmanual.pdf (a.k.a. WDC65C816_Program_Manual.pdf) — 1.7MBytes, created 2007/04/16.
      • This is a "pure text" version of the Eyes/Lichty book, however it is rife with very dangerous typos (wrong opcodes, etc.) in many areas, and contains a large number of formatting/layout mistakes not present in the original book. Bill Mensch (6502/65C02/65816 architect/designer) confirmed these mistakes, stating WDC is in the process of fixing them. If at all possible, use the newer PDF mentioned above.
      • It is suspected that WDC has pulled this PDF entirely from their website, instead advocating purchasing a "redone" version of the Lichty/Eyes book via Amazon. Kindle and paperback versions are available, but I (Koitsu) have not reviewed it.

Links