CHIP-8 Emulator

This is an 8-bit emulator written in C#. It took me about a year to develop, working on it here and there. It will run CHIP-8 programs that were originally run on 1970s era devices using 8-bit microprocessors, the RCA 1802 being the most common. The 1802 was used in applications such as the RCA Studio II console and the Telmac 1800 home computer. Included with the emulator are many ROMs, including classic games such as Pong, Bowling, Brix, and Space Invaders.



The system supports 16 key inputs, which are mapped to the following on a modern keyboard:


You may need to adjust the clock speed depending on your system and the ROM you're running. If you're running the mono build for Linux you may need to disable SpinWait.


Source code - .NET solution
Binary and ROM package for Windows
Binary and ROM package for Linux*

* Requires the mono runtime. To install the runtime do "sudo apt-get install mono-complete" from terminal. To launch the emulator, navigate terminal to the emulator folder and enter "mono chip8.emu".

5 comments (View)Share|[Post a Comment]

Binary Clock in Javascript

This is a binary clock I wrote in Javascript. Can you figure out how to read it? Go here to learn more about binary clocks. To see the code, right-click on the clock and click "View Source".

2 comments (View)Share|[Post a Comment]

MSC Comments

Leave MSC comments below, or visit the thread on Phone Service Support forums

20 comments (View)Share|[Post a Comment]

Favorite Star Trek TNG Episodes

These are my five favorite Star Trek TNG episodes - at least the ones that come to mind. What are yours? Comment below. I may update my list based on the comments. Click on an episode to watch it.

Top 5 Star Trek - The Next Generation Episodes. Best Star Trek TNG episodes.

1 comment (View)Share|[Post a Comment]

Build the Ultimate HTPC

The following HTPC will be ultra-fast, sleek and aesthetically pleasing, and silent. All components will integrate seamlessly. After doing a tremendous amount of research and quite a bit of trial and error, this is what I have come up with.

Tips: Install the power supply fan side up. The power supply will be 1 SATA power plug short. You need to order a Molex to SATA adapter.

  • SilverStone Aluminum/Steel Micro ATX Media Center/HTPC Case ML03B (Black)

  • SiliconDust HDHomeRun DUAL High Definition Digital TV Tuner HDHR3-US (Black)

  • Silverstone ST45SF 450 watts SFX form factor power supply

  • Ortek Windows 7 Vista XP Media Center MCE PC Remote Control

  • Intel Core i5-3570K Quad-Core BX80637I53570K

  • Crucial Ballistix Sport 16GB Kit (8GBx2) DDR3 1600

  • Seagate Barracuda 3 TB HDD SATA 6 Gb/s NCQ 64MB Cache

  • Western Digital WD Scorpio Black 750 GB 2.5" hard drive

  • Asus Black 12X BD-ROM 16X DVD-ROM 48X CD-ROM SATA Internal Blu-Ray Drive (BC-12B1ST)

  • Windows 7 Professional SP1 64bit (OEM)

  • ASRock LGA 1155 Intel Z77 HDMI SATA 6Gb/s USB 3.0 Micro ATX Intel Motherboard Z77M

My HTPC is also used to host a variety of services. If you're using yours purely as an HTPC, you would be fine with 4-8GB of RAM, an I3, and Windows 7 Home. Best home theater pc build. HTPC build. DIY HTPC build. Home theater. Windows Media center computer. Media Server build tutorial.

Droid 4 Stuck In Fastboot Mode - Fix

DOWNLOAD: Droid 4 stuck fastboot fix (flash with RSD-Lite)

I had a problem with my Droid 4 today. I upgraded to Jelly Bean, and discovered I had lost root, despite using OTA Rootkeeper. I couldn't find a JB root tool, so I tried to SBF back to ICS and re-root there. Unfortunately you are not allowed to SBF backwards, so the flash failed.

Nothing was corrupt, the Jelly Bean install still worked fine. However since the flash had officially failed the phone now started in Fastboot mode every time...with a message saying that the flash had failed. To boot normally I had to hold power and volume keys and select normal boot, obviously very annoying.

As there is no Jelly Bean SBF yet, I could not flash that. So I developed a little RSD-Lite package to "spoof" a successful flash. If your Droid 4 is stuck in Fastboot mode, download the file above and flash it with RSD-Lite to get the phone back to normal boot mode. This will work whether you're on ICS or JB.

1 comment (View)Share|[Post a Comment]

etvROM V7-1 for Sprint Galaxy Tab

This ROM is for the CDMA Sprint Galaxy Tab (SPH-P100)


  • Gingerbread (based on EB17 source)
  • Debloated and snappy
  • Clockworkmod recovery
  • Rooted
  • Touchwiz
  • Email, SMS, and other apps from Mainline CM7
  • Latest Superuser
  • Terminal Emulator
  • Infrastructure mode WIFI tether (use Galaxy S or Epic 4G profile)
  • Ad-hoc wifi connectivity
  • Everything works, designed to be a daily driver
  • Other small improvements and enhancements

  • Download here:
    (MD5 checksum: 17bd976c28226adebf17b0a2df00f29a)

  • Flash with Heimdall (download here). If you're coming from a ROM other than stock GB, you may need to flash the bootloaders and modem file in Heimdall as well. You can get those files here. (Flashing both the ROM and modem/bootloader package should restore your device from just about any state)

  • When flash is complete, Tab will reboot into recovery. You need to wipe data/cache, and reboot.

Screenshots: (the battery percentage at the top was pulled from the build due to bugs, so the battery is still the stock Gingerbread battery icon)

More... TAGS: Rom android rom for sprint galaxy tab cyanogenmod clockworkmod recovery for sprint samsung galaxy tab gingerbread build rooted android

5 comments (View)Share|[Post a Comment]

3D Web-Based Cube

Below is a 3D cube being rendered in real time by your browser, assuming you have a later version of Chrome or Firefox. (IE might work too). This is written entirely in Javascript and therefore requires no plugins. It is using a library called Three.js which leverages a Javascript API called WebGL.

Blood Alcohol Calculator

I wanted to use one the other day. Some sites were riddled with ads, and other sites had calculators that didn't work correctly. I decided to create my own. A drink is defined as a 1.5 oz shot of 80 proof liquor, a 12 oz beer, or a 5 oz glass of wine.

Debloated Droid 4 ICS Leak

Yesterday I installed Verizon's latest ICS leak on my Droid 4. DroidForums has an excellent thread with instructions on flashing from stock Gingerbread up to the ICS leak (and keeping root):

I haven't found any bugs in the leak. It seems solid all around. As with most stock builds, it contains an alarming collection of bloatware. I used Titanium Backup Pro to freeze these components. I also replaced the Messenging APK with an AOSP version. I listed the stuff I froze below. These apps and services are either worthless, not free, duplicate functionality that already exists on an Android phone, designed to gather info on how you use the phone, or have better counterparts in either AOSP or Market. I have done a thorough amount of testing with these frozen/removed and can confirm the phone works just fine (and much more quickly) without them. Initially I did remove some components that affected the functionality of the phone, and had to bring them back.

  • Apps
  • All 5 Backup Assistant components (Google can back up contacts automatically)
  • Data Collection and Data Collector Service
  • DLNA and DLNA System Service
  • Facebook (keep if you use FB)
  • Facebook Authenticator (freeze even if using FB)
  • Flickr Authenticator
  • Google Play Books, Movies, and Music
  • Google + (keep if you use G+)
  • Guided Tours
  • Help Center
  • Kaixin001 Authenticator
  • MOG Music
  • MotoActv
  • Motocast
  • MotoCastID
  • MotoEmailConfig
  • Music Store
  • Music Visualization Wallpapers
  • My Accounts
  • My Files (load AOSP File Manager instead)
  • My Gallery (load AOSP Gallery)
  • My MotoCast
  • My Music (load AOSP Music)
  • My Uploads
  • NFL Mobile
  • Orkut Authenticator
  • Photo Editor
  • Photobucket Authenticator
  • Picasa Authenticator
  • Slingbox
  • Smart Actions
  • Smart Actions FW
  • Social Location
  • Social Sharing
  • Talkback
  • Tasks
  • V CAST Tones
  • Vehicle Mode
  • Verizon Remote Diagnostics
  • Verizon Video
  • Video Calling
  • Video Editor Lite
  • Video Surf
  • Voicemail
  • VZ Navigator
  • VZW Package Installer
  • Weather, World Clock
  • Youtube Authenticator
  • ZumoService

1 comment (View)Share|[Post a Comment]

Windows 8

Definitely a step down from Windows 7. Microsoft is trying to take something that's used for production (a desktop) and force a tablet (consumption) interface onto it. The result is a clunky, powerless, resource hog that is 180 degrees from intuitive. I couldn't even figure out how to turn off the PC. I ended up "upgrading" to Windows 7.

6 comments (View)Share|[Post a Comment]

New Site Server

Due to all the limitations of Godaddy's economy hosting account I have set up my own web server and database and migrated the site over to them. The site is still somewhat buggy as there have been a lot of changes and upgrades to the hardware and software running it.

The site is now running on the .NET 4 framework and a SQL Server 2012 instance, rather than the outdated SQL Server 2005 offered by Godaddy.

9/5/12 - For the most part I think all the issues have been fixed and everything is running smoothly. It's nice to have everything on my own server.

1 comment (View)Share|[Post a Comment]

Put Your Old Android to Use

Site Cleanup

A lot of the content on the site had become outdated so I fired up SQL Server Management Studio and gave the database a major haircut. All posts and comments have been deleted unless they were not archived and part of the Tech blog, or they were very recent.

Circuits I've Recently Built

I helped a friend design a USB amplified audio dock for his Samsung Epic 4G:

The other day I constructed a traffic light circuit. The way I did it was to set up an NE555 timer IC that fed into a 1 transistor NOT gate. This created a positive clock circuit. I fed that into a 4017 decade counter. The LEDs were then connected from 0-9 on the 4017. The yellow light only got 1 pin, and as a result only stays lit for a short time. The only drawback to this design is that I had to place a diode on each of the 10 outputs on the 4017 IC to stop current from flowing backwards when the output was inactive and low.

This is only one light. If I wanted to add a light for the other "street", I could feed the 4017 output into some additional logic gates.

VB vs. C#

I thought the following article was interesting and tend to agree with the author.

Change MC Extender Skip Interval

I have my Xbox set up as a Media Center extender and the backward skip interval of only 7 seconds was too short.

The extender skip interval can be changed, but has to be set via a registry change on the PC serving the extender.

windows media center
  • Turn off the extender.
  • Log into the PC hosting the extender
  • Open Control Panel - Folder Options and uncheck "Hide protected OS files"
  • Locate the user account name that the extender logs in with. Look for a folder located in c:\Users with the format: Mcx[Number]-[MachineName]
  • Run regedit.exe, highlight HKEY_USERS, and click File - Load Hive. Browse to the user account and select NTUSER.DAT
  • Give the hive a key name, such as the extender user name you found earlier
  • Under HKEY_USERS, expand your newly added key and navigate to: Software/Microsoft/Windows/CurrentVersion/Media Center/Settings/Video Settings
  • Set a decimal value of 12000 on InstantReplayInterval to set a 12 second skip back. SkipAheadInterval determines the skip ahead amount.
  • Highlight HKEY_USERS and go to File - Unload Hive. Fire up your extender and verify the new intervals.

Having problems? Post below and I'll try to help you out.