1. General information
  2. 1. Course info
  3. 2. Staff
  4. 3. Software Setup
    ❱
    1. 3.1. Linux
    2. 3.2. Toolchain
    3. 3.3. Editor Setup
  5. Part 1 - Individual
  6. 4. Lecture Notes
    ❱
    1. 4.1. Lecture 1: Intro to Rust
      ❱
      1. 4.1.1. Lecture 1.5: Git
    2. 4.2. Lecture 2: References
    3. 4.3. Lecture 3: Types and Memory
    4. 4.4. Lecture 4: Enums and Errors
      ❱
      1. 4.4.1. Lecture 4.5: Errors
    5. 4.5. Lecture 5: Iterators and Collections
    6. 4.6. Lecture 6: Traits and Generics
    7. 4.7. Lecture 7: Testing and Tooling
    8. 4.8. Lecture 8: Modules, Crates, Project
  7. 5. Slides
  8. 6. Git Assignment
    ❱
    1. 6.1. Assignment Info
    2. 6.2. Installation
      ❱
      1. 6.2.1. SSH Keys
    3. 6.3. Uploading work
      ❱
      1. 6.3.1. Cloning
      2. 6.3.2. Commit
      3. 6.3.3. Push
    4. 6.4. Branches
      ❱
      1. 6.4.1. Merge
      2. 6.4.2. Merge Conflicts
      3. 6.4.3. Merge Requests
    5. 6.5. Pull
    6. 6.6. Final Assignment
    7. 6.7. Additional Features
  9. 7. WebLab Practice Assignments
  10. 8. Individual Assignment
    ❱
    1. 8.1. Assignment Info
    2. 8.2. Reference Manual
  11. Part 2 - Project
  12. 9. Project
    ❱
    1. 9.1. NES introduction
    2. 9.2. Requirements and Grading
    3. 9.3. Getting started
    4. 9.4. Useful links
    5. 9.5. iNES file format

Software Fundamentals

Useful links

To help you figure out where you can find which information we have provided a list of links together with the subjects they are useful for. You are of course free to use other sources of information as well.

Instructions

  • https://www.masswerk.at/6502/6502_instruction_set.html
  • http://www.6502.org/tutorials/6502opcodes.html

CPU registers

  • https://www.nesdev.org/wiki/CPU_registers

Addressing Modes

  • https://www.nesdev.org/wiki/CPU_addressing_modes

General overview of the 6502:

  • https://www.middle-engine.com/blog/posts/2020/06/23/programming-the-nes-the-6502-in-detail

Video explaining memory mirroring:

  • https://www.youtube.com/watch?v=PvfhANgLrm4

Initial cpu state:

  • https://www.nesdev.org/wiki/CPU_power_up_state

Weirdness of BRK:

  • http://forum.6502.org/viewtopic.php?t=1917

Mappers:

  • NROM (easy to get started with)
  • MMC1

Rom file header:

  • https://bheisler.github.io/post/nes-rom-parser-with-nom/
  • https://www.nesdev.org/wiki/INES

Interrupts

  • https://www.nesdev.org/wiki/CPU_interrupts

CPU Memory map

  • https://www.nesdev.org/wiki/CPU_memory_map

Unofficial Instructions Information

  • No More Secrets

Gamepak information

  • https://nescartdb.com/search (can be used to find games that use a certain mapper)

Test Roms

  • https://github.com/christopherpow/nes-test-roms/