Const Port v1.6

Another version of Const Port is ready. And with this version comes the first release of the OSX version of Const Port. I've done a decent amount of work trying to get the OSX version to run inside an application bundle so hopefully it will be easy to install. That being said I know there are still a lot of things to learn about distributing on OSX. I am largely a windows user I must admit so if anybody has any suggestions I'm open to all critique.

I'm going to try and keep the explanation short here since I don't have a whole ton of time today. There are a couple of major features I'd like to point out in this version. The first is the new and improved Com Menu:


The menu layout has been redesigned to be more friendly to tall windows and a large number of available ports. It handles really small window resolutions quite nicely and it now opens on startup automatically.

Another nice feature that's been added is the input text box. Instead of echoing the characters directly to the port you can now type into an editable text box near the bottom of the screen. This allows for much nicer editing features and relieves the application of the burden of echoing characters and handling backspaces. It also allows us to record previously input lines and allow you to easily recall them using up/down arrows.

There's a lot of other small features and improvements and some major reworkings of some of the core platform functionalities as well. These have both fixed a lot of bugs and added a decent amount more. There's still a long list of things that I'd like to get fixed but I think in the interest of time I'd like to release it as it is. If you run into any bugs feel free to report them on the github, Handmade Network, or as a comment on this post and I will be sure to get them on the list if they aren't already.

Alright enough talk, here's the download links:


  • Redesigned the Com Menu to handle various resolutions and long lists of available ports better
  • Support for opening COM25-COM256
  • Ctrl+W now closes the currently open port
  • Escape key closes com menu and popup messages
  • Added an input text box to allow better editing features and recall functionality. (Can be disabled in the configuration settings)
  • Added support for regular expression triggers that evaluate after every character received
  • Added a small running indicator to the bottom left side of the screen
  • Added support for pasting from clipboard
  • Added support for replacing the matched line with a format string that contains the captured groups in the regular expression
  • Fixed a problem where we wouldn't render/respond to operating system events when receiving large amounts of data
  • Added better indications for the window not being active
  • You can now send binary data to the port by typing in the hexadecimal representation and hitting ctrl+enter (or hold ctrl while pressing the send button)
  • Added support for line-wrapping
  • Added support for a few for trigger effects (save, new_line, and clear_screen)
  • Added better support for keys being held down (repeated key events)
  • Added a few temporary check boxes in the overhead menu to toggle various options

Const Port v1.2

Const Port version 1.2 is now finished. I added a 1.1 version to the bitbucket repository but there was only a few random features added so I didn't go through a full release announcement process. 

Version 1.2 is mainly focused around adding the ability to configure the UART settings (Baud Rate, Parity, etc.) through the COM menu. There's also a lot of other smaller features and fixes added on the side. See the changelog below for a full list of features.

The updated COM menu

The updated COM menu



  • Reformatted the COM menu to include options for Baud Rate, Num Bits, Parity mode, and Stop Bits
  • Changes to the COM menu are not applied until you press the Connect button
  • Ctrl+[1-9]  now open COM port 1-9 rather than just an index in the list of available COM ports
  • COM settings are now grouped in a single structure that can be passed around
  • Re-enabled the colorful selection for fun (4th of July?)
  • Changed the way COM ports are enumerated internally
  • Set the supported OpenGL version to 3.0. Modified the shaders to work accordingly


  • Added simple line marks. You can click on the line number gutter to add marks. Shift+click makes the marks slightly thicker.
  • Ctrl+M marks the last line received (Ctrl+Shift+M for thicker mark)
  • A readout in the status menu indicates time since last line was received
  • When text is selected the readout indicates how many characters are selected
  • Removed max size limit on the window
  • Disabled the TOPMOST option when compiled for release mode
  • Connected COM port is displayed in the window title and in the status bar

Sublime Text Build Tool Tutorial

So I've been busy at work doing things so I kind of have fallen off the game development wagon for the last couple months.

However, during that time I have been messing around with Sublime Text's customization options a lot. I've made some custom syntax types, custom themes, and a ton of custom plugins to add some of the features I feel like are missing from Sublime Text 3. 

So with all this time spent learning Sublime Text's systems I figured it would be a good time to make a few short tutorials about Sublime Text for those that want to make their own modifications.

The first tutorial will be about how to make your own sublime text build system. We will be walking through making the build system I use for the DirectX project I've been working on over the last year. The build tool basically just runs a build.bat file (on windows) which really does most of the heavy lifting but there are a lot of auxiliary options that can make the whole building process sublime.

So make sure you check out the new Sublime Text section on the tutorials page.

Some More Debug Readouts

I added some more debug readouts in the top left that I can easily enable and disable. Also changed the clear color to white for the time being so we can see which faces are actually being drawn. I've also gone and sped up the rendering a little bit more. We used to drop to about 24FPS is large open areas. Now we can always stay above 30 since our early out in the loop is when the block we are checking is solid. We get a consistent 60 inside cave-like areas which is good.