Thursday, July 18, 2013

TEROS Engine BETA Video Demo

As suggested in my post about the public release of version, I have made a video update for the beta of the TEROS Engine. While most of the changes in version were coding optimizations to better facilitate the engine's ease of use and, as such, cannot easily be demonstrated in video format, the video does demonstrate the retooled wire-frame rendering mode and the newly implemented camera zoom feature.

Saturday, July 13, 2013

TEROS Engine BETA Public Release

Recently, I found the time to make the improvements to the TEROS Engine that I promised in my last update. I optimized the polygon texturing algorithm , added support for wire-frame mode, reworked and optimized the line drawing algorithm, and added a zoom feature to the camera class. With these changes, I believe it is finally time for the TEROS Engine to exit development and begin beta testing. So, without further ado, here it is-- the source code for the build of the TEROS Engine. The .rar archive I have linked contains the header file, the .cpp file, and the documentation for the TEROS Engine.

For those of you not familiar with how to compile with external libraries and who use g++, the command to compile with teros.cpp is "g++ -g [insert your .cpp file name here] teros.cpp -o [insert your executable name here]".

In the near future, I might make a video demo of BETA However, barring that, I am inclined to believe that development will slow down in the future. The entire purpose of a beta is to work out the bugs by having external users test the software, and I do not imagine there will be many people rushing to use the TEROS Engine for their projects. Nevertheless, I will, at least, keep pace with the public demand for more content on the engine.

As a side note, the documentation for the engine was done all in one sitting in Notepad. So, if there are any grammar or spelling mistakes, I apologize. I wasn't quite seeing straight by the end of it. On that note, please feel free to contact me about any ambiguities, general vagueness, spelling mistakes, etc. in the documentation; I will be sure to update the documentation as necessary. Additionally, I would greatly appreciate feedback on the engine's code. Rest assured that any bugs found will be promptly amended.

One final remark-- in the unlikely circumstance that someone would actually like to code with my engine, I do ask that you cite my role in the engine's development in your work.

Tuesday, July 2, 2013

Nintari 2600 Gamepad

     Recently, I acquired an assortment of Atari 2600 games and accessories, and, among these items, I discovered a controller with substantial mechanical damage to the joystick. Not being one to simply throw away vintage gaming equipment, I attempted to repair the controller; however, the damage to the mechanical spindle running down the shaft of the joystick was too severe. With the restoration of the Atari controller out of the question, I remembered that I had another broken controller lying around-- an NES gamepad with frayed wiring and a damaged circuit board. Naturally, my first instinct was to Frankenstein the innards of the Atari 2600 controller with the casing of the NES gamepad.

     The first thing that needed to be done was to remove the printed circuit board from the Atari 2600 controller and to extract the electronic switches from the board. So, I proceeded to sever the cord from the circuit board... and, then, I grabbed a hacksaw and began haphazardly lopping off bits of the board.

I think I've found your problem; you have an open circuit... everywhere.
     After thoroughly maiming the circuit board, I removed all of the internal plastic molding from the NES controller, excluding the molding on the four outer screw slots. Next, I cut a piece of cardboard to the dimensions of the interior of the NES controller and glued the extracted bits of the Atari 2600 circuit board to the cardboard. I then removed sections of the plastic, tape-like covering on the segments of PC board to expose the metal contacts, cleaned the contacts, and, using a pinout diagram of the Atari 2600's connector plug, wired all of the switches to a common ground and soldered the corresponding wires from the 2600 joystick's controller cord to the appropriate switches.

     Once I successfully disentangled myself from the unholy abomination of wiring I created, I hot-glued the cardboard slat to the NES controller casing and placed dabs of hot glue atop each of the hardware switches, such that the plastic NES buttons would be able to contact the newly placed switches below them. Additionally, I glued the B button and the start and select buttons on the NES casing in place. I then reassembled the controller and plugged it into my Atari 2600 to test it.

     Unsurprisingly, not all of the buttons worked on the first try. Nevertheless, after monkeying around with the shape and size of the dabs of hot glue on the switches for about ten minutes, I was finally able to get all of the buttons to function properly.

The Nintari 2600 gamepad-- because "Atendo" sounded even more moronic.

     And, there you have it-- the Nintari 2600 gamepad-- my particularly shoddy take on the tired, overdone idea of making an NES gamepad shaped Atari 2600 controller. I set out to do this project without buying any additional parts, and, given that I never actually expected it to work, I'm pretty pleased with the end result. Just in case anyone doubted the functionally of the controller or simply wanted to see it in action, I've made a short video demonstrating the gamepad:

     I apologize in advance for my poor performance at Asteroids; in order to record the controller and the television screen at the same time, I had to view the screen at almost a 180 degree angle. Also, I am well aware that the proper way to record footage from a TV is with a capture card; however, as I do not own a capture card and could not find my tripod, I had to make due with what I had. Just to give you an idea of the grade of equipment I used, I have included pictures of the camera setup below.

In case you're having trouble processing exactly what is going on here, on the left, we have a digital camera mounted on a broom with a wood clamp, and, on the right, we have a smart phone clothes pinned to a set of telescoping coaxial antennas.