Mario and iPhone 7…Pokemon and Apple Watch

Apple had its September press event to announce Apple Watch, Series 2, iOS 10 and iPhone 7.  But, perhaps the biggest thing announced at the event was a game.

Early on in the event, Tim Cook said that there were over 500,000 games in the app store, but that one had been missing. Rather, one character had been missing…MARIO. And, with that, he introduced Shigeru Miyamoto, the creator of Mario.

Mr. Miyamoto explained the new game while a demo was being played on the big screen.  This Mario game looks and sounds like a Wii U game, but is controlled via touch on the iPhone or iPad.  You use a single finger to control Mario’s jumps…the longer you hold your finger down, the higher he jumps. 

While the game looked great, the game play is like a neutered Super Mario Brothers 2D side scroller. Neutered in that it appeared that Mario only goes in one direction in single hand play.  The goal is to collect as many coins as you can and raise the end of level flag, before the time runs out. 

More importantly, the game will NOT be a ‘freemium’ game in the traditional sense. You only pay one time, there are no in game purchases.  There’s no having to wait two hours for your lives to replenish.  It is a nice change from the current game mobile game model.

Now, for the other announcements, and I’m not going into detail as it has already been covered else where.

Apple Watch 2 will be out in September and will be faster and more responsive.  Oh, and Pokemon GO! is coming to the Apple Watch.  With some health monitoring additions, this looks pretty decent.

iPhone 7, though, is what I am more excited to talk about. 

Now, before I go on, let me say that I am still not an Apple fan and I LOVE my Windows Mobile 10 phone(s). 

So, what has me excited about the iPhone 7?  Well, even though it isn’t a huge, earth shattering advance in mobile technology, the camera, faster processor and MICROSOFT have me excited for the new iPhone. 

The iPhone 7 will feature a new image sub system, new API’s and better optics. In addition, iPhone 7Plus, the phablet edition, will feature TWO 12 mp cameras in addition to the front camera.  The new image processor enables the phone to record in 4K video as well.

Here are some of the nice new photo related features, from Apple:

  • New Apple-designed Image Signal Processor, which processes over 100 billion operations on a single photo in as little as 25 milliseconds, resulting in incredible photos and videos;
  • New 7-megapixel FaceTime HD camera with wide color capture, advanced pixel technology and auto image stabilization for even better selfies; and
  • New Quad-LED True Tone flash that is 50 percent brighter than iPhone 6s including an innovative sensor that detects the flickering in lights and compensates for it in videos and photos.

Iapple-iphone7plus-zoomn addition to the photo features, Microsoft’s entire suite of apps that are on the iPhone mean that I can continue using my Microsoft services and apps with my Windows 10 desktop just as seamlessly as I can, now, with my Windows Mobile phone.

There are other things, like the subtle changes to iOS and to the phone chassis itself.

There are things I don’t like, such as the removal of the headphone jack, inability to upgrade storage via SD card, no way to project the phone to another screen (at least, I haven’t seen this) and the lack of home screen tiles…a feature I’ve really grown to love on my Windows Mobile phone.  In fact, the lack of live tiles is almost a deal breaker for me. Almost.

For now, I am on the verge of mothballing my Windows Mobile phone and going Apple again.  I’m going to have play with one for a bit.   But, today’s announcements look encouraging.  Of course, if I wait a year, I may like iPhone 8 more…

Advertisements

64 bit graphical hand held

I read a post on Hackaday about a ‘64 bit graphics’ hand held game system powered by the atmel 328…an Arduino Uno like handheld.  Well, the headline was a bit deceptive, the 64 bit part was correct, as there is an 8×8 LED matrix being use for the ‘screen’. 

WP_20160702_03_18_57_Pro (2)This is actually something I had toyed with building for quite a while now.  I had seen several (Super Pixel Brothers being the first) and, after seeing this particular build, I thought…why not?  I have a lot of those matrices lying about, so I took my last unbuilt matrix (it was a ‘kit’) and used it as the basis of my console.

I used my previous handheld build as the basis for this one, which was also very similar to the Hackaday build.  I guess there aren’t many different to do this.

My build has four buttons: Reset, left, right and action.  I deviated from the article’s build and used a battery pack that has three AA batteries.  The unit ran nearly 24 hours on those three batteries.

While I have the hardware complete, I am working on software. The article’s build has six games: space invaders, pong, racing and three others.

So, I now have a piece of nice hardware and nothing running on it.  I’m thinking about adapting the Super Pixel Brothers to the handheld or doing a Space Invaders type game.  Not sure yet. Heck, I WP_20160630_21_10_14_Promay just put several pre-programmed messages and use the buttons to select them. 

What would you do?  Thoughts on software/games?  Leave them in the comments below.

 

Link to the Hackaday article: http://hackaday.com/2016/06/25/this-arduino-console-has-64-bit-graphics/

Half-Byte’s handheld and more

Windows Phone 038In previous posts, I’ve written about developing a handheld gaming console.  While it is not yet complete, the console now has a case and a controller.  Finishing touches to the hardware will include a new bezel, battery compartment and screen mount.  I used an original Gameboy case from 1989. Don’t worry, nothing has been cut and I kept the electronics.  I got it off of eBay for about four dollars. It was as a broken unit, though the seller says it did work ‘once in a while.’ I purposefully bought a broken unit as I could not bring myself to rip apart a working Gameboy.

When the unit arrived, it was well worn, so I cleaned it up, dismantled it and painted it metallic black.  Finding Testors model car paint locally was as hard as finding the micro female HDMI connector for my Raspberry PI Laptop. I also clear coated the case once the paint had dried.Windows Phone 008

Fitting the handheld in the unit was a bit tricky, but it does fit, although I have to do some work with the screen mounting.   I was also able to use the d-pad and one of the two red buttons. The other three buttons will be either for expansion or, likely, I’ll just fix them in place for looks. Not sure yet.

The result is going to be pretty nice, albeit large for today.  I knew the old Gameboy was huge, but I forgot just how big they were. The main board uses surface mount parts, which kind of surprised me. I know the original device was based on the Zilog Z-80, but, looking at the board, there is a custom Nintendo CPU chip. I’m guessing it has a complete Z-80 as well as whatever custom pieces parts that Nintendo put in. At any rate, it is the perfect size for the somewhat retro handheld that is going in the case.

WP_20131219_001The specs for the handheld are, indeed, retro: 2K of RAM, 8K of ROM, 84 by 48 monochrome graphics, a vintage ‘90s cell phone screen, vintage ‘80s case…Mario style side scroller game.

When test fitting the two boards in the case, I realized that my custom controller almost fit the button layout. Only one button needed to be moved and that was the action button. So, rather than desoldering the existing button, I cheated and added a separate button and mounted it so it was under the ‘A’ button. I reused the speaker that came with the Gameboy, since it fits perfectly. I have added a power switch and a reset button that is accessible through one of the small holes on the side of the case. Now, since the handheld will not have every connector and switch that the Gameboy had, there will be a few open holes on the side and bottom of the case. I may fill them but, will probably just leave them alone for now.  I do plan to upgrade the screen at some point, so I may revisit the holes then.

This project has inspired me to go a bit further and design something from scratch.  I have a PC Board designed and am building the prototype from that design. The board is a bare bones Arduino UNO without the expansion connectors. It will feature audio and video connectors, a Wii Nunchuk/Classic Controller connector, optional PS/2 keyboard connector and be based on the same Atmel328 processor that the UNO uses. The design is super simple and is designed for games and learning to program.  I am also considering the same treatment for the handheld. I have modified the Tiny Basic code to include things like primitive string handling, limited graphics and memory saving shortcuts for several statements and functions. There is also a beginner’s guide in the works.

Stay tuned for more on this.

Real do it yourself computer using Arduino or…how to make your own game console

IMG_3043Ever since I was a kid, there were two things I’ve always wanted to build: a computer and my own video game ‘console.’ Now, I grew up in the seventies and eighties, so both of these things were pretty crude, some even crude when they were new (RCA Cosmac, I’m looking at you!) While in the intervening years, I did ‘build’ both, I cheated in doing so. With the computer, ‘building’ one was simply buying premade cards and a motherboard and installing them, hardly building one. With the video game ‘console’, I assembled a ‘pong’ style game from a kit (which I wrote about here.)

Now that I have discovered the wonderful world of microcontrollers, I can, finally, actually build both of them.mk121pal

Today’s microcontrollers are as powerful, if not more so, than yesterday’s microcomputers. For instance, the ATMega 328 is every bit as capable as the 8080, one of the mainstays in the 1970’s. Because of this, you can build real computers that are very small and require little power. They also require substantially fewer parts to work and be useful.

While I am no electronics engineer, these chips are simple enough for even someone like myself to design and build a working computer that can, subsequently, become a game console.  Companies like Adafruit, iConstrux, Spark Fun, Arduino and others all have components that are geared toward these nifty little devices. Adafruit, for example, sells the Nunchucky, which is a tiny little board that allows you to easily interface a Nintendo Wii Nunchuck controller. These controllers are, themselves, very cool and underrated. They feature accelerometers, a joystick and two buttons and are easily read by these little processors. And, with the Nunchucky, you do not need to cut its cable.

IMG_3070While it is old news, it is new news to me…the Arduino’s are capable of limited video generation and, hence, limited graphics. Now, while the graphics ability will never threaten nVIdia or AMD, they will give the aforementioned RCA Cosmac a run for its money. 

Armed with this knowledge, the Nunchuck/Nunchucky, some basic soldering skill and enough knowledge of electronics to be somewhat dangerous, I have set out to build that computer/game console.

I am actually doing two consoles: a handheld for my stepson and a somewhat more capable one as my exercise in designing and constructing said system. The handheld will utilize a small joystick, a Nokia 5110 LCD and a speaker in addition to the Mega328 Mini Pro.

Unfortunately, I ordered a great deal of my parts from eBay and just about all are shipping from China, apparently by foot as they have not all arrived.

IMG_3041However, since my Uno did arrive, I’ve been able to design and build the Half Byte game shield and start working on a prototype game, based on the Super Mario games. No, the game will not be made public, but, perhaps, a modified version with different characters may be. I do not have license to distribute any copyrighted material from Nintendo.

The game shield currently features the audio and video out connectors, the 1kohm and 470ohm resistors that allow the video to work (along with a library for the Arduino), the Nunchucky board, Arduino I/O pins and the header for the Parallax Serial LCD (which uses digital pin 2.) I may add digitized sound output as well and, perhaps, blinky LED’s and support for my custom three button controller.

arduinovideoThe tricky thing with the video is that it is all handled by the processor. The resistors ‘fool’ most televisions into ‘thinking’ there is a legit video signal. The 1k resistor handles the sync while the other handles the video itself. It was very easy to do and only involved the sacrifice of one video cable (and, since then, I acquired actual connectors so I can use better cables.)  Because the processor does all of the work, and has a very limited memory space (2k of ram, tops) the resolution is a paltry 120×96, though I had to back it down a bit to about 100×96, I needed a bit more ram. There is a common library, called TVOUT, available that most people use, though a few have written their own. The common library provides for three different fonts, lines, circles, inverse video and other niceties. It also can display bitmaps, though they MUST be correctly formatted and converting a bitmap for use is a bit of a pain. You must first resize the bitmap to fit the tiny screen, then you have to save it as a monochrome bitmap, process that file through another program that creates the hex codes that go into an array in the Arduino PROGRAM memory (NOT RAM, but the Flash memory that stores your code.) I’ll post more instructions in a later post.

proto Mario 1So, once I got the video and audio up and working, I played around with some code. First, the TVOUT demo then my own code. The TVOUT demo is pretty cool with a nice rotation sequence. It also displays the bitmap for the schematic to generate the video, an interesting inclusion.

My ‘mario’ game began as a demo. I wanted to move an image around, controlled by the Nunchuck. I wanted to use Spongebob, but I could never get him to look right in such low resolution. Now, how damned hard is it to represent a SPONGE? UGH.  Mario looked much more recognizable and that’s what I went with. Once I had my bitmaps done, moving them around was easy.  I now have Mario, a Koopa Troopa and a Warp Pipe in my level.  I am using another game called Poofy for some direction. Poofy is a side scroller for Arduino that uses some interesting methods and code that are in the public domain (and developed by the people who brought us Hackvision, an Arduino based console similar to what I am doing.)

My next step with the game is a scrolling world, Mario’s ‘weapon’ and a story.

I will be documenting the process, so stay tuned!

For quicker updates, follow Half-Byte on Facebook.

Links:

XGS PIC development with XGS Basic-getting started

xgs_pic_03Writing in XGS Basic is a task, but the results, when run on the XGS, can be satisfying.  However, the process is a bit cumbersome and the language is incomplete and the documentation was never finished. However, the source code is freely available, so there is a way to fix some of the issues. I am not, however, ready to tackle that just yet.

No, instead, I thought I would share my process for writing and then executing code from XGS Basic on the XGS.

First, you’ll need a good programmer’s editor and one that, preferably, understands BASIC.  I am using Notepad ++.

You will also need a micro SD card, which came with your board OR you can use the Serial port on your computer and the appropriate cable plugged into the board.  I do not have a physical Serial port on my desktop, so I have a USB to Serial cable. However, Windows 8 does not support the cable. I have to use the SD card method.

Next, you’ll need the XGS Basic package.  You can download from the XGamestation web site, but it is on the DVD you got with your board.  Unzip the 1_5 version to a location on your computer and fire up that editor.

Compiling your code and running it:

  1. Open up a CMD window, you will need this when you compile.
  2. Write your source in your favorite editor and save it to the XGS Basic directory where you unzipped the package. 
  3. Switch to the CMD window and type: basicVM <name of the source.BAS> and then hit ENTER. (Where <name of the source.BAS> is your program file.)
  4. Your source will compile, provided you have no errors. If there is an error, you will be told what and where it is. Fix it and compile again.
  5. A successful compile will result in a .bai file being created (And, if you use serial, the .bai file is downloaded and executed on the board.)
  6. If you use the SD card method, copy the .bai file to the SD card and name it AUTORUN.BAI.  Plug the card into the board and turn it on. Your code should execute automatically.

Notepad ++ will allow you to automate the compile part, but I like doing things the hard way. I remember the steps this way.

Getting to know the hardware:

xgs_gamepad1I am, by no means, an expert on this board. I am somewhat new to this board, but have a basic understanding (the manual for the board is superb) of the device and how to use it.  XGS Basic has a few rudimentary functions and statements that talk to the hardware.  The most useful, for games, will be the graphics, of course, and the gamepad. The gamepad uses an Atari 2600 like connector, but is internally compatible with the NES style gamepads.  They are small, but comfortable and somewhat cheap feeling.  Sound is also possible, but I’ll save that for another day.

My introductory exercise was just to interact with the gamepad and draw something on screen, kind of like a rudimentary Etch a Sketch.  Now, before I go on, I have to say that my code is crap. It is but an example of talking to the hardware and not some fine piece of art. That said, take a look at the code below:

// Set the target as bitmap (not tile)
option target = "bitmap"

// ------------------------------------------------------

def paddle_speed = 1

// Gamepad direction defines
def gp_right  = 0x01
def gp_left   = 0x02
def gp_down   = 0x04
def gp_up     = 0x08
def gp_start  = 0x10
def gp_select = 0x20
def gp_red    = 0x40
def gp_yellow = 0x80

// colors
def RED          = 5
def BLACK        = 0

// ------------------------------------------------------
// 
// ------------------------------------------------------
call clear(0)
call text(10, 5, "Draw!")


Start:
    // Check for player input
    buttons = gamepad(0)
    
    // if RED button pressed, clear the screen
    if (buttons & gp_red) then call clear(BLACK)
    
    // go up or down, depending on the button press
    if(buttons & gp_up) then
        player1_paddleX = player1_paddleX - paddle_speed
    else if(buttons & gp_down) then
        player1_paddleX = player1_paddleX + paddle_speed
    end if
    
    // go left or right, depending on the button press
    if(buttons & gp_left) then
        player1_paddleY = player1_paddleY - paddle_speed
    else if(buttons & gp_right) then
        player1_paddleY = player1_paddleY + paddle_speed
    end if
    
    // quit if Select is pressed
    if (buttons & gp_select) then goto NoMore
    
    // if Start is pressed, alternate the color
    if (buttons & gp_start) and pdColor = RED then
        pdColor = BLACK
        else
        pdColor = RED
    end if
    
    // if yellow button pressed, cycle the color
    if (buttons & gp_yellow) then
        pdColor = pdColor +1
        if pdColor > 16 then 
            pdColor = 0
        end if
    end if
    
    // let the system catch up before updating the screen
    waitforvsync
    
    // draw our dot
    plot (player1_paddleY, player1_paddleX, pdColor)
    
    // go back for more
    goto Start
NoMore:
// end

The things to note are:

  • gamepad( 0 )
  • plot(x,y,color)
  • waitforvsync
  • call clear( 0 )
  • call text( x, y, text)

Call CLEAR( 0 ) clears the screen to black and Call TEXT(x,y,text) will display a string at the x,y coordinates on the screen. Simple enough. Now, for the fun stuff.

gamepad( 0 ) refers to the ‘player one’ controller while gamepad( 1 ) refers to the ‘player 2’ controller.  For our purposes today, we only have a player one controller.

PLOT (x, y, color) puts a pixel of color at the x,y coordinates.

WaitForVSync halts execution until after vertical blanking occurs. This should be done before drawing to the screen.

Most of my demo code is made up of interpreting the gamepad, so lets talk about that.

In order to interpret which button the user has pressed, we must ‘AND’ the button press with the value of the button we want to check for, so…here’s the values we need:

// Gamepad direction defines

def gp_right  = 0x01

def gp_left   = 0x02

def gp_down   = 0x04

def gp_up     = 0x08

def gp_start  = 0x10

def gp_select = 0x20

def gp_red    = 0x40

def gp_yellow = 0x80

You can copy that table into your code, near the beginning and before you check the gamepad. The ‘def’ simply tells BASIC that you are DEFining some constant values. Now, remember, you have to ‘AND’ the gamepad return value with the button value, such as:

// Check for player input

    buttons = gamepad(0)

// quit if Select is pressed

    if (buttons & gp_select) then goto NoMore

Notice, we get the current state of the gamepad using the ‘gamepad( 0 )’ function.  It’s value goes into the variable ‘buttons’. Next, we check to see if the user has pressed the SELECT button and, if so, we goto the label ‘NoMore’ and continue execution from there.  Go back and look at the demo code above. Go on, I’ll wait.

Oh, back so soon?  Ok.  Now, if you notice, we check for the directions (up, down, left, right) and the select, start, red and yellow buttons.  Each one has a purpose: the directionals, of course, will change the direction we draw, start will alternate the color, select will end the demo, red will clear the screen to black and yellow will cycle the color (which, does not currently work because of the start button functionality. I’ll fix that in another post.)

See how easy it is to interpret the gamepad?  Next time, we will take a look at some of the graphics stuff and discuss the two modes available (bitmap and tile) in XGS Basic.

New iPhone or Android phone? So, what to do with that old one?

Palm_Pre_SmartphoneIf you are like me, you probably have two, three or more old smartphones lying around, collecting dust. If they are still functional, they are still useful.  I will pull out the old Palm Pre, charge it and use it to play a few games or even surf the web. It has a good browser and I downloaded a fair number of decent games, a couple will even work with the iPhone/iPad counterparts for multi player action (Shrek Racing, for one.)  So, what can you do with those old phones? Well, read on for a few suggestions…

eReader

  • If you have an old iPhone, Android or Windows Phone 7, there is the Kindle app.  There was also a Nook reader app for Android.  There are also a few e-reader apps from other companies that are available on these and other devices like the Palm Pre. There a thousands of free ebooks as well.

WiFi Phone

  • Older iPhones, Android and Windows Phones have Skype clients that will allow you to use that old smartphone, over WiFi, as a phone. Imagine that. You can use it at home and save those minutes on your cell. Carry one for use when near a hotspot in case your phone has poor service or, again, to save those minutes.  (Granted, it could be cumbersome carrying around multiple devices.)

Web Browsing

  • Most older smartphones come with some kind of browser. iPhones, even the first gen, have the sufficient Safari and Android has it’s native browser. Firefox and/or Chrome may also be available. The Palm Pre has an excellent browser and Windows Phone 7’s Internet Explorer, well, it works. 

Games

  • Here’s where devices like iPhone and Android really shine. There are a ton of games out there for both of these platforms. If your phone is powerful enough, this can be a great alternative to the Nintendo or Sony handhelds. Or, like me, why not have them in addition to the Nintendo or Sony offerings? Lots of the games for the smartphones simply are not available for either Nintendo or Sony handhelds.  I still pull out the Palm Pre and play some of those games. Even my old Motorola Q has a few games I like. It had a nice Sim City game. Hmm…where did I put that? Even older, non-WiFi phones like the Palm Centro had some decent games. If you still have it, why not use it?

285389-htc-evo-shift-4g-sprintSecondary Info Screen for your PC

  • Ok, I’m stretching here, but I use my HTC Shift for weather and email as a secondary screen for my PC. I have it connected via USB so it continuously gets power. Right now, I am using the built in apps, so it isn’t a true secondary display, HOWEVER…there is an app called iDisplay which turns your Android device into a true secondary display.  For more, read here and here. There are also other apps like AirDisplay.

Portable Media Playeriphone4

  • iPhones, especially, make decent portable players. An iPhone is, essentially, an iPod Touch with the cell capability. Android, Palm Pre and Windows Phones are all good media players as well.  My Pre came pre loaded with the Amazon player and Androids have the Google Play store. There are tons of apps, for all major platforms, like Pandora and YouTube. This is, next to games, perhaps the best use of these devices.

Digital Camera

  • Nearly all smartphones have cameras. Some are poor, but most of them are fairly decent. The iPhone and Nokia smartphones have excellent cameras. You can keep one in the car or your bag and when the shutterbug strikes, you’ll have at least one camera around.  I know, your shiny new phone has one too. And it probably is better, but on your older device, you’ll have storage that you may not want to use on your new device. They can make good video cameras as well.

Emergency Calling

  • ALL cell phones, smart or otherwise, can still place a 911 call, no matter if you have service on them or not. As long as they are in a cell network, they can place a 911 call. This is an FCC mandate, so if, for no other reason, you could keep one (charges, of course) in a car or your home for an emergency.  The key, however, is to keep it charged up and readily available.

There are, of course, other uses for the phones, these are just a few suggestions. Others include remote control of televisions, cable boxes, Roku devices and more. Calculators, portable databases, USB storage, etc.  My point is that just because you got something shinier and newer, doesn’t mean these older ones are useless.  They even make great mini-tablets for young children. Since they are no longer in cell service, they cannot make calls so why not let them have one for games or Netflix?

Battle for the living room…Apple, Microsoft, Sony and Roku have sharpened their swords, so look out!

The battle for the living room is, once again, heating up. The question, however, is this: does joe and jane consumer really want it? 

For the next battle, we have Microsoft’s XBOX One, Sony’s PS4, Roku, Apple TV and a host of other boxes from Western Digital, Cisco and others. In addition, there’s a slew of cheap (under $100) Android based gaming consoles that, because they are Android, will likely also offer other services in addition to the gaming aspect.

Apple it readying a new release of iOS, iOS 7, that will also run on the Apple TV. iTunes Radio will be a feature of the update to Apple TV as will the new AirPlay. You will be able to stream your iPhones screen and audio to your HD TV via Apple TV. A sly way to give Apple TV yet even more reason to live.

Roku has introduced new versions of its hockey puck player and added gaming in the mix.

Microsoft, of course, has the XBOX One. The One has a ton of entertainment features and on line video features. With the XBOX Video and Music store readily available, plus agreements from Comcast, Warner and Verizon, the XBOX One can replace your cable box.  The Blu-Ray drive will allow the XBOX to play all of those discs in addition to DVD. At $499, it is the most expensive option out there.

Sony, of course, has its PS4. The PS4 is very much like the XBOX One in its feature list, but does not have quite as much to offer in the online arena and there are no deals with cable companies to offer cable programming via the console. What they do have, however, are enough popular services, like HULU and Netflix to keep anyone happy. Plus, the PS4 is $399, less than the XBOX One.

Perhaps the slyest of the sly are those Android based game consoles. I use the term console loosely as some of them look like over sized USB sticks and plug into the TV’s HDMI port.  These things will sport one of the more recent flavors of Android, cost under a hundred bucks and will work with true game controllers. However, since they are Android, that means they will be offered with minimal entertainment choices (perhaps Netflix and/or Hulu) or will be easily hacked to do so. I suspect these little boxes or sticks will gain a lot of traction because of the price and the fact that Android is the most popular phone platform.  And the games…the games are familiar and many, if not most, are free to play. Who wouldn’t want to play Candy Crush Saga or Plants V Zombies on their HDTV?

This will all boil down, however, to one thing: adding one more box to the TV.  Microsoft is betting that its offering will replace two or more other boxes. Same for Sony. Apple just wants its ‘hobby’ to mature. And the others? Those could be the ones that actually make it. Roku is very popular, but still not a household word, yet I think it stands a better chance of succeeding where Microsoft, Sony and even Apple will not. My five year old step son figured out how to use Roku in a matter of minutes. Most of the similar products are just as easy to use. They have to be.

Personally, I am amazed that the public were convinced enough that they needed some kind of video player/recorder and a video game console to the TV. The ease with which people accepted these devices will, surely, not be duplicated.  Even though HDMI is just ONE cable, people now must remember to hit the HDMI source button on the remote to ‘switch’ to that device. If the set has more than one, then that’s a real problem for many, who are easily confused and just want ‘channel up’ or ‘channel down’.  (By that same thought, Microsoft was smart to incorporate the HDMI passthrough for cable boxes.  The IR blaster part, however, could cause other problems.)

We’ll see how this battle plays out. We are in the early stages, so…take cover and keep your eyes open. The battle lines have been drawn.