Table of Contents

Corning Community College

CSCS1320 C/C++ Programming

PROJECT: Fun With Games (FWG0)

OBJECTIVE

Obtain the latest stable release of Vircon32, along with its DevTools, and modify the “hello, world!” demo to display an image, along with modified text (content, position, attributes).

As has been the case with many projects this semester, you will also be contributing to the project documentation, detailing the necessary steps to obtain, configure, build, and use the items being focused on. To better ensure everyone plays a part, you will also need to ask a project-related question to the class discord well before the due date (not a DM, not so late that a response won't come in time), and transcribe that in readable fashion to the project documentation under your pertinent section. Include a discord link to the relevant transaction for easier reference.

With further clarification gained from asking the question, you will proceed to craft useful documentation with the rest of the class (the top of the document). The final result should allow anyone to accomplish the project.

Failure to contribute (you don't ask questions to the discord chat, you don't ask a good question, you ask too late, etc.) of the process will be considered in violation of the spirit of the project.

If you struggle with how to form questions, perhaps consider utilizing the college learning commons to receive assistance with forming good questions.

EDIT

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

FWG0

URLs

For the instructions and access to files you can go to: https://github.com/vircon32/ComputerSoftware/tree/emulator-v23.6.4

For the initial files you can go here: https://github.com/vircon32/ComputerSoftware/releases/tag/emulator-v23.6.4

For help and resources to help you can go to the vircon32 website: http://www.vircon32.com/

For basic Tutorials go to: https://github.com/vircon32/ConsoleSoftware/tree/main/Tutorials/RobotGame/Tutorial01A-HelloWorld

Build from Source

  1. Head to the github repository and download either the .zip or .tar.gz files.
  2. unzip/untar it and then look at the readme.
  3. Follow steps in the readme

Cartridge build process

compile

To compile you would run the do “./” to the “Make.sh” file that you should have copied from git.

assemble

To start assembling your c code, you must use the assemble executable file to turn the c code into machine readable code.

image processing
packing the ROM

to pack the rom, run the packrom command on the xml file and turn those results into an object. In the xml file be sure to give paths to where each thing you are putting in the ROM. Put those results into a .v32 file

Using the Vircon32 API

displaying text
processing textures and regions
displaying a region at location

Per User Correspondence

abowes2
question cprog
response cprog
question unix
response unix
amelvil2
question
response
cmazzara
question cprog

so I know that the Vircon32 stuff needs to be in an obj directory, so when submitting those files that need to be in that directory should I just submit them or is there a way to submit a directory as well? https://discord.com/channels/738748325217697856/738749154573942845/1165032893316341900

response cprog

https://discord.com/channels/738748325217697856/738749154573942845/1165058838764986488 read the rest of the response that is there broken up between multiple responses like an array.

question unix
response unix

Do “aptitude search <library>”

discord message links
efritz2
question cprog
response cprog
question unix
response unix
discord message links
gsalce
question cprog

Hey, I am finishing up installing my dependencies and there was one I could use some advice on. In the video libraries section of the “Readme,” there is a listing for GLUT. Firstly, I was wondering if this install was necessary as it specifies it is only for older systems? Secondly, if so, what would be the best to install, as there are two options that look like the best fit so far, one being “freeglut3-dev” or “libghc-glut-dev”?

response cprog

I didn't bother with it and I didn't have any problems so probably don't worry about it (unless you have an old system)

question unix

Am I understanding the make.sh correctly when reading it as taking the .c file and outputting that as a .asm into /obj. Then, taking the aforementioned .asm and outputting it as .vbin into /obj also. And lastly, taking the .xml file (a “cartridge”) and putting that .v32 output into /bin for Vircon32 use? So, when creating a new “cartridge” via Make.sh, one would need to make sure the desired inputs of the .c and .xml are correct as well as the corresponding outputs so they be correctly compiled / assembled / packed ?

response unix

yes. It might be helpful to manually run the steps yourself to bear witness to them, ani determine what best fits your workflow

discord message links
gsmith52
question
response
discord message link
jbernata
question cprog

“I’m getting this error while following the instructions in the readme for the vircon emulator. Any pointers? I have rwx permissions for vircon32”

response cprog

https://discord.com/channels/738748325217697856/738749154573942845/1164626414033715310

above is a link to the whole thread. The solution isn't in there as i found it on my own. I had to sudo ./Make.sh to give permissions to my own system.

question unix

“I’m trying to get vircon32 and this error came up while trying to install the package. Each of the requirements for the dependencies I’m trying to install are met but they’re not installable? Any ideas on what to do?”

response unix

“you want to obtain and build it from source that’s a prebuilt version (that you’d need to use dpkg to install)”

discord message links
jjones76
question
response
discord message link
jmerri10
question cprog

I used “nano ~/.bashrc” and manually added /usr/local/DevTools to my PATH. For future reference, is there a better way to do this?

response cprog

That’s basically what you want to do, yeah

question unix

When i do my “cmake –install .” I'm getting a permission denied error

response unix

you did want to sudo that

discord message links
morcutt
question

When looking at the potential packages for 'SDL2_image' I see a 'libsdl2-image-2.0-0' and a 'libsdl2-image-dev' but no 'SDL2_image' (with a underscore) . Should it be fine to use the 'libsdl2-image-2.0-0' even though it doesn't match exactly?

response

The names of different packages can vary between different distributions so you have to go off what it says it provides.

discord message link
qbrown2
question

when i try to run ./make.sh on the edited demo files I get an error for the c file that select region is for some reason not getting a parameter even though it was defined at the top

response

When you define the belowText, you need to set it to a number, like #define belowText 1

discord message link
tvanoxx
question
response
discord message link
xcroft
question cprog
response cprog
question unix
response unix
discord message links
 

SUBMISSION

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

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:

104:fwg0:final tally of results (104/104)
*:fwg0:submitted adequately modified demo code for project by duedate [26/26]
*:fwg0:all files needed to build cartridge are submitted [13/13]
*:fwg0:code compiles, cartridge builds with no warning or error [13/13]
*:fwg0:committed project related changes to semester repo [13/13]
*:fwg0:Vircon32 and DevTools not committed to semester repo [13/13]
*:fwg0:question, response, links to discord class chat posted [13/13]
*:fwg0:overall edit page process content updated [13/13]

Pertaining to the collaborative authoring of project documentation

Additionally