CS 181-AR

Challenge 9 — Project

For the final three weeks of the semester, you'll have the opportunity to pursue a project of your own choosing, building upon what you've learned so far.

As a reminder, so far you have:

  • Built a game for the ZX Spectrum
  • Written code for a different platform from the past
  • Built an emulator for the ZX Spectrum (that can run your game!)

Your Project

You have a free choice of project (within the bounds of the themes of the course), but here are some ideas:

  • Enhance your ZX Spectrum emulator beyond its present state. Possible ideas include:
    • Enhancing the keyboard support to allow more keys on the host keyboard to map to the ZX Spectrum keyboard for easier input.
    • Enhancing the sound support, perhaps adding an AY-3-8912 sound chip.
    • Adding support for the ZX Spectrum 128K, which adds a AY-3-8912 sound chip and banked memory to allow 128K of RAM and 32K of ROM.
    • Adding support for memory contention, allowing code that is highly timing dependent to run correctly.
  • Enhance one of the programs you wrote for the ZX Spectrum or another 8-bit platform.
  • Write another game or demo for the ZX Spectrum or another 8-bit platform, perhaps showing new coding techniques like using Z80 assembly language or using the AY-3-8912 sound chip.
  • Based on the code on Floooh's 8-bit Emulators, take an existing emulator for another platform and improve it.
  • Use simh to run a pre-1980s era platform, such as a PDP-11 or VAX, and write a program for it.

Most importantly, the work you do for the project should be achievable in the time you have available, should be something that you are excited about, and something you can demo on the last day of class.

Project Proposal

Please fill out the following form to describe your project. You can use this as a starting point, but feel free to add or remove sections as you see fit.

Describe your project in a few sentences. What are you going to do? Why are you excited about it? What do you hope to learn?

What are the main steps you need to take to complete your project? What do you need to do first?

What information resources do you anticipate needing. What can Prof. Melissa do to help you?

(When logged in, completion status appears here.)