Skip to content


Repository files navigation

Darkscience Code Contest

Current contest - TGS Emulator

Recently while renovating the Science Museum in London, staff have discovered a previously unknown asset. It appears that in the archives blueprints and demo programs were present for one of the very first game consoles to exist.

The TGS, or Terrible Game System, as the retro console is called was briefly released to the public but was increadibly badly received. The traumatic experience has caused everyone from that time to simply forget that the device ever existed.

This DCC assignment is a little different from the previous ones. Rather than lasting a month, you will get a large part of the summer to work on your submission. This is done in order to accommodate for people with a busy schedule, not because you need that much time. You may also consider to work in a (small) team, however that is not a requirement and the assignment can be done on your own just fine.

Your task consists of writing an emulator for the TGS based on the available information in It is completely up to you how advanced you want to make the user interface, however you should support all the core functionality of the TGS's processor and peripherals. Both demo programs have also been read from their ROM cartridges and saved to demo1.bin and demo2.bin respectively, which you can use to test your emulator.

There were also designs for a successor, the TGS2, but after the failure of the TGS these designs were never implemented. Should you be bored, feel free to implement the additional TGS2 features for a special award, independent of the main contest results.


With this specific assignment, we'll be offering a few prizes for the contestants finishing in the top 3.

  1. Besiege (DRM-free + Steam key), a large and a small Darkscience sticker
  2. A large and a small Darkscience sticker
  3. A large Darkscience sticker

Prizes are handed out per submission, any teams will have to figure out how to share their prize.

Help, this sounds way too hard!

Don't worry, it's actually not that hard at all. More likely, you're just not familiar with some of the concepts involved. If so, use this as an opportunity to learn something interesting! Here are a few links that might help you piece a solution toghether:

The video on writing a NES emulator covers much more advanced techniques than you will need for this assignment, but it is an interesting watch nevertheless. You can also join the #dcc channel and ask around there if you have any specific issues.


  • Start of assignment: 2015 May 11
  • End of submissions: 2015 Jul 12
  • Results: 2015 Jul 26

After the submission deadline has passed, a reference assembler and emulator that were used during development of the demo programs will be released.


The Darkscience Code Contest, or DCC for short, is a contest organized by and for the Darkscience community. The contest is held on a per-month basis. A new assignment is given each first Monday of the month and submissions are due before each fourth Monday of the month. Concrete dates will be present in the Current contest description.

General rules

Please refer to


During a contest, the master branch will contain all the files related to that assignment. In order to make a submission, do the following:

  • Fork the master branch of the dcc repository
  • In the solutions directory, create a directory with your nickname
  • Work on your solution within that directory
  • When finished, create a pull request against the official dcc repository

If you create your pull request before the contest is over and do not violate any rules, your submission should be accepted by us into the master branch. As long as the contest is not over yet, you are allowed to make additional changes and pull requests, although we'd like to ask you to keep these to a minimum.

Once the judging period commences, the contents of the solutions directory are moved to a new branch created for that assignment. Winners will be made visible in master until a new contest starts, afterwards this information will be moved into the according branch for there to stay.

Previous contests

Month Assignment Winner Branch
February 2014 Steganography Liothen Feb14
January 2014 Timed Product Fox Jan14
December 2013 Quine whoami Dec13
October 2013 Game of Life MrDownNL Oct13


If you have any questions regarding the contest feel free to join #dcc on (SSL). Current organisers/judges:

  • Derecho
  • Liothen