If you are not following this course for a grade, but would like to get started with the project anyway, the template is available here If you are part of the course, you don't need to do this, and should not do this! You'll get a repository from us.

Introduction

In this manual we will provide you with all the information you need to get started on the project. Please read through it carefully.

The project

In this project you will be creating a Nintendo Entertainment System (NES) emulator in groups of 4 (though there may be some groups of 5). The project will be graded based on the following aspects:

  • Completeness of your emulator: We will evaluate this using ROMs that you need to run. These will be provided.
  • Quality of your code base: We will manually grade your code base to see how well you utilized core rust concepts such as Enums and Traits. We will also look at the quality of your documentation and tests
  • Collaboration: We will also look at how well you collaborate. This will take into account your git usage, as well as how efficiently you divide tasks and such.

Grading

You can find the requirements for the project, and the grading formula here

Planning

The project will take 4 weeks. Each week you will have a short meeting with your assigned TA to look at your progress and ask any questions related specifically to your group. In week 4 we will ask you to fill in a form with your preferences about whether you want to have your meeting on either Tuesdays or Thursdays. We will try to take this into account, but can't always guarantee this.

Attendance

The weekly TA meetings are IN PERSON. If you for some reason cannot be there, notify your TA IN ADVANCE. Your attendance will be considered as a part of your individual contributions, and your teamwork grades.

Fraud

If we suspect fraud, the case will be forwarded to the Board of Examiners.

  • You are not allowed to discuss or share your specific code with other groups. You are allowed to discuss the project on a conceptual level, but not the concrete implementation.
  • You are not allowed to copy substantial code from the internet.
  • You are allowed to copy short pieces of code from the documentation, but in that case please provide a link to where you got it from.

When in doubt, ask one of the TAs.

Next chapters

The next chapters will provide you with more detailed information on the project. We will first provide you with an overview of the NES. Next, we will explain the requirements of the project in more detail. Then we will provide you with a guide on what we think is the best way to get started on the project. Finally, we will provide you with an overview of some useful links we encountered while working on the reference solution.