From the first thoughts on this project, I knew there needs to be an LCD on the gaming console. It's something that I've never seen before on one, but think it would add so much to the overall look of the system.
It's not a simple task by any means to incorporate an LCD screen and means working out how to control the GPIO through ubuntu, but it becomes more difficult thinking about the information actually displayed. What's going to be written on it?
The easiest messages to display are "booting up" and "closing down", maybe temperature data, fan speed, time, volume and the usual things on a computer based LCD (they're not overly common but I've fitted a few in the past). But I really want it to be a bit more interactive with what's going on in the system as well.
If its going to need to display the time when the console is powered off then do I need to have a separate controller for it? If so should I start working on an I2C bridge controller to control the display and allow it to keep powered up but dimmed in standby mode? Extra scripts would be needed to synch the system clocks together. choices choices...
At the minute, I'm looking at launching the games as individual xsession's from the login screen without any desktop environment. If I go in this direction, there should be an opportunity to write a configuration script for each game in Python based around a universal template. Rather than launch the game directly, it would be the script that gets launched that opens up more interactivity as demonstrated below:-
1) A list of games displays on the login screen or in a custom menu
2) An initialisation Python script sends a welcome message to the LCD
3) User selects game from a list.
4) A Python configuration script executes
5) The script sends a "loading.. please wait" message to the LCD
6) The script starts the game as a system task
7) Once ready, the script displays the name of the game on the LCD
8) When the game closes, the script sends a closing message to the LCD
9) The script exits once the system task has exited
10) return to the menu / log in screen
If there's any other information that can be syphoned off with Python then I'll see what I can do with it.