*******************************************************************************
** _____ __ . __ _ __ _ _ ___ _____ **
** | / \ /| /__ / | \ | | / \ / / **
** | | __ | / \ / | | | | | | / /_ **
** | \__| _|_ \___/ _/ |__/ \__/ \___/ /__ / **
** ___ _ ___ / / **
** |__ / \ / \ 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)

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