Home arrow Games arrow Small introduction to the Neogeo Pocket handheld
Small introduction to the Neogeo Pocket handheld
Written by Bastiaan   
ImageThis tutorial series will be about programming for the NeoGeo Pocket Color. I'll be talking about the system (ie. hardware) and what it expects from you. And of course what you can expect from the hardware for all your hard work :-). Most of the coding will be done in assembly. Though I'm also working with a C compiler, I don't think I'll use it since the most important parts are done (easier) in assembly anyway.

What you'll need

I use the following for my NGPC programming activities. These I will also use in the tutorials.
That's all you need. Of course to really test your ROMs you'll need to run them on the hardware itself. For that you'll need the Pocket Linker. I really recommend to have one (16Mbit is large enough), nothing is more fun to have your own code run on the realy thing!

The hardware

I'll start with a quick overview of the hardware. In the next part I'll give a more indepth overview of what the hardware is about.
Image
The Neogeo Pocket Color

The main processor is a TLCS-900h from Toshiba which runs at 6.144 MHz and can be regulated to run at 384 kHz. It has 11KB of RAM available which is entirely at your disposal. There is another 16.5KB of (V)RAM accessible for you, but for that part the hardware has strict expectations of you. It is used for the following: characters/tiles, sprite definitions, palettes, sound and 2 scroll/backplanes. It also has 64KB of ROM which contains the system (booting, bios, calendar/alarm functions).

The games/programs are stored statically in a cartridge or 'software cassette'. The NGPC is capable to address 2MB of memory in a cartridge. If a cartridge has more capacity, the hardware has to switch over to another bank for every additional 2MB. If available in a cartridge, you can use flash memory to save data on the cartridge.

For sound the NGPC uses a Z80 from Zilog which runs at 3.072 MHz. It is capable to play 4 sounds simultaneously which are 3 tones and 1 noise channel.

The screen size of the LCD is 160x152 pixels which can display a maximum of 146 different colors simultaneously on the screen. The number of sprites it can draw on one (pixel)line is 64. For each sprite you can choose from 512 tiles (which you can store into TileRAM) and 16 palettes. Each tile can have at max 3 different colors (actually 4 but 1 is always transparency) for each of the 8x8 pixels. The same tiles are also used for the 2 scrollplanes. These scrollplanes are larger then the screen itself: 256x256 which makes them sort of virtual-screens. Each scrollplane has also 16 pallettes to choose from for the tiles.

What's next?

In the next part I'll give a layout of how the NeoGeo Pocket Color works, the "memory map", interrupts and other system information. Most of this information is already available on the net (some of it you might already have), but all the documents I got my information from will be provided/referenced in the 'links' section of this NGP tutorial.

And download all the sourcecode you can. Not all of the projects are documented equally good (or not at all :-), but it is still very usefull to examine (or even use (credit!)) code of someone else.
Last Updated ( Thursday, 14 July 2005 )
Username

Password

Remember me
Forgotten your password?