The software on a video-game system is more than simply the game or games that can be played on it. Software is necessary for the microcontroller to communicate and control each of the components of the system, often known as drivers. Software is also needed to determine which drivers to load and when to load them, in the Pac-Man on the Go system this will be done by a bootloader, in other systems this could be done by an operating system. The game software is a high level software application that uses the tools provided by the drivers and bootloader to actually run the game.
Creating Software for small portable systems (embedded systems) can be much different that other types of software development. WinARM is a GNU tool that includes C and C++ compiler which allows code to be compiled from a windows environment then transported to the ARM-Controller. For more information on this product see the section entitled WinARM.
When programming it helps to have a good environment to do it in. A programming environment often provided access to a text editor, compiler debugger with a single unified user interface. Programmers Notepad is a free tool that the author chose as a coding environment. Programmers notepad can be configured with plugins that allow use of the WinARM gcc C/C++ compiler. See the section entitled Programmer Notepad for more information on this tool.
The LPC2418 provides some built in USB support. With one on-board USB connection the system needs to be able to behave like a USB drive or to read input from a USB controller. Loading the correct driver will be done by a bootloader which is explained in the section LPC2418 bootloader.
The LCD screen will be controlled by a serial data connection from the microcontroller. This type of operation is hardware dependent and requires low level code. The process of wrapping this functionality into a module of code will be discussed in the section, The Nokia 6100 Display Driver.
The input driver software will be discussed in the sections entitled Accelerometer Driver and USB Gamepad Driver.
Finally the game software and design will be described by the section Pac-Man Software Design and Implementation.