XHE-3 adapter for PC Engine
Contents
Introduction
The XHE-3 is an adapter designed for using MSX controllers and joysticks
on a PC Engine console. It also supports the analog mode offered by controllers such as
the
XE-1 AP when used with a compatible
game. According to the enclosed documentation, those are:
- Outrun
- After Burner
- Operation Wolf
Also, according to a
forum post and this
blog post, the following games also work:
- Thunder Blade
- Forgotten Worlds
- After Burner II
The enclosed documentation states "After Burner", but sources above and
even the
PC Engine Frequently Asked Questions (in japanese) only mention
"After Burner II". Are both games supported? Unfortunately I don't own those yet
so I can't test. I did however test Thunder Blade. It works, but there is
no difference between digital and analog modes. (Past a certain threshold of
deflection, the helicopter simply starts moving at constant speed).
The XHE-3 does not support Megadrive controllers.
This adapter appears to be a bit rare, is generally fairly expensive and there seems
to be very little information about it on the net. Having a unit on hand, I decided
to do something about it by creating this page.
The box
Compatible with analog joysticks
XHE-3
Joystick adapter for PC Engine
Standard price: 2500 yens (plus taxes)
XHE-3 (for PC Engine) [Operating instructions]
- An adapter to use PC joysticks [1] on a PC Engine console.
Makes it possible to enjoy PC Engine games with PC joysticks.
- Compatible joysticks:
Atari-style joysticks with a connector as illustrated are supported.
Examples: XE-1PRO, XE-1ST2, XE-1AP, XE-1AJ, etc.
Note: The XE-1AP and XE-1AJ in analog mode are also supported by some games.
Note: Megadrive joysticks are not supported.
- Connects to the PC Engine
- SELECT button
- RUN button
The RUN and SELECT buttons function as they do on a PC Engine gamepad.
- Atari-style joystick connection
Standard price 2500 yens (plus taxes)
[1] Translation note: The term PC here does not refer to an IBM PC
(with a DB15 joystick port) but rather to japanese home computer series such as the X68000,
MSX, PC-8800, etc.
An adapter for using PC joysticks (see opposite face) on the PC Engine.
- About analog compatibility
Games supporting analog joysticks can be played by connecting
a compatible joystick such as the XE-1AP (one of our products) to
the adapter.
At the moment (January 92), games compatible with analog joysticks
are "Outrun", "After Burner" and "Operation Wolf", sold by Nec Avenue.
More analog-compatible games are planned.
XE-1AP
Sold separately: Standard price of 13800 yens (plus taxes)
Adapter to use PC joysticks on PC Engine.
(see opposite face)
Compatible with analog joysticks.
Instruction sheet
The instruction sheet included with the product gives some details
about how the XHE3 can be used with the XE-1AP analog controller.
- About analog compatibility (Information supplement)
At the moment (January 92) 3 games with analog joystick support are available:
"Outrun", "After Burner" and "Operation Wolf" (all sold be Nec Avenue)
The controls for each game, when an analog joystick is used, are as described below.
The START and SELECT buttons on the analog joystick function as the RUN and SELECT buttons.
The RUN and SELECT button on the XHE-3 are not used.
Warning: Switching between analog and digital mode may confuse the game. Be sure to always
turn the power off when changing mode.
After Burner
Joystick: Up/down/left/right movement. Note however that up/down is
the opposite of a regular control pad.
A button: Air-air missile
B button: Vulcan canon
Throttle: Speed control. Fires the after burners in response to sudden speed demands.
SELECT: Pause (stops the game temporarily). Triggers a reset when pressed together with START.
START: Used to start the game.
Operation Wolf
The game's title screen shows "ANALOG PUSH START" confirming an analog joystick is connected.
Joystick: Aim
A button: Rocket laucher
B button: Machine gun
Throttle: not used
START: Start or pause the game.
SELECT: Triggers a reset when pressed together with START.
Outrun
Joystick: Left-Right: Direction, Up-down: Gear change.
A and B buttons: Brakes
Throttle: Accelerator, speed control.
START: Start or pause the game.
SELECT: Triggers a reset when pressed together with START.
Inside the adapter
Getting inside is a simple matter of removing two philips screws, revealing
a single layer PCB with through-hole components.
Schematic
I drew a schematic which I expect to be functionally equivalent to the
original XHE-3. Here are a few observations:
- The adapter is basically a standard (2 button) PC Engine gamepad but
without rapid fire, and where signals from the DB9 connector replace most
physical switches.
- Unlike standard controllers, the OE (multiplexer pin 15) pin is
kept low.
- The OE signal (from mini-din pin 7), instead of being connected to the multiplexer,
goes to DB9 pin 8.
- This adapter supports analog controller such as the XE-1AP. Given this simple
(and entirely digital) design, we can of course conclude that the analog to digital conversion
is taking place inside the joystick. How are the resulting values transmitted? More
on this below.
DIY adapter
Using the above schematic, I designed and ordered a few circuit boards.
Here are a few pictures of the assembled board:
Note: The mini-din cable comes from a broken PC Engine controller.
Component list:
Quantity | Designator | Description | Manufacturer and part number |
9 | R1, R2, R3, R4, R5, R6, R7, R8, R9 | 47k resistor | Yageo CFR-25JB-52-47K |
4 | R10, R11, R12, R13 | 330 ohm resistor | Yageo CFR-25JB-52-330R |
1 | J1 | DB9 connector, male, right-angle | Norcomp 182-009-113R531 |
2 | S1, S2 | Push button, SPST-NO | E-Switch KS-01Q-01 |
1 | U1 | Integrated circuit SN74HC157N | Texas Instruments SN74HC157N |
1 | C1 | .1uF capacitor | AVX SR205C104KAR |
1 | C2 | 10uF capacitor | Nichicon UVR1C100MDD1TD |
PCB + Component kit
The PCB as well as the required components for building this project are available
in the
online store.
How the XE-1AP analog controller works
The XE-1AP controller uses DB9 pins 1 to 4 as a 4-bit data bus, and pins 6 and 7 (Trig1/Trig 2) as a clock to
transfer 6 bytes, as illustrated below:
Reading the data can be done like this:
- The console generates a logic low pulse on OE for 2.24uS.
- The console waits for a logic low level on TRIG2.
- The console reads the most significant nibble on pins 1-4
- The console waits for a logic high level on TRIG1.
- The console reads the least significant nibble on pins 1-4
- Steps 2 to 5 are repeated 5 other times, for a total of 6 received bytes
Here is how the button and axis data are organized in those 6 bytes:
| Bit |
Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | A/A' | B/B' | C | D | E1 | E2 | START | SELECT |
1 | Y <7:4> | X <7:4> |
2 | THROTTLE<7:4> | 0 | 0 | 0 | 0 |
3 | Y <3:0> | X <3:0> |
4 | THROTTLE<3:0> | 0 | 0 | 0 | 0 |
5 | A | B | A' | B' | 1 | 1 | 1 | 1 |
By the way, here are some pictures of the XE-1AP:
Disclaimer
I cannot be held responsible for any damages that could occur to you
or your equipment while following the procedures present on this page.
Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability
of the informations on this page. Please note, however, that the procedures
above have worked in my case without any damages or problems.
Now you cannot say that I did not warn you :)