Giter Site home page Giter Site logo

assembly_chess's Introduction

assembly_chess

An assembler for assembling a fully working bare metal assembly chess game for the Raspberry Pi.

Created by Xu Ji, Bora Mollamustafaoglu, Gun Pinyo (Imperial College London) {xj1112, bm1212, gp1712}@imperial.ac.uk

The assembler, dcd_gen program and chess game were created as part of our first year C project. Feel free to check out our report, which was submitted as part of the assessment, and the slides used in the formal presentation, both included in this repo. A brief demo of the game can be found here: www.youtube.com/watch?v=-03bouPsfEQ

The programs directory contains the assembly programs and assembler binary, and the src directory contains dcd_gen.

To set up the chess game on your own Pi, you will need to first go into the programs directory and "make chess", which will use the assembler to assemble the chess game. The binary file kernel.img, which is created in the programs directory during the make, can then be loaded onto your SD card and inserted into the Pi.

Your SD card should have been formatted and freshly installed with Raspbian OS. You should then overwrite it by replacing kernel.img inside the boot partition with the kernel.img you just created.

In addition to a Pi and an SD card you will also need a screen which can be connected to the Pi using a HDMI cable, and six momentary push buttons wired up to the GPIO pins of the Pi in the following fashion:

GPIO18 = left GPIO4 = down GPIO23 = up GPIO17 = right GPIO22 = select GPIO27 = reset (restarts the game)

For this setup we also used a breadboard, 6 10K Ohm resistors, 6 1K Ohm resistors and several male-female and male-male jumper wires.

Ideally you will have either an x86 or Pi to assemble the chess game on. If you take a look at the Makefile inside the programs directory, you can see that we only detect x86 and ARM architectures. We'd like to make our assembler source code public to get rid of these compatibility issues, but that would be unfair on next year's first years if they get the same assignment. So for now only the ARM and Intel binary for the assembler is on here.

assembly_chess's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.