Lab 7: Read the controller
[nes_coding.git] / README.md
1 # NES coding exploration
2
3 This is a project covering my exploration of coding 6502 assembly for the NES.
4
5 The goal isn't to produce a game, per se, but to hopefully learn to work with
6 the NES architecture, tools for producing ROMS, etc.  These little "lab
7 sessions" should be accessible to anyone with some modest background in systems
8 programming.
9
10 These are developed on KDE Neon (Linux), and the Makefile may not work for
11 Windows.
12
13 You will need a copy of [cc65](https://github.com/cc65/cc65) built and
14 installed.  My preferred emulator/debugger is [fceux](http://www.fceux.com) under 
15 Wine, and **NOT** the one under Linux, as their Windows release has a powerful
16 set of debugging tools available.  With them, you can inspect pattern and name tables!
17
18 Alternatively, I'd recommend [mednafen](https://mednafen.github.io/releases/), 
19 which on Ubuntu systems can be installed with a simple `sudo apt-get install mednafen`.
20
21 My latest example code will always live on the master branch.  To see earlier
22 demos/labs, please look at the labXX branches.  Current ones include:
23
24 * Lab 1: Hello World!
25 * Lab 2: Drawing a background color
26 * Lab 3: Pattern, name, and attribute tables
27 * Lab 4: Drawing sprites
28 * Lab 5: Animating sprites
29 * Lab 6: APU init and playing sound
30 * Lab 7: Reading the controllers
31
32 To build and run:
33 ```
34 make
35 mednafen bin/<name_of_rom>.nes
36 ```