Chip-8 emulator

Project for CS315 Low Level Programming class.

This course introduced microprocessor architectures using x86asm, focused on the practical implications of computer architecture in programming and we wrote assembly and optimized C/C++ code while learning about topics like pipelining, multi-core systems, SIMD extensions...

Small Introduction

This was a pair based assignment were we had to implement an emulator for the CHIP-8 fantasy console

Summary of the Process

We divided the assignment onto milestones. The first step was to write a disassembler program that could take a CHIP-8 binary program and translate it into the corresponding assembly code and a host layer that could output on a screen and get the user input. Then, we loaded a program and simulate through software what the processor would do when running said program.

Other CS315 assignments

Simple Intel x86 (32-bit) programming.

The goal of this assignment is to implement several functions in x86 assembly. This assignment was divided in 6 sub-problems.

SIMD. Program optimization from low-level perspective using SIMD techniques.

The goal of this assignment was to implement an optimized version of the Sobel Filter, which is used in image processing filter for edge detection. The purpose of edge detection is to identify points in the image where there are discontinuities or major shifts in colour change. This is useful for applications such as feature extraction or face detection etc. For example, the following pictures show the effect of edge detection.

Left Image
Right Image