20140321_100_7888.JPG
Bags of components for the Ocelot ordered from bitsbox.co.uk.
20140321_100_7898.JPG
Components for the TBA820M amplifier board.
20140321_101_4960.JPG
Completed amplifier board (standard usage from TBA820M datasheet).
20140322_101_4959s.JPG
Completed amplifier board (standard usage from TBA820M datasheet).
20140323_100_7848s.jpg
dsPIC33FJ128GP802 sample in tube.
20140325_102B7942.JPG
Oscilloscope in my bedroom.
20140325_102_7912s.jpg
Ocelot prototype front panel laser cut from MDF at DoES Liverpool - It was originally going to be a panel mounted into a case.
20140325_102_7920.JPG
Oscilloscope turned on for the first time for testing.
20140328_100_7945s.jpg
Original attempt at Ocelot veroboard layout, showing the power bus, PICkit header and Joystick panel bus.
20140329_100B7990.JPG
Initial layout of Ocelot soldered into veroboard; notice the DAC resistors on the right for use with the internal dsPIC33 DAC.
20140407_100_8019.JPG
Testing the Joystick interface by plugging in a Zipstik and looking for continuity through the empty DIP socket.
20140407_20171126_encoded.mkv
Testing the Joystick interface by plugging in a Zipstik and looking for continuity through the empty DIP socket.
20140409_100B8060s.JPG
PICkit in original packaging.
20140409_100_8025.JPG
Programming and debugging the dsPIC33 code through MPLAB on my laptop.
20140409_100_8040.JPG
Programming and debugging the dsPIC33 code through MPLAB on my laptop; at this point the regulator was still installed backwards!
20140410_100_8106s.JPG
Ocelot boards fully assembled, mounted into prototype plastic front panel and attached to front panel and amplifier board with ribbons. Notice the TI DAC isn't used yet.
20140410_100_8109.JPG
Ocelot boards fully assembled, mounted into prototype plastic front panel and attached to front panel and amplifier board with ribbons.
20140410_20171126_encoded.mkv
In this riveting video, the Ocelot is instructed to play ascending tones through the audio subsystem while blinking the Status LED at the same rate.
20140412_100_8166.JPG
Ocelot boards fully assembled, mounted into prototype plastic front panel and attached to front panel and amplifier board with ribbons.
20140412_100_8168.JPG
Ocelot boards fully assembled, mounted into prototype plastic front panel and attached to front panel and amplifier board with ribbons.
20140412_gravitybeam_ingame_20171126_encoded.mkv
Ocelot Arcade System Sings: Gravity Beam Ingame Theme!
20140412_gravitybeam_title_20171126_encoded.mkv
Ocelot Arcade System Sings: Gravity Beam Title Theme!
20140422_100_8192.JPG
Ocelot boards fully assembled, top view.
20140430_odetojoy_20171126_encoded.mkv
The Ocelot is alive! Here it is playing a converted MIDI of Ode to Joy while displaying a 3D cube.
20140501_100B8211.JPG
A very clear and stable image showing dots in an ellipse.
20140501_100_8203.JPG
First test program using the TI DAC! A very clear and stable image showing dots in an ellipse.
20140501_100_8222s.JPG
Design of modification to right side of Ocelot board to introduce TI DAC in place of protection resistors.
20140508_102_8226.JPG
Completed Ocelot boards with TI DAC. Shown on squared paper for size, also heavily suggests a rectangular book-sized case.
20140514_102_8231s.JPG
Ocelot case laser cut and engraved at DoES Liverpool.
20140514_102_8242.JPG
Ocelot case laser cut and engraved at DoES Liverpool.
20140514_102_8246.JPG
Use adhesive paper prior to burning to prevent scorchmarks on wood.
20140514_102_8253.JPG
Ocelot instrumentation installed into front panel. Notice my super long potentiometer.
20140514_102_8256s.JPG
Ocelot case interior before case assembly.
20140514_103_5221.JPG
Testing Ocelot with Mega Drive pad.
20140520_104B8300.JPG
Fully glued Ocelot wooden case with new potentiometer.
20140520_104B8371.JPG
Fully glued Ocelot wooden case with new potentiometer.
20140520_104B8382.JPG
Fully glued Ocelot wooden case with new potentiometer.
20140520_104B8402.JPG
Fully glued Ocelot wooden case with new potentiometer.
20140520_104B8440.JPG
Fully glued Ocelot wooden case with new potentiometer.
20140525_104B8890s.JPG
3D objects testing!
20140525_104_8840.JPG
Programming Ocelot using my laptop.
20140526_104B8970.JPG
Ocelot sanding.
20140526_104B8980.JPG
Ocelot sanding.
20140526_104B9021.JPG
Ocelot sanding.
20140526_104B9073.JPG
Ocelot sanding.
20140526_104B9121.JPG
Ocelot sanding.
20140526_104B9131.JPG
Ocelot sanding.
20140526_104_8900.JPG
Woodworking stuff used to finish the Ocelot case. Remove the innards first!
20140526_104_9174.JPG
Sanded Ocelot with varnish drying.
20140526_104_9229.JPG
Ocelot case completely sanded and finished.
20140601_20171126_encoded.mkv
Ocelot displaying multiple opaque triangles simultaneously! See the next video for how this effect is applied into 3D.
20140609_20171126_encoded.mkv
This is a test of the convex hull system I prototyped for removing lines from the screen when they were overlaid by new lines. The objective was to be able to draw opaque objects onto the screen, but it was pretty glitchy and slow, so I got rid of it in the end. It would have barely been visible on the tiny screen in the end anyway.
20141207_101_5079s.jpg
Complete Ocelot design.
20151128_e7783d0b2fc2e329a81d04de2d9a5ba3.jpg
Margay image!
20151220_104_8258.JPG
Self-adhesive velcro strips used within the case to keep the boards and battery housing in place.
20160101_100_6875.JPG
View of interior of Ocelot showing board and battery holder mounted on interior wall.
20160321_20171126_encoded.mkv
First render of the Lynxwing model on the Ocelot itself. This means I have the 3D engine working (to some extent at least), and the model exporter and model interpreter all working.
20160321_Animation2.gif
Multiple 3D opaque Lynxwing spaceship objects running in Windows simulator.
20160321_lynxwing_ocelot_hi.gif
3D rendering test on Ocelot.
20160327_lynxy2.jpg
Sketch of Star Lynx himself!
20160327_lynxyfaces.png
Star Lynx face traced in Blender to create the animated face used in-game.
20160328_unimpressed_lynx_dude.gif
Animated Star Lynx face displayed using tweening within the Windows simulator.
20160330_lynxes one open.png
Variations of Star Lynx's face to be used as animation keyframes.
20160330_lynxes one open2.png
Variations of Star Lynx's face to be used as animation keyframes.
20160331_lynxemotions.gif
Star Lynx face animation test.
20160402_lynxneutral1.gif
Star Lynx face animation test.
20160402_lynxsleeps.gif
Star Lynx face animation test.
20160402_lynxsleeps2.gif
Star Lynx face animation test.
20160411_cutscene with text.gif
Test of cutscene system showing scripting, animated face and text.
20160411_shady and starlynx.gif
Very silly test of cutscene system showing ability to display multiple, scaled animated objects.
20160412_commander_test.jpg
Commander face.
20160412_commander_vectors1.png
Commander face traced in Blender for use in game.
20160412_commanderface_and_lynxface.gif
More cutscene testing between Star Lynx and the Commander. Notice this is the original script already at this point!
20160412_indeed i do know.gif
Tweening at different speeds with the Commander's smug face sequence.
20160412_indeed i do know2.gif
Tweening at different speeds with the Commander's smug face sequence.
20160416_102_8642.JPG
Ocelot in the spare bedroom for recording the cutscene sequence.
20160416_102_8643.JPG
Ocelot in the spare bedroom for recording the cutscene sequence.
20160416_20171126_encoded.mkv
The cutscene between the Commander and Starlynx as shown on the oscilloscope display. Notice he says 'lynxy' stuff instead of 'furry' stuff. Which is worse is a matter of debate.
20160511_shipfly1.gif
First tests of Starlynx Lynxwing flying within the Windows simulator. Aiming reticule is working too. Ship is clamped to a rectangular region.
20160512_shipfly2.gif
First tests of Starlynx Lynxwing flying within the Windows simulator.
20160512_shipfly3.gif
First tests of Starlynx Lynxwing flying within the Windows simulator.
20160711_panning around ship.gif
3D view of Lynxwing.
20160719shipfly.gif
Lynxwing flying through a starfield with 3D building objects in the background.
20160723_output.mkv
The Lynxwing ship with flight controls and a starfield and some randomly-placed background objects as shown on the real oscilloscope screen. The flightschedule system hadn't been written yet.
20170518_air1.png
Design of the 'butterfly' air enemy, AIR1.
20170518_air2_bug.png
Wireframe and polygon views of the 'moth' air enemy, AIR2.
20170518_air2_bug2.png
Wireframe and polygon views of the 'moth' air enemy, AIR2.
20170518_ground1.png
Design of the 'mantis' ground enemy, GROUND1.
20170518_ground2.png
Design of the 'spider' ground enemy, GROUND2.
20170926.gif
Ship flying through a scripted level with various 3D backgruond furniture heading towards the camera. Enemy formations are in! Look at 'em all go! Enemy behaviour seems to be in as well, the enemies are correctly banking and tilting up.
20171003flying.gif
Enemies in the air and on the ground, appearing in formations and heading towards the player and tilting according to their behaviour.
20171004_fly1.gif
Bonus objects are in - the points ring model is in the game, but there's no collision detection yet.
20171004_fly2.gif
Enemy formations again, the second bonus ring (powerup) is here.
20171006_collisions.gif
The enemies can now fire at the player (complicated 3D math!) and the player can be hit by enemy projectiles, 'causing the ship to be forced to one side, the model to change, and the ship to flash.
20171006_collisions2.gif
There is a third ship model with even more prongs snapped off for critical damage.
20171016_bossimpact.gif
The Menace Mantis' head has basic wobbling behaviour and can be shot at! The ending cutscene part of the flightschedule system is implemented - notice the 'Return to base' dialogue is as it is in the final game.
20171016_bossimpactfight.gif
The Mentace Mantis now has behaviour to fire at the player!
20171017_menacemantis_idle.gif
I have modelled and positioned the Menace Mantis' hands, so it can now enter this super awesome looking menacing animation while all of its components are idle.
20171019_mantisattackcompilcation.gif
I have programmed in a series of attacks for the Menace Mantis to execute: lower swipes, upper swipes, vertical swipes. Both hands can execute any combination of these independently.
20171019_mantisbossfight.gif
Here the player is fighting the Menace Mantis! The hands have collision detection and the hands can now fire rows of projectiles at the player. These are the same as the enemy projectiles so they collide with the player as expected. When the hands run out of hit points, they twitch and fly into the distance Master Hand style. The 'protect the head' behaviour of the hands when the head is attacked directly is also here. All the stages of the Menace Mantis boss fight are present, in fact! The game can be won! The damaged Lynxwing being shown in the ending cutscene was a happy coincidence, it wasn't intentional, but it looks great!
20171019_mantisverticalattack.gif
This is Menace Mantis' vertical attack.
20171022_IMG_20171022_194132_DRO.jpg
Taking pictures of the boss sequence in the spare bedroom.
20171022_IMG_20171022_194144_DRO.jpg
Showing the ingame sequence on the oscilloscope screen.
20171022_IMG_20171022_194153_DRO.jpg
Catsden City level inroduction sequence.
20171022_IMG_20171022_194709_DRO.jpg
Menace Mantis' introduction shown on the oscilloscope screen.
20171022_IMG_20171022_194725_DRO.jpg
Menace Mantis boss fight shown on the oscilloscope screen.
20171022_matt.mkv
A full run-through of the Star Lynx level sequence filmed on my Canon camera. This is why I got the camcorder out to do the advert!
20171108_out.mkv
Ocelot playing the Final Fantasy 1 battle music! This is a test of the MIDI conversion code.