User Tools

Site Tools


haas:spring2024:comporg:projects:btt0

Corning Community College

CSCS2650 Computer Organization

PROJECT: Building The Thing (BTT0)

OBJECTIVE

Obtain the latest stable release of Vircon32, in source code form, and build it and the associated DevTools in your development system. Collaboratively document the build process.

EDIT

You will want to go here to edit and fill in the various sections of the document:

BTT0 documentation

Resources

URLs
API

Here is a link to the C API page on vircon32's website: http://www.vircon32.com/api.html

This page will show you all of the tools you need to make games for the emulator using the C language

Vircon32

Obtain source of latest stable release of Vircon32 DevTools
URL

Note: Clicking the link in Vircon32 takes you to an older version of the DevTools.
Instead use the following link:
https://github.com/vircon32/ComputerSoftware/releases/tag/devtools-v23.10.27

This brings you to the latest release from the Vircon32 Github.

As we will be building from source you'll want to select and download the correct archive

  1. Source code (tar.gz) for Linux or WSL
  2. Source code (zip) for Windows
build prerequisites
  1. Knowledge on archive handling
  2. Ability to read the Readme
  3. Basic cli knowledge
  4. Ability to find and update packages

Vircon32 ComputerSoftware Readme: https://github.com/vircon32/ComputerSoftware/blob/main/Readme.md

build process (platform/OS)

Replicate section per system/OS you are building for

  1. Extract your archive (location does not matter for this)
  2. Navigate into the base directory. Should begin with ComputerSoftware.
  3. Read the Readme.md
  4. Create a build directory in both DesktopEmulator and DevelopmentTools
  5. Reference the Readme on which packages are needed and install them.
installation

Begin by installing the required libraries, they will be listed at the bottom of the Readme.md file

begin by typing the command 'aptitude <package>' to search for the specific libraries and 'apt install <package>' to install. You most likely need to use the token 'sudo' when installing.

After the packages are installed you will want to continue with the installation steps in the Readme, namely steps 3 through 5.

Keep an eye on the location where each the DevTools and Emulator get installed.

environment configuration

Making note of the location of the DevTools and Emulator, you'll want to add those to your $PATH variable via your .bashrc file.

In this case, DevTools gets installed to /usr/local/DevTools, so you will want to open up your .bashrc file:

vim ~/.bashrc

Then, you can add this line to the very end of your file:

export PATH=$PATH:/usr/local/DevTools
Obtain source of latest stable release of Vircon32 emulator
URL
build prerequisites
build process (platform/OS)

Replicate section per system/OS you are building for

installation
Step 1 (Getting and installing all necessary dependencies)

Once you have got your source files, gotten the contents out of it, and cd'd into it there should be a Readme file, cat it to read it. After that you should have read at the bottom that there are libraries to install. You should install these in the following format:

sudo apt install lib<package name>-dev

So an example would be sudo apt install libsdl2-dev (Notice how the capital SDL became sdl. Also and “_” will become “-”).

Step 2 (After you have downloaded all the necessary dependencies)

Start by cd'ing into either the DesktopEmulator directory or the DevelopmentTools directory (NOTE: It does not matter where you start because you'll be repeating the step in both directories). Once into one of the above specified directories create a new directory named build.

mkdir build

cd into the new directory and do the following.

Once you have downloaded all the required dependencies you need to run the following line on you system. (This example will be based of off a Linux/pi system).

cmake -G '[your system] Makefiles' ..

Here is an example of it for a Linux/Pi system (this should also work for wsl's in case you are among the non-pi users):

cmake -G 'Unix Makefiles' ..

NOTE: you need to have the “ ..” that is not a typo.

Once you have completed the above step, you need to run the following:

sudo cmake --install .

Note: you need to have the “ .” after install for it to work properly.

Now, you are almost done. Depending on where you started you need to repeat this step for either the DesktopEmulator directory or the DevelopmentTools directory.

environment configuration

After running the previous command, the Emulator tools get installed to /opt/Vircon32/Emulator. To use these tools, they will have to be added to your $PATH variable. To do this open .bashrc in any editor:

vim ~/.bashrc

Then, add the following line at the end of the file:

export PATH=$PATH:/opt/Vircon32/Emulator

If you have installed the emulator after you installed the DevTools, then you can simply include both paths at once:

export PATH=$PATH:/usr/local/DevTools:/opt/Vircon32/Emulator

Hello World

Bootstrap a fairly simple “Hello, World” example, modified sufficiently from any provided tutorial or demo code.

This is a link to the provided tutorials on the Vircon Github page: https://github.com/vircon32/ConsoleSoftware/tree/main/Tutorials/RobotGame

Indicate some potential changes/functions used here.

Some potential changes/functions could be:

  • Changing the position of the text( making it appear in the bottom right of the screen )
  • Changing the color of the text
  • Changing what the text says ( and / or make it a different language )
  • Changing the background color to one of the provided colors( make it green )
  • Implementing your own background( make it Jesse from Breaking Bad )
  • Making your own font( Turn a tree into the alphabet )
  • Adding sounds( like it saying “Mr.Worldwide” ) when booting up the demo

Cartridge Build Scripts

In the tutorials and demos there are corresponding build scripts that will take all the code and related resources, and run the appropriate development tools to create a Vircon32 cartridge file.

Part of your task is to author your own custom build script. Do not just use an existing script, and do not just lightly modify the provided scripts: craft your own, with descriptive comments, that suit your individual effort.

 

SUBMISSION

To be successful in this project, the following criteria (or their equivalent) must be met:

  • Project must be submit on time, by the deadline.
    • Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
  • Executed programs must display in a manner similar to provided output
    • output formatted, where applicable, must match that of project requirements
  • Processing must be correct based on input given and output requested
  • Output, if applicable, must be correct based on values input
  • Code must be nicely and consistently indented
  • Code must be consistently written, to strive for readability from having a consistent style throughout
  • Code must be commented
    • Any “to be implemented” comments MUST be removed
      • these “to be implemented” comments, if still present at evaluation time, will result in points being deducted.
      • Sufficient comments explaining the point of provided logic MUST be present
  • No global variables (without instructor approval), no goto statements, no calling of main()!
  • Track/version the source code in your lab46 semester repository
  • Submit a copy of your source code to me using the submit tool by the deadline.

Submit Tool Usage

Let's say you have completed work on the project, and are ready to submit, you would do the following:

lab46:~/src/SEMESTER/DESIG/PROJECT$ submit DESIG PROJECT file1 file2 file3 ... fileN

You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.

RUBRIC

I'll be evaluating the project based on the following criteria:

26:btt0:final tally of results (26/26)
*:btt0:submitted modified demo code for project by duedate [6/6]
*:btt0:submitted original build scripts and supporting resources [6/6]
*:btt0:contributed to project documentation [8/8]
*:btt0:committed project related changes to semester repo [6/6]

Pertaining to the collaborative authoring of project documentation

  • each class member is to participate in the contribution of relevant information and formatting of the documentation
    • minimal member contributions consist of:
      • near the class average edits (a value of at least four productive edits)
      • near the average class content change average (a value of at least 1024 bytes (absolute value of data content change))
      • no zero-sum commits (adding in one commit then later removing in its entirety for the sake of satisfying edit requirements)
    • adding and formatting data in an organized fashion, aiming to create an informative and readable document that anyone in the class can reference
    • content contributions will be factored into a documentation coefficient, a value multiplied against your actual project submission to influence the end result:
      • no contributions, co-efficient is 0.50
      • less than minimum contributions is 0.75
      • met minimum contribution threshold is 1.00

Additionally

  • Solutions not abiding by spirit of project will be subject to a 50% overall deduction
  • Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
  • Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction
  • Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction
haas/spring2024/comporg/projects/btt0.txt · Last modified: 2024/01/22 07:40 by wedge