|
Small introduction to the Neogeo Pocket handheld |
|
Written by Bastiaan
|
This 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.
 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 )
|