*******************************************************************************
** _____   __   .    __      _  __   _    _   ___                   _____    **
**   |    /  \ /|   /__     /  |  \  |    |  /   \ 	           /    /    **
**   |   |  __  |  /   \   /   |   | |    | |     |               /   /_     **
**   |    \__| _|_ \___/ _/    |__/   \__/   \___/ 	         /__   /     **
**  ___    _      ___  						   / /	     **
** |__    / \    /   \ 		Compiled by John Yu               //	     **
** |     /___\  |   \ |		Email: jky@csa.bu.edu	         /   	     **
** |    /     \  \___\ 		Last revised: 05/25/95		             **
*******************************************************************************
** The source of information for the TurboGrafx16 and DUO video game systems **
**             Email any comments/questions to jky@csa.bu.edu                **
*******************************************************************************

ACKNOWLEDGEMENTS: Thanks to Ken Arromdee (arromdee@jyusenkyou.cs.jhu.edu)
		  and Steve Pearl (pearl@remus.rutgers.edu) since alot of
		  the stuff in this FAQ were borrowed from their own FAQ's
                  based on the same subject matter. :)
		  Thanks to Bt Garner, the Turbolist, and everyone else who 
		  have contributed to the FAQ :)

Information needed:
-- The TurboExpress and TG-16 information are inconsistent in CPU and Mhz.
   What's the deal? :)
-- Joystick pinouts.
-- Why does the TG16CD have two different AC adaptors?  (See Section 4.B)
-- What's the difference between the Coregrafx I and II?
-- Info about TG programming.

Additions/changes since last posting:
-- AC adaptor ratings  (See Section 4.B)
-- An excerpt about TG16 Programming  (See Section 4.G)
-- TG16/Duo Game Scoring Contest  (See Section 8)
-- Save game FAQ.  (See Section 8)
-- A few FTP sites to check out.  (See Section 8)

------------------------------------------------------------------------------

=========================
Contents
=========================

	1  TTI
	2  TG16->Duo Lineage
	3  PcEngine+Compatibility
	   A: The Machines
	   B: The Games
	   C: The Accessories
	      -PcEngine->TG16/Duo Adapters
	      -PcEngine and TG16/Duo Controllers
	4  Technical/System Specs
	   A: Machine Specs
	   B: AC Adaptor Ratings
	   C: PcEngine/TG16 Hucard pinout
	   D: TG16/Duo and 6-button button joystick techs
           E: TG16->Duo joystick converter cable pin-out
	   F: Technical Questions Answered by Nimai Malle
	   G: An excerpt about TG16 Programming
	5  Other Frequently Asked Questions
	6  Magazines
	7  Shopper's Guide
	8  Other Sources of Info

=========================
1  TTI
=========================
o What is Turbo Technologies and what happened to NEC?
	NEC had joined forces with Hudson-Soft to form a new company called 
 	Turbo Technologies.  TTI hasn't done very well in marketing Duo, and 
        as a result, they are no longer in business.  Turbo Zone Direct has
	risen from the ashes of what was TTI.  TZD is no longer distributing 
	hardware and is concentrating on selling software through mail order.
	TZD has promised to continue to port over Japanese titles, and is also
	selling the back log of NEC & TTI games.  The Duo is available on 
	clearance from retailers at the price of $100 and the TG16 base unit 
	can be found for $20-$40.  New software plans are slow to non-existent
	but there is still alot of US software out there if you're a new user.
	If you're a TG16 oldie like me, the only solution is the still strong 
	Japanese market of PcEngine games.  See Shopper's Guide section for a 
	list of distributors.


=========================
2  TG-16 -> Duo Lineage
=========================

Back way back when, NEC entered the 16-bit generation US video game market
by promoting the TG16,TG16-CD, and later the TurboExpress portable.

TurboGrafx-16:  -This base unit plays only Hucards (thin, credit-card sized
		 cartridges)
		Assessories:
		1) TurboTap: adaptor allowing 5 player capabilities
		2) TurboBooster: attaches to TG16 expansion port to allow
				 A/V cable hookup to TV/Stereo
		3) TurboBooster Plus: same as TurboBooster but allows
				      Hucard game saving on those games
				      which support the feature

TurboExpress:	-A portable handheld system equivalent to TG16
		-Plays only Hucards
		Assessories:
		1) TurboVision: TV tuner attachment
		2) TurboLink: Connects two TE's together to allow 2 players*
			      * only works for games which support this feature
		3) Car Adaptor
		4) AC Adaptor

TG16-CD:	-Comes as a CD attachment for TG16 base unit.
		-CD plays audio CD's, CD+G's, and CD-ROM2 games (The "2" in 
		 CD-ROM2 supposedly refers to CD operating system version 2)
		Features:
			-Adds A/V output and headphone jack
			-CD can be removed for use as portable
			-On screen display to play audio CD's and CD+G's
			-game save battery feature

		-With the Super System Card (system version 3) upgrade, plays 
		 also Super CD** games for the DUO.
		 May be still available from TTI/TurboZone for $65 alone
		 or $95 along with 3-in-1 CD containing Gate of Thunder,
		 Bonk1+2, and bonus Bomberman game (see Shopping section)

After a few years of lack-luster marketing by NEC, NEC joined forces with 
Hudson-Soft in forming TTI to promote the DUO and the Super System Card
for the TG16-CD.

DUO:		-The TG16's successor
		-Super CD system 3 built in
		-Plays audio CD's, CD+G's, CD-ROM2 and Super CD** games as
		 well as standard Hucards		 
		Features:
			-Faster access time than TG16-CD unit
			-slimmer design than TG16-CD but no LCD on unit
			-A/V output and headphone jack
			-On screen display to play audio CD's and CD+G's
			-game save battery feature


	** Super CD:	Using a revised BIOS (Operating system) and more 
			memory (64K upgraded to 256K), Super CD games run
			faster because of less access time and have better
			graphics due to the increased memory.
			Only Super CD games take advantage of this extra
			memory.  There are some games which are compatible
			with both System 2 and 3 but will take advantage
			of System 3's extra memory when it is present.

Arcade Card:	-Probably the final expansion for the PcEngine/TG16/Duo
		 There are no plans to release it or any of its games in the 
		 US.  Using this card, memory is expanded to 2MB.  The more
		 memory, the better right? :)
		-There are two versions of the Arcade card depending on
		 the type of system you have:
			1) Arcade Card Duo: for Duo based systems
			2) Arcade Card Pro: for non SuperCD based CD systems,
			   		    it includes both the SuperCD 
					    operating system and the extra 
					    memory on the card
		-If you have a US machine, you have to use a HuCard adaptor
		 for it to work on your machine.
		-Most Arcade Card games are Neo-Geo fighting game ports.


=========================
3  PcEngine+Compatibility
=========================

A: The Machines:
----------------
PcEngine Shuttle:  Japanese counterpart of TG16 but without CD expansion
		   capabilities.  Plays only Japanese HuCards.

PcEngine/CoreGrafx(I/II)/Duo(R):  Japanese counterparts of TG16/Duo.
				  The Coregrafx models are just remakes of
				  the original PcEngine with A/V output instead
				  of RF.  The Duo-R is a toned down Duo 
				  without headphone jack and RF output 
				  (A/V output only).

Supergrafx:  No US counterpart.  (The Supergrafx is an enhanced PC Engine and
	     can play PC Engine games without modification.)  There were only
 	     five games produced exclusively for this machine to take 
	     advantage of its extra muscle power.  It could be attached to the
	     old PCE-CDROM expansion unit with a separate interface unit.

PcEngine GT:  Japanese counterpart of the TurboExpress, and runs PcEngine
	      HuCards.  To play PcEngine HuCards on TurboExpress, use
	      the same PcEngine->TG16 adaptor.

B: The Games:
-------------
HuCards:	1) PCEngine on TG16/Duo:
		   HuCard games aren't compatible, but you can buy adapters 
		   for $20-30 through many mail order places.
		2) TG16/Duo on PCEngine:
		   There is a hardware difference between the two machines 
		   which HuCards can read.  Most TG-16 HuCards check it,
		   and won't work on a PCE even with an adapter.  
		   (Exception: Night Creatures works.)  

   Note:	A Japanese Super System Card can be used with an American 
		TG16-CD using a PCE->TG16 adaptor.

CD/SCDs:	All known CDs work both ways without any extra hardware, except
		a few SCDs which come with an extra Hucard for more memory.
                These SCDs require the built in operating system of the Duo.
                (Tough luck for those with the original TG16 or PcEngine CDs.)

   Note:	Altered Beast CD does not work, but that's because of an 
		incompatibility with the older CD System 1.0; it won't work
		on a PC Engine 2.0 or SCD either.

Arcade Card:	Only available on PcEngine.  Requires PcEngine->TG16/Duo
		adaptor to work on US machines.  Arcade Card Duo is for
		Duo machines.  Arcade Card Pro is for machines without
		SuperCD System built in (i.e. TG16-CD).

C: The Accessories:
-------------------
PcEngine->TG16/Duo Adaptors:
	-Some existing adapters, namely the WH-301 purple adapters, aren't 
	 shaped to fit in a Turbo Duo or Turbo Express without some 
	 modification.  It is also suspected that the WH-301 will not work at
	 all with the LaserActive machines.  There are three solutions:  
	    1) Find one that fits.  There is a "Kisado" type adaptor made in
	       part by FAQ contributor David Shadoff.  This is a streamline 
	       adapter that fits well in TG16/TGExp/DUO machines without any 
	       modification.  Here's a schematic of it (not drawn to scale):

	+------------------------------------+_+----+#######+   Top View
  	|======                                     |#######|
  	|======                                     |#######|
  	|======                                     |#######|
  	|======                                     |#######|
  	|======                               _     |#######|
  	+------------------------------------+ +----+#######+

	<-- Machine End                        HuCard End -->
                                   
	                                              ------\  Side View
           	                                      ______|   
	=======-------------------------------v-------------/
					      
					      ^---Notch for power switch

The card itself is about 75% longer than a standard HuCard, and when
a HuCard is placed in, it leaves about .5 cm between the HuCard and the
machine.

If you are having trouble with the 301 type adapters, then you may want 
to track down one of these beasts.  They are currently being re-manufactured
because of recent interest in them.  Contact David Shadoff (daves@interlog.com)

	    2) remove the HuCard door off of the Duo
	    3) Do some careful cutting on the WH-301 adaptor:
	       (Some mail order places may have this done for you)
	       Before:	    ------------   After:	____________
			    |          |		\	   |
		    ________|__________|         _________\________|	

                    <-- Machine End

PcEngine and TG16/Duo Controllers:
	-American Duo controllers are the same PcEngine controllers; they both
	 have 8-pin mini-din connectors while the TG16 uses the larger 8-pin 
	 dins.

	-To use a Duo/PcEngine controller on a TG16, or vise-versa, you can 
	 either:
	1) Obtain an adaptor.  TTI supposedly makes TG16->Duo cables and
	   mail order places like Buy-Rite make Duo->TG16 cables.
	   (See also TG16->Duo joystick cable pinouts in Section 4.D)
	2) Open up a DuoPad and a TurboPad and switch the internal plugs of
	   each controller.  Make sure both the internal plugs of each 
	   controller are the SAME type of connectors and that the wiring 
	   order are the same.  As far as I know, there are two types: a thick
	   blocky one and a thin one.  This technique would be useful, for 
	   example, in turning a PcEngine 6-button pad into a TG16 6-button 
	   pad.  You will end up with a spare Duo/PcEngine 2-button 
	   controller.  
	   Note:  Supposedly, this technique can apply to TurboTaps and
		  DuoTaps as well.
	   =======  
	***WARNING:  If nothing works, make sure you shut down your machine
	   =======   fast or you might end up with a shorted Tap/Pad! :P

	#### Thanks to johnk@cs.utexas.edu for this section :) ####


=========================
4  Technical/System Specs
=========================

A: Machine Specs:
-----------------
Note:  I left the specs for other video game systems for comparison purposes.
#####  Spec chart from Ken Arromdee's rec.games.video FAQ:
[chart originally by Corey Kirk]
______________________________________________________________________________
|          | Neo Geo  |   SNES   | Genesis  |   TG-16  |    NES   | Sega MS2 |
|----------+----------+----------+----------+----------+----------+----------|
|Bits (CPU)|   8 + 16 |       16 |       16 |    8 + 8 |        8 |        8 |
|Bits (Gx) |       16 |       16 |       16 |       16 |        8 |        8 |
|CPU       |     68000|    65816 |    68000 |   HuC6280|     6502 |      Z80 |
|APU (Aud) |       Z80|  SPC???? |      Z80 |          |          |          |
|MHz       |   12.5, 4|      3.6 |      7.6 |  3.6  3.6|      1.8 |      3.6 |
|Graphics  | 320 x 224| 256 x 224| 320 x 224| 256 x 256| 256 x 240| 240 x 226|
| -2nd mode|          | 512 x 448|320 x 448*| 320x256**|          |          |
|Planes    |        3 |        ? |        2 |        1 |        1 |        1 |
|Colors    |4096/65536| 256/32768|   61/512 |  482/512 |    16/52 |   52/256 |
|Sprites   |      380 |      128 |       80 |       64 |        8 |       16 |
| - size   |  16 x 512|   32 x 32|   32 x 32|   16 x 16|    8 x 8 |    8 x 8 |
|Audio     |   15-lyr |PCM 8-lyr |   10-lyr |    6-lyr |     mono |     mono |
|RAM       | 64K+68Kgx|128K+64Kgx| 72K+64Kgx|  8K+64Kgx|  2K+ 2Kgx|        ? |
|          | (+2K Z80)|          |          |          |          |          |
|----------+----------+----------+----------+----------+----------+----------|
|CD CPU/MHz|        ? |          |68000/12.5| 65802/16 |
|CD RAM    |430K VRAM |          |     768K |  CD= 64K |
|          | 64K SRAM |          |          | SCD=256K |
|          |7 mg DRAM |          |          | ACD= 2MB |
|----------+----------+          +----------+----------+
* The 320x448 mode on the Genesis is the Sonic split-screen mode.
** A 512x256 mode is possible through fiddling with registers, but not
officially supported.

Comment: Some listings of colors are probably a bit too high.  For instance,
the Genesis has 8x8 tiles which use 16 colors from one of 4 palettes each,
which would be 64 colors, except that the 16th is a "transparent" color that
is the same for all 4.  Listings for Genesis colors tend to ignore this and
say "64" instead of "61".  It's unclear how many of the other figures are like
this.

________________________________________________________
|          |  GameBoy |   Lynx   | GameGear | TExpress |
|----------+----------+----------+----------+----------|
|Bits (CPU)|        8 |        8 |        8 |    8 + 8 |
|Bits (Gx) |        8 |       16 |        8 |       16 |
|CPU       |      Z80 |     6502 |      Z80 | 6502 6502|
|MHz (CPU) |      2.2 |      4.0 |      3.6 |      7.2 |
|MHz (Gx)  |          |     16.0 |          |          |
|ScreenSize|     2.6" |     3.5" |     3.2" |     2.6" |
|Graphics  | 160 x 144| 160 x 102| 160 x 144| 256 x 216|
|Colors    | mono (4) |  16/4096 |  32/4096 |  482/512 |
|Sprites   |        8 |    unlim |       64 |       64 |
| - size   |    8 x 8 |    unlim |    8 x 8 |  16 x 16 |
|Audio     |    2-lyr |    4-lyr |    4-lyr |    6-lyr |
|RAM       |      16K |      64K |      24K |  8K+64Kgx|
|----------+----------+----------+----------+----------|
Most systems can change colors on successive scan lines, using more colors
than the ones listed.

The existence of multiple graphics modes also confuses things--it might not be
possible to use all features at the highest graphics mode, as in the lack of
hardware rotation in the SNES 512x448 mode.  I'm not sure if there are
limitations on the double resolution Genesis mode (used for Sonic split
screen).


B: AC Adaptor Ratings:
----------------------

 	DUO:
		Input: 	120V AC 60HZ 16W
		Output: 10V DC 1000mA
		Center plug is positive, the outer is negative.

	Turbo Express:
		Input: 	120V AC 60HZ 13W
		Output:	7V DC 700mA
		Center plug is positive, the outer is negative.

	TG-16:
		Model:	HES-ACA-01
		Input: 	120V AC 60HZ 15W
		Output:	10.5V DC 730mA
		Center plug is negative, the outer is positive.

	TG+CD:
		Model:	HES-ACA-02
		Input:  120V AC 60HZ 24W
		Output: 11V DC 1.53A (1530 mA)
		Center plug is negative, the outer is positive.	

		Model:	HES-ACA-03
		Input: 	120V AC 60HZ 28W
		Output: 11V DC 1.53A (1530 mA)
		Center plug is negative, the outer is positive.

	Note:  When buying replacement adaptors other than these recommended
	       by the manufacturer, the general rule is:
	      	  - Match the generic AC adaptor's DC voltage equal or as 
		    close as possible to the manufacturer's adaptor.
		  - Make sure the generic adaptor's current rating (mA/A) is
		    equal or higher than the manufacturer's adaptor.
		  - Make sure the polarity matches!


C: PcEngine/TG-16 HuCard pinout:
--------------------------------
This information was posted by David Shadoff (daves@interlog.com)
and is mostly verbatim:

Notes:
(1) For reference, pin 1 is the short pin (on the left, if the card
    is to inserted forwards), pin 38 is the long pin on the right.
(2) *     - means I think this is what it is
    **    - means I don't know
    (bar) - means it is an active-while low condition (usually denoted
            by a bar over top)
(3) I'm telling you all I know (which really isn't much), and it may
    contain errors, also - I will not be held responsible for errors
    in this list.  (or any damages resulting from the use of, or
    inability to use, this information, etc...)

Pin      Use
---      ---
1        **                           20       D4
2        **                           21       D5
3        A18*                         22       D6
4        A16                          23       D7
5        A15                          24       CE (bar) - chip select
6        A12                          25       A10
7        A7                           26       OE (bar) - output enable
8        A6                           27       A11
9        A5                           28       A9
10       A4                           29       A8
11       A3                           30       A13
12       A2                           31       A14
13       A1                           32       A17
14       A0                           33       A19*
15       D0                           34       R/W (bar over W) - read/write
16       D1                           35       **
17       D2                           36       **
18       Gnd                          37       **
19       D3                           38       +5V

It is interesting to note that pins 6 thru 29 are basically exact
duplicates of the functions of pins 2 thru 25 on a 2764 EPROM.
Obviously, the design of the chip's die was not a complete re-work;
it just sits on a different package.

I got this information from tracing address- and data-paths through
the PC-E to the 2K static RAM (which has a known pinout), and
extending that information by reviewing an NEC data book on their
1-Megabit factory-programmed PROM's (it's an old data book, so I
couldn't go any further).

The TG-16 differs from the PC-E in that the D0-7 datalines are
reversed (actually, the PROM is programmed that way, and the wires
leading to the data bus in the machine are reversed).  I have
shown here, the card pinout (which does not differ).  I believe
that this is the PC-E port pinout (TG-16's just reverse the data
lines' order; swap 0 for 7, 1 for 6, 2 for 5, and 3 for 4).
-
Additional information: to copy a TG-16 game to work on a PC Engine with
copier, reverse the bit order.  There is then a sequence of code which checks
what machine the game is running on: all known examples start with 78 54 A9,
have the letters NEC at offset 15 hex, and an F0 at offset 0B.  If the F0 is
changed to an 80 (changing a conditional jump to an unconditional jump), the
game will work on both PC Engine and TG-16.

This code sequence is usually at the start of the game, but can be in other
places.


D: TG16/Duo and 6-button joystick techs:
----------------------------------------
### Info from Robert Kemmetmueller <rskm@VNET.IBM.COM>:

* A regular controller has a single 74HC157 IC (16-pin) in it.  This
    is some kind of "switcher" chip (exact function unknown) that lets
    the console poll the 4 directional switches (U D L R), and then poll
    the other 4 switches (S R I II).
* A 6-button controller has three 74HC157 IC's, and a half-used
    74HC163 IC, and a transistor for the autofire circuit.
* A 6-button controller MUST have an autofire circuit.  The reason
    is, it must continuously toggle between the set (U D L R , S R I II)
    and the set (- - - - , III IV V VI).  The console never knows which
    set it'll get on any given poll, so it has to keep polling until it
    gets BOTH sets.  The way it determines WHICH set it gets is: If it's
    the second set, all four directions will appear to be pushed.

So you can see that even with a normal controller, you can fool the
console into thinking you pushed the nonexistent III IV V VI buttons, by
pushing the control pad in all four directions and pressing S R I II.
This is not physically possible due to the physical design of the
controller, but I did verify my theory by applying bits on tin foil to
all 4 directional contacts of a standard 2-button controller.


o Is it possible to make a SNES->TG16/Duo joystick converter?

::WARNING: Electrotechie mumbo-jumbo about controller guts follows::

The TG-16 controller uses a 74HC157 IC, which is a quad 2-line-to-1-line
data selector/multiplexer with noninverting output.  The console does a
"double-poll", getting the values of the U D L R pad switches once, and
then the R S I II buttons.

The Avenue6 pad uses three of those ICs, one to "double-poll" the usual
(U D L R, R S I II) buttons, another to "double-poll" the (- - - -, III
IV V VI) buttons, and the third IC continuously switches WHICH of those
( ) sets is sent when the console polls.

(The software running on the console never knows which set it'll get on
any given poll, but it can TELL which set because the "- - - -" means
all 4 directions were pushed.  Older titles don't know how to handle
that.  Watch Bomberman go spaztic when your controller is set to type
"B"!)

The other chip in the Avenue6 pad is a 74HC163, a presettable
synchronous 4-bit binary counter with synchronous clear.  I haven't
really figured out what the heck its function is in the Avenue6 pad;
it's probably just part of a glorified slo-mo/turbo circuit, which is
absolutely required for a 6-button TG16 controller to work.

SNES controllers contain two 4021B ICs, which are 8-stage parallel to
serial shift registers.

So a converter that lets you use SNES controllers on a TG16 would
require all the logic from an Avenue6-button controller, PLUS a bunch of
logic circuits (a timer? and ???) to query the SNES controller and queue
the results it serially sent back, in some buffers that the Avenue6
logic could poll at will.

So now you know why nobody's built one.  :-)


E: TG16->Duo joystick converter cable pin-out:  Submitted by Steve Marsh
----------------------------------------------  (marsh@anvil.nrl.navy.mil)

Here are the pinouts for a cable that lets you plug TG accessories
(TurboStick, TurboPad, TurboTap) into a Duo.  The TG uses DIN-8 connectors, and
the Duo uses Mini-DIN-8 connectors.  These should be available at the usual
electronics stores.  You also need an 8-conductor (plus ground/shield) cable.
Hook up the outer shell of these connectors with an additional wire in the
cable, or (preferably) the woven wire or foil shielding in the cable.  Be sure 
to make it extra long--it's tough to stretch it later!  $^)

Both diagrams below are based on looking *at* the business end; i.e. the 
DIN-8 socket view shows 8 holes, and the Mini-DIN-8 plug represents 8 little 
pins. You have to connect the wires from behind these viewpoints.  Also, if 
you are making the opposite type of cable (i.e. so you can use 6-button Duo 
pads on the TG), you'll have to do the mental gyrations yourself...  $^)


     DIN-8 SOCKET  (TG)            Mini-DIN-8 PLUG  (Duo)

      -------------                     ----##----
     /      4      \                   /    ##    \
    /  3         5  \                 /  1   7   8 \
   /                 \               |              |
  |                   |              | 6   3     5  |
  |  2      8      6  |               \            /
  |                   |                \## 2  4 ##/
   \                 /                   #------#
    \  1         7  /
     \     ###     /
      -----###-----


F: Technical Questions:  Answers given by our "local" TG16/Duo expert
-----------------------  Nimai Malle (nmalle@newssun.med.miami.edu)
	  		 Nimai used to work for Hudson Soft in Japan as a 
			 videogame programmer.  

o Could you tell us about the graphic mode in PC-engine?

Well...  (this could get length, but I'll try to summarize)
The PC-Engine and Duo machines do display 16 colors out of a possible 512
per sprite.  There are 16 palettes, each holding 16 colors.  A single sprite
can use one of those 16 palettes.  Therefore, one sprite may use one set
of 16 colors, and another a different set, hiding the limitations of the
16 color limit.  Also a sprite is 16x16 dots in size, so most object are
comprised of a set of sprites.

The PC-Engine can only display one background at a time.  The background is
made up of definable characters all 8x8 pixels in size.  The actual size of
the BG can be much larger than the display area of the TV screen, allowing
scrolling, etc.  As with sprites, there is also a set of 16 palettes, each
with 16 colors for use with BG characters.  Each character can use it's own
palette from those 16.  Which area of the BG is currently displayed on the
screen is determined by scroll registers within the PC-Engine, with (0,0)
being the upper left hand corner.  By writing new values to these registers,
the area being displayed is "instantly" changed.  To scroll, just increment
this register either in the X or Y direction.

o Does the TG-16 really have 482 colors, and a 512x262x482 mode?  

The TG-16 has 512 colors.  Some colors are necessarily duplicated.  The BG has
256 colors.  The Sprites have a separate 256 colors.  Both color spaces are 
divided into 16 palettes. 

In the BG, color 0 of all palettes are equal.  Color 0 of palette 0 determines
color 0 of all the BG palettes.  Even though these color CAN be set indepen-
dently, the screen will not reflect these settings.

In the Sprites colors, color 0 is transparent in all palettes, although it does
peek it's head in a peculiar place; beyond the display width of the BG.
Explanation: The BG display area (in it's most often used setting) is 256x216.
The display width of a television may be adjusted to squash the screen
vertically, or horizontally.  Even normal TV's show a little more that 256
TG-16 dots wide, leaving a black border on the sides.  This border color is
actually controlled by sprite color 0.  The programmer can actually set the
screen width more narrow or vertically shorter, showing more of this area.
It's only use that I've ever implemented was in measuring the CPU load of the
TG-16 during development.

All platform games work this way, basically:

MAIN LOOP
     1)Wait for vertical retrace interrupt...
     2)Check joypad, move characters, etc.
     3)Goto MAIN LOOP

So, when step 2) is reached, the screen will be redrawing at the very top.
Between steps 1) and 2) one could set sprite color 0 to RED.  Then proceed
with all the processing for the game in step 2).  Then, right before step
3), set sprite color 0 to black.  What happens is, a red area to the left
and right of the BG appears starting from the top of the screen, and continuing
down i time, until it's set black again.  The screen is drawn 60 times every
second, so if your red meter is half way down the screen, you know that your
main loop it taking half of 1/60 a second to execute.  If the red goes off
the bottom of the screen, then you've got the dreaded over-sync!!  Everything
starts moving at 1/2 speed.  If this happens right when a particular monster
enters the playing field, then you know he's the culprit.  We even got 
fancier, and showed different colors for different routines.  Now we could 
"see" our sprite drawing routine in green, say, hogging CPU time, and know 
that's where optimization should begin.

o And wouldn't the existence of this mode, combined with the Turbo Express 
resolution, mean the TE can't _really_ play all TG-16 games?  (Is this the 
Supergrafx's mode?  What _is_ the Supergrafx's mode, anyway?)

Well, NEC doesn't sanction weird resolutions.  As far as I know, there is no
setting that allows more that 256 dots vertically, but I have written games
using 512x256.  Colors are DEFINITELY fixed at 512 (minus duplicates) but when
in 512x256 mode, dithering colors, or displaying alternating vertical bands
of, say blue and red, give a convincing display of purple, so more colors 
can be SHOWN this way, but still not true color.

As for TurboExpress compatibility, I think it can handle the 320x256 mode used
in Y's and others, but I've never tested 512x256...  Interesting!
SuperGrafx is a strange beast.  It has the same CPU as the TG-16, but with two
sets of graphic control chips.  This means hex $20000 bytes of VRAM, two BG's
twice as many sprites (making 128).  BUT this meant more work for that little
CPU.  This was the complaint of most developers.  Needless to say, the system
didn't catch on, although *I* think it's games were GREAT!

o More on the Arcade card:

I wrote the Arcade Card libraries that Hudson distributes to it's developers,
so I know what this baby does!  

There are four ports to access the memory from the CPU.  Each port is one 
word.  Each port can point to a separate address in the arcade card memory.
Settings for the ports are also completely independent.  The addresses are
determined by a "base address" (3 bytes) and an "offset" (2 bytes).  Reading
and writing is possible from all ports, and each can be set to auto increment
or decrement the offset or the base address.  Also, there is a bit one can
"hit" that causes the base and offset to be added, with the result being stored
in the base.  This COULD be used as a fast 3 byte adder.  There is also a 
4 byte read/write barrel roller.  Basically, you can store any 4 byte value in
this register(s) and write the number of times you wish to shift or roll to a 
5th register and you can read the result immediately.  This is very limited, 
but a good hacker could find some tricky little application.  I was able to 
optimize division and multiplication routines, also optimized a run length 
decoder using this feature...  (I would have rather had a real multiplier and 
divider, or floating point, or something, but costs were prohibitive.)


G: An excerpt about TG16 Programming:  
-------------------------------------
This is a small discussion about programming on the TG16 by David Shadoff
and Nimai Malle which started on the Turbolist.  However, it is only a 
beginning of a discussion on the topic since one of the parties disappeared
mysteriously (Beats me!).  I added it to the faq since it may interest some
people.  If you would like to followup on the following material or have any 
knowledge about TG16 programming, please feel free to send comments/info.


### David Shadoff (daves@interlog.com):

This annotates the header that NEC America stuck on the beginning of the 
American games, which inhibited their use on PC-Engine machines (as I 
interpreted it).  I am still unclear why they did this; Japanese developers 
never implemented this change; English-language ports would still have had a 
market in places like Hong Kong, Singapore, Taiwan, etc. (but were never 
repackaged this way); and US developers would have done better to create a 
market over here rather than try to segregate it from day one (as you'll 
recall, it was approx 1 year before 1 US developer signed on, and about 
18mo-2 yrs before a game came out).  Oh yes... there's the issue of why this 
change was never implemented on the US CD-ROM ports either... it seems that 
NEC had a complete lack of direction of what they wanted to accomplish with 
segregated markets.

I am working from the following assumptions:

(1) That my friend was able to copy the data from a TG-16 card to a PC 
diskette reliably (proven - you'll see)

(2) That most cards are very similar (I checked a few, and there seemed to 
be 2 or 3 archetypal structures of basically the same code - ie. relocated 
or some other minor change).

(aside) I always wondered about KLAX (TG16-vs.-PCE)... were there 
differences ?  I never got my hands on the American version.

(3) That although the HU CPU *IS* a custom chip, it is substantially similar 
to the 65816 processor (leap of faith, but proven - you'll see).

offset   byte value    instruction    annotation
 00        78            SEI i         Set interrupt disable status

 01        54 A9 FF      MVN xyc       Block move negative; source = FF0000 + x
                                                            dest   = A90000 + y
                                                            length = c + 1
                                                    Data Bank Reg  = A9

 04        53 01         EOR (d,s),y   XOR mem with accum.
                                       (a should either be 00 now, or FF)
                                       effective addr. = A90000 + stack + 1

 06        AD 00 10      LDA a         Load Accum. with mem. at A91000

 09        29 40         AND #         And immed. w/accum. #40 (ie. bit 6)

 0B        F0 0C         BEQ r         Branch if zero to offset 19

 0D        A9 90         LDA #         Load accum. w/ #90

 0F        53 04         EOR (d,s),y   XOR mem with accum.
                                       effective addr. = A90000 + stack + 4

 11        4C 00 40      JMP a         Jump to new location A94000

 15        20 4E 45 43 20              " NEC "


(Please, anybody jump in if I've misinterpreted.... I never coded on a 6502, 
so I could be misunderstanding some of these addressing modes).

Here's my guess: It's moving a block of memory from FFxxxx (presumably the 
card's contents) onto A9yyyy.  Why? I don't know - presumably checking to 
see if there's memory there to write to.  I wish I knew what to expect of 
the registers upon entry.  Then, exclusive-or's it (presumably, s is 0FFF at 
this point ?), and loads it into the accumulator for testing.  If bit 6 is 
not set, it passes the test, and branches to the place where it should go.  
If not, it spins off into never-never land (or at least a well-known limbo).

How I tested my work: I changed the BEQ (opcode F0) to a BRA (opcode 80), 
and got my friend to test it.  Now I remember... I'm pretty sure it was 
Military Madness that started this way... my friend was fed up trying to 
understand the Japanese of Nectaris...

This should explain what you see in the FAQ about getting TG games to run on 
a PC-E.  Unfortunately, you need a copier, a bit-reversal program, and a PC 
to edit the correct byte.

I must credit Jarno Kokko somewhere in Finland for egging me on, stating 
that it can/has been done, and is no big deal.  I dug deeper because of this.


### From Nimai Malle (nmalle@newssun.med.miami.edu):
Note: David Shadoff's comments preceded with a "#".

Here's the source for the type of code you are trying to figure out here:
cold_start:
   if 0                  ;protect code (25 bytes)
       sei               ;Set interupt dissable
       csl               ;(Forgot: Only used here in all me sources)
       lda    #$FF       ;Load A-reg with $FF
       tam0              ;Transfer A-reg to Memory map register 0
       lda    $1000      ;Load A-reg with value stored at address $1000
       and    #$40       ;Test bit 6
       beq    NO_PROTECT ;Skip remaining code if bit not set
       lda    #$90       ;Load A-reg with $90
       tam2              ;Transfer A-reg to Memory map register 2
       jmp    $4000      ;Jump to address $4000
       db     ' NEC'
NO_PROTECT:

# Wow.  This really *is* different from the 65816.  Looks like the 6502 was 
# evolved along a separate evolution path by Hudson (much like Zilog's Z-80 
# versus Intel's 808x).

Some explanation:  (This may be in the FAQ?)
The PC-Engine's processor can only use 16 bit addresses, so it's addressable
memory goes from $0000 to $FFFF.  In order to use more memory, this address
space is divided up into 8 "banks".  One bank is $2000 bytes long.

$0000 - $1FFF   Bank 0
$2000 - $3FFF   Bank 1
$4000 - $5FFF   Bank 2
$6000 - $7FFF   Bank 3
$8000 - $9FFF   Bank 4
$A000 - $BFFF   Bank 5
$C000 - $DFFF   Bank 6
$E000 - $FFFF   Bank 7

There are 8 registers that corespond to the 8 banks.  These are called Memory
Map Registers (MMR).  There are also new mnuemonics to set these registers; two
of which were used in the above code.
So, setting MMR2 to $04 this means that the REAL address of all addresses
between $4000 and $5FFF will be $044000 through $045FFF.  In this way the PC-
Engine has access to a 24 bit address space.

# EEEWwwwww !  This is uglier than the 8086's 24-bit scheme !  I liked the 
# 65816's direct-mode register more (less fancy footwork).
# 
# BTW, is must be possible to set all 8 MMR's simultaneously (or any 
# combination), just by making the second byte have more than 1 bit set, right?

Some of the MMR settings are set upon startup and must never be changed under
normal opperating circumstances.  This code will usually be near the start:

    lda    #$FF     ;$0000 - $1FFF  Reserved for I/O and system registers
    tam0
    lda    #$F8     ;$2000 - $3FFF  Maps to RAM area of PC-Engine
    tam1
    ldx    #$FF
    txs             ;Set stack pointer to $FF
    lda    #$04 
    sta    $0400 ;Initialize the color processor (it's registers start at $400)
    lda    #$FD
    sta    $1402    ;Enable IRQ's
    ...

And so on...  

# So where in the memory map does the cartridge live ?  At the top ?


=========================
5  Other FAQ's
=========================

o How can American HuCards be played on a Japanese PC Engine?
	Since TG16 HuCards can detect hardware differences of the PcEngine,
	TG16 HuCards cannot be played on a PcEngine.  But since the
	price of the TG16 has come down drastically to $20-40US, it wouldn't
	be much trouble getting another machine to play your American HuCards.

o Can I back up my save memory?
	Yes you can.  You don't have to delete your high scores anymore or kill
	your precious RPG save slots with this gadget.  There is a PcEngine 
	HuCard called the Ten no Koe ("voices from the sky") Bank. Its storage 
	capacity is 4 times the size of the backup RAM in the TG16/DUO.  Pop
	in the card and you'll be able to save/load save files from a menu
	screen.  Since this is a PcEngine card, you'll need a converter to use
	it on your American machine.  This card can be found for about $50.

o Can I use my TG16-CD/Duo CD player with my computer?
	There was a SCSI adaptor TTI was working on called the DuoLink
	that would connect to the Duo HuCard slot but it never came out since 
	it would retail over $100US, while a basic CD setup for a PC at that 
	time could have been obtained for about the same amount of money.  
	Now, you can find single speed CDROMs for about $50.

o Can I use a generic AC adapter for my Turbo Express?
	The original AC adaptor for the TE works at (7V,700mA).  Your best
	bet is to use a Radio Shack Universal adapter switchable to 
	(7.5V,800mA max).  A Lynx AC adapter (9V,1000mA) will work on the
	TE but be forewarned.  Pausing a game for extended periods using this
	adaptor can cause something in the express to burn out.
	     ### Thanks to Steve Marsh <marsh@anvil.nrl.navy.mil> ###

o Can a LaserActive system play TG16/Duo games?
	This system plays both laser discs and CD's, and costs $720 but
	costs $480 each for add-on module allowing Sega CD or TG16/Duo
	compatibility.  (Note that a complete Sega or Turbo CD system costs 
	less than that).  
	Playing PcEngine HuCards may pose some problems tho.
	Many PCE->TG16/DUO HuCard adapters weren't designed with the
	LaserActive in mind.  However, the Kisado board itself is long enough 
	to fit into the TG module (unlike the 301 adapter which is far too 
	short) but the HuCard connector must be modified so that the card is 
	perpendicular to the board rather than parallel (as it is with 
	conventional ones).  This could be done by modifying a mostly-
	completed adapter.  Otherwise, another option is to obtain a cheap
	basic TG16 unit with PCE->TG16 adaptor to play PCE Hucards.  
	(See also See Section 3: PcEngine+Compatibility)
	     ### Thanks to Jeff Hildebrand <jeffh@iris.mb.ca> ###

o Can I use an older Genesis A/V cable to replace my Duo A/V cable?
	The Duo has a similar 5-pin A/V cable like that of the original
	Sega Genesis.  However, there is only one audio channel through the
	DIN port of the Genesis cable.  You can use the cable on the Duo, but
	only by sacrificing stereo sound in the process.

=========================
6  Magazines
=========================

o Which American Gaming magazines provide the best coverage of the 
  TG16 gaming scene?
	Most of the major gaming magazines used to provide lack-luster coverage
	for the TG16/Duo, especially after TTI's down scaling to a mail order 
	business.  Anyway, you may wish to check out the magazines on a
	month-by-month basis for PcEngine info.  Popular gaming magazines 
	include "Videogame & Computer Entertainment", "Electronic Gaming 
	Monthly", and "Game Pro".

o Are there any Turbo only magazines available?
	Well, at least there were.  After TTI's down scaling, there was
	not really much to cover.  I doubt that either two magazines
	still exist.  One still owes me some mags!  Someone give them a call :)

	"DuoWorld" published Bi-Monthly by L.F.P. Inc.  
	Single issues are $1.95 and a one year (6 issue) subscription is $9.95
		L.F.P. Inc.
		9171 Wilshire Blvd. Suite 300
		Beverly Hills, CA 90210
		310-858-7100

	"Turbo Force" published quarterly
	Single issues are $3.95 and a one year (4 issue) subscription is $9.99
		Turbo Force
		PO Box 7597
		Red Oak, IA 51591-0597
		1-800-444-2884

o PC Engine Magazines:  
	PC Engine Fan is now the only monthly magazine devoted to the PCEngine
	in Japan.  The other magazines which are no longer published were:
		1) Marukashi (Win!) PC Engine
		2) Gekkan (Monthly) PC Engine (Subtitled: Monthly magazine for
		   Game Freaks)
	These magazines contain mostly Japanese text (although there
	is a surprising amount of English) and contain reviews, previews, full
	colour pictures on glossy paper.  They can be purchased at most
	Japanese bookstores for about $7-$8 each.  Some mail order Game
	businesses sell them for about $12-15 each.


=========================
7  Shopper's Guide
=========================

It would be a good idea to check the ads in an American video game magazine.
If you know someone who lives or who is going to Japan, Taiwan or Hong Kong, 
it would be a very good idea for him/her to get your Japanese games for you.
Especially for used games, you can get some pretty good titles for very good
prices.  (i.e. My friend found Dracula X for $250HK used, about $32US)

###OLD###	Turbo Technologies, Inc.
		6701 Center Drive West, Suite 500
		Los Angeles, CA  90045
		310-641-4622 (main office)
		310-574-3304 (customer service)
		1-800-366-0136 (Info Line)

###NEW###	Turbo Zone Direct
		13348 Beach Ave
		Marina del Rey, CA  90292
		Tel: 310-574-3300 (note the similarity in phone numbers?)
		Fax: 310-574-3307

Mail Order:  (Third Party Distributors)
		Totally Turbo:		1-800-368-0054

		Turbo Zone:		1-800-995-9203


Other sources for games:
	TTI has called back most of it games from its distributors and has
	turned into a mail order business.  If you want to get the newer games,
	you're gonna have to get them direct or hope some mail order places
	like Buy-Right have them.  Some of the following places still sell 
	them at discount prices tho.  Go check!  According to an old ad by 
	TTI, the following places sell (or used to sell) the TG16/Duo and 
	software: Toys R Us, Babbages, Electronic's Boutique, The Good
	Guys, McDuffs, Software /etc, Video Concepts, Walden Software, and
	through the Sears Catalog.  Other known retailers include Chips &
	Bits.

Sources for Japanese games:
	Just remember that you need an adapter for HuCard games...
	(A more complete list is available in the Japanese Videogame Sources 
	list.  See the Other Sources of Info section for more info)

See also the TurboGrafx-16/Duo/PC-Engine Mail Order FAQ maintained by 
Jeff Hildebrand (jhildebr@mbnet.mb.ca).  It can be found on the TG16/Duo 
Mailing List server or received upon request.

		Die Hard
		--------
		19640 Ventura Blvd.
		Tarzana, CA 91356
		Orders/Info/Cust.Service: 818-865-2599
		Calling this number gets the customer service/new release/
		order personnel (they have a automated message thing set up so 
		that you can hear about all the new PCE titles that they'll be
		getting in).

             	Game Dude
                ---------
                12104 Sherman Way
		North Hollywood, CA 91605
                Orders: 818-764-2442
		Fax   : 818-764-4851

		Japan Video Games
  		-----------------
		710 W. Las Tunas, #1
		San Gabriel, CA 91776
		Phone: 818-281-9282
		Fax  : 818-451-5839

		Buy-Rite Video Games
		--------------------
		PO Box 99743			1924 Captial Boulevard
		Raleigh, NC 27624		Raleigh, NC 27604
		Orders: 919-850-9473		919-834-1355
		FAX   :	919-872-7561
		ATTN  : Mark
		Highly recommended not only because of their good selection
		of Japanese Hucards/CD's, but because they're friendly ;)

		Buy-Rite game list can be found on the WWW.  Use the following
		URL to access:  Compiled by Y. Wei (ywei@eos.ncsu.edu)
 		http://www2.ncsu.edu/eos/users/y/ywei/www/buyrite.html

		DonSal Inc.
   		-----------
		21 Sumcot Roard RR#1
		Peterborough, Ontario, Canada
		K9J 6X2
		Phone (info) 1-800-477-9583
		Phone: (705) 657-2295
		Fax  : (705) 657-2521


=========================
8  Other sources of info
=========================

NOTE: A "list" is not a mailing list unless it SAYS "mailing list"

TG16/DUO mailing list:  Maintained by Bt Garner (bt@cpac.washington.edu)
	Probably the best source of TG16/Duo info you can find
	out there.  Current topics about the TG16/Duo discussed.  Server 
	provides access to game reviews, cheats, game translations, faqs and 
	other info (and this FAQ too! :)  
	To subscribe: 	Send mail to turbo-list-request@cpac.washington.edu
			with "subscribe" on subject line or on the first
			line of your email.  You will be subscribed into the 
			mailing list and will be emailed some info on how to 
			use the server.

Turbo Mailing List's Home Page on the World Wide Web:
	Maintained by Jeff Hildebrand (jeffh@iris.mb.ca, jhildebr@mbnet.mb.ca)
	The URL is:	http://www.mbnet.mb.ca/~jhildebr/

TG16/DUO Scoring Contest:  Maintained by Underware Man
			   and Game Zero (gmezero@gz.bomb.com)
	Send mail to tgscores@cyberspace.com for info or connect to the
	following WWW homepage.
	The URL is:	http://www.primenet.com/~gmezero/rip/tgscores.html/

Game Zero Home Page on the World Wide Web:
	Maintained by gmezero@gz.bomb.com
	The URL is:	http://www.primenet.com/~gmezero/

Michael Mahon's Home Page on the WWW:
	Maintained by Michael Mahon (mmahon@kaiwan.com)
	The URL is: 	http://www.kaiwan.com/~mmahon/

Ys IV Home Page on the WWW:
	Maintained by Hiroshi Kawai (pasqual@mit.edu)
	The URL is:	http://www.mit.edu:8001/people/pasqual/YsIV.title.html

Hudson Soft Hucard Release list:  
	Maintained by Michael Mahon (mmhaon@kaiwan.com) and
	Mark Yoshimi (currently using oedi@netcom.com)
	Can be found on Turbolist Server, at above URL, or 
	FTP to: kaiwan.kaiwan.com in directory /users/mmahon

The TurboGrafx-16/TurboDuo/PCEngine Save Game FAQ
	Maintained by Barry Cantin (KerPlunk33@aol.com)
	Can be found on the Turbolist Server.

rec.games.video Video game FAQ:  Maintained by Ken Arromdee
				 (arromdee@jyusenkyou.cs.jhu.edu)

Anime video games list/FAQ:  Maintained by Ken Arromdee 
			     (arromdee@jyusenkyou.cs.jhu.edu)

Video game FAQs FTP site:  Maintained by Andy Eddy (vidgames@netcom.com)
			   Senior Editor, GamePro Magazine 
			   ftp to ftp.netcom.com in directory 
			   /pub/vi/vidgames/faqs

QuickTime anime videos:  Maintained by Mark Johnson (mjohnson@sol.UVic.CA)
			 ftp to venice.tcp.com in directory 
			 /pub/anime-manga/anim/qt
			 QT videos of the intro of Ranma1/2 pt2 and
			 Comic Fantasy MD-CD series.  

PcEngine Fan Scans:  Maintained by Wing H. Yi (yokosima@netcom.com)
		     ftp to ftp.netcom.com in directory:     
		pub/yo/yokosima/misc  	   -videogame/anime/manga-related stuff
		pub/yo/yokosima/incoming   -uploads
	     	pub/yo/yokosima/h          -other stuff

More FTP Sites:
		Videogame and TG16 stuff:
		Maintained by Chris Granz (quest@newline.newl.com)
		FTP: quest.newl.com	Path: /vidgames/turbo/

		Ys Images:
		FTP: venice.tcp.com	Path: /pub/anime-manga/sorted/Ys/Images

-------------------------------------------------------------------------------
Here are some old sources for info.  There are more updated info found
on the TG16/Duo Mailing list server or from those sources above.
-------------------------------------------------------------------------------

TG16 FAQ: maintained by Steve Pearl (pearl@remus.rutgers.edu)
          This FAQ is kinda outdated.  (That's why i made this one.)
          But you may want to look at it anyway.
              Can be obtained by ftp from remus.rutgers.edu in
              /pub/anime/faq/tg16/tg16.faq.Z
              Site includes some other TG16 related stuff as well.

PC Engine Game Directory: A listing of all known PC Engine games with 
        as much information on them as possible.  Maintained by Steve Pearl
        (pearl@remus.rutgers.edu) Posted monthly.  Available by email upon 
        request.

TG16 Product/Price list: A listing of all current TG16 games and a 
        survey of prices from various retail sources.  Maintained by
        Steve Pearl (pearl@remus.rutgers.edu) Posted monthly. Available by
        email upon request.

Japanese video game source list: maintained by Steve Pearl 
        (pearl@remus.rutgers.edu).  The list can be ftp'ed from 
        romulus.rutgers.edu (128.6.13.2)

:)
*******************************************************************************